@shoper/phoenix_design_system 1.18.23-1 → 1.18.23-2
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/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +14 -77
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/search/search.js +27 -0
- package/build/cjs/packages/phoenix/src/components/form/search/search.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/select/select.js +37 -18
- package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/modal/modal.js +13 -59
- package/build/cjs/packages/phoenix/src/components/modal/modal.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/modal/modal_constants.js +1 -3
- package/build/cjs/packages/phoenix/src/components/modal/modal_constants.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/sheet/sheet.js +9 -55
- package/build/cjs/packages/phoenix/src/components/sheet/sheet.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/sheet/sheet_constants.js +1 -3
- package/build/cjs/packages/phoenix/src/components/sheet/sheet_constants.js.map +1 -1
- package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js +200 -0
- package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +1 -6
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +14 -77
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/search/search.d.ts +4 -0
- package/build/esm/packages/phoenix/src/components/form/search/search.js +27 -0
- package/build/esm/packages/phoenix/src/components/form/search/search.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/select.d.ts +1 -0
- package/build/esm/packages/phoenix/src/components/form/select/select.js +37 -18
- package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/modal/modal.d.ts +1 -5
- package/build/esm/packages/phoenix/src/components/modal/modal.js +15 -61
- package/build/esm/packages/phoenix/src/components/modal/modal.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/modal/modal_constants.js +2 -3
- package/build/esm/packages/phoenix/src/components/modal/modal_constants.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/sheet/sheet.d.ts +1 -5
- package/build/esm/packages/phoenix/src/components/sheet/sheet.js +11 -57
- package/build/esm/packages/phoenix/src/components/sheet/sheet.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/sheet/sheet_constants.js +2 -3
- package/build/esm/packages/phoenix/src/components/sheet/sheet_constants.js.map +1 -1
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.d.ts +24 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js +196 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js.map +1 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.d.ts +14 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.js +2 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -5,8 +5,7 @@ const SHEET_EVENTS = {
|
|
|
5
5
|
opened: 'opened',
|
|
6
6
|
closed: 'closed'
|
|
7
7
|
};
|
|
8
|
-
const SHEET_OPENED_PROP = 'opened';
|
|
9
|
-
const FOCUSABLE_ELEMENTS_WITHIN_SHEET = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
|
|
8
|
+
const SHEET_OPENED_PROP = 'opened';
|
|
10
9
|
|
|
11
|
-
export {
|
|
10
|
+
export { SHEETS_PORTAL_NAME, SHEET_EVENTS, SHEET_OPENED_PROP };
|
|
12
11
|
//# sourceMappingURL=sheet_constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ReactiveController } from 'lit';
|
|
2
|
+
import { TFocusTrapControllerProps } from './focus_trap_controller_types';
|
|
3
|
+
export declare class FocusTrapController implements ReactiveController {
|
|
4
|
+
#private;
|
|
5
|
+
noAutofocus: boolean;
|
|
6
|
+
constructor({ host, getContainer, noAutofocus, getToggler, cyclicKeydown }: TFocusTrapControllerProps);
|
|
7
|
+
hostConnected(): void;
|
|
8
|
+
hostDisconnected(): void;
|
|
9
|
+
/** Sentinel mode only: call once in firstUpdated with the two bookend elements. */
|
|
10
|
+
setSentinels(start: HTMLElement, end: HTMLElement): void;
|
|
11
|
+
activate(): void;
|
|
12
|
+
deactivate(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Sentinel mode: move focus to the first real interactive element after the
|
|
15
|
+
* open transition completes (skips sentinelStart at index 0).
|
|
16
|
+
*/
|
|
17
|
+
focusFirst(): void;
|
|
18
|
+
private _getFocusableElements;
|
|
19
|
+
getFocusableElements(container: HTMLElement): HTMLElement[];
|
|
20
|
+
private _isElementTrulyFocusable;
|
|
21
|
+
private _handleSentinelModeKeyUp;
|
|
22
|
+
private _handleCyclicKeyDown;
|
|
23
|
+
private _handleTogglerModeKeyDown;
|
|
24
|
+
}
|
package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import 'lit';
|
|
3
|
+
import { UiDomUtils } from '@dreamcommerce/utilities';
|
|
4
|
+
|
|
5
|
+
var _FocusTrapController_getContainer, _FocusTrapController_getToggler, _FocusTrapController_cyclicKeydown, _FocusTrapController_active, _FocusTrapController_sentinelStart, _FocusTrapController_sentinelEnd;
|
|
6
|
+
class FocusTrapController {
|
|
7
|
+
constructor({ host, getContainer, noAutofocus = false, getToggler, cyclicKeydown = false }) {
|
|
8
|
+
_FocusTrapController_getContainer.set(this, void 0);
|
|
9
|
+
_FocusTrapController_getToggler.set(this, void 0);
|
|
10
|
+
_FocusTrapController_cyclicKeydown.set(this, void 0);
|
|
11
|
+
_FocusTrapController_active.set(this, false);
|
|
12
|
+
_FocusTrapController_sentinelStart.set(this, void 0);
|
|
13
|
+
_FocusTrapController_sentinelEnd.set(this, void 0);
|
|
14
|
+
// ─── Sentinel mode ───────────────────────────────────────────────────────
|
|
15
|
+
this._handleSentinelModeKeyUp = (ev) => {
|
|
16
|
+
var _a;
|
|
17
|
+
if (!__classPrivateFieldGet(this, _FocusTrapController_active, "f") || ev.code !== 'Tab')
|
|
18
|
+
return;
|
|
19
|
+
const container = __classPrivateFieldGet(this, _FocusTrapController_getContainer, "f").call(this);
|
|
20
|
+
if (!container)
|
|
21
|
+
return;
|
|
22
|
+
if (ev.shiftKey) {
|
|
23
|
+
if (document.activeElement === __classPrivateFieldGet(this, _FocusTrapController_sentinelStart, "f")) {
|
|
24
|
+
const focusableElements = this._getFocusableElements(container);
|
|
25
|
+
(_a = focusableElements[focusableElements.length - 1]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
26
|
+
ev.preventDefault();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else if (document.activeElement === __classPrivateFieldGet(this, _FocusTrapController_sentinelEnd, "f")) {
|
|
30
|
+
UiDomUtils.setFocusToFirstFocusableElementInContainer(container);
|
|
31
|
+
ev.preventDefault();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
// ─── Cyclic keydown mode ─────────────────────────────────────────────────
|
|
35
|
+
//
|
|
36
|
+
// No sentinel elements. Tab past the last focusable element wraps to the
|
|
37
|
+
// first; Shift+Tab past the first wraps to the last. Uses keydown +
|
|
38
|
+
// preventDefault so the browser never moves focus outside the container.
|
|
39
|
+
this._handleCyclicKeyDown = (ev) => {
|
|
40
|
+
if (!__classPrivateFieldGet(this, _FocusTrapController_active, "f") || ev.code !== 'Tab')
|
|
41
|
+
return;
|
|
42
|
+
const container = __classPrivateFieldGet(this, _FocusTrapController_getContainer, "f").call(this);
|
|
43
|
+
if (!container)
|
|
44
|
+
return;
|
|
45
|
+
const focusableElements = this._getFocusableElements(container);
|
|
46
|
+
if (focusableElements.length === 0)
|
|
47
|
+
return;
|
|
48
|
+
const $target = ev.target;
|
|
49
|
+
if (ev.shiftKey) {
|
|
50
|
+
if ($target === focusableElements[0]) {
|
|
51
|
+
ev.preventDefault();
|
|
52
|
+
focusableElements[focusableElements.length - 1].focus();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
if ($target === focusableElements[focusableElements.length - 1]) {
|
|
57
|
+
ev.preventDefault();
|
|
58
|
+
focusableElements[0].focus();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
// ─── Toggler mode ────────────────────────────────────────────────────────
|
|
63
|
+
//
|
|
64
|
+
// Cycle: toggler → content[0] → … → content[last] → toggler (and reverse).
|
|
65
|
+
// Uses keydown + preventDefault so the browser never moves focus on its own.
|
|
66
|
+
this._handleTogglerModeKeyDown = (ev) => {
|
|
67
|
+
var _a;
|
|
68
|
+
if (!__classPrivateFieldGet(this, _FocusTrapController_active, "f") || ev.code !== 'Tab')
|
|
69
|
+
return;
|
|
70
|
+
const container = __classPrivateFieldGet(this, _FocusTrapController_getContainer, "f").call(this);
|
|
71
|
+
const toggler = (_a = __classPrivateFieldGet(this, _FocusTrapController_getToggler, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
72
|
+
if (!container || !toggler)
|
|
73
|
+
return;
|
|
74
|
+
const $target = ev.target;
|
|
75
|
+
const focusableElements = this._getFocusableElements(container);
|
|
76
|
+
if (ev.shiftKey) {
|
|
77
|
+
// Shift+Tab on toggler → last content element
|
|
78
|
+
if (toggler.contains($target)) {
|
|
79
|
+
const last = focusableElements[focusableElements.length - 1];
|
|
80
|
+
if (!last)
|
|
81
|
+
return;
|
|
82
|
+
ev.preventDefault();
|
|
83
|
+
last.focus();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// Shift+Tab on first content element → toggler
|
|
87
|
+
if ($target === focusableElements[0]) {
|
|
88
|
+
ev.preventDefault();
|
|
89
|
+
toggler.focus();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// Tab on toggler → first content element
|
|
94
|
+
if (toggler.contains($target)) {
|
|
95
|
+
const first = focusableElements[0];
|
|
96
|
+
if (!first)
|
|
97
|
+
return;
|
|
98
|
+
ev.preventDefault();
|
|
99
|
+
first.focus();
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// Tab on last content element → toggler
|
|
103
|
+
if ($target === focusableElements[focusableElements.length - 1]) {
|
|
104
|
+
ev.preventDefault();
|
|
105
|
+
toggler.focus();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
__classPrivateFieldSet(this, _FocusTrapController_getContainer, getContainer, "f");
|
|
110
|
+
__classPrivateFieldSet(this, _FocusTrapController_getToggler, getToggler, "f");
|
|
111
|
+
__classPrivateFieldSet(this, _FocusTrapController_cyclicKeydown, cyclicKeydown, "f");
|
|
112
|
+
this.noAutofocus = noAutofocus;
|
|
113
|
+
host.addController(this);
|
|
114
|
+
}
|
|
115
|
+
hostConnected() {
|
|
116
|
+
if (__classPrivateFieldGet(this, _FocusTrapController_cyclicKeydown, "f")) {
|
|
117
|
+
document.addEventListener('keydown', this._handleCyclicKeyDown);
|
|
118
|
+
}
|
|
119
|
+
else if (__classPrivateFieldGet(this, _FocusTrapController_getToggler, "f")) {
|
|
120
|
+
document.addEventListener('keydown', this._handleTogglerModeKeyDown);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
document.addEventListener('keyup', this._handleSentinelModeKeyUp);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
hostDisconnected() {
|
|
127
|
+
if (__classPrivateFieldGet(this, _FocusTrapController_cyclicKeydown, "f")) {
|
|
128
|
+
document.removeEventListener('keydown', this._handleCyclicKeyDown);
|
|
129
|
+
}
|
|
130
|
+
else if (__classPrivateFieldGet(this, _FocusTrapController_getToggler, "f")) {
|
|
131
|
+
document.removeEventListener('keydown', this._handleTogglerModeKeyDown);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
document.removeEventListener('keyup', this._handleSentinelModeKeyUp);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** Sentinel mode only: call once in firstUpdated with the two bookend elements. */
|
|
138
|
+
setSentinels(start, end) {
|
|
139
|
+
__classPrivateFieldSet(this, _FocusTrapController_sentinelStart, start, "f");
|
|
140
|
+
__classPrivateFieldSet(this, _FocusTrapController_sentinelEnd, end, "f");
|
|
141
|
+
}
|
|
142
|
+
activate() {
|
|
143
|
+
__classPrivateFieldSet(this, _FocusTrapController_active, true, "f");
|
|
144
|
+
// Sentinel mode: move focus to sentinelStart to prime the trap.
|
|
145
|
+
if (!__classPrivateFieldGet(this, _FocusTrapController_getToggler, "f") && !this.noAutofocus) {
|
|
146
|
+
const scrollY = window.scrollY;
|
|
147
|
+
setTimeout(() => {
|
|
148
|
+
var _a;
|
|
149
|
+
(_a = __classPrivateFieldGet(this, _FocusTrapController_sentinelStart, "f")) === null || _a === void 0 ? void 0 : _a.focus();
|
|
150
|
+
window.scrollTo(0, scrollY);
|
|
151
|
+
}, 0);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
deactivate() {
|
|
155
|
+
__classPrivateFieldSet(this, _FocusTrapController_active, false, "f");
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Sentinel mode: move focus to the first real interactive element after the
|
|
159
|
+
* open transition completes (skips sentinelStart at index 0).
|
|
160
|
+
*/
|
|
161
|
+
focusFirst() {
|
|
162
|
+
if (this.noAutofocus)
|
|
163
|
+
return;
|
|
164
|
+
requestAnimationFrame(() => {
|
|
165
|
+
const container = __classPrivateFieldGet(this, _FocusTrapController_getContainer, "f").call(this);
|
|
166
|
+
if (!container)
|
|
167
|
+
return;
|
|
168
|
+
const focusableElements = this._getFocusableElements(container);
|
|
169
|
+
if (focusableElements.length > 0) {
|
|
170
|
+
focusableElements.length > 1 ? focusableElements[1].focus() : focusableElements[0].focus();
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
_getFocusableElements(container) {
|
|
175
|
+
return UiDomUtils.getFocusableElements(container).filter(($el) => this._isElementTrulyFocusable($el));
|
|
176
|
+
}
|
|
177
|
+
getFocusableElements(container) {
|
|
178
|
+
return this._getFocusableElements(container);
|
|
179
|
+
}
|
|
180
|
+
_isElementTrulyFocusable($el) {
|
|
181
|
+
const style = window.getComputedStyle($el);
|
|
182
|
+
if (style.display === 'none' || style.visibility === 'hidden') {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
if ($el.nodeName === 'H-PORTAL')
|
|
186
|
+
return true;
|
|
187
|
+
const $parent = $el.parentElement;
|
|
188
|
+
if (!$parent)
|
|
189
|
+
return true;
|
|
190
|
+
return this._isElementTrulyFocusable($parent);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
_FocusTrapController_getContainer = new WeakMap(), _FocusTrapController_getToggler = new WeakMap(), _FocusTrapController_cyclicKeydown = new WeakMap(), _FocusTrapController_active = new WeakMap(), _FocusTrapController_sentinelStart = new WeakMap(), _FocusTrapController_sentinelEnd = new WeakMap();
|
|
194
|
+
|
|
195
|
+
export { FocusTrapController };
|
|
196
|
+
//# sourceMappingURL=focus_trap_controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,+DAA+D,4CAAgD;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactiveControllerHost } from 'lit';
|
|
2
|
+
export declare type TFocusTrapControllerProps = {
|
|
3
|
+
host: ReactiveControllerHost & HTMLElement;
|
|
4
|
+
getContainer: () => HTMLElement | undefined;
|
|
5
|
+
noAutofocus?: boolean;
|
|
6
|
+
/** When provided, enables toggler mode: focus cycles between the toggler and the container's focusable elements. */
|
|
7
|
+
getToggler?: () => HTMLElement | null | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* When true, enables cyclic keydown mode: Tab past the last focusable element wraps to the
|
|
10
|
+
* first, and Shift+Tab past the first wraps to the last. No sentinel DOM elements required.
|
|
11
|
+
* Use this when the host element is not portaled and `inert` is not applied to background content.
|
|
12
|
+
*/
|
|
13
|
+
cyclicKeydown?: boolean;
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus_trap_controller_types.js","sourceRoot":"","sources":["../../../../../../../src/controllers/focus_trap_controller/focus_trap_controller_types.ts"],"names":[],"mappings":"AAAA,OAAuC,KAAK,CAAC"}
|