@oscarpalmer/oui 0.38.0 → 0.40.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/badge.css +11 -8
- package/dist/css/button.css +106 -14
- package/dist/css/color-picker.css +555 -73
- package/dist/css/color.css +86 -86
- package/dist/css/combobox.css +98 -4
- package/dist/css/content.css +7 -6
- package/dist/css/floatable.css +1 -3
- package/dist/css/form.css +99 -6
- package/dist/css/icon.css +99 -0
- package/dist/css/listbox.css +3 -0
- package/dist/css/message.css +4 -3
- package/dist/css/mixins/button.mixins.css +1 -0
- package/dist/css/reset.css +1 -1
- package/dist/css/tabs.css +95 -3
- package/dist/css/typography.css +90 -0
- package/dist/js/color-picker/color-picker.constants.d.mts +2 -0
- package/dist/js/color-picker/color-picker.constants.mjs +60 -0
- package/dist/js/color-picker/color-picker.dom.d.mts +8 -0
- package/dist/js/color-picker/color-picker.dom.mjs +191 -0
- package/dist/js/color-picker/color-picker.event.d.mts +9 -0
- package/dist/js/color-picker/color-picker.event.mjs +2 -0
- package/dist/js/color-picker/color-picker.form.d.mts +5 -0
- package/dist/js/color-picker/color-picker.form.mjs +27 -0
- package/dist/js/color-picker/color-picker.misc.d.mts +2 -0
- package/dist/js/color-picker/color-picker.misc.mjs +2 -0
- package/dist/js/color-picker/color-picker.model.d.mts +2 -0
- package/dist/js/color-picker/color-picker.model.mjs +24 -0
- package/dist/js/color-picker/color-picker.output.d.mts +8 -0
- package/dist/js/color-picker/color-picker.output.mjs +235 -0
- package/dist/js/color-picker/color-picker.state.d.mts +8 -0
- package/dist/js/color-picker/color-picker.state.mjs +2 -0
- package/dist/js/{color-picker.d.mts → color-picker/index.d.mts} +10 -43
- package/dist/js/color-picker/index.mjs +305 -0
- package/dist/js/color-picker.constants-D1mxw_Le.d.mts +179 -0
- package/dist/js/color-picker.event-Cksj5TvS.mjs +500 -0
- package/dist/js/color-picker.misc-CtsXGrOe.d.mts +27 -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 +26 -0
- package/dist/js/combobox/{dom.combobox.mjs → combobox.dom.mjs} +44 -37
- package/dist/js/combobox/combobox.event.d.mts +22 -0
- 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/{misc.combobox.mjs → combobox.misc.mjs} +1 -1
- package/dist/js/combobox/combobox.model.d.mts +2 -0
- package/dist/js/combobox/combobox.state.d.mts +10 -0
- package/dist/js/combobox/combobox.state.mjs +2 -0
- package/dist/js/combobox/index.d.mts +163 -2
- package/dist/js/combobox/index.mjs +53 -52
- package/dist/js/combobox.constants-DZVkMP5g.d.mts +19 -0
- package/dist/js/combobox.misc-C1tPZZDi.d.mts +22 -0
- package/dist/js/{combobox/models.combobox.d.mts → combobox.model-oDV06XCN.d.mts} +6 -6
- package/dist/js/{state.combobox-Qm3FWzYW.mjs → combobox.state-BfJ3Hxg8.mjs} +96 -82
- package/dist/js/constants.listbox-C5Ap6Ag_.d.mts +9 -0
- 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-DX2mndMh.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-MeTyXjFn.d.mts +17 -0
- package/dist/js/floatable.model-DXsQgoU7.d.mts +62 -0
- package/dist/js/focus-trap/focus-trap.embedded.d.mts +2 -2
- package/dist/js/focus-trap/focus-trap.embedded.mjs +112 -134
- 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-DIU05m1z.d.mts +13 -0
- package/dist/js/{focus-trap.embedded-DR8NpZfr.d.mts → focus-trap.model-BeX6UYlw.d.mts} +16 -18
- package/dist/js/index.d.mts +26 -14
- package/dist/js/index.mjs +18 -15
- package/dist/js/internal/attributable.d.mts +2 -3
- 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.mjs → draggable/index.mjs} +83 -114
- package/dist/js/internal/listbox/listbox.constants.d.mts +7 -10
- package/dist/js/internal/listbox/listbox.constants.mjs +15 -16
- package/dist/js/internal/listbox/listbox.data.d.mts +9 -10
- package/dist/js/internal/listbox/listbox.data.mjs +1 -1
- package/dist/js/internal/listbox/listbox.dom.d.mts +19 -20
- package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
- package/dist/js/internal/listbox/listbox.event.d.mts +3 -4
- package/dist/js/internal/listbox/listbox.event.mjs +23 -20
- package/dist/js/internal/listbox/listbox.form.d.mts +4 -5
- package/dist/js/internal/listbox/listbox.form.mjs +15 -12
- package/dist/js/internal/listbox/listbox.misc.d.mts +10 -11
- package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
- package/dist/js/internal/listbox/listbox.model.d.mts +2 -2
- package/dist/js/internal/listbox/listbox.state.d.mts +5 -6
- package/dist/js/internal/listbox/listbox.state.mjs +19 -20
- package/dist/js/internal/misc.d.mts +5 -4
- package/dist/js/internal/misc.mjs +7 -1
- 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/l10n/index.d.mts +9 -0
- package/dist/js/{l10n.mjs → l10n/index.mjs} +50 -23
- package/dist/js/l10n/l10n.model.d.mts +2 -0
- package/dist/js/l10n/l10n.model.mjs +9 -0
- package/dist/js/l10n.model-D6a9frgl.d.mts +26 -0
- package/dist/js/listbox/constants.listbox.d.mts +2 -2
- package/dist/js/listbox/constants.listbox.mjs +10 -14
- package/dist/js/listbox/event.listbox.d.mts +6 -7
- package/dist/js/listbox/event.listbox.mjs +47 -1
- package/dist/js/listbox/index.d.mts +8 -6
- package/dist/js/listbox/index.mjs +47 -49
- package/dist/js/listbox/misc.listbox.d.mts +1 -1
- package/dist/js/listbox/misc.listbox.mjs +1 -1
- package/dist/js/listbox/state.listbox.d.mts +8 -10
- package/dist/js/listbox/state.listbox.mjs +2 -2
- package/dist/js/{listbox.data-C7CRa5Ya.mjs → listbox.data-BQyZGKgr.mjs} +83 -66
- package/dist/js/{listbox.model-CRReGOmu.d.mts → listbox.model-CuBOj4qe.d.mts} +15 -11
- package/dist/js/menu/index.mjs +167 -0
- package/dist/js/menu/menu.model.d.mts +33 -0
- package/dist/js/menu/menu.model.mjs +15 -0
- package/dist/js/{misc.listbox-Cyz2CRDy.mjs → misc.listbox-CjfBUbHD.mjs} +27 -69
- package/dist/js/{misc.listbox-gnoJhrTr.d.mts → misc.listbox-CtoGvXQo.d.mts} +2 -2
- package/dist/js/movable/movable.embedded.d.mts +2 -2
- package/dist/js/movable/movable.embedded.mjs +60 -72
- 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-DoyXLegc.d.mts +11 -0
- package/dist/js/movable.model-BHaK_mKw.d.mts +186 -0
- package/dist/js/navigable.model-BPOM8DZk.d.mts +44 -0
- package/dist/js/popover/index.d.mts +12 -0
- package/dist/js/{popover.mjs → popover/index.mjs} +40 -50
- package/dist/js/popover/popover.model.d.mts +2 -0
- package/dist/js/popover/popover.model.mjs +12 -0
- package/dist/js/popover.model-ubKNG612.d.mts +38 -0
- package/dist/js/resizable/resizable.embedded.d.mts +2 -2
- package/dist/js/resizable/resizable.embedded.mjs +44 -59
- 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-Bf1qBUdt.d.mts +11 -0
- package/dist/js/resizable.model-BwzJcTVJ.d.mts +46 -0
- package/dist/js/sortable/sortable.embedded.d.mts +2 -2
- package/dist/js/sortable/sortable.embedded.mjs +69 -82
- 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-DzBKAwSG.d.mts +11 -0
- package/dist/js/{splitter.d.mts → splitter/index.d.mts} +8 -7
- package/dist/js/splitter/index.mjs +284 -0
- package/dist/js/splitter/splitter.model.d.mts +2 -0
- package/dist/js/splitter/splitter.model.mjs +37 -0
- package/dist/js/splitter.model-DOLNjLVS.d.mts +57 -0
- package/dist/js/{tabs.d.mts → tabs/index.d.mts} +7 -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-DRBX_JtI.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} +60 -85
- package/dist/js/tooltip/tooltip.model.d.mts +2 -0
- package/dist/js/tooltip/tooltip.model.mjs +15 -0
- package/dist/js/tooltip.model-DRkY_BsL.d.mts +37 -0
- package/package.json +43 -37
- package/dist/js/color-picker.mjs +0 -924
- package/dist/js/combobox/constants.combobox.d.mts +0 -2
- package/dist/js/combobox/dom.combobox.d.mts +0 -27
- package/dist/js/combobox/event.combobox.d.mts +0 -23
- package/dist/js/combobox/misc.combobox.d.mts +0 -2
- package/dist/js/combobox/state.combobox.d.mts +0 -12
- package/dist/js/combobox/state.combobox.mjs +0 -2
- package/dist/js/constants.combobox-DmRAMC64.d.mts +0 -26
- package/dist/js/constants.listbox-DRsXUxd3.d.mts +0 -14
- package/dist/js/dialog.d.mts +0 -47
- package/dist/js/dialog.mjs +0 -131
- package/dist/js/draggable-a6w0J1OD.d.mts +0 -154
- package/dist/js/floatable.embedded-Bct4U5Dm.d.mts +0 -69
- package/dist/js/index-DJdFlTLm.d.mts +0 -177
- package/dist/js/internal/draggable.d.mts +0 -2
- package/dist/js/internal/navigable.d.mts +0 -37
- 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/menu.mjs +0 -172
- package/dist/js/popover.d.mts +0 -38
- package/dist/js/resizable.embedded-3qoR0Bjm.d.mts +0 -34
- package/dist/js/splitter.mjs +0 -322
- package/dist/js/toolbar.mjs +0 -31
- package/dist/js/tooltip.d.mts +0 -45
- package/src/css/a11y.scss +0 -13
- package/src/css/badge.scss +0 -62
- package/src/css/button.scss +0 -50
- package/src/css/color-picker.scss +0 -344
- package/src/css/color.scss +0 -113
- package/src/css/combobox.scss +0 -255
- package/src/css/content.scss +0 -181
- package/src/css/flex.scss +0 -107
- package/src/css/floatable.scss +0 -155
- package/src/css/form.scss +0 -575
- package/src/css/listbox.scss +0 -121
- package/src/css/message.scss +0 -74
- package/src/css/mixins/badge.mixins.scss +0 -53
- package/src/css/mixins/button.mixins.scss +0 -112
- package/src/css/mixins/input.mixins.scss +0 -114
- package/src/css/mixins/message.mixins.scss +0 -41
- package/src/css/mixins/misc.mixins.scss +0 -48
- package/src/css/mixins/shadow.mixins.scss +0 -57
- package/src/css/reset.scss +0 -392
- package/src/css/splitter.scss +0 -89
- package/src/css/table.scss +0 -107
- package/src/css/tabs.scss +0 -74
- package/src/js/color-picker.ts +0 -1653
- package/src/js/combobox/constants.combobox.ts +0 -83
- package/src/js/combobox/dom.combobox.ts +0 -411
- package/src/js/combobox/event.combobox.ts +0 -365
- package/src/js/combobox/index.ts +0 -382
- package/src/js/combobox/misc.combobox.ts +0 -104
- package/src/js/combobox/models.combobox.ts +0 -54
- package/src/js/combobox/state.combobox.ts +0 -246
- package/src/js/dialog.ts +0 -255
- package/src/js/floatable/floatable.embedded.ts +0 -336
- package/src/js/floatable/floatable.standalone.ts +0 -6
- package/src/js/focus-trap/focus-trap.embedded.ts +0 -411
- package/src/js/focus-trap/focus-trap.standalone.ts +0 -1
- package/src/js/index.ts +0 -16
- package/src/js/internal/attributable.ts +0 -73
- package/src/js/internal/draggable.ts +0 -657
- package/src/js/internal/listbox/listbox.constants.ts +0 -25
- package/src/js/internal/listbox/listbox.data.ts +0 -287
- package/src/js/internal/listbox/listbox.dom.ts +0 -446
- package/src/js/internal/listbox/listbox.event.ts +0 -129
- package/src/js/internal/listbox/listbox.form.ts +0 -125
- package/src/js/internal/listbox/listbox.misc.ts +0 -135
- package/src/js/internal/listbox/listbox.model.ts +0 -169
- package/src/js/internal/listbox/listbox.state.ts +0 -82
- package/src/js/internal/misc.ts +0 -27
- package/src/js/internal/navigable.ts +0 -317
- package/src/js/l10n.ts +0 -192
- package/src/js/listbox/constants.listbox.ts +0 -61
- package/src/js/listbox/event.listbox.ts +0 -106
- package/src/js/listbox/index.ts +0 -364
- package/src/js/listbox/misc.listbox.ts +0 -70
- package/src/js/listbox/state.listbox.ts +0 -194
- package/src/js/menu.ts +0 -348
- package/src/js/movable/movable.embedded.ts +0 -318
- package/src/js/movable/movable.standalone.ts +0 -2
- package/src/js/popover.ts +0 -229
- package/src/js/resizable/resizable.embedded.ts +0 -413
- package/src/js/resizable/resizable.standalone.ts +0 -5
- package/src/js/sortable/sortable.embedded.ts +0 -527
- package/src/js/sortable/sortable.standalone.ts +0 -2
- package/src/js/splitter.ts +0 -583
- package/src/js/tabs.ts +0 -441
- package/src/js/toolbar.ts +0 -63
- package/src/js/tooltip.ts +0 -367
- /package/dist/js/combobox/{models.combobox.mjs → combobox.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/splitter.mjs
DELETED
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
import { round } from "@oscarpalmer/atoms/math";
|
|
2
|
-
import { clamp } from "@oscarpalmer/atoms/number";
|
|
3
|
-
import { setAria } from "@oscarpalmer/toretto/aria";
|
|
4
|
-
import { getAttribute, setAttribute } from "@oscarpalmer/toretto/attribute";
|
|
5
|
-
import { createElement } from "@oscarpalmer/toretto/create";
|
|
6
|
-
import { getEventPosition, on } from "@oscarpalmer/toretto/event";
|
|
7
|
-
import { findAncestor } from "@oscarpalmer/toretto/find";
|
|
8
|
-
import { setStyle, toggleStyles } from "@oscarpalmer/toretto/style";
|
|
9
|
-
import supportsTouch from "@oscarpalmer/toretto/touch";
|
|
10
|
-
import { isNullableOrWhitespace } from "@oscarpalmer/atoms/is";
|
|
11
|
-
//#region src/js/splitter.ts
|
|
12
|
-
const ATTRIBUTE_MAX = "max";
|
|
13
|
-
const ATTRIBUTE_MIN = "min";
|
|
14
|
-
const ATTRIBUTE_SIZE = "size";
|
|
15
|
-
const ATTRIBUTE_TYPE = "type";
|
|
16
|
-
var OuiSplitter = class {
|
|
17
|
-
element;
|
|
18
|
-
handle;
|
|
19
|
-
panels;
|
|
20
|
-
rectangle;
|
|
21
|
-
separator;
|
|
22
|
-
types;
|
|
23
|
-
values;
|
|
24
|
-
constructor(element, panels) {
|
|
25
|
-
this.element = element;
|
|
26
|
-
this.panels = panels;
|
|
27
|
-
if (isNullableOrWhitespace(element.id)) element.id = `oui_splitter_${++index}`;
|
|
28
|
-
this.values = getValues(element);
|
|
29
|
-
this.handle = createHandle();
|
|
30
|
-
this.rectangle = element.getBoundingClientRect();
|
|
31
|
-
this.separator = createSeparator(this);
|
|
32
|
-
this.separator.append(this.handle);
|
|
33
|
-
panels[0].insertAdjacentElement("afterend", this.separator);
|
|
34
|
-
this.updateOrientation();
|
|
35
|
-
this.updateValues();
|
|
36
|
-
}
|
|
37
|
-
updateConnections(add) {
|
|
38
|
-
const method = METHODS_CONNECT[add];
|
|
39
|
-
MAPPED_ELEMENTS[method](this.element, this);
|
|
40
|
-
MAPPED_ELEMENTS[method](this.handle, this);
|
|
41
|
-
MAPPED_ELEMENTS[method](this.separator, this);
|
|
42
|
-
if (this.types.auto) RESIZE_OBSERVER[METHODS_OBSERVE[add]](this.element);
|
|
43
|
-
}
|
|
44
|
-
updateOrientation() {
|
|
45
|
-
this.types = getTypes(this);
|
|
46
|
-
if (this.types.auto) RESIZE_OBSERVER.observe(this.element);
|
|
47
|
-
else RESIZE_OBSERVER.unobserve(this.element);
|
|
48
|
-
setAttribute(this.element, ATTRIBUTE_HORIZONTAL, this.types.horizontal ? "" : void 0);
|
|
49
|
-
setAriaOrientation(this);
|
|
50
|
-
}
|
|
51
|
-
updateValues() {
|
|
52
|
-
this.values = getValues(this.element);
|
|
53
|
-
requestAnimationFrame(() => {
|
|
54
|
-
setSize(this, this.values.now.current);
|
|
55
|
-
setAriaValue(this);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
var OuiSplitterElement = class extends HTMLElement {
|
|
60
|
-
static observedAttributes = [
|
|
61
|
-
ATTRIBUTE_MAX,
|
|
62
|
-
ATTRIBUTE_MIN,
|
|
63
|
-
ATTRIBUTE_SIZE,
|
|
64
|
-
ATTRIBUTE_TYPE
|
|
65
|
-
];
|
|
66
|
-
#splitter;
|
|
67
|
-
/**
|
|
68
|
-
* Maximum size for the first panel
|
|
69
|
-
*/
|
|
70
|
-
get max() {
|
|
71
|
-
return this.#splitter.values.max;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Maximum size for the first panel
|
|
75
|
-
*/
|
|
76
|
-
set max(value) {
|
|
77
|
-
if (typeof value === "number") setAttribute(this, ATTRIBUTE_MAX, value.toString());
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Minimum size for the first panel
|
|
81
|
-
*/
|
|
82
|
-
get min() {
|
|
83
|
-
return this.#splitter.values.min;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Minimum size for the first panel
|
|
87
|
-
*/
|
|
88
|
-
set min(value) {
|
|
89
|
-
if (typeof value === "number") setAttribute(this, ATTRIBUTE_MIN, value.toString());
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Current size for the first panel
|
|
93
|
-
*/
|
|
94
|
-
get size() {
|
|
95
|
-
return this.#splitter.values.now.current;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Current size for the first panel
|
|
99
|
-
*/
|
|
100
|
-
set size(value) {
|
|
101
|
-
if (typeof value === "number") setAttribute(this, ATTRIBUTE_SIZE, value.toString());
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Orientation of the splitter
|
|
105
|
-
*/
|
|
106
|
-
get type() {
|
|
107
|
-
return getAttribute(this, ATTRIBUTE_TYPE) ?? "vertical";
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Orientation of the splitter
|
|
111
|
-
*/
|
|
112
|
-
set type(value) {
|
|
113
|
-
setAttribute(this, ATTRIBUTE_TYPE, value);
|
|
114
|
-
}
|
|
115
|
-
constructor() {
|
|
116
|
-
super();
|
|
117
|
-
const panels = [...this.children].filter((child) => child instanceof Element);
|
|
118
|
-
if (panels.length !== 2) throw new Error(MESSAGE);
|
|
119
|
-
this.#splitter = new OuiSplitter(this, panels);
|
|
120
|
-
}
|
|
121
|
-
connectedCallback() {
|
|
122
|
-
this.#splitter.updateConnections(1);
|
|
123
|
-
}
|
|
124
|
-
disconnectedCallback() {
|
|
125
|
-
this.#splitter.updateConnections(0);
|
|
126
|
-
}
|
|
127
|
-
attributeChangedCallback(name) {
|
|
128
|
-
switch (name) {
|
|
129
|
-
case ATTRIBUTE_MAX:
|
|
130
|
-
case ATTRIBUTE_MIN:
|
|
131
|
-
case ATTRIBUTE_SIZE:
|
|
132
|
-
this.#splitter.updateValues();
|
|
133
|
-
break;
|
|
134
|
-
case ATTRIBUTE_TYPE: this.#splitter.updateOrientation();
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
function createHandle() {
|
|
139
|
-
return createElement("span", {
|
|
140
|
-
aria: { hidden: true },
|
|
141
|
-
attribute: { [ATTRIBUTE_HANDLE]: "" }
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
function createSeparator(splitter) {
|
|
145
|
-
return createElement("div", {
|
|
146
|
-
aria: {
|
|
147
|
-
controls: splitter.element.id,
|
|
148
|
-
label: "Resize panels"
|
|
149
|
-
},
|
|
150
|
-
attribute: { [ATTRIBUTE_SEPARATOR]: "" },
|
|
151
|
-
property: {
|
|
152
|
-
role: "separator",
|
|
153
|
-
tabIndex: 0
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
function getContained(min, value, max) {
|
|
158
|
-
return round(clamp(value, min, max), VALUE_DECIMALS);
|
|
159
|
-
}
|
|
160
|
-
function getSize(splitter, value) {
|
|
161
|
-
const { height, left, top, width } = splitter.rectangle;
|
|
162
|
-
const fraction = (value - (splitter.types.horizontal ? top : left)) / (splitter.types.horizontal ? height : width);
|
|
163
|
-
return getContained(splitter.values.min, fraction, splitter.values.max);
|
|
164
|
-
}
|
|
165
|
-
function getTypes(splitter, width, height) {
|
|
166
|
-
const type = getAttribute(splitter.element, "type");
|
|
167
|
-
if (type === "horizontal") return {
|
|
168
|
-
auto: false,
|
|
169
|
-
horizontal: true
|
|
170
|
-
};
|
|
171
|
-
if (type === "auto") return {
|
|
172
|
-
auto: true,
|
|
173
|
-
horizontal: (height ?? splitter.rectangle.height) > (width ?? splitter.rectangle.width)
|
|
174
|
-
};
|
|
175
|
-
return {
|
|
176
|
-
auto: false,
|
|
177
|
-
horizontal: false
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
function getValue(element, name, defaultValue) {
|
|
181
|
-
const value = getAttribute(element, name);
|
|
182
|
-
if (isNullableOrWhitespace(value)) return defaultValue;
|
|
183
|
-
const parsed = Number.parseFloat(value);
|
|
184
|
-
if (Number.isNaN(parsed)) return defaultValue;
|
|
185
|
-
if (parsed < 0) return defaultValue;
|
|
186
|
-
return parsed > 1 ? parsed / NAVIGATION_MAXIMUM_TOTAL : parsed;
|
|
187
|
-
}
|
|
188
|
-
function getValues(element) {
|
|
189
|
-
const values = {
|
|
190
|
-
max: getValue(element, ATTRIBUTE_MAX, NAVIGATION_MAXIMUM_PERCENTAGE),
|
|
191
|
-
min: getValue(element, ATTRIBUTE_MIN, NAVIGATION_MINIMUM_PERCENTAGE),
|
|
192
|
-
now: {
|
|
193
|
-
current: .5,
|
|
194
|
-
previous: .5
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
const value = getContained(values.min, getValue(element, ATTRIBUTE_SIZE, values.now.current), values.max);
|
|
198
|
-
values.now.current = value;
|
|
199
|
-
values.now.previous = value;
|
|
200
|
-
return values;
|
|
201
|
-
}
|
|
202
|
-
function onEnd(reset) {
|
|
203
|
-
if (splitter == null) return;
|
|
204
|
-
splitter.handle.removeAttribute(ATTRIBUTE_ACTIVE);
|
|
205
|
-
splitter.separator.removeAttribute(ATTRIBUTE_ACTIVE);
|
|
206
|
-
if (reset) setSize(splitter, splitter.values.now.previous);
|
|
207
|
-
else splitter.values.now.previous = splitter.values.now.current;
|
|
208
|
-
splitter = void 0;
|
|
209
|
-
STYLING_TOGGLER.remove();
|
|
210
|
-
}
|
|
211
|
-
function onKeydown(event) {
|
|
212
|
-
switch (true) {
|
|
213
|
-
case KEYS_ALL.has(event.key):
|
|
214
|
-
onNavigate(event);
|
|
215
|
-
break;
|
|
216
|
-
case event.key === "Escape": onEnd(true);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
function onNavigate(event) {
|
|
220
|
-
const splitter = MAPPED_ELEMENTS.get(findAncestor(event, "[oui-splitter-separator]"));
|
|
221
|
-
if (splitter == null) return;
|
|
222
|
-
const { types, values } = splitter;
|
|
223
|
-
if (KEYS_ABSOLUTE.has(event.key)) {
|
|
224
|
-
setSize(splitter, event.key === "End" ? values.max : values.min, true);
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
if (types.horizontal && !KEYS_HORIZONTAL.has(event.key) || !(types.horizontal || KEYS_VERTICAL.has(event.key))) return;
|
|
228
|
-
const offset = KEYS_NEGATIVE.has(event.key) ? -1 : 1;
|
|
229
|
-
setSize(splitter, getContained(values.min, values.now.current + offset * NAVIGATION_MODIFIER, values.max), true);
|
|
230
|
-
}
|
|
231
|
-
function onObservation(entries) {
|
|
232
|
-
if (frame != null) cancelAnimationFrame(frame);
|
|
233
|
-
frame = requestAnimationFrame(() => {
|
|
234
|
-
for (const entry of entries) {
|
|
235
|
-
const splitter = MAPPED_ELEMENTS.get(entry.target);
|
|
236
|
-
if (splitter == null) return;
|
|
237
|
-
splitter.types = getTypes(splitter, entry.contentRect.width, entry.contentRect.height);
|
|
238
|
-
setAttribute(splitter.element, ATTRIBUTE_HORIZONTAL, splitter.types.horizontal ? "" : void 0);
|
|
239
|
-
setAriaOrientation(splitter);
|
|
240
|
-
}
|
|
241
|
-
frame = void 0;
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
function onPointerdown(event) {
|
|
245
|
-
if (supportsTouch.value ? event.type === "mousedown" : event.type === "touchstart") return;
|
|
246
|
-
splitter = MAPPED_ELEMENTS.get(findAncestor(event, SELECTOR_HANDLE));
|
|
247
|
-
if (splitter == null) return;
|
|
248
|
-
if (supportsTouch.value) event.preventDefault();
|
|
249
|
-
setAttribute(splitter.handle, ATTRIBUTE_ACTIVE, "");
|
|
250
|
-
setAttribute(splitter.separator, ATTRIBUTE_ACTIVE, "");
|
|
251
|
-
splitter.rectangle = splitter.element.getBoundingClientRect();
|
|
252
|
-
STYLING_TOGGLER.set();
|
|
253
|
-
}
|
|
254
|
-
function onPointermove(event) {
|
|
255
|
-
if (splitter == null) return;
|
|
256
|
-
const position = getEventPosition(event);
|
|
257
|
-
if (position != null) {
|
|
258
|
-
splitter.values.now.current = getSize(splitter, splitter.types.horizontal ? position.y : position.x);
|
|
259
|
-
setSize(splitter, splitter.values.now.current);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
function onPointerup() {
|
|
263
|
-
if (splitter != null) onEnd(false);
|
|
264
|
-
}
|
|
265
|
-
function setAriaOrientation(splitter) {
|
|
266
|
-
setAria(splitter.separator, "orientation", splitter.types.horizontal ? "horizontal" : "vertical");
|
|
267
|
-
}
|
|
268
|
-
function setAriaValue(splitter) {
|
|
269
|
-
setAria(splitter.separator, {
|
|
270
|
-
valuemax: splitter.values.max,
|
|
271
|
-
valuemin: splitter.values.min,
|
|
272
|
-
valuenow: splitter.values.now.current
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
function setSize(splitter, size, previous) {
|
|
276
|
-
splitter.values.now.current = size;
|
|
277
|
-
if (previous) splitter.values.now.previous = size;
|
|
278
|
-
setStyle(splitter.element, "--oui-splitter-size", `${size}`);
|
|
279
|
-
setAriaValue(splitter);
|
|
280
|
-
}
|
|
281
|
-
const TAGNAME = "oui-splitter";
|
|
282
|
-
const ATTRIBUTE_ACTIVE = `${TAGNAME}-active`;
|
|
283
|
-
const ATTRIBUTE_HANDLE = `${TAGNAME}-handle`;
|
|
284
|
-
const ATTRIBUTE_HORIZONTAL = `${TAGNAME}-horizontal`;
|
|
285
|
-
const ATTRIBUTE_SEPARATOR = `${TAGNAME}-separator`;
|
|
286
|
-
const KEYS_ABSOLUTE = /* @__PURE__ */ new Set(["End", "Home"]);
|
|
287
|
-
const KEYS_HORIZONTAL = /* @__PURE__ */ new Set(["ArrowDown", "ArrowUp"]);
|
|
288
|
-
const KEYS_NEGATIVE = /* @__PURE__ */ new Set(["ArrowLeft", "ArrowUp"]);
|
|
289
|
-
const KEYS_VERTICAL = /* @__PURE__ */ new Set(["ArrowLeft", "ArrowRight"]);
|
|
290
|
-
const KEYS_ALL = /* @__PURE__ */ new Set([
|
|
291
|
-
...KEYS_ABSOLUTE,
|
|
292
|
-
...KEYS_HORIZONTAL,
|
|
293
|
-
...KEYS_VERTICAL
|
|
294
|
-
]);
|
|
295
|
-
const MAPPED_ELEMENTS = /* @__PURE__ */ new WeakMap();
|
|
296
|
-
const MESSAGE = `<${TAGNAME}> must have exactly two panels.`;
|
|
297
|
-
const METHODS_CONNECT = ["delete", "set"];
|
|
298
|
-
const METHODS_OBSERVE = ["unobserve", "observe"];
|
|
299
|
-
const NAVIGATION_MAXIMUM_PERCENTAGE = .9;
|
|
300
|
-
const NAVIGATION_MAXIMUM_TOTAL = 100;
|
|
301
|
-
const NAVIGATION_MINIMUM_PERCENTAGE = .1;
|
|
302
|
-
const NAVIGATION_MODIFIER = .05;
|
|
303
|
-
const RESIZE_OBSERVER = new ResizeObserver(onObservation);
|
|
304
|
-
const SELECTOR_HANDLE = `[${ATTRIBUTE_HANDLE}]`;
|
|
305
|
-
const STYLING_TOGGLER = toggleStyles(document.body, {
|
|
306
|
-
touchAction: "none",
|
|
307
|
-
userSelect: "none",
|
|
308
|
-
webkitUserSelect: "none"
|
|
309
|
-
});
|
|
310
|
-
const VALUE_DECIMALS = 6;
|
|
311
|
-
let index = 0;
|
|
312
|
-
let frame;
|
|
313
|
-
let splitter;
|
|
314
|
-
on(document, "keydown", onKeydown);
|
|
315
|
-
on(document, "mousedown", onPointerdown);
|
|
316
|
-
on(document, "pointermove", onPointermove);
|
|
317
|
-
on(document, "pointerup", onPointerup);
|
|
318
|
-
on(document, "touchcancel", onPointerup);
|
|
319
|
-
on(document, "touchstart", onPointerdown, { passive: false });
|
|
320
|
-
customElements.define(TAGNAME, OuiSplitterElement);
|
|
321
|
-
//#endregion
|
|
322
|
-
export { OuiSplitterElement };
|
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-Bct4U5Dm.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 };
|
package/src/css/a11y.scss
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*! https://github.com/oscarpalmer/oui */
|
|
2
|
-
|
|
3
|
-
@use './mixins/misc.mixins.scss' as miscMixins;
|
|
4
|
-
|
|
5
|
-
.oui-vh {
|
|
6
|
-
:where(&) {
|
|
7
|
-
position: absolute !important;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
:where(&:not(:active, :focus, :focus-within)) {
|
|
11
|
-
@include miscMixins.visually-hidden;
|
|
12
|
-
}
|
|
13
|
-
}
|
package/src/css/badge.scss
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/*! https://github.com/oscarpalmer/oui */
|
|
2
|
-
|
|
3
|
-
@use './mixins/badge.mixins.scss' as badgeMixins;
|
|
4
|
-
|
|
5
|
-
.oui {
|
|
6
|
-
:where(&-pill, &-tag) {
|
|
7
|
-
@include badgeMixins.badge;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
:where(&-pill) {
|
|
11
|
-
border-radius: 3em;
|
|
12
|
-
padding: 0.5em 1em;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
:where(&-tag) {
|
|
16
|
-
border-radius: 0.25em;
|
|
17
|
-
padding: 0.5em 0.75em;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
:where(&-pill--small, &-tag--small) {
|
|
21
|
-
font-size: 0.875em;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
:where(&-pill--tiny, &-tag--tiny) {
|
|
25
|
-
color: color-mix(in oklab, var(--oui-foreground, var(--oui-gray-8)), transparent 12.5%);
|
|
26
|
-
font-size: 0.75em;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
:where(&-pill--tiny) {
|
|
30
|
-
padding: 0.25em 0.75em;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
:where(&-tag--tiny) {
|
|
34
|
-
padding: 0.25em 0.5em;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Colors
|
|
38
|
-
|
|
39
|
-
:where(&-pill--blue, &-tag--blue) {
|
|
40
|
-
@include badgeMixins.badge-blue;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
:where(&-pill--green, &-tag--green) {
|
|
44
|
-
@include badgeMixins.badge-green;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
:where(&-pill--orange, &-tag--orange) {
|
|
48
|
-
@include badgeMixins.badge-orange;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
:where(&-pill--purple, &-tag--purple) {
|
|
52
|
-
@include badgeMixins.badge-purple;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
:where(&-pill--red, &-tag--red) {
|
|
56
|
-
@include badgeMixins.badge-red;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
:where(&-pill--yellow, &-tag--yellow) {
|
|
60
|
-
@include badgeMixins.badge-yellow;
|
|
61
|
-
}
|
|
62
|
-
}
|
package/src/css/button.scss
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/*! https://github.com/oscarpalmer/oui */
|
|
2
|
-
|
|
3
|
-
@use './mixins/button.mixins.scss' as buttonMixins;
|
|
4
|
-
|
|
5
|
-
.oui-button {
|
|
6
|
-
:where(&) {
|
|
7
|
-
@include buttonMixins.button;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
:where(&--blue) {
|
|
11
|
-
@include buttonMixins.button-blue;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
:where(&--green) {
|
|
15
|
-
@include buttonMixins.button-green;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
:where(&--orange) {
|
|
19
|
-
@include buttonMixins.button-orange;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
:where(&--purple) {
|
|
23
|
-
@include buttonMixins.button-purple;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
:where(&--red) {
|
|
27
|
-
@include buttonMixins.button-red;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
:where(&--yellow) {
|
|
31
|
-
@include buttonMixins.button-yellow;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
:where(&--rounded) {
|
|
35
|
-
padding: 0.5em 1em;
|
|
36
|
-
flex-wrap: nowrap;
|
|
37
|
-
border-radius: 5em;
|
|
38
|
-
white-space: nowrap;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
:where(&--small) {
|
|
42
|
-
font-size: 0.875em;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
:where(&--tiny) {
|
|
46
|
-
--oui-foreground-percentage: 12.5%;
|
|
47
|
-
|
|
48
|
-
font-size: 0.75em;
|
|
49
|
-
}
|
|
50
|
-
}
|