@shoper/phoenix_design_system 1.13.0 → 1.14.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 (57) hide show
  1. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item.js +21 -29
  2. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js +0 -4
  4. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches.js +121 -11
  6. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches_constants.js +0 -2
  8. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches_constants.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +114 -37
  10. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_close.js +4 -4
  12. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js +12 -9
  13. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  14. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +13 -24
  15. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  16. package/build/cjs/packages/phoenix/src/components/form/select/select.js +3 -4
  17. package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
  18. package/build/cjs/packages/phoenix/src/components/messages/base_message.js +16 -47
  19. package/build/cjs/packages/phoenix/src/components/messages/base_message.js.map +1 -1
  20. package/build/cjs/packages/phoenix/src/components/messages/base_message_constants.js +0 -2
  21. package/build/cjs/packages/phoenix/src/components/messages/base_message_constants.js.map +1 -1
  22. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +13 -2
  23. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js.map +1 -1
  24. package/build/cjs/packages/phoenix/src/index.js +5 -5
  25. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.d.ts +3 -6
  26. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.js +22 -30
  27. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.js.map +1 -1
  28. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js +1 -4
  29. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js.map +1 -1
  30. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.d.ts +11 -1
  31. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.js +124 -14
  32. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.js.map +1 -1
  33. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_constants.js +1 -2
  34. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_constants.js.map +1 -1
  35. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +13 -4
  36. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +115 -38
  37. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  38. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_close.js +4 -4
  39. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.d.ts +1 -2
  40. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js +12 -9
  41. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  42. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.d.ts +1 -2
  43. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +14 -25
  44. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  45. package/build/esm/packages/phoenix/src/components/form/select/select.js +3 -4
  46. package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
  47. package/build/esm/packages/phoenix/src/components/messages/base_message.d.ts +2 -3
  48. package/build/esm/packages/phoenix/src/components/messages/base_message.js +18 -49
  49. package/build/esm/packages/phoenix/src/components/messages/base_message.js.map +1 -1
  50. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.js +3 -4
  51. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.js.map +1 -1
  52. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.d.ts +2 -1
  53. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +13 -2
  54. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js.map +1 -1
  55. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_types.d.ts +1 -0
  56. package/build/esm/packages/phoenix/src/index.js +1 -1
  57. package/package.json +1 -1
@@ -1,17 +1,28 @@
1
1
  import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
2
  import { property } from 'lit/decorators';
3
- import { UiDomUtils } from '@dreamcommerce/utilities';
3
+ import '@dreamcommerce/utilities';
4
4
  import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
5
  import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
6
6
  import { BtnController } from '../../controllers/btn_controller/btn_controller.js';
7
7
  import { BREAKPOINTS } from '../../global_constants.js';
8
- import { DROPDOWN_EVENTS, DROPDOWN_CONTENT_NAME, DROPDOWN_CSS_CLASSES, DROPDOWN_CONTAINER_NAME, DROPDOWN_TOGGLE_ON_HOVER_ATTRIBUTE_NAME } from './dropdown_constants.js';
8
+ import { DROPDOWN_CONTAINER_NAME, DROPDOWN_EVENTS, DROPDOWN_CSS_CLASSES, DROPDOWN_TOGGLE_ON_HOVER_ATTRIBUTE_NAME } from './dropdown_constants.js';
9
9
  import { ToggleElementAriaController } from '../../controllers/toggle_element_aria_controller/toggle_element_aria_controller.js';
10
10
 
