@shoper/phoenix_design_system 1.15.13 → 1.16.1-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.
Files changed (45) hide show
  1. package/build/cjs/packages/phoenix/src/components/sheet/sheet.js +261 -0
  2. package/build/cjs/packages/phoenix/src/components/sheet/sheet.js.map +1 -0
  3. package/build/cjs/packages/phoenix/src/components/sheet/sheet_body.js +20 -0
  4. package/build/cjs/packages/phoenix/src/components/sheet/sheet_body.js.map +1 -0
  5. package/build/cjs/packages/phoenix/src/components/sheet/sheet_close.js +38 -0
  6. package/build/cjs/packages/phoenix/src/components/sheet/sheet_close.js.map +1 -0
  7. package/build/cjs/packages/phoenix/src/components/sheet/sheet_constants.js +19 -0
  8. package/build/cjs/packages/phoenix/src/components/sheet/sheet_constants.js.map +1 -0
  9. package/build/cjs/packages/phoenix/src/components/sheet/sheet_footer.js +20 -0
  10. package/build/cjs/packages/phoenix/src/components/sheet/sheet_footer.js.map +1 -0
  11. package/build/cjs/packages/phoenix/src/components/sheet/sheet_header.js +20 -0
  12. package/build/cjs/packages/phoenix/src/components/sheet/sheet_header.js.map +1 -0
  13. package/build/cjs/packages/phoenix/src/components/sheet/sheet_opener.js +45 -0
  14. package/build/cjs/packages/phoenix/src/components/sheet/sheet_opener.js.map +1 -0
  15. package/build/cjs/packages/phoenix/src/components/slider/slider.js +4 -0
  16. package/build/cjs/packages/phoenix/src/components/slider/slider.js.map +1 -1
  17. package/build/cjs/packages/phoenix/src/index.js +44 -0
  18. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  19. package/build/esm/packages/phoenix/src/components/sheet/sheet.d.ts +37 -0
  20. package/build/esm/packages/phoenix/src/components/sheet/sheet.js +259 -0
  21. package/build/esm/packages/phoenix/src/components/sheet/sheet.js.map +1 -0
  22. package/build/esm/packages/phoenix/src/components/sheet/sheet_body.d.ts +4 -0
  23. package/build/esm/packages/phoenix/src/components/sheet/sheet_body.js +18 -0
  24. package/build/esm/packages/phoenix/src/components/sheet/sheet_body.js.map +1 -0
  25. package/build/esm/packages/phoenix/src/components/sheet/sheet_close.d.ts +8 -0
  26. package/build/esm/packages/phoenix/src/components/sheet/sheet_close.js +36 -0
  27. package/build/esm/packages/phoenix/src/components/sheet/sheet_close.js.map +1 -0
  28. package/build/esm/packages/phoenix/src/components/sheet/sheet_constants.d.ts +9 -0
  29. package/build/esm/packages/phoenix/src/components/sheet/sheet_constants.js +12 -0
  30. package/build/esm/packages/phoenix/src/components/sheet/sheet_constants.js.map +1 -0
  31. package/build/esm/packages/phoenix/src/components/sheet/sheet_footer.d.ts +4 -0
  32. package/build/esm/packages/phoenix/src/components/sheet/sheet_footer.js +18 -0
  33. package/build/esm/packages/phoenix/src/components/sheet/sheet_footer.js.map +1 -0
  34. package/build/esm/packages/phoenix/src/components/sheet/sheet_header.d.ts +4 -0
  35. package/build/esm/packages/phoenix/src/components/sheet/sheet_header.js +18 -0
  36. package/build/esm/packages/phoenix/src/components/sheet/sheet_header.js.map +1 -0
  37. package/build/esm/packages/phoenix/src/components/sheet/sheet_opener.d.ts +9 -0
  38. package/build/esm/packages/phoenix/src/components/sheet/sheet_opener.js +43 -0
  39. package/build/esm/packages/phoenix/src/components/sheet/sheet_opener.js.map +1 -0
  40. package/build/esm/packages/phoenix/src/components/slider/slider.js +4 -0
  41. package/build/esm/packages/phoenix/src/components/slider/slider.js.map +1 -1
  42. package/build/esm/packages/phoenix/src/index.d.ts +7 -0
  43. package/build/esm/packages/phoenix/src/index.js +7 -0
  44. package/build/esm/packages/phoenix/src/index.js.map +1 -1
  45. package/package.json +1 -1
