@shoper/phoenix_design_system 1.18.23-0 → 1.18.23-10

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 (70) hide show
  1. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +24 -93
  2. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/form/search/search.js +55 -8
  4. package/build/cjs/packages/phoenix/src/components/form/search/search.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +3 -13
  6. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/modal/modal.js +39 -11
  8. package/build/cjs/packages/phoenix/src/components/modal/modal.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/sheet/sheet.js +33 -10
  10. package/build/cjs/packages/phoenix/src/components/sheet/sheet.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js +47 -0
  12. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js.map +1 -0
  13. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy.js +66 -0
  14. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy.js.map +1 -0
  15. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy.js +14 -0
  16. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy.js.map +1 -0
  17. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/focus_trap_strategy_constants.js +12 -0
  18. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/focus_trap_strategy_constants.js.map +1 -0
  19. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy.js +29 -0
  20. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy.js.map +1 -0
  21. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy.js +60 -0
  22. package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy.js.map +1 -0
  23. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +3 -10
  24. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +24 -93
  25. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  26. package/build/esm/packages/phoenix/src/components/form/search/search.d.ts +6 -0
  27. package/build/esm/packages/phoenix/src/components/form/search/search.js +55 -8
  28. package/build/esm/packages/phoenix/src/components/form/search/search.js.map +1 -1
  29. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +3 -13
  30. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
  31. package/build/esm/packages/phoenix/src/components/modal/modal.d.ts +2 -0
  32. package/build/esm/packages/phoenix/src/components/modal/modal.js +39 -11
  33. package/build/esm/packages/phoenix/src/components/modal/modal.js.map +1 -1
  34. package/build/esm/packages/phoenix/src/components/sheet/sheet.d.ts +2 -0
  35. package/build/esm/packages/phoenix/src/components/sheet/sheet.js +33 -10
  36. package/build/esm/packages/phoenix/src/components/sheet/sheet.js.map +1 -1
  37. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.d.ts +13 -0
  38. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js +43 -0
  39. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js.map +1 -0
  40. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.d.ts +14 -0
  41. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.js +5 -0
  42. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.js.map +1 -0
  43. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy.d.ts +14 -0
  44. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy.js +62 -0
  45. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy.js.map +1 -0
  46. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy_types.d.ts +8 -0
  47. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy_types.js +2 -0
  48. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy_types.js.map +1 -0
  49. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy.d.ts +6 -0
  50. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy.js +10 -0
  51. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy.js.map +1 -0
  52. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy_types.d.ts +3 -0
  53. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy_types.js +2 -0
  54. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy_types.js.map +1 -0
  55. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/focus_trap_strategy_constants.d.ts +5 -0
  56. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/focus_trap_strategy_constants.js +8 -0
  57. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/focus_trap_strategy_constants.js.map +1 -0
  58. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy.d.ts +7 -0
  59. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy.js +25 -0
  60. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy.js.map +1 -0
  61. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy_types.d.ts +4 -0
  62. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy_types.js +2 -0
  63. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy_types.js.map +1 -0
  64. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy.d.ts +11 -0
  65. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy.js +56 -0
  66. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy.js.map +1 -0
  67. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy_types.d.ts +4 -0
  68. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy_types.js +2 -0
  69. package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy_types.js.map +1 -0
  70. package/package.json +1 -1