11
11
  let HDropdownToggler = class HDropdownToggler extends PhoenixLightLitElement {
12
12
  constructor() {
13
13
  super();
14
14
  this.name = '';
15
+ this._setupTogglerAria = () => {
16
+ this._$dropdown = this.closest(DROPDOWN_CONTAINER_NAME);
17
+ if (this._$dropdown.isOpened)
18
+ this._toggleElementAriaController = new ToggleElementAriaController({
19
+ host: this,
20
+ initialAriaExpandedValue: this._$dropdown.isOpened()
21
+ });
22
+ this.setAttribute('aria-haspopup', 'true');
23
+ if (this._$dropdown.id)
24
+ this.setAttribute('aria-controls', this._$dropdown.id);
25
+ };
15
26
  this._dispatchToggleDropdownEventWithKeyboard = (ev) => {
16
27
  ev.stopImmediatePropagation();
17
28
  this._dispatchToggleDropdownEvent(ev);
@@ -25,18 +36,6 @@ let HDropdownToggler = class HDropdownToggler extends PhoenixLightLitElement {
25
36
  ev.preventDefault();
26
37
  this.emitCustomEvent(DROPDOWN_EVENTS.toggle);
27
38
  };
28
- this._handleFocusToOpenedDropdown = async (ev) => {
29
- if (ev.target !== this)
30
- return;
31
- const isOpened = this._$dropdown.isOpened();
32
- if (!isOpened)
33
- return;
34
- const $dropdownContent = document.querySelector(`${DROPDOWN_CONTENT_NAME}[name="${this.name}"]`);
35
- if (!$dropdownContent)
36
- return;
37
- ev.preventDefault();
38
- UiDomUtils.setFocusToFirstFocusableElementInContainer($dropdownContent);
39
- };
40
39
  this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
41
40
  this.className = `${DROPDOWN_CSS_CLASSES.toggler} ${this.className}`;
42
41
  }
@@ -44,13 +43,7 @@ let HDropdownToggler = class HDropdownToggler extends PhoenixLightLitElement {
44
43
  var _a;
45
44
  super.connectedCallback();
46
45
  this._btnController = new BtnController(this, this._dispatchToggleDropdownEventWithKeyboard);
47
- this._$dropdown = this.closest(DROPDOWN_CONTAINER_NAME);
48
- if (this._$dropdown.isOpened)
49
- this._toggleElementAriaController = new ToggleElementAriaController({
50
- host: this,
51
- initialAriaExpandedValue: this._$dropdown.isOpened()
52
- });
53
- document.addEventListener('keydown', this._handleFocusToOpenedDropdown);
46
+ this._setupTogglerAria();
54
47
  const hasToggleOnHover = (_a = this._$dropdown) === null || _a === void 0 ? void 0 : _a.hasAttribute(DROPDOWN_TOGGLE_ON_HOVER_ATTRIBUTE_NAME);
55
48
  if (hasToggleOnHover) {
56
49
  this.addEventListener('click', this._dispatchToggleDropdownEventOnMobile);
@@ -58,10 +51,6 @@ let HDropdownToggler = class HDropdownToggler extends PhoenixLightLitElement {
58
51
  }
59
52
  this.addEventListener('click', this._dispatchToggleDropdownEvent);
60
53
  }
61
- disconnectedCallback() {
62
- super.disconnectedCallback();
63
- document.removeEventListener('keydown', this._handleFocusToOpenedDropdown);
64
- }
65
54
  };
66
55
  __decorate([
67
56
  property({ type: String, reflect: true }),
@@ -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;"}
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;"}
@@ -229,9 +229,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
229
229
  SelectControlUtils.appendHTMLOption($option, $list, position);
230
230
  }
231
231
  updateOptionAriaAttribute($option) {
232
- !$option.selected
233
- ? $option.removeAttribute(this.multiple ? 'aria-checked' : 'aria-selected')
234
- : $option.setAttribute(this.multiple ? 'aria-checked' : 'aria-selected', 'true');
232
+ $option.setAttribute(this.multiple ? 'aria-checked' : 'aria-selected', String($option.selected));
235
233
  }
236
234
  _removeHTMLOptions(optionsValues) {
237
235
  this._$options = SelectControlUtils.removeHTMLOptions(Array.from(this._$options.values()), optionsValues);
@@ -296,13 +294,14 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
296
294
  name="${this.controlName}"
297
295
  offset=${this.offset}
298
296
  content-width="full"
297
+ prevent-focus-trap
299
298
  >
300
299
  <h-dropdown-toggler name=${this.controlName}> ${this.getSlot(SELECT_SLOT_NAMES.toggler)} </h-dropdown-toggler>
301
300
 
302
301
  <h-dropdown-content
303
302
  class="${SELECT_CSS_CLASSES.selectContent} ${this.error ? SELECT_CSS_CLASSES.selectContentError : ''}"
304
303
  ${ref(this._$dropdownContent)}
305
- name=${this.controlName}
304
+ name="${this.controlName}"
306
305
  >
307
306
  <h-select-close-btn class="${SELECT_CSS_CLASSES.selectCloseMobileButton}" @close=${this._closeSelect}></h-select-close-btn>
308
307
 
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -6,6 +6,8 @@ export declare class BaseMessage extends PhoenixLightLitElement implements IBase
6
6
  portalTarget: string;
7
7
  direction: TDirection;
8
8
  offset: number;
9
+ mouseonly: boolean;
10
+ tabindex: string;
9
11
  private _positionController;
10
12
  private _clickOutsideController;
11
13
  private _$messageContent;
@@ -21,7 +23,4 @@ export declare class BaseMessage extends PhoenixLightLitElement implements IBase
21
23
  protected _positionMessage: () => void;
22
24
  open: () => void;
23
25
  close: () => void;
24
- private _handleFocusWithinMessage;
25
- private _handleReverseTab;
26
- private _isBaseMessage;
27
26
  }
@@ -1,12 +1,11 @@
1
1
  import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
2
  import { property } from 'lit/decorators';
3
- import { DIRECTIONS, UiDomUtils } from '@dreamcommerce/utilities';
3
+ import { DIRECTIONS } from '@dreamcommerce/utilities';
4
4
  import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
- import { KeystrokesController } from '../../controllers/keystrokes_controller/keystrokes_controller.js';
6
5
  import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP, PORTAL_TARGET_ATTRIBUTE_NAME } from '../portal/portal_constants.js';
7
6
  import { ClickOutsideController } from '../../controllers/click_outside_controller/click_outside_controller.js';
8
7
  import { RelativePositionController } from '../../controllers/relative_position_controller/relative_position_controller.js';
9
- import { DEFAULT_MESSAGE_PORTAL_NAME, DEFAULT_MESSAGE_OFFSET, MESSAGE_SHOW_DELAY_IN_MS, MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS, MESSAGE_REMOVED_CLASS_NAME, MESSAGE_CLOSE_DELAY_IN_MS, MESSAGE_CONTENT_ELEMENTS, MESSAGE_ELEMENTS } from './base_message_constants.js';
8
+ import { DEFAULT_MESSAGE_PORTAL_NAME, DEFAULT_MESSAGE_OFFSET, MESSAGE_SHOW_DELAY_IN_MS, MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS, MESSAGE_REMOVED_CLASS_NAME, MESSAGE_CLOSE_DELAY_IN_MS, MESSAGE_CONTENT_ELEMENTS } from './base_message_constants.js';
10
9
 
11
10
  class BaseMessage extends PhoenixLightLitElement {
12
11
  constructor() {
@@ -15,10 +14,15 @@ class BaseMessage extends PhoenixLightLitElement {
15
14
  this.portalTarget = DEFAULT_MESSAGE_PORTAL_NAME;
16
15
  this.direction = DIRECTIONS.topCenter;
17
16
  this.offset = DEFAULT_MESSAGE_OFFSET;
17
+ this.mouseonly = false;
18
+ this.tabindex = '0';
18
19
  this._setupEventListeners = () => {
19
20
  this.addEventListener('mouseenter', this.open);
20
21
  this.addEventListener('mouseleave', this.close);
21
- this.addEventListener('focus', this.open);
22
+ if (!this.mouseonly) {
23
+ this.addEventListener('focusin', this.open);
24
+ this.addEventListener('focusout', this.close);
25
+ }
22
26
  };
23
27
  this._positionMessage = () => {
24
28
  requestAnimationFrame(() => {
@@ -54,49 +58,11 @@ class BaseMessage extends PhoenixLightLitElement {
54
58
  });
55
59
  }, this._shouldDelayClosing ? MESSAGE_CLOSE_DELAY_IN_MS : 0);
56
60
  };
57
- this._handleFocusWithinMessage = (ev) => {
58
- var _a;
59
- if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.closest(`.${this._messageComponentName}`)) !== this)
60
- this.close();
61
- if (!document.activeElement || ev.shiftKey)
62
- return;
63
- const $focusableElements = UiDomUtils.getFocusableElements(this);
64
- const activeElementIndex = $focusableElements.indexOf(document.activeElement);
65
- const isLastFocusableChild = activeElementIndex === $focusableElements.length - 1;
66
- if (!isLastFocusableChild)
67
- return;
68
- this.close();
69
- };
70
- this._handleReverseTab = () => {
71
- const $focusableElements = UiDomUtils.getFocusableElements(document.body);
72
- const activeElement = document.activeElement;
73
- const indexOfCurrentlyFocusedElement = $focusableElements.indexOf(activeElement);
74
- const $previousElement = $focusableElements[indexOfCurrentlyFocusedElement - 1];
75
- const $previousElementMessageParent = $previousElement === null || $previousElement === void 0 ? void 0 : $previousElement.closest(`h-${this._messageComponentName}`);
76
- if ($previousElementMessageParent === this)
77
- return;
78
- if ($previousElementMessageParent)
79
- $previousElementMessageParent.open();
80
- if (this._isBaseMessage(activeElement))
81
- activeElement.close();
82
- };
83
61
  this._clickOutsideController = new ClickOutsideController({
84
62
  host: this,
85
63
  container: this,
86
64
  action: this.close
87
65
  });
88
- new KeystrokesController({
89
- host: this,
90
- keys: ['tab'],
91
- target: this,
92
- callback: this._handleFocusWithinMessage
93
- });
94
- new KeystrokesController({
95
- host: this,
96
- keys: [['shift', 'tab']],
97
- target: document.body,
98
- callback: this._handleReverseTab
99
- });
100
66
  }
101
67
  connectedCallback(messageComponentName = '') {
102
68
  super.connectedCallback();
@@ -112,7 +78,7 @@ class BaseMessage extends PhoenixLightLitElement {
112
78
  elementToPosition: this._$messageContent,
113
79
  offset: this.offset
114
80
  });
115
- this.setAttribute('tabindex', '0');
81
+ this.setAttribute('tabindex', this.tabindex);
116
82
  this._setupEventListeners();
117
83
  }