@@ -0,0 +1,261 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ var utilities = require('@dreamcommerce/utilities');
7
+ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
8
+ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
9
+ var decorators_js = require('@lit/reactive-element/decorators.js');
10
+ require('@lit/reactive-element');
11
+ var litHtml = require('lit-html');
12
+ var ref_js = require('lit-html/directives/ref.js');
13
+ var portal_constants = require('../portal/portal_constants.js');
14
+ var backdrop_constants = require('../backdrop/backdrop_constants.js');
15
+ var backdrop_controller = require('../backdrop/controller/backdrop_controller.js');
16
+ var sheet_constants = require('./sheet_constants.js');
17
+ var sheet_close = require('./sheet_close.js');
18
+
19
+ var HSheet_1;
20
+ exports.HSheet = HSheet_1 = class HSheet extends phoenix_light_lit_element.PhoenixLightLitElement {
21
+ constructor() {
22
+ super();
23
+ this.opened = false;
24
+ this.class = '';
25
+ this.transition = 'scale';
26
+ this.sheetLabel = '';
27
+ this._firstFocusableElement = undefined;
28
+ this._focusableElements = null;
29
+ this._lastFocusableElement = undefined;
30
+ this._focusedToggler = null;
31
+ this._contentRef = ref_js.createRef();
32
+ this._focusSentinelStart = ref_js.createRef();
33
+ this._focusSentinelEnd = ref_js.createRef();
34
+ this._propsChangeStrategies = {
35
+ [sheet_constants.SHEET_OPENED_PROP]: {
36
+ true: () => {
37
+ const scrollY = window.scrollY;
38
+ HSheet_1.openSheets = [...HSheet_1.openSheets, this];
39
+ document.addEventListener('keydown', this._bindCloseOnEsc);
40
+ document.addEventListener(backdrop_constants.BACKDROP_EVENTS.clicked, this.close);
41
+ this._dispatchSheetOpenedEvent();
42
+ setTimeout(() => {
43
+ var _a;
44
+ (_a = this._firstFocusableElement) === null || _a === void 0 ? void 0 : _a.focus();
45
+ window.scrollTo(0, scrollY);
46
+ }, 0);
47
+ },
48
+ false: () => {
49
+ HSheet_1.openSheets = HSheet_1.openSheets.filter((sheet) => sheet !== this);
50
+ document.removeEventListener('keydown', this._bindCloseOnEsc);
51
+ document.removeEventListener(backdrop_constants.BACKDROP_EVENTS.clicked, this.close);
52
+ }
53
+ }
54
+ };
55
+ this._backdropController = new backdrop_controller.BackdropController();
56
+ this._keepFocusWithinSheet = (ev) => {
57
+ var _a;
58
+ const isTabPressed = ev.code === 'Tab';
59
+ if (isTabPressed && this._contentRef.value) {
60
+ if (ev.shiftKey) {
61
+ if (document.activeElement === this._firstFocusableElement) {
62
+ const focusableElements = utilities.UiDomUtils.getFocusableElements(this._contentRef.value);
63
+ (_a = focusableElements[focusableElements.length - 1]) === null || _a === void 0 ? void 0 : _a.focus();
64
+ ev.preventDefault();
65
+ }
66
+ }
67
+ else if (document.activeElement === this._lastFocusableElement) {
68
+ utilities.UiDomUtils.setFocusToFirstFocusableElementInContainer(this._contentRef.value);
69
+ ev.preventDefault();
70
+ }
71
+ }
72
+ };
73
+ this._handleCloseFromCloseComponent = async (ev) => {
74
+ var _a;
75
+ ev.stopPropagation();
76
+ const isSheetCloseElement = ev.target instanceof sheet_close.HSheetClose;
77
+ const isContainedWithinSheet = (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.contains(ev.target);
78
+ if (isSheetCloseElement && isContainedWithinSheet) {
79
+ await this.close();
80
+ }
81
+ };
82
+ this._bindCloseOnEsc = async (ev) => {
83
+ ev.stopImmediatePropagation();
84
+ const $target = ev.target;
85
+ const closeConditions = [
86
+ ev.key === 'Escape',
87
+ $target.tagName !== 'INPUT',
88
+ ev.ctrlKey === false,
89
+ ev.shiftKey === false,
90
+ ev.altKey === false
91
+ ];
92
+ const shouldCloseSheet = closeConditions.every((condition) => condition);
93
+ if (shouldCloseSheet) {
94
+ const [sheetToClose] = HSheet_1.openSheets.slice(-1);
95
+ await (sheetToClose === null || sheetToClose === void 0 ? void 0 : sheetToClose.close());
96
+ }
97
+ };
98
+ this.close = async () => {
99
+ if (!this.opened)
100
+ return;
101
+ return new Promise((resolve) => {
102
+ const transitionDuration = parseFloat(getComputedStyle(this._contentRef.value || this).transitionDuration) * 1000;
103
+ window.requestAnimationFrame(() => {
104
+ var _a, _b;
105
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`sheet_hide-${this.transition}-start`);
106
+ (_b = this._contentRef.value) === null || _b === void 0 ? void 0 : _b.classList.add(`sheet_hide-${this.transition}-end`);
107
+ setTimeout(() => {
108
+ var _a;
109
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`sheet_hide-${this.transition}-start`, `sheet_hide-${this.transition}-end`);
110
+ this[sheet_constants.SHEET_OPENED_PROP] = false;
111
+ this._dispatchHSheetClosedEvent();
112
+ resolve();
113
+ }, transitionDuration);
114
+ });
115
+ });
116
+ };
117
+ this._addInertToBodyChildrenElements = () => {
118
+ [...document.body.children].forEach((child) => {
119
+ const isPortalTarget = child.tagName === portal_constants.PORTAL_TARGET_COMPONENT_NAME.toUpperCase();
120
+ const isAriaLiveContainer = child.hasAttribute('aria-live');
121
+ if (!isPortalTarget && !isAriaLiveContainer) {
122
+ child.setAttribute('inert', '');
123
+ }
124
+ });
125
+ };
126
+ this._removeInertFromBodyChildrenElements = () => {
127
+ [...document.body.children].forEach((child) => {
128
+ child.removeAttribute('inert');
129
+ });
130
+ };
131
+ this.hidden = true;
132
+ this._focusableElements = [...this.querySelectorAll(sheet_constants.FOCUSABLE_ELEMENTS_WITHIN_SHEET)];
133
+ }
134
+ static _appendSheetPortal() {
135
+ const $modalsPortalTarget = document.querySelector(`h-portal-target[name="${sheet_constants.SHEETS_PORTAL_NAME}"]`);
136
+ if (!$modalsPortalTarget) {
137
+ const $portalTarget = document.createElement('h-portal-target');
138
+ $portalTarget.setAttribute(portal_constants.PORTAL_TARGET_NAME_PROP, sheet_constants.SHEETS_PORTAL_NAME);
139
+ document.body.appendChild($portalTarget);
140
+ }
141
+ }
142
+ static isSomeSheetOpen() {
143
+ return HSheet_1.openSheets.some((sheet) => sheet.opened);
144
+ }
145
+ connectedCallback() {
146
+ super.connectedCallback();
147
+ HSheet_1._appendSheetPortal();
148
+ document.addEventListener('keyup', this._keepFocusWithinSheet);
149
+ document.addEventListener(sheet_constants.SHEET_EVENTS.close, this._handleCloseFromCloseComponent);
150
+ }
151
+ disconnectedCallback() {
152
+ super.disconnectedCallback();
153
+ if (this[sheet_constants.SHEET_OPENED_PROP])
154
+ this.close();
155
+ document.removeEventListener(sheet_constants.SHEET_EVENTS.close, this._handleCloseFromCloseComponent);
156
+ document.removeEventListener('keydown', this._bindCloseOnEsc);
157
+ document.removeEventListener('keyup', this._keepFocusWithinSheet);
158
+ }
159
+ firstUpdated(props) {
160
+ super.firstUpdated(props);
161
+ this._firstFocusableElement = this._focusSentinelStart.value;
162
+ this._lastFocusableElement = this._focusSentinelEnd.value;
163
+ }
164
+ updated(changedProps) {
165
+ if (changedProps.has(sheet_constants.SHEET_OPENED_PROP)) {
166
+ this._propsChangeStrategies[sheet_constants.SHEET_OPENED_PROP][String(this[sheet_constants.SHEET_OPENED_PROP])]();
167
+ }
168
+ }
169
+ _setFocusToFirstFocusableElementInSheetOrCloseBtn() {
170
+ requestAnimationFrame(() => {
171
+ if (this._contentRef.value) {
172
+ const focusableElements = utilities.UiDomUtils.getFocusableElements(this._contentRef.value);
173
+ if (focusableElements.length > 0) {
174
+ focusableElements.length > 1 ? focusableElements[1].focus() : focusableElements[0].focus();
175
+ }
176
+ }
177
+ });
178
+ }
179
+ async open() {
180
+ this._focusedToggler = document.activeElement;
181
+ return new Promise((resolve) => {
182
+ var _a;
183
+ this[sheet_constants.SHEET_OPENED_PROP] = true;
184
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.add(`sheet_visible`, `sheet_show-${this.transition}-start`);
185
+ window.requestAnimationFrame(() => {
186
+ setTimeout(() => {
187
+ var _a;
188
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.add(`sheet_show-${this.transition}-end`);
189
+ }, 0);
190
+ const transitionDuration = parseFloat(getComputedStyle(this._contentRef.value || this).transitionDuration) * 1000;
191
+ setTimeout(() => {
192
+ var _a;
193
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`sheet_show-${this.transition}-start`, `sheet_show-${this.transition}-end`);
194
+ this._setFocusToFirstFocusableElementInSheetOrCloseBtn();
195
+ resolve();
196
+ }, transitionDuration);
197
+ });
198
+ });
199
+ }
200
+ _dispatchSheetOpenedEvent() {
201
+ this.emitCustomEvent(sheet_constants.SHEET_EVENTS.opened);
202
+ this._backdropController.show();
203
+ this._addInertToBodyChildrenElements();
204
+ }
205
+ _dispatchHSheetClosedEvent() {
206
+ this.emitCustomEvent(sheet_constants.SHEET_EVENTS.closed);
207
+ requestAnimationFrame(() => {
208
+ var _a;
209
+ (_a = this._focusedToggler) === null || _a === void 0 ? void 0 : _a.focus();
210
+ });
211
+ this._backdropController.hide();
212
+ this._removeInertFromBodyChildrenElements();
213
+ }
214
+ render() {
215
+ return litHtml.html `
216
+ <h-portal ?disabled="${!this.opened}" to="${sheet_constants.SHEETS_PORTAL_NAME}" hidden>
217
+ <div class="sheet-wrapper ${this.class}">
218
+ <div tabindex="0" ${ref_js.ref(this._focusSentinelStart)}></div>
219
+ <div ${ref_js.ref(this._contentRef)} class="sheet" role="dialog" aria-label="${this.sheetLabel}">
220
+ <div class="sheet__container">${this.getSlot('header')} ${this.getSlot('body')} ${this.getSlot('footer')}</div>
221
+ </div>
222
+ <div tabindex="0" ${ref_js.ref(this._focusSentinelEnd)}></div>
223
+ </div>
224
+ </h-portal>
225
+ `;
226
+ }
227
+ };
228
+ exports.HSheet.openSheets = [];
229
+ tslib_es6.__decorate([
230
+ decorators_js.property({ type: Boolean, reflect: true }),
231
+ tslib_es6.__metadata("design:type", Object)
232
+ ], exports.HSheet.prototype, "opened", void 0);
233
+ tslib_es6.__decorate([
234
+ decorators_js.property({ type: String }),
235
+ tslib_es6.__metadata("design:type", Object)
236
+ ], exports.HSheet.prototype, "class", void 0);
237
+ tslib_es6.__decorate([
238
+ decorators_js.property({ type: String }),
239
+ tslib_es6.__metadata("design:type", Object)
240
+ ], exports.HSheet.prototype, "transition", void 0);
241
+ tslib_es6.__decorate([
242
+ decorators_js.property({ type: String, attribute: 'sheet-label' }),
243
+ tslib_es6.__metadata("design:type", Object)
244
+ ], exports.HSheet.prototype, "sheetLabel", void 0);
245
+ tslib_es6.__decorate([
246
+ decorators_js.state(),
247
+ tslib_es6.__metadata("design:type", Object)
248
+ ], exports.HSheet.prototype, "_firstFocusableElement", void 0);
249
+ tslib_es6.__decorate([
250
+ decorators_js.state(),
251
+ tslib_es6.__metadata("design:type", Object)
252
+ ], exports.HSheet.prototype, "_focusableElements", void 0);
253
+ tslib_es6.__decorate([
254
+ decorators_js.state(),
255
+ tslib_es6.__metadata("design:type", Object)
256
+ ], exports.HSheet.prototype, "_lastFocusableElement", void 0);
257
+ exports.HSheet = HSheet_1 = tslib_es6.__decorate([
258
+ phoenix_custom_element.phoenixCustomElement('h-sheet'),
259
+ tslib_es6.__metadata("design:paramtypes", [])
260
+ ], exports.HSheet);
261
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
7
+ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
8
+
9
+ exports.HSheetBody = class HSheetBody extends phoenix_light_lit_element.PhoenixLightLitElement {
10
+ constructor() {
11
+ super();
12
+ this.slot = this.hasAttribute('slot') ? this.slot : 'body';
13
+ this.className = `sheet__body ${this.className}`;
14
+ }
15
+ };
16
+ exports.HSheetBody = tslib_es6.__decorate([
17
+ phoenix_custom_element.phoenixCustomElement('h-sheet-body'),
18
+ tslib_es6.__metadata("design:paramtypes", [])
19
+ ], exports.HSheetBody);
20
+ //# sourceMappingURL=sheet_body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
7
+ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
8
+ var sheet_constants = require('./sheet_constants.js');
9
+
10
+ exports.HSheetClose = class HSheetClose extends phoenix_light_lit_element.PhoenixLightLitElement {
11
+ constructor() {
12
+ super();
13
+ this.tabIndex = 0;
14
+ this.setAttribute('role', 'button');
15
+ }
16
+ connectedCallback() {
17
+ super.connectedCallback();
18
+ this.addEventListener('click', this._dispatchSheetCloseEvent);
19
+ this.addEventListener('keydown', this._dispatchSheetCloseOnEnterEvent);
20
+ }
21
+ disconnectedCallback() {
22
+ this.removeEventListener('click', this._dispatchSheetCloseEvent);
23
+ this.removeEventListener('keydown', this._dispatchSheetCloseOnEnterEvent);
24
+ }
25
+ _dispatchSheetCloseEvent() {
26
+ this.emitCustomEvent(sheet_constants.SHEET_EVENTS.close);
27
+ }
28
+ _dispatchSheetCloseOnEnterEvent(ev) {
29
+ if (ev.code === 'Enter' || ev.code === 'Space') {
30
+ this._dispatchSheetCloseEvent();
31
+ }
32
+ }
33
+ };
34
+ exports.HSheetClose = tslib_es6.__decorate([
35
+ phoenix_custom_element.phoenixCustomElement('h-sheet-close'),
36
+ tslib_es6.__metadata("design:paramtypes", [])
37
+ ], exports.HSheetClose);
38
+ //# sourceMappingURL=sheet_close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const SHEETS_PORTAL_NAME = 'modals';
6
+ const SHEET_EVENTS = {
7
+ open: 'open',
8
+ close: 'close',
9
+ opened: 'opened',
10
+ closed: 'closed'
11
+ };
12
+ const SHEET_OPENED_PROP = 'opened';
13
+ const FOCUSABLE_ELEMENTS_WITHIN_SHEET = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
14
+
15
+ exports.FOCUSABLE_ELEMENTS_WITHIN_SHEET = FOCUSABLE_ELEMENTS_WITHIN_SHEET;
16
+ exports.SHEETS_PORTAL_NAME = SHEETS_PORTAL_NAME;
17
+ exports.SHEET_EVENTS = SHEET_EVENTS;
18
+ exports.SHEET_OPENED_PROP = SHEET_OPENED_PROP;
19
+ //# sourceMappingURL=sheet_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
7
+ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
8
+
9
+ exports.HSheetFooter = class HSheetFooter extends phoenix_light_lit_element.PhoenixLightLitElement {
10
+ constructor() {
11
+ super();
12
+ this.slot = this.hasAttribute('slot') ? this.slot : 'footer';
13
+ this.className = `sheet__footer ${this.className}`;
14
+ }
15
+ };
16
+ exports.HSheetFooter = tslib_es6.__decorate([
17
+ phoenix_custom_element.phoenixCustomElement('h-sheet-footer'),
18
+ tslib_es6.__metadata("design:paramtypes", [])
19
+ ], exports.HSheetFooter);
20
+ //# sourceMappingURL=sheet_footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
7
+ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
8
+
9
+ exports.HSheetHeader = class HSheetHeader extends phoenix_light_lit_element.PhoenixLightLitElement {
10
+ constructor() {
11
+ super();
12
+ this.slot = this.hasAttribute('slot') ? this.slot : 'header';
13
+ this.className = `sheet__header ${this.className}`;
14
+ }
15
+ };
16
+ exports.HSheetHeader = tslib_es6.__decorate([
17
+ phoenix_custom_element.phoenixCustomElement('h-sheet-header'),
18
+ tslib_es6.__metadata("design:paramtypes", [])
19
+ ], exports.HSheetHeader);
20
+ //# sourceMappingURL=sheet_header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ var decorators = require('lit/decorators');
7
+ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
8
+ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
9
+
10
+ exports.HSheetOpener = class HSheetOpener extends phoenix_light_lit_element.PhoenixLightLitElement {
11
+ constructor() {
12
+ super();
13
+ this.name = '';
14
+ this.tabIndex = 0;
15
+ this.setAttribute('role', 'button');
16
+ this.setAttribute('aria-haspopup', 'dialog');
17
+ }
18
+ connectedCallback() {
19
+ super.connectedCallback();
20
+ this.addEventListener('click', this._openSheet);
21
+ this.addEventListener('keydown', this._openSheetOnKeydownEvent);
22
+ }
23
+ disconnectedCallback() {
24
+ this.removeEventListener('click', this._openSheet);
25
+ this.removeEventListener('keydown', this._openSheetOnKeydownEvent);
26
+ }
27
+ _openSheet() {
28
+ const sheet = document.querySelector(`h-sheet#${this.name}`);
29
+ sheet === null || sheet === void 0 ? void 0 : sheet.open();
30
+ }
31
+ _openSheetOnKeydownEvent(ev) {
32
+ if (ev.code === 'Enter' || ev.code === 'Space') {
33
+ this._openSheet();
34
+ }
35
+ }
36
+ };
37
+ tslib_es6.__decorate([
38
+ decorators.property({ type: String }),
39
+ tslib_es6.__metadata("design:type", Object)
40
+ ], exports.HSheetOpener.prototype, "name", void 0);
41
+ exports.HSheetOpener = tslib_es6.__decorate([
42
+ phoenix_custom_element.phoenixCustomElement('h-sheet-opener'),
43
+ tslib_es6.__metadata("design:paramtypes", [])
44
+ ], exports.HSheetOpener);
45
+ //# sourceMappingURL=sheet_opener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -37,6 +37,10 @@ exports.HSlider = class HSlider extends phoenix_light_lit_element.PhoenixLightLi
37
37
  this._settings = (_a = utilities.JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
38
38
  }
