@shoper/phoenix_design_system 1.17.5-0 → 1.17.6

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 (34) hide show
  1. package/build/cjs/packages/phoenix/src/components/messages/base_message.js +1 -54
  2. package/build/cjs/packages/phoenix/src/components/messages/base_message.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/messages/base_message_constants.js +1 -6
  4. package/build/cjs/packages/phoenix/src/components/messages/base_message_constants.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/messages/hints/hint.js +10 -0
  6. package/build/cjs/packages/phoenix/src/components/messages/hints/hint.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip.js +10 -0
  8. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/portal/portal_constants.js +0 -2
  10. package/build/cjs/packages/phoenix/src/components/portal/portal_constants.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/tabs/tab_panel.js +8 -0
  12. package/build/cjs/packages/phoenix/src/components/tabs/tab_panel.js.map +1 -1
  13. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js +5 -10
  14. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js.map +1 -1
  15. package/build/esm/packages/phoenix/src/components/messages/base_message.d.ts +0 -10
  16. package/build/esm/packages/phoenix/src/components/messages/base_message.js +3 -56
  17. package/build/esm/packages/phoenix/src/components/messages/base_message.js.map +1 -1
  18. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.d.ts +0 -2
  19. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.js +2 -5
  20. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.js.map +1 -1
  21. package/build/esm/packages/phoenix/src/components/messages/hints/hint.d.ts +2 -0
  22. package/build/esm/packages/phoenix/src/components/messages/hints/hint.js +10 -0
  23. package/build/esm/packages/phoenix/src/components/messages/hints/hint.js.map +1 -1
  24. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.d.ts +2 -0
  25. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.js +10 -0
  26. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.js.map +1 -1
  27. package/build/esm/packages/phoenix/src/components/portal/portal_constants.js +1 -2
  28. package/build/esm/packages/phoenix/src/components/portal/portal_constants.js.map +1 -1
  29. package/build/esm/packages/phoenix/src/components/tabs/tab_panel.d.ts +1 -0
  30. package/build/esm/packages/phoenix/src/components/tabs/tab_panel.js +8 -0
  31. package/build/esm/packages/phoenix/src/components/tabs/tab_panel.js.map +1 -1
  32. package/build/esm/packages/phoenix/src/components/tabs/tabs.js +5 -10
  33. package/build/esm/packages/phoenix/src/components/tabs/tabs.js.map +1 -1
  34. package/package.json +2 -2
@@ -3,16 +3,13 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
- var lit = require('lit');
7
6
  var decorators = require('lit/decorators');
8
7
  var utilities = require('@dreamcommerce/utilities');
9
8
  var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
10
- var v4 = require('../../../../../external/uuid/dist/esm-browser/v4.js');
11
9
  var portal_constants = require('../portal/portal_constants.js');
12
10
  var click_outside_controller = require('../../controllers/click_outside_controller/click_outside_controller.js');
13
11
  var relative_position_controller = require('../../controllers/relative_position_controller/relative_position_controller.js');
14
12
  var base_message_constants = require('./base_message_constants.js');
15
- var ref = require('lit/directives/ref');
16
13
 
