@bikdotai/bik-component-library 0.0.725-beta.1 → 0.0.725-beta.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 (141) hide show
  1. package/dist/cjs/assets/icons/searchIcon.svg.js +1 -0
  2. package/dist/cjs/assets/icons/whatsNew.svg.js +1 -0
  3. package/dist/cjs/components/dropdown/DropdownPopover/index.d.ts +0 -1
  4. package/dist/cjs/components/dropdown/DropdownPopover/index.js +1 -1
  5. package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.d.ts +4 -0
  6. package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js +1 -0
  7. package/dist/cjs/components/feature-announcements/MajorUpdatePopup.d.ts +4 -0
  8. package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js +1 -0
  9. package/dist/cjs/components/feature-announcements/MinorUpdatePopup.d.ts +4 -0
  10. package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js +1 -0
  11. package/dist/cjs/components/feature-announcements/VideoModal.d.ts +3 -0
  12. package/dist/cjs/components/feature-announcements/VideoModal.js +1 -0
  13. package/dist/cjs/components/feature-announcements/constants/animations.d.ts +27 -0
  14. package/dist/cjs/components/feature-announcements/constants/animations.js +1 -0
  15. package/dist/cjs/components/feature-announcements/constants/dimensions.d.ts +56 -0
  16. package/dist/cjs/components/feature-announcements/constants/dimensions.js +1 -0
  17. package/dist/cjs/components/feature-announcements/constants/index.d.ts +19 -0
  18. package/dist/cjs/components/feature-announcements/constants/index.js +1 -0
  19. package/dist/cjs/components/feature-announcements/constants/localStorageKeys.d.ts +18 -0
  20. package/dist/cjs/components/feature-announcements/constants/localStorageKeys.js +1 -0
  21. package/dist/cjs/components/feature-announcements/constants/selectors.d.ts +21 -0
  22. package/dist/cjs/components/feature-announcements/constants/selectors.js +1 -0
  23. package/dist/cjs/components/feature-announcements/constants/zIndex.d.ts +10 -0
  24. package/dist/cjs/components/feature-announcements/constants/zIndex.js +1 -0
  25. package/dist/cjs/components/feature-announcements/hooks/index.d.ts +1 -0
  26. package/dist/cjs/components/feature-announcements/hooks/useFeatureAnnouncements.d.ts +13 -0
  27. package/dist/cjs/components/feature-announcements/hooks/useFeatureAnnouncements.js +1 -0
  28. package/dist/cjs/components/feature-announcements/index.d.ts +7 -0
  29. package/dist/cjs/components/feature-announcements/styles/index.d.ts +4 -0
  30. package/dist/cjs/components/feature-announcements/styles/joyride.styles.d.ts +125 -0
  31. package/dist/cjs/components/feature-announcements/styles/majorPopup.styles.d.ts +23 -0
  32. package/dist/cjs/components/feature-announcements/styles/majorPopup.styles.js +1 -0
  33. package/dist/cjs/components/feature-announcements/styles/minorPopup.styles.d.ts +16 -0
  34. package/dist/cjs/components/feature-announcements/styles/minorPopup.styles.js +1 -0
  35. package/dist/cjs/components/feature-announcements/styles/videoModal.styles.d.ts +13 -0
  36. package/dist/cjs/components/feature-announcements/styles/videoModal.styles.js +1 -0
  37. package/dist/cjs/components/feature-announcements/types/feature.types.d.ts +41 -0
  38. package/dist/cjs/components/feature-announcements/types/index.d.ts +4 -0
  39. package/dist/cjs/components/feature-announcements/types/props.types.d.ts +43 -0
  40. package/dist/cjs/components/feature-announcements/types/repository.types.d.ts +11 -0
  41. package/dist/cjs/components/feature-announcements/types/router.types.d.ts +7 -0
  42. package/dist/cjs/components/feature-announcements/useFeatureAnnouncements.d.ts +13 -0
  43. package/dist/cjs/components/feature-announcements/utils/animationHelpers.d.ts +18 -0
  44. package/dist/cjs/components/feature-announcements/utils/animationHelpers.js +1 -0
  45. package/dist/cjs/components/feature-announcements/utils/elementHelpers.d.ts +30 -0
  46. package/dist/cjs/components/feature-announcements/utils/elementHelpers.js +1 -0
  47. package/dist/cjs/components/feature-announcements/utils/htmlHelpers.d.ts +18 -0
  48. package/dist/cjs/components/feature-announcements/utils/htmlHelpers.js +1 -0
  49. package/dist/cjs/components/feature-announcements/utils/index.d.ts +3 -0
  50. package/dist/cjs/components/product-picker-v2/collectionScreen.d.ts +2 -0
  51. package/dist/cjs/components/product-picker-v2/collectionScreen.js +1 -1
  52. package/dist/cjs/components/product-picker-v2/modal.js +1 -1
  53. package/dist/cjs/components/product-picker-v2/searchScreen.d.ts +2 -0
  54. package/dist/cjs/components/product-picker-v2/searchScreen.js +1 -1
  55. package/dist/cjs/components/whats-new/WhatsNew.d.ts +23 -0
  56. package/dist/cjs/components/whats-new/WhatsNew.js +1 -0
  57. package/dist/cjs/components/whats-new/WhatsNew.styles.d.ts +11 -0
  58. package/dist/cjs/components/whats-new/WhatsNew.styles.js +185 -0
  59. package/dist/cjs/components/whats-new/WhatsNew.types.d.ts +58 -0
  60. package/dist/cjs/components/whats-new/WhatsNewButton.d.ts +3 -0
  61. package/dist/cjs/components/whats-new/WhatsNewButton.js +1 -0
  62. package/dist/cjs/components/whats-new/WhatsNewPanel.d.ts +3 -0
  63. package/dist/cjs/components/whats-new/WhatsNewPanel.js +1 -0
  64. package/dist/cjs/components/whats-new/WhatsNewProvider.d.ts +4 -0
  65. package/dist/cjs/components/whats-new/WhatsNewProvider.js +1 -0
  66. package/dist/cjs/components/whats-new/index.d.ts +7 -0
  67. package/dist/cjs/components/whats-new/useWhatsNew.d.ts +9 -0
  68. package/dist/cjs/components/whats-new/useWhatsNew.js +1 -0
  69. package/dist/cjs/index.d.ts +2 -0
  70. package/dist/cjs/index.js +1 -1
  71. package/dist/esm/assets/icons/searchIcon.svg.js +1 -0
  72. package/dist/esm/assets/icons/whatsNew.svg.js +1 -0
  73. package/dist/esm/components/dropdown/DropdownPopover/index.d.ts +0 -1
  74. package/dist/esm/components/dropdown/DropdownPopover/index.js +1 -1
  75. package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.d.ts +4 -0
  76. package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js +1 -0
  77. package/dist/esm/components/feature-announcements/MajorUpdatePopup.d.ts +4 -0
  78. package/dist/esm/components/feature-announcements/MajorUpdatePopup.js +1 -0
  79. package/dist/esm/components/feature-announcements/MinorUpdatePopup.d.ts +4 -0
  80. package/dist/esm/components/feature-announcements/MinorUpdatePopup.js +1 -0
  81. package/dist/esm/components/feature-announcements/VideoModal.d.ts +3 -0
  82. package/dist/esm/components/feature-announcements/VideoModal.js +1 -0
  83. package/dist/esm/components/feature-announcements/constants/animations.d.ts +27 -0
  84. package/dist/esm/components/feature-announcements/constants/animations.js +1 -0
  85. package/dist/esm/components/feature-announcements/constants/dimensions.d.ts +56 -0
  86. package/dist/esm/components/feature-announcements/constants/dimensions.js +1 -0
  87. package/dist/esm/components/feature-announcements/constants/index.d.ts +19 -0
  88. package/dist/esm/components/feature-announcements/constants/index.js +1 -0
  89. package/dist/esm/components/feature-announcements/constants/localStorageKeys.d.ts +18 -0
  90. package/dist/esm/components/feature-announcements/constants/localStorageKeys.js +1 -0
  91. package/dist/esm/components/feature-announcements/constants/selectors.d.ts +21 -0
  92. package/dist/esm/components/feature-announcements/constants/selectors.js +1 -0
  93. package/dist/esm/components/feature-announcements/constants/zIndex.d.ts +10 -0
  94. package/dist/esm/components/feature-announcements/constants/zIndex.js +1 -0
  95. package/dist/esm/components/feature-announcements/hooks/index.d.ts +1 -0
  96. package/dist/esm/components/feature-announcements/hooks/useFeatureAnnouncements.d.ts +13 -0
  97. package/dist/esm/components/feature-announcements/hooks/useFeatureAnnouncements.js +1 -0
  98. package/dist/esm/components/feature-announcements/index.d.ts +7 -0
  99. package/dist/esm/components/feature-announcements/styles/index.d.ts +4 -0
  100. package/dist/esm/components/feature-announcements/styles/joyride.styles.d.ts +125 -0
  101. package/dist/esm/components/feature-announcements/styles/majorPopup.styles.d.ts +23 -0
  102. package/dist/esm/components/feature-announcements/styles/majorPopup.styles.js +1 -0
  103. package/dist/esm/components/feature-announcements/styles/minorPopup.styles.d.ts +16 -0
  104. package/dist/esm/components/feature-announcements/styles/minorPopup.styles.js +1 -0
  105. package/dist/esm/components/feature-announcements/styles/videoModal.styles.d.ts +13 -0
  106. package/dist/esm/components/feature-announcements/styles/videoModal.styles.js +1 -0
  107. package/dist/esm/components/feature-announcements/types/feature.types.d.ts +41 -0
  108. package/dist/esm/components/feature-announcements/types/index.d.ts +4 -0
  109. package/dist/esm/components/feature-announcements/types/props.types.d.ts +43 -0
  110. package/dist/esm/components/feature-announcements/types/repository.types.d.ts +11 -0
  111. package/dist/esm/components/feature-announcements/types/router.types.d.ts +7 -0
  112. package/dist/esm/components/feature-announcements/useFeatureAnnouncements.d.ts +13 -0
  113. package/dist/esm/components/feature-announcements/utils/animationHelpers.d.ts +18 -0
  114. package/dist/esm/components/feature-announcements/utils/animationHelpers.js +1 -0
  115. package/dist/esm/components/feature-announcements/utils/elementHelpers.d.ts +30 -0
  116. package/dist/esm/components/feature-announcements/utils/elementHelpers.js +1 -0
  117. package/dist/esm/components/feature-announcements/utils/htmlHelpers.d.ts +18 -0
  118. package/dist/esm/components/feature-announcements/utils/htmlHelpers.js +1 -0
  119. package/dist/esm/components/feature-announcements/utils/index.d.ts +3 -0
  120. package/dist/esm/components/product-picker-v2/collectionScreen.d.ts +2 -0
  121. package/dist/esm/components/product-picker-v2/collectionScreen.js +1 -1
  122. package/dist/esm/components/product-picker-v2/modal.js +1 -1
  123. package/dist/esm/components/product-picker-v2/searchScreen.d.ts +2 -0
  124. package/dist/esm/components/product-picker-v2/searchScreen.js +1 -1
  125. package/dist/esm/components/whats-new/WhatsNew.d.ts +23 -0
  126. package/dist/esm/components/whats-new/WhatsNew.js +1 -0
  127. package/dist/esm/components/whats-new/WhatsNew.styles.d.ts +11 -0
  128. package/dist/esm/components/whats-new/WhatsNew.styles.js +185 -0
  129. package/dist/esm/components/whats-new/WhatsNew.types.d.ts +58 -0
  130. package/dist/esm/components/whats-new/WhatsNewButton.d.ts +3 -0
  131. package/dist/esm/components/whats-new/WhatsNewButton.js +1 -0
  132. package/dist/esm/components/whats-new/WhatsNewPanel.d.ts +3 -0
  133. package/dist/esm/components/whats-new/WhatsNewPanel.js +1 -0
  134. package/dist/esm/components/whats-new/WhatsNewProvider.d.ts +4 -0
  135. package/dist/esm/components/whats-new/WhatsNewProvider.js +1 -0
  136. package/dist/esm/components/whats-new/index.d.ts +7 -0
  137. package/dist/esm/components/whats-new/useWhatsNew.d.ts +9 -0
  138. package/dist/esm/components/whats-new/useWhatsNew.js +1 -0
  139. package/dist/esm/index.d.ts +2 -0
  140. package/dist/esm/index.js +1 -1
  141. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ "use strict";function e(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}Object.defineProperty(exports,"__esModule",{value:!0});var t,r=e(require("react"));function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},n.apply(this,arguments)}var o=e=>r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},e),t||(t=r.createElement("path",{stroke:"currentColor",d:"m21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z"})));exports.default=o;