39
39
  this._slider = new splide_esm.Splide(`#${this.id}`, this._settings);
40
+ this._slider.on('mounted', () => {
41
+ var _a;
42
+ (_a = this._slider) === null || _a === void 0 ? void 0 : _a.Components.Elements.list.removeAttribute('role');
43
+ });
40
44
  if (this._settings.mountOnConnectedCallback) {
41
45
  this._slider.mount();
42
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA,yBAAyB,gEAAoE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA,yBAAyB,gEAAoE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -36,6 +36,13 @@ var modal_opener = require('./components/modal/modal_opener.js');
36
36
  var modal_body = require('./components/modal/modal_body.js');
37
37
  var modal_footer = require('./components/modal/modal_footer.js');
38
38
  var modal_header = require('./components/modal/modal_header.js');
39
+ var sheet_constants = require('./components/sheet/sheet_constants.js');
40
+ var sheet_close = require('./components/sheet/sheet_close.js');
41
+ var sheet = require('./components/sheet/sheet.js');
42
+ var sheet_opener = require('./components/sheet/sheet_opener.js');
43
+ var sheet_body = require('./components/sheet/sheet_body.js');
44
+ var sheet_footer = require('./components/sheet/sheet_footer.js');
45
+ var sheet_header = require('./components/sheet/sheet_header.js');
39
46
  var control_constatns = require('./components/form/control/control_constatns.js');
40
47
  var control = require('./components/form/control/control.js');
41
48
  var control_errors = require('./components/form/control/control_errors.js');
@@ -258,6 +265,43 @@ Object.defineProperty(exports, 'HModalHeader', {
258
265
  return modal_header.HModalHeader;
259
266
  }
260
267
  });
