@stack-spot/citric-react 0.28.0 → 0.29.1
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/dist/citric.css +31 -7
- package/dist/components/Overlay/index.d.ts +1 -1
- package/dist/components/Overlay/index.d.ts.map +1 -1
- package/dist/components/Overlay/index.js +5 -4
- package/dist/components/Overlay/index.js.map +1 -1
- package/dist/components/Select/MultiSelect.d.ts.map +1 -1
- package/dist/components/Select/MultiSelect.js +6 -4
- package/dist/components/Select/MultiSelect.js.map +1 -1
- package/dist/components/Select/RichSelect.d.ts.map +1 -1
- package/dist/components/Select/RichSelect.js +1 -3
- package/dist/components/Select/RichSelect.js.map +1 -1
- package/dist/overlay.d.ts +1 -3
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +82 -24
- package/dist/overlay.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Overlay/index.tsx +5 -3
- package/src/components/Select/MultiSelect.tsx +6 -3
- package/src/components/Select/RichSelect.tsx +1 -2
- package/src/overlay.ts +87 -25
package/dist/citric.css
CHANGED
|
@@ -436,9 +436,7 @@
|
|
|
436
436
|
margin-right: 2px;
|
|
437
437
|
&:after {
|
|
438
438
|
transform: rotate(90deg);
|
|
439
|
-
top: 50%;
|
|
440
439
|
right: -5px;
|
|
441
|
-
margin-top: -1px;
|
|
442
440
|
}
|
|
443
441
|
}
|
|
444
442
|
|
|
@@ -446,10 +444,24 @@
|
|
|
446
444
|
margin-left: 2px;
|
|
447
445
|
&:after {
|
|
448
446
|
transform: rotate(270deg);
|
|
449
|
-
top: 50%;
|
|
450
447
|
left: -5px;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
&.with-arrow.right,
|
|
452
|
+
&.with-arrow.left {
|
|
453
|
+
&.align-center:after {
|
|
454
|
+
top: 50%;
|
|
451
455
|
margin-top: -1px;
|
|
452
456
|
}
|
|
457
|
+
&.align-start:after {
|
|
458
|
+
top: 0;
|
|
459
|
+
margin-top: 5px;
|
|
460
|
+
}
|
|
461
|
+
&.align-end:after {
|
|
462
|
+
bottom: 0;
|
|
463
|
+
margin-bottom: 5px;
|
|
464
|
+
}
|
|
453
465
|
}
|
|
454
466
|
|
|
455
467
|
&.with-arrow.top {
|
|
@@ -457,17 +469,29 @@
|
|
|
457
469
|
&:after {
|
|
458
470
|
transform: rotate(180deg);
|
|
459
471
|
bottom: -2px;
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
&.with-arrow.top,
|
|
476
|
+
&.with-arrow.bottom {
|
|
477
|
+
&.align-center:after {
|
|
460
478
|
left: 50%;
|
|
461
479
|
margin-left: -4px;
|
|
462
480
|
}
|
|
481
|
+
&.align-start:after {
|
|
482
|
+
left: 0;
|
|
483
|
+
margin-left: 4px;
|
|
484
|
+
}
|
|
485
|
+
&.align-end:after {
|
|
486
|
+
right: 0;
|
|
487
|
+
margin-right: 4px;
|
|
488
|
+
}
|
|
463
489
|
}
|
|
464
490
|
|
|
465
491
|
&.with-arrow.bottom {
|
|
466
492
|
margin-top: 2px;
|
|
467
493
|
&:after {
|
|
468
494
|
top: -2px;
|
|
469
|
-
left: 50%;
|
|
470
|
-
margin-left: -4px;
|
|
471
495
|
}
|
|
472
496
|
}
|
|
473
497
|
}
|
|
@@ -1288,7 +1312,7 @@ input[type="range"][data-citric="slider"] {
|
|
|
1288
1312
|
.selection-panel {
|
|
1289
1313
|
max-height: var(--max-height, var(--default-max-height));
|
|
1290
1314
|
opacity: 1;
|
|
1291
|
-
|
|
1315
|
+
.options {
|
|
1292
1316
|
overflow: auto;
|
|
1293
1317
|
animation: var(--animation-duration) rich-select-delayed-overflow;
|
|
1294
1318
|
}
|
|
@@ -1589,7 +1613,6 @@ input[type="range"][data-citric="slider"] {
|
|
|
1589
1613
|
gap: 8px;
|
|
1590
1614
|
}
|
|
1591
1615
|
label {
|
|
1592
|
-
width: 100%;
|
|
1593
1616
|
cursor: pointer;
|
|
1594
1617
|
}
|
|
1595
1618
|
input[type="checkbox"] {
|
|
@@ -2209,6 +2232,7 @@ input[data-citric="favorite"][type="checkbox"] {
|
|
|
2209
2232
|
background-color: var(--light-500);
|
|
2210
2233
|
cursor: pointer;
|
|
2211
2234
|
margin: 0;
|
|
2235
|
+
flex-shrink: 0;
|
|
2212
2236
|
|
|
2213
2237
|
/* States */
|
|
2214
2238
|
|
|
@@ -27,5 +27,5 @@ import { OverlayProps } from './types.js';
|
|
|
27
27
|
* )
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
export declare function Overlay<T extends keyof HTMLTag>({ tag, children, content, position, triggerOn, attributes, onRenderChild, autoFocusBehavior, ...props }: OverlayProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export declare function Overlay<T extends keyof HTMLTag>({ tag, children, content, position, triggerOn, alignment, attributes, onRenderChild, autoFocusBehavior, ...props }: OverlayProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Overlay/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGrC,OAAO,EAAqB,YAAY,EAAE,MAAM,SAAS,CAAA;AAOzD;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,EAC/C,GAAG,EACH,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,SAAmB,EACnB,UAAU,EACV,aAAa,EACb,iBAA8B,EAC9B,GAAG,KAAK,EACT,EAAE,YAAY,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Overlay/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGrC,OAAO,EAAqB,YAAY,EAAE,MAAM,SAAS,CAAA;AAOzD;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,EAC/C,GAAG,EACH,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,SAAmB,EACnB,SAAoB,EACpB,UAAU,EACV,aAAa,EACb,iBAA8B,EAC9B,GAAG,KAAK,EACT,EAAE,YAAY,CAAC,CAAC,CAAC,2CAgHjB"}
|
|
@@ -34,14 +34,14 @@ const arbitraryRenderTime = 20;
|
|
|
34
34
|
* )
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
|
-
export function Overlay({ tag, children, content, position = 'top', triggerOn = 'hover', attributes, onRenderChild, autoFocusBehavior = 'keyboard', ...props }) {
|
|
37
|
+
export function Overlay({ tag, children, content, position = 'top', triggerOn = 'hover', alignment = 'center', attributes, onRenderChild, autoFocusBehavior = 'keyboard', ...props }) {
|
|
38
38
|
const controller = useRef({ close: () => Promise.resolve() });
|
|
39
39
|
const wrapper = useRef(null);
|
|
40
40
|
// props that don't require removing and reattaching the event listeners
|
|
41
|
-
const dynamic = useRef({ tag, content, position, attributes });
|
|
41
|
+
const dynamic = useRef({ tag, content, position, alignment, attributes });
|
|
42
42
|
useEffect(() => {
|
|
43
|
-
dynamic.current = { tag, content, position, attributes };
|
|
44
|
-
}, [tag, content, position, attributes]);
|
|
43
|
+
dynamic.current = { tag, content, position, alignment, attributes };
|
|
44
|
+
}, [tag, content, position, alignment, attributes]);
|
|
45
45
|
useEffect(() => {
|
|
46
46
|
let visible = false;
|
|
47
47
|
let hideOnClickOutside;
|
|
@@ -71,6 +71,7 @@ export function Overlay({ tag, children, content, position = 'top', triggerOn =
|
|
|
71
71
|
: _jsx(OverlayProvider, { value: controller.current, children: dynamic.current.content }),
|
|
72
72
|
target,
|
|
73
73
|
position: dynamic.current.position,
|
|
74
|
+
alignment: dynamic.current.alignment,
|
|
74
75
|
attributes: dynamic.current.attributes,
|
|
75
76
|
});
|
|
76
77
|
hideOverlay = hideFn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Overlay/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C;;GAEG;AACH,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAE9B;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,OAAO,CAA0B,EAC/C,GAAG,EACH,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,OAAO,EACnB,UAAU,EACV,aAAa,EACb,iBAAiB,GAAG,UAAU,EAC9B,GAAG,KAAK,EACQ;IAEhB,MAAM,UAAU,GAAG,MAAM,CAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACnD,wEAAwE;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Overlay/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/Select/MultiSelect.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,MAAM,WAAW,oBAAoB,CAAC,CAAC,CAAE,SACvC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpI,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/C;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC;IACpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC,GACnH,oBAAoB,CAAC,CAAC,CAAC,CAAA;AAEzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,WAAW,GACD,CAAC,sMAmBnB,gBAAgB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/Select/MultiSelect.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,MAAM,WAAW,oBAAoB,CAAC,CAAC,CAAE,SACvC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpI,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/C;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC;IACpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC,GACnH,oBAAoB,CAAC,CAAC,CAAC,CAAA;AAEzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,WAAW,GACD,CAAC,sMAmBnB,gBAAgB,CAAC,CAAC,CAAC,4CA+FvB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { listToClass } from '@stack-spot/portal-theme';
|
|
3
3
|
import { useTranslate } from '@stack-spot/portal-translate';
|
|
4
|
-
import { useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
5
5
|
import { useCheckboxGroupControls } from '../../utils/checkbox.js';
|
|
6
6
|
import { applyCSSVariable } from '../../utils/css.js';
|
|
7
7
|
import { defaultRenderKey, defaultRenderLabel } from '../../utils/options.js';
|
|
@@ -50,6 +50,10 @@ export const MultiSelect = withRef(function MultiSelect({ ref, options, value =
|
|
|
50
50
|
useOpenPanelEffect({ open, setOpen, setSearch: controls.setFilter, element, searchable });
|
|
51
51
|
useFocusEffect({ element, focused, setFocused, setOpen });
|
|
52
52
|
useDisabledEffect({ disabled, setOpen, setFocused });
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (value !== controls.value)
|
|
55
|
+
controls.setValue(value);
|
|
56
|
+
}, [value]);
|
|
53
57
|
const header = useMemo(() => {
|
|
54
58
|
if (value.length === 0)
|
|
55
59
|
return _jsx("span", { className: "placeholder", children: placeholder });
|
|
@@ -58,11 +62,9 @@ export const MultiSelect = withRef(function MultiSelect({ ref, options, value =
|
|
|
58
62
|
?? (renderOption ? _jsx(Row, { gap: "4px", children: reversed.map(renderOption) }) : _jsx("span", { children: reversed.map(renderLabel).join(', ') })))
|
|
59
63
|
|| _jsx("span", {}));
|
|
60
64
|
}, [value, placeholder]);
|
|
61
|
-
return (_jsxs(CitricComponent, { tag: "div", component: "multi-select", style: maxHeight ? applyCSSVariable(style, 'max-height', `${maxHeight}px`) : style, className: listToClass([className, showArrow === false && 'hide-arrow', open && 'open', focused && 'focused']), ref: element, "aria-busy": loading, ...props, children: [_jsxs("header", { onClick: (
|
|
65
|
+
return (_jsxs(CitricComponent, { tag: "div", component: "multi-select", style: maxHeight ? applyCSSVariable(style, 'max-height', `${maxHeight}px`) : style, className: listToClass([className, showArrow === false && 'hide-arrow', open && 'open', focused && 'focused']), ref: element, "aria-busy": loading, ...props, children: [_jsxs("header", { onClick: () => {
|
|
62
66
|
if (disabled)
|
|
63
67
|
return;
|
|
64
|
-
if (!open)
|
|
65
|
-
e.stopPropagation();
|
|
66
68
|
setFocused(true);
|
|
67
69
|
setOpen(true);
|
|
68
70
|
}, onFocus: () => setFocused(true), "aria-label": t.accessibilityHelp, tabIndex: 0, className: renderHeader ? 'custom' : undefined, children: [header, loading && _jsx(ProgressCircular, { size: "xs", className: "loader" })] }), _jsxs("div", { className: "selection-panel", "aria-hidden": !open, ...(open ? {} : { inert: 'true' }), children: [searchable && _jsx("div", { className: "search-bar", children: _jsxs("div", { "data-citric": "field-group", className: "auto", children: [_jsx("i", { "data-citric": "icon-box", className: "citric-icon outline Search" }), _jsx(Input, { type: "search", value: controls.filter, onChange: controls.setFilter, "aria-label": t.searchAccessibility })] }) }), showSelectAll && (_jsx(Checkbox, { className: "select-all", onChange: checked => checked ? controls.selectAll() : controls.removeSelection(), value: controls.isAllSelected, children: controls.isAllSelected ? t.removeSelection : t.selectAll })), _jsx(CheckboxGroup, { className: "options", gap: "0", options: controls.options, onChange: controls.setValue, value: controls.value, renderKey: controls.renderKey, focusable: false, renderItem: (checkbox, option) => (_jsxs(CitricComponent, { component: "checkbox-row", tag: "label", className: listToClass(['option', controls.isUnfilteredButChecked(option) && 'unfiltered']), children: [checkbox, renderOption?.(option) ?? renderLabel(option)] })) })] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.js","sourceRoot":"","sources":["../../../src/components/Select/MultiSelect.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"MultiSelect.js","sourceRoot":"","sources":["../../../src/components/Select/MultiSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichSelect.d.ts","sourceRoot":"","sources":["../../../src/components/Select/RichSelect.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,eAAO,MAAM,UAAU,GACD,CAAC,kNAqBlB,WAAW,CAAC,CAAC,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"RichSelect.d.ts","sourceRoot":"","sources":["../../../src/components/Select/RichSelect.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,eAAO,MAAM,UAAU,GACD,CAAC,kNAqBlB,WAAW,CAAC,CAAC,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,4CAmFtC,CAAA"}
|
|
@@ -37,11 +37,9 @@ export const RichSelect = withRef(function RichSelect({ ref, options, value, onC
|
|
|
37
37
|
useOpenPanelEffect({ open, setOpen, setSearch, element, searchable });
|
|
38
38
|
useFocusEffect({ element, focused, setFocused, setOpen });
|
|
39
39
|
useDisabledEffect({ disabled, setOpen, setFocused });
|
|
40
|
-
return (_jsxs(CitricComponent, { tag: "div", component: "rich-select", style: maxHeight ? applyCSSVariable(style, 'max-height', `${maxHeight}px`) : style, className: listToClass([className, showArrow === false && 'hide-arrow', open && 'open', focused && 'focused']), ref: element, "aria-busy": loading, ...props, children: [_jsx(SimpleSelect, { options: options, value: value, renderLabel: renderLabel, renderKey: renderKey, required: required, disabled: disabled, onChange: onChange, onFocus: onFocus, onBlur: onBlur, wrap: false }), _jsxs("header", { onClick: (
|
|
40
|
+
return (_jsxs(CitricComponent, { tag: "div", component: "rich-select", style: maxHeight ? applyCSSVariable(style, 'max-height', `${maxHeight}px`) : style, className: listToClass([className, showArrow === false && 'hide-arrow', open && 'open', focused && 'focused']), ref: element, "aria-busy": loading, ...props, children: [_jsx(SimpleSelect, { options: options, value: value, renderLabel: renderLabel, renderKey: renderKey, required: required, disabled: disabled, onChange: onChange, onFocus: onFocus, onBlur: onBlur, wrap: false }), _jsxs("header", { onClick: () => {
|
|
41
41
|
if (disabled)
|
|
42
42
|
return;
|
|
43
|
-
if (!open)
|
|
44
|
-
e.stopPropagation();
|
|
45
43
|
setFocused(true);
|
|
46
44
|
setOpen(true);
|
|
47
45
|
}, "aria-hidden": true, children: [value === undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichSelect.js","sourceRoot":"","sources":["../../../src/components/Select/RichSelect.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RichSelect.js","sourceRoot":"","sources":["../../../src/components/Select/RichSelect.tsx"],"names":[],"mappings":"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"}
|
package/dist/overlay.d.ts
CHANGED
|
@@ -34,8 +34,6 @@ export interface OverlayOptions<T extends keyof HTMLTag> {
|
|
|
34
34
|
*/
|
|
35
35
|
position?: RelativePosition;
|
|
36
36
|
/**
|
|
37
|
-
* TODO: implement this.
|
|
38
|
-
*
|
|
39
37
|
* Affects the positioning of the overlay relative to `target`. While `position` defines the overlay position in the main axis,
|
|
40
38
|
* `alignment` defines the position in the cross axis.
|
|
41
39
|
*
|
|
@@ -68,7 +66,7 @@ export interface OverlayOptions<T extends keyof HTMLTag> {
|
|
|
68
66
|
* @param options {@link OverlayOptions}.
|
|
69
67
|
* @returns an object with two keys: "overlay" (the HTML Element created) and "hide" (a function to remove the element from the document).
|
|
70
68
|
*/
|
|
71
|
-
export declare function showOverlay<T extends keyof HTMLTag = 'div'>({ tag, content, target, reference, position, attributes }: OverlayOptions<T>): {
|
|
69
|
+
export declare function showOverlay<T extends keyof HTMLTag = 'div'>({ tag, content, target, reference, position, alignment, attributes }: OverlayOptions<T>): {
|
|
72
70
|
/**
|
|
73
71
|
* The overlay element created.
|
|
74
72
|
*/
|
package/dist/overlay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGrD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAElE,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,OAAO;IACrD;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC;IACR;;;;;OAKG;IACH,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,MAAM,EAAE,KAAK,GAAG,WAAW,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGrD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAElE,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,OAAO;IACrD;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC;IACR;;;;;OAKG;IACH,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,MAAM,EAAE,KAAK,GAAG,WAAW,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD;;OAEG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,kBAAkB,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAClF;AA+MD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,KAAK,EACzD,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,SAAqB,EAAE,QAAgB,EAAE,SAAoB,EAAE,UAAU,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IA+CpH;;OAEG;;IAEH;;;OAGG;;IAEH;;OAEG;;EAKN"}
|
package/dist/overlay.js
CHANGED
|
@@ -5,7 +5,21 @@ function hasMargins(element) {
|
|
|
5
5
|
const s = element.style;
|
|
6
6
|
return s.margin || s.marginTop || s.marginBottom || s.marginLeft || s.marginRight;
|
|
7
7
|
}
|
|
8
|
-
function
|
|
8
|
+
function calculateAlignment(alignment, offset, size, scroll) {
|
|
9
|
+
switch (alignment) {
|
|
10
|
+
case 'center': return offset + size / 2 + scroll;
|
|
11
|
+
case 'end': return offset + size + scroll;
|
|
12
|
+
case 'start': return offset + scroll;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function calculateAlignmentOffset(alignment, overlaySize) {
|
|
16
|
+
switch (alignment) {
|
|
17
|
+
case 'center': return overlaySize / 2;
|
|
18
|
+
case 'end': return overlaySize;
|
|
19
|
+
case 'start': return 0;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function calculatePosition({ overlay, reference, target, position: relativePosition, alignment, }) {
|
|
9
23
|
const overlayDimensions = overlay.getBoundingClientRect();
|
|
10
24
|
if (hasMargins(overlay)) {
|
|
11
25
|
const style = overlay.computedStyleMap();
|
|
@@ -35,18 +49,18 @@ function calculatePosition({ overlay, reference, target, position: relativePosit
|
|
|
35
49
|
switch (relativePosition) {
|
|
36
50
|
case 'top':
|
|
37
51
|
referencePosition.top = elementDimensions.top + window.scrollY;
|
|
38
|
-
referencePosition.left = elementDimensions.left
|
|
52
|
+
referencePosition.left = calculateAlignment(alignment, elementDimensions.left, elementDimensions.width, window.scrollX);
|
|
39
53
|
break;
|
|
40
54
|
case 'bottom':
|
|
41
55
|
referencePosition.top = elementDimensions.bottom + window.scrollY;
|
|
42
|
-
referencePosition.left = elementDimensions.left
|
|
56
|
+
referencePosition.left = calculateAlignment(alignment, elementDimensions.left, elementDimensions.width, window.scrollX);
|
|
43
57
|
break;
|
|
44
58
|
case 'left':
|
|
45
|
-
referencePosition.top = elementDimensions.top
|
|
59
|
+
referencePosition.top = calculateAlignment(alignment, elementDimensions.top, elementDimensions.height, window.scrollY);
|
|
46
60
|
referencePosition.left = elementDimensions.left + window.scrollX;
|
|
47
61
|
break;
|
|
48
62
|
case 'right':
|
|
49
|
-
referencePosition.top = elementDimensions.top
|
|
63
|
+
referencePosition.top = calculateAlignment(alignment, elementDimensions.top, elementDimensions.height, window.scrollY);
|
|
50
64
|
referencePosition.left = elementDimensions.right + window.scrollX;
|
|
51
65
|
}
|
|
52
66
|
}
|
|
@@ -54,17 +68,17 @@ function calculatePosition({ overlay, reference, target, position: relativePosit
|
|
|
54
68
|
switch (relativePosition) {
|
|
55
69
|
case 'top':
|
|
56
70
|
position.top -= overlayDimensions.height;
|
|
57
|
-
position.left -= overlayDimensions.width
|
|
71
|
+
position.left -= calculateAlignmentOffset(alignment, overlayDimensions.width);
|
|
58
72
|
break;
|
|
59
73
|
case 'bottom':
|
|
60
|
-
position.left -= overlayDimensions.width
|
|
74
|
+
position.left -= calculateAlignmentOffset(alignment, overlayDimensions.width);
|
|
61
75
|
break;
|
|
62
76
|
case 'left':
|
|
63
|
-
position.top -= overlayDimensions.height
|
|
77
|
+
position.top -= calculateAlignmentOffset(alignment, overlayDimensions.height);
|
|
64
78
|
position.left -= overlayDimensions.width;
|
|
65
79
|
break;
|
|
66
80
|
case 'right':
|
|
67
|
-
position.top -= overlayDimensions.height
|
|
81
|
+
position.top -= calculateAlignmentOffset(alignment, overlayDimensions.height);
|
|
68
82
|
}
|
|
69
83
|
return position;
|
|
70
84
|
}
|
|
@@ -134,6 +148,46 @@ function setElementAttributes(element, attributes, ignore = []) {
|
|
|
134
148
|
element.setAttribute(reactAttributeToHTML(attr), attributes[attr]);
|
|
135
149
|
}
|
|
136
150
|
}
|
|
151
|
+
function getClosestScrollable(element, limit = document.body) {
|
|
152
|
+
if (element === limit)
|
|
153
|
+
return;
|
|
154
|
+
return element.clientHeight === element.scrollHeight ? getClosestScrollable(element.parentElement, limit) : element;
|
|
155
|
+
}
|
|
156
|
+
function isElementVisible(element, scrollable) {
|
|
157
|
+
const elementRect = element.getBoundingClientRect();
|
|
158
|
+
const scrollableRect = scrollable.getBoundingClientRect();
|
|
159
|
+
const diffX = elementRect.left - scrollableRect.left + scrollable.scrollLeft;
|
|
160
|
+
const isVisibleX = diffX + elementRect.width <= scrollable.scrollLeft + scrollableRect.width &&
|
|
161
|
+
diffX >= scrollable.scrollLeft;
|
|
162
|
+
const diffY = elementRect.top - scrollableRect.top + scrollable.scrollTop;
|
|
163
|
+
const isVisibleY = diffY + elementRect.height <= scrollable.scrollTop + scrollableRect.height &&
|
|
164
|
+
diffY >= scrollable.scrollTop;
|
|
165
|
+
return isVisibleX && isVisibleY;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* The tooltip may be inside a scrollable element. If this is the case, we must update its position whenever the container is scrolled.
|
|
169
|
+
* If the container is scrolled enough to hide the element that triggered the overlay, we hide the overlay.
|
|
170
|
+
*/
|
|
171
|
+
function attachScrollEffects(target, overlay, hide) {
|
|
172
|
+
const element = target instanceof Event ? target.target : target;
|
|
173
|
+
const closestScrollableFromTarget = getClosestScrollable(element, overlay.parentNode);
|
|
174
|
+
if (closestScrollableFromTarget) {
|
|
175
|
+
let lastScrollX = closestScrollableFromTarget.scrollLeft;
|
|
176
|
+
let lastScrollY = closestScrollableFromTarget.scrollTop;
|
|
177
|
+
const updatePosition = () => {
|
|
178
|
+
if (!isElementVisible(element, closestScrollableFromTarget))
|
|
179
|
+
return hide();
|
|
180
|
+
const diffX = closestScrollableFromTarget.scrollLeft - lastScrollX;
|
|
181
|
+
const diffY = closestScrollableFromTarget.scrollTop - lastScrollY;
|
|
182
|
+
overlay.style.left = `${parseInt(overlay.style.left) - diffX}px`;
|
|
183
|
+
overlay.style.top = `${parseInt(overlay.style.top) - diffY}px`;
|
|
184
|
+
lastScrollX = closestScrollableFromTarget.scrollLeft;
|
|
185
|
+
lastScrollY = closestScrollableFromTarget.scrollTop;
|
|
186
|
+
};
|
|
187
|
+
closestScrollableFromTarget.addEventListener('scroll', updatePosition);
|
|
188
|
+
return () => closestScrollableFromTarget.removeEventListener('scroll', updatePosition);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
137
191
|
/**
|
|
138
192
|
* Appends a new HTML Element to the tag "body". This element is absolutely positioned and its position is calculated according to the
|
|
139
193
|
* options passed as parameter.
|
|
@@ -142,7 +196,8 @@ function setElementAttributes(element, attributes, ignore = []) {
|
|
|
142
196
|
* @param options {@link OverlayOptions}.
|
|
143
197
|
* @returns an object with two keys: "overlay" (the HTML Element created) and "hide" (a function to remove the element from the document).
|
|
144
198
|
*/
|
|
145
|
-
export function showOverlay({ tag, content, target, reference = 'element', position = 'top', attributes }) {
|
|
199
|
+
export function showOverlay({ tag, content, target, reference = 'element', position = 'top', alignment = 'center', attributes }) {
|
|
200
|
+
let removeScrollEffects;
|
|
146
201
|
const overlay = document.createElement(tag || 'div');
|
|
147
202
|
overlay.style = `z-index: 9999; pointer-events: none; position: absolute; opacity: 0; transition: opacity ${animationDurationMS / 1000}s; ${styleObjectToCssString(attributes?.style)}`;
|
|
148
203
|
overlay.inert = true;
|
|
@@ -161,14 +216,28 @@ export function showOverlay({ tag, content, target, reference = 'element', posit
|
|
|
161
216
|
document.body.removeChild(overlay);
|
|
162
217
|
};
|
|
163
218
|
}
|
|
219
|
+
const hide = () => new Promise((resolve) => {
|
|
220
|
+
overlay.style.opacity = '0';
|
|
221
|
+
overlay.style.pointerEvents = 'none';
|
|
222
|
+
overlay.inert = true;
|
|
223
|
+
setTimeout(() => {
|
|
224
|
+
try {
|
|
225
|
+
removeScrollEffects?.();
|
|
226
|
+
unmount();
|
|
227
|
+
}
|
|
228
|
+
catch { /* empty */ }
|
|
229
|
+
resolve();
|
|
230
|
+
}, animationDurationMS);
|
|
231
|
+
});
|
|
164
232
|
setTimeout(() => {
|
|
165
|
-
const overlayPos = getSafeOverlayPosition({ overlay, reference, target }, [position, invert(position), ...oppositeAxis(position)]);
|
|
233
|
+
const overlayPos = getSafeOverlayPosition({ alignment, overlay, reference, target }, [position, invert(position), ...oppositeAxis(position)]);
|
|
166
234
|
overlay.style = `z-index: 9999; position: absolute; opacity: 1; transition: opacity ${animationDurationMS / 1000}s; top: ${overlayPos.top}px; left: ${overlayPos.left}px; ${styleObjectToCssString(attributes?.style)}`;
|
|
167
235
|
if (attributes && 'inert' in attributes && attributes.inert)
|
|
168
236
|
overlay.style.pointerEvents = 'none';
|
|
169
237
|
else
|
|
170
238
|
overlay.inert = false;
|
|
171
|
-
overlay.classList.add(overlayPos.relativeTo);
|
|
239
|
+
overlay.classList.add(overlayPos.relativeTo, `align-${alignment}`);
|
|
240
|
+
removeScrollEffects = attachScrollEffects(target, overlay, hide);
|
|
172
241
|
}, 0);
|
|
173
242
|
return {
|
|
174
243
|
/**
|
|
@@ -179,18 +248,7 @@ export function showOverlay({ tag, content, target, reference = 'element', posit
|
|
|
179
248
|
* Removes the overlay element.
|
|
180
249
|
* @returns a promise that completes when the element is fully removed (after any animation).
|
|
181
250
|
*/
|
|
182
|
-
hide
|
|
183
|
-
overlay.style.opacity = '0';
|
|
184
|
-
overlay.style.pointerEvents = 'none';
|
|
185
|
-
overlay.inert = true;
|
|
186
|
-
setTimeout(() => {
|
|
187
|
-
try {
|
|
188
|
-
unmount();
|
|
189
|
-
}
|
|
190
|
-
catch { /* empty */ }
|
|
191
|
-
resolve();
|
|
192
|
-
}, animationDurationMS);
|
|
193
|
-
}),
|
|
251
|
+
hide,
|
|
194
252
|
/**
|
|
195
253
|
* Returns a promise that resolves as soon as the overlay finishes the animation to show up.
|
|
196
254
|
*/
|
package/dist/overlay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -44,6 +44,7 @@ export function Overlay<T extends keyof HTMLTag>({
|
|
|
44
44
|
content,
|
|
45
45
|
position = 'top',
|
|
46
46
|
triggerOn = 'hover',
|
|
47
|
+
alignment = 'center',
|
|
47
48
|
attributes,
|
|
48
49
|
onRenderChild,
|
|
49
50
|
autoFocusBehavior = 'keyboard',
|
|
@@ -53,11 +54,11 @@ export function Overlay<T extends keyof HTMLTag>({
|
|
|
53
54
|
const controller = useRef<OverlayController>({ close: () => Promise.resolve() })
|
|
54
55
|
const wrapper = useRef<HTMLDivElement | null>(null)
|
|
55
56
|
// props that don't require removing and reattaching the event listeners
|
|
56
|
-
const dynamic = useRef({ tag, content, position, attributes })
|
|
57
|
+
const dynamic = useRef({ tag, content, position, alignment, attributes })
|
|
57
58
|
|
|
58
59
|
useEffect(() => {
|
|
59
|
-
dynamic.current = { tag, content, position, attributes }
|
|
60
|
-
}, [tag, content, position, attributes])
|
|
60
|
+
dynamic.current = { tag, content, position, alignment, attributes }
|
|
61
|
+
}, [tag, content, position, alignment, attributes])
|
|
61
62
|
|
|
62
63
|
useEffect(() => {
|
|
63
64
|
let visible = false
|
|
@@ -88,6 +89,7 @@ export function Overlay<T extends keyof HTMLTag>({
|
|
|
88
89
|
: <OverlayProvider value={controller.current}>{dynamic.current.content}</OverlayProvider>,
|
|
89
90
|
target,
|
|
90
91
|
position: dynamic.current.position,
|
|
92
|
+
alignment: dynamic.current.alignment,
|
|
91
93
|
attributes: dynamic.current.attributes,
|
|
92
94
|
})
|
|
93
95
|
hideOverlay = hideFn
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { listToClass } from '@stack-spot/portal-theme'
|
|
2
2
|
import { useTranslate } from '@stack-spot/portal-translate'
|
|
3
|
-
import { useMemo, useRef, useState } from 'react'
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from 'react'
|
|
4
4
|
import { useCheckboxGroupControls } from '../../utils/checkbox'
|
|
5
5
|
import { applyCSSVariable } from '../../utils/css'
|
|
6
6
|
import { defaultRenderKey, defaultRenderLabel } from '../../utils/options'
|
|
@@ -114,6 +114,10 @@ export const MultiSelect = withRef(
|
|
|
114
114
|
useFocusEffect({ element, focused, setFocused, setOpen })
|
|
115
115
|
useDisabledEffect({ disabled, setOpen, setFocused })
|
|
116
116
|
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
if (value !== controls.value) controls.setValue(value)
|
|
119
|
+
}, [value])
|
|
120
|
+
|
|
117
121
|
const header = useMemo(() => {
|
|
118
122
|
if (value.length === 0) return <span className="placeholder">{placeholder}</span>
|
|
119
123
|
const reversed = [...value].reverse()
|
|
@@ -134,9 +138,8 @@ export const MultiSelect = withRef(
|
|
|
134
138
|
{...props}
|
|
135
139
|
>
|
|
136
140
|
<header
|
|
137
|
-
onClick={(
|
|
141
|
+
onClick={() => {
|
|
138
142
|
if (disabled) return
|
|
139
|
-
if (!open) e.stopPropagation()
|
|
140
143
|
setFocused(true)
|
|
141
144
|
setOpen(true)
|
|
142
145
|
}}
|
package/src/overlay.ts
CHANGED
|
@@ -38,8 +38,6 @@ export interface OverlayOptions<T extends keyof HTMLTag> {
|
|
|
38
38
|
*/
|
|
39
39
|
position?: RelativePosition,
|
|
40
40
|
/**
|
|
41
|
-
* TODO: implement this.
|
|
42
|
-
*
|
|
43
41
|
* Affects the positioning of the overlay relative to `target`. While `position` defines the overlay position in the main axis,
|
|
44
42
|
* `alignment` defines the position in the cross axis.
|
|
45
43
|
*
|
|
@@ -72,7 +70,7 @@ interface PositionWithRelativeData extends Position {
|
|
|
72
70
|
relativeTo: RelativePosition,
|
|
73
71
|
}
|
|
74
72
|
|
|
75
|
-
type CalculatePosOptions = Pick<Required<OverlayOptions<any>>, 'position' | 'target' | 'reference'>
|
|
73
|
+
type CalculatePosOptions = Pick<Required<OverlayOptions<any>>, 'position' | 'target' | 'reference' | 'alignment'>
|
|
76
74
|
& { overlay: HTMLElement }
|
|
77
75
|
|
|
78
76
|
const animationDurationMS = 300
|
|
@@ -82,11 +80,28 @@ function hasMargins(element: HTMLElement) {
|
|
|
82
80
|
return s.margin || s.marginTop || s.marginBottom || s.marginLeft || s.marginRight
|
|
83
81
|
}
|
|
84
82
|
|
|
83
|
+
function calculateAlignment(alignment: CalculatePosOptions['alignment'], offset: number, size: number, scroll: number) {
|
|
84
|
+
switch (alignment) {
|
|
85
|
+
case 'center': return offset + size / 2 + scroll
|
|
86
|
+
case 'end': return offset + size + scroll
|
|
87
|
+
case 'start': return offset + scroll
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function calculateAlignmentOffset(alignment: CalculatePosOptions['alignment'], overlaySize: number) {
|
|
92
|
+
switch (alignment) {
|
|
93
|
+
case 'center': return overlaySize / 2
|
|
94
|
+
case 'end': return overlaySize
|
|
95
|
+
case 'start': return 0
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
85
99
|
function calculatePosition({
|
|
86
100
|
overlay,
|
|
87
101
|
reference,
|
|
88
102
|
target,
|
|
89
103
|
position: relativePosition,
|
|
104
|
+
alignment,
|
|
90
105
|
}: CalculatePosOptions): Position & { overlayWidth: number, overlayHeight: number } {
|
|
91
106
|
const overlayDimensions = overlay.getBoundingClientRect()
|
|
92
107
|
if (hasMargins(overlay)) {
|
|
@@ -111,18 +126,18 @@ function calculatePosition({
|
|
|
111
126
|
switch (relativePosition) {
|
|
112
127
|
case 'top':
|
|
113
128
|
referencePosition.top = elementDimensions.top + window.scrollY
|
|
114
|
-
referencePosition.left = elementDimensions.left
|
|
129
|
+
referencePosition.left = calculateAlignment(alignment, elementDimensions.left, elementDimensions.width, window.scrollX)
|
|
115
130
|
break
|
|
116
131
|
case 'bottom':
|
|
117
132
|
referencePosition.top = elementDimensions.bottom + window.scrollY
|
|
118
|
-
referencePosition.left = elementDimensions.left
|
|
133
|
+
referencePosition.left = calculateAlignment(alignment, elementDimensions.left, elementDimensions.width, window.scrollX)
|
|
119
134
|
break
|
|
120
135
|
case 'left':
|
|
121
|
-
referencePosition.top = elementDimensions.top
|
|
136
|
+
referencePosition.top = calculateAlignment(alignment, elementDimensions.top, elementDimensions.height, window.scrollY)
|
|
122
137
|
referencePosition.left = elementDimensions.left + window.scrollX
|
|
123
138
|
break
|
|
124
139
|
case 'right':
|
|
125
|
-
referencePosition.top = elementDimensions.top
|
|
140
|
+
referencePosition.top = calculateAlignment(alignment, elementDimensions.top, elementDimensions.height, window.scrollY)
|
|
126
141
|
referencePosition.left = elementDimensions.right + window.scrollX
|
|
127
142
|
}
|
|
128
143
|
}
|
|
@@ -130,17 +145,17 @@ function calculatePosition({
|
|
|
130
145
|
switch (relativePosition) {
|
|
131
146
|
case 'top':
|
|
132
147
|
position.top -= overlayDimensions.height
|
|
133
|
-
position.left -= overlayDimensions.width
|
|
148
|
+
position.left -= calculateAlignmentOffset(alignment, overlayDimensions.width)
|
|
134
149
|
break
|
|
135
150
|
case 'bottom':
|
|
136
|
-
position.left -= overlayDimensions.width
|
|
151
|
+
position.left -= calculateAlignmentOffset(alignment, overlayDimensions.width)
|
|
137
152
|
break
|
|
138
153
|
case 'left':
|
|
139
|
-
position.top -= overlayDimensions.height
|
|
154
|
+
position.top -= calculateAlignmentOffset(alignment, overlayDimensions.height)
|
|
140
155
|
position.left -= overlayDimensions.width
|
|
141
156
|
break
|
|
142
157
|
case 'right':
|
|
143
|
-
position.top -= overlayDimensions.height
|
|
158
|
+
position.top -= calculateAlignmentOffset(alignment, overlayDimensions.height)
|
|
144
159
|
}
|
|
145
160
|
return position
|
|
146
161
|
}
|
|
@@ -210,6 +225,47 @@ function setElementAttributes(element: HTMLElement, attributes: Record<string, a
|
|
|
210
225
|
}
|
|
211
226
|
}
|
|
212
227
|
|
|
228
|
+
function getClosestScrollable(element: HTMLElement, limit: HTMLElement = document.body): HTMLElement | null | undefined {
|
|
229
|
+
if (element === limit) return
|
|
230
|
+
return element.clientHeight === element.scrollHeight ? getClosestScrollable(element.parentElement!, limit) : element
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
function isElementVisible(element: HTMLElement, scrollable: HTMLElement) {
|
|
234
|
+
const elementRect = element.getBoundingClientRect()
|
|
235
|
+
const scrollableRect = scrollable.getBoundingClientRect()
|
|
236
|
+
const diffX = elementRect.left - scrollableRect.left + scrollable.scrollLeft
|
|
237
|
+
const isVisibleX = diffX + elementRect.width <= scrollable.scrollLeft + scrollableRect.width &&
|
|
238
|
+
diffX >= scrollable.scrollLeft
|
|
239
|
+
const diffY = elementRect.top - scrollableRect.top + scrollable.scrollTop
|
|
240
|
+
const isVisibleY = diffY + elementRect.height <= scrollable.scrollTop + scrollableRect.height &&
|
|
241
|
+
diffY >= scrollable.scrollTop
|
|
242
|
+
return isVisibleX && isVisibleY
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* The tooltip may be inside a scrollable element. If this is the case, we must update its position whenever the container is scrolled.
|
|
247
|
+
* If the container is scrolled enough to hide the element that triggered the overlay, we hide the overlay.
|
|
248
|
+
*/
|
|
249
|
+
function attachScrollEffects(target: OverlayOptions<any>['target'], overlay: HTMLElement, hide: () => void) {
|
|
250
|
+
const element = target instanceof Event ? target.target as HTMLElement : target
|
|
251
|
+
const closestScrollableFromTarget = getClosestScrollable(element, overlay.parentNode as HTMLElement)
|
|
252
|
+
if (closestScrollableFromTarget) {
|
|
253
|
+
let lastScrollX = closestScrollableFromTarget.scrollLeft
|
|
254
|
+
let lastScrollY = closestScrollableFromTarget.scrollTop
|
|
255
|
+
const updatePosition = () => {
|
|
256
|
+
if (!isElementVisible(element, closestScrollableFromTarget)) return hide()
|
|
257
|
+
const diffX = closestScrollableFromTarget.scrollLeft - lastScrollX
|
|
258
|
+
const diffY = closestScrollableFromTarget.scrollTop - lastScrollY
|
|
259
|
+
overlay.style.left = `${parseInt(overlay.style.left) - diffX}px`
|
|
260
|
+
overlay.style.top = `${parseInt(overlay.style.top) - diffY}px`
|
|
261
|
+
lastScrollX = closestScrollableFromTarget.scrollLeft
|
|
262
|
+
lastScrollY = closestScrollableFromTarget.scrollTop
|
|
263
|
+
}
|
|
264
|
+
closestScrollableFromTarget.addEventListener('scroll', updatePosition)
|
|
265
|
+
return () => closestScrollableFromTarget.removeEventListener('scroll', updatePosition)
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
213
269
|
/**
|
|
214
270
|
* Appends a new HTML Element to the tag "body". This element is absolutely positioned and its position is calculated according to the
|
|
215
271
|
* options passed as parameter.
|
|
@@ -219,8 +275,9 @@ function setElementAttributes(element: HTMLElement, attributes: Record<string, a
|
|
|
219
275
|
* @returns an object with two keys: "overlay" (the HTML Element created) and "hide" (a function to remove the element from the document).
|
|
220
276
|
*/
|
|
221
277
|
export function showOverlay<T extends keyof HTMLTag = 'div'>(
|
|
222
|
-
{ tag, content, target, reference = 'element', position = 'top', attributes }: OverlayOptions<T>,
|
|
278
|
+
{ tag, content, target, reference = 'element', position = 'top', alignment = 'center', attributes }: OverlayOptions<T>,
|
|
223
279
|
) {
|
|
280
|
+
let removeScrollEffects: (() => void) | undefined
|
|
224
281
|
const overlay = document.createElement(tag || 'div')
|
|
225
282
|
overlay.style = `z-index: 9999; pointer-events: none; position: absolute; opacity: 0; transition: opacity ${animationDurationMS / 1000}s; ${styleObjectToCssString(attributes?.style)}`
|
|
226
283
|
overlay.inert = true
|
|
@@ -238,15 +295,30 @@ export function showOverlay<T extends keyof HTMLTag = 'div'>(
|
|
|
238
295
|
document.body.removeChild(overlay)
|
|
239
296
|
}
|
|
240
297
|
}
|
|
298
|
+
|
|
299
|
+
const hide = () => new Promise<void>((resolve) => {
|
|
300
|
+
overlay.style.opacity = '0'
|
|
301
|
+
overlay.style.pointerEvents = 'none'
|
|
302
|
+
overlay.inert = true
|
|
303
|
+
setTimeout(() => {
|
|
304
|
+
try {
|
|
305
|
+
removeScrollEffects?.()
|
|
306
|
+
unmount()
|
|
307
|
+
} catch { /* empty */ }
|
|
308
|
+
resolve()
|
|
309
|
+
}, animationDurationMS)
|
|
310
|
+
})
|
|
311
|
+
|
|
241
312
|
setTimeout(() => {
|
|
242
313
|
const overlayPos = getSafeOverlayPosition(
|
|
243
|
-
{ overlay, reference, target },
|
|
314
|
+
{ alignment, overlay, reference, target },
|
|
244
315
|
[position, invert(position), ...oppositeAxis(position)],
|
|
245
316
|
)
|
|
246
317
|
overlay.style = `z-index: 9999; position: absolute; opacity: 1; transition: opacity ${animationDurationMS / 1000}s; top: ${overlayPos.top}px; left: ${overlayPos.left}px; ${styleObjectToCssString(attributes?.style)}`
|
|
247
318
|
if (attributes && 'inert' in attributes && attributes.inert) overlay.style.pointerEvents = 'none'
|
|
248
319
|
else overlay.inert = false
|
|
249
|
-
overlay.classList.add(overlayPos.relativeTo)
|
|
320
|
+
overlay.classList.add(overlayPos.relativeTo, `align-${alignment}`)
|
|
321
|
+
removeScrollEffects = attachScrollEffects(target, overlay, hide)
|
|
250
322
|
}, 0)
|
|
251
323
|
|
|
252
324
|
return {
|
|
@@ -258,17 +330,7 @@ export function showOverlay<T extends keyof HTMLTag = 'div'>(
|
|
|
258
330
|
* Removes the overlay element.
|
|
259
331
|
* @returns a promise that completes when the element is fully removed (after any animation).
|
|
260
332
|
*/
|
|
261
|
-
hide
|
|
262
|
-
overlay.style.opacity = '0'
|
|
263
|
-
overlay.style.pointerEvents = 'none'
|
|
264
|
-
overlay.inert = true
|
|
265
|
-
setTimeout(() => {
|
|
266
|
-
try {
|
|
267
|
-
unmount()
|
|
268
|
-
} catch { /* empty */ }
|
|
269
|
-
resolve()
|
|
270
|
-
}, animationDurationMS)
|
|
271
|
-
}),
|
|
333
|
+
hide,
|
|
272
334
|
/**
|
|
273
335
|
* Returns a promise that resolves as soon as the overlay finishes the animation to show up.
|
|
274
336
|
*/
|