@@ -0,0 +1 @@
1
+ "use strict";function e(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}Object.defineProperty(exports,"__esModule",{value:!0});var t,r,n=e(require("react"));function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a.apply(this,arguments)}var l=e=>n.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 32 32"},e),t||(t=n.createElement("g",{stroke:"currentColor",strokeLinecap:"round",strokeWidth:1.5,clipPath:"url(#whatsNew_svg__a)"},n.createElement("path",{strokeLinejoin:"round",d:"m22.18 15.305-6.725 9.097a.75.75 0 0 0-.102.7l.42 1.165a.75.75 0 0 0 1.183.325l3.78-3.027"}),n.createElement("path",{strokeLinejoin:"round",d:"M6.446 17.664a.75.75 0 0 0 .65 1.194c6.4-.393 10.625 2.478 10.625 2.478l3.016 2.23a3.75 3.75 0 1 0 4.458-6.032l-3.015-2.229s-3.985-3.197-5.486-9.43a.75.75 0 0 0-1.332-.273L6.446 17.664Z"}),n.createElement("path",{d:"m7.692 12.082-2.443-.73m5.693-2.995L9.89 6.036m-.97 3.65L5.667 6.87"}))),r||(r=n.createElement("defs",null,n.createElement("clipPath",{id:"whatsNew_svg__a"},n.createElement("path",{fill:"#fff",d:"M4 4h24v24H4z"})))));exports.default=l;
@@ -13,7 +13,6 @@ export declare const DropdownPopover: React.ForwardRefExoticComponent<OpenDropdo
13
13
  allowEvents?: boolean | undefined;
14
14
  'data-test'?: string | undefined;
15
15
  isChildLoading?: boolean | undefined;
16
- forceOpen?: boolean | undefined;
17
16
  } & React.RefAttributes<{
18
17
  openDropdown: boolean;
19
18
  }>>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("../../../node_modules/react/jsx-runtime.js"),o=require("react"),n=require("react-popper"),s=require("../../dropShadow/DropShadow.js"),r=require("../../tooltips/Tooltip.js"),i=require("../Common.styled.js"),l=require("../OpenedDropdown/components/OpennedDropdown.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const d=a(o).default.forwardRef(((a,d)=>{var{children:p,onDropdownVisbilityChange:u,version:c="1.0",tooltipContent:j,tooltipDirection:x,showTooltipArrow:v,isChildLoading:w,forceOpen:m}=a,h=e.__rest(a,["children","onDropdownVisbilityChange","version","tooltipContent","tooltipDirection","showTooltipArrow","isChildLoading","forceOpen"]);const b=d,[f,g]=o.useState(!1),[O,E]=o.useState(null),[D,R]=o.useState(null),y=o.useRef(null),{styles:S,attributes:C}=n.usePopper(O,D,{placement:h.placement,strategy:h.strategy}),q=e=>{var t,o;"2.0"===c&&h.isMultiSelect&&e&&(null===(t=h.onSelect)||void 0===t||t.call(h,[...e])),g(!1),null===(o=null==h?void 0:h.onClose)||void 0===o||o.call(h)};o.useImperativeHandle(b,(()=>({openDropdown:f})),[]),o.useEffect((()=>{(null==b?void 0:b.current)&&(b.current.openDropdown=f)}),[f]),o.useEffect((()=>{null==u||u(f)}),[f]);const _=()=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsxs("div",Object.assign({style:{position:"relative"},ref:E},{children:[t.jsxRuntimeExports.jsx(i.OverLapAbs,Object.assign({ref:y,allowEvents:h.allowEvents,disabled:h.disabled,onClick:e=>{var t;null===(t=h.onDropdownOpen)||void 0===t||t.call(h),f?(g(!1),e.preventDefault()):h.disabled||g(!0)},isChildLoading:w},{children:h.allowEvents?p:null})),h.allowEvents?null:p]})),(f||m)&&t.jsxRuntimeExports.jsx(i.OpenDropdownContainer,Object.assign({ref:R,style:Object.assign(Object.assign({},S.popper),{zIndex:3})},C.popper,{"data-test":h["data-test"]},{children:t.jsxRuntimeExports.jsx(s.DropShadow,Object.assign({level:"z2",position:"down",style:{borderRadius:8}},{children:t.jsxRuntimeExports.jsx(l.OpenedDropdown,Object.assign({},h,{onSelect:e=>{var t;"2.0"===c&&h.isMultiSelect||(null===(t=h.onSelect)||void 0===t||t.call(h,e),g(!1))},onClose:q,version:c,headerRef:y,zeroState:null==h?void 0:h.zeroState}))}))}))]});return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:f||m||void 0===j?_():t.jsxRuntimeExports.jsx(r.Tooltip,Object.assign({body:j,placement:x,hideArrow:!v},{children:t.jsxRuntimeExports.jsx("div",Object.assign({"data-test":h["data-test"]},{children:_()}))}))})}));d.displayName="DropdownPopover",exports.DropdownPopover=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("../../../node_modules/react/jsx-runtime.js"),o=require("react"),n=require("react-popper"),s=require("../../dropShadow/DropShadow.js"),r=require("../../tooltips/Tooltip.js"),i=require("../Common.styled.js"),l=require("../OpenedDropdown/components/OpennedDropdown.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const d=a(o).default.forwardRef(((a,d)=>{var{children:p,onDropdownVisbilityChange:u,version:c="1.0",tooltipContent:j,tooltipDirection:x,showTooltipArrow:v,isChildLoading:w}=a,m=e.__rest(a,["children","onDropdownVisbilityChange","version","tooltipContent","tooltipDirection","showTooltipArrow","isChildLoading"]);const h=d,[b,f]=o.useState(!1),[g,E]=o.useState(null),[D,O]=o.useState(null),R=o.useRef(null),{styles:y,attributes:S}=n.usePopper(g,D,{placement:m.placement,strategy:m.strategy}),C=e=>{var t,o;"2.0"===c&&m.isMultiSelect&&e&&(null===(t=m.onSelect)||void 0===t||t.call(m,[...e])),f(!1),null===(o=null==m?void 0:m.onClose)||void 0===o||o.call(m)};o.useImperativeHandle(h,(()=>({openDropdown:b})),[]),o.useEffect((()=>{(null==h?void 0:h.current)&&(h.current.openDropdown=b)}),[b]),o.useEffect((()=>{null==u||u(b)}),[b]);const q=()=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsxs("div",Object.assign({style:{position:"relative"},ref:E},{children:[t.jsxRuntimeExports.jsx(i.OverLapAbs,Object.assign({ref:R,allowEvents:m.allowEvents,disabled:m.disabled,onClick:e=>{var t;null===(t=m.onDropdownOpen)||void 0===t||t.call(m),b?(f(!1),e.preventDefault()):m.disabled||f(!0)},isChildLoading:w},{children:m.allowEvents?p:null})),m.allowEvents?null:p]})),b&&t.jsxRuntimeExports.jsx(i.OpenDropdownContainer,Object.assign({ref:O,style:Object.assign(Object.assign({},y.popper),{zIndex:3})},S.popper,{"data-test":m["data-test"]},{children:t.jsxRuntimeExports.jsx(s.DropShadow,Object.assign({level:"z2",position:"down",style:{borderRadius:8}},{children:t.jsxRuntimeExports.jsx(l.OpenedDropdown,Object.assign({},m,{onSelect:e=>{var t;"2.0"===c&&m.isMultiSelect||(null===(t=m.onSelect)||void 0===t||t.call(m,e),f(!1))},onClose:C,version:c,headerRef:R,zeroState:null==m?void 0:m.zeroState}))}))}))]});return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:b||void 0===j?q():t.jsxRuntimeExports.jsx(r.Tooltip,Object.assign({body:j,placement:x,hideArrow:!v},{children:t.jsxRuntimeExports.jsx("div",Object.assign({"data-test":m["data-test"]},{children:q()}))}))})}));d.displayName="DropdownPopover",exports.DropdownPopover=d;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { FeatureAnnouncementProviderProps } from './types';
3
+ declare const FeatureAnnouncementProvider: React.FC<FeatureAnnouncementProviderProps>;
4
+ export default FeatureAnnouncementProvider;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("../../node_modules/react/jsx-runtime.js"),o=require("react"),n=require("react-joyride");require("./constants/animations.js");var a=require("./constants/selectors.js"),r=require("./hooks/useFeatureAnnouncements.js"),s=require("./MajorUpdatePopup.js"),i=require("./MinorUpdatePopup.js"),l=require("./VideoModal.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=d(n);exports.default=d=>{let{children:c,fetchVisibleFeatures:p,getStoreFeatureProgress:f,fetchFeatureById:b,markFeatureAsViewedForStore:g,isFeatureApplicableToCurrentPage:h,module:m,router:x}=d;var y;const{majorUpdateFeatures:S,minorUpdateFeatures:C,isLoading:k,markFeatureAsViewed:T}=r.useFeatureAnnouncements({fetchVisibleFeatures:p,getStoreFeatureProgress:f,fetchFeatureById:b,markFeatureAsViewedForStore:g,isFeatureApplicableToCurrentPage:h,module:m,router:x}),[v,w]=o.useState(null),[j,E]=o.useState(null),[B,I]=o.useState(!1),[F,N]=o.useState([]),[q,R]=o.useState(!1),[P,_]=o.useState([]),[O,W]=o.useState(!1),[M,V]=o.useState(!1),[A,L]=o.useState([]),[U,$]=o.useState(!1),[z,H]=o.useState(!1),[Z,D]=o.useState(!1),[G,J]=o.useState(""),[K,Q]=o.useState(!1),[X,Y]=o.useState(!1),[ee,te]=o.useState(!1),[oe,ne]=o.useState(0),[ae,re]=o.useState(0),[se,ie]=o.useState(new Set);o.useEffect((()=>{const e="minor-spotlight-cutout-style";let t=document.getElementById(e);return t||(t=document.createElement("style"),t.id=e,document.head.appendChild(t)),t.textContent="\n\t\t\t.react-joyride__spotlight {\n\t\t\t\ttransition: box-shadow 0.3s ease-in-out !important;\n\t\t\t\twill-change: box-shadow, transform;\n\t\t\t\ttransform: translateZ(0);\n\t\t\t}\n\t\t\t.react-joyride__tooltip {\n\t\t\t\twill-change: transform, opacity;\n\t\t\t\ttransform: translateZ(0);\n\t\t\t}\n\t\t",()=>{const t=document.getElementById(e);t&&t.remove()}}),[]),o.useEffect((()=>{ne((e=>e+1)),re((e=>e+1)),Y(!1),te(!1),ie(new Set)}),[null==x?void 0:x.pathname]),o.useEffect((()=>{if(!(S.length>0)||v||k||O||K)0!==S.length||k||H(!0);else{H(!1),$(!1),I(!1),N([]),E(null),L([]);let e=0;const t=10,o=()=>{e++;document.querySelector('[data-testid="whats-new-button"]')?le(S[0]):e<t?setTimeout(o,1e3):H(!0)};o()}}),[S,v,k,O,K]),o.useEffect((()=>{var e;const t=null===(e=null==x?void 0:x.query)||void 0===e?void 0:e.featureId;if(!t||k||0===C.length)return;const o=C.find((e=>e.id===t));if(!o||!o.featureTag)return;$(!0),V(!0);let n=0;const a=setInterval((()=>{n++;const e=o.featureTag.startsWith("#")||o.featureTag.startsWith(".")||o.featureTag.startsWith("[")?o.featureTag:`#${o.featureTag}`;if(document.querySelector(e)){const e=[o];L(e),he(o,e),clearInterval(a)}else n>=25&&(V(!1),clearInterval(a))}),200);return()=>{clearInterval(a)}}),[C,null===(y=null==x?void 0:x.query)||void 0===y?void 0:y.featureId,k]),o.useEffect((()=>{var e;if(C.length>0&&!k&&!B&&!M&&!j&&!U&&z&&!K){let e=null,t=null,o=null,n=!1;const a=()=>{if(n||M||j||U||!z)return;const a=C.filter((e=>{if(!e.featureTag||""===e.featureTag.trim())return!1;if(se.has(e.id))return!1;const t=e.featureTag.startsWith("#")||e.featureTag.startsWith(".")||e.featureTag.startsWith("[")?e.featureTag:`#${e.featureTag}`;return null!==document.querySelector(t)}));a.length>0&&(L(a),he(a[0],a),e&&(e.disconnect(),e=null),t&&(window.removeEventListener("scroll",t),t=null),o&&(clearTimeout(o),o=null))};return e=new MutationObserver((e=>{let t=!1;for(const o of e){if("childList"===o.type&&o.addedNodes.length>0)for(let e=0;e<o.addedNodes.length;e++){const n=o.addedNodes[e];if(n.nodeType===Node.ELEMENT_NODE){const e=n;if(e.id||e.querySelector("[id]")){t=!0;break}}}if(t)break}B||n||M||j||U||!z||!t||(o&&clearTimeout(o),o=setTimeout((()=>{n||M||j||U||!z||a()}),200))})),t=()=>{B||n||M||j||U||!z||(o&&clearTimeout(o),requestAnimationFrame((()=>{o=setTimeout((()=>{n||M||j||U||!z||a()}),300)})))},e&&e.observe(document.body,{childList:!0,subtree:!0}),t&&window.addEventListener("scroll",t,{passive:!0}),a(),setTimeout((()=>{n||M||j||U||!z||a()}),100),setTimeout((()=>{n||M||j||U||!z||a()}),1e3),setTimeout((()=>{n||M||j||U||!z||a()}),500),()=>{n=!0,e&&e.disconnect(),t&&window.removeEventListener("scroll",t),o&&clearTimeout(o)}}if(0===C.length||k){(null===(e=null==x?void 0:x.query)||void 0===e?void 0:e.featureId)&&j||(I(!1),N([]),E(null),L([]),$(!1))}}),[C,k,B,M,j,U,z,T,K]);const le=e=>{w(e);const o=S.findIndex((t=>t.id===e.id)),n=S.length,r=[{target:a.SELECTORS.WHATS_NEW_BUTTON,content:t.jsxRuntimeExports.jsx(s.default,{feature:e,currentIndex:o,totalFeatures:n,onSkip:()=>de(e),onExplore:()=>ue(e),onPrevious:()=>ce(e),onNext:()=>pe(e),setIsClosing:Y}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];_(r),R(!0)},de=o.useCallback((e=>{(e||v)&&(W(!0),S.forEach((e=>{T(e.id)})),R(!1),w(null),_([]),H(!0),setTimeout((()=>{W(!1)}),500))}),[v,S,T]),ue=o.useCallback((e=>{W(!0),T(e.id),e.productVideo&&(J(e.productVideo),D(!0),Q(!0)),R(!1),w(null),_([]);S.findIndex((t=>t.id===e.id))===S.length-1&&H(!0),setTimeout((()=>{W(!1)}),500)}),[S,T]),ce=o.useCallback((e=>{const o=e||v;if(!o)return;const n=S.findIndex((e=>e.id===o.id));if(n>0){const e=S[n-1];w(e);const o=n-1,a=S.length,r=[{target:'[data-testid="whats-new-button"]',content:t.jsxRuntimeExports.jsx(s.default,{feature:e,currentIndex:o,totalFeatures:a,onSkip:()=>de(e),onExplore:()=>ue(e),onPrevious:()=>ce(e),onNext:()=>pe(e),setIsClosing:Y}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];_(r)}}),[v,S]),pe=o.useCallback((e=>{const o=e||v;if(!o)return;const n=S.findIndex((e=>e.id===o.id));if(n<S.length-1){const e=S[n+1];w(e);const o=n+1,a=S.length,r=[{target:'[data-testid="whats-new-button"]',content:t.jsxRuntimeExports.jsx(s.default,{feature:e,currentIndex:o,totalFeatures:a,onSkip:()=>de(e),onExplore:()=>ue(e),onPrevious:()=>ce(e),onNext:()=>pe(e),setIsClosing:Y}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];_(r)}else W(!0),T(o.id),R(!1),w(null),_([]),H(!0),setTimeout((()=>{W(!1)}),500)}),[v,S,T]),fe=()=>{if(S.length>0&&!v){document.querySelector('[data-testid="whats-new-button"]')&&le(S[0])}};o.useEffect((()=>(window.showMajorUpdatePopup=fe,()=>{delete window.showMajorUpdatePopup})),[S,v]);const be=o.useCallback((e=>{const{action:t}=e;t===n.ACTIONS.CLOSE&&(v&&(W(!0),S.forEach((e=>{T(e.id)})),H(!0),setTimeout((()=>{W(!1)}),500)),R(!1),w(null),_([]))}),[v,S,T]),ge=o.useCallback((e=>{const{action:t}=e;if(t===n.ACTIONS.CLOSE){if(j){V(!0),T(j.id);A.findIndex((e=>e.id===j.id))===A.length-1&&$(!0),setTimeout((()=>{V(!1)}),500)}I(!1),E(null),N([])}}),[j,A,T]),he=(o,n)=>e.__awaiter(void 0,void 0,void 0,(function*(){E(o);const e=n||A,a=e.findIndex((e=>e.id===o.id)),r=e.length,s=o.featureTag.startsWith("#")||o.featureTag.startsWith(".")||o.featureTag.startsWith("[")?o.featureTag:`#${o.featureTag}`,l=document.querySelector(s);if(l)try{const{scrollToElementSmooth:e}=yield Promise.resolve().then((function(){return require("./utils/elementHelpers.js")}));yield e(l,120)}catch(e){}const d=[{target:s,content:t.jsxRuntimeExports.jsx(i.default,{feature:o,currentIndex:a,totalFeatures:r,onSkip:()=>me(o),onExplore:()=>xe(o),onPrevious:()=>ye(o),onNext:()=>Se(o),setIsClosing:te}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:o,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];N(d),I(!0)})),me=o.useCallback((e=>{const t=e||j;if(t){V(!0),T(t.id),ie((e=>new Set(e).add(t.id))),I(!1),E(null),N([]);const e=A.find((e=>e.id!==t.id&&!se.has(e.id)));setTimeout((()=>{V(!1),e?he(e,A):$(!0)}),500)}}),[j,A,T,se]),xe=o.useCallback((e=>{V(!0),T(e.id),ie((t=>new Set(t).add(e.id))),e.productVideo&&(J(e.productVideo),D(!0),Q(!0)),I(!1),E(null),N([]);const t=A.find((t=>t.id!==e.id&&!se.has(t.id)));setTimeout((()=>{V(!1),t&&!e.productVideo?he(t,A):t||$(!0)}),500)}),[A,T,se]),ye=o.useCallback((o=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=o||j;if(!e)return;const n=A.findIndex((t=>t.id===e.id));if(n>0){const e=A[n-1];E(e);const o=e.featureTag.startsWith("#")||e.featureTag.startsWith(".")||e.featureTag.startsWith("[")?e.featureTag:`#${e.featureTag}`,a=document.querySelector(o);if(a)try{const{scrollToElementSmooth:e}=yield Promise.resolve().then((function(){return require("./utils/elementHelpers.js")}));yield e(a,120)}catch(e){}const r=n-1,s=A.length,l=[{target:o,content:t.jsxRuntimeExports.jsx(i.default,{feature:e,currentIndex:r,totalFeatures:s,onSkip:()=>me(e),onExplore:()=>xe(e),onPrevious:()=>ye(e),onNext:()=>Se(e),setIsClosing:te}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];N(l)}}))),[j,A]),Se=o.useCallback((o=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=o||j;if(!e)return;const n=A.findIndex((t=>t.id===e.id));if(n<A.length-1){const e=A[n+1];E(e);const o=e.featureTag.startsWith("#")||e.featureTag.startsWith(".")||e.featureTag.startsWith("[")?e.featureTag:`#${e.featureTag}`,a=document.querySelector(o);if(a)try{const{scrollToElementSmooth:e}=yield Promise.resolve().then((function(){return require("./utils/elementHelpers.js")}));yield e(a,120)}catch(e){}const r=n+1,s=A.length,l=[{target:o,content:t.jsxRuntimeExports.jsx(i.default,{feature:e,currentIndex:r,totalFeatures:s,onSkip:()=>me(e),onExplore:()=>xe(e),onPrevious:()=>ye(e),onNext:()=>Se(e),setIsClosing:te}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];N(l)}else V(!0),$(!0),T(e.id),I(!1),E(null),N([]),setTimeout((()=>{V(!1)}),500)}))),[j,A,T]);return t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[c,P.length>0&&t.jsxRuntimeExports.jsx(u.default,{steps:P,run:q,continuous:!1,showProgress:!1,showSkipButton:!1,callback:be,disableOverlayClose:!0,disableCloseOnEsc:!1,disableOverlay:!1,spotlightClicks:!1,styles:{options:{primaryColor:"#007bff",zIndex:1e4,width:"auto",arrowColor:X?"transparent":"#212121"},overlay:{backgroundColor:"transparent"},spotlight:{backgroundColor:"transparent",border:"none",boxShadow:"none"},tooltip:{borderRadius:"16px",fontSize:"14px",padding:0,backgroundColor:"transparent",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}},locale:{back:"Back",close:"Close",last:"Close",next:"Next",skip:"Skip"}},`major-joyride-${oe}`),F.length>0&&t.jsxRuntimeExports.jsx(u.default,{steps:F,run:B,continuous:!1,showProgress:!1,showSkipButton:!1,callback:ge,disableOverlayClose:!0,disableCloseOnEsc:!1,disableOverlay:!1,scrollToFirstStep:!0,scrollOffset:120,disableScrolling:!1,styles:{options:{primaryColor:"#007bff",zIndex:1e4,width:"auto",arrowColor:ee?"transparent":"#ffffff"},overlay:{backgroundColor:"transparent"},spotlight:{backgroundColor:"transparent",borderRadius:"8px",boxShadow:ee?"none":"0 0 0 9999px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(255, 255, 255, 0.8), 0 0 20px 8px rgba(255, 255, 255, 0.4)"},tooltip:{borderRadius:"4px",fontSize:"14px",padding:0,backgroundColor:"transparent",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonSkip:{display:"none"},buttonClose:{display:"none"}},locale:{back:"Back",close:"Close",last:"Close",next:"Next",skip:"Skip"}},`minor-joyride-${ae}`),t.jsxRuntimeExports.jsx(l.VideoModal,{isOpen:Z,videoUrl:G,onClose:()=>{D(!1),J(""),Q(!1);const e=A.find((e=>!se.has(e.id)));e?setTimeout((()=>{he(e,A)}),300):$(!0)}})]})};
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { MajorUpdatePopupProps } from './types';
3
+ declare const MajorUpdatePopup: React.FC<MajorUpdatePopupProps>;
4
+ export default MajorUpdatePopup;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),t=require("react"),s=require("./constants/index.js"),n=require("./styles/majorPopup.styles.js");require("../../constants/Theme.js"),require("./constants/animations.js");var r=require("./utils/htmlHelpers.js"),o=require("./utils/animationHelpers.js"),i=require("./utils/elementHelpers.js");exports.default=a=>{let{feature:u,currentIndex:l,totalFeatures:c,onSkip:j,onExplore:x,onPrevious:g,onNext:d,setIsClosing:p}=a;const[E,b]=t.useState(!1),[T,m]=t.useState(!1),[y,v]=t.useState(""),O=t.useRef(null);t.useEffect((()=>{E&&m(!0)}),[E]);const h=n.getMajorPopupStyles(T,y);return e.jsxRuntimeExports.jsxs("div",Object.assign({ref:O,style:h.container},{children:[e.jsxRuntimeExports.jsx("button",Object.assign({onClick:e=>{e.preventDefault(),e.stopPropagation(),(e=>{o.hideJoyrideArrow(O.current);const t=i.findWhatsNewButton();if(t&&O.current){const e=o.calculateCloseTransform(O.current,t);v(e)}else v("scale(0)");null==p||p(!0),b(!0),o.executeAfterAnimation(e)})(j)},style:h.skipButton.base,onMouseEnter:e=>Object.assign(e.currentTarget.style,h.skipButton.hover),onMouseLeave:e=>Object.assign(e.currentTarget.style,h.skipButton.base)},{children:s.TEXT.SKIP_BUTTON})),e.jsxRuntimeExports.jsx("div",Object.assign({style:h.imageContainer},{children:u.displayImage?e.jsxRuntimeExports.jsx("img",{src:u.displayImage,alt:u.title,style:h.image,onError:e=>{u.image&&(e.target.src=u.image)}}):e.jsxRuntimeExports.jsx("div",Object.assign({style:h.imagePlaceholder},{children:s.TEXT.FEATURE_PREVIEW_PLACEHOLDER}))})),e.jsxRuntimeExports.jsxs("div",Object.assign({style:h.contentContainer},{children:[e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx("h3",Object.assign({style:h.title},{children:u.title})),e.jsxRuntimeExports.jsx("div",{style:h.content,dangerouslySetInnerHTML:{__html:r.decodeHTMLEntities(u.content||u.body||"")}}),e.jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>{x(),o.hideJoyrideArrow(O.current);const e=i.findWhatsNewButton();if(e&&O.current){const t=o.calculateCloseTransform(O.current,e);v(t)}else v("scale(0)");null==p||p(!0),b(!0)},style:h.exploreButton.base,onMouseEnter:e=>Object.assign(e.currentTarget.style,h.exploreButton.hover),onMouseLeave:e=>Object.assign(e.currentTarget.style,h.exploreButton.base)},{children:u.buttonText||s.TEXT.DEFAULT_BUTTON_TEXT}))]}),c>1&&e.jsxRuntimeExports.jsxs("div",Object.assign({style:h.navigationContainer},{children:[e.jsxRuntimeExports.jsx("button",Object.assign({onClick:e=>{e.preventDefault(),e.stopPropagation(),g()},disabled:0===l,style:h.navigationButton(0===l).base,onMouseEnter:e=>{0!==l&&Object.assign(e.currentTarget.style,h.navigationButton(!1).hover)},onMouseLeave:e=>{0!==l&&Object.assign(e.currentTarget.style,h.navigationButton(!1).base)}},{children:s.TEXT.NAVIGATION_PREVIOUS})),e.jsxRuntimeExports.jsx("button",Object.assign({onClick:e=>{e.preventDefault(),e.stopPropagation(),d()},disabled:l===c-1,style:h.navigationButton(l===c-1).base,onMouseEnter:e=>{l!==c-1&&Object.assign(e.currentTarget.style,h.navigationButton(!1).hover)},onMouseLeave:e=>{l!==c-1&&Object.assign(e.currentTarget.style,h.navigationButton(l===c-1).base)}},{children:s.TEXT.NAVIGATION_NEXT}))]}))]}))]}))};
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { MinorUpdatePopupProps } from './types';
3
+ declare const MinorUpdatePopup: React.FC<MinorUpdatePopupProps>;
4
+ export default MinorUpdatePopup;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),t=require("react"),s=require("./constants/index.js");require("../../constants/Theme.js"),require("./constants/animations.js");var r=require("./styles/minorPopup.styles.js"),n=require("./utils/htmlHelpers.js"),i=require("./utils/animationHelpers.js"),a=require("./utils/elementHelpers.js");exports.default=l=>{let{feature:o,currentIndex:u,totalFeatures:c,onSkip:x,onExplore:j,onPrevious:d,onNext:m,setIsClosing:E}=l;const[g,p]=t.useState(!1),[T,y]=t.useState(!1),[f,h]=t.useState(""),R=t.useRef(null);t.useEffect((()=>{g&&y(!0)}),[g]);const b=r.getMinorPopupStyles(T,f);return e.jsxRuntimeExports.jsxs("div",Object.assign({ref:R,style:b.container},{children:[e.jsxRuntimeExports.jsx("div",Object.assign({style:b.imageContainer},{children:o.displayImage?e.jsxRuntimeExports.jsxs("div",Object.assign({style:b.imageWrapper},{children:[e.jsxRuntimeExports.jsx("img",{src:o.displayImage,alt:o.title,style:b.image,onError:e=>{o.image&&(e.target.src=o.image)}}),e.jsxRuntimeExports.jsx("div",Object.assign({style:b.badge},{children:e.jsxRuntimeExports.jsx("span",Object.assign({style:b.badgeText},{children:s.TEXT.NEW_FEATURE_BADGE}))}))]})):e.jsxRuntimeExports.jsx("div",Object.assign({style:b.imagePlaceholder},{children:s.TEXT.FEATURE_PREVIEW_PLACEHOLDER}))})),e.jsxRuntimeExports.jsxs("div",Object.assign({style:b.contentContainer},{children:[e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx("h3",Object.assign({style:b.title},{children:o.title})),e.jsxRuntimeExports.jsx("div",{style:b.content,dangerouslySetInnerHTML:{__html:n.decodeHTMLEntities(o.content||o.body||"")}})]}),e.jsxRuntimeExports.jsxs("div",Object.assign({style:b.actionsContainer},{children:[e.jsxRuntimeExports.jsx("span",Object.assign({onClick:()=>{(e=>{if(i.hideJoyrideArrow(R.current),R.current&&o.featureTag){const e=a.findFeatureTagElement(o.featureTag);if(e){const t=i.calculateCloseTransform(R.current,e);h(t)}else h("scale(0)")}else h("scale(0)");null==E||E(!0),p(!0),i.executeAfterAnimation(e)})(x)},style:b.understoodText},{children:s.TEXT.UNDERSTOOD})),o.productVideo&&e.jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>{if(j(),i.hideJoyrideArrow(R.current),R.current&&o.featureTag){const e=o.featureTag.startsWith("#")||o.featureTag.startsWith(".")||o.featureTag.startsWith("[")?o.featureTag:`#${o.featureTag}`,t=document.querySelector(e);if(t){const e=i.calculateCloseTransform(R.current,t);h(e)}else h("scale(0)")}else h("scale(0)");null==E||E(!0),p(!0)},style:b.exploreButton},{children:o.buttonText||s.TEXT.DEFAULT_BUTTON_TEXT}))]}))]}))]}))};
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { VideoModalProps } from './types';
3
+ export declare const VideoModal: React.FC<VideoModalProps>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),s=require("./constants/index.js");require("../../constants/Theme.js"),require("./constants/animations.js");var t=require("./styles/videoModal.styles.js"),o=require("./utils/htmlHelpers.js");exports.VideoModal=r=>{let{isOpen:i,videoUrl:l,onClose:n}=r;if(!i)return null;const a=o.formatVideoUrl(l),d=o.isYouTubeVideo(l);return e.jsxRuntimeExports.jsx("div",Object.assign({style:t.videoModalStyles.backdrop,onClick:e=>{e.target===e.currentTarget&&n()}},{children:e.jsxRuntimeExports.jsxs("div",Object.assign({style:t.videoModalStyles.container,onClick:e=>e.stopPropagation()},{children:[e.jsxRuntimeExports.jsx("button",Object.assign({onClick:n,style:t.videoModalStyles.closeButton.base,onMouseOver:e=>Object.assign(e.currentTarget.style,t.videoModalStyles.closeButton.hover),onMouseOut:e=>Object.assign(e.currentTarget.style,t.videoModalStyles.closeButton.base)},{children:"×"})),e.jsxRuntimeExports.jsx("div",Object.assign({style:t.videoModalStyles.videoWrapper},{children:l?d?e.jsxRuntimeExports.jsx("iframe",{width:"100%",height:"100%",src:a,title:s.TEXT.VIDEO_MODAL_TITLE,frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0,style:t.videoModalStyles.iframe}):e.jsxRuntimeExports.jsxs("video",Object.assign({controls:!0,autoPlay:!0,style:t.videoModalStyles.video},{children:[e.jsxRuntimeExports.jsx("source",{src:l,type:"video/mp4"}),e.jsxRuntimeExports.jsx("source",{src:l,type:"video/webm"}),e.jsxRuntimeExports.jsx("source",{src:l,type:"video/ogg"}),"Your browser does not support the video tag."]})):e.jsxRuntimeExports.jsx("div",Object.assign({style:t.videoModalStyles.noVideoMessage},{children:s.TEXT.NO_VIDEO_AVAILABLE}))}))]}))}))};
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Animation timing constants
3
+ */
4
+ export declare const ANIMATION_TIMING: {
5
+ readonly CLOSE_DURATION: 1150;
6
+ readonly PROCESSING_DELAY: 500;
7
+ readonly MINOR_POPUP_DELAY: 2000;
8
+ readonly TRANSITION_DURATION: "1s";
9
+ };
10
+ /**
11
+ * Animation easing functions
12
+ */
13
+ export declare const ANIMATION_EASING: {
14
+ readonly STANDARD: "cubic-bezier(0.4, 0, 0.2, 1)";
15
+ };
16
+ /**
17
+ * Element check configuration
18
+ */
19
+ export declare const ELEMENT_CHECK_CONFIG: {
20
+ readonly MAX_ATTEMPTS: 25;
21
+ readonly RETRY_INTERVAL_MS: 200;
22
+ readonly SCROLL_DEBOUNCE_MS: 300;
23
+ };
24
+ /**
25
+ * Combined transition string
26
+ */
27
+ export declare const POPUP_TRANSITION: string;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const N={CLOSE_DURATION:1150,PROCESSING_DELAY:500,MINOR_POPUP_DELAY:2e3,TRANSITION_DURATION:"1s"},A={STANDARD:"cubic-bezier(0.4, 0, 0.2, 1)"},I=`transform ${N.TRANSITION_DURATION} ${A.STANDARD}, opacity ${N.TRANSITION_DURATION} ${A.STANDARD}`;exports.ANIMATION_EASING=A,exports.ANIMATION_TIMING=N,exports.POPUP_TRANSITION=I;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Popup dimension constants
3
+ */
4
+ export declare const POPUP_DIMENSIONS: {
5
+ readonly MAJOR: {
6
+ readonly width: 959;
7
+ readonly height: 274;
8
+ readonly imageWidth: 480;
9
+ readonly imageHeight: 274;
10
+ readonly imageInnerWidth: 464;
11
+ readonly imageInnerHeight: 258;
12
+ readonly imagePlaceholderWidth: 290;
13
+ readonly imagePlaceholderHeight: 258;
14
+ };
15
+ readonly MINOR: {
16
+ readonly width: 519;
17
+ readonly height: 160;
18
+ readonly imageWidth: 235;
19
+ readonly imageHeight: 134;
20
+ readonly badgeHeight: 27;
21
+ };
22
+ };
23
+ /**
24
+ * Spacing constants
25
+ */
26
+ export declare const SPACING: {
27
+ readonly MAJOR: {
28
+ readonly contentMargin: "0 8px 0 0";
29
+ readonly imagePadding: "8px";
30
+ readonly titlePadding: "36px 0 0 0";
31
+ readonly buttonMarginTop: "16px";
32
+ readonly skipButtonTop: "10px";
33
+ readonly skipButtonRight: "10px";
34
+ readonly navigationBottom: "16px";
35
+ readonly navigationRight: "16px";
36
+ readonly navigationGap: "8px";
37
+ };
38
+ readonly MINOR: {
39
+ readonly imageMargin: "13px 10px 13px 10px";
40
+ readonly contentMargin: "13px 13px 13px 3px";
41
+ readonly actionsBottom: "13px";
42
+ readonly actionsRight: "10px";
43
+ readonly actionsGap: "16px";
44
+ };
45
+ };
46
+ /**
47
+ * Border radius constants
48
+ */
49
+ export declare const BORDER_RADIUS: {
50
+ readonly POPUP: "4px";
51
+ readonly IMAGE: "4px";
52
+ readonly BUTTON: "4px";
53
+ readonly VIDEO_MODAL: "12px";
54
+ readonly CLOSE_BUTTON: "50%";
55
+ readonly SPOTLIGHT: "8px";
56
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.BORDER_RADIUS={POPUP:"4px",IMAGE:"4px",BUTTON:"4px",VIDEO_MODAL:"12px",CLOSE_BUTTON:"50%",SPOTLIGHT:"8px"},exports.POPUP_DIMENSIONS={MAJOR:{width:959,height:274,imageWidth:480,imageHeight:274,imageInnerWidth:464,imageInnerHeight:258,imagePlaceholderWidth:290,imagePlaceholderHeight:258},MINOR:{width:519,height:160,imageWidth:235,imageHeight:134,badgeHeight:27}},exports.SPACING={MAJOR:{contentMargin:"0 8px 0 0",imagePadding:"8px",titlePadding:"36px 0 0 0",buttonMarginTop:"16px",skipButtonTop:"10px",skipButtonRight:"10px",navigationBottom:"16px",navigationRight:"16px",navigationGap:"8px"},MINOR:{imageMargin:"13px 10px 13px 10px",contentMargin:"13px 13px 13px 3px",actionsBottom:"13px",actionsRight:"10px",actionsGap:"16px"}};
@@ -0,0 +1,19 @@
1
+ export * from './animations';
2
+ export * from './dimensions';
3
+ export * from './selectors';
4
+ export * from './zIndex';
5
+ export * from './localStorageKeys';
6
+ /**
7
+ * Text constants
8
+ */
9
+ export declare const TEXT: {
10
+ readonly DEFAULT_BUTTON_TEXT: "Explore the feature";
11
+ readonly SKIP_BUTTON: "Skip";
12
+ readonly UNDERSTOOD: "Understood";
13
+ readonly NEW_FEATURE_BADGE: "New feature";
14
+ readonly FEATURE_PREVIEW_PLACEHOLDER: "Feature Preview";
15
+ readonly NO_VIDEO_AVAILABLE: "No video available";
16
+ readonly VIDEO_MODAL_TITLE: "Product Video";
17
+ readonly NAVIGATION_PREVIOUS: "‹";
18
+ readonly NAVIGATION_NEXT: "›";
19
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./animations.js");exports.ANIMATION_EASING=e.ANIMATION_EASING,exports.ANIMATION_TIMING=e.ANIMATION_TIMING,exports.POPUP_TRANSITION=e.POPUP_TRANSITION,exports.TEXT={DEFAULT_BUTTON_TEXT:"Explore the feature",SKIP_BUTTON:"Skip",UNDERSTOOD:"Understood",NEW_FEATURE_BADGE:"New feature",FEATURE_PREVIEW_PLACEHOLDER:"Feature Preview",NO_VIDEO_AVAILABLE:"No video available",VIDEO_MODAL_TITLE:"Product Video",NAVIGATION_PREVIOUS:"‹",NAVIGATION_NEXT:"›"};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Local storage keys for feature announcements
3
+ */
4
+ export declare const LOCAL_STORAGE_KEYS: {
5
+ readonly STORE_ID: "storeId";
6
+ readonly BIK_STORE_ID: "Bik/StoreId";
7
+ readonly CURRENT_STORE: "currentStore";
8
+ readonly STORE: "store";
9
+ readonly CURRENT_USER: "Bik/CurrentUser";
10
+ readonly QUERY_PARAM: "storeId";
11
+ };
12
+ /**
13
+ * URL query parameters
14
+ */
15
+ export declare const QUERY_PARAMS: {
16
+ readonly FEATURE_ID: "featureId";
17
+ readonly STORE_ID: "storeId";
18
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.LOCAL_STORAGE_KEYS={STORE_ID:"storeId",BIK_STORE_ID:"Bik/StoreId",CURRENT_STORE:"currentStore",STORE:"store",CURRENT_USER:"Bik/CurrentUser",QUERY_PARAM:"storeId"},exports.QUERY_PARAMS={FEATURE_ID:"featureId",STORE_ID:"storeId"};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CSS selectors for feature announcements
3
+ */
4
+ export declare const SELECTORS: {
5
+ readonly WHATS_NEW_BUTTON: "[data-testid=\"whats-new-button\"]";
6
+ readonly MAIN_ICON_CLASS: ".main-icon-class";
7
+ readonly SVG_VIEWBOX: "svg[viewBox=\"0 0 32 32\"]";
8
+ readonly CLIPPATH_PATTERN: "clipPath[id*=\"clip\"]";
9
+ readonly JOYRIDE_TOOLTIP: "[class*=\"react-joyride__tooltip\"]";
10
+ readonly JOYRIDE_ARROW: "[class*=\"react-joyride__arrow\"]";
11
+ readonly JOYRIDE_SPOTLIGHT: ".react-joyride__spotlight";
12
+ };
13
+ /**
14
+ * Data test IDs
15
+ */
16
+ export declare const TEST_IDS: {
17
+ readonly WHATS_NEW_BUTTON: "whats-new-button";
18
+ readonly MAJOR_POPUP: "major-update-popup";
19
+ readonly MINOR_POPUP: "minor-update-popup";
20
+ readonly VIDEO_MODAL: "video-modal";
21
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.SELECTORS={WHATS_NEW_BUTTON:'[data-testid="whats-new-button"]',MAIN_ICON_CLASS:".main-icon-class",SVG_VIEWBOX:'svg[viewBox="0 0 32 32"]',CLIPPATH_PATTERN:'clipPath[id*="clip"]',JOYRIDE_TOOLTIP:'[class*="react-joyride__tooltip"]',JOYRIDE_ARROW:'[class*="react-joyride__arrow"]',JOYRIDE_SPOTLIGHT:".react-joyride__spotlight"};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Z-index constants
3
+ */
4
+ export declare const Z_INDEX: {
5
+ readonly JOYRIDE: 10000;
6
+ readonly VIDEO_MODAL: 2000;
7
+ readonly SKIP_BUTTON: 10;
8
+ readonly IMAGE_BADGE: 10;
9
+ readonly CLOSE_BUTTON: 10;
10
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.Z_INDEX={JOYRIDE:1e4,VIDEO_MODAL:2e3,SKIP_BUTTON:10,IMAGE_BADGE:10,CLOSE_BUTTON:10};
@@ -0,0 +1 @@
1
+ export { useFeatureAnnouncements } from './useFeatureAnnouncements';
@@ -0,0 +1,13 @@
1
+ import { FeatureAnnouncement, FeatureAnnouncementRepository, RouterProps } from '../types';
2
+ export declare const useFeatureAnnouncements: ({ fetchVisibleFeatures, getStoreFeatureProgress, fetchFeatureById, markFeatureAsViewedForStore, isFeatureApplicableToCurrentPage, module, router, }: FeatureAnnouncementRepository & {
3
+ module?: string | undefined;
4
+ router?: RouterProps | undefined;
5
+ }) => {
6
+ features: FeatureAnnouncement[];
7
+ majorUpdateFeatures: FeatureAnnouncement[];
8
+ minorUpdateFeatures: FeatureAnnouncement[];
9
+ isLoading: boolean;
10
+ error: string | null;
11
+ markFeatureAsViewed: (featureId: string) => Promise<void>;
12
+ refetch: () => Promise<void>;
13
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react"),r=require("../constants/animations.js"),a=require("../constants/localStorageKeys.js");exports.useFeatureAnnouncements=i=>{let{fetchVisibleFeatures:o,getStoreFeatureProgress:n,fetchFeatureById:l,markFeatureAsViewedForStore:u,isFeatureApplicableToCurrentPage:s,module:c,router:d}=i;var f;const p=(()=>{const[e,r]=t.useState(null);return t.useEffect((()=>{if("undefined"!=typeof window){let e=null;try{if(e=localStorage.getItem(a.LOCAL_STORAGE_KEYS.STORE_ID)||localStorage.getItem(a.LOCAL_STORAGE_KEYS.BIK_STORE_ID)||localStorage.getItem(a.LOCAL_STORAGE_KEYS.CURRENT_STORE)||localStorage.getItem(a.LOCAL_STORAGE_KEYS.STORE),!e){const t=localStorage.getItem(a.LOCAL_STORAGE_KEYS.CURRENT_USER);t&&(e=JSON.parse(t).storeId)}e||(e=new URLSearchParams(window.location.search).get(a.LOCAL_STORAGE_KEYS.QUERY_PARAM))}catch(e){}r(e)}}),[]),e})(),[S,_]=t.useState([]),[A,E]=t.useState([]),[g,v]=t.useState([]),[y,R]=t.useState(!1),[T,U]=t.useState(null),D=t.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){if(p){R(!0),U(null);try{const[e,t]=yield o(c);if(e||!t)return void U("Failed to fetch features");const[a,i]=yield n(p),l=new Date,u="undefined"!=typeof window?window.location.pathname:"",d=e=>{if(!e.expirationDate)return!0;let t;return"object"==typeof e.expirationDate&&null!==e.expirationDate&&("seconds"in e.expirationDate||"nanoseconds"in e.expirationDate)?t=new Date(1e3*e.expirationDate.seconds):"string"==typeof e.expirationDate?t=new Date(e.expirationDate):e.expirationDate instanceof Date&&(t=e.expirationDate),!(!t||isNaN(t.getTime()))&&l<t},f=e=>{if("Major"===e.featureUpdateType){let t=[];return Array.isArray(e.pageUrls)?t=e.pageUrls:"object"==typeof e.pageUrls&&null!==e.pageUrls&&"length"in e.pageUrls&&(t=Array.from(e.pageUrls)),t.some((e=>{if(e===u)return!0;const t=e.replace(/\[([^\]]+)\]/g,"[^/]+").replace(/\//g,"\\/");return new RegExp(`^${t}$`).test(u)}))}return!0},S=t.filter((e=>{var t;const r=(null===(t=null==i?void 0:i.viewedFeatures)||void 0===t?void 0:t[e.id])||!1,a=e.archived||!1,o=s(e),n=d(e),l=f(e);return!r&&!a&&o&&n&&l})),A=S.filter((e=>"Major"===e.featureUpdateType)),g=S.filter((e=>"Minor"===e.featureUpdateType));_(S),E(A),setTimeout((()=>{v(g)}),r.ANIMATION_TIMING.MINOR_POPUP_DELAY)}catch(e){U("An unexpected error occurred")}finally{R(!1)}}}))),[p,o,n,s,c]),O=t.useCallback((t=>e.__awaiter(void 0,void 0,void 0,(function*(){R(!0),U(null);try{const[e,r]=yield l(t);if(e||!r)return void U("Failed to fetch feature by ID");"Major"===r.featureUpdateType?E([r]):v([r]),_([r])}catch(e){U("An unexpected error occurred while fetching by ID")}finally{R(!1)}}))),[l]),w=t.useCallback((t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!p)return;const[e]=yield u(p,t);_((e=>e.filter((e=>e.id!==t)))),E((e=>e.filter((e=>e.id!==t)))),v((e=>e.filter((e=>e.id!==t))))}))),[p,u]);return t.useEffect((()=>{var e;const t=null===(e=null==d?void 0:d.query)||void 0===e?void 0:e[a.QUERY_PARAMS.FEATURE_ID];t&&d?O(t):D()}),[null==d?void 0:d.pathname,null===(f=null==d?void 0:d.query)||void 0===f?void 0:f[a.QUERY_PARAMS.FEATURE_ID],p,D,O,d]),{features:S,majorUpdateFeatures:A,minorUpdateFeatures:g,isLoading:y,error:T,markFeatureAsViewed:w,refetch:D}};
@@ -0,0 +1,7 @@
1
+ export { default as FeatureAnnouncementProvider } from './FeatureAnnouncementProvider';
2
+ export { default as MajorUpdatePopup } from './MajorUpdatePopup';
3
+ export { default as MinorUpdatePopup } from './MinorUpdatePopup';
4
+ export { VideoModal } from './VideoModal';
5
+ export { useFeatureAnnouncements } from './hooks/useFeatureAnnouncements';
6
+ export * from './types';
7
+ export { TEXT, ANIMATION_TIMING, POPUP_DIMENSIONS } from './constants';
@@ -0,0 +1,4 @@
1
+ export * from './majorPopup.styles';
2
+ export * from './minorPopup.styles';
3
+ export * from './videoModal.styles';
4
+ export * from './joyride.styles';
@@ -0,0 +1,125 @@
1
+ export declare const majorStepStyles: {
2
+ tooltip: {
3
+ padding: number;
4
+ backgroundColor: string;
5
+ borderRadius: string;
6
+ border: string;
7
+ filter: string;
8
+ boxShadow: string;
9
+ };
10
+ tooltipContent: {
11
+ padding: number;
12
+ };
13
+ buttonNext: {
14
+ display: string;
15
+ };
16
+ buttonBack: {
17
+ display: string;
18
+ };
19
+ buttonClose: {
20
+ display: string;
21
+ };
22
+ buttonSkip: {
23
+ display: string;
24
+ };
25
+ };
26
+ export declare const minorStepStyles: {
27
+ tooltip: {
28
+ padding: number;
29
+ backgroundColor: string;
30
+ borderRadius: "4px";
31
+ border: string;
32
+ filter: string;
33
+ boxShadow: string;
34
+ };
35
+ tooltipContent: {
36
+ padding: number;
37
+ };
38
+ buttonNext: {
39
+ display: string;
40
+ };
41
+ buttonBack: {
42
+ display: string;
43
+ };
44
+ buttonClose: {
45
+ display: string;
46
+ };
47
+ buttonSkip: {
48
+ display: string;
49
+ };
50
+ };
51
+ export declare const getMajorJoyrideStyles: (isClosing: boolean) => {
52
+ options: {
53
+ arrowColor: string;
54
+ backgroundColor: string;
55
+ overlayColor: string;
56
+ primaryColor: string;
57
+ textColor: string;
58
+ zIndex: 10000;
59
+ };
60
+ tooltip: {
61
+ padding: number;
62
+ backgroundColor: string;
63
+ borderRadius: string;
64
+ border: string;
65
+ filter: string;
66
+ boxShadow: string;
67
+ position: "fixed";
68
+ top: string;
69
+ left: string;
70
+ transform: string;
71
+ };
72
+ tooltipContent: {
73
+ padding: number;
74
+ };
75
+ buttonNext: {
76
+ display: string;
77
+ };
78
+ buttonBack: {
79
+ display: string;
80
+ };
81
+ buttonClose: {
82
+ display: string;
83
+ };
84
+ buttonSkip: {
85
+ display: string;
86
+ };
87
+ };
88
+ export declare const getMinorJoyrideStyles: (isClosing: boolean) => {
89
+ options: {
90
+ arrowColor: string;
91
+ backgroundColor: string;
92
+ overlayColor: string;
93
+ primaryColor: string;
94
+ textColor: string;
95
+ zIndex: 10000;
96
+ };
97
+ spotlight: {
98
+ boxShadow: string;
99
+ borderRadius: "8px";
100
+ };
101
+ tooltip: {
102
+ padding: number;
103
+ backgroundColor: string;
104
+ borderRadius: "4px";
105
+ border: string;
106
+ filter: string;
107
+ boxShadow: string;
108
+ maxWidth: string;
109
+ };
110
+ tooltipContent: {
111
+ padding: number;
112
+ };
113
+ buttonNext: {
114
+ display: string;
115
+ };
116
+ buttonBack: {
117
+ display: string;
118
+ };
119
+ buttonClose: {
120
+ display: string;
121
+ };
122
+ buttonSkip: {
123
+ display: string;
124
+ };
125
+ };
@@ -0,0 +1,23 @@
1
+ import { CSSProperties } from 'react';
2
+ export declare const getMajorPopupStyles: (startAnimation: boolean, transform: string) => {
3
+ container: CSSProperties;
4
+ skipButton: {
5
+ base: CSSProperties;
6
+ hover: CSSProperties;
7
+ };
8
+ imageContainer: CSSProperties;
9
+ image: CSSProperties;
10
+ imagePlaceholder: CSSProperties;
11
+ contentContainer: CSSProperties;
12
+ title: CSSProperties;
13
+ content: CSSProperties;
14
+ exploreButton: {
15
+ base: CSSProperties;
16
+ hover: CSSProperties;
17
+ };
18
+ navigationContainer: CSSProperties;
19
+ navigationButton: (disabled: boolean) => {
20
+ base: CSSProperties;
21
+ hover: CSSProperties;
22
+ };
23
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../constants/Theme.js"),t=require("../constants/animations.js"),n=require("../constants/dimensions.js"),i=require("../constants/zIndex.js");exports.getMajorPopupStyles=(o,r)=>({container:{width:`${n.POPUP_DIMENSIONS.MAJOR.width}px`,height:`${n.POPUP_DIMENSIONS.MAJOR.height}px`,display:"flex",backgroundColor:e.BASE_COLORS.grayscale[900],borderRadius:n.BORDER_RADIUS.POPUP,overflow:"hidden",position:"relative",transform:o?r:"scale(1)",opacity:o?0:1,transition:t.POPUP_TRANSITION},skipButton:{base:{position:"absolute",top:n.SPACING.MAJOR.skipButtonTop,right:n.SPACING.MAJOR.skipButtonRight,background:"transparent",border:"none",color:e.BASE_COLORS.grayscale[400],fontSize:"14px",fontWeight:"500",cursor:"pointer",zIndex:i.Z_INDEX.SKIP_BUTTON,transition:"all 0.2s"},hover:{backgroundColor:e.BASE_COLORS.grayscale[100],color:e.BASE_COLORS.grayscale[700]}},imageContainer:{backgroundColor:e.BASE_COLORS.grayscale[900],width:`${n.POPUP_DIMENSIONS.MAJOR.imageWidth}px`,height:`${n.POPUP_DIMENSIONS.MAJOR.imageHeight}px`,position:"relative",display:"flex",alignItems:"center",justifyContent:"center",padding:n.SPACING.MAJOR.imagePadding},image:{width:`${n.POPUP_DIMENSIONS.MAJOR.imageInnerWidth}px`,height:`${n.POPUP_DIMENSIONS.MAJOR.imageInnerHeight}px`,objectFit:"cover"},imagePlaceholder:{color:e.BASE_COLORS.grayscale[500],fontSize:"14px",textAlign:"center",width:`${n.POPUP_DIMENSIONS.MAJOR.imagePlaceholderWidth}px`,height:`${n.POPUP_DIMENSIONS.MAJOR.imagePlaceholderHeight}px`,display:"flex",alignItems:"center",justifyContent:"center"},contentContainer:{flex:1,display:"flex",margin:n.SPACING.MAJOR.contentMargin,flexDirection:"column",justifyContent:"space-between",background:"transparent"},title:{fontSize:"16px",fontWeight:"600",padding:n.SPACING.MAJOR.titlePadding,color:e.BASE_COLORS.grayscale.white,lineHeight:"1.25",textAlign:"left"},content:{fontSize:"14px",lineHeight:"1.5",color:"rgba(255, 255, 255, 0.8)",textAlign:"left"},exploreButton:{base:{backgroundColor:"transparent",border:`1px solid ${e.BASE_COLORS.warning[500]}`,color:e.BASE_COLORS.warning[500],borderRadius:n.BORDER_RADIUS.BUTTON,fontSize:"14px",fontWeight:"600",cursor:"pointer",width:"154px",height:"32px",transition:"all 0.2s",textAlign:"center",display:"flex",alignItems:"center",justifyContent:"center",marginTop:n.SPACING.MAJOR.buttonMarginTop},hover:{backgroundColor:"rgba(254, 192, 45, 0.1)"}},navigationContainer:{position:"absolute",bottom:n.SPACING.MAJOR.navigationBottom,right:n.SPACING.MAJOR.navigationRight,display:"flex",gap:n.SPACING.MAJOR.navigationGap,alignItems:"center"},navigationButton:t=>({base:{width:"24px",height:"24px",backgroundColor:"transparent",border:"none",color:t?e.BASE_COLORS.grayscale[700]:e.BASE_COLORS.grayscale.white,fontSize:"20px",cursor:t?"not-allowed":"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s"},hover:{color:e.BASE_COLORS.warning[500]}})});
@@ -0,0 +1,16 @@
1
+ import { CSSProperties } from 'react';
2
+ export declare const getMinorPopupStyles: (startAnimation: boolean, transform: string) => {
3
+ container: CSSProperties;
4
+ imageContainer: CSSProperties;
5
+ imageWrapper: CSSProperties;
6
+ image: CSSProperties;
7
+ badge: CSSProperties;
8
+ badgeText: CSSProperties;
9
+ imagePlaceholder: CSSProperties;
10
+ contentContainer: CSSProperties;
11
+ title: CSSProperties;
12
+ content: CSSProperties;
13
+ actionsContainer: CSSProperties;
14
+ understoodText: CSSProperties;
15
+ exploreButton: CSSProperties;
16
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../constants/Theme.js"),t=require("../constants/animations.js"),i=require("../constants/dimensions.js"),o=require("../constants/zIndex.js");exports.getMinorPopupStyles=(n,a)=>({container:{width:`${i.POPUP_DIMENSIONS.MINOR.width}px`,height:`${i.POPUP_DIMENSIONS.MINOR.height}px`,display:"flex",backgroundColor:e.BASE_COLORS.grayscale.white,borderRadius:i.BORDER_RADIUS.POPUP,overflow:"hidden",position:"relative",boxShadow:"0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",transform:n?a:"scale(1)",opacity:n?0:1,transition:t.POPUP_TRANSITION},imageContainer:{backgroundColor:e.BASE_COLORS.grayscale[50],borderRadius:i.BORDER_RADIUS.IMAGE,position:"relative",display:"flex",alignItems:"center",justifyContent:"center",margin:i.SPACING.MINOR.imageMargin,width:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,minWidth:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,maxWidth:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,height:`${i.POPUP_DIMENSIONS.MINOR.imageHeight}px`},imageWrapper:{position:"relative",width:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,height:`${i.POPUP_DIMENSIONS.MINOR.imageHeight}px`},image:{width:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,height:`${i.POPUP_DIMENSIONS.MINOR.imageHeight}px`,objectFit:"cover",borderRadius:i.BORDER_RADIUS.IMAGE,display:"block"},badge:{position:"absolute",top:"0px",left:"0px",right:"0px",height:`${i.POPUP_DIMENSIONS.MINOR.badgeHeight}px`,backgroundColor:"rgba(0, 0, 0, 0.26)",borderRadius:`${i.BORDER_RADIUS.IMAGE} ${i.BORDER_RADIUS.IMAGE} ${i.BORDER_RADIUS.IMAGE} ${i.BORDER_RADIUS.IMAGE}`,display:"flex",alignItems:"center",justifyContent:"center",zIndex:o.Z_INDEX.IMAGE_BADGE},badgeText:{color:e.BASE_COLORS.grayscale.white,fontWeight:"600",fontSize:"14px"},imagePlaceholder:{color:e.BASE_COLORS.grayscale[500],fontSize:"14px",textAlign:"center",width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:e.BASE_COLORS.grayscale[100],borderRadius:i.BORDER_RADIUS.IMAGE},contentContainer:{flex:1,display:"flex",margin:i.SPACING.MINOR.contentMargin,flexDirection:"column",justifyContent:"space-between",background:"transparent"},title:{fontSize:"16px",fontWeight:"600",padding:"0 0 0 0",color:e.BASE_COLORS.grayscale[900],lineHeight:"1.25",textAlign:"left"},content:{fontSize:"12px",fontWeight:"400",lineHeight:"1.2",color:e.BASE_COLORS.grayscale[700],textAlign:"left",maxHeight:"48px",overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical"},actionsContainer:{position:"absolute",bottom:i.SPACING.MINOR.actionsBottom,right:i.SPACING.MINOR.actionsRight,display:"flex",gap:i.SPACING.MINOR.actionsGap,alignItems:"center"},understoodText:{color:e.BASE_COLORS.brand[800],fontSize:"14px",fontWeight:"500",cursor:"pointer",transition:"all 0.2s"},exploreButton:{backgroundColor:e.BASE_COLORS.brand[800],border:"none",color:e.BASE_COLORS.grayscale.white,borderRadius:i.BORDER_RADIUS.BUTTON,fontSize:"14px",fontWeight:"600",cursor:"pointer",width:"154px",height:"32px",transition:"all 0.2s",textAlign:"center",display:"flex",alignItems:"center",justifyContent:"center"}});
@@ -0,0 +1,13 @@
1
+ import { CSSProperties } from 'react';
2
+ export declare const videoModalStyles: {
3
+ backdrop: CSSProperties;
4
+ container: CSSProperties;
5
+ closeButton: {
6
+ base: CSSProperties;
7
+ hover: CSSProperties;
8
+ };
9
+ videoWrapper: CSSProperties;
10
+ iframe: CSSProperties;
11
+ video: CSSProperties;
12
+ noVideoMessage: CSSProperties;
13
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../constants/animations.js");var e=require("../constants/dimensions.js"),t=require("../constants/zIndex.js");const o={backdrop:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.9)",zIndex:t.Z_INDEX.VIDEO_MODAL,display:"flex",justifyContent:"center",alignItems:"center",padding:"20px"},container:{position:"relative",width:"90vw",height:"90vh",maxWidth:"1200px",maxHeight:"800px",backgroundColor:"black",borderRadius:e.BORDER_RADIUS.VIDEO_MODAL,overflow:"hidden",boxShadow:"0 25px 50px rgba(0, 0, 0, 0.8)"},closeButton:{base:{position:"absolute",top:"20px",right:"20px",background:"rgba(0, 0, 0, 0.7)",border:"none",color:"white",fontSize:"24px",width:"40px",height:"40px",borderRadius:e.BORDER_RADIUS.CLOSE_BUTTON,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",zIndex:t.Z_INDEX.CLOSE_BUTTON,transition:"background-color 0.2s"},hover:{backgroundColor:"rgba(0, 0, 0, 0.9)"}},videoWrapper:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},iframe:{borderRadius:e.BORDER_RADIUS.VIDEO_MODAL},video:{width:"100%",height:"100%",objectFit:"contain",borderRadius:e.BORDER_RADIUS.VIDEO_MODAL},noVideoMessage:{color:"white",fontSize:"18px",textAlign:"center"}};exports.videoModalStyles=o;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Firestore Timestamp type
3
+ */
4
+ export interface FirestoreTimestamp {
5
+ seconds: number;
6
+ nanoseconds?: number;
7
+ }
8
+ /**
9
+ * Feature announcement data model
10
+ */
11
+ export interface FeatureAnnouncement {
12
+ id: string;
13
+ title: string;
14
+ body: string;
15
+ content: string;
16
+ buttonText: string;
17
+ displayImage: string;
18
+ featureTag: string;
19
+ featureUpdateType: 'Major' | 'Minor';
20
+ image: string;
21
+ module: string[];
22
+ pageUrls: string[];
23
+ productVideo: string;
24
+ redirectUrl: string;
25
+ updates: string;
26
+ visibility: boolean;
27
+ archived?: boolean;
28
+ createdAt: FirestoreTimestamp;
29
+ expirationDate?: FirestoreTimestamp | string | Date;
30
+ }
31
+ /**
32
+ * Store feature progress tracking
33
+ */
34
+ export interface StoreFeatureProgress {
35
+ storeId: string;
36
+ viewedFeatures: Record<string, boolean>;
37
+ }
38
+ /**
39
+ * Feature update types
40
+ */
41
+ export type FeatureUpdateType = 'Major' | 'Minor';
@@ -0,0 +1,4 @@
1
+ export * from './feature.types';
2
+ export * from './props.types';
3
+ export * from './repository.types';
4
+ export * from './router.types';