268
+ exports.SHEET_EVENTS = sheet_constants.SHEET_EVENTS;
269
+ Object.defineProperty(exports, 'HSheetClose', {
270
+ enumerable: true,
271
+ get: function () {
272
+ return sheet_close.HSheetClose;
273
+ }
274
+ });
275
+ Object.defineProperty(exports, 'HSheet', {
276
+ enumerable: true,
277
+ get: function () {
278
+ return sheet.HSheet;
279
+ }
280
+ });
281
+ Object.defineProperty(exports, 'HSheetOpener', {
282
+ enumerable: true,
283
+ get: function () {
284
+ return sheet_opener.HSheetOpener;
285
+ }
286
+ });
287
+ Object.defineProperty(exports, 'HSheetBody', {
288
+ enumerable: true,
289
+ get: function () {
290
+ return sheet_body.HSheetBody;
291
+ }
292
+ });
293
+ Object.defineProperty(exports, 'HSheetFooter', {
294
+ enumerable: true,
295
+ get: function () {
296
+ return sheet_footer.HSheetFooter;
297
+ }
298
+ });
299
+ Object.defineProperty(exports, 'HSheetHeader', {
300
+ enumerable: true,
301
+ get: function () {
302
+ return sheet_header.HSheetHeader;
303
+ }
304
+ });
261
305
  exports.ADDITIONAL_CONTENT_TYPE_TO_CSS_CLASSES_MAP = control_constatns.ADDITIONAL_CONTENT_TYPE_TO_CSS_CLASSES_MAP;