@@ -0,0 +1,62 @@
1
+ import { UiDomUtils } from '@dreamcommerce/utilities';
2
+
3
+ class BaseFocusTrapStrategy {
4
+ constructor(getContainer) {
5
+ this.getContainer = getContainer;
6
+ this.active = false;
7
+ this.noAutofocus = false;
8
+ this._handleKeyDown = (ev) => {
9
+ if (!this.active || ev.code !== 'Tab')
10
+ return;
11
+ const container = this.getContainer();
12
+ if (!container)
13
+ return;
14
+ const focusableElements = this.getFocusableElements(container);
15
+ if (focusableElements.length === 0)
16
+ return;
17
+ const $target = ev.target;
18
+ if (ev.shiftKey) {
19
+ if ($target === focusableElements[0]) {
20
+ ev.preventDefault();
21
+ focusableElements[focusableElements.length - 1].focus();
22
+ }
23
+ }
24
+ else {
25
+ if ($target === focusableElements[focusableElements.length - 1]) {
26
+ ev.preventDefault();
27
+ focusableElements[0].focus();
28
+ }
29
+ }
30
+ };
31
+ }
32
+ attach() {
33
+ document.addEventListener('keydown', this._handleKeyDown);
34
+ }
35
+ detach() {
36
+ document.removeEventListener('keydown', this._handleKeyDown);
37
+ }
38
+ activate() {
39
+ this.active = true;
40
+ }
41
+ deactivate() {
42
+ this.active = false;
43
+ }
44
+ getFocusableElements(container) {
45
+ return UiDomUtils.getFocusableElements(container).filter(($el) => this._isElementTrulyFocusable($el));
46
+ }
47
+ _isElementTrulyFocusable($el) {
48
+ const style = window.getComputedStyle($el);
49
+ if (style.display === 'none' || style.visibility === 'hidden') {
50
+ return false;
51
+ }
52
+ if ($el.nodeName === 'H-PORTAL')
53
+ return true;
54
+ const $parent = $el.parentElement;
55
+ if (!$parent)
56
+ return true;
57
+ return this._isElementTrulyFocusable($parent);
58
+ }
59
+ }
60
+
61
+ export { BaseFocusTrapStrategy };
62
+ //# sourceMappingURL=base_focus_trap_strategy.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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,8 @@
1
+ export interface IBaseFocusTrapStrategy {
2
+ noAutofocus: boolean;
3
+ attach(): void;
4
+ detach(): void;
5
+ activate(): void;
6
+ deactivate(): void;
7
+ getFocusableElements(container: HTMLElement): HTMLElement[];
8
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base_focus_trap_strategy_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base_focus_trap_strategy_types.js","sourceRoot":"","sources":["../../../../../../../../src/controllers/focus_trap_controller/strategies/base_focus_trap_strategy_types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { BaseFocusTrapStrategy } from '../base_focus_trap_strategy';
2
+ import { IBaseFocusTrapStrategy } from '../base_focus_trap_strategy_types';
3
+ import { TCyclicFocusTrapStrategyProps } from './cyclic_focus_trap_strategy_types';
4
+ export declare class CyclicFocusTrapStrategy extends BaseFocusTrapStrategy implements IBaseFocusTrapStrategy {
5
+ constructor({ getContainer }: TCyclicFocusTrapStrategyProps);
6
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseFocusTrapStrategy } from '../base_focus_trap_strategy.js';
2
+
3
+ class CyclicFocusTrapStrategy extends BaseFocusTrapStrategy {
4
+ constructor({ getContainer }) {
5
+ super(getContainer);
6
+ }
7
+ }
8
+
9
+ export { CyclicFocusTrapStrategy };
10
+ //# sourceMappingURL=cyclic_focus_trap_strategy.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;"}
@@ -0,0 +1,3 @@
1
+ export declare type TCyclicFocusTrapStrategyProps = {
2
+ getContainer: () => HTMLElement | undefined;
3
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cyclic_focus_trap_strategy_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cyclic_focus_trap_strategy_types.js","sourceRoot":"","sources":["../../../../../../../../../src/controllers/focus_trap_controller/strategies/cyclic_focus_trap_strategy/cyclic_focus_trap_strategy_types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare const FOCUS_TRAP_STRATEGY_TYPES: {
2
+ readonly cyclic: "cyclic";
3
+ readonly toggler: "toggler";
4
+ readonly sentinel: "sentinel";
5
+ };
@@ -0,0 +1,8 @@
1
+ const FOCUS_TRAP_STRATEGY_TYPES = {
2
+ cyclic: 'cyclic',
3
+ toggler: 'toggler',
4
+ sentinel: 'sentinel',
5
+ };
6
+
7
+ export { FOCUS_TRAP_STRATEGY_TYPES };
8
+ //# sourceMappingURL=focus_trap_strategy_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,7 @@
1
+ import { BaseFocusTrapStrategy } from '../base_focus_trap_strategy';
2
+ import { IBaseFocusTrapStrategy } from '../base_focus_trap_strategy_types';
3
+ import { TSentinelFocusTrapStrategyProps } from './sentinel_focus_trap_strategy_types';
4
+ export declare class SentinelFocusTrapStrategy extends BaseFocusTrapStrategy implements IBaseFocusTrapStrategy {
5
+ constructor({ getContainer, noAutofocus }: TSentinelFocusTrapStrategyProps);
6
+ activate(): void;
7
+ }
@@ -0,0 +1,25 @@
1
+ import { BaseFocusTrapStrategy } from '../base_focus_trap_strategy.js';
2
+
3
+ class SentinelFocusTrapStrategy extends BaseFocusTrapStrategy {
4
+ constructor({ getContainer, noAutofocus = false }) {
5
+ super(getContainer);
6
+ this.noAutofocus = noAutofocus;
7
+ }
8
+ activate() {
9
+ this.active = true;
10
+ if (!this.noAutofocus) {
11
+ requestAnimationFrame(() => {
12
+ const container = this.getContainer();
13
+ if (!container)
14
+ return;
15
+ const focusableElements = this.getFocusableElements(container);
16
+ const shouldSkipStartSentinel = focusableElements.length > 1;
17
+ const $firstFocusableContentElement = shouldSkipStartSentinel ? focusableElements[1] : focusableElements[0];
18
+ $firstFocusableContentElement === null || $firstFocusableContentElement === void 0 ? void 0 : $firstFocusableContentElement.focus();
19
+ });
20
+ }
21
+ }
22
+ }
23
+
24
+ export { SentinelFocusTrapStrategy };
25
+ //# sourceMappingURL=sentinel_focus_trap_strategy.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;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,4 @@
1
+ export declare type TSentinelFocusTrapStrategyProps = {
2
+ getContainer: () => HTMLElement | undefined;
3
+ noAutofocus?: boolean;
4
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sentinel_focus_trap_strategy_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentinel_focus_trap_strategy_types.js","sourceRoot":"","sources":["../../../../../../../../../src/controllers/focus_trap_controller/strategies/sentinel_focus_trap_strategy/sentinel_focus_trap_strategy_types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { BaseFocusTrapStrategy } from '../base_focus_trap_strategy';
2
+ import { IBaseFocusTrapStrategy } from '../base_focus_trap_strategy_types';
3
+ import { TTogglerFocusTrapStrategyProps } from './toggler_focus_trap_strategy_types';
4
+ export declare class TogglerFocusTrapStrategy extends BaseFocusTrapStrategy implements IBaseFocusTrapStrategy {
5
+ #private;
6
+ constructor({ getContainer, getToggler }: TTogglerFocusTrapStrategyProps);
7
+ protected _handleKeyDown: (ev: KeyboardEvent) => void;
8
+ private _focusLastContentElement;
9
+ private _focusFirstContentElement;
10
+ private _returnToToggler;
11
+ }
@@ -0,0 +1,56 @@
1
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { BaseFocusTrapStrategy } from '../base_focus_trap_strategy.js';
3
+
4
+ var _TogglerFocusTrapStrategy_getToggler;
5
+ class TogglerFocusTrapStrategy extends BaseFocusTrapStrategy {
6
+ constructor({ getContainer, getToggler }) {
7
+ super(getContainer);
8
+ _TogglerFocusTrapStrategy_getToggler.set(this, void 0);
9
+ this._handleKeyDown = (ev) => {
10
+ var _a;
11
+ if (!this.active || ev.code !== 'Tab')
12
+ return;
13
+ const container = this.getContainer();
14
+ const toggler = (_a = __classPrivateFieldGet(this, _TogglerFocusTrapStrategy_getToggler, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
15
+ if (!container || !toggler)
16
+ return;
17
+ const $target = ev.target;
18
+ const focusableElements = this.getFocusableElements(container);
19
+ if (ev.shiftKey) {
20
+ if (toggler.contains($target))
21
+ return this._focusLastContentElement(ev, focusableElements);
22
+ if ($target === focusableElements[0])
23
+ return this._returnToToggler(ev, toggler);
24
+ }
25
+ else {
26
+ if (toggler.contains($target))
27
+ return this._focusFirstContentElement(ev, focusableElements);
28
+ if ($target === focusableElements[focusableElements.length - 1])
29
+ return this._returnToToggler(ev, toggler);
30
+ }
31
+ };
32
+ __classPrivateFieldSet(this, _TogglerFocusTrapStrategy_getToggler, getToggler, "f");
33
+ }
34
+ _focusLastContentElement(ev, focusableElements) {
35
+ const last = focusableElements[focusableElements.length - 1];
36
+ if (!last)
37
+ return;
38
+ ev.preventDefault();
39
+ last.focus();
40
+ }
41
+ _focusFirstContentElement(ev, focusableElements) {
42
+ const first = focusableElements[0];
43
+ if (!first)
44
+ return;
45
+ ev.preventDefault();
46
+ first.focus();
47
+ }
48
+ _returnToToggler(ev, toggler) {
49
+ ev.preventDefault();
50
+ toggler.focus();
51
+ }
52
+ }
53
+ _TogglerFocusTrapStrategy_getToggler = new WeakMap();
54
+
55
+ export { TogglerFocusTrapStrategy };
56
+ //# sourceMappingURL=toggler_focus_trap_strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,+DAA+D,kDAAsD;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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
+ export declare type TTogglerFocusTrapStrategyProps = {
2
+ getContainer: () => HTMLElement | undefined;
3
+ getToggler: () => HTMLElement | undefined;
4
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toggler_focus_trap_strategy_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggler_focus_trap_strategy_types.js","sourceRoot":"","sources":["../../../../../../../../../src/controllers/focus_trap_controller/strategies/toggler_focus_trap_strategy/toggler_focus_trap_strategy_types.ts"],"names":[],"mappings":""}
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.18.23-0",
5
+ "version": "1.18.23-10",
6
6
  "description": "phoenix design system",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",