118
84
  static _appendMessagePortal() {
@@ -123,11 +89,6 @@ class BaseMessage extends PhoenixLightLitElement {
123
89
  $portalTarget.setAttribute(PORTAL_TARGET_NAME_PROP, DEFAULT_MESSAGE_PORTAL_NAME);
124
90
  document.body.appendChild($portalTarget);
125
91
  }
126
- _isBaseMessage($element) {
127
- if (MESSAGE_ELEMENTS.includes($element.localName))
128
- return true;
129
- return false;
130
- }
131
92
  }
132
93
  __decorate([
133
94
  property({ type: Boolean, reflect: true }),
@@ -144,7 +105,15 @@ __decorate([
144
105
  __decorate([
145
106
  property({ type: String }),
146
107
  __metadata("design:type", Number)
147
- ], BaseMessage.prototype, "offset", void 0);
108
+ ], BaseMessage.prototype, "offset", void 0);
109
+ __decorate([
110
+ property({ type: Boolean }),
111
+ __metadata("design:type", Boolean)
112
+ ], BaseMessage.prototype, "mouseonly", void 0);
113
+ __decorate([
114
+ property({ type: String }),
115
+ __metadata("design:type", String)
116
+ ], BaseMessage.prototype, "tabindex", void 0);
148
117
 
149
118
  export { BaseMessage };
150
119
  //# sourceMappingURL=base_message.js.map
@@ -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;"}
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;"}
@@ -1,15 +1,14 @@
1
- import { HINT_ELEMENT_NAME, HINT_CONTENT_ELEMENT_NAME } from './hints/hint_constants.js';
2
- import { TOOLTIP_ELEMENT_NAME, TOOLTIP_CONTENT_ELEMENT_NAME } from './tooltips/tooltip_constants.js';
1
+ import { HINT_CONTENT_ELEMENT_NAME } from './hints/hint_constants.js';
2
+ import { TOOLTIP_CONTENT_ELEMENT_NAME } from './tooltips/tooltip_constants.js';
3
3
 
4
4
  const DEFAULT_MESSAGE_PORTAL_NAME = 'message-portal';
5
5
  const MESSAGE_CONTENT_SLOT_NAME = 'message-content';
6
6
  const MESSAGE_REMOVED_CLASS_NAME = `removed`;
7
7
  const DEFAULT_MESSAGE_OFFSET = 10;
8
- const MESSAGE_ELEMENTS = [TOOLTIP_ELEMENT_NAME, HINT_ELEMENT_NAME];
9
8
  const MESSAGE_CONTENT_ELEMENTS = [TOOLTIP_CONTENT_ELEMENT_NAME, HINT_CONTENT_ELEMENT_NAME];
10
9
  const MESSAGE_SHOW_DELAY_IN_MS = 100;
11
10
  const MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS = 500;
12
11
  const MESSAGE_CLOSE_DELAY_IN_MS = 500;
13
12
 
14
- export { DEFAULT_MESSAGE_OFFSET, DEFAULT_MESSAGE_PORTAL_NAME, MESSAGE_CLOSE_DELAY_IN_MS, MESSAGE_CONTENT_ELEMENTS, MESSAGE_CONTENT_SLOT_NAME, MESSAGE_ELEMENTS, MESSAGE_REMOVED_CLASS_NAME, MESSAGE_SHOW_DELAY_IN_MS, MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS };
13
+ export { DEFAULT_MESSAGE_OFFSET, DEFAULT_MESSAGE_PORTAL_NAME, MESSAGE_CLOSE_DELAY_IN_MS, MESSAGE_CONTENT_ELEMENTS, MESSAGE_CONTENT_SLOT_NAME, MESSAGE_REMOVED_CLASS_NAME, MESSAGE_SHOW_DELAY_IN_MS, MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS };
15
14
  //# sourceMappingURL=base_message_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;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;"}
@@ -4,8 +4,9 @@ export declare class KeystrokesController implements ReactiveController {
4
4
  #private;
5
5
  private _keys;
6
6
  private _callback;
7
+ private _containerSelectors?;
7
8
  private _buffer;
8
- constructor({ host, keys, callback, target }: TKeystrokesControllerProps);
9
+ constructor({ host, keys, callback, target, containerSelectors }: TKeystrokesControllerProps);
9
10
  hostConnected(): void;
10
11
  hostDisconnected(): void;
11
12
  private _clearBuffer;
@@ -3,11 +3,21 @@ import 'lit';
3
3
 
4
4
  var _KeystrokesController_host, _KeystrokesController_target;
5
5
  class KeystrokesController {
6
- constructor({ host, keys, callback, target }) {
6
+ constructor({ host, keys, callback, target, containerSelectors }) {
7
7
  _KeystrokesController_host.set(this, void 0);
8
8
  _KeystrokesController_target.set(this, void 0);
9
9
  this._buffer = [];
10
- this._clearBuffer = () => {
10
+ this._clearBuffer = (ev) => {
11
+ if (!this._containerSelectors) {
12
+ this._buffer = [];
13
+ return;
14
+ }
15
+ const $newFocusedElement = ev.relatedTarget;
16
+ if ($newFocusedElement instanceof HTMLElement) {
17
+ const isNewFocusedElementAChild = !!this._containerSelectors.find((containerSelector) => !!$newFocusedElement.closest(containerSelector));
18
+ if (isNewFocusedElementAChild)
19
+ return;
20
+ }
11
21
  this._buffer = [];
12
22
  };
13
23
  this._saveKey = (ev) => {
@@ -75,6 +85,7 @@ class KeystrokesController {
75
85
  __classPrivateFieldSet(this, _KeystrokesController_target, target, "f");
76
86
  this._keys = keys;
77
87
  this._callback = callback;
88
+ this._containerSelectors = containerSelectors;
78
89
  __classPrivateFieldGet(this, _KeystrokesController_host, "f").addController(this);
79
90
  }
80
91
  hostConnected() {
@@ -1 +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;"}
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;"}
@@ -4,4 +4,5 @@ export declare type TKeystrokesControllerProps = {
4
4
  keys: string[][] | string[] | string;
5
5
  callback: (ev: Event) => void;
6
6
  target: Element;
7
+ containerSelectors?: string[];
7
8
  };
@@ -72,8 +72,8 @@ export { HToggleButton } from './components/groups/toggle_button_group/toggle_bu
72
72
  export { CLICK_OUTSIDE_CONTROLLER_MESSAGES } from './controllers/click_outside_controller/click_outside_controller_messages.js';
73
73
  export { HBackdrop } from './components/backdrop/backdrop.js';
74
74
  export { COLOR_SWATCHES_CONTROL_EVENT_NAMES } from './components/form/color_swatches_control/color_swatches_control_constants.js';
75
- export { HColorItem } from './components/color_swatches/color_item/color_item.js';
76
75
  export { HColorSwatches } from './components/color_swatches/color_swatches.js';
76
+ export { HColorItem } from './components/color_swatches/color_item/color_item.js';
77
77
  export { HColorSwatchesControl } from './components/form/color_swatches_control/color_swatches_control.js';
78
78
  export { HColorSwatchesShowMore } from './components/color_swatches/show-more/show_more.js';
79
79
  export { VisibilityController } from './controllers/visibility_controller/visibility_controller.js';
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.13.0",
5
+ "version": "1.14.1-0",
6
6
  "description": "phoenix design system",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",