17
14
  class BaseMessage extends phoenix_light_lit_element.PhoenixLightLitElement {
18
15
  constructor() {
@@ -23,24 +20,9 @@ class BaseMessage extends phoenix_light_lit_element.PhoenixLightLitElement {
23
20
  this.offset = base_message_constants.DEFAULT_MESSAGE_OFFSET;
24
21
  this.mouseonly = false;
25
22
  this.tabindex = '-1';
26
- this.useAsLabel = false;
27
- this._messageId = v4['default']();
28
- this._tooltipRef = ref.createRef();
29
- this._handleChildrenAriaAttributes = () => {
30
- [...this.children].forEach((child) => {
31
- if (base_message_constants.LIST_OF_MESSAGE_CHILDREN.includes(child.tagName.toLowerCase()) || this._tooltipRef.value === child)
32
- return;
33
- const attributeName = this.useAsLabel ? 'aria-labelledby' : 'aria-describedby';
34
- child.setAttribute(attributeName, `${child.getAttribute(attributeName) || ''} ${this._messageId}`);
35
- });
36
- };
37
23
  this._setupEventListeners = () => {
38
- var _a, _b;
39
24
  this.addEventListener('mouseenter', this.open);
40
25
  this.addEventListener('mouseleave', this.close);
41
- this.addEventListener('keydown', this._closeFromKeyboard);
42
- (_a = this._$baseMessageContent) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseenter', this.open);
43
- (_b = this._$baseMessageContent) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseleave', this.close);
44
26
  if (!this.mouseonly) {
45
27
  this.addEventListener('focusin', this.open);
46
28
  this.addEventListener('focusout', this.close);
@@ -61,13 +43,6 @@ class BaseMessage extends phoenix_light_lit_element.PhoenixLightLitElement {
61
43
  this.opened = true;
62
44
  }, base_message_constants.MESSAGE_SHOW_DELAY_IN_MS);
63
45
  };
64
- this._closeFromKeyboard = (ev) => {
65
- if (ev.key !== 'Escape' || !this.opened)
66
- return;
67
- ev.preventDefault();
68
- ev.stopPropagation();
69
- this.close();
70
- };
71
46
  this.close = () => {
72
47
  this._shouldDelayClosing = Date.now() - this._tooltipOpenTime > base_message_constants.MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS;
73
48
  clearTimeout(this._openTimeout);
@@ -108,14 +83,8 @@ class BaseMessage extends phoenix_light_lit_element.PhoenixLightLitElement {
108
83
  offset: this.offset
109
84
  });
110
85
  this.setAttribute('tabindex', this.tabindex);
111
- if (!this._$baseMessageContent)
112
- this._$baseMessageContent = [...this.children].find((child) => base_message_constants.MESSAGE_CONTENT_ELEMENTS.includes(child.tagName.toLowerCase()));
113
86
  this._setupEventListeners();
114
87
  }
115
- firstUpdated(props) {
116
- super.firstUpdated(props);
117
- this._handleChildrenAriaAttributes();
118
- }
119
88
  static _appendMessagePortal() {
120
89
  const $messagePortalTarget = document.querySelector(`[name="${base_message_constants.DEFAULT_MESSAGE_PORTAL_NAME}"]`);
121
90
  if ($messagePortalTarget)
@@ -124,24 +93,6 @@ class BaseMessage extends phoenix_light_lit_element.PhoenixLightLitElement {
124
93
  $portalTarget.setAttribute(portal_constants.PORTAL_TARGET_NAME_PROP, base_message_constants.DEFAULT_MESSAGE_PORTAL_NAME);
125
94
  document.body.appendChild($portalTarget);
126
95
  }
127
- disconnectedCallback() {
128
- var _a, _b;
129
- super.disconnectedCallback();
130
- (_a = this._$baseMessageContent) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseenter', this.open);
131
- (_b = this._$baseMessageContent) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseleave', this.close);
132
- }
133
- render() {
134
- var _a;
135
- super.render();
136
- return lit.html `
137
- <span ${ref.ref(this._tooltipRef)} id="${this._messageId}" class="${base_message_constants.SCREEN_READER_ONLY_CLASS_NAME}" role="tooltip">
138
- ${utilities.DomUtils.stripHTMLTags(((_a = this._$baseMessageContent) === null || _a === void 0 ? void 0 : _a.innerHTML) || '')}
139
- </span>
140
- <h-portal ?disabled="${!this.opened}" @open="${this._positionMessage}" to="${this.portalTarget}" hidden>
141
- ${this.getSlot(base_message_constants.MESSAGE_CONTENT_SLOT_NAME)}
142
- </h-portal>
143
- `;
144
- }
145
96
  }
146
97
  tslib_es6.__decorate([
147
98
  decorators.property({ type: Boolean, reflect: true }),
@@ -166,11 +117,7 @@ tslib_es6.__decorate([
166
117
  tslib_es6.__decorate([
167
118
  decorators.property({ type: String }),
168
119
  tslib_es6.__metadata("design:type", String)
169
- ], BaseMessage.prototype, "tabindex", void 0);
170
- tslib_es6.__decorate([
171
- decorators.property({ type: Boolean, attribute: 'use-as-label' }),
172
- tslib_es6.__metadata("design:type", Boolean)
173
- ], BaseMessage.prototype, "useAsLabel", void 0);
120
+ ], BaseMessage.prototype, "tabindex", void 0);
174
121
 
175
122
  exports.BaseMessage = BaseMessage;
176
123
  //# sourceMappingURL=base_message.js.map
@@ -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,iBAAiB,qDAAyD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var portal_constants = require('../portal/portal_constants.js');
6
5
  var hint_constants = require('./hints/hint_constants.js');
7
6
  var tooltip_constants = require('./tooltips/tooltip_constants.js');
8
7
 
@@ -11,20 +10,16 @@ const MESSAGE_CONTENT_SLOT_NAME = 'message-content';
11
10
  const MESSAGE_REMOVED_CLASS_NAME = `removed`;
12
11
  const DEFAULT_MESSAGE_OFFSET = 10;
13
12
  const MESSAGE_CONTENT_ELEMENTS = [tooltip_constants.TOOLTIP_CONTENT_ELEMENT_NAME, hint_constants.HINT_CONTENT_ELEMENT_NAME];
14
- const LIST_OF_MESSAGE_CHILDREN = [...MESSAGE_CONTENT_ELEMENTS, portal_constants.PORTAL_COMPONENT_NAME];
15
13
  const MESSAGE_SHOW_DELAY_IN_MS = 100;
16
14
  const MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS = 500;
17
- const MESSAGE_CLOSE_DELAY_IN_MS = 500;
18
- const SCREEN_READER_ONLY_CLASS_NAME = 'sr-only';
15
+ const MESSAGE_CLOSE_DELAY_IN_MS = 500;
19
16
 
20
17
  exports.DEFAULT_MESSAGE_OFFSET = DEFAULT_MESSAGE_OFFSET;
21
18
  exports.DEFAULT_MESSAGE_PORTAL_NAME = DEFAULT_MESSAGE_PORTAL_NAME;
22
- exports.LIST_OF_MESSAGE_CHILDREN = LIST_OF_MESSAGE_CHILDREN;
23
19
  exports.MESSAGE_CLOSE_DELAY_IN_MS = MESSAGE_CLOSE_DELAY_IN_MS;
24
20
  exports.MESSAGE_CONTENT_ELEMENTS = MESSAGE_CONTENT_ELEMENTS;
25
21
  exports.MESSAGE_CONTENT_SLOT_NAME = MESSAGE_CONTENT_SLOT_NAME;
26
22
  exports.MESSAGE_REMOVED_CLASS_NAME = MESSAGE_REMOVED_CLASS_NAME;
27
23
  exports.MESSAGE_SHOW_DELAY_IN_MS = MESSAGE_SHOW_DELAY_IN_MS;
28
24
  exports.MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS = MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS;
29
- exports.SCREEN_READER_ONLY_CLASS_NAME = SCREEN_READER_ONLY_CLASS_NAME;
30
25
  //# 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;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;"}
@@ -4,7 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib_es6 = require('../../../../../../external/tslib/tslib.es6.js');
6
6
  var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
7
+ var litHtml = require('lit-html');
7
8
  var hint_constants = require('./hint_constants.js');
9
+ var base_message_constants = require('../base_message_constants.js');
8
10
  var base_message = require('../base_message.js');
9
11
 
10
12
  exports.HHint = class HHint extends base_message.BaseMessage {
@@ -16,6 +18,14 @@ exports.HHint = class HHint extends base_message.BaseMessage {
16
18
  super.connectedCallback(hint_constants.HINT_CLASS_NAME);
17
19
  this.classList.add(hint_constants.HINT_CLASS_NAME);
18
20
  }
21
+ render() {
22
+ super.render();
23
+ return litHtml.html `
24
+ <h-portal ?disabled="${!this.opened}" @open="${this._positionMessage}" to="${this.portalTarget}" hidden>
25
+ ${this.getSlot(base_message_constants.MESSAGE_CONTENT_SLOT_NAME)}
26
+ </h-portal>
27
+ `;
28
+ }
19
29
  };
20
30
  exports.HHint = tslib_es6.__decorate([
21
31
  phoenix_custom_element.phoenixCustomElement(hint_constants.HINT_ELEMENT_NAME),
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;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,+CAAmD;AAC3E;AACA;AACA;AACA;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,7 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib_es6 = require('../../../../../../external/tslib/tslib.es6.js');
6
6
  var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
7
+ var litHtml = require('lit-html');
7
8
  var tooltip_constants = require('./tooltip_constants.js');
9
+ var base_message_constants = require('../base_message_constants.js');
8
10
  var base_message = require('../base_message.js');
9
11
 
10
12
  exports.HTooltip = class HTooltip extends base_message.BaseMessage {
@@ -12,6 +14,14 @@ exports.HTooltip = class HTooltip extends base_message.BaseMessage {
12
14
  super.connectedCallback(tooltip_constants.TOOLTIP_CLASS_NAME);
13
15
  this.classList.add(tooltip_constants.TOOLTIP_CLASS_NAME);
14
16
  }
17
+ render() {
18
+ super.render();
19
+ return litHtml.html `
20
+ <h-portal ?disabled="${!this.opened}" @open="${this._positionMessage}" to="${this.portalTarget}" hidden>
21
+ ${this.getSlot(base_message_constants.MESSAGE_CONTENT_SLOT_NAME)}
22
+ </h-portal>
23
+ `;
24
+ }
15
25
  };
16
26
  exports.HTooltip = tslib_es6.__decorate([
17
27
  phoenix_custom_element.phoenixCustomElement(tooltip_constants.TOOLTIP_ELEMENT_NAME)
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;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,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -7,11 +7,9 @@ const PORTAL_EVENTS = {
7
7
  close: 'close'
8
8
  };
9
9
  const PORTAL_TARGET_NAME_PROP = 'name';
10
- const PORTAL_COMPONENT_NAME = 'h-portal';
11
10
  const PORTAL_TARGET_COMPONENT_NAME = 'h-portal-target';
12
11
  const PORTAL_TARGET_ATTRIBUTE_NAME = 'portal-target';
13
12
 
14
- exports.PORTAL_COMPONENT_NAME = PORTAL_COMPONENT_NAME;
15
13
  exports.PORTAL_EVENTS = PORTAL_EVENTS;
16
14
  exports.PORTAL_TARGET_ATTRIBUTE_NAME = PORTAL_TARGET_ATTRIBUTE_NAME;
17
15
  exports.PORTAL_TARGET_COMPONENT_NAME = PORTAL_TARGET_COMPONENT_NAME;
@@ -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;"}
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;"}
@@ -12,6 +12,14 @@ exports.HTabPanel = class HTabPanel extends phoenix_light_lit_element.PhoenixLig
12
12
  constructor() {
13
13
  super();
14
14
  this._visibilityController = new visibility_controller.VisibilityController(this);
15
+ this.setAttribute('role', 'tabpanel');
16
+ }
17
+ connectedCallback() {
18
+ super.connectedCallback();
19
+ const $tab = document.querySelector(`[panel-name="${this.name}"]`);
20
+ if ($tab && $tab.id) {
21
+ this.setAttribute('aria-labelledby', $tab.id);
22
+ }
15
23
  }
16
24
  show() {
17
25
  this._visibilityController.show();
@@ -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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -16,13 +16,12 @@ exports.HTabs = class HTabs extends phoenix_light_lit_element.PhoenixLightLitEle
16
16
  constructor() {
17
17
  super(...arguments);
18
18
  this.watchChildrenRendered = true;
19
- this._handleArrowNavigation = ({ key }) => {
19
+ this._handleArrowNavigation = (ev) => {
20
+ ev.preventDefault();
20
21
  const currentTabIndex = this._getFocusedTabIndex();
21
22
  if (currentTabIndex === undefined)
22
23
  return;
23
- const newTabIndex = key === 'ArrowLeft' ? this._getPrevTabIndex(currentTabIndex) : this._getNextTabIndex(currentTabIndex);
24
- if (newTabIndex === undefined)
25
- return;
24
+ const newTabIndex = ev.key === 'ArrowLeft' ? this._getPrevTabIndex(currentTabIndex) : this._getNextTabIndex(currentTabIndex);
26
25
  utilities.UiDomUtils.makeUnnavigable(this._$tabs[currentTabIndex]);
27
26
  utilities.UiDomUtils.makeNavigable(this._$tabs[newTabIndex]);
28
27
  this._$tabs[newTabIndex].focus();
@@ -59,14 +58,10 @@ exports.HTabs = class HTabs extends phoenix_light_lit_element.PhoenixLightLitEle
59
58
  return this._$tabs.findIndex(($tab) => $tab === focusedElement);
60
59
  }
61
60
  _getNextTabIndex(currentTabIndex) {
62
- if (currentTabIndex >= this._$tabs.length - 1)
63
- return;
64
- return currentTabIndex + 1;
61
+ return (currentTabIndex + 1) % this._$tabs.length;
65
62
  }
66
63
  _getPrevTabIndex(currentTabIndex) {
67
- if (currentTabIndex <= 0)
68
- return;
69
- return currentTabIndex - 1;
64
+ return (currentTabIndex - 1 + this._$tabs.length) % this._$tabs.length;
70
65
  }
71
66
  _setupEvents() {
72
67
  document.addEventListener(tab_constants.TAB_EVENT_NAMES.selected, this._handleTabSelected);
@@ -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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,7 +1,6 @@
1
1
  import { IBaseMessage } from './base_message_types';
2
2
  import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
3
3
  import type { TDirection } from '@dreamcommerce/utilities';
4
- import { PropertyValues, TemplateResult } from 'lit';
5
4
  export declare class BaseMessage extends PhoenixLightLitElement implements IBaseMessage {
6
5
  opened: boolean;
7
6
  portalTarget: string;
@@ -9,8 +8,6 @@ export declare class BaseMessage extends PhoenixLightLitElement implements IBase
9
8
  offset: number;
10
9
  mouseonly: boolean;
11
10
  tabindex: string;
12
- useAsLabel: boolean;
13
- private _messageId;
14
11
  private _positionController;
15
12
  private _clickOutsideController;
16
13
  private _$messageContent;
@@ -19,18 +16,11 @@ export declare class BaseMessage extends PhoenixLightLitElement implements IBase
19
16
  private _shouldDelayClosing;
20
17
  private _closeTimeout;
21
18
  private _messageComponentName;
22
- private _$baseMessageContent?;
23
- private _tooltipRef;
24
19
  constructor();
25
20
  connectedCallback(messageComponentName?: string): void;
26
- firstUpdated(props: PropertyValues): void;
27
- private _handleChildrenAriaAttributes;
28
21
  private static _appendMessagePortal;
29
22
  private _setupEventListeners;
30
23
  protected _positionMessage: () => void;
31
24
  open: () => void;
32
- private _closeFromKeyboard;
33
25
  close: () => void;
34
- disconnectedCallback(): void;
35
- protected render(): TemplateResult;
36
26
  }
@@ -1,14 +1,11 @@
1
1
  import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
- import { html } from 'lit';
3
2
  import { property } from 'lit/decorators';
4
- import { DIRECTIONS, DomUtils } from '@dreamcommerce/utilities';
3
+ import { DIRECTIONS } from '@dreamcommerce/utilities';
5
4
  import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
6
- import v4 from '../../../../../external/uuid/dist/esm-browser/v4.js';
7
5
  import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP, PORTAL_TARGET_ATTRIBUTE_NAME } from '../portal/portal_constants.js';
8
6
  import { ClickOutsideController } from '../../controllers/click_outside_controller/click_outside_controller.js';
9
7
  import { RelativePositionController } from '../../controllers/relative_position_controller/relative_position_controller.js';
10
- import { DEFAULT_MESSAGE_PORTAL_NAME, DEFAULT_MESSAGE_OFFSET, LIST_OF_MESSAGE_CHILDREN, MESSAGE_SHOW_DELAY_IN_MS, MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS, MESSAGE_REMOVED_CLASS_NAME, MESSAGE_CLOSE_DELAY_IN_MS, MESSAGE_CONTENT_ELEMENTS, SCREEN_READER_ONLY_CLASS_NAME, MESSAGE_CONTENT_SLOT_NAME } from './base_message_constants.js';
11
- import { createRef, ref } from 'lit/directives/ref';
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';
12
9
 
13
10
  class BaseMessage extends PhoenixLightLitElement {
14
11
  constructor() {
@@ -19,24 +16,9 @@ class BaseMessage extends PhoenixLightLitElement {
19
16
  this.offset = DEFAULT_MESSAGE_OFFSET;
20
17
  this.mouseonly = false;
21
18
  this.tabindex = '-1';
22
- this.useAsLabel = false;
23
- this._messageId = v4();
24
- this._tooltipRef = createRef();
25
- this._handleChildrenAriaAttributes = () => {
26
- [...this.children].forEach((child) => {
27
- if (LIST_OF_MESSAGE_CHILDREN.includes(child.tagName.toLowerCase()) || this._tooltipRef.value === child)
28
- return;
29
- const attributeName = this.useAsLabel ? 'aria-labelledby' : 'aria-describedby';
30
- child.setAttribute(attributeName, `${child.getAttribute(attributeName) || ''} ${this._messageId}`);
31
- });
32
- };
33
19
  this._setupEventListeners = () => {
34
- var _a, _b;
35
20
  this.addEventListener('mouseenter', this.open);
36
21
  this.addEventListener('mouseleave', this.close);
37
- this.addEventListener('keydown', this._closeFromKeyboard);
38
- (_a = this._$baseMessageContent) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseenter', this.open);
39
- (_b = this._$baseMessageContent) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseleave', this.close);
40
22
  if (!this.mouseonly) {
41
23
  this.addEventListener('focusin', this.open);
42
24
  this.addEventListener('focusout', this.close);
@@ -57,13 +39,6 @@ class BaseMessage extends PhoenixLightLitElement {
57
39
  this.opened = true;
58
40
  }, MESSAGE_SHOW_DELAY_IN_MS);
59
41
  };
60
- this._closeFromKeyboard = (ev) => {
61
- if (ev.key !== 'Escape' || !this.opened)
62
- return;
63
- ev.preventDefault();
64
- ev.stopPropagation();
65
- this.close();
66
- };
67
42
  this.close = () => {
68
43
  this._shouldDelayClosing = Date.now() - this._tooltipOpenTime > MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS;
69
44
  clearTimeout(this._openTimeout);
@@ -104,14 +79,8 @@ class BaseMessage extends PhoenixLightLitElement {
104
79
  offset: this.offset
105
80
  });
106
81
  this.setAttribute('tabindex', this.tabindex);
107
- if (!this._$baseMessageContent)
108
- this._$baseMessageContent = [...this.children].find((child) => MESSAGE_CONTENT_ELEMENTS.includes(child.tagName.toLowerCase()));
109
82
  this._setupEventListeners();
110
83
  }
111
- firstUpdated(props) {
112
- super.firstUpdated(props);
113
- this._handleChildrenAriaAttributes();
114
- }
115
84
  static _appendMessagePortal() {
116
85
  const $messagePortalTarget = document.querySelector(`[name="${DEFAULT_MESSAGE_PORTAL_NAME}"]`);
117
86
  if ($messagePortalTarget)
@@ -120,24 +89,6 @@ class BaseMessage extends PhoenixLightLitElement {
120
89
  $portalTarget.setAttribute(PORTAL_TARGET_NAME_PROP, DEFAULT_MESSAGE_PORTAL_NAME);
121
90
  document.body.appendChild($portalTarget);
122
91
  }
123
- disconnectedCallback() {
124
- var _a, _b;
125
- super.disconnectedCallback();
126
- (_a = this._$baseMessageContent) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseenter', this.open);
127
- (_b = this._$baseMessageContent) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseleave', this.close);
128
- }
129
- render() {
130
- var _a;
131
- super.render();
132
- return html `
133
- <span ${ref(this._tooltipRef)} id="${this._messageId}" class="${SCREEN_READER_ONLY_CLASS_NAME}" role="tooltip">
134
- ${DomUtils.stripHTMLTags(((_a = this._$baseMessageContent) === null || _a === void 0 ? void 0 : _a.innerHTML) || '')}
135
- </span>
136
- <h-portal ?disabled="${!this.opened}" @open="${this._positionMessage}" to="${this.portalTarget}" hidden>
137
- ${this.getSlot(MESSAGE_CONTENT_SLOT_NAME)}
138
- </h-portal>
139
- `;
140
- }
141
92
  }
142
93
  __decorate([
143
94
  property({ type: Boolean, reflect: true }),
@@ -162,11 +113,7 @@ __decorate([
162
113
  __decorate([
163
114
  property({ type: String }),
164
115
  __metadata("design:type", String)
165
- ], BaseMessage.prototype, "tabindex", void 0);
166
- __decorate([
167
- property({ type: Boolean, attribute: 'use-as-label' }),
168
- __metadata("design:type", Boolean)
169
- ], BaseMessage.prototype, "useAsLabel", void 0);
116
+ ], BaseMessage.prototype, "tabindex", void 0);
170
117
 
171
118
  export { BaseMessage };
172
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,eAAe,qDAAyD;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;"}
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;"}
@@ -4,8 +4,6 @@ export declare const MESSAGE_REMOVED_CLASS_NAME = "removed";
4
4
  export declare const DEFAULT_MESSAGE_OFFSET = 10;
5
5
  export declare const MESSAGE_ELEMENTS: string[];
6
6
  export declare const MESSAGE_CONTENT_ELEMENTS: string[];
7
- export declare const LIST_OF_MESSAGE_CHILDREN: string[];
8
7
  export declare const MESSAGE_SHOW_DELAY_IN_MS = 100;
9
8
  export declare const MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS = 500;
10
9
  export declare const MESSAGE_CLOSE_DELAY_IN_MS = 500;
11
- export declare const SCREEN_READER_ONLY_CLASS_NAME = "sr-only";
@@ -1,4 +1,3 @@
1
- import { PORTAL_COMPONENT_NAME } from '../portal/portal_constants.js';
2
1
  import { HINT_CONTENT_ELEMENT_NAME } from './hints/hint_constants.js';
3
2
  import { TOOLTIP_CONTENT_ELEMENT_NAME } from './tooltips/tooltip_constants.js';
4
3
 
@@ -7,11 +6,9 @@ const MESSAGE_CONTENT_SLOT_NAME = 'message-content';
7
6
  const MESSAGE_REMOVED_CLASS_NAME = `removed`;
8
7
  const DEFAULT_MESSAGE_OFFSET = 10;
9
8
  const MESSAGE_CONTENT_ELEMENTS = [TOOLTIP_CONTENT_ELEMENT_NAME, HINT_CONTENT_ELEMENT_NAME];
10
- const LIST_OF_MESSAGE_CHILDREN = [...MESSAGE_CONTENT_ELEMENTS, PORTAL_COMPONENT_NAME];
11
9
  const MESSAGE_SHOW_DELAY_IN_MS = 100;
12
10
  const MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS = 500;
13
- const MESSAGE_CLOSE_DELAY_IN_MS = 500;
14
- const SCREEN_READER_ONLY_CLASS_NAME = 'sr-only';
11
+ const MESSAGE_CLOSE_DELAY_IN_MS = 500;
15
12
 
16
- export { DEFAULT_MESSAGE_OFFSET, DEFAULT_MESSAGE_PORTAL_NAME, LIST_OF_MESSAGE_CHILDREN, 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, SCREEN_READER_ONLY_CLASS_NAME };
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 };
17
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;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;"}
@@ -1,5 +1,7 @@
1
+ import { TemplateResult } from 'lit-html';
1
2
  import { BaseMessage } from '../base_message';
2
3
  export declare class HHint extends BaseMessage {
3
4
  constructor();
4
5
  connectedCallback(): void;
6
+ protected render(): TemplateResult;
5
7
  }
@@ -1,6 +1,8 @@
1
1
  import { __decorate, __metadata } from '../../../../../../external/tslib/tslib.es6.js';
2
2
  import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
3
+ import { html } from 'lit-html';
3
4
  import { HINT_DEFAULT_OFFSET, HINT_CLASS_NAME, HINT_ELEMENT_NAME } from './hint_constants.js';
5
+ import { MESSAGE_CONTENT_SLOT_NAME } from '../base_message_constants.js';
4
6
  import { BaseMessage } from '../base_message.js';
5
7
 
6
8
  let HHint = class HHint extends BaseMessage {
@@ -12,6 +14,14 @@ let HHint = class HHint extends BaseMessage {
12
14
  super.connectedCallback(HINT_CLASS_NAME);
13
15
  this.classList.add(HINT_CLASS_NAME);
14
16
  }
17
+ render() {
18
+ super.render();
19
+ return html `
20
+ <h-portal ?disabled="${!this.opened}" @open="${this._positionMessage}" to="${this.portalTarget}" hidden>
21
+ ${this.getSlot(MESSAGE_CONTENT_SLOT_NAME)}
22
+ </h-portal>
23
+ `;
24
+ }
15
25
  };
16
26
  HHint = __decorate([
17
27
  phoenixCustomElement(HINT_ELEMENT_NAME),
@@ -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;"}
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;"}
@@ -1,4 +1,6 @@
1
+ import { TemplateResult } from 'lit-html';
1
2
  import { BaseMessage } from '../base_message';
2
3
  export declare class HTooltip extends BaseMessage {
3
4
  connectedCallback(): void;
5
+ protected render(): TemplateResult;
4
6
  }
@@ -1,6 +1,8 @@
1
1
  import { __decorate } from '../../../../../../external/tslib/tslib.es6.js';
2
2
  import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
3
+ import { html } from 'lit-html';
3
4
  import { TOOLTIP_CLASS_NAME, TOOLTIP_ELEMENT_NAME } from './tooltip_constants.js';
5
+ import { MESSAGE_CONTENT_SLOT_NAME } from '../base_message_constants.js';
4
6
  import { BaseMessage } from '../base_message.js';
5
7
 
6
8
  let HTooltip = class HTooltip extends BaseMessage {
@@ -8,6 +10,14 @@ let HTooltip = class HTooltip extends BaseMessage {
8
10
  super.connectedCallback(TOOLTIP_CLASS_NAME);
9
11
  this.classList.add(TOOLTIP_CLASS_NAME);
10
12
  }
13
+ render() {
14
+ super.render();
15
+ return html `
16
+ <h-portal ?disabled="${!this.opened}" @open="${this._positionMessage}" to="${this.portalTarget}" hidden>
17
+ ${this.getSlot(MESSAGE_CONTENT_SLOT_NAME)}
18
+ </h-portal>
19
+ `;
20
+ }
11
21
  };
12
22
  HTooltip = __decorate([
13
23
  phoenixCustomElement(TOOLTIP_ELEMENT_NAME)
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,2BAA2B,+CAAmD;AAC9E;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,2BAA2B,+CAAmD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,9 +3,8 @@ const PORTAL_EVENTS = {
3
3
  close: 'close'
4
4
  };
5
5
  const PORTAL_TARGET_NAME_PROP = 'name';
6
- const PORTAL_COMPONENT_NAME = 'h-portal';
7
6
  const PORTAL_TARGET_COMPONENT_NAME = 'h-portal-target';
8
7
  const PORTAL_TARGET_ATTRIBUTE_NAME = 'portal-target';
9
8
 
10
- export { PORTAL_COMPONENT_NAME, PORTAL_EVENTS, PORTAL_TARGET_ATTRIBUTE_NAME, PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP };
9
+ export { PORTAL_EVENTS, PORTAL_TARGET_ATTRIBUTE_NAME, PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP };
11
10
  //# sourceMappingURL=portal_constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,6 +3,7 @@ export declare class HTabPanel extends PhoenixLightLitElement {
3
3
  name: string;
4
4
  private _visibilityController;
5
5
  constructor();
6
+ connectedCallback(): void;
6
7
  show(): void;
7
8
  hide(): void;
8
9
  }
@@ -8,6 +8,14 @@ let HTabPanel = class HTabPanel extends PhoenixLightLitElement {
8
8
  constructor() {
9
9
  super();
10
10
  this._visibilityController = new VisibilityController(this);
11
+ this.setAttribute('role', 'tabpanel');
12
+ }
13
+ connectedCallback() {
14
+ super.connectedCallback();
15
+ const $tab = document.querySelector(`[panel-name="${this.name}"]`);
16
+ if ($tab && $tab.id) {
17
+ this.setAttribute('aria-labelledby', $tab.id);
18
+ }
11
19
  }
12
20
  show() {
13
21
  this._visibilityController.show();
@@ -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;"}
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;"}
@@ -12,13 +12,12 @@ let HTabs = class HTabs extends PhoenixLightLitElement {
12
12
  constructor() {
13
13
  super(...arguments);
14
14
  this.watchChildrenRendered = true;
15
- this._handleArrowNavigation = ({ key }) => {
15
+ this._handleArrowNavigation = (ev) => {
16
+ ev.preventDefault();
16
17
  const currentTabIndex = this._getFocusedTabIndex();
17
18
  if (currentTabIndex === undefined)
18
19
  return;
19
- const newTabIndex = key === 'ArrowLeft' ? this._getPrevTabIndex(currentTabIndex) : this._getNextTabIndex(currentTabIndex);
20
- if (newTabIndex === undefined)
21
- return;
20
+ const newTabIndex = ev.key === 'ArrowLeft' ? this._getPrevTabIndex(currentTabIndex) : this._getNextTabIndex(currentTabIndex);
22
21
  UiDomUtils.makeUnnavigable(this._$tabs[currentTabIndex]);
23
22
  UiDomUtils.makeNavigable(this._$tabs[newTabIndex]);
24
23
  this._$tabs[newTabIndex].focus();
@@ -55,14 +54,10 @@ let HTabs = class HTabs extends PhoenixLightLitElement {
55
54
  return this._$tabs.findIndex(($tab) => $tab === focusedElement);
56
55
  }
57
56
  _getNextTabIndex(currentTabIndex) {
58
- if (currentTabIndex >= this._$tabs.length - 1)
59
- return;
60
- return currentTabIndex + 1;
57
+ return (currentTabIndex + 1) % this._$tabs.length;
61
58
  }
62
59
  _getPrevTabIndex(currentTabIndex) {
63
- if (currentTabIndex <= 0)
64
- return;
65
- return currentTabIndex - 1;
60
+ return (currentTabIndex - 1 + this._$tabs.length) % this._$tabs.length;
66
61
  }
67
62
  _setupEvents() {
68
63
  document.addEventListener(TAB_EVENT_NAMES.selected, this._handleTabSelected);
@@ -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;"}
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;"}
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.17.5-0",
5
+ "version": "1.17.6",
6
6
  "description": "phoenix design system",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "@splidejs/splide-extension-auto-scroll": "^0.5.3"
32
32
  },
33
33
  "devDependencies": {
34
- "@dreamcommerce/utilities": "^1.20.1-6",
34
+ "@dreamcommerce/utilities": "^1.20.1-0",
35
35
  "@shoper/jest_config": "^0.0.0",
36
36
  "@shoper/tsconfig": "^0.0.0",
37
37
  "@splidejs/splide": "4.0.7",