@e1011/es-kit 1.1.24 → 1.1.28

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 (222) hide show
  1. package/dist/hooks/esm/index.css +310 -305
  2. package/dist/hooks/esm/node_modules/gsap/CSSPlugin.js +11 -0
  3. package/dist/hooks/esm/node_modules/gsap/CSSPlugin.js.map +1 -0
  4. package/dist/hooks/esm/node_modules/gsap/gsap-core.js +11 -0
  5. package/dist/hooks/esm/node_modules/gsap/gsap-core.js.map +1 -0
  6. package/dist/hooks/esm/node_modules/gsap/index.js +2 -0
  7. package/dist/hooks/esm/node_modules/gsap/index.js.map +1 -0
  8. package/dist/hooks/esm/src/core/hooks/index.js +1 -1
  9. package/dist/hooks/esm/src/core/hooks/useAnimation.js +2 -0
  10. package/dist/hooks/esm/src/core/hooks/useAnimation.js.map +1 -0
  11. package/dist/hooks/esm/src/core/hooks/useClassNames.js.map +1 -1
  12. package/dist/hooks/esm/src/core/hooks/useIntersectionObserver.js +2 -0
  13. package/dist/hooks/esm/src/core/hooks/useIntersectionObserver.js.map +1 -0
  14. package/dist/hooks/esm/src/core/hooks/useOutsideClick.js.map +1 -1
  15. package/dist/hooks/esm/src/core/hooks/useParseProps.js.map +1 -1
  16. package/dist/hooks/esm/src/core/hooks/useResize.js.map +1 -1
  17. package/dist/hooks/esm/src/core/hooks/useThemePreference.js +1 -1
  18. package/dist/hooks/esm/src/core/hooks/useThemePreference.js.map +1 -1
  19. package/dist/hooks/esm/src/core/hooks/useToggle.js.map +1 -1
  20. package/dist/hooks/index.css +310 -305
  21. package/dist/hooks/node_modules/gsap/CSSPlugin.js +11 -0
  22. package/dist/hooks/node_modules/gsap/CSSPlugin.js.map +1 -0
  23. package/dist/hooks/node_modules/gsap/gsap-core.js +11 -0
  24. package/dist/hooks/node_modules/gsap/gsap-core.js.map +1 -0
  25. package/dist/hooks/node_modules/gsap/index.js +2 -0
  26. package/dist/hooks/node_modules/gsap/index.js.map +1 -0
  27. package/dist/hooks/src/core/hooks/index.js +1 -1
  28. package/dist/hooks/src/core/hooks/useAnimation.js +2 -0
  29. package/dist/hooks/src/core/hooks/useAnimation.js.map +1 -0
  30. package/dist/hooks/src/core/hooks/useClassNames.js.map +1 -1
  31. package/dist/hooks/src/core/hooks/useIntersectionObserver.js +2 -0
  32. package/dist/hooks/src/core/hooks/useIntersectionObserver.js.map +1 -0
  33. package/dist/hooks/src/core/hooks/useOutsideClick.js.map +1 -1
  34. package/dist/hooks/src/core/hooks/useParseProps.js.map +1 -1
  35. package/dist/hooks/src/core/hooks/useResize.js.map +1 -1
  36. package/dist/hooks/src/core/hooks/useThemePreference.js +1 -1
  37. package/dist/hooks/src/core/hooks/useThemePreference.js.map +1 -1
  38. package/dist/hooks/src/core/hooks/useToggle.js.map +1 -1
  39. package/dist/lib/cjs/index.css +5 -0
  40. package/dist/lib/cjs/node_modules/gsap/CSSPlugin.js +11 -0
  41. package/dist/lib/cjs/node_modules/gsap/CSSPlugin.js.map +1 -0
  42. package/dist/lib/cjs/node_modules/gsap/gsap-core.js +11 -0
  43. package/dist/lib/cjs/node_modules/gsap/gsap-core.js.map +1 -0
  44. package/dist/lib/cjs/node_modules/gsap/index.js +2 -0
  45. package/dist/lib/cjs/node_modules/gsap/index.js.map +1 -0
  46. package/dist/lib/cjs/src/core/hooks/useAnimation.js +2 -0
  47. package/dist/lib/cjs/src/core/hooks/useAnimation.js.map +1 -0
  48. package/dist/lib/cjs/src/core/hooks/useClassNames.js.map +1 -1
  49. package/dist/lib/cjs/src/core/hooks/useIntersectionObserver.js +2 -0
  50. package/dist/lib/cjs/src/core/hooks/useIntersectionObserver.js.map +1 -0
  51. package/dist/lib/cjs/src/core/hooks/useOutsideClick.js.map +1 -1
  52. package/dist/lib/cjs/src/core/hooks/useParseProps.js.map +1 -1
  53. package/dist/lib/cjs/src/core/hooks/useResize.js.map +1 -1
  54. package/dist/lib/cjs/src/core/hooks/useThemePreference.js +1 -1
  55. package/dist/lib/cjs/src/core/hooks/useThemePreference.js.map +1 -1
  56. package/dist/lib/cjs/src/core/hooks/useToggle.js.map +1 -1
  57. package/dist/lib/cjs/src/core/ui/components/atoms/icons.js.map +1 -1
  58. package/dist/lib/cjs/src/core/ui/components/atoms/text/Headline.js.map +1 -1
  59. package/dist/lib/cjs/src/core/ui/components/atoms/text/Link.js.map +1 -1
  60. package/dist/lib/cjs/src/core/ui/components/atoms/text/Paragraph.js.map +1 -1
  61. package/dist/lib/cjs/src/core/ui/components/atoms/text/Text.js.map +1 -1
  62. package/dist/lib/cjs/src/core/ui/components/atoms/textAndContent/TextAndContent.js +2 -0
  63. package/dist/lib/cjs/src/core/ui/components/atoms/textAndContent/TextAndContent.js.map +1 -0
  64. package/dist/lib/cjs/src/core/ui/components/atoms/textAndContent/textAndContent.module.scss.js +2 -0
  65. package/dist/lib/cjs/src/core/ui/components/atoms/textAndContent/textAndContent.module.scss.js.map +1 -0
  66. package/dist/lib/cjs/src/core/ui/components/container/layoutBox/LayoutBox.js.map +1 -1
  67. package/dist/lib/cjs/src/core/ui/components/error/propsValidationError.js +2 -0
  68. package/dist/lib/cjs/src/core/ui/components/error/propsValidationError.js.map +1 -0
  69. package/dist/lib/cjs/src/core/ui/components/icon/IconBase.js.map +1 -1
  70. package/dist/lib/cjs/src/core/ui/components/icon/IconWC.js.map +1 -1
  71. package/dist/lib/cjs/src/core/ui/components/molecules/popup/Popup.js.map +1 -1
  72. package/dist/lib/cjs/src/core/utils/appState/peregrineMQ/peregrineMQ.js.map +1 -1
  73. package/dist/lib/cjs/src/core/utils/appState/store/store.vanillajs.js.map +1 -1
  74. package/dist/lib/cjs/src/index.js +1 -1
  75. package/dist/lib/esm/index.css +5 -0
  76. package/dist/lib/esm/node_modules/gsap/CSSPlugin.js +11 -0
  77. package/dist/lib/esm/node_modules/gsap/CSSPlugin.js.map +1 -0
  78. package/dist/lib/esm/node_modules/gsap/gsap-core.js +11 -0
  79. package/dist/lib/esm/node_modules/gsap/gsap-core.js.map +1 -0
  80. package/dist/lib/esm/node_modules/gsap/index.js +2 -0
  81. package/dist/lib/esm/node_modules/gsap/index.js.map +1 -0
  82. package/dist/lib/esm/src/core/hooks/useAnimation.js +2 -0
  83. package/dist/lib/esm/src/core/hooks/useAnimation.js.map +1 -0
  84. package/dist/lib/esm/src/core/hooks/useClassNames.js.map +1 -1
  85. package/dist/lib/esm/src/core/hooks/useIntersectionObserver.js +2 -0
  86. package/dist/lib/esm/src/core/hooks/useIntersectionObserver.js.map +1 -0
  87. package/dist/lib/esm/src/core/hooks/useOutsideClick.js.map +1 -1
  88. package/dist/lib/esm/src/core/hooks/useParseProps.js.map +1 -1
  89. package/dist/lib/esm/src/core/hooks/useResize.js.map +1 -1
  90. package/dist/lib/esm/src/core/hooks/useThemePreference.js +1 -1
  91. package/dist/lib/esm/src/core/hooks/useThemePreference.js.map +1 -1
  92. package/dist/lib/esm/src/core/hooks/useToggle.js.map +1 -1
  93. package/dist/lib/esm/src/core/ui/components/atoms/icons.js.map +1 -1
  94. package/dist/lib/esm/src/core/ui/components/atoms/text/Headline.js.map +1 -1
  95. package/dist/lib/esm/src/core/ui/components/atoms/text/Link.js.map +1 -1
  96. package/dist/lib/esm/src/core/ui/components/atoms/text/Paragraph.js.map +1 -1
  97. package/dist/lib/esm/src/core/ui/components/atoms/text/Text.js.map +1 -1
  98. package/dist/lib/esm/src/core/ui/components/atoms/textAndContent/TextAndContent.js +2 -0
  99. package/dist/lib/esm/src/core/ui/components/atoms/textAndContent/TextAndContent.js.map +1 -0
  100. package/dist/lib/esm/src/core/ui/components/atoms/textAndContent/textAndContent.module.scss.js +2 -0
  101. package/dist/lib/esm/src/core/ui/components/atoms/textAndContent/textAndContent.module.scss.js.map +1 -0
  102. package/dist/lib/esm/src/core/ui/components/container/layoutBox/LayoutBox.js.map +1 -1
  103. package/dist/lib/esm/src/core/ui/components/error/propsValidationError.js +2 -0
  104. package/dist/lib/esm/src/core/ui/components/error/propsValidationError.js.map +1 -0
  105. package/dist/lib/esm/src/core/ui/components/icon/IconBase.js.map +1 -1
  106. package/dist/lib/esm/src/core/ui/components/icon/IconWC.js.map +1 -1
  107. package/dist/lib/esm/src/core/ui/components/molecules/popup/Popup.js.map +1 -1
  108. package/dist/lib/esm/src/core/utils/appState/peregrineMQ/peregrineMQ.js.map +1 -1
  109. package/dist/lib/esm/src/core/utils/appState/store/store.vanillajs.js.map +1 -1
  110. package/dist/lib/esm/src/index.js +1 -1
  111. package/dist/lib/tsconfig.tsbuildinfo +1 -1
  112. package/dist/types/src/core/hooks/index.d.ts +2 -0
  113. package/dist/types/src/core/hooks/index.d.ts.map +1 -1
  114. package/dist/types/src/core/hooks/useAnimation.d.ts +23 -0
  115. package/dist/types/src/core/hooks/useAnimation.d.ts.map +1 -0
  116. package/dist/types/src/core/hooks/useClassNames.d.ts +6 -0
  117. package/dist/types/src/core/hooks/useClassNames.d.ts.map +1 -1
  118. package/dist/types/src/core/hooks/useIntersectionObserver.d.ts +28 -0
  119. package/dist/types/src/core/hooks/useIntersectionObserver.d.ts.map +1 -0
  120. package/dist/types/src/core/hooks/useOutsideClick.d.ts +14 -0
  121. package/dist/types/src/core/hooks/useOutsideClick.d.ts.map +1 -1
  122. package/dist/types/src/core/hooks/useParseProps.d.ts +5 -0
  123. package/dist/types/src/core/hooks/useParseProps.d.ts.map +1 -1
  124. package/dist/types/src/core/hooks/useResize.d.ts +23 -0
  125. package/dist/types/src/core/hooks/useResize.d.ts.map +1 -1
  126. package/dist/types/src/core/hooks/useThemePreference.d.ts +37 -1
  127. package/dist/types/src/core/hooks/useThemePreference.d.ts.map +1 -1
  128. package/dist/types/src/core/hooks/useToggle.d.ts +17 -2
  129. package/dist/types/src/core/hooks/useToggle.d.ts.map +1 -1
  130. package/dist/types/src/core/ui/components/atoms/button/button.stories.d.ts +1 -1
  131. package/dist/types/src/core/ui/components/atoms/button/button.stories.d.ts.map +1 -1
  132. package/dist/types/src/core/ui/components/atoms/icons.d.ts +5 -0
  133. package/dist/types/src/core/ui/components/atoms/icons.d.ts.map +1 -1
  134. package/dist/types/src/core/ui/components/atoms/index.d.ts +1 -0
  135. package/dist/types/src/core/ui/components/atoms/index.d.ts.map +1 -1
  136. package/dist/types/src/core/ui/components/atoms/tag/Tag.d.ts +38 -0
  137. package/dist/types/src/core/ui/components/atoms/tag/Tag.d.ts.map +1 -0
  138. package/dist/types/src/core/ui/components/atoms/tag/Tag.test.d.ts +5 -0
  139. package/dist/types/src/core/ui/components/atoms/tag/Tag.test.d.ts.map +1 -0
  140. package/dist/types/src/core/ui/components/atoms/tag/tag.stories.d.ts +6 -0
  141. package/dist/types/src/core/ui/components/atoms/tag/tag.stories.d.ts.map +1 -0
  142. package/dist/types/src/core/ui/components/atoms/text/Headline.d.ts +1 -1
  143. package/dist/types/src/core/ui/components/atoms/text/Headline.d.ts.map +1 -1
  144. package/dist/types/src/core/ui/components/atoms/text/Link.d.ts +1 -1
  145. package/dist/types/src/core/ui/components/atoms/text/Link.d.ts.map +1 -1
  146. package/dist/types/src/core/ui/components/atoms/text/Paragraph.d.ts +1 -1
  147. package/dist/types/src/core/ui/components/atoms/text/Paragraph.d.ts.map +1 -1
  148. package/dist/types/src/core/ui/components/atoms/text/Text.d.ts +2 -15
  149. package/dist/types/src/core/ui/components/atoms/text/Text.d.ts.map +1 -1
  150. package/dist/types/src/core/ui/components/atoms/text/anchor-link/anchorLink.stories.d.ts +1 -1
  151. package/dist/types/src/core/ui/components/atoms/text/anchor-link/anchorLink.stories.d.ts.map +1 -1
  152. package/dist/types/src/core/ui/components/atoms/text/anchor-link/anchorLink.types.d.ts +1 -1
  153. package/dist/types/src/core/ui/components/atoms/text/anchor-link/anchorLink.types.d.ts.map +1 -1
  154. package/dist/types/src/core/ui/components/atoms/text/text.types.d.ts +16 -0
  155. package/dist/types/src/core/ui/components/atoms/text/text.types.d.ts.map +1 -0
  156. package/dist/types/src/core/ui/components/atoms/textAndContent/TextAndContent.d.ts +17 -0
  157. package/dist/types/src/core/ui/components/atoms/textAndContent/TextAndContent.d.ts.map +1 -0
  158. package/dist/types/src/core/ui/components/atoms/textAndContent/index.d.ts +3 -0
  159. package/dist/types/src/core/ui/components/atoms/textAndContent/index.d.ts.map +1 -0
  160. package/dist/types/src/core/ui/components/atoms/textAndContent/textAndContent.stories.d.ts +8 -0
  161. package/dist/types/src/core/ui/components/atoms/textAndContent/textAndContent.stories.d.ts.map +1 -0
  162. package/dist/types/src/core/ui/components/atoms/textAndContent/textAndContent.test.d.ts +5 -0
  163. package/dist/types/src/core/ui/components/atoms/textAndContent/textAndContent.test.d.ts.map +1 -0
  164. package/dist/types/src/core/ui/components/atoms/textAndContent/textAndContent.types.d.ts +24 -0
  165. package/dist/types/src/core/ui/components/atoms/textAndContent/textAndContent.types.d.ts.map +1 -0
  166. package/dist/types/src/core/ui/components/error/errorBoundary.stories.d.ts +3 -3
  167. package/dist/types/src/core/ui/components/error/errorBoundary.stories.d.ts.map +1 -1
  168. package/dist/types/src/core/ui/components/error/propsValidationError.d.ts +4 -0
  169. package/dist/types/src/core/ui/components/error/propsValidationError.d.ts.map +1 -0
  170. package/dist/types/src/core/ui/components/molecules/popup/popup.stories.d.ts +2 -2
  171. package/dist/types/src/core/ui/components/molecules/popup/popup.stories.d.ts.map +1 -1
  172. package/dist/types/src/core/utils/appState/peregrineMQ/peregrineMQ.stories.d.ts +1 -1
  173. package/dist/types/src/core/utils/appState/peregrineMQ/peregrineMQ.stories.d.ts.map +1 -1
  174. package/dist/types/src/core/utils/appState/store/store.stories.d.ts +1 -1
  175. package/dist/types/src/core/utils/appState/store/store.stories.d.ts.map +1 -1
  176. package/dist/ui/esm/index.css +5 -0
  177. package/dist/ui/esm/src/core/hooks/useOutsideClick.js.map +1 -1
  178. package/dist/ui/esm/src/core/hooks/useParseProps.js.map +1 -1
  179. package/dist/ui/esm/src/core/hooks/useResize.js.map +1 -1
  180. package/dist/ui/esm/src/core/ui/components/atoms/icons.js.map +1 -1
  181. package/dist/ui/esm/src/core/ui/components/atoms/text/Headline.js.map +1 -1
  182. package/dist/ui/esm/src/core/ui/components/atoms/text/Link.js.map +1 -1
  183. package/dist/ui/esm/src/core/ui/components/atoms/text/Paragraph.js.map +1 -1
  184. package/dist/ui/esm/src/core/ui/components/atoms/text/Text.js.map +1 -1
  185. package/dist/ui/esm/src/core/ui/components/atoms/textAndContent/TextAndContent.js +2 -0
  186. package/dist/ui/esm/src/core/ui/components/atoms/textAndContent/TextAndContent.js.map +1 -0
  187. package/dist/ui/esm/src/core/ui/components/atoms/textAndContent/textAndContent.module.scss.js +2 -0
  188. package/dist/ui/esm/src/core/ui/components/atoms/textAndContent/textAndContent.module.scss.js.map +1 -0
  189. package/dist/ui/esm/src/core/ui/components/container/layoutBox/LayoutBox.js.map +1 -1
  190. package/dist/ui/esm/src/core/ui/components/error/propsValidationError.js +2 -0
  191. package/dist/ui/esm/src/core/ui/components/error/propsValidationError.js.map +1 -0
  192. package/dist/ui/esm/src/core/ui/components/icon/IconBase.js.map +1 -1
  193. package/dist/ui/esm/src/core/ui/components/icon/IconWC.js.map +1 -1
  194. package/dist/ui/esm/src/core/ui/components/molecules/popup/Popup.js.map +1 -1
  195. package/dist/ui/esm/src/core/ui/index.js +1 -1
  196. package/dist/ui/index.css +5 -0
  197. package/dist/ui/src/core/hooks/useOutsideClick.js.map +1 -1
  198. package/dist/ui/src/core/hooks/useParseProps.js.map +1 -1
  199. package/dist/ui/src/core/hooks/useResize.js.map +1 -1
  200. package/dist/ui/src/core/ui/components/atoms/icons.js.map +1 -1
  201. package/dist/ui/src/core/ui/components/atoms/text/Headline.js.map +1 -1
  202. package/dist/ui/src/core/ui/components/atoms/text/Link.js.map +1 -1
  203. package/dist/ui/src/core/ui/components/atoms/text/Paragraph.js.map +1 -1
  204. package/dist/ui/src/core/ui/components/atoms/text/Text.js.map +1 -1
  205. package/dist/ui/src/core/ui/components/atoms/textAndContent/TextAndContent.js +2 -0
  206. package/dist/ui/src/core/ui/components/atoms/textAndContent/TextAndContent.js.map +1 -0
  207. package/dist/ui/src/core/ui/components/atoms/textAndContent/textAndContent.module.scss.js +2 -0
  208. package/dist/ui/src/core/ui/components/atoms/textAndContent/textAndContent.module.scss.js.map +1 -0
  209. package/dist/ui/src/core/ui/components/container/layoutBox/LayoutBox.js.map +1 -1
  210. package/dist/ui/src/core/ui/components/error/propsValidationError.js +2 -0
  211. package/dist/ui/src/core/ui/components/error/propsValidationError.js.map +1 -0
  212. package/dist/ui/src/core/ui/components/icon/IconBase.js.map +1 -1
  213. package/dist/ui/src/core/ui/components/icon/IconWC.js.map +1 -1
  214. package/dist/ui/src/core/ui/components/molecules/popup/Popup.js.map +1 -1
  215. package/dist/ui/src/core/ui/index.js +1 -1
  216. package/dist/utils/esm/index.css +310 -305
  217. package/dist/utils/esm/src/core/utils/appState/peregrineMQ/peregrineMQ.js.map +1 -1
  218. package/dist/utils/esm/src/core/utils/appState/store/store.vanillajs.js.map +1 -1
  219. package/dist/utils/index.css +310 -305
  220. package/dist/utils/src/core/utils/appState/peregrineMQ/peregrineMQ.js.map +1 -1
  221. package/dist/utils/src/core/utils/appState/store/store.vanillajs.js.map +1 -1
  222. package/package.json +20 -11
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./gsap-core.js"),i=require("./CSSPlugin.js"),r=e.gsap.registerPlugin(i.CSSPlugin)||e.gsap;r.core.Tween,exports.TimelineLite=e.Timeline,exports.TimelineMax=e.Timeline,exports.TweenLite=e.Tween,exports.CSSPlugin=i.CSSPlugin,exports.default=r,exports.gsap=r;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../node_modules/gsap/index.js"],"sourcesContent":["import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };"],"names":["gsapWithCSS","gsap","registerPlugin","CSSPlugin","core","Tween"],"mappings":"gIAEIA,EAAcC,EAAAA,KAAKC,eAAeC,EAASA,YAAKF,EAAAA,KAElCD,EAAYI,KAAKC","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./useApi.js"),s=require("./useToggle.js"),r=require("./useOutsideClick.js"),u=require("./useResize.js"),o=require("./useClassNames.js"),t=require("./useParseProps.js"),i=require("./useThemePreference.js");exports.useApi=e.useApi,exports.useToggle=s.useToggle,exports.outsideClickHandler=r.outsideClickHandler,exports.useOutsideClick=r.useOutsideClick,exports.useResize=u.useResize,exports.useClassNames=o.useClassNames,exports.useParseProps=t.useParseProps,exports.getBaseThemes=i.getBaseThemes,exports.observeThemePreference=i.observeThemePreference,exports.setTHemeClassNames=i.setTHemeClassNames,exports.switchColorTheme=i.switchColorTheme,exports.updateColorTheme=i.updateColorTheme,exports.useThemePreference=i.useThemePreference;
1
+ "use strict";var e=require("./useApi.js"),s=require("./useToggle.js"),r=require("./useOutsideClick.js"),u=require("./useResize.js"),o=require("./useClassNames.js"),t=require("./useParseProps.js"),i=require("./useThemePreference.js"),a=require("./useAnimation.js"),p=require("./useIntersectionObserver.js");exports.useApi=e.useApi,exports.useToggle=s.useToggle,exports.outsideClickHandler=r.outsideClickHandler,exports.useOutsideClick=r.useOutsideClick,exports.useResize=u.useResize,exports.useClassNames=o.useClassNames,exports.useParseProps=t.useParseProps,exports.getBaseThemes=i.getBaseThemes,exports.observeThemePreference=i.observeThemePreference,exports.setThemeClassNames=i.setThemeClassNames,exports.switchColorTheme=i.switchColorTheme,exports.updateColorTheme=i.updateColorTheme,exports.useThemePreference=i.useThemePreference,exports.useAnimation=a.useAnimation,exports.useIntersectionObserver=p.useIntersectionObserver;
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("../../../node_modules/gsap/index.js"),t=require("react");exports.useAnimation=r=>{let{start:s,end:u,duration:a,ease:n="expo.inOut",rounded:o}=r;const[d,c]=t.useState(u),i=t.useRef(s);return t.useEffect((()=>{i.current=d}),[d]),t.useLayoutEffect((()=>{const t={val:i.current},r=e.gsap.context((()=>{e.gsap.to(t,a,{val:u,ease:n,duration:a,...o?{roundProps:"val"}:{},onUpdate(){c(t.val)}})}));return()=>r.revert()}),[a,n,u,o,s]),d};
2
+ //# sourceMappingURL=useAnimation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnimation.js","sources":["../../../../../src/core/hooks/useAnimation.ts"],"sourcesContent":["import gsap from 'gsap'\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react'\n\n/**\n * Type definition for the parameters used in the `useAnimation` hook.\n * @typedef {Object} UseAnimationType\n * @property {number} start - The starting value of the animation.\n * @property {number} end - The ending value of the animation.\n * @property {number} duration - The duration of the animation in seconds.\n * @property {string} [ease='expo.inOut'] - The easing function for the animation.\n * @property {boolean} [rounded] - Flag to determine if the value should be rounded during the animation.\n */\nexport type UseAnimationType = {\n start: number\n end: number\n duration: number\n ease?: string\n rounded?: boolean\n}\n\n/**\n * Custom hook to create an animation using GSAP.\n * @param {UseAnimationType} params - The parameters for the animation.\n * @returns {number} The current value of the animation.\n */\nexport const useAnimation = ({ start, end, duration, ease = 'expo.inOut', rounded }: UseAnimationType): number => {\n const [val, setVal] = useState(end)\n\n const startValueRef = useRef(start)\n\n useEffect(() => {\n startValueRef.current = val\n }, [val])\n\n useLayoutEffect(() => {\n const valObj = { val: startValueRef.current }\n\n const gsapCtx = gsap.context(() => {\n gsap.to(valObj, duration, {\n val: end,\n ease,\n duration,\n ...(rounded ? { roundProps: 'val' } : {}),\n onUpdate () {\n setVal(valObj.val)\n },\n })\n })\n\n return (): void => gsapCtx.revert()\n }, [duration, ease, end, rounded, start])\n\n return val\n}\n"],"names":["_ref","start","end","duration","ease","rounded","val","setVal","useState","startValueRef","useRef","useEffect","current","useLayoutEffect","valObj","gsapCtx","gsap","context","to","roundProps","onUpdate","revert"],"mappings":"0GAyB4BA,IAAsF,IAArFC,MAAEA,EAAKC,IAAEA,EAAGC,SAAEA,EAAQC,KAAEA,EAAO,aAAYC,QAAEA,GAA2BL,EACnG,MAAOM,EAAKC,GAAUC,EAAQA,SAACN,GAEzBO,EAAgBC,SAAOT,GAwB7B,OAtBAU,EAAAA,WAAU,KACRF,EAAcG,QAAUN,CAAG,GAC1B,CAACA,IAEJO,EAAAA,iBAAgB,KACd,MAAMC,EAAS,CAAER,IAAKG,EAAcG,SAE9BG,EAAUC,OAAKC,SAAQ,KAC3BD,OAAKE,GAAGJ,EAAQX,EAAU,CACxBG,IAAKJ,EACLE,OACAD,cACIE,EAAU,CAAEc,WAAY,OAAU,GACtCC,QAAAA,GACEb,EAAOO,EAAOR,IAChB,GACA,IAGJ,MAAO,IAAYS,EAAQM,QAAQ,GAClC,CAAClB,EAAUC,EAAMF,EAAKG,EAASJ,IAE3BK,CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"useClassNames.js","sources":["../../../../../src/core/hooks/useClassNames.ts"],"sourcesContent":["import { useMemo } from 'react'\n\nimport { classNames, TClassName } from '../utils/helpers/ui'\n\nexport const useClassNames = (\n classes: TClassName[],\n deps: unknown[],\n// eslint-disable-next-line react-hooks/exhaustive-deps\n): ReturnType<typeof classNames> => useMemo(() => classNames(...classes), [classes, deps])\n"],"names":["useClassNames","classes","deps","useMemo","classNames"],"mappings":"8FAI6BA,CAC3BC,EACAC,IAEkCC,EAAOA,SAAC,IAAMC,EAAAA,cAAcH,IAAU,CAACA,EAASC"}
1
+ {"version":3,"file":"useClassNames.js","sources":["../../../../../src/core/hooks/useClassNames.ts"],"sourcesContent":["import { useMemo } from 'react'\n\nimport { classNames, TClassName } from '../utils/helpers/ui'\n\n\n/**\n * Custom hook to memoize class names.\n * @param {TClassName[]} classes - Array of class names or conditions to be applied.\n * @param {unknown[]} deps - Dependencies array for the `useMemo` hook.\n * @returns {ReturnType<typeof classNames>} The computed class names as a string.\n */\nexport const useClassNames = (\n classes: TClassName[],\n deps: unknown[],\n// eslint-disable-next-line react-hooks/exhaustive-deps\n): ReturnType<typeof classNames> => useMemo(() => classNames(...classes), [classes, deps])\n"],"names":["useClassNames","classes","deps","useMemo","classNames"],"mappings":"8FAW6BA,CAC3BC,EACAC,IAEkCC,EAAOA,SAAC,IAAMC,EAAAA,cAAcH,IAAU,CAACA,EAASC"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react");const r={root:null,rootMargin:"0px",threshold:.5};exports.useIntersectionObserver=t=>{let{callback:n,notIntersectingCallback:c,options:s={},granular:o}=t;const u=e.useRef(null),i=e.useRef(),l=e.useCallback((e=>{!function(e,r,t){arguments.length>3&&void 0!==arguments[3]&&arguments[3]?e.forEach((e=>{e.isIntersecting?r():t?.()})):e[0].isIntersecting?r():t?.()}(e,n,c,o)}),[n,o,c]);return e.useEffect((()=>{i.current?.disconnect();const e=u.current;return i.current=new IntersectionObserver(l,{...r,...s}),e&&i.current.observe(e),()=>{i.current?.disconnect()}}),[l,s]),u};
2
+ //# sourceMappingURL=useIntersectionObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIntersectionObserver.js","sources":["../../../../../src/core/hooks/useIntersectionObserver.ts"],"sourcesContent":["import { MutableRefObject, useCallback, useEffect, useRef } from 'react'\n\nconst defaultOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0.5,\n}\n\n/**\n * Type definition for the parameters used in the `useIntersectionObserver` hook.\n * @typedef {Object} UseIntersectionObserverType\n * @property {() => void} callback - Function to be called when the element intersects.\n * @property {() => void} [notIntersectingCallback] - Optional function to be called\n * when the element is not intersecting.\n * @property {Partial<{ root: HTMLElement | null; rootMargin: string; threshold: number }>} [options] -\n * Optional IntersectionObserver options.\n * @property {boolean} [granular] - Flag to determine if each entry should be checked individually.\n */\nexport type UseIntersectionObserverType = {\n callback: () => void\n notIntersectingCallback?: () => void\n options?: Partial<{\n root: HTMLElement | null\n rootMargin: string\n threshold: number\n }>\n granular?: boolean\n}\n\n/**\n * Default handler for intersection changes.\n * @param {IntersectionObserverEntry[]} entries - Array of intersection observer entries.\n * @param {() => void} callback - Function to be called when the element intersects.\n * @param {() => void} [notIntersectingCallback] - Optional function to be called when the element is not intersecting.\n * @param {boolean} [granular=false] - Flag to determine if each entry should be checked individually.\n */\nconst defaultIntersectionHandler = (\n entries: IntersectionObserverEntry[],\n callback: UseIntersectionObserverType['callback'],\n notIntersectingCallback: UseIntersectionObserverType['notIntersectingCallback'],\n granular = false,\n): void => {\n if (granular) {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n callback()\n } else {\n notIntersectingCallback?.()\n }\n })\n } else {\n // eslint-disable-next-line no-lonely-if\n if (entries[0].isIntersecting) {\n callback()\n } else {\n notIntersectingCallback?.()\n }\n }\n}\n\n/**\n * Custom hook to observe the intersection of an element.\n * @param {UseIntersectionObserverType} params - The parameters for the intersection observer.\n * @returns {MutableRefObject<T | null>} Ref object for the observed element.\n */\nexport const useIntersectionObserver = <T extends Element = Element>({\n callback, notIntersectingCallback, options = {}, granular,\n}: UseIntersectionObserverType): MutableRefObject<T | null> => {\n const elementRef = useRef<T | null>(null)\n\n const observerRef = useRef<IntersectionObserver>()\n\n // entries: IntersectionObserverEntry[], observer: IntersectionObserver)\n const intersectionHandler = useCallback((entries: IntersectionObserverEntry[]) => {\n defaultIntersectionHandler(entries, callback, notIntersectingCallback, granular)\n }, [callback, granular, notIntersectingCallback])\n\n useEffect(() => {\n observerRef.current?.disconnect()\n\n const observeElement = elementRef.current\n\n observerRef.current = new IntersectionObserver(intersectionHandler, { ...defaultOptions, ...options })\n\n if (observeElement) {\n observerRef.current.observe(observeElement)\n }\n\n return (): void => {\n observerRef.current?.disconnect()\n }\n }, [intersectionHandler, options])\n\n return elementRef\n}\n"],"names":["defaultOptions","root","rootMargin","threshold","_ref","callback","notIntersectingCallback","options","granular","elementRef","useRef","observerRef","intersectionHandler","useCallback","entries","arguments","length","undefined","forEach","entry","isIntersecting","defaultIntersectionHandler","useEffect","current","disconnect","observeElement","IntersectionObserver","observe"],"mappings":"oCAEA,MAAMA,EAAiB,CACrBC,KAAM,KACNC,WAAY,MACZC,UAAW,oCA4D0BC,IAEwB,IAFMC,SACnEA,EAAQC,wBAAEA,EAAuBC,QAAEA,EAAU,CAAE,EAAAC,SAAEA,GACrBJ,EAC5B,MAAMK,EAAaC,SAAiB,MAE9BC,EAAcD,EAAAA,SAGdE,EAAsBC,EAAWA,aAAEC,KArCR,SACjCA,EACAT,EACAC,GACQS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAGND,EAAQI,SAASC,IACXA,EAAMC,eACRf,IAEAC,KACF,IAIEQ,EAAQ,GAAGM,eACbf,IAEAC,KAGN,CAgBIe,CAA2BP,EAAST,EAAUC,EAAyBE,EAAS,GAC/E,CAACH,EAAUG,EAAUF,IAkBxB,OAhBAgB,EAAAA,WAAU,KACRX,EAAYY,SAASC,aAErB,MAAMC,EAAiBhB,EAAWc,QAQlC,OANAZ,EAAYY,QAAU,IAAIG,qBAAqBd,EAAqB,IAAKZ,KAAmBO,IAExFkB,GACFd,EAAYY,QAAQI,QAAQF,GAGvB,KACLd,EAAYY,SAASC,YAAY,CAClC,GACA,CAACZ,EAAqBL,IAElBE,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOutsideClick.js","sources":["../../../../../src/core/hooks/useOutsideClick.ts"],"sourcesContent":["import { useEffect, useCallback } from 'react'\n\nimport { EventName } from '../constants/ui.constants'\nimport { handleClickOutside as defaultHandleClickOutside } from '../ui/utils/clickOutside'\n\ntype Element = HTMLElement | null | (() => HTMLElement)\ntype CallbackFunction = (target: HTMLElement | null) => void\n\nexport function useOutsideClick(\n element: Element,\n callback?: CallbackFunction,\n handleClickOutside = defaultHandleClickOutside(element, callback),\n): () => void {\n const unsubscriber = useCallback(\n () => document.removeEventListener(EventName.Click, handleClickOutside), [handleClickOutside],\n )\n\n useEffect(() => {\n unsubscriber()\n document.addEventListener(EventName.Click, handleClickOutside)\n\n return unsubscriber\n }, [element, handleClickOutside, unsubscriber])\n\n return unsubscriber\n}\n\nexport function outsideClickHandler(\n element: Element,\n callback?: CallbackFunction,\n handleClickOutside = defaultHandleClickOutside(element, callback),\n): () => void {\n const unsubscriber = (): void => document.removeEventListener(EventName.Click, handleClickOutside)\n\n document.addEventListener(EventName.Click, handleClickOutside)\n\n return unsubscriber\n}\n"],"names":["element","callback","handleClickOutside","arguments","length","undefined","defaultHandleClickOutside","document","addEventListener","EventName","Click","unsubscriber","removeEventListener","useCallback","useEffect"],"mappings":"mJA2BO,SACLA,EACAC,GAEY,IADZC,EAAkBC,UAAAC,eAAAC,IAAAF,UAAA,GAAAA,UAAGG,GAAAA,EAAyBJ,mBAACF,EAASC,GAMxD,OAFAM,SAASC,iBAAiBC,EAAAA,UAAUC,MAAOR,GAFtBS,IAAYJ,SAASK,oBAAoBH,EAAAA,UAAUC,MAAOR,EAKjF,0BA7BO,SACLF,EACAC,GAEY,IADZC,EAAkBC,UAAAC,eAAAC,IAAAF,UAAA,GAAAA,UAAGG,GAAAA,EAAyBJ,mBAACF,EAASC,GAExD,MAAMU,EAAeE,EAAAA,aACnB,IAAMN,SAASK,oBAAoBH,YAAUC,MAAOR,IAAqB,CAACA,IAU5E,OAPAY,EAAAA,WAAU,KACRH,IACAJ,SAASC,iBAAiBC,EAAAA,UAAUC,MAAOR,GAEpCS,IACN,CAACX,EAASE,EAAoBS,IAE1BA,CACT"}
1
+ {"version":3,"file":"useOutsideClick.js","sources":["../../../../../src/core/hooks/useOutsideClick.ts"],"sourcesContent":["import { useEffect, useCallback } from 'react'\n\nimport { EventName } from '../constants/ui.constants'\nimport { handleClickOutside as defaultHandleClickOutside } from '../ui/utils/clickOutside'\n\ntype Element = HTMLElement | null | (() => HTMLElement)\ntype CallbackFunction = (target: HTMLElement | null) => void\n\n/**\n * Custom hook to handle clicks outside a specified element.\n * @param {Element} element - The element to detect outside clicks for.\n * @param {CallbackFunction} [callback] - Optional callback function to execute when an outside click is detected.\n * @param {Function} [handleClickOutside=defaultHandleClickOutside] - Optional custom function to handle outside clicks.\n * @returns {() => void} Function to unsubscribe the event listener.\n */\nexport function useOutsideClick(\n element: Element,\n callback?: CallbackFunction,\n handleClickOutside = defaultHandleClickOutside(element, callback),\n): () => void {\n const unsubscriber = useCallback(\n () => document.removeEventListener(EventName.Click, handleClickOutside), [handleClickOutside],\n )\n\n useEffect(() => {\n unsubscriber()\n document.addEventListener(EventName.Click, handleClickOutside)\n\n return unsubscriber\n }, [element, handleClickOutside, unsubscriber])\n\n return unsubscriber\n}\n\n/**\n * Function to handle clicks outside a specified element.\n * @param {Element} element - The element to detect outside clicks for.\n * @param {CallbackFunction} [callback] - Optional callback function to execute when an outside click is detected.\n * @param {Function} [handleClickOutside=defaultHandleClickOutside] - Optional custom function to handle outside clicks.\n * @returns {() => void} Function to unsubscribe the event listener.\n */\nexport function outsideClickHandler(\n element: Element,\n callback?: CallbackFunction,\n handleClickOutside = defaultHandleClickOutside(element, callback),\n): () => void {\n const unsubscriber = (): void => document.removeEventListener(EventName.Click, handleClickOutside)\n\n document.addEventListener(EventName.Click, handleClickOutside)\n\n return unsubscriber\n}\n"],"names":["element","callback","handleClickOutside","arguments","length","undefined","defaultHandleClickOutside","document","addEventListener","EventName","Click","unsubscriber","removeEventListener","useCallback","useEffect"],"mappings":"mJAyCO,SACLA,EACAC,GAEY,IADZC,EAAkBC,UAAAC,eAAAC,IAAAF,UAAA,GAAAA,UAAGG,GAAAA,EAAyBJ,mBAACF,EAASC,GAMxD,OAFAM,SAASC,iBAAiBC,EAAAA,UAAUC,MAAOR,GAFtBS,IAAYJ,SAASK,oBAAoBH,EAAAA,UAAUC,MAAOR,EAKjF,0BApCO,SACLF,EACAC,GAEY,IADZC,EAAkBC,UAAAC,eAAAC,IAAAF,UAAA,GAAAA,UAAGG,GAAAA,EAAyBJ,mBAACF,EAASC,GAExD,MAAMU,EAAeE,EAAAA,aACnB,IAAMN,SAASK,oBAAoBH,YAAUC,MAAOR,IAAqB,CAACA,IAU5E,OAPAY,EAAAA,WAAU,KACRH,IACAJ,SAASC,iBAAiBC,EAAAA,UAAUC,MAAOR,GAEpCS,IACN,CAACX,EAASE,EAAoBS,IAE1BA,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useParseProps.js","sources":["../../../../../src/core/hooks/useParseProps.ts"],"sourcesContent":["import { useMemo } from 'react'\n\nimport { parseProps } from '../utils/helpers/ui'\n\n\nexport const useParseProps = (props: Record<string, unknown>): ReturnType<typeof parseProps> => {\n const propsCategories = useMemo(() => parseProps(props), [props])\n\n return propsCategories\n}\n"],"names":["props","useMemo","parseProps"],"mappings":"8FAK8BA,GACJC,EAAAA,SAAQ,IAAMC,EAAAA,WAAWF,IAAQ,CAACA"}
1
+ {"version":3,"file":"useParseProps.js","sources":["../../../../../src/core/hooks/useParseProps.ts"],"sourcesContent":["import { useMemo } from 'react'\n\nimport { parseProps } from '../utils/helpers/ui'\n\n/**\n * Custom hook to parse properties using the `parseProps` utility function.\n * @param {Record<string, unknown>} props - The properties to be parsed.\n * @returns {ReturnType<typeof parseProps>} The parsed properties categorized by the `parseProps` function.\n */\nexport const useParseProps = (props: Record<string, unknown>): ReturnType<typeof parseProps> => {\n const propsCategories = useMemo(() => parseProps(props), [props])\n\n return propsCategories\n}\n"],"names":["props","useMemo","parseProps"],"mappings":"8FAS8BA,GACJC,EAAAA,SAAQ,IAAMC,EAAAA,WAAWF,IAAQ,CAACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useResize.js","sources":["../../../../../src/core/hooks/useResize.ts"],"sourcesContent":["import { MutableRefObject, useLayoutEffect, useMemo, useState, useRef } from 'react'\nimport debounce from 'lodash-es/debounce'\n\nexport type WrapperSize = {width: undefined | number; height: undefined | number}\n\n\ntype Unobserver = () => (null | void)\n\nexport type UseResizeCallBack = (wrapperSize: WrapperSize) => void\n\n// eslint-disable-next-line default-param-last\nexport const useResize = (debounceDelay = 250, callBack?: UseResizeCallBack): [\n MutableRefObject<HTMLElement | null | undefined>, WrapperSize, Unobserver | undefined] => {\n const [containerSize, setContainerSize]\n = useState<WrapperSize>({ width: undefined, height: undefined })\n\n const lastResizeWidthRef = useRef<WrapperSize>({ width: 0, height: 0 })\n const containerRef: MutableRefObject<HTMLElement | undefined | null> = useRef<HTMLElement | undefined | null>()\n const unobserverRef = useRef<Unobserver>()\n\n const debouncedResizeWrapper = useMemo(() => debounce((entries) => {\n const newResizeWidth = entries[0].contentRect.width\n const newResizeHeight = entries[0].contentRect.height\n\n if (lastResizeWidthRef.current?.width === newResizeWidth\n && lastResizeWidthRef.current?.height === newResizeHeight) {\n return\n }\n lastResizeWidthRef.current = { width: newResizeWidth, height: newResizeHeight }\n\n // eslint-disable-next-line semi-style\n ;(callBack || setContainerSize)({\n width: containerRef?.current?.clientWidth,\n height: containerRef?.current?.clientHeight,\n })\n }, debounceDelay), [callBack, debounceDelay])\n\n useLayoutEffect(() => {\n let resizeObserver: ResizeObserver\n let containerElement: HTMLElement\n\n if (containerRef?.current) {\n containerElement = containerRef?.current\n resizeObserver = new ResizeObserver(debouncedResizeWrapper)\n resizeObserver.observe(containerElement as Element)\n\n // eslint-disable-next-line semi-style\n ;(callBack || setContainerSize)({\n width: containerRef?.current?.clientWidth,\n height: containerRef?.current?.clientHeight,\n })\n }\n\n const unobserver = (): void => {\n resizeObserver?.unobserve?.(containerElement as Element)\n }\n\n // setUnobserver(unobserver)\n unobserverRef.current = unobserver\n\n return unobserver\n }, [debouncedResizeWrapper, containerRef, callBack])\n\n return [containerRef, containerSize, unobserverRef.current]\n}\n"],"names":["debounceDelay","arguments","length","undefined","callBack","containerSize","setContainerSize","useState","width","height","lastResizeWidthRef","useRef","containerRef","unobserverRef","debouncedResizeWrapper","useMemo","debounce","entries","newResizeWidth","contentRect","newResizeHeight","current","clientWidth","clientHeight","useLayoutEffect","resizeObserver","containerElement","ResizeObserver","observe","unobserver","unobserve"],"mappings":"+GAWyB,WACmE,IADlEA,EAAaC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAKG,EAA4BH,UAAAC,OAAAD,EAAAA,kBAAAE,EAEzE,MAAOE,EAAeC,GAClBC,WAAsB,CAAEC,WAAOL,EAAWM,YAAQN,IAEhDO,EAAqBC,EAAAA,OAAoB,CAAEH,MAAO,EAAGC,OAAQ,IAC7DG,EAAiED,EAAAA,SACjEE,EAAgBF,EAAAA,SAEhBG,EAAyBC,EAAAA,SAAQ,IAAMC,EAAAA,SAAUC,IACrD,MAAMC,EAAiBD,EAAQ,GAAGE,YAAYX,MACxCY,EAAkBH,EAAQ,GAAGE,YAAYV,OAE3CC,EAAmBW,SAASb,QAAUU,GACrCR,EAAmBW,SAASZ,SAAWW,IAG5CV,EAAmBW,QAAU,CAAEb,MAAOU,EAAgBT,OAAQW,IAG5DhB,GAAYE,GAAkB,CAC9BE,MAAOI,GAAcS,SAASC,YAC9Bb,OAAQG,GAAcS,SAASE,eAC/B,GACDvB,IAAgB,CAACI,EAAUJ,IA4B9B,OA1BAwB,EAAAA,iBAAgB,KACd,IAAIC,EACAC,EAEAd,GAAcS,UAChBK,EAAmBd,GAAcS,QACjCI,EAAiB,IAAIE,eAAeb,GACpCW,EAAeG,QAAQF,IAGrBtB,GAAYE,GAAkB,CAC9BE,MAAOI,GAAcS,SAASC,YAC9Bb,OAAQG,GAAcS,SAASE,gBAInC,MAAMM,EAAaA,KACjBJ,GAAgBK,YAAYJ,EAA4B,EAM1D,OAFAb,EAAcQ,QAAUQ,EAEjBA,CAAU,GAChB,CAACf,EAAwBF,EAAcR,IAEnC,CAACQ,EAAcP,EAAeQ,EAAcQ,QACrD"}
1
+ {"version":3,"file":"useResize.js","sources":["../../../../../src/core/hooks/useResize.ts"],"sourcesContent":["import { MutableRefObject, useLayoutEffect, useMemo, useState, useRef } from 'react'\nimport debounce from 'lodash-es/debounce'\n\n/**\n * Type definition for the size of the wrapper element.\n * @typedef {Object} WrapperSize\n * @property {undefined | number} width - The width of the wrapper element.\n * @property {undefined | number} height - The height of the wrapper element.\n */\nexport type WrapperSize = { width: undefined | number; height: undefined | number }\n\n/**\n * Type definition for the unobserver function.\n * @typedef {() => (null | void)} Unobserver\n */\ntype Unobserver = () => (null | void)\n\n/**\n * Type definition for the resize callback function.\n * @typedef {(wrapperSize: WrapperSize) => void} UseResizeCallBack\n */\nexport type UseResizeCallBack = (wrapperSize: WrapperSize) => void\n\n/**\n * Custom hook to observe the resize event of an HTML element\n * and execute a callback or update the state with the new size.\n * @param {number} [debounceDelay=250] - The delay in milliseconds for debouncing the resize event.\n * @param {UseResizeCallBack} [callBack] - Optional callback function to execute when the element is resized.\n * @returns {[MutableRefObject<HTMLElement | null | undefined>, WrapperSize, Unobserver | undefined]}\n * An array containing the ref object for the container element,\n * the current size of the container, and an unobserver function.\n */\n// eslint-disable-next-line default-param-last\nexport const useResize = (debounceDelay = 250, callBack?: UseResizeCallBack): [\n MutableRefObject<HTMLElement | null | undefined>, WrapperSize, Unobserver | undefined] => {\n const [containerSize, setContainerSize] = useState<WrapperSize>({ width: undefined, height: undefined })\n\n const lastResizeWidthRef = useRef<WrapperSize>({ width: 0, height: 0 })\n const containerRef: MutableRefObject<HTMLElement | undefined | null> = useRef<HTMLElement | undefined | null>()\n const unobserverRef = useRef<Unobserver>()\n\n const debouncedResizeWrapper = useMemo(() => debounce((entries) => {\n const newResizeWidth = entries[0].contentRect.width\n const newResizeHeight = entries[0].contentRect.height\n\n if (lastResizeWidthRef.current?.width === newResizeWidth\n && lastResizeWidthRef.current?.height === newResizeHeight) {\n return\n }\n lastResizeWidthRef.current = { width: newResizeWidth, height: newResizeHeight }\n\n // eslint-disable-next-line semi-style\n ;(callBack || setContainerSize)({\n width: containerRef?.current?.clientWidth,\n height: containerRef?.current?.clientHeight,\n })\n }, debounceDelay), [callBack, debounceDelay])\n\n useLayoutEffect(() => {\n let resizeObserver: ResizeObserver\n let containerElement: HTMLElement\n\n if (containerRef?.current) {\n containerElement = containerRef?.current\n resizeObserver = new ResizeObserver(debouncedResizeWrapper)\n resizeObserver.observe(containerElement as Element)\n\n // eslint-disable-next-line semi-style\n ;(callBack || setContainerSize)({\n width: containerRef?.current?.clientWidth,\n height: containerRef?.current?.clientHeight,\n })\n }\n\n const unobserver = (): void => {\n resizeObserver?.unobserve?.(containerElement as Element)\n }\n\n // setUnobserver(unobserver)\n unobserverRef.current = unobserver\n\n return unobserver\n }, [debouncedResizeWrapper, containerRef, callBack])\n\n return [containerRef, containerSize, unobserverRef.current]\n}\n"],"names":["debounceDelay","arguments","length","undefined","callBack","containerSize","setContainerSize","useState","width","height","lastResizeWidthRef","useRef","containerRef","unobserverRef","debouncedResizeWrapper","useMemo","debounce","entries","newResizeWidth","contentRect","newResizeHeight","current","clientWidth","clientHeight","useLayoutEffect","resizeObserver","containerElement","ResizeObserver","observe","unobserver","unobserve"],"mappings":"+GAiCyB,WACmE,IADlEA,EAAaC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAKG,EAA4BH,UAAAC,OAAAD,EAAAA,kBAAAE,EAEzE,MAAOE,EAAeC,GAAoBC,WAAsB,CAAEC,WAAOL,EAAWM,YAAQN,IAEtFO,EAAqBC,EAAAA,OAAoB,CAAEH,MAAO,EAAGC,OAAQ,IAC7DG,EAAiED,EAAAA,SACjEE,EAAgBF,EAAAA,SAEhBG,EAAyBC,EAAAA,SAAQ,IAAMC,EAAAA,SAAUC,IACrD,MAAMC,EAAiBD,EAAQ,GAAGE,YAAYX,MACxCY,EAAkBH,EAAQ,GAAGE,YAAYV,OAE3CC,EAAmBW,SAASb,QAAUU,GACrCR,EAAmBW,SAASZ,SAAWW,IAG5CV,EAAmBW,QAAU,CAAEb,MAAOU,EAAgBT,OAAQW,IAG5DhB,GAAYE,GAAkB,CAC9BE,MAAOI,GAAcS,SAASC,YAC9Bb,OAAQG,GAAcS,SAASE,eAC/B,GACDvB,IAAgB,CAACI,EAAUJ,IA4B9B,OA1BAwB,EAAAA,iBAAgB,KACd,IAAIC,EACAC,EAEAd,GAAcS,UAChBK,EAAmBd,GAAcS,QACjCI,EAAiB,IAAIE,eAAeb,GACpCW,EAAeG,QAAQF,IAGrBtB,GAAYE,GAAkB,CAC9BE,MAAOI,GAAcS,SAASC,YAC9Bb,OAAQG,GAAcS,SAASE,gBAInC,MAAMM,EAAaA,KACjBJ,GAAgBK,YAAYJ,EAA4B,EAM1D,OAFAb,EAAcQ,QAAUQ,EAEjBA,CAAU,GAChB,CAACf,EAAwBF,EAAcR,IAEnC,CAACQ,EAAcP,EAAeQ,EAAcQ,QACrD"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react");const t="change",o=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>document.body,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;const s=t=>{const s=e();r?.(t,s),o?.(t)},c=e=>{s(e.matches)},d=e=>{s(!e.matches)},a=window.matchMedia("(prefers-color-scheme: dark)");try{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener(t,c),window.matchMedia("(prefers-color-scheme: light)").removeEventListener(t,d)}catch(e){}return s(a?.matches),window.matchMedia("(prefers-color-scheme: dark)").addEventListener(t,c),window.matchMedia("(prefers-color-scheme: light)").addEventListener(t,d),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener(t,c),window.matchMedia("(prefers-color-scheme: light)").removeEventListener(t,d)}};let s={dark:"theme-dark",light:"theme-light"};const r=function(e,t){let o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const r=e?s.light:s.dark,c=e?s.dark:s.light;t&&(t.classList.remove(r),t.classList.remove(c),t.classList.add(c)),"undefined"!=typeof document&&(document.querySelectorAll(`.${r}`).forEach((e=>{e.classList.add(`.${c}`),e.classList.remove(`.${r}`)})),o&&(document.querySelectorAll(".shadow-div").forEach((e=>{e.shadowRoot?.querySelector(`.${r}`)?.classList.add(c),e.shadowRoot?.querySelector(`.${r}`)?.classList.remove(r)})),document.querySelectorAll("esmf-wrapper").forEach((e=>{e.shadowRoot?.querySelector(`.${r}`)?.classList.add(c),e.shadowRoot?.querySelector(`.${r}`)?.classList.remove(r);const t=e.shadowRoot?.childNodes[0];t&&(t.classList.add(c),t.classList.remove(r))}))))};exports.getBaseThemes=()=>s,exports.observeThemePreference=o,exports.setTHemeClassNames=e=>{s=e},exports.switchColorTheme=r,exports.updateColorTheme=(e,t)=>{let o=e||!1;"undefined"!=typeof document&&void 0===e&&(o=document.body.classList.contains(s.dark)),r(o,t||document.body)},exports.useThemePreference=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>document.body,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;e.useEffect((()=>o(t,s)),[t,s])};
1
+ "use strict";var e=require("react");const t="change",o=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>document.body,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;const s=t=>{const s=e();r?.(t,s),o?.(t)},c=e=>{s(e.matches)},d=e=>{s(!e.matches)},a=window.matchMedia("(prefers-color-scheme: dark)");try{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener(t,c),window.matchMedia("(prefers-color-scheme: light)").removeEventListener(t,d)}catch(e){}return s(a?.matches),window.matchMedia("(prefers-color-scheme: dark)").addEventListener(t,c),window.matchMedia("(prefers-color-scheme: light)").addEventListener(t,d),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener(t,c),window.matchMedia("(prefers-color-scheme: light)").removeEventListener(t,d)}};let s={dark:"theme-dark",light:"theme-light"};const r=function(e,t){let o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const r=e?s.light:s.dark,c=e?s.dark:s.light;t&&(t.classList.remove(r),t.classList.remove(c),t.classList.add(c)),"undefined"!=typeof document&&(document.querySelectorAll(`.${r}`).forEach((e=>{e.classList.add(`.${c}`),e.classList.remove(`.${r}`)})),o&&(document.querySelectorAll(".shadow-div").forEach((e=>{e.shadowRoot?.querySelector(`.${r}`)?.classList.add(c),e.shadowRoot?.querySelector(`.${r}`)?.classList.remove(r)})),document.querySelectorAll("esmf-wrapper").forEach((e=>{e.shadowRoot?.querySelector(`.${r}`)?.classList.add(c),e.shadowRoot?.querySelector(`.${r}`)?.classList.remove(r);const t=e.shadowRoot?.childNodes[0];t&&(t.classList.add(c),t.classList.remove(r))}))))};exports.getBaseThemes=()=>s,exports.observeThemePreference=o,exports.setThemeClassNames=e=>{s=e},exports.switchColorTheme=r,exports.updateColorTheme=(e,t)=>{let o=e||!1;"undefined"!=typeof document&&void 0===e&&(o=document.body.classList.contains(s.dark)),r(o,t||document.body)},exports.useThemePreference=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>document.body,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;e.useEffect((()=>o(t,s)),[t,s])};
2
2
  //# sourceMappingURL=useThemePreference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useThemePreference.js","sources":["../../../../../src/core/hooks/useThemePreference.ts"],"sourcesContent":["import { useEffect } from 'react'\n\n\nconst windowMatchMediaChangeEventType = 'change'\n\nexport const observeThemePreference = (\n getHtmlElement: () => HTMLElement = (): HTMLElement => document.body,\n switchCallback: (isDark: boolean) => void = (isDark: boolean): boolean => isDark,\n): () => void => {\n const switchColorThemeHandler = (isDark: boolean): void => {\n const htmlElement = getHtmlElement()\n\n switchColorTheme?.(isDark, htmlElement)\n switchCallback?.(isDark)\n }\n\n const changeDarkColorThemeHandler = (event: MediaQueryListEvent): void => {\n switchColorThemeHandler(event.matches)\n }\n\n const changeLightColorThemeHandler = (event: MediaQueryListEvent): void => {\n switchColorThemeHandler(!event.matches)\n }\n\n const isDark = window.matchMedia('(prefers-color-scheme: dark)')\n\n try {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener(\n windowMatchMediaChangeEventType, changeDarkColorThemeHandler,\n )\n window.matchMedia('(prefers-color-scheme: light)').removeEventListener(\n windowMatchMediaChangeEventType, changeLightColorThemeHandler,\n )\n } catch (error) {\n console.error(`Error::observeThemePreference::removeEventListener: ${error}`)\n }\n\n switchColorThemeHandler(isDark?.matches)\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener(\n windowMatchMediaChangeEventType, changeDarkColorThemeHandler,\n )\n window.matchMedia('(prefers-color-scheme: light)').addEventListener(\n windowMatchMediaChangeEventType, changeLightColorThemeHandler,\n )\n\n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener(\n windowMatchMediaChangeEventType, changeDarkColorThemeHandler,\n )\n window.matchMedia('(prefers-color-scheme: light)').removeEventListener(\n windowMatchMediaChangeEventType, changeLightColorThemeHandler,\n )\n }\n}\n\nexport const useThemePreference = (\n getHtmlElement: () => HTMLElement = (): HTMLElement => document.body,\n switchCallback: (isDark: boolean) => void = (isDark: boolean): boolean => isDark,\n): void => {\n useEffect(() => observeThemePreference(getHtmlElement, switchCallback), [getHtmlElement, switchCallback])\n}\n\ntype ThemeMap = {\n dark: string\n light: string\n}\n\nlet baseThemes: ThemeMap = {\n dark: 'theme-dark',\n light: 'theme-light',\n}\n\n\nexport const getBaseThemes = (): ThemeMap => baseThemes\n\nexport const setTHemeClassNames = (themes: ThemeMap): void => {\n baseThemes = themes\n}\n\nexport const switchColorTheme = (isDark: boolean, htmlElement?: HTMLElement, findShadows = true): void => {\n const oldClass = isDark ? baseThemes.light : baseThemes.dark\n const newClass = isDark ? baseThemes.dark : baseThemes.light\n\n if (htmlElement) {\n htmlElement.classList.remove(oldClass)\n htmlElement.classList.remove(newClass)\n htmlElement.classList.add(newClass)\n }\n\n if (typeof document !== 'undefined') {\n document.querySelectorAll(`.${oldClass}`).forEach((element) => {\n element.classList.add(`.${newClass}`)\n element.classList.remove(`.${oldClass}`)\n })\n\n if (findShadows) {\n document.querySelectorAll('.shadow-div').forEach((element) => {\n element.shadowRoot?.querySelector(`.${oldClass}`)?.classList.add(newClass)\n element.shadowRoot?.querySelector(`.${oldClass}`)?.classList.remove(oldClass)\n })\n\n document.querySelectorAll('esmf-wrapper').forEach((element) => {\n element.shadowRoot?.querySelector(`.${oldClass}`)?.classList.add(newClass)\n element.shadowRoot?.querySelector(`.${oldClass}`)?.classList.remove(oldClass)\n\n const firstChild: HTMLElement = element.shadowRoot?.childNodes[0] as HTMLElement\n\n if (firstChild) {\n firstChild.classList.add(newClass)\n firstChild.classList.remove(oldClass)\n }\n })\n }\n }\n}\n\nexport const updateColorTheme = (isDark?: boolean, htmlElement?: HTMLElement): void => {\n let resolvedIsDark: boolean = isDark || false\n\n if (typeof document !== 'undefined' && isDark === undefined) {\n resolvedIsDark = document.body.classList.contains(baseThemes.dark)\n }\n switchColorTheme(resolvedIsDark, htmlElement || document.body)\n}\n"],"names":["windowMatchMediaChangeEventType","observeThemePreference","getHtmlElement","arguments","length","undefined","document","body","switchCallback","isDark","switchColorThemeHandler","htmlElement","switchColorTheme","changeDarkColorThemeHandler","event","matches","changeLightColorThemeHandler","window","matchMedia","removeEventListener","error","addEventListener","baseThemes","dark","light","getBaseThemes","findShadows","oldClass","newClass","classList","remove","add","querySelectorAll","forEach","element","shadowRoot","querySelector","firstChild","childNodes","themes","updateColorTheme","resolvedIsDark","contains","useEffect"],"mappings":"oCAGA,MAAMA,EAAkC,SAE3BC,EAAyB,WAGrB,IAFfC,EAAiCC,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAA,GAAG,IAAmBG,SAASC,KAChEC,EAAyCL,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAIM,GAAAA,GAA6BA,EAE1E,MAAMC,EAA2BD,IAC/B,MAAME,EAAcT,IAEpBU,IAAmBH,EAAQE,GAC3BH,IAAiBC,EAAO,EAGpBI,EAA+BC,IACnCJ,EAAwBI,EAAMC,QAAQ,EAGlCC,EAAgCF,IACpCJ,GAAyBI,EAAMC,QAAQ,EAGnCN,EAASQ,OAAOC,WAAW,gCAEjC,IACED,OAAOC,WAAW,gCAAgCC,oBAChDnB,EAAiCa,GAEnCI,OAAOC,WAAW,iCAAiCC,oBACjDnB,EAAiCgB,EAErC,CAAE,MAAOI,GAET,CAUA,OARAV,EAAwBD,GAAQM,SAChCE,OAAOC,WAAW,gCAAgCG,iBAChDrB,EAAiCa,GAEnCI,OAAOC,WAAW,iCAAiCG,iBACjDrB,EAAiCgB,GAG5B,KACLC,OAAOC,WAAW,gCAAgCC,oBAChDnB,EAAiCa,GAEnCI,OAAOC,WAAW,iCAAiCC,oBACjDnB,EAAiCgB,EAClC,CAEL,EAcA,IAAIM,EAAuB,CACzBC,KAAM,aACNC,MAAO,eAIIC,MAMAb,EAAmB,SAACH,EAAiBE,GAAwD,IAA7Be,IAAWvB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACtF,MAAMwB,EAAWlB,EAASa,EAAWE,MAAQF,EAAWC,KAClDK,EAAWnB,EAASa,EAAWC,KAAOD,EAAWE,MAEnDb,IACFA,EAAYkB,UAAUC,OAAOH,GAC7BhB,EAAYkB,UAAUC,OAAOF,GAC7BjB,EAAYkB,UAAUE,IAAIH,IAGJ,oBAAbtB,WACTA,SAAS0B,iBAAiB,IAAIL,KAAYM,SAASC,IACjDA,EAAQL,UAAUE,IAAI,IAAIH,KAC1BM,EAAQL,UAAUC,OAAO,IAAIH,IAAW,IAGtCD,IACFpB,SAAS0B,iBAAiB,eAAeC,SAASC,IAChDA,EAAQC,YAAYC,cAAc,IAAIT,MAAaE,UAAUE,IAAIH,GACjEM,EAAQC,YAAYC,cAAc,IAAIT,MAAaE,UAAUC,OAAOH,EAAS,IAG/ErB,SAAS0B,iBAAiB,gBAAgBC,SAASC,IACjDA,EAAQC,YAAYC,cAAc,IAAIT,MAAaE,UAAUE,IAAIH,GACjEM,EAAQC,YAAYC,cAAc,IAAIT,MAAaE,UAAUC,OAAOH,GAEpE,MAAMU,EAA0BH,EAAQC,YAAYG,WAAW,GAE3DD,IACFA,EAAWR,UAAUE,IAAIH,GACzBS,EAAWR,UAAUC,OAAOH,GAC9B,KAIR,wBAzC6BF,IAAgBH,8DAEViB,IACjCjB,EAAaiB,CAAM,sDAwCWC,CAAC/B,EAAkBE,KACjD,IAAI8B,EAA0BhC,IAAU,EAEhB,oBAAbH,eAAuCD,IAAXI,IACrCgC,EAAiBnC,SAASC,KAAKsB,UAAUa,SAASpB,EAAWC,OAE/DX,EAAiB6B,EAAgB9B,GAAeL,SAASC,KAAK,6BAnE9B,WAGvB,IAFTL,EAAiCC,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAA,GAAG,IAAmBG,SAASC,KAChEC,EAAyCL,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAIM,GAAAA,GAA6BA,EAE1EkC,aAAU,IAAM1C,EAAuBC,EAAgBM,IAAiB,CAACN,EAAgBM,GAC3F"}