262
306
  exports.CONTROL_ADDITIONAL_CONTENT_TYPES = control_constatns.CONTROL_ADDITIONAL_CONTENT_TYPES;
263
307
  exports.CONTROL_CONTENT_SIZES = control_constatns.CONTROL_CONTENT_SIZES;
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,37 @@
1
+ import { TemplateResult } from 'lit-html';
2
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
3
+ import { PropertyValues } from '@lit/reactive-element';
4
+ export declare class HSheet extends PhoenixLightLitElement {
5
+ opened: boolean;
6
+ class: string;
7
+ transition: string;
8
+ sheetLabel: string;
9
+ _firstFocusableElement: HTMLElement | undefined;
10
+ _focusableElements: HTMLElement[] | null;
11
+ _lastFocusableElement: HTMLElement | undefined;
12
+ private _focusedToggler;
13
+ private _contentRef;
14
+ private _focusSentinelStart;
15
+ private _focusSentinelEnd;
16
+ private _propsChangeStrategies;
17
+ private static openSheets;
18
+ private _backdropController;
19
+ private static _appendSheetPortal;
20
+ static isSomeSheetOpen(): boolean;
21
+ constructor();
22
+ connectedCallback(): void;
23
+ disconnectedCallback(): void;
24
+ firstUpdated(props: PropertyValues): void;
25
+ updated(changedProps: Map<string, any>): void;
26
+ private _setFocusToFirstFocusableElementInSheetOrCloseBtn;
27
+ private _keepFocusWithinSheet;
28
+ private _handleCloseFromCloseComponent;
29
+ private _bindCloseOnEsc;
30
+ open(): Promise<void>;
31
+ private _dispatchSheetOpenedEvent;
32
+ close: () => Promise<void>;
33
+ private _dispatchHSheetClosedEvent;
34
+ private _addInertToBodyChildrenElements;
35
+ private _removeInertFromBodyChildrenElements;
36
+ render(): TemplateResult<1>;
37
+ }
@@ -0,0 +1,259 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { UiDomUtils } from '@dreamcommerce/utilities';
3
+ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
4
+ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
5
+ import { property, state } from '@lit/reactive-element/decorators.js';
6
+ import '@lit/reactive-element';
7
+ import { html } from 'lit-html';
8
+ import { createRef, ref } from 'lit-html/directives/ref.js';
9
+ import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP } from '../portal/portal_constants.js';
10
+ import { BACKDROP_EVENTS } from '../backdrop/backdrop_constants.js';
11
+ import { BackdropController } from '../backdrop/controller/backdrop_controller.js';
12
+ import { SHEET_OPENED_PROP, FOCUSABLE_ELEMENTS_WITHIN_SHEET, SHEETS_PORTAL_NAME, SHEET_EVENTS } from './sheet_constants.js';
13
+ import { HSheetClose } from './sheet_close.js';
14
+
15
+ var HSheet_1;
16
+ let HSheet = HSheet_1 = class HSheet extends PhoenixLightLitElement {
17
+ constructor() {
18
+ super();
19
+ this.opened = false;
20
+ this.class = '';
21
+ this.transition = 'scale';
22
+ this.sheetLabel = '';
23
+ this._firstFocusableElement = undefined;
24
+ this._focusableElements = null;
25
+ this._lastFocusableElement = undefined;
26
+ this._focusedToggler = null;
27
+ this._contentRef = createRef();
28
+ this._focusSentinelStart = createRef();
29
+ this._focusSentinelEnd = createRef();
30
+ this._propsChangeStrategies = {
31
+ [SHEET_OPENED_PROP]: {
32
+ true: () => {
33
+ const scrollY = window.scrollY;
34
+ HSheet_1.openSheets = [...HSheet_1.openSheets, this];
35
+ document.addEventListener('keydown', this._bindCloseOnEsc);
36
+ document.addEventListener(BACKDROP_EVENTS.clicked, this.close);
37
+ this._dispatchSheetOpenedEvent();
38
+ setTimeout(() => {
39
+ var _a;
40
+ (_a = this._firstFocusableElement) === null || _a === void 0 ? void 0 : _a.focus();
41
+ window.scrollTo(0, scrollY);
42
+ }, 0);
43
+ },
44
+ false: () => {
45
+ HSheet_1.openSheets = HSheet_1.openSheets.filter((sheet) => sheet !== this);
46
+ document.removeEventListener('keydown', this._bindCloseOnEsc);
47
+ document.removeEventListener(BACKDROP_EVENTS.clicked, this.close);
48
+ }
49
+ }
50
+ };
51
+ this._backdropController = new BackdropController();
52
+ this._keepFocusWithinSheet = (ev) => {
53
+ var _a;
54
+ const isTabPressed = ev.code === 'Tab';
55
+ if (isTabPressed && this._contentRef.value) {
56
+ if (ev.shiftKey) {
57
+ if (document.activeElement === this._firstFocusableElement) {
58
+ const focusableElements = UiDomUtils.getFocusableElements(this._contentRef.value);
59
+ (_a = focusableElements[focusableElements.length - 1]) === null || _a === void 0 ? void 0 : _a.focus();
60
+ ev.preventDefault();
61
+ }
62
+ }
63
+ else if (document.activeElement === this._lastFocusableElement) {
64
+ UiDomUtils.setFocusToFirstFocusableElementInContainer(this._contentRef.value);
65
+ ev.preventDefault();
66
+ }
67
+ }
68
+ };
69
+ this._handleCloseFromCloseComponent = async (ev) => {
70
+ var _a;
71
+ ev.stopPropagation();
72
+ const isSheetCloseElement = ev.target instanceof HSheetClose;
73
+ const isContainedWithinSheet = (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.contains(ev.target);
74
+ if (isSheetCloseElement && isContainedWithinSheet) {
75
+ await this.close();
76
+ }
77
+ };
78
+ this._bindCloseOnEsc = async (ev) => {
79
+ ev.stopImmediatePropagation();
80
+ const $target = ev.target;
81
+ const closeConditions = [
82
+ ev.key === 'Escape',
83
+ $target.tagName !== 'INPUT',
84
+ ev.ctrlKey === false,
85
+ ev.shiftKey === false,
86
+ ev.altKey === false
87
+ ];
88
+ const shouldCloseSheet = closeConditions.every((condition) => condition);
89
+ if (shouldCloseSheet) {
90
+ const [sheetToClose] = HSheet_1.openSheets.slice(-1);
91
+ await (sheetToClose === null || sheetToClose === void 0 ? void 0 : sheetToClose.close());
92
+ }
93
+ };
94
+ this.close = async () => {
95
+ if (!this.opened)
96
+ return;
97
+ return new Promise((resolve) => {
98
+ const transitionDuration = parseFloat(getComputedStyle(this._contentRef.value || this).transitionDuration) * 1000;
99
+ window.requestAnimationFrame(() => {
100
+ var _a, _b;
101
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`sheet_hide-${this.transition}-start`);
102
+ (_b = this._contentRef.value) === null || _b === void 0 ? void 0 : _b.classList.add(`sheet_hide-${this.transition}-end`);
103
+ setTimeout(() => {
104
+ var _a;
105
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`sheet_hide-${this.transition}-start`, `sheet_hide-${this.transition}-end`);
106
+ this[SHEET_OPENED_PROP] = false;
107
+ this._dispatchHSheetClosedEvent();
108
+ resolve();
109
+ }, transitionDuration);
110
+ });
111
+ });
112
+ };
113
+ this._addInertToBodyChildrenElements = () => {
114
+ [...document.body.children].forEach((child) => {
115
+ const isPortalTarget = child.tagName === PORTAL_TARGET_COMPONENT_NAME.toUpperCase();
116
+ const isAriaLiveContainer = child.hasAttribute('aria-live');
117
+ if (!isPortalTarget && !isAriaLiveContainer) {
118
+ child.setAttribute('inert', '');
119
+ }
120
+ });
121
+ };
122
+ this._removeInertFromBodyChildrenElements = () => {
123
+ [...document.body.children].forEach((child) => {
124
+ child.removeAttribute('inert');
125
+ });
126
+ };
127
+ this.hidden = true;
128
+ this._focusableElements = [...this.querySelectorAll(FOCUSABLE_ELEMENTS_WITHIN_SHEET)];
129
+ }
130
+ static _appendSheetPortal() {
131
+ const $modalsPortalTarget = document.querySelector(`h-portal-target[name="${SHEETS_PORTAL_NAME}"]`);
132
+ if (!$modalsPortalTarget) {
133
+ const $portalTarget = document.createElement('h-portal-target');
134
+ $portalTarget.setAttribute(PORTAL_TARGET_NAME_PROP, SHEETS_PORTAL_NAME);
135
+ document.body.appendChild($portalTarget);
136
+ }
137
+ }
138
+ static isSomeSheetOpen() {
139
+ return HSheet_1.openSheets.some((sheet) => sheet.opened);
140
+ }
141
+ connectedCallback() {
142
+ super.connectedCallback();
143
+ HSheet_1._appendSheetPortal();
144
+ document.addEventListener('keyup', this._keepFocusWithinSheet);
145
+ document.addEventListener(SHEET_EVENTS.close, this._handleCloseFromCloseComponent);
146
+ }
147
+ disconnectedCallback() {
148
+ super.disconnectedCallback();
149
+ if (this[SHEET_OPENED_PROP])
150
+ this.close();
151
+ document.removeEventListener(SHEET_EVENTS.close, this._handleCloseFromCloseComponent);
152
+ document.removeEventListener('keydown', this._bindCloseOnEsc);
153
+ document.removeEventListener('keyup', this._keepFocusWithinSheet);
154
+ }
155
+ firstUpdated(props) {
156
+ super.firstUpdated(props);
157
+ this._firstFocusableElement = this._focusSentinelStart.value;
158
+ this._lastFocusableElement = this._focusSentinelEnd.value;
159
+ }
160
+ updated(changedProps) {
161
+ if (changedProps.has(SHEET_OPENED_PROP)) {
162
+ this._propsChangeStrategies[SHEET_OPENED_PROP][String(this[SHEET_OPENED_PROP])]();
163
+ }
164
+ }
165
+ _setFocusToFirstFocusableElementInSheetOrCloseBtn() {
166
+ requestAnimationFrame(() => {
167
+ if (this._contentRef.value) {
168
+ const focusableElements = UiDomUtils.getFocusableElements(this._contentRef.value);
169
+ if (focusableElements.length > 0) {
170
+ focusableElements.length > 1 ? focusableElements[1].focus() : focusableElements[0].focus();
171
+ }
172
+ }
173
+ });
174
+ }
175
+ async open() {
176
+ this._focusedToggler = document.activeElement;
177
+ return new Promise((resolve) => {
178
+ var _a;
179
+ this[SHEET_OPENED_PROP] = true;
180
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.add(`sheet_visible`, `sheet_show-${this.transition}-start`);
181
+ window.requestAnimationFrame(() => {
182
+ setTimeout(() => {
183
+ var _a;
184
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.add(`sheet_show-${this.transition}-end`);
185
+ }, 0);
186
+ const transitionDuration = parseFloat(getComputedStyle(this._contentRef.value || this).transitionDuration) * 1000;
187
+ setTimeout(() => {
188
+ var _a;
189
+ (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`sheet_show-${this.transition}-start`, `sheet_show-${this.transition}-end`);
190
+ this._setFocusToFirstFocusableElementInSheetOrCloseBtn();
191
+ resolve();
192
+ }, transitionDuration);
193
+ });
194
+ });
195
+ }
196
+ _dispatchSheetOpenedEvent() {
197
+ this.emitCustomEvent(SHEET_EVENTS.opened);
198
+ this._backdropController.show();
199
+ this._addInertToBodyChildrenElements();
200
+ }
201
+ _dispatchHSheetClosedEvent() {
202
+ this.emitCustomEvent(SHEET_EVENTS.closed);
203
+ requestAnimationFrame(() => {
204
+ var _a;
205
+ (_a = this._focusedToggler) === null || _a === void 0 ? void 0 : _a.focus();
206
+ });
207
+ this._backdropController.hide();
208
+ this._removeInertFromBodyChildrenElements();
209
+ }
210
+ render() {
211
+ return html `
212
+ <h-portal ?disabled="${!this.opened}" to="${SHEETS_PORTAL_NAME}" hidden>
213
+ <div class="sheet-wrapper ${this.class}">
214
+ <div tabindex="0" ${ref(this._focusSentinelStart)}></div>
215
+ <div ${ref(this._contentRef)} class="sheet" role="dialog" aria-label="${this.sheetLabel}">
216
+ <div class="sheet__container">${this.getSlot('header')} ${this.getSlot('body')} ${this.getSlot('footer')}</div>
217
+ </div>
218
+ <div tabindex="0" ${ref(this._focusSentinelEnd)}></div>
219
+ </div>
220
+ </h-portal>
221
+ `;
222
+ }
223
+ };
224
+ HSheet.openSheets = [];
225
+ __decorate([
226
+ property({ type: Boolean, reflect: true }),
227
+ __metadata("design:type", Object)
228
+ ], HSheet.prototype, "opened", void 0);
229
+ __decorate([
230
+ property({ type: String }),
231
+ __metadata("design:type", Object)
232
+ ], HSheet.prototype, "class", void 0);
233
+ __decorate([
234
+ property({ type: String }),
235
+ __metadata("design:type", Object)
236
+ ], HSheet.prototype, "transition", void 0);
237
+ __decorate([
238
+ property({ type: String, attribute: 'sheet-label' }),
239
+ __metadata("design:type", Object)
240
+ ], HSheet.prototype, "sheetLabel", void 0);
241
+ __decorate([
242
+ state(),
243
+ __metadata("design:type", Object)
244
+ ], HSheet.prototype, "_firstFocusableElement", void 0);
245
+ __decorate([
246
+ state(),
247
+ __metadata("design:type", Object)
248
+ ], HSheet.prototype, "_focusableElements", void 0);
249
+ __decorate([
250
+ state(),
251
+ __metadata("design:type", Object)
252
+ ], HSheet.prototype, "_lastFocusableElement", void 0);
253
+ HSheet = HSheet_1 = __decorate([
254
+ phoenixCustomElement('h-sheet'),
255
+ __metadata("design:paramtypes", [])
256
+ ], HSheet);
257
+
258
+ export { HSheet };
259
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HSheetBody extends PhoenixLightLitElement {
3
+ constructor();
4
+ }
@@ -0,0 +1,18 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
3
+ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
4
+
5
+ let HSheetBody = class HSheetBody extends PhoenixLightLitElement {
6
+ constructor() {
7
+ super();
8
+ this.slot = this.hasAttribute('slot') ? this.slot : 'body';
9
+ this.className = `sheet__body ${this.className}`;
10
+ }
11
+ };
12
+ HSheetBody = __decorate([
13
+ phoenixCustomElement('h-sheet-body'),
14
+ __metadata("design:paramtypes", [])
15
+ ], HSheetBody);
16
+
17
+ export { HSheetBody };
18
+ //# sourceMappingURL=sheet_body.js.map
@@ -0,0 +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;"}
@@ -0,0 +1,8 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HSheetClose extends PhoenixLightLitElement {
3
+ constructor();
4
+ connectedCallback(): void;
5
+ disconnectedCallback(): void;
6
+ private _dispatchSheetCloseEvent;
7
+ private _dispatchSheetCloseOnEnterEvent;
8
+ }
@@ -0,0 +1,36 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
3
+ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
4
+ import { SHEET_EVENTS } from './sheet_constants.js';
5
+
6
+ let HSheetClose = class HSheetClose extends PhoenixLightLitElement {
7
+ constructor() {
8
+ super();
9
+ this.tabIndex = 0;
10
+ this.setAttribute('role', 'button');
11
+ }
12
+ connectedCallback() {
13
+ super.connectedCallback();
14
+ this.addEventListener('click', this._dispatchSheetCloseEvent);
15
+ this.addEventListener('keydown', this._dispatchSheetCloseOnEnterEvent);
16
+ }
17
+ disconnectedCallback() {
18
+ this.removeEventListener('click', this._dispatchSheetCloseEvent);
19
+ this.removeEventListener('keydown', this._dispatchSheetCloseOnEnterEvent);
20
+ }
21
+ _dispatchSheetCloseEvent() {
22
+ this.emitCustomEvent(SHEET_EVENTS.close);
23
+ }
24
+ _dispatchSheetCloseOnEnterEvent(ev) {
25
+ if (ev.code === 'Enter' || ev.code === 'Space') {
26
+ this._dispatchSheetCloseEvent();
27
+ }
28
+ }
29
+ };
30
+ HSheetClose = __decorate([
31
+ phoenixCustomElement('h-sheet-close'),
32
+ __metadata("design:paramtypes", [])
33
+ ], HSheetClose);
34
+
35
+ export { HSheetClose };
36
+ //# sourceMappingURL=sheet_close.js.map
@@ -0,0 +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;"}
@@ -0,0 +1,9 @@
1
+ export declare const SHEETS_PORTAL_NAME = "modals";
2
+ export declare const SHEET_EVENTS: {
3
+ readonly open: "open";
4
+ readonly close: "close";
5
+ readonly opened: "opened";
6
+ readonly closed: "closed";
7
+ };
8
+ export declare const SHEET_OPENED_PROP = "opened";
9
+ export declare const FOCUSABLE_ELEMENTS_WITHIN_SHEET = "button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])";
@@ -0,0 +1,12 @@
1
+ const SHEETS_PORTAL_NAME = 'modals';
2
+ const SHEET_EVENTS = {
3
+ open: 'open',
4
+ close: 'close',
5
+ opened: 'opened',
6
+ closed: 'closed'
7
+ };
8
+ const SHEET_OPENED_PROP = 'opened';
9
+ const FOCUSABLE_ELEMENTS_WITHIN_SHEET = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
10
+
11
+ export { FOCUSABLE_ELEMENTS_WITHIN_SHEET, SHEETS_PORTAL_NAME, SHEET_EVENTS, SHEET_OPENED_PROP };
12
+ //# sourceMappingURL=sheet_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,4 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HSheetFooter extends PhoenixLightLitElement {
3
+ constructor();
4
+ }
@@ -0,0 +1,18 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
3
+ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
4
+
5
+ let HSheetFooter = class HSheetFooter extends PhoenixLightLitElement {
6
+ constructor() {
7
+ super();
8
+ this.slot = this.hasAttribute('slot') ? this.slot : 'footer';
9
+ this.className = `sheet__footer ${this.className}`;
10
+ }
11
+ };
12
+ HSheetFooter = __decorate([
13
+ phoenixCustomElement('h-sheet-footer'),
14
+ __metadata("design:paramtypes", [])
15
+ ], HSheetFooter);
16
+
17
+ export { HSheetFooter };
18
+ //# sourceMappingURL=sheet_footer.js.map
@@ -0,0 +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;"}
@@ -0,0 +1,4 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HSheetHeader extends PhoenixLightLitElement {
3
+ constructor();
4
+ }
@@ -0,0 +1,18 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
3
+ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
4
+
5
+ let HSheetHeader = class HSheetHeader extends PhoenixLightLitElement {
6
+ constructor() {
7
+ super();
8
+ this.slot = this.hasAttribute('slot') ? this.slot : 'header';
9
+ this.className = `sheet__header ${this.className}`;
10
+ }
11
+ };
12
+ HSheetHeader = __decorate([
13
+ phoenixCustomElement('h-sheet-header'),
14
+ __metadata("design:paramtypes", [])
15
+ ], HSheetHeader);
16
+
17
+ export { HSheetHeader };
18
+ //# sourceMappingURL=sheet_header.js.map
@@ -0,0 +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;"}
@@ -0,0 +1,9 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HSheetOpener extends PhoenixLightLitElement {
3
+ name: string;
4
+ constructor();
5
+ connectedCallback(): void;
6
+ disconnectedCallback(): void;
7
+ private _openSheet;
8
+ private _openSheetOnKeydownEvent;
9
+ }
@@ -0,0 +1,43 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { property } from 'lit/decorators';
3
+ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
4
+ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
5
+
6
+ let HSheetOpener = class HSheetOpener extends PhoenixLightLitElement {
7
+ constructor() {
8
+ super();
9
+ this.name = '';
10
+ this.tabIndex = 0;
11
+ this.setAttribute('role', 'button');
12
+ this.setAttribute('aria-haspopup', 'dialog');
13
+ }
14
+ connectedCallback() {
15
+ super.connectedCallback();
16
+ this.addEventListener('click', this._openSheet);
17
+ this.addEventListener('keydown', this._openSheetOnKeydownEvent);
18
+ }
19
+ disconnectedCallback() {
20
+ this.removeEventListener('click', this._openSheet);
21
+ this.removeEventListener('keydown', this._openSheetOnKeydownEvent);
22
+ }
23
+ _openSheet() {
24
+ const sheet = document.querySelector(`h-sheet#${this.name}`);
25
+ sheet === null || sheet === void 0 ? void 0 : sheet.open();
26
+ }
27
+ _openSheetOnKeydownEvent(ev) {
28
+ if (ev.code === 'Enter' || ev.code === 'Space') {
29
+ this._openSheet();
30
+ }
31
+ }
32
+ };
33
+ __decorate([
34
+ property({ type: String }),
35
+ __metadata("design:type", Object)
36
+ ], HSheetOpener.prototype, "name", void 0);
37
+ HSheetOpener = __decorate([
38
+ phoenixCustomElement('h-sheet-opener'),
39
+ __metadata("design:paramtypes", [])
40
+ ], HSheetOpener);
41
+
42
+ export { HSheetOpener };
43
+ //# sourceMappingURL=sheet_opener.js.map
@@ -0,0 +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;"}
@@ -33,6 +33,10 @@ let HSlider = class HSlider extends PhoenixLightLitElement {
33
33
  this._settings = (_a = JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
34
34
  }
35
35
  this._slider = new Splide(`#${this.id}`, this._settings);
36
+ this._slider.on('mounted', () => {
37
+ var _a;
38
+ (_a = this._slider) === null || _a === void 0 ? void 0 : _a.Components.Elements.list.removeAttribute('role');
39
+ });
36
40
  if (this._settings.mountOnConnectedCallback) {
37
41
  this._slider.mount();
38
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA,uBAAuB,gEAAoE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB,gEAAoE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -21,6 +21,13 @@ export { HModalFooter } from './components/modal/modal_footer';
21
21
  export { HModalHeader } from './components/modal/modal_header';
22
22
  export { HModalClose } from './components/modal/modal_close';
23
23
  export { MODAL_EVENTS } from './components/modal/modal_constants';
24
+ export { HSheet } from './components/sheet/sheet';
25
+ export { HSheetOpener } from './components/sheet/sheet_opener';
26
+ export { HSheetBody } from './components/sheet/sheet_body';
27
+ export { HSheetFooter } from './components/sheet/sheet_footer';
28
+ export { HSheetHeader } from './components/sheet/sheet_header';
29
+ export { HSheetClose } from './components/sheet/sheet_close';
30
+ export { SHEET_EVENTS } from './components/sheet/sheet_constants';
24
31
  export { HControl } from './components/form/control/control';
25
32
  export { HControlErrors } from './components/form/control/control_errors';
26
33
  export { HControlContent } from './components/form/control/control_content';
@@ -32,6 +32,13 @@ export { HModalOpener } from './components/modal/modal_opener.js';
32
32
  export { HModalBody } from './components/modal/modal_body.js';
33
33
  export { HModalFooter } from './components/modal/modal_footer.js';
34
34
  export { HModalHeader } from './components/modal/modal_header.js';
35
+ export { SHEET_EVENTS } from './components/sheet/sheet_constants.js';
36
+ export { HSheetClose } from './components/sheet/sheet_close.js';
37
+ export { HSheet } from './components/sheet/sheet.js';
38
+ export { HSheetOpener } from './components/sheet/sheet_opener.js';
39
+ export { HSheetBody } from './components/sheet/sheet_body.js';
40
+ export { HSheetFooter } from './components/sheet/sheet_footer.js';
41
+ export { HSheetHeader } from './components/sheet/sheet_header.js';
35
42
  export { ADDITIONAL_CONTENT_TYPE_TO_CSS_CLASSES_MAP, CONTROL_ADDITIONAL_CONTENT_TYPES, CONTROL_CONTENT_SIZES, FORM_CONTROLS_CSS_CLASSES } from './components/form/control/control_constatns.js';
36
43
  export { HControl } from './components/form/control/control.js';
37
44
  export { HControlErrors } from './components/form/control/control_errors.js';
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@shoper/phoenix_design_system",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "1.15.13",
5
+ "version": "1.16.1-0",
6
6
  "description": "phoenix design system",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",