@covet-pics/covet-pics-widget 0.133.1 → 0.133.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/cjs/covet-pics-direct-buy_8.cjs.entry.js +40 -5
  2. package/dist/cjs/covet-pics-direct-buy_8.cjs.entry.js.map +1 -1
  3. package/dist/cjs/covet-pics-gallery-grid_3.cjs.entry.js +2 -2
  4. package/dist/cjs/covet-pics-gallery-grid_3.cjs.entry.js.map +1 -1
  5. package/dist/cjs/covet-pics-gallery-header_3.cjs.entry.js +7 -1
  6. package/dist/cjs/covet-pics-gallery-header_3.cjs.entry.js.map +1 -1
  7. package/dist/collection/components/covet-pics-gallery-grid/covet-pics-gallery-grid.js +2 -2
  8. package/dist/collection/components/covet-pics-gallery-grid/covet-pics-gallery-grid.js.map +1 -1
  9. package/dist/collection/components/covet-pics-gallery-item/covet-pics-gallery-item.js +7 -1
  10. package/dist/collection/components/covet-pics-gallery-item/covet-pics-gallery-item.js.map +1 -1
  11. package/dist/collection/components/covet-pics-popup/covet-pics-popup.js +40 -5
  12. package/dist/collection/components/covet-pics-popup/covet-pics-popup.js.map +1 -1
  13. package/dist/covet-pics-widget/covet-pics-widget.esm.js +1 -1
  14. package/dist/covet-pics-widget/p-030c4d2e.entry.js +41 -0
  15. package/dist/covet-pics-widget/{p-cef639c9.entry.js.map → p-030c4d2e.entry.js.map} +1 -1
  16. package/dist/covet-pics-widget/p-39a35720.system.entry.js +41 -0
  17. package/dist/covet-pics-widget/{p-21114840.system.entry.js.map → p-39a35720.system.entry.js.map} +1 -1
  18. package/dist/covet-pics-widget/p-8e2f5a57.system.js +1 -1
  19. package/dist/covet-pics-widget/p-ac5fe948.entry.js +5 -0
  20. package/dist/covet-pics-widget/p-ac5fe948.entry.js.map +1 -0
  21. package/dist/covet-pics-widget/{p-1c0dd8bd.entry.js → p-b458a4c6.entry.js} +5 -5
  22. package/dist/covet-pics-widget/p-b458a4c6.entry.js.map +1 -0
  23. package/dist/covet-pics-widget/{p-4d5e170a.system.entry.js → p-c8f2f3dd.system.entry.js} +2 -2
  24. package/dist/covet-pics-widget/p-c8f2f3dd.system.entry.js.map +1 -0
  25. package/dist/covet-pics-widget/p-e72d0c1f.system.entry.js +5 -0
  26. package/dist/covet-pics-widget/p-e72d0c1f.system.entry.js.map +1 -0
  27. package/dist/esm/covet-pics-direct-buy_8.entry.js +40 -5
  28. package/dist/esm/covet-pics-direct-buy_8.entry.js.map +1 -1
  29. package/dist/esm/covet-pics-gallery-grid_3.entry.js +2 -2
  30. package/dist/esm/covet-pics-gallery-grid_3.entry.js.map +1 -1
  31. package/dist/esm/covet-pics-gallery-header_3.entry.js +7 -1
  32. package/dist/esm/covet-pics-gallery-header_3.entry.js.map +1 -1
  33. package/dist/esm-es5/covet-pics-direct-buy_8.entry.js +1 -1
  34. package/dist/esm-es5/covet-pics-direct-buy_8.entry.js.map +1 -1
  35. package/dist/esm-es5/covet-pics-gallery-grid_3.entry.js +1 -1
  36. package/dist/esm-es5/covet-pics-gallery-grid_3.entry.js.map +1 -1
  37. package/dist/esm-es5/covet-pics-gallery-header_3.entry.js +1 -1
  38. package/dist/esm-es5/covet-pics-gallery-header_3.entry.js.map +1 -1
  39. package/dist/types/components/covet-pics-gallery-item/covet-pics-gallery-item.d.ts +1 -0
  40. package/dist/types/components/covet-pics-popup/covet-pics-popup.d.ts +2 -0
  41. package/package.json +1 -1
  42. package/dist/covet-pics-widget/p-070caff0.entry.js +0 -5
  43. package/dist/covet-pics-widget/p-070caff0.entry.js.map +0 -1
  44. package/dist/covet-pics-widget/p-1c0dd8bd.entry.js.map +0 -1
  45. package/dist/covet-pics-widget/p-21114840.system.entry.js +0 -41
  46. package/dist/covet-pics-widget/p-4d5e170a.system.entry.js.map +0 -1
  47. package/dist/covet-pics-widget/p-cef639c9.entry.js +0 -41
  48. package/dist/covet-pics-widget/p-fca3554e.system.entry.js +0 -5
  49. package/dist/covet-pics-widget/p-fca3554e.system.entry.js.map +0 -1
@@ -3768,9 +3768,6 @@ const CovetPicsPopup = class {
3768
3768
  this.isDefaultCurrency = true;
3769
3769
  // unique ID
3770
3770
  this.contentCarouselId = null;
3771
- /**
3772
- * Click handlers
3773
- */
3774
3771
  this.playPauseVideoClickHandler = (event) => {
3775
3772
  event.preventDefault();
3776
3773
  event.stopPropagation();
@@ -3842,7 +3839,9 @@ const CovetPicsPopup = class {
3842
3839
  this.bindKeyboardArrowKeys();
3843
3840
  // ADA issue
3844
3841
  this.popupTabIndex = 1;
3845
- popup$1.focus();
3842
+ const focusableElements = this.getFocusableElements(popup$1);
3843
+ const closeBtn = focusableElements.find(el => el.getAttribute("aria-label") === "Close");
3844
+ closeBtn.focus();
3846
3845
  }
3847
3846
  /** Close popup */
3848
3847
  async closePopup() {
@@ -3904,6 +3903,7 @@ const CovetPicsPopup = class {
3904
3903
  }
3905
3904
  componentDidLoad() {
3906
3905
  this.bindSwipeGestures();
3906
+ this.focusTrap();
3907
3907
  }
3908
3908
  componentDidRender() {
3909
3909
  if (this.isActive && !this.isModalOpenEventSent) {
@@ -3943,6 +3943,40 @@ const CovetPicsPopup = class {
3943
3943
  get isActive() {
3944
3944
  return this.el.classList.contains("covet-pics-popup-open");
3945
3945
  }
3946
+ /**
3947
+ * Click handlers
3948
+ */
3949
+ getFocusableElements(element) {
3950
+ const allFocusableElements = Array.from(element.querySelectorAll("a[href], button, input, textarea, select, details,[tabindex]:not([tabindex=\"-1\"])"));
3951
+ const isElFocusable = (el) => !el.hasAttribute("disabled") && el.getAttribute("aria-hidden") !== "true" && el.offsetHeight !== 0; // JS, CSS tricks (offsetHeight) to detect if element not inside parent (display: none)
3952
+ const focusableElements = allFocusableElements.filter(el => isElFocusable(el));
3953
+ return focusableElements;
3954
+ }
3955
+ focusTrap() {
3956
+ this.el.addEventListener("keydown", (e) => {
3957
+ let isTabPressed = e.key === "Tab" || e.keyCode === 9;
3958
+ if (!isTabPressed)
3959
+ return;
3960
+ const shadow = document.activeElement.shadowRoot;
3961
+ const popup = this.el.shadowRoot.querySelector(".popup");
3962
+ const focusableElements = this.getFocusableElements(popup);
3963
+ const firstFocusableElement = focusableElements[0];
3964
+ const lastFocusableElement = focusableElements[focusableElements.length - 1];
3965
+ const activeElement = shadow.activeElement;
3966
+ if (e.shiftKey) {
3967
+ if (activeElement === firstFocusableElement) {
3968
+ lastFocusableElement.focus();
3969
+ e.preventDefault();
3970
+ }
3971
+ }
3972
+ else {
3973
+ if (activeElement === lastFocusableElement) {
3974
+ firstFocusableElement.focus();
3975
+ e.preventDefault();
3976
+ }
3977
+ }
3978
+ });
3979
+ }
3946
3980
  closeDirectBuy() {
3947
3981
  return this.appStore.dispatch(popup.setPopupProductId(-1));
3948
3982
  }
@@ -4091,6 +4125,7 @@ const CovetPicsPopup = class {
4091
4125
  const checkoutButtons = Array.from(this.el.shadowRoot.querySelectorAll(".btn-checkout"));
4092
4126
  checkoutButtons.forEach(checkoutButton => {
4093
4127
  checkoutButton.classList.add("show");
4128
+ checkoutButton.setAttribute("aria-hidden", "false");
4094
4129
  });
4095
4130
  fetch("/cart.js")
4096
4131
  .then(response => response.json())
@@ -4187,7 +4222,7 @@ const CovetPicsPopup = class {
4187
4222
  this.renderMobileArrows(), index.h("div", { class: "popup-dialog" }, this.item && this.item.id !== -1 &&
4188
4223
  index.h("div", { id: this.contentCarouselId, class: "popup-content" }, this.renderImage(), this.renderSidebar()), ["arrows-type-1", "arrows-type-2", "arrows-type-3"].includes(this.settings._arrowsDesktopType) &&
4189
4224
  index.h("div", { class: `desktop-arrows arrows-size-${this.settings._arrowsDesktopSizeType} arrows-color-theme-${this.settings.arrow_color_theme}` }, this.renderArrows(this.settings._arrowsDesktopType)), this.settings.close_button_position === "side" &&
4190
- this.renderCloseButton(), index.h("a", { href: "/cart", target: "_top", class: `btn-checkout desktop ${this.settings.close_button_position} ${this.settings.close_button_size} ${this.settings._closeButtonСolorTheme}`, "aria-label": "View cart" }, index.h("span", { class: "counter" }), index.h(Icon, { iconName: "checkout" }))), index.h("div", { class: "backdrop", "data-dismiss": "popup", onClick: this.hidePopupClickHandler }))));
4225
+ this.renderCloseButton(), index.h("a", { href: "/cart", target: "_top", class: `btn-checkout desktop ${this.settings.close_button_position} ${this.settings.close_button_size} ${this.settings._closeButtonСolorTheme}`, "aria-hidden": "true", "aria-label": "View cart" }, index.h("span", { class: "counter" }), index.h(Icon, { iconName: "checkout" }))), index.h("div", { class: "backdrop", "data-dismiss": "popup", onClick: this.hidePopupClickHandler }))));
4191
4226
  }
4192
4227
  get el() { return index.getElement(this); }
4193
4228
  static get watchers() { return {