1
+ {"version":3,"file":"useThemePreference.js","sources":["../../../../../src/core/hooks/useThemePreference.ts"],"sourcesContent":["import { useEffect } from 'react'\n\n\nconst windowMatchMediaChangeEventType = 'change'\n\n/**\n * Observes the user's theme preference and applies the appropriate theme.\n * @param {() => HTMLElement} [getHtmlElement] - Function to get the HTML element to which the theme will be applied.\n * @param {(isDark: boolean) => void} [switchCallback] - Callback function to execute when the theme changes.\n * @returns {() => void} Function to stop observing the theme preference.\n */\nexport const observeThemePreference = (\n getHtmlElement: () => HTMLElement = (): HTMLElement => document.body,\n switchCallback: (isDark: boolean) => void = (isDark: boolean): boolean => isDark,\n): () => void => {\n const switchColorThemeHandler = (isDark: boolean): void => {\n const htmlElement = getHtmlElement()\n\n switchColorTheme?.(isDark, htmlElement)\n switchCallback?.(isDark)\n }\n\n const changeDarkColorThemeHandler = (event: MediaQueryListEvent): void => {\n switchColorThemeHandler(event.matches)\n }\n\n const changeLightColorThemeHandler = (event: MediaQueryListEvent): void => {\n switchColorThemeHandler(!event.matches)\n }\n\n const isDark = window.matchMedia('(prefers-color-scheme: dark)')\n\n try {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener(\n windowMatchMediaChangeEventType, changeDarkColorThemeHandler,\n )\n window.matchMedia('(prefers-color-scheme: light)').removeEventListener(\n windowMatchMediaChangeEventType, changeLightColorThemeHandler,\n )\n } catch (error) {\n console.error(`Error::observeThemePreference::removeEventListener: ${error}`)\n }\n\n switchColorThemeHandler(isDark?.matches)\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener(\n windowMatchMediaChangeEventType, changeDarkColorThemeHandler,\n )\n window.matchMedia('(prefers-color-scheme: light)').addEventListener(\n windowMatchMediaChangeEventType, changeLightColorThemeHandler,\n )\n\n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener(\n windowMatchMediaChangeEventType, changeDarkColorThemeHandler,\n )\n window.matchMedia('(prefers-color-scheme: light)').removeEventListener(\n windowMatchMediaChangeEventType, changeLightColorThemeHandler,\n )\n }\n}\n\n/**\n * Custom hook to use theme preference in a React component.\n * @param {() => HTMLElement} [getHtmlElement] - Function to get the HTML element to which the theme will be applied.\n * @param {(isDark: boolean) => void} [switchCallback] - Callback function to execute when the theme changes.\n */\nexport const useThemePreference = (\n getHtmlElement: () => HTMLElement = (): HTMLElement => document.body,\n switchCallback: (isDark: boolean) => void = (isDark: boolean): boolean => isDark,\n): void => {\n useEffect(() => observeThemePreference(getHtmlElement, switchCallback), [getHtmlElement, switchCallback])\n}\n\n/**\n * Type definition for theme map.\n * @typedef {Object} ThemeMap\n * @property {string} dark - CSS class for the dark theme.\n * @property {string} light - CSS class for the light theme.\n */\ntype ThemeMap = {\n dark: string\n light: string\n}\n\nlet baseThemes: ThemeMap = {\n dark: 'theme-dark',\n light: 'theme-light',\n}\n\n/**\n * Gets the base themes.\n * @returns {ThemeMap} The current base themes.\n */\nexport const getBaseThemes = (): ThemeMap => baseThemes\n\n/**\n * Sets the base theme class names.\n * @param {ThemeMap} themes - Object containing the CSS classes for dark and light themes.\n */\nexport const setThemeClassNames = (themes: ThemeMap): void => {\n baseThemes = themes\n}\n\n/**\n * Switches the color theme of the document.\n * @param {boolean} isDark - Flag to determine if the dark theme should be applied.\n * @param {HTMLElement} [htmlElement] - The HTML element to which the theme will be applied.\n * @param {boolean} [findShadows=true] - Flag to determine if shadow DOM elements should also be themed.\n */\nexport const switchColorTheme = (isDark: boolean, htmlElement?: HTMLElement, findShadows = true): void => {\n const oldClass = isDark ? baseThemes.light : baseThemes.dark\n const newClass = isDark ? baseThemes.dark : baseThemes.light\n\n if (htmlElement) {\n htmlElement.classList.remove(oldClass)\n htmlElement.classList.remove(newClass)\n htmlElement.classList.add(newClass)\n }\n\n if (typeof document !== 'undefined') {\n document.querySelectorAll(`.${oldClass}`).forEach((element) => {\n element.classList.add(`.${newClass}`)\n element.classList.remove(`.${oldClass}`)\n })\n\n if (findShadows) {\n document.querySelectorAll('.shadow-div').forEach((element) => {\n element.shadowRoot?.querySelector(`.${oldClass}`)?.classList.add(newClass)\n element.shadowRoot?.querySelector(`.${oldClass}`)?.classList.remove(oldClass)\n })\n\n document.querySelectorAll('esmf-wrapper').forEach((element) => {\n element.shadowRoot?.querySelector(`.${oldClass}`)?.classList.add(newClass)\n element.shadowRoot?.querySelector(`.${oldClass}`)?.classList.remove(oldClass)\n\n const firstChild: HTMLElement = element.shadowRoot?.childNodes[0] as HTMLElement\n\n if (firstChild) {\n firstChild.classList.add(newClass)\n firstChild.classList.remove(oldClass)\n }\n })\n }\n }\n}\n\n/**\n * Updates the color theme of the document.\n * @param {boolean} [isDark] - Optional flag to determine if the dark theme should be applied.\n * @param {HTMLElement} [htmlElement] - The HTML element to which the theme will be applied.\n */\nexport const updateColorTheme = (isDark?: boolean, htmlElement?: HTMLElement): void => {\n let resolvedIsDark: boolean = isDark || false\n\n if (typeof document !== 'undefined' && isDark === undefined) {\n resolvedIsDark = document.body.classList.contains(baseThemes.dark)\n }\n switchColorTheme(resolvedIsDark, htmlElement || document.body)\n}\n"],"names":["windowMatchMediaChangeEventType","observeThemePreference","getHtmlElement","arguments","length","undefined","document","body","switchCallback","isDark","switchColorThemeHandler","htmlElement","switchColorTheme","changeDarkColorThemeHandler","event","matches","changeLightColorThemeHandler","window","matchMedia","removeEventListener","error","addEventListener","baseThemes","dark","light","getBaseThemes","findShadows","oldClass","newClass","classList","remove","add","querySelectorAll","forEach","element","shadowRoot","querySelector","firstChild","childNodes","themes","updateColorTheme","resolvedIsDark","contains","useEffect"],"mappings":"oCAGA,MAAMA,EAAkC,SAQ3BC,EAAyB,WAGrB,IAFfC,EAAiCC,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAA,GAAG,IAAmBG,SAASC,KAChEC,EAAyCL,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAIM,GAAAA,GAA6BA,EAE1E,MAAMC,EAA2BD,IAC/B,MAAME,EAAcT,IAEpBU,IAAmBH,EAAQE,GAC3BH,IAAiBC,EAAO,EAGpBI,EAA+BC,IACnCJ,EAAwBI,EAAMC,QAAQ,EAGlCC,EAAgCF,IACpCJ,GAAyBI,EAAMC,QAAQ,EAGnCN,EAASQ,OAAOC,WAAW,gCAEjC,IACED,OAAOC,WAAW,gCAAgCC,oBAChDnB,EAAiCa,GAEnCI,OAAOC,WAAW,iCAAiCC,oBACjDnB,EAAiCgB,EAErC,CAAE,MAAOI,GAET,CAUA,OARAV,EAAwBD,GAAQM,SAChCE,OAAOC,WAAW,gCAAgCG,iBAChDrB,EAAiCa,GAEnCI,OAAOC,WAAW,iCAAiCG,iBACjDrB,EAAiCgB,GAG5B,KACLC,OAAOC,WAAW,gCAAgCC,oBAChDnB,EAAiCa,GAEnCI,OAAOC,WAAW,iCAAiCC,oBACjDnB,EAAiCgB,EAClC,CAEL,EAyBA,IAAIM,EAAuB,CACzBC,KAAM,aACNC,MAAO,eAOIC,MAgBAb,EAAmB,SAACH,EAAiBE,GAAwD,IAA7Be,IAAWvB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACtF,MAAMwB,EAAWlB,EAASa,EAAWE,MAAQF,EAAWC,KAClDK,EAAWnB,EAASa,EAAWC,KAAOD,EAAWE,MAEnDb,IACFA,EAAYkB,UAAUC,OAAOH,GAC7BhB,EAAYkB,UAAUC,OAAOF,GAC7BjB,EAAYkB,UAAUE,IAAIH,IAGJ,oBAAbtB,WACTA,SAAS0B,iBAAiB,IAAIL,KAAYM,SAASC,IACjDA,EAAQL,UAAUE,IAAI,IAAIH,KAC1BM,EAAQL,UAAUC,OAAO,IAAIH,IAAW,IAGtCD,IACFpB,SAAS0B,iBAAiB,eAAeC,SAASC,IAChDA,EAAQC,YAAYC,cAAc,IAAIT,MAAaE,UAAUE,IAAIH,GACjEM,EAAQC,YAAYC,cAAc,IAAIT,MAAaE,UAAUC,OAAOH,EAAS,IAG/ErB,SAAS0B,iBAAiB,gBAAgBC,SAASC,IACjDA,EAAQC,YAAYC,cAAc,IAAIT,MAAaE,UAAUE,IAAIH,GACjEM,EAAQC,YAAYC,cAAc,IAAIT,MAAaE,UAAUC,OAAOH,GAEpE,MAAMU,EAA0BH,EAAQC,YAAYG,WAAW,GAE3DD,IACFA,EAAWR,UAAUE,IAAIH,GACzBS,EAAWR,UAAUC,OAAOH,GAC9B,KAIR,wBAnD6BF,IAAgBH,8DAMViB,IACjCjB,EAAaiB,CAAM,sDAmDWC,CAAC/B,EAAkBE,KACjD,IAAI8B,EAA0BhC,IAAU,EAEhB,oBAAbH,eAAuCD,IAAXI,IACrCgC,EAAiBnC,SAASC,KAAKsB,UAAUa,SAASpB,EAAWC,OAE/DX,EAAiB6B,EAAgB9B,GAAeL,SAASC,KAAK,6BA3F9B,WAGvB,IAFTL,EAAiCC,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAA,GAAG,IAAmBG,SAASC,KAChEC,EAAyCL,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAIM,GAAAA,GAA6BA,EAE1EkC,aAAU,IAAM1C,EAAuBC,EAAgBM,IAAiB,CAACN,EAAgBM,GAC3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"useToggle.js","sources":["../../../../../src/core/hooks/useToggle.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\n\n\nexport type useTogggleReturnType = [\n boolean,\n (value?: any | boolean) => void,\n (value?: any | boolean) => void,\n (value?: any | boolean) => void\n]\n\nexport const useToggle = (defaultValue: boolean, async = true): useTogggleReturnType => {\n const [toggled, setToggled] = useState(defaultValue)\n\n const handleToggle: (value?: any | boolean) => void = useCallback((value?: any | boolean) => {\n if (async) {\n setToggled((prevToggled) => (typeof (value) === 'boolean' ? value : !prevToggled))\n } else {\n setToggled((value !== undefined && value !== null ? value : !toggled))\n }\n }, [async, toggled, setToggled])\n\n const handleToggleTrue = useCallback(\n (forceValue?: boolean) => handleToggle(forceValue === undefined ? true : forceValue), [handleToggle],\n )\n\n const handleToggleFalse = useCallback(\n (forceValue?: boolean) => handleToggle(forceValue === undefined ? false : forceValue), [handleToggle],\n )\n\n return [toggled, handleToggle, handleToggleTrue, handleToggleFalse]\n}\n"],"names":["defaultValue","async","arguments","length","undefined","toggled","setToggled","useState","handleToggle","useCallback","value","prevToggled","handleToggleTrue","forceValue","handleToggleFalse"],"mappings":"sDAUyB,SAACA,GAA8D,IAAvCC,IAAKC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACpD,MAAOG,EAASC,GAAcC,EAAQA,SAACP,GAEjCQ,EAAgDC,EAAWA,aAAEC,IAE/DJ,EADEL,EACUU,GAAoC,kBAAXD,EAAuBA,GAASC,EAEzDD,QAAwCA,GAASL,EAC/D,GACC,CAACJ,EAAOI,EAASC,IAEdM,EAAmBH,EAAAA,aACtBI,GAAyBL,OAA4BJ,IAAfS,GAAkCA,IAAa,CAACL,IAGnFM,EAAoBL,EAAAA,aACvBI,GAAyBL,OAA4BJ,IAAfS,GAAmCA,IAAa,CAACL,IAG1F,MAAO,CAACH,EAASG,EAAcI,EAAkBE,EACnD"}
1
+ {"version":3,"file":"useToggle.js","sources":["../../../../../src/core/hooks/useToggle.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\n\n/**\n * Type definition for the return value of the `useToggle` hook.\n * @typedef {Array} useToggleReturnType\n * @property {boolean} 0 - The current toggled state.\n * @property {(value?: any | boolean) => void} 1 - Function to toggle the state.\n * @property {(value?: any | boolean) => void} 2 - Function to forcefully set the state to true.\n * @property {(value?: any | boolean) => void} 3 - Function to forcefully set the state to false.\n */\nexport type useToggleReturnType = [\n boolean,\n (value?: any | boolean) => void,\n (value?: any | boolean) => void,\n (value?: any | boolean) => void\n]\n\n/**\n * Custom hook to manage a boolean state with toggle functionality.\n * @param {boolean} defaultValue - The initial value of the toggled state.\n * @param {boolean} [async=true] - Flag to determine if the toggle should be asynchronous.\n * @returns {useToggleReturnType} An array containing the current state, a toggle function,\n * and functions to set the state to true or false.\n */\nexport const useToggle = (defaultValue: boolean, async = true): useToggleReturnType => {\n const [toggled, setToggled] = useState(defaultValue)\n\n /**\n * Function to toggle the state.\n * @param {any | boolean} [value] - Optional value to set the state. If not provided, the state will be toggled.\n */\n const handleToggle: (value?: any | boolean) => void = useCallback((value?: any | boolean) => {\n if (async) {\n setToggled((prevToggled) => (typeof (value) === 'boolean' ? value : !prevToggled))\n } else {\n setToggled((value !== undefined && value !== null ? value : !toggled))\n }\n }, [async, toggled, setToggled])\n\n /**\n * Function to set the state to true.\n * @param {boolean} [forceValue] - Optional value to forcefully set the state.\n * If not provided, the state will be set to true.\n */\n const handleToggleTrue = useCallback(\n (forceValue?: boolean) => handleToggle(forceValue === undefined ? true : forceValue), [handleToggle],\n )\n\n /**\n * Function to set the state to false.\n * @param {boolean} [forceValue] - Optional value to forcefully set the state.\n * If not provided, the state will be set to false.\n */\n const handleToggleFalse = useCallback(\n (forceValue?: boolean) => handleToggle(forceValue === undefined ? false : forceValue), [handleToggle],\n )\n\n return [toggled, handleToggle, handleToggleTrue, handleToggleFalse]\n}\n"],"names":["defaultValue","async","arguments","length","undefined","toggled","setToggled","useState","handleToggle","useCallback","value","prevToggled","handleToggleTrue","forceValue","handleToggleFalse"],"mappings":"sDAwByB,SAACA,GAA6D,IAAtCC,IAAKC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACpD,MAAOG,EAASC,GAAcC,EAAQA,SAACP,GAMjCQ,EAAgDC,EAAWA,aAAEC,IAE/DJ,EADEL,EACUU,GAAoC,kBAAXD,EAAuBA,GAASC,EAEzDD,QAAwCA,GAASL,EAC/D,GACC,CAACJ,EAAOI,EAASC,IAOdM,EAAmBH,EAAAA,aACtBI,GAAyBL,OAA4BJ,IAAfS,GAAkCA,IAAa,CAACL,IAQnFM,EAAoBL,EAAAA,aACvBI,GAAyBL,OAA4BJ,IAAfS,GAAmCA,IAAa,CAACL,IAG1F,MAAO,CAACH,EAASG,EAAcI,EAAkBE,EACnD"}
@@ -444,6 +444,11 @@
444
444
  .cui-theme-light .button-module_button__NDMQS {
445
445
  color: #090A0A;
446
446
  }
447
+ .textAndContent-module_textAndContent__X5P1n {
448
+ align-items: baseline;
449
+ flex-shrink: 1;
450
+ gap: 8px;
451
+ }
447
452
  .flowLayout-module_flowLayout__VHpnY {
448
453
  overflow: auto;
449
454
  }
@@ -0,0 +1,11 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,r,n,i,s,o,a,p=require("./gsap-core.js"),l={},u=180/Math.PI,f=Math.PI/180,c=Math.atan2,h=/([A-Z])/g,g=/(left|right|width|margin|padding|x)/i,d=/[\s,\(]\S/,m={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},x=function(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)},_=function(t,e){return e.set(e.t,e.p,1===t?e.e:Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)},y=function(t,e){return e.set(e.t,e.p,t?Math.round(1e4*(e.s+e.c*t))/1e4+e.u:e.b,e)},v=function(t,e){var r=e.s+e.c*t;e.set(e.t,e.p,~~(r+(r<0?-.5:.5))+e.u,e)},b=function(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)},w=function(t,e){return e.set(e.t,e.p,1!==t?e.b:e.e,e)},O=function(t,e,r){return t.style[e]=r},P=function(t,e,r){return t.style.setProperty(e,r)},M=function(t,e,r){return t._gsap[e]=r},C=function(t,e,r){return t._gsap.scaleX=t._gsap.scaleY=r},S=function(t,e,r,n,i){var s=t._gsap;s.scaleX=s.scaleY=r,s.renderTransform(i,s)},T=function(t,e,r,n,i){var s=t._gsap;s[e]=r,s.renderTransform(i,s)},B="transform",E=B+"Origin",A=function t(e,r){var n=this,i=this.target,s=i.style,o=i._gsap;if(e in l&&s){if(this.tfm=this.tfm||{},"transform"===e)return m.transform.split(",").forEach((function(e){return t.call(n,e,r)}));if(~(e=m[e]||e).indexOf(",")?e.split(",").forEach((function(t){return n.tfm[t]=H(i,t)})):this.tfm[e]=o.x?o[e]:H(i,e),e===E&&(this.tfm.zOrigin=o.zOrigin),this.props.indexOf(B)>=0)return;o.svg&&(this.svgo=i.getAttribute("data-svg-origin"),this.props.push(E,r,"")),e=B}(s||r)&&this.props.push(e,r,s[e])},F=function(t){t.translate&&(t.removeProperty("translate"),t.removeProperty("scale"),t.removeProperty("rotate"))},Y=function(){var t,e,r=this.props,n=this.target,i=n.style,s=n._gsap;for(t=0;t<r.length;t+=3)r[t+1]?n[r[t]]=r[t+2]:r[t+2]?i[r[t]]=r[t+2]:i.removeProperty("--"===r[t].substr(0,2)?r[t]:r[t].replace(h,"-$1").toLowerCase());if(this.tfm){for(e in this.tfm)s[e]=this.tfm[e];s.svg&&(s.renderTransform(),n.setAttribute("data-svg-origin",this.svgo||"")),(t=o())&&t.isStart||i[B]||(F(i),s.zOrigin&&i[E]&&(i[E]+=" "+s.zOrigin+"px",s.zOrigin=0,s.renderTransform()),s.uncache=1)}},z=function(t,e){var r={target:t,props:[],revert:Y,save:A};return t._gsap||p.gsap.core.getCache(t),e&&e.split(",").forEach((function(t){return r.save(t)})),r},X=function(t,r){var n=e.createElementNS?e.createElementNS((r||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),t):e.createElement(t);return n&&n.style?n:e.createElement(t)},k=function t(e,r,n){var i=getComputedStyle(e);return i[r]||i.getPropertyValue(r.replace(h,"-$1").toLowerCase())||i.getPropertyValue(r)||!n&&t(e,N(r)||r,1)||""},U="O,Moz,ms,Ms,Webkit".split(","),N=function(t,e,r){var n=(e||i).style,s=5;if(t in n&&!r)return t;for(t=t.charAt(0).toUpperCase()+t.substr(1);s--&&!(U[s]+t in n););return s<0?null:(3===s?"ms":s>=0?U[s]:"")+t},R=function(){"undefined"!=typeof window&&window.document&&(t=window,e=t.document,r=e.documentElement,i=X("div")||{style:{}},X("div"),B=N(B),E=B+"Origin",i.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",a=!!N("perspective"),o=p.gsap.core.reverting,n=1)},W=function t(e){var n,i=X("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),s=this.parentNode,o=this.nextSibling,a=this.style.cssText;if(r.appendChild(i),i.appendChild(this),this.style.display="block",e)try{n=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=t}catch(t){}else this._gsapBBox&&(n=this._gsapBBox());return s&&(o?s.insertBefore(this,o):s.appendChild(this)),r.removeChild(i),this.style.cssText=a,n},I=function(t,e){for(var r=e.length;r--;)if(t.hasAttribute(e[r]))return t.getAttribute(e[r])},V=function(t){var e;try{e=t.getBBox()}catch(r){e=W.call(t,!0)}return e&&(e.width||e.height)||t.getBBox===W||(e=W.call(t,!0)),!e||e.width||e.x||e.y?e:{x:+I(t,["x","cx","x1"])||0,y:+I(t,["y","cy","y1"])||0,width:0,height:0}},j=function(t){return!(!t.getCTM||t.parentNode&&!t.ownerSVGElement||!V(t))},q=function(t,e){if(e){var r,n=t.style;e in l&&e!==E&&(e=B),n.removeProperty?("ms"!==(r=e.substr(0,2))&&"webkit"!==e.substr(0,6)||(e="-"+e),n.removeProperty("--"===r?e:e.replace(h,"-$1").toLowerCase())):n.removeAttribute(e)}},D=function(t,e,r,n,i,s){var o=new p.PropTween(t._pt,e,r,0,1,s?w:b);return t._pt=o,o.b=n,o.e=i,t._props.push(r),o},G={deg:1,rad:1,turn:1},L={grid:1,flex:1},Z=function t(r,n,s,o){var a,u,f,c,h=parseFloat(s)||0,d=(s+"").trim().substr((h+"").length)||"px",m=i.style,x=g.test(n),_="svg"===r.tagName.toLowerCase(),y=(_?"client":"offset")+(x?"Width":"Height"),v=100,b="px"===o,w="%"===o;if(o===d||!h||G[o]||G[d])return h;if("px"!==d&&!b&&(h=t(r,n,s,"px")),c=r.getCTM&&j(r),(w||"%"===d)&&(l[n]||~n.indexOf("adius")))return a=c?r.getBBox()[x?"width":"height"]:r[y],p._round(w?h/a*v:h/100*a);if(m[x?"width":"height"]=v+(b?d:o),u=~n.indexOf("adius")||"em"===o&&r.appendChild&&!_?r:r.parentNode,c&&(u=(r.ownerSVGElement||{}).parentNode),u&&u!==e&&u.appendChild||(u=e.body),(f=u._gsap)&&w&&f.width&&x&&f.time===p._ticker.time&&!f.uncache)return p._round(h/f.width*v);if(!w||"height"!==n&&"width"!==n)(w||"%"===d)&&!L[k(u,"display")]&&(m.position=k(r,"position")),u===r&&(m.position="static"),u.appendChild(i),a=i[y],u.removeChild(i),m.position="absolute";else{var O=r.style[n];r.style[n]=v+o,a=r[y],O?r.style[n]=O:q(r,n)}return x&&w&&((f=p._getCache(u)).time=p._ticker.time,f.width=u[y]),p._round(b?a*h/v:a&&h?v/a*h:0)},H=function(t,e,r,i){var s;return n||R(),e in m&&"transform"!==e&&~(e=m[e]).indexOf(",")&&(e=e.split(",")[0]),l[e]&&"transform"!==e?(s=ot(t,i),s="transformOrigin"!==e?s[e]:s.svg?s.origin:at(k(t,E))+" "+s.zOrigin+"px"):(!(s=t.style[e])||"auto"===s||i||~(s+"").indexOf("calc("))&&(s=Q[e]&&Q[e](t,e,r)||k(t,e)||p._getProperty(t,e)||("opacity"===e?1:0)),r&&!~(s+"").trim().indexOf(" ")?Z(t,e,s,r)+r:s},$=function(t,e,r,n){if(!r||"none"===r){var i=N(e,t,1),s=i&&k(t,i,1);s&&s!==r?(e=i,r=s):"borderColor"===e&&(r=k(t,"borderTopColor"))}var o,a,l,u,f,c,h,g,d,m,x,_=new p.PropTween(this._pt,t.style,e,0,1,p._renderComplexString),y=0,v=0;if(_.b=r,_.e=n,r+="","auto"===(n+="")&&(c=t.style[e],t.style[e]=n,n=k(t,e)||n,c?t.style[e]=c:q(t,e)),o=[r,n],p._colorStringFilter(o),n=o[1],l=(r=o[0]).match(p._numWithUnitExp)||[],(n.match(p._numWithUnitExp)||[]).length){for(;a=p._numWithUnitExp.exec(n);)h=a[0],d=n.substring(y,a.index),f?f=(f+1)%5:"rgba("!==d.substr(-5)&&"hsla("!==d.substr(-5)||(f=1),h!==(c=l[v++]||"")&&(u=parseFloat(c)||0,x=c.substr((u+"").length),"="===h.charAt(1)&&(h=p._parseRelative(u,h)+x),g=parseFloat(h),m=h.substr((g+"").length),y=p._numWithUnitExp.lastIndex-m.length,m||(m=m||p._config.units[e]||x,y===n.length&&(n+=m,_.e+=m)),x!==m&&(u=Z(t,e,c,m)||0),_._pt={_next:_._pt,p:d||1===v?d:",",s:u,c:g-u,m:f&&f<4||"zIndex"===e?Math.round:0});_.c=y<n.length?n.substring(y,n.length):""}else _.r="display"===e&&"none"===n?w:b;return p._relExp.test(n)&&(_.e=0),this._pt=_,_},J={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},K=function(t,e){if(e.tween&&e.tween._time===e.tween._dur){var r,n,i,s=e.t,o=s.style,a=e.u,p=s._gsap;if("all"===a||!0===a)o.cssText="",n=1;else for(i=(a=a.split(",")).length;--i>-1;)r=a[i],l[r]&&(n=1,r="transformOrigin"===r?E:B),q(s,r);n&&(q(s,B),p&&(p.svg&&s.removeAttribute("transform"),ot(s,1),p.uncache=1,F(o)))}},Q={clearProps:function(t,e,r,n,i){if("isFromStart"!==i.data){var s=t._pt=new p.PropTween(t._pt,e,r,0,0,K);return s.u=n,s.pr=-10,s.tween=i,t._props.push(r),1}}},tt=[1,0,0,1,0,0],et={},rt=function(t){return"matrix(1, 0, 0, 1, 0, 0)"===t||"none"===t||!t},nt=function(t){var e=k(t,B);return rt(e)?tt:e.substr(7).match(p._numExp).map(p._round)},it=function(t,e){var n,i,s,o,a=t._gsap||p._getCache(t),l=t.style,u=nt(t);return a.svg&&t.getAttribute("transform")?"1,0,0,1,0,0"===(u=[(s=t.transform.baseVal.consolidate().matrix).a,s.b,s.c,s.d,s.e,s.f]).join(",")?tt:u:(u!==tt||t.offsetParent||t===r||a.svg||(s=l.display,l.display="block",(n=t.parentNode)&&t.offsetParent||(o=1,i=t.nextElementSibling,r.appendChild(t)),u=nt(t),s?l.display=s:q(t,"display"),o&&(i?n.insertBefore(t,i):n?n.appendChild(t):r.removeChild(t))),e&&u.length>6?[u[0],u[1],u[4],u[5],u[12],u[13]]:u)},st=function(t,e,r,n,i,s){var o,a,p,l=t._gsap,u=i||it(t,!0),f=l.xOrigin||0,c=l.yOrigin||0,h=l.xOffset||0,g=l.yOffset||0,d=u[0],m=u[1],x=u[2],_=u[3],y=u[4],v=u[5],b=e.split(" "),w=parseFloat(b[0])||0,O=parseFloat(b[1])||0;r?u!==tt&&(a=d*_-m*x)&&(p=w*(-m/a)+O*(d/a)-(d*v-m*y)/a,w=w*(_/a)+O*(-x/a)+(x*v-_*y)/a,O=p):(w=(o=V(t)).x+(~b[0].indexOf("%")?w/100*o.width:w),O=o.y+(~(b[1]||b[0]).indexOf("%")?O/100*o.height:O)),n||!1!==n&&l.smooth?(y=w-f,v=O-c,l.xOffset=h+(y*d+v*x)-y,l.yOffset=g+(y*m+v*_)-v):l.xOffset=l.yOffset=0,l.xOrigin=w,l.yOrigin=O,l.smooth=!!n,l.origin=e,l.originIsAbsolute=!!r,t.style[E]="0px 0px",s&&(D(s,l,"xOrigin",f,w),D(s,l,"yOrigin",c,O),D(s,l,"xOffset",h,l.xOffset),D(s,l,"yOffset",g,l.yOffset)),t.setAttribute("data-svg-origin",w+" "+O)},ot=function(t,e){var r=t._gsap||new p.GSCache(t);if("x"in r&&!e&&!r.uncache)return r;var n,i,s,o,l,h,g,d,m,x,_,y,v,b,w,O,P,M,C,S,T,A,F,Y,z,X,U,N,R,W,I,V,q=t.style,D=r.scaleX<0,G="px",L="deg",Z=getComputedStyle(t),H=k(t,E)||"0";return n=i=s=h=g=d=m=x=_=0,o=l=1,r.svg=!(!t.getCTM||!j(t)),Z.translate&&("none"===Z.translate&&"none"===Z.scale&&"none"===Z.rotate||(q[B]=("none"!==Z.translate?"translate3d("+(Z.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+("none"!==Z.rotate?"rotate("+Z.rotate+") ":"")+("none"!==Z.scale?"scale("+Z.scale.split(" ").join(",")+") ":"")+("none"!==Z[B]?Z[B]:"")),q.scale=q.rotate=q.translate="none"),b=it(t,r.svg),r.svg&&(r.uncache?(z=t.getBBox(),H=r.xOrigin-z.x+"px "+(r.yOrigin-z.y)+"px",Y=""):Y=!e&&t.getAttribute("data-svg-origin"),st(t,Y||H,!!Y||r.originIsAbsolute,!1!==r.smooth,b)),y=r.xOrigin||0,v=r.yOrigin||0,b!==tt&&(M=b[0],C=b[1],S=b[2],T=b[3],n=A=b[4],i=F=b[5],6===b.length?(o=Math.sqrt(M*M+C*C),l=Math.sqrt(T*T+S*S),h=M||C?c(C,M)*u:0,(m=S||T?c(S,T)*u+h:0)&&(l*=Math.abs(Math.cos(m*f))),r.svg&&(n-=y-(y*M+v*S),i-=v-(y*C+v*T))):(V=b[6],W=b[7],U=b[8],N=b[9],R=b[10],I=b[11],n=b[12],i=b[13],s=b[14],g=(w=c(V,R))*u,w&&(Y=A*(O=Math.cos(-w))+U*(P=Math.sin(-w)),z=F*O+N*P,X=V*O+R*P,U=A*-P+U*O,N=F*-P+N*O,R=V*-P+R*O,I=W*-P+I*O,A=Y,F=z,V=X),d=(w=c(-S,R))*u,w&&(O=Math.cos(-w),I=T*(P=Math.sin(-w))+I*O,M=Y=M*O-U*P,C=z=C*O-N*P,S=X=S*O-R*P),h=(w=c(C,M))*u,w&&(Y=M*(O=Math.cos(w))+C*(P=Math.sin(w)),z=A*O+F*P,C=C*O-M*P,F=F*O-A*P,M=Y,A=z),g&&Math.abs(g)+Math.abs(h)>359.9&&(g=h=0,d=180-d),o=p._round(Math.sqrt(M*M+C*C+S*S)),l=p._round(Math.sqrt(F*F+V*V)),w=c(A,F),m=Math.abs(w)>2e-4?w*u:0,_=I?1/(I<0?-I:I):0),r.svg&&(Y=t.getAttribute("transform"),r.forceCSS=t.setAttribute("transform","")||!rt(k(t,B)),Y&&t.setAttribute("transform",Y))),Math.abs(m)>90&&Math.abs(m)<270&&(D?(o*=-1,m+=h<=0?180:-180,h+=h<=0?180:-180):(l*=-1,m+=m<=0?180:-180)),e=e||r.uncache,r.x=n-((r.xPercent=n&&(!e&&r.xPercent||(Math.round(t.offsetWidth/2)===Math.round(-n)?-50:0)))?t.offsetWidth*r.xPercent/100:0)+G,r.y=i-((r.yPercent=i&&(!e&&r.yPercent||(Math.round(t.offsetHeight/2)===Math.round(-i)?-50:0)))?t.offsetHeight*r.yPercent/100:0)+G,r.z=s+G,r.scaleX=p._round(o),r.scaleY=p._round(l),r.rotation=p._round(h)+L,r.rotationX=p._round(g)+L,r.rotationY=p._round(d)+L,r.skewX=m+L,r.skewY=x+L,r.transformPerspective=_+G,(r.zOrigin=parseFloat(H.split(" ")[2])||!e&&r.zOrigin||0)&&(q[E]=at(H)),r.xOffset=r.yOffset=0,r.force3D=p._config.force3D,r.renderTransform=r.svg?gt:a?ht:lt,r.uncache=0,r},at=function(t){return(t=t.split(" "))[0]+" "+t[1]},pt=function(t,e,r){var n=p.getUnit(e);return p._round(parseFloat(e)+parseFloat(Z(t,"x",r+"px",n)))+n},lt=function(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,ht(t,e)},ut="0deg",ft="0px",ct=") ",ht=function(t,e){var r=e||this,n=r.xPercent,i=r.yPercent,s=r.x,o=r.y,a=r.z,p=r.rotation,l=r.rotationY,u=r.rotationX,c=r.skewX,h=r.skewY,g=r.scaleX,d=r.scaleY,m=r.transformPerspective,x=r.force3D,_=r.target,y=r.zOrigin,v="",b="auto"===x&&t&&1!==t||!0===x;if(y&&(u!==ut||l!==ut)){var w,O=parseFloat(l)*f,P=Math.sin(O),M=Math.cos(O);O=parseFloat(u)*f,w=Math.cos(O),s=pt(_,s,P*w*-y),o=pt(_,o,-Math.sin(O)*-y),a=pt(_,a,M*w*-y+y)}m!==ft&&(v+="perspective("+m+ct),(n||i)&&(v+="translate("+n+"%, "+i+"%) "),(b||s!==ft||o!==ft||a!==ft)&&(v+=a!==ft||b?"translate3d("+s+", "+o+", "+a+") ":"translate("+s+", "+o+ct),p!==ut&&(v+="rotate("+p+ct),l!==ut&&(v+="rotateY("+l+ct),u!==ut&&(v+="rotateX("+u+ct),c===ut&&h===ut||(v+="skew("+c+", "+h+ct),1===g&&1===d||(v+="scale("+g+", "+d+ct),_.style[B]=v||"translate(0, 0)"},gt=function(t,e){var r,n,i,s,o,a=e||this,l=a.xPercent,u=a.yPercent,c=a.x,h=a.y,g=a.rotation,d=a.skewX,m=a.skewY,x=a.scaleX,_=a.scaleY,y=a.target,v=a.xOrigin,b=a.yOrigin,w=a.xOffset,O=a.yOffset,P=a.forceCSS,M=parseFloat(c),C=parseFloat(h);g=parseFloat(g),d=parseFloat(d),(m=parseFloat(m))&&(d+=m=parseFloat(m),g+=m),g||d?(g*=f,d*=f,r=Math.cos(g)*x,n=Math.sin(g)*x,i=Math.sin(g-d)*-_,s=Math.cos(g-d)*_,d&&(m*=f,o=Math.tan(d-m),i*=o=Math.sqrt(1+o*o),s*=o,m&&(o=Math.tan(m),r*=o=Math.sqrt(1+o*o),n*=o)),r=p._round(r),n=p._round(n),i=p._round(i),s=p._round(s)):(r=x,s=_,n=i=0),(M&&!~(c+"").indexOf("px")||C&&!~(h+"").indexOf("px"))&&(M=Z(y,"x",c,"px"),C=Z(y,"y",h,"px")),(v||b||w||O)&&(M=p._round(M+v-(v*r+b*i)+w),C=p._round(C+b-(v*n+b*s)+O)),(l||u)&&(o=y.getBBox(),M=p._round(M+l/100*o.width),C=p._round(C+u/100*o.height)),o="matrix("+r+","+n+","+i+","+s+","+M+","+C+")",y.setAttribute("transform",o),P&&(y.style[B]=o)},dt=function(t,e,r,n,i){var s,o,a=360,l=p._isString(i),f=parseFloat(i)*(l&&~i.indexOf("rad")?u:1)-n,c=n+f+"deg";return l&&("short"===(s=i.split("_")[1])&&(f%=a)!==f%180&&(f+=f<0?a:-360),"cw"===s&&f<0?f=(f+36e9)%a-~~(f/a)*a:"ccw"===s&&f>0&&(f=(f-36e9)%a-~~(f/a)*a)),t._pt=o=new p.PropTween(t._pt,e,r,n,f,_),o.e=c,o.u="deg",t._props.push(r),o},mt=function(t,e){for(var r in e)t[r]=e[r];return t},xt=function(t,e,r){var n,i,s,o,a,u,f,c=mt({},r._gsap),h=r.style;for(i in c.svg?(s=r.getAttribute("transform"),r.setAttribute("transform",""),h[B]=e,n=ot(r,1),q(r,B),r.setAttribute("transform",s)):(s=getComputedStyle(r)[B],h[B]=e,n=ot(r,1),h[B]=s),l)(s=c[i])!==(o=n[i])&&"perspective,force3D,transformOrigin,svgOrigin".indexOf(i)<0&&(a=p.getUnit(s)!==(f=p.getUnit(o))?Z(r,i,s,f):parseFloat(s),u=parseFloat(o),t._pt=new p.PropTween(t._pt,n,i,a,u-a,x),t._pt.u=f||0,t._props.push(i));mt(n,c)};
2
+ /*!
3
+ * CSSPlugin 3.12.5
4
+ * https://gsap.com
5
+ *
6
+ * Copyright 2008-2024, GreenSock. All rights reserved.
7
+ * Subject to the terms at https://gsap.com/standard-license or for
8
+ * Club GSAP members, the agreement issued with that membership.
9
+ * @author: Jack Doyle, jack@greensock.com
10
+ */p._forEachName("padding,margin,Width,Radius",(function(t,e){var r="Top",n="Right",i="Bottom",s="Left",o=(e<3?[r,n,i,s]:[r+s,r+n,i+n,i+s]).map((function(r){return e<2?t+r:"border"+r+t}));Q[e>1?"border"+t:t]=function(t,e,r,n,i){var s,a;if(arguments.length<4)return s=o.map((function(e){return H(t,e,r)})),5===(a=s.join(" ")).split(s[0]).length?s[0]:a;s=(n+"").split(" "),a={},o.forEach((function(t,e){return a[t]=s[e]=s[e]||s[(e-1)/2|0]})),t.init(e,a,i)}}));var _t,yt,vt,bt={name:"css",register:R,targetTest:function(t){return t.style&&t.nodeType},init:function(t,e,r,i,s){var o,a,u,f,c,h,g,_,b,w,O,P,M,C,S,T,A,F,Y,X,k=this._props,U=t.style,W=r.vars.startAt;for(g in n||R(),this.styles=this.styles||z(t),T=this.styles.props,this.tween=r,e)if("autoRound"!==g&&(a=e[g],!p._plugins[g]||!p._checkPlugin(g,e,r,i,t,s)))if(c=typeof a,h=Q[g],"function"===c&&(c=typeof(a=a.call(r,i,t,s))),"string"===c&&~a.indexOf("random(")&&(a=p._replaceRandom(a)),h)h(this,t,g,a,r)&&(S=1);else if("--"===g.substr(0,2))o=(getComputedStyle(t).getPropertyValue(g)+"").trim(),a+="",p._colorExp.lastIndex=0,p._colorExp.test(o)||(_=p.getUnit(o),b=p.getUnit(a)),b?_!==b&&(o=Z(t,g,o,b)+b):_&&(a+=_),this.add(U,"setProperty",o,a,i,s,0,0,g),k.push(g),T.push(g,0,U[g]);else if("undefined"!==c){if(W&&g in W?(o="function"==typeof W[g]?W[g].call(r,i,t,s):W[g],p._isString(o)&&~o.indexOf("random(")&&(o=p._replaceRandom(o)),p.getUnit(o+"")||"auto"===o||(o+=p._config.units[g]||p.getUnit(H(t,g))||""),"="===(o+"").charAt(1)&&(o=H(t,g))):o=H(t,g),f=parseFloat(o),(w="string"===c&&"="===a.charAt(1)&&a.substr(0,2))&&(a=a.substr(2)),u=parseFloat(a),g in m&&("autoAlpha"===g&&(1===f&&"hidden"===H(t,"visibility")&&u&&(f=0),T.push("visibility",0,U.visibility),D(this,U,"visibility",f?"inherit":"hidden",u?"inherit":"hidden",!u)),"scale"!==g&&"transform"!==g&&~(g=m[g]).indexOf(",")&&(g=g.split(",")[0])),O=g in l)if(this.styles.save(g),P||((M=t._gsap).renderTransform&&!e.parseTransform||ot(t,e.parseTransform),C=!1!==e.smoothOrigin&&M.smooth,(P=this._pt=new p.PropTween(this._pt,U,B,0,1,M.renderTransform,M,0,-1)).dep=1),"scale"===g)this._pt=new p.PropTween(this._pt,M,"scaleY",M.scaleY,(w?p._parseRelative(M.scaleY,w+u):u)-M.scaleY||0,x),this._pt.u=0,k.push("scaleY",g),g+="X";else{if("transformOrigin"===g){T.push(E,0,U[E]),F=void 0,Y=void 0,X=void 0,F=(A=a).split(" "),Y=F[0],X=F[1]||"50%","top"!==Y&&"bottom"!==Y&&"left"!==X&&"right"!==X||(A=Y,Y=X,X=A),F[0]=J[Y]||Y,F[1]=J[X]||X,a=F.join(" "),M.svg?st(t,a,0,C,0,this):((b=parseFloat(a.split(" ")[2])||0)!==M.zOrigin&&D(this,M,"zOrigin",M.zOrigin,b),D(this,U,g,at(o),at(a)));continue}if("svgOrigin"===g){st(t,a,1,C,0,this);continue}if(g in et){dt(this,M,g,f,w?p._parseRelative(f,w+a):a);continue}if("smoothOrigin"===g){D(this,M,"smooth",M.smooth,a);continue}if("force3D"===g){M[g]=a;continue}if("transform"===g){xt(this,a,t);continue}}else g in U||(g=N(g)||g);if(O||(u||0===u)&&(f||0===f)&&!d.test(a)&&g in U)u||(u=0),(_=(o+"").substr((f+"").length))!==(b=p.getUnit(a)||(g in p._config.units?p._config.units[g]:_))&&(f=Z(t,g,o,b)),this._pt=new p.PropTween(this._pt,O?M:U,g,f,(w?p._parseRelative(f,w+u):u)-f,O||"px"!==b&&"zIndex"!==g||!1===e.autoRound?x:v),this._pt.u=b||0,_!==b&&"%"!==b&&(this._pt.b=o,this._pt.r=y);else if(g in U)$.call(this,t,g,o,w?w+a:a);else if(g in t)this.add(t,g,o||t[g],w?w+a:a,i,s);else if("parseTransform"!==g){p._missingPlugin(g,a);continue}O||(g in U?T.push(g,0,U[g]):T.push(g,1,o||t[g])),k.push(g)}S&&p._sortPropTweensByPriority(this)},render:function(t,e){if(e.tween._time||!o())for(var r=e._pt;r;)r.r(t,r.d),r=r._next;else e.styles.revert()},get:H,aliases:m,getSetter:function(t,e,r){var n=m[e];return n&&n.indexOf(",")<0&&(e=n),e in l&&e!==E&&(t._gsap.x||H(t,"x"))?r&&s===r?"scale"===e?C:M:(s=r||{})&&("scale"===e?S:T):t.style&&!p._isUndefined(t.style[e])?O:~e.indexOf("-")?P:p._getSetter(t,e)},core:{_removeProperty:q,_getMatrix:it}};p.gsap.utils.checkPrefix=N,p.gsap.core.getStyleSaver=z,_t="x,y,z,scale,scaleX,scaleY,xPercent,yPercent",yt="rotation,rotationX,rotationY,skewX,skewY",vt=p._forEachName(_t+","+yt+",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective",(function(t){l[t]=1})),p._forEachName(yt,(function(t){p._config.units[t]="deg",et[t]=1})),m[vt[13]]=_t+","+yt,p._forEachName("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY",(function(t){var e=t.split(":");m[e[1]]=vt[e[0]]})),p._forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",(function(t){p._config.units[t]="px"})),p.gsap.registerPlugin(bt),exports.CSSPlugin=bt,exports._createElement=X,exports._getBBox=V,exports.checkPrefix=N,exports.default=bt;
11
+ //# sourceMappingURL=CSSPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CSSPlugin.js","sources":["../../../../../node_modules/gsap/CSSPlugin.js"],"sourcesContent":["/*!\n * CSSPlugin 3.12.5\n * https://gsap.com\n *\n * Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _reverting,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n},\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n},\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n},\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n},\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n},\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n},\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n},\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n},\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n},\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n},\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n},\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _saveStyle = function _saveStyle(property, isNotCSS) {\n var _this = this;\n\n var target = this.target,\n style = target.style,\n cache = target._gsap;\n\n if (property in _transformProps && style) {\n this.tfm = this.tfm || {};\n\n if (property !== \"transform\") {\n property = _propertyAliases[property] || property;\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function (a) {\n return _this.tfm[a] = _get(target, a);\n }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\n\n property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);\n } else {\n return _propertyAliases.transform.split(\",\").forEach(function (p) {\n return _saveStyle.call(_this, p, isNotCSS);\n });\n }\n\n if (this.props.indexOf(_transformProp) >= 0) {\n return;\n }\n\n if (cache.svg) {\n this.svgo = target.getAttribute(\"data-svg-origin\");\n this.props.push(_transformOriginProp, isNotCSS, \"\");\n }\n\n property = _transformProp;\n }\n\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n},\n _removeIndependentTransforms = function _removeIndependentTransforms(style) {\n if (style.translate) {\n style.removeProperty(\"translate\");\n style.removeProperty(\"scale\");\n style.removeProperty(\"rotate\");\n }\n},\n _revertStyle = function _revertStyle() {\n var props = this.props,\n target = this.target,\n style = target.style,\n cache = target._gsap,\n i,\n p;\n\n for (i = 0; i < props.length; i += 3) {\n // stored like this: property, isNotCSS, value\n props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\n }\n\n if (this.tfm) {\n for (p in this.tfm) {\n cache[p] = this.tfm[p];\n }\n\n if (cache.svg) {\n cache.renderTransform();\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n }\n\n i = _reverting();\n\n if ((!i || !i.isStart) && !style[_transformProp]) {\n _removeIndependentTransforms(style);\n\n if (cache.zOrigin && style[_transformOriginProp]) {\n style[_transformOriginProp] += \" \" + cache.zOrigin + \"px\"; // since we're uncaching, we must put the zOrigin back into the transformOrigin so that we can pull it out accurately when we parse again. Otherwise, we'd lose the z portion of the origin since we extract it to protect from Safari bugs.\n\n cache.zOrigin = 0;\n cache.renderTransform();\n }\n\n cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\n }\n }\n},\n _getStyleSaver = function _getStyleSaver(target, properties) {\n var saver = {\n target: target,\n props: [],\n revert: _revertStyle,\n save: _saveStyle\n };\n target._gsap || gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once.\n\n properties && properties.split(\",\").forEach(function (p) {\n return saver.save(p);\n });\n return saver;\n},\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e && e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://gsap.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n},\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n\n if (property in s && !preferPrefix) {\n return property;\n }\n\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n while (i-- && !(_prefixes[i] + property in s)) {}\n\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n},\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _reverting = gsap.core.reverting;\n _pluginInitted = 1;\n }\n},\n _getBBoxHack = function _getBBoxHack(swapIfPossible) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a <defs> element and/or <mask>. We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var svg = _createElement(\"svg\", this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n oldParent = this.parentNode,\n oldSibling = this.nextSibling,\n oldCSS = this.style.cssText,\n bbox;\n\n _docElement.appendChild(svg);\n\n svg.appendChild(this);\n this.style.display = \"block\";\n\n if (swapIfPossible) {\n try {\n bbox = this.getBBox();\n this._gsapBBox = this.getBBox; //store the original\n\n this.getBBox = _getBBoxHack;\n } catch (e) {}\n } else if (this._gsapBBox) {\n bbox = this._gsapBBox();\n }\n\n if (oldParent) {\n if (oldSibling) {\n oldParent.insertBefore(this, oldSibling);\n } else {\n oldParent.appendChild(this);\n }\n }\n\n _docElement.removeChild(svg);\n\n this.style.cssText = oldCSS;\n return bbox;\n},\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n},\n _getBBox = function _getBBox(target) {\n var bounds;\n\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a <symbol> or <defs>). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getBBoxHack.call(target, true);\n }\n\n bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n},\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n},\n //reports if the element is an SVG on which getBBox() actually works\n_removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style,\n first2Chars;\n\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n\n if (style.removeProperty) {\n first2Chars = property.substr(0, 2);\n\n if (first2Chars === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n\n style.removeProperty(first2Chars === \"--\" ? property : property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n},\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n\n plugin._props.push(property);\n\n return pt;\n},\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n},\n _nonStandardLayouts = {\n grid: 1,\n flex: 1\n},\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n\n cache = parent._gsap;\n\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n return _round(curValue / cache.width * amount);\n } else {\n if (toPercent && (property === \"height\" || property === \"width\")) {\n // if we're dealing with width/height that's inside a container with padding and/or it's a flexbox/grid container, we must apply it to the target itself rather than the _tempDiv in order to ensure complete accuracy, factoring in the parent's padding.\n var v = target.style[property];\n target.style[property] = amount + unit;\n px = target[measureProperty];\n v ? target.style[property] = v : _removeProperty(target, property);\n } else {\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n }\n\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n},\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n},\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://gsap.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://gsap.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; // ensure values are strings\n\n end += \"\";\n\n if (end === \"auto\") {\n startValue = target.style[prop];\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n startValue ? target.style[prop] = startValue : _removeProperty(target, prop);\n }\n\n a = [start, end];\n\n _colorStringFilter(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n endValue.charAt(1) === \"=\" && (endValue = _parseRelative(startNum, endValue) + startUnit);\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n},\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n},\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n\n while (--i > -1) {\n prop = props[i];\n\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n\n _removeProperty(target, prop);\n }\n }\n\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n\n cache.uncache = 1;\n\n _removeIndependentTransforms(style);\n }\n }\n }\n},\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n_specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n\n plugin._props.push(property);\n\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n},\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n},\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n\n if (!parent || !target.offsetParent) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375\n addedToDOM = 1; //flag\n\n nextSibling = target.nextElementSibling;\n\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n},\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin); // if (!(\"xOrigin\" in cache) && (xOrigin || yOrigin)) { // added in 3.12.3, reverted in 3.12.4; requires more exploration\n // \txOrigin -= bounds.x;\n // \tyOrigin -= bounds.y;\n // }\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y; // theory: we only had to do this for smoothing and it assumes that the previous one was not originIsAbsolute.\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n},\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n cs = getComputedStyle(target),\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n\n if (cs.translate) {\n // accommodate independent transforms by combining them into normal ones.\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n }\n\n style.scale = style.rotate = style.translate = \"none\";\n }\n\n matrix = _getMatrix(target, cache.svg);\n\n if (cache.svg) {\n if (cache.uncache) {\n // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\n t2 = target.getBBox();\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n t1 = \"\";\n } else {\n t1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\n }\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n\n uncache = uncache || cache.uncache;\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || !uncache && cache.zOrigin || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n},\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n},\n //for handling transformOrigin values, stripping out the 3rd dimension\n_addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n},\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n\n _renderCSSTransforms(ratio, cache);\n},\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n},\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n},\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n\n if (isString) {\n direction = endValue.split(\"_\")[1];\n\n if (direction === \"short\") {\n change %= cap;\n\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n\n plugin._props.push(property);\n\n return pt;\n},\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n\n return target;\n},\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n\n _removeProperty(target, _transformProp);\n\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n\n plugin._props.push(p);\n }\n }\n\n _assign(endCache, startCache);\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\n\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority,\n inlineProps;\n _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\n\n this.styles = this.styles || _getStyleSaver(target);\n inlineProps = this.styles.props;\n this.tween = tween;\n\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n\n endValue = vars[p];\n\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n\n type = typeof endValue;\n specialProp = _specialProps[p];\n\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n props.push(p);\n inlineProps.push(p, 0, style[p]);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n _isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n getUnit(startValue + \"\") || startValue === \"auto\" || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n\n inlineProps.push(\"visibility\", 0, style.visibility);\n\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n this.styles.save(p);\n\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\n this._pt.u = 0;\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n\n if (startUnit !== endUnit && endUnit !== \"%\") {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n } else if (p !== \"parseTransform\") {\n _missingPlugin(p, endValue);\n\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n }\n\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));\n props.push(p);\n }\n }\n\n hasPriority && _sortPropTweensByPriority(this);\n },\n render: function render(ratio, data) {\n if (data.tween._time || !_reverting()) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n } else {\n data.styles.revert();\n }\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\n\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };"],"names":["_win","_doc","_docElement","_pluginInitted","_tempDiv","_recentSetterPlugin","_reverting","_supports3D","_transformProps","_RAD2DEG","Math","PI","_DEG2RAD","_atan2","atan2","_capsExp","_horizontalExp","_complexExp","_propertyAliases","autoAlpha","scale","alpha","_renderCSSProp","ratio","data","set","t","p","round","s","c","u","_renderPropWithEnd","e","_renderCSSPropWithBeginning","b","_renderRoundedCSSProp","value","_renderNonTweeningValue","_renderNonTweeningValueOnlyAtEnd","_setterCSSStyle","target","property","style","_setterCSSProp","setProperty","_setterTransform","_gsap","_setterScale","scaleX","scaleY","_setterScaleWithRender","cache","renderTransform","_setterTransformWithRender","_transformProp","_transformOriginProp","_saveStyle","isNotCSS","_this","this","tfm","transform","split","forEach","call","indexOf","a","_get","x","zOrigin","props","svg","svgo","getAttribute","push","_removeIndependentTransforms","translate","removeProperty","_revertStyle","i","length","substr","replace","toLowerCase","setAttribute","isStart","uncache","_getStyleSaver","properties","saver","revert","save","gsap","core","getCache","_createElement","type","ns","createElementNS","createElement","_getComputedProperty","skipPrefixFallback","cs","getComputedStyle","getPropertyValue","_checkPropPrefix","_prefixes","element","preferPrefix","charAt","toUpperCase","_initCore","window","document","documentElement","cssText","reverting","_getBBoxHack","swapIfPossible","bbox","ownerSVGElement","oldParent","parentNode","oldSibling","nextSibling","oldCSS","appendChild","display","getBBox","_gsapBBox","insertBefore","removeChild","_getAttributeFallbacks","attributesArray","hasAttribute","_getBBox","bounds","error","width","height","y","_isSVG","getCTM","_removeProperty","first2Chars","removeAttribute","_addNonTweeningPT","plugin","beginning","end","onlySetAtEnd","pt","PropTween","_pt","_props","_nonConvertibleUnits","deg","rad","turn","_nonStandardLayouts","grid","flex","_convertToUnit","unit","px","parent","isSVG","curValue","parseFloat","curUnit","trim","horizontal","test","isRootSVG","tagName","measureProperty","amount","toPixels","toPercent","_round","body","time","_ticker","position","v","_getCache","_parseTransform","origin","_firstTwoOnly","_specialProps","_getProperty","_tweenComplexCSSString","prop","start","result","startValues","startNum","color","startValue","endValue","endNum","chunk","endUnit","startUnit","_renderComplexString","index","matchIndex","_colorStringFilter","match","_numWithUnitExp","exec","substring","_parseRelative","lastIndex","_config","units","_next","m","r","_relExp","_keywordToPercent","top","bottom","left","right","center","_renderClearProps","tween","_time","_dur","clearTransforms","clearProps","pr","_identity2DMatrix","_rotationalProperties","_isNullTransform","_getComputedTransformMatrixAsArray","matrixString","_numExp","map","_getMatrix","force2D","temp","addedToDOM","matrix","baseVal","consolidate","d","f","join","offsetParent","nextElementSibling","_applySVGOrigin","originIsAbsolute","smooth","matrixArray","pluginToAddPropTweensTo","determinant","xOriginOld","xOrigin","yOriginOld","yOrigin","xOffsetOld","xOffset","yOffsetOld","yOffset","tx","ty","originSplit","GSCache","z","rotation","rotationX","rotationY","skewX","skewY","perspective","angle","cos","sin","a12","a22","t1","t2","t3","a13","a23","a33","a42","a43","a32","invertedScaleX","rotate","slice","sqrt","abs","forceCSS","xPercent","offsetWidth","yPercent","offsetHeight","transformPerspective","force3D","_renderSVGTransforms","_renderCSSTransforms","_renderNon3DTransforms","_addPxTranslate","getUnit","_zeroDeg","_zeroPx","_endParenthesis","_ref","transforms","use3D","a11","a21","_ref2","tan","_addRotationalPropTween","direction","cap","isString","_isString","change","finalValue","_assign","source","_addRawTransformPTs","endCache","startCache","_forEachName","name","l","side","vars","arguments","init","positionAndScale","all","CSSPlugin","register","targetTest","nodeType","targets","specialProp","relative","isTransformRelated","transformPropTween","hasPriority","inlineProps","startAt","styles","_plugins","_checkPlugin","_replaceRandom","_colorExp","add","visibility","parseTransform","smoothOrigin","dep","autoRound","_missingPlugin","_sortPropTweensByPriority","render","get","aliases","getSetter","_isUndefined","_getSetter","utils","checkPrefix","getStyleSaver","registerPlugin"],"mappings":"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","x_google_ignoreList":[0]}