@total_onion/onion-library 3.2.0 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/.github/workflows/npm-publish.yml +38 -0
  2. package/.prettierrc +22 -0
  3. package/__spec__/copyBlockComponent.spec.js +94 -0
  4. package/__spec__/copyFile.spec.js +78 -0
  5. package/__spec__/copyFileKeeping.spec.js +74 -0
  6. package/__spec__/files/source.txt +1 -0
  7. package/__spec__/update-all-components.spec.js +99 -0
  8. package/__spec__/update-component.spec.js +165 -0
  9. package/assembleAssetList.js +69 -0
  10. package/breakpoints.scss +6 -0
  11. package/build-library.js +4 -0
  12. package/checkBuildAssets.js +17 -0
  13. package/components/block-accent-image-v3/accent-image-v3.js +7 -0
  14. package/components/block-accent-image-v3/accent-image-v3.scss +4 -0
  15. package/components/block-accent-image-v3/accent-image-v3.twig +137 -0
  16. package/components/block-accent-image-v3/group_6890e1233ff2d.json +81 -0
  17. package/components/block-accordion-v3/accordion-v3.js +119 -0
  18. package/components/block-accordion-v3/accordion-v3.scss +197 -0
  19. package/components/block-accordion-v3/accordion-v3.twig +51 -0
  20. package/components/block-accordion-v3/group_6888d2f0b230b.json +458 -0
  21. package/components/block-back-to-top-button-v3/back-to-top-button-v3.js +12 -0
  22. package/components/block-back-to-top-button-v3/back-to-top-button-v3.scss +68 -0
  23. package/components/block-back-to-top-button-v3/back-to-top-button-v3.twig +40 -0
  24. package/components/block-back-to-top-button-v3/group_63e24e04a1e61.json +323 -0
  25. package/components/block-betterreviews-display-v3/betterreviews-display-v3.js +10 -0
  26. package/components/block-betterreviews-display-v3/betterreviews-display-v3.scss +104 -0
  27. package/components/block-betterreviews-display-v3/betterreviews-display-v3.twig +24 -0
  28. package/components/block-betterreviews-display-v3/group_6892880fc1a00.json +182 -0
  29. package/components/block-block-interactions-v3/block-interactions-v3.js +53 -0
  30. package/components/block-block-interactions-v3/block-interactions-v3.scss +32 -0
  31. package/components/block-block-interactions-v3/block-interactions-v3.twig +55 -0
  32. package/components/block-block-interactions-v3/group_687e1575ba23d.json +700 -0
  33. package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.js +243 -0
  34. package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.scss +156 -0
  35. package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.twig +146 -0
  36. package/components/block-carousel-multi-layout-v3/group_686bd42e551d6.json +578 -0
  37. package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.js +127 -0
  38. package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.scss +345 -0
  39. package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.twig +93 -0
  40. package/components/block-cocktail-recipe-v3/group_68fff19fa4dd0.json +202 -0
  41. package/components/block-cover-link-v3/cover-link-v3.js +7 -0
  42. package/components/block-cover-link-v3/cover-link-v3.scss +10 -0
  43. package/components/block-cover-link-v3/cover-link-v3.twig +16 -0
  44. package/components/block-cover-link-v3/group_687192c28b7eb.json +96 -0
  45. package/components/block-divider-v3/divider-v3.js +8 -0
  46. package/components/block-divider-v3/divider-v3.scss +103 -0
  47. package/components/block-divider-v3/divider-v3.twig +45 -0
  48. package/components/block-divider-v3/group_686b919696bfe.json +891 -0
  49. package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.js +44 -0
  50. package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.scss +93 -0
  51. package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.twig +43 -0
  52. package/components/block-featured-image-gallery-v3/group_5f91897095b42.json +88 -0
  53. package/components/block-form-selection-v3/form-selection-v3.js +78 -0
  54. package/components/block-form-selection-v3/form-selection-v3.scss +38 -0
  55. package/components/block-form-selection-v3/form-selection-v3.twig +84 -0
  56. package/components/block-form-selection-v3/group_68752e7949e53.json +351 -0
  57. package/components/block-gradient-layer-v3/gradient-layer-v3.js +7 -0
  58. package/components/block-gradient-layer-v3/gradient-layer-v3.scss +8 -0
  59. package/components/block-gradient-layer-v3/gradient-layer-v3.twig +78 -0
  60. package/components/block-gradient-layer-v3/group_686fdadc85df4.json +206 -0
  61. package/components/block-group-container-v3/group-container-v3.js +7 -0
  62. package/components/block-group-container-v3/group-container-v3.php +14 -0
  63. package/components/block-group-container-v3/group-container-v3.scss +45 -0
  64. package/components/block-group-container-v3/group-container-v3.twig +70 -0
  65. package/components/block-group-container-v3/group_6865578ada499.json +3660 -0
  66. package/components/block-lottie-content-v3/group_687197027216d.json +177 -0
  67. package/components/block-lottie-content-v3/lottie-content-v3.js +25 -0
  68. package/components/block-lottie-content-v3/lottie-content-v3.scss +2 -0
  69. package/components/block-lottie-content-v3/lottie-content-v3.twig +15 -0
  70. package/components/block-market-selector-v3/group_68752075dd831.json +129 -0
  71. package/components/block-market-selector-v3/market-selector-v3.js +7 -0
  72. package/components/block-market-selector-v3/market-selector-v3.scss +120 -0
  73. package/components/block-market-selector-v3/market-selector-v3.twig +40 -0
  74. package/components/block-modal-form-v3/modal-form-v3.js +59 -0
  75. package/components/block-modal-form-v3/modal-form-v3.scss +6 -0
  76. package/components/block-modal-form-v3/modal-form-v3.twig +30 -0
  77. package/components/block-nav-menu-container-v3/group_687e00b45e9a3.json +187 -0
  78. package/components/block-nav-menu-container-v3/nav-menu-container-v3.js +7 -0
  79. package/components/block-nav-menu-container-v3/nav-menu-container-v3.scss +3 -0
  80. package/components/block-nav-menu-container-v3/nav-menu-container-v3.twig +23 -0
  81. package/components/block-post-info-v3/group_6866429531436.json +3112 -0
  82. package/components/block-post-info-v3/post-info-v3/bazaarvoice-inline.twig +13 -0
  83. package/components/block-post-info-v3/post-info-v3/better-reviews.twig +15 -0
  84. package/components/block-post-info-v3/post-info-v3/divider.twig +8 -0
  85. package/components/block-post-info-v3/post-info-v3/drink-description.twig +10 -0
  86. package/components/block-post-info-v3/post-info-v3/global-image.twig +22 -0
  87. package/components/block-post-info-v3/post-info-v3/gradient-layer.twig +78 -0
  88. package/components/block-post-info-v3/post-info-v3/gradient-overlay.twig +10 -0
  89. package/components/block-post-info-v3/post-info-v3/post-author.twig +17 -0
  90. package/components/block-post-info-v3/post-info-v3/post-buy-now.twig +116 -0
  91. package/components/block-post-info-v3/post-info-v3/post-categories.twig +15 -0
  92. package/components/block-post-info-v3/post-info-v3/post-headline.twig +15 -0
  93. package/components/block-post-info-v3/post-info-v3/post-image.twig +47 -0
  94. package/components/block-post-info-v3/post-info-v3/post-info-description.twig +15 -0
  95. package/components/block-post-info-v3/post-info-v3/post-info-subtitle.twig +14 -0
  96. package/components/block-post-info-v3/post-info-v3/post-link.twig +42 -0
  97. package/components/block-post-info-v3/post-info-v3/post-name.twig +12 -0
  98. package/components/block-post-info-v3/post-info-v3/post-publish-date.twig +12 -0
  99. package/components/block-post-info-v3/post-info-v3/post-tags.twig +24 -0
  100. package/components/block-post-info-v3/post-info-v3/post-text-alternative-style.twig +16 -0
  101. package/components/block-post-info-v3/post-info-v3/post-title.twig +15 -0
  102. package/components/block-post-info-v3/post-info-v3/post-video.twig +27 -0
  103. package/components/block-post-info-v3/post-info-v3/reservebar-add-to-cart.twig +32 -0
  104. package/components/block-post-info-v3/post-info-v3/shopify-add-to-cart.twig +31 -0
  105. package/components/block-post-info-v3/post-info-v3/social-networks.twig +33 -0
  106. package/components/block-post-info-v3/post-info-v3/spacer-v3.twig +9 -0
  107. package/components/block-post-info-v3/post-info-v3.js +10 -0
  108. package/components/block-post-info-v3/post-info-v3.scss +210 -0
  109. package/components/block-post-info-v3/post-info-v3.twig +67 -0
  110. package/components/block-product-info-v3/group_68909995b6550.json +3544 -0
  111. package/components/block-product-info-v3/product-info-v3/product-abv.twig +14 -0
  112. package/components/block-product-info-v3/product-info-v3/product-cask-type-label.twig +14 -0
  113. package/components/block-product-info-v3/product-info-v3/product-cask-type.twig +14 -0
  114. package/components/block-product-info-v3/product-info-v3/product-colour-label.twig +14 -0
  115. package/components/block-product-info-v3/product-info-v3/product-colour.twig +14 -0
  116. package/components/block-product-info-v3/product-info-v3/product-description.twig +14 -0
  117. package/components/block-product-info-v3/product-info-v3/product-finish-label.twig +14 -0
  118. package/components/block-product-info-v3/product-info-v3/product-finish.twig +14 -0
  119. package/components/block-product-info-v3/product-info-v3/product-headline.twig +14 -0
  120. package/components/block-product-info-v3/product-info-v3/product-image.twig +43 -0
  121. package/components/block-product-info-v3/product-info-v3/product-name.twig +14 -0
  122. package/components/block-product-info-v3/product-info-v3/product-nose-label.twig +14 -0
  123. package/components/block-product-info-v3/product-info-v3/product-nose.twig +14 -0
  124. package/components/block-product-info-v3/product-info-v3/product-pair-with-label.twig +14 -0
  125. package/components/block-product-info-v3/product-info-v3/product-pair-with.twig +14 -0
  126. package/components/block-product-info-v3/product-info-v3/product-palate-label.twig +14 -0
  127. package/components/block-product-info-v3/product-info-v3/product-palate.twig +14 -0
  128. package/components/block-product-info-v3/product-info-v3/product-taste-label.twig +14 -0
  129. package/components/block-product-info-v3/product-info-v3/product-taste.twig +14 -0
  130. package/components/block-product-info-v3/product-info-v3/product-volume.twig +14 -0
  131. package/components/block-product-info-v3/product-info-v3/spacer-v3.twig +9 -0
  132. package/components/block-product-info-v3/product-info-v3.js +7 -0
  133. package/components/block-product-info-v3/product-info-v3.scss +171 -0
  134. package/components/block-product-info-v3/product-info-v3.twig +43 -0
  135. package/components/block-raw-html-v3/group_686ba68d603a2.json +212 -0
  136. package/components/block-raw-html-v3/raw-html-v3.js +7 -0
  137. package/components/block-raw-html-v3/raw-html-v3.scss +2 -0
  138. package/components/block-raw-html-v3/raw-html-v3.twig +17 -0
  139. package/components/block-responsive-table-v3/group_6617ecc987ddd.json +394 -0
  140. package/components/block-responsive-table-v3/responsive-table-v3.js +7 -0
  141. package/components/block-responsive-table-v3/responsive-table-v3.scss +49 -0
  142. package/components/block-responsive-table-v3/responsive-table-v3.twig +47 -0
  143. package/components/block-scrolling-banner-v3/group_68e67fca1ec80.json +664 -0
  144. package/components/block-scrolling-banner-v3/scrolling-banner-v3.js +144 -0
  145. package/components/block-scrolling-banner-v3/scrolling-banner-v3.scss +104 -0
  146. package/components/block-scrolling-banner-v3/scrolling-banner-v3.twig +72 -0
  147. package/components/block-section-separator-v3/group_6874c8d79b84b.json +576 -0
  148. package/components/block-section-separator-v3/section-separator-v3.js +7 -0
  149. package/components/block-section-separator-v3/section-separator-v3.scss +42 -0
  150. package/components/block-section-separator-v3/section-separator-v3.twig +46 -0
  151. package/components/block-single-column-container-v3/group_6887640458d61.json +481 -0
  152. package/components/block-single-column-container-v3/single-column-container-v3.js +7 -0
  153. package/components/block-single-column-container-v3/single-column-container-v3.scss +14 -0
  154. package/components/block-single-column-container-v3/single-column-container-v3.twig +30 -0
  155. package/components/block-single-responsive-image-v3/group_6867bcf24c2fc.json +128 -0
  156. package/components/block-single-responsive-image-v3/single-responsive-image-v3.js +7 -0
  157. package/components/block-single-responsive-image-v3/single-responsive-image-v3.scss +9 -0
  158. package/components/block-single-responsive-image-v3/single-responsive-image-v3.twig +24 -0
  159. package/components/block-site-copyright-notice-v3/group_66296c3716b4f.json +304 -0
  160. package/components/block-site-copyright-notice-v3/index.html +33 -0
  161. package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.js +58 -0
  162. package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.scss +21 -0
  163. package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.twig +30 -0
  164. package/components/block-site-logo-container-v3/group_687e3b887b508.json +175 -0
  165. package/components/block-site-logo-container-v3/site-logo-container-v3.js +7 -0
  166. package/components/block-site-logo-container-v3/site-logo-container-v3.scss +29 -0
  167. package/components/block-site-logo-container-v3/site-logo-container-v3.twig +40 -0
  168. package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.js +7 -0
  169. package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.scss +16 -0
  170. package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.twig +24 -0
  171. package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.js +8 -0
  172. package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.scss +31 -0
  173. package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.twig +18 -0
  174. package/components/block-social-networks-v3/group_6891d4d7db414.json +146 -0
  175. package/components/block-social-networks-v3/social-networks-v3.js +7 -0
  176. package/components/block-social-networks-v3/social-networks-v3.scss +7 -0
  177. package/components/block-social-networks-v3/social-networks-v3.twig +24 -0
  178. package/components/block-spacer-v3/group_686b8cb48c708.json +131 -0
  179. package/components/block-spacer-v3/spacer-v3.js +8 -0
  180. package/components/block-spacer-v3/spacer-v3.scss +19 -0
  181. package/components/block-spacer-v3/spacer-v3.twig +13 -0
  182. package/components/block-spotify-embed-v3/group_67d04c4c4cf78.json +120 -0
  183. package/components/block-spotify-embed-v3/spotify-embed-v3.js +7 -0
  184. package/components/block-spotify-embed-v3/spotify-embed-v3.scss +11 -0
  185. package/components/block-spotify-embed-v3/spotify-embed-v3.twig +23 -0
  186. package/components/block-standard-content-v3/group_68655756737c9.json +344 -0
  187. package/components/block-standard-content-v3/standard-content-v3.js +39 -0
  188. package/components/block-standard-content-v3/standard-content-v3.scss +11 -0
  189. package/components/block-standard-content-v3/standard-content-v3.twig +46 -0
  190. package/components/block-sticky-buy-cta-v3/group_68b061bb56543.json +172 -0
  191. package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.js +7 -0
  192. package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.scss +2 -0
  193. package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.twig +92 -0
  194. package/components/block-sub-group-container-v3/group_686ceba7d6066.json +2142 -0
  195. package/components/block-sub-group-container-v3/sub-group-container-v3.js +9 -0
  196. package/components/block-sub-group-container-v3/sub-group-container-v3.scss +27 -0
  197. package/components/block-sub-group-container-v3/sub-group-container-v3.twig +59 -0
  198. package/components/block-video-content-v3/group_687190b8d26df.json +169 -0
  199. package/components/block-video-content-v3/video-content-v3.js +12 -0
  200. package/components/block-video-content-v3/video-content-v3.scss +123 -0
  201. package/components/block-video-content-v3/video-content-v3.twig +26 -0
  202. package/components/component-accent-image-v3/accent-image-v3.twig +119 -0
  203. package/components/component-accent-image-v3/group_686cd5547efd2.json +975 -0
  204. package/components/component-accent-text-v3/accent-text-v3-extra.scss +2 -0
  205. package/components/component-accent-text-v3/accent-text-v3.scss +60 -0
  206. package/components/component-accent-text-v3/group_686b91fed8f5f.json +220 -0
  207. package/components/component-accordion-v3/accordion-v3.js +113 -0
  208. package/components/component-accordion-v3/accordion-v3.scss +189 -0
  209. package/components/component-accordion-v3/accordion-v3.twig +39 -0
  210. package/components/component-accordion-v3/group_66ab7edfc6d63.json +535 -0
  211. package/components/component-animations-style-v3/animations-style-v3.twig +5 -0
  212. package/components/component-animations-v3/animations-v3.scss +161 -0
  213. package/components/component-animations-v3/animations-v3.twig +19 -0
  214. package/components/component-animations-v3/group_689f39c37980a.json +499 -0
  215. package/components/component-better-reviews-v3/better-reviews-v3.scss +137 -0
  216. package/components/component-block-padding-v3/block-padding-v3.scss +64 -0
  217. package/components/component-block-padding-v3/block-padding-v3.twig +33 -0
  218. package/components/component-block-padding-v3/group_689f66f3e26df.json +535 -0
  219. package/components/component-block-settings-v3/block-settings-v3.scss +46 -0
  220. package/components/component-block-settings-v3/block-settings-v3.twig +34 -0
  221. package/components/component-block-settings-v3/group_689f649af2ac4.json +983 -0
  222. package/components/component-blockquote-v3/blockquote-v3.scss +54 -0
  223. package/components/component-box-shadow-v3/box-shadow-v3.scss +12 -0
  224. package/components/component-buy-now-button-v3/buy-now-buttons-v3.twig +69 -0
  225. package/components/component-carousel-fields-v3/group_686fd30f4d873.json +3025 -0
  226. package/components/component-child-block-video-fields/group_6852a4f384204.json +536 -0
  227. package/components/component-content-box-settings-v3/content-box-settings-v3.scss +205 -0
  228. package/components/component-content-box-settings-v3/content-box-settings-v3.twig +156 -0
  229. package/components/component-content-box-settings-v3/group_686e6ec702acc.json +1729 -0
  230. package/components/component-content-box-v3/content-box-v3.js +6 -0
  231. package/components/component-content-box-v3/content-box-v3.scss +28 -0
  232. package/components/component-content-box-v3/content-box-v3.twig +23 -0
  233. package/components/component-content-box-v3/group_686b8a4f1fe5d.json +568 -0
  234. package/components/component-content-image-v3/content-image-v3.scss +33 -0
  235. package/components/component-content-image-v3/content-image-v3.twig +77 -0
  236. package/components/component-content-image-v3/group_68722935c428f.json +647 -0
  237. package/components/component-core-body-close-v3/core-body-close-v3.twig +2 -0
  238. package/components/component-core-body-open-v3/core-body-open-v3.twig +32 -0
  239. package/components/component-core-group-container-styles-v3/core-group-container-styles-v3.scss +48 -0
  240. package/components/component-core-head-v3/core-head-v3.twig +62 -0
  241. package/components/component-cta-selection-v3/cta-selection-v3.twig +256 -0
  242. package/components/component-cta-selection-v3/group_686e93eb832a6.json +1117 -0
  243. package/components/component-e-shop-settings-v3/e-shop-settings-v3.twig +114 -0
  244. package/components/component-element-positioning-v3/element-positioning-v3.scss +41 -0
  245. package/components/component-element-positioning-v3/element-positioning-v3.twig +42 -0
  246. package/components/component-element-positioning-v3/group_6882281544263.json +635 -0
  247. package/components/component-endpoints/endpoints.php +32 -0
  248. package/components/component-flex-layout-container-v3/flex-layout-container-v3.scss +38 -0
  249. package/components/component-flex-layout-container-v3/flex-layout-container-v3.twig +28 -0
  250. package/components/component-flex-layout-container-v3/group_6887a026bbc33.json +773 -0
  251. package/components/component-global-content-max-width-v3/global-content-max-width-v3.twig +10 -0
  252. package/components/component-global-content-max-width-v3/group_63c83de4f0a99.json +58 -0
  253. package/components/component-gradient-overlay-v3/gradient-overlay-v3.scss +43 -0
  254. package/components/component-gradient-overlay-v3/gradient-overlay-v3.twig +58 -0
  255. package/components/component-gradient-overlay-v3/group_686fd9ca50b63.json +495 -0
  256. package/components/component-grid-gap-mults-v3/grid-gap-mults-v3.twig +10 -0
  257. package/components/component-grid-gap-mults-v3/group_689221b94ce69.json +220 -0
  258. package/components/component-grid-layout-container-v3/grid-layout-container-v3.scss +154 -0
  259. package/components/component-grid-layout-container-v3/grid-layout-container-v3.twig +88 -0
  260. package/components/component-grid-layout-container-v3/group_6882282e65bf2.json +1525 -0
  261. package/components/component-grid-layout-element-v3/grid-layout-element-v3.scss +47 -0
  262. package/components/component-grid-layout-element-v3/grid-layout-element-v3.twig +23 -0
  263. package/components/component-grid-layout-element-v3/group_68822860bda9f.json +728 -0
  264. package/components/component-nav-menu-v3/group_68da703f710ff.json +432 -0
  265. package/components/component-nav-menu-v3/nav-menu-v3.scss +43 -0
  266. package/components/component-nav-menu-v3/nav-menu-v3.twig +75 -0
  267. package/components/component-responsive-image-v3/group_6867bc53f1da8.json +1515 -0
  268. package/components/component-responsive-image-v3/responsive-image-v3.scss +63 -0
  269. package/components/component-responsive-image-v3/responsive-image-v3.twig +71 -0
  270. package/components/component-responsive-picture-element-v3/responsive-picture-element-v3.twig +35 -0
  271. package/components/component-responsive-show-hide/responsive-show-hide-v3.twig +9 -0
  272. package/components/component-social-media-share-v3/social-media-share-v3-extra.scss +6 -0
  273. package/components/component-social-media-share-v3/social-media-share-v3.scss +131 -0
  274. package/components/component-social-networks-v3/social-networks-v3.scss +73 -0
  275. package/components/component-social-networks-v3/social-networks-v3.twig +43 -0
  276. package/components/component-text-editor-settings-container-classes-v3/text-editor-settings-container-classes-v3.twig +9 -0
  277. package/components/component-text-editor-settings-element-classes-v3/text-editor-settings-element-classes-v3.twig +13 -0
  278. package/components/component-text-editor-settings-v3/group_687a4e2334e37.json +1377 -0
  279. package/components/component-text-editor-settings-variables-v3/text-editor-settings-variables-v3.twig +61 -0
  280. package/components/component-video-component-v3/video-component-v3.twig +90 -0
  281. package/components/component-video-fields-v3/group_6872282f44634.json +1013 -0
  282. package/components/component-video-trigger-button-v3/video-trigger-button-v3.twig +14 -0
  283. package/components/component-wysiwyg-editor-v3/group_6867e153af466.json +127 -0
  284. package/components/component-wysiwyg-editor-v3/wysiwyg-editor-v3.twig +18 -0
  285. package/components/core-block-editor-assets-v3/core-block-editor-assets-v3.php +14 -0
  286. package/components/core-core-block-render-function-v3/core-block-render-function-v3.php +39 -0
  287. package/components/core-core-design-settings-v3/core-design-settings-v3.php +43 -0
  288. package/components/core-core-post-overrides-v3/core-post-overrides-v3.php +21 -0
  289. package/components/core-core-themes/core-themes-v3.php +68 -0
  290. package/components/core-core-typography-v3/core-typography-v3.php +239 -0
  291. package/components/core-globals/globals.php +39 -0
  292. package/components/entrypoint-entry-point-classes-v3/entry-point-classes-v3.twig +12 -0
  293. package/components/entrypoint-entry-point-html-v3/entry-point-html-v3.twig +19 -0
  294. package/components/entrypoint-entry-point-style-v3/entry-point-style-v3.twig +11 -0
  295. package/components/fields-acf-wysiwyg-options-v3/acf-wysiwyg-options-v3.php +221 -0
  296. package/components/fields-animations-v3/animations-v3.scss +127 -0
  297. package/components/fields-archive-pages-v3/group_635e777ce46d4.json +150 -0
  298. package/components/fields-cocktail-info-v3/group_64c29b7f188ca.json +686 -0
  299. package/components/fields-content-container-settings-v3/content-container-settings-v3.scss +213 -0
  300. package/components/fields-content-container-v3/content-container-v3.js +96 -0
  301. package/components/fields-content-container-v3/content-container-v3.scss +31 -0
  302. package/components/fields-core-critical-v3/core-critical-v3.scss +13 -0
  303. package/components/fields-core-css-modules-v3/core-css-modules-v3.scss +13 -0
  304. package/components/fields-core-css-sizing-vars-v3/core-css-sizing-vars-v3.scss +125 -0
  305. package/components/fields-core-cta-v3/core-cta-v3.scss +276 -0
  306. package/components/fields-core-functions-v3/core-functions-v3.scss +30 -0
  307. package/components/fields-core-generic-v3/core-generic-v3.scss +299 -0
  308. package/components/fields-core-mixins-v3/core-mixins-v3.scss +744 -0
  309. package/components/fields-core-root-variables-v3/core-root-variables-v3.scss +47 -0
  310. package/components/fields-core-typography-mixins-v3/core-typography-mixins-v3.scss +1080 -0
  311. package/components/fields-core-typography-v3/core-typography-v3.scss +457 -0
  312. package/components/fields-core-wordpress-block-editor-preview-v3/core-wordpress-block-editor-preview-v3.js +270 -0
  313. package/components/fields-core-wordpress-block-editor-preview-v3/core-wordpress-block-editor-preview-v3.scss +106 -0
  314. package/components/fields-drink-responsibly-notice-v3/group_68751257883ad.json +266 -0
  315. package/components/fields-dynamic-critical-css-v3/group_65abcd463e8d0.json +126 -0
  316. package/components/fields-e-shop-settings-v3/e-shop-settings-v3.twig +87 -0
  317. package/components/fields-e-shop-settings-v3/group_650b24b4e623d.json +803 -0
  318. package/components/fields-global-preload-v3/group_65e0bd35e781b.json +289 -0
  319. package/components/fields-image-management-service-v3/group_677813165b633.json +149 -0
  320. package/components/fields-ingredients-list/group_6900f19dadebf.json +225 -0
  321. package/components/fields-modal-popup-content-v3/group_689876f1ee3fc.json +403 -0
  322. package/components/fields-modal-popup-content-v3/modal-popup-content-v3.twig +18 -0
  323. package/components/fields-post-info-v3/group_6867bbe167dd2.json +1089 -0
  324. package/components/fields-product-info-v3/group_689098dd3a131.json +721 -0
  325. package/components/fields-upload-filesize-limit-v3/group_659d259760a1d.json +56 -0
  326. package/components/fields-video-management-services-v3/group_67b4cac05cb30.json +146 -0
  327. package/components/webc-counter-display/counter-display.css +2 -0
  328. package/components/webc-counter-display/counter-display.html +5 -0
  329. package/components/webc-counter-display/counter-display.js +30 -0
  330. package/components/webc-counter-display/index.html +30 -0
  331. package/components/webc-layout-container/index.html +108 -0
  332. package/components/webc-layout-container/layout-container.css +9 -0
  333. package/components/webc-layout-container/layout-container.html +5 -0
  334. package/components/webc-layout-container/layout-container.js +22 -0
  335. package/components/webc-loadmore-trigger/index.html +30 -0
  336. package/components/webc-loadmore-trigger/loadmore-trigger.css +20 -0
  337. package/components/webc-loadmore-trigger/loadmore-trigger.html +6 -0
  338. package/components/webc-loadmore-trigger/loadmore-trigger.js +34 -0
  339. package/components/webc-post-carousel-display-module/index.html +30 -0
  340. package/components/webc-post-carousel-display-module/post-carousel-display-module.css +36 -0
  341. package/components/webc-post-carousel-display-module/post-carousel-display-module.html +5 -0
  342. package/components/webc-post-carousel-display-module/post-carousel-display-module.js +48 -0
  343. package/components/webc-post-filter-module/dev-content/amber.webp +0 -0
  344. package/components/webc-post-filter-module/dev-content/bluey.webp +0 -0
  345. package/components/webc-post-filter-module/dev-content/chucky-vanille.webp +0 -0
  346. package/components/webc-post-filter-module/dev-content/dev-content.js +347 -0
  347. package/components/webc-post-filter-module/dev-content/dev-contentlocal.js +362 -0
  348. package/components/webc-post-filter-module/dev-content/fat-gigio-basket-life.webp +0 -0
  349. package/components/webc-post-filter-module/dev-content/fat-gigio-kitten.webp +0 -0
  350. package/components/webc-post-filter-module/dev-content/fat-gigio-sleepy.webp +0 -0
  351. package/components/webc-post-filter-module/dev-content/kai-lounging.webp +0 -0
  352. package/components/webc-post-filter-module/dev-content/kai-selfie.webp +0 -0
  353. package/components/webc-post-filter-module/dev-content/kai.webp +0 -0
  354. package/components/webc-post-filter-module/dev-content/lulu-mad.webp +0 -0
  355. package/components/webc-post-filter-module/dev-content/lulu-serious.webp +0 -0
  356. package/components/webc-post-filter-module/dev-content/martha-on-the-mat.webp +0 -0
  357. package/components/webc-post-filter-module/dev-content/max-on-the-mat.webp +0 -0
  358. package/components/webc-post-filter-module/dev-content/mephy-dreams-of-mice.webp +0 -0
  359. package/components/webc-post-filter-module/dev-content/mr-business-doing-work.webp +0 -0
  360. package/components/webc-post-filter-module/dev-content/mr-business-on-top.webp +0 -0
  361. package/components/webc-post-filter-module/dev-content/peanut-keeping-an-eye.webp +0 -0
  362. package/components/webc-post-filter-module/dev-content/pete-at-work.webp +0 -0
  363. package/components/webc-post-filter-module/dev-content/pete-bath.webp +0 -0
  364. package/components/webc-post-filter-module/dev-content/pete-dinosaur.webp +0 -0
  365. package/components/webc-post-filter-module/dev-content/pete-lawn.webp +0 -0
  366. package/components/webc-post-filter-module/dev-content/pete-snacks.webp +0 -0
  367. package/components/webc-post-filter-module/dev-content/ramses-kitten.webp +0 -0
  368. package/components/webc-post-filter-module/dev-content/ramses-school-day.webp +0 -0
  369. package/components/webc-post-filter-module/dev-content/ramses-tired.webp +0 -0
  370. package/components/webc-post-filter-module/dev-content/remy-garden-contemplation.webp +0 -0
  371. package/components/webc-post-filter-module/dev-content/sky-field.webp +0 -0
  372. package/components/webc-post-filter-module/dev-content/sky-luxury-2.webp +0 -0
  373. package/components/webc-post-filter-module/dev-content/sky-luxury.webp +0 -0
  374. package/components/webc-post-filter-module/dev-content/sky-puppy-good-dog.webp +0 -0
  375. package/components/webc-post-filter-module/dev-content/sky-puppy-pose.webp +0 -0
  376. package/components/webc-post-filter-module/dev-content/sky-security.webp +0 -0
  377. package/components/webc-post-filter-module/dev-content/vanille-asleep.webp +0 -0
  378. package/components/webc-post-filter-module/dev-content/vanille-bass.webp +0 -0
  379. package/components/webc-post-filter-module/dev-content/vanille-party.webp +0 -0
  380. package/components/webc-post-filter-module/dev-content/vanille-puppy-eyes.webp +0 -0
  381. package/components/webc-post-filter-module/dev-content/vanille-puppy.webp +0 -0
  382. package/components/webc-post-filter-module/index.html +30 -0
  383. package/components/webc-post-filter-module/post-filter-module.css +59 -0
  384. package/components/webc-post-filter-module/post-filter-module.html +13 -0
  385. package/components/webc-post-filter-module/post-filter-module.js +359 -0
  386. package/components/webc-post-filter-module-no-group/index.html +30 -0
  387. package/components/webc-post-filter-module-no-group/post-filter-module-no-group.css +59 -0
  388. package/components/webc-post-filter-module-no-group/post-filter-module-no-group.html +13 -0
  389. package/components/webc-post-filter-module-no-group/post-filter-module-no-group.js +312 -0
  390. package/components/webc-post-grid-display-module/index.html +30 -0
  391. package/components/webc-post-grid-display-module/post-grid-display-module.css +42 -0
  392. package/components/webc-post-grid-display-module/post-grid-display-module.html +6 -0
  393. package/components/webc-post-grid-display-module/post-grid-display-module.js +48 -0
  394. package/components/webc-ptfg-9000/index.html +108 -0
  395. package/components/webc-ptfg-9000/ptfg-9000.css +14 -0
  396. package/components/webc-ptfg-9000/ptfg-9000.html +1 -0
  397. package/components/webc-ptfg-9000/ptfg-9000.js +42 -0
  398. package/components/webc-responsive-image/index.html +108 -0
  399. package/components/webc-responsive-image/layout-container.css +9 -0
  400. package/components/webc-responsive-image/layout-container.js +22 -0
  401. package/components/webc-responsive-image/responsive-image.html +15 -0
  402. package/components/webc-slot-test/slot-test.html +25 -0
  403. package/components/webc-text-input-trigger/index.html +30 -0
  404. package/components/webc-text-input-trigger/text-input-trigger.css +6 -0
  405. package/components/webc-text-input-trigger/text-input-trigger.html +4 -0
  406. package/components/webc-text-input-trigger/text-input-trigger.js +33 -0
  407. package/components/webc-toggle-trigger/index.html +30 -0
  408. package/components/webc-toggle-trigger/toggle-trigger.css +13 -0
  409. package/components/webc-toggle-trigger/toggle-trigger.html +8 -0
  410. package/components/webc-toggle-trigger/toggle-trigger.js +53 -0
  411. package/createDynamicBlockScss-v3.js +25 -0
  412. package/createJsAssets-v3.js +35 -0
  413. package/createJsAssets.js +31 -0
  414. package/createNewBlock.js +131 -0
  415. package/createNewChildBlock2.js +140 -0
  416. package/createPreviewScss.js +35 -0
  417. package/datalayer-tools.mjs +2 -0
  418. package/duplicateBlock.js +123 -0
  419. package/esbuild.mjs +87 -0
  420. package/exportAllBlocks.js +147 -0
  421. package/exportBlock.js +109 -0
  422. package/exportChildBlock.js +102 -0
  423. package/exportCustomCachesToLibrary.js +76 -0
  424. package/exportEntrypointToLibrary.js +79 -0
  425. package/exportImagesToLibrary.js +68 -0
  426. package/exportSEOExtrasToLibrary.js +76 -0
  427. package/exportToLibrary.js +551 -0
  428. package/importBlock.js +92 -0
  429. package/importChildBlock.js +76 -0
  430. package/install-component.js +204 -0
  431. package/list-components.js +9 -0
  432. package/new-block-templates/template-acf-pattern.js +30 -0
  433. package/new-block-templates/template-block-json.js +37 -0
  434. package/new-block-templates/template-default.js +24 -0
  435. package/new-block-templates/template-js-blank.js +12 -0
  436. package/new-block-templates/template-scss-blank.js +6 -0
  437. package/no-audio.vtt +4 -0
  438. package/onion-loader-dev.js +260 -0
  439. package/onion-loader-local.js +222 -0
  440. package/onion-loader-v2.js +285 -0
  441. package/onion-loader.js +14 -22
  442. package/package.json +1 -9
  443. package/public/.gitkeep +0 -0
  444. package/public/assetList.mjs +3 -0
  445. package/public/block-accent-image-v3/accent-image-v3.css +2 -0
  446. package/public/block-accent-image-v3/accent-image-v3.js +7 -0
  447. package/public/block-accordion-v3/accordion-v3.css +380 -0
  448. package/public/block-accordion-v3/accordion-v3.js +117 -0
  449. package/public/block-back-to-top-button-v3/back-to-top-button-v3.css +64 -0
  450. package/public/block-back-to-top-button-v3/back-to-top-button-v3.js +12 -0
  451. package/public/block-betterreviews-display-v3/betterreviews-display-v3.css +95 -0
  452. package/public/block-betterreviews-display-v3/betterreviews-display-v3.js +7 -0
  453. package/public/block-block-interactions-v3/block-interactions-v3.css +36 -0
  454. package/public/block-block-interactions-v3/block-interactions-v3.js +44 -0
  455. package/public/block-carousel-multi-layout-v3/carousel-multi-layout-v3.css +187 -0
  456. package/public/block-carousel-multi-layout-v3/carousel-multi-layout-v3.js +185 -0
  457. package/public/block-cocktail-recipe-v3/cocktail-recipe-v3.css +268 -0
  458. package/public/block-cocktail-recipe-v3/cocktail-recipe-v3.js +95 -0
  459. package/public/block-cover-link-v3/cover-link-v3.css +8 -0
  460. package/public/block-cover-link-v3/cover-link-v3.js +7 -0
  461. package/public/block-divider-v3/divider-v3.css +74 -0
  462. package/public/block-divider-v3/divider-v3.js +7 -0
  463. package/public/block-featured-image-gallery-v3/featured-image-gallery-v3.css +98 -0
  464. package/public/block-featured-image-gallery-v3/featured-image-gallery-v3.js +44 -0
  465. package/public/block-form-selection-v3/form-selection-v3.css +31 -0
  466. package/public/block-form-selection-v3/form-selection-v3.js +61 -0
  467. package/public/block-gradient-layer-v3/gradient-layer-v3.css +45 -0
  468. package/public/block-gradient-layer-v3/gradient-layer-v3.js +7 -0
  469. package/public/block-group-container-v3/group-container-v3.css +303 -0
  470. package/public/block-group-container-v3/group-container-v3.js +7 -0
  471. package/public/block-lottie-content-v3/lottie-content-v3.css +0 -0
  472. package/public/block-lottie-content-v3/lottie-content-v3.js +25 -0
  473. package/public/block-market-selector-v3/market-selector-v3.css +136 -0
  474. package/public/block-market-selector-v3/market-selector-v3.js +7 -0
  475. package/public/block-modal-form-v3/modal-form-v3.css +0 -0
  476. package/public/block-modal-form-v3/modal-form-v3.js +48 -0
  477. package/public/block-nav-menu-container-v3/nav-menu-container-v3.css +3 -0
  478. package/public/block-nav-menu-container-v3/nav-menu-container-v3.js +7 -0
  479. package/public/block-post-info-v3/post-info-v3.css +1148 -0
  480. package/public/block-post-info-v3/post-info-v3.js +7 -0
  481. package/public/block-post-type-filter-grid-v3/post-type-filter-grid-v3.css +873 -0
  482. package/public/block-post-type-filter-grid-v3/post-type-filter-grid-v3.js +13 -0
  483. package/public/block-product-info-v3/product-info-v3.css +846 -0
  484. package/public/block-product-info-v3/product-info-v3.js +7 -0
  485. package/public/block-raw-html-v3/raw-html-v3.css +0 -0
  486. package/public/block-raw-html-v3/raw-html-v3.js +7 -0
  487. package/public/block-responsive-table-v3/responsive-table-v3.css +50 -0
  488. package/public/block-responsive-table-v3/responsive-table-v3.js +7 -0
  489. package/public/block-scrolling-banner-v3/scrolling-banner-v3.css +93 -0
  490. package/public/block-scrolling-banner-v3/scrolling-banner-v3.js +118 -0
  491. package/public/block-section-separator-v3/section-separator-v3.css +43 -0
  492. package/public/block-section-separator-v3/section-separator-v3.js +7 -0
  493. package/public/block-single-column-container-v3/single-column-container-v3.css +14 -0
  494. package/public/block-single-column-container-v3/single-column-container-v3.js +7 -0
  495. package/public/block-single-responsive-image-v3/single-responsive-image-v3.css +61 -0
  496. package/public/block-single-responsive-image-v3/single-responsive-image-v3.js +7 -0
  497. package/public/block-site-copyright-notice-v3/site-copyright-notice-v3.css +20 -0
  498. package/public/block-site-copyright-notice-v3/site-copyright-notice-v3.js +44 -0
  499. package/public/block-site-logo-container-v3/site-logo-container-v3.css +18 -0
  500. package/public/block-site-logo-container-v3/site-logo-container-v3.js +7 -0
  501. package/public/block-site-title-and-tagline-v3/site-title-and-tagline-v3.css +12 -0
  502. package/public/block-site-title-and-tagline-v3/site-title-and-tagline-v3.js +7 -0
  503. package/public/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.css +25 -0
  504. package/public/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.js +8 -0
  505. package/public/block-social-networks-v3/social-networks-v3.css +74 -0
  506. package/public/block-social-networks-v3/social-networks-v3.js +7 -0
  507. package/public/block-spacer-v3/spacer-v3.css +16 -0
  508. package/public/block-spacer-v3/spacer-v3.js +2 -0
  509. package/public/block-spotify-embed-v3/spotify-embed-v3.css +7 -0
  510. package/public/block-spotify-embed-v3/spotify-embed-v3.js +7 -0
  511. package/public/block-standard-content-v3/standard-content-v3.css +423 -0
  512. package/public/block-standard-content-v3/standard-content-v3.js +7 -0
  513. package/public/block-sticky-buy-cta-v3/sticky-buy-cta-v3.css +0 -0
  514. package/public/block-sticky-buy-cta-v3/sticky-buy-cta-v3.js +7 -0
  515. package/public/block-sub-group-container-v3/sub-group-container-v3.css +288 -0
  516. package/public/block-sub-group-container-v3/sub-group-container-v3.js +2 -0
  517. package/public/block-video-content-v3/video-content-v3.css +102 -0
  518. package/public/block-video-content-v3/video-content-v3.js +11 -0
  519. package/public/dynamicBlockScss-v3.css +6392 -0
  520. package/public/dynamicBlockScss-v3.scss +37 -0
  521. package/public/jsAssets.mjs +4 -0
  522. package/public/publicBundleBase.css +4742 -0
  523. package/public/publicBundleBase.scss +11 -0
  524. package/removeBlock.js +124 -0
  525. package/update-all-components.js +96 -0
  526. package/update-component.js +538 -0
  527. package/update-template.js +538 -0
@@ -0,0 +1,222 @@
1
+ import jsAssetList from './public/jsAssets.mjs';
2
+ const coreAssets = jsAssetList.dynamicAssets;
3
+
4
+ /* eslint-disable no-use-before-define */
5
+ /* eslint-disable no-console */
6
+
7
+ //*** Lazyloader ***//
8
+
9
+ /**
10
+ * The options object for the lazyloader.
11
+ * @type {object}
12
+ * @property {string} rootMargin The root margin for the IntersectionObserver.
13
+ * @default '0% 0% 0%'
14
+ * @property {number} threshold The threshold for the IntersectionObserver.
15
+ * @property {boolean} debugLogMessages Whether to log debug messages.
16
+ * @property {array} lazyBlocksToSearchFor The array of lazy blocks to search for.
17
+ * @property {array} lazyBlocksFound The array of lazy blocks found.
18
+ * @property {array} assetArray The array of assets to load.
19
+ * @property {object} assetMap The asset map object.
20
+ * @property {boolean} ignoreCss Whether to ignore the css.
21
+ * @property {boolean} lazy Whether to lazy load the assets (after Assets alias).
22
+ * @property {string} filePath The file path for the js assets.
23
+ * @default 'js/blocks/'
24
+ * @property {string} filePathCss The file path for the css assets (after Assets alias).
25
+ * @default 'scss/blocks/'
26
+ */
27
+
28
+ const options = {
29
+ rootMargin: '100% 0px 300px 0px',
30
+ threshold: 0,
31
+ debugLogMessages: false,
32
+ lazyBlocksToSearchFor: [],
33
+ lazyBlocksFound: [],
34
+ coreAssets: [...coreAssets],
35
+ projectAssets: [],
36
+ assetMap: {},
37
+ css: true,
38
+ lazy: true,
39
+ cssLoadingStyle: 'component', // 'component' or 'bundle'
40
+ filePrefix: 'dev', //'nodemodules', 'assets' or 'dev'
41
+ fileSuffixJs: '.js',
42
+ fileSuffixCss: '.css',
43
+ filePath: 'js/blocks',
44
+ filePathCss: 'scss/blocks'
45
+ };
46
+
47
+ /**
48
+ * Initializes the lazyloader.
49
+ */
50
+ function lazyloaderInit() {
51
+ const assetArray = options.coreAssets.concat(options.projectAssets);
52
+ options.debugLogMessages && console.log('Lazy Loader initialized!');
53
+ options.lazyBlocksToSearchFor = [];
54
+ assetArray.forEach((asset) => {
55
+ if (asset.assetKey.includes('-v3') || asset.assetKey.includes('-v4')) {
56
+ options.assetMap[asset.assetKey] = {
57
+ js: () =>
58
+ import(
59
+ `./public/block-${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
60
+ )
61
+ };
62
+ }
63
+
64
+ // Add to lazy blocks to search for
65
+ options.lazyBlocksToSearchFor.push(
66
+ `[data-assetkey="${asset.assetKey}"]`
67
+ );
68
+ });
69
+
70
+ options.lazyBlocksToSearchFor.forEach((block) => {
71
+ if (document.querySelector(block)) {
72
+ options.lazyBlocksFound.push(document.querySelector(block));
73
+ }
74
+ });
75
+
76
+ // options.lazyBlocksFound = Array.from(
77
+ // document.querySelectorAll(options.lazyBlocksToSearchFor)
78
+ // );
79
+
80
+ // If data eager loading attribute is true - load js straight away
81
+ options.lazyBlocksFound.forEach((block) => {
82
+ if (block.dataset.eager == 'true') {
83
+ callBlockJs(block);
84
+ }
85
+ });
86
+
87
+ options.debugLogMessages && console.log('Lazyloader Options', options);
88
+
89
+ // Check if the browser has intersection observer which is needed for the Lazyloader or if all assets should load immediately anyway.
90
+ if (options.lazy === false || !('IntersectionObserver' in window)) {
91
+ options.debugLogMessages && console.log('running eager loading');
92
+ try {
93
+ options.lazyBlocksFound.forEach((block) => {
94
+ callBlockJs(block);
95
+ });
96
+ } catch (error) {
97
+ console.log(error);
98
+ }
99
+ } else {
100
+ options.debugLogMessages && console.log('running normal process');
101
+ observerInit(options.lazyBlocksFound);
102
+ }
103
+ }
104
+
105
+ /**
106
+ * Initializes the IntersectionObserver for the lazy loading of blocks.
107
+ * @param {array} elementsToObserve The array of block elements to observe.
108
+ */
109
+ function observerInit(elementsToObserve = []) {
110
+ const observer = new IntersectionObserver(intersectionCallback, options);
111
+ elementsToObserve.forEach((element) => {
112
+ if (element) {
113
+ observer.observe(element);
114
+ }
115
+ });
116
+ }
117
+
118
+ /**
119
+ * Callback function for the IntersectionObserver.
120
+ * @param {array} entries The entries array from the IntersectionObserver.
121
+ * @param {object} observer The IntersectionObserver object.
122
+ */
123
+ const intersectionCallback = (entries, observer) => {
124
+ options.debugLogMessages && console.log('Observer entries', entries);
125
+ entries.forEach((entry) => {
126
+ if (entry.isIntersecting) {
127
+ const lazyTarget = entry.target;
128
+ try {
129
+ callBlockJs(lazyTarget);
130
+ } catch (error) {
131
+ console.log(
132
+ error,
133
+ 'block data assetkey:',
134
+ lazyTarget.dataset.assetkey,
135
+ ' - ',
136
+ 'asset import function:',
137
+ options.assetMap[lazyTarget.dataset.assetkey],
138
+ 'are you missing an asset key or import function?'
139
+ );
140
+ }
141
+ observer.unobserve(lazyTarget);
142
+ options.debugLogMessages &&
143
+ console.log('Unobserving lazyElement', lazyTarget);
144
+ }
145
+ });
146
+ };
147
+
148
+ /**
149
+ * Calls the block asset functions and adds the loaded class to the block.
150
+ * @param {object} block The block element.
151
+ */
152
+ function callBlockJs(block) {
153
+ if (!block.classList.contains('loaded')) {
154
+ Promise.all([
155
+ options.assetMap[block.dataset.assetkey].js(),
156
+ block.dataset.cssload !== 'false' && loadCss(block.dataset.assetkey)
157
+ ]).then((module) => {
158
+ try {
159
+ if (block.dataset.jsload !== 'false') {
160
+ module[0].default({
161
+ block,
162
+ css: false
163
+ });
164
+ } else {
165
+ options.debugLogMessages &&
166
+ console.log(
167
+ `Skipping JS load for block: ${block.dataset.assetkey}`
168
+ );
169
+ }
170
+ // block.classList.add('loaded');
171
+ } catch (error) {
172
+ console.log('could not load block js', error);
173
+ }
174
+ });
175
+ }
176
+ }
177
+
178
+ /**
179
+ * Checks to see if the css for the block has already been included in the 'criticalconfig' window object.
180
+ * Will return true if it is.
181
+ * @param {string} assetKey The assetkey string of the block.
182
+ * @returns {boolean}
183
+ */
184
+ export function inCriticalCssConfig(assetKey) {
185
+ if (!globalThis.criticalConfig) {
186
+ return false;
187
+ }
188
+ if (
189
+ globalThis.criticalConfig &&
190
+ globalThis.criticalConfig.indexOf(assetKey) === -1
191
+ ) {
192
+ return false;
193
+ }
194
+ return true;
195
+ }
196
+
197
+ /**
198
+ * Dynamically loads the css for the block if it has not already been included in critical css or the css property is set to false.
199
+ * @param {string} assetKey The assetkey string of the block.
200
+ * @param {object} options The options object which will at the very least contain the css property set to true.
201
+ * @returns {promise}
202
+ */
203
+ export function loadCss(assetKey) {
204
+ if (options.css == true) {
205
+ const promise = new Promise((resolve) => {
206
+ if (!inCriticalCssConfig(assetKey)) {
207
+ const link = `<link rel="stylesheet" href="./public/block-${assetKey}/${assetKey}${options.fileSuffixCss}" />`;
208
+ document.head.insertAdjacentHTML('beforeend', link);
209
+ resolve(true);
210
+ } else {
211
+ return resolve(true);
212
+ }
213
+ });
214
+ }
215
+ }
216
+
217
+ const api = {
218
+ lazyloaderInit,
219
+ options
220
+ };
221
+
222
+ export default api;
@@ -0,0 +1,285 @@
1
+ import jsAssetList from './public/jsAssets.mjs';
2
+ const coreAssets = jsAssetList.dynamicAssets;
3
+
4
+ /* eslint-disable no-use-before-define */
5
+ /* eslint-disable no-console */
6
+
7
+ //*** Lazyloader ***//
8
+
9
+ /**
10
+ * The options object for the lazyloader.
11
+ * @type {object}
12
+ * @property {string} rootMargin The root margin for the IntersectionObserver.
13
+ * @default '0% 0% 0%'
14
+ * @property {number} threshold The threshold for the IntersectionObserver.
15
+ * @property {boolean} debugLogMessages Whether to log debug messages.
16
+ * @property {array} lazyBlocksToSearchFor The array of lazy blocks to search for.
17
+ * @property {array} lazyBlocksFound The array of lazy blocks found.
18
+ * @property {array} assetArray The array of assets to load.
19
+ * @property {object} assetMap The asset map object.
20
+ * @property {boolean} ignoreCss Whether to ignore the css.
21
+ * @property {boolean} lazy Whether to lazy load the assets (after Assets alias).
22
+ * @property {string} filePath The file path for the js assets.
23
+ * @default 'js/blocks/'
24
+ * @property {string} filePathCss The file path for the css assets (after Assets alias).
25
+ * @default 'scss/blocks/'
26
+ */
27
+
28
+ const options = {
29
+ rootMargin: '100% 0px 300px 0px',
30
+ threshold: 0,
31
+ debugLogMessages: false,
32
+ lazyBlocksToSearchFor: [],
33
+ lazyBlocksFound: [],
34
+ coreAssets: [...coreAssets],
35
+ projectAssets: [],
36
+ assetMap: {},
37
+ css: true,
38
+ lazy: true,
39
+ cssLoadingStyle: 'component', // 'component' or 'bundle'
40
+ filePrefix: 'nodemodules', //'nodemodules', 'assets' or 'dev'
41
+ fileSuffixJs: '.js',
42
+ fileSuffixCss: '.scss',
43
+ filePath: 'js/blocks',
44
+ filePathCss: 'scss/blocks'
45
+ };
46
+
47
+ /**
48
+ * Initializes the lazyloader.
49
+ */
50
+ function lazyloaderInit() {
51
+ const assetArray = options.coreAssets.concat(options.projectAssets);
52
+ options.debugLogMessages && console.log('Lazy Loader initialized!');
53
+ options.lazyBlocksToSearchFor = [];
54
+ assetArray.forEach((asset) => {
55
+ // if (
56
+ // asset.assetKey.includes('-v3') &&
57
+ // !asset.assetKey.includes('sub-block')
58
+ // ) {
59
+ // options.assetMap[asset.assetKey] = {
60
+ // js: () =>
61
+ // import(
62
+ // `Assets/blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
63
+ // ),
64
+ // // import(
65
+ // // `NodeModules/@total_onion/onion-library/components/block-${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
66
+ // // ),
67
+ // css: options.ignoreCss === true
68
+ // };
69
+ // }
70
+ if (asset.assetKey.includes('-v3')) {
71
+ options.assetMap[asset.assetKey] = {
72
+ js: () =>
73
+ import(
74
+ `Assets/sub-blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
75
+ ),
76
+ css: options.ignoreCss === false
77
+ };
78
+ }
79
+ if (!asset.assetKey.includes('-v3')) {
80
+ options.assetMap[asset.assetKey] = {
81
+ js: () =>
82
+ import(
83
+ `Assets/blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
84
+ ),
85
+ css: options.ignoreCss === false
86
+ };
87
+ }
88
+
89
+ // Add to lazy blocks to search for
90
+ options.lazyBlocksToSearchFor.push(
91
+ `[data-assetkey="${asset.assetKey}"]`
92
+ );
93
+ options.lazyBlocksFound = Array.from(
94
+ document.querySelectorAll(options.lazyBlocksToSearchFor)
95
+ );
96
+ });
97
+
98
+ // If data eager loading attribute is true - load js straight away
99
+ options.lazyBlocksFound.forEach((block) => {
100
+ if (block.dataset.eager == 'true') {
101
+ callBlockJs(block);
102
+ }
103
+ });
104
+
105
+ options.debugLogMessages && console.log('Lazyloader Options', options);
106
+
107
+ // Check if the browser has intersection observer which is needed for the Lazyloader or if all assets should load immediately anyway.
108
+ if (options.lazy === false || !('IntersectionObserver' in window)) {
109
+ options.debugLogMessages && console.log('running eager loading');
110
+ try {
111
+ options.lazyBlocksFound.forEach((block) => {
112
+ callBlockJs(block);
113
+ });
114
+ } catch (error) {
115
+ console.log(error);
116
+ }
117
+ } else {
118
+ options.debugLogMessages && console.log('running normal process');
119
+ observerInit(options.lazyBlocksFound);
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Initializes the IntersectionObserver for the lazy loading of blocks.
125
+ * @param {array} elementsToObserve The array of block elements to observe.
126
+ */
127
+ function observerInit(elementsToObserve = []) {
128
+ const observer = new IntersectionObserver(intersectionCallback, options);
129
+ elementsToObserve.forEach((element) => {
130
+ if (element) {
131
+ observer.observe(element);
132
+ }
133
+ });
134
+ }
135
+
136
+ /**
137
+ * Callback function for the IntersectionObserver.
138
+ * @param {array} entries The entries array from the IntersectionObserver.
139
+ * @param {object} observer The IntersectionObserver object.
140
+ */
141
+ const intersectionCallback = (entries, observer) => {
142
+ options.debugLogMessages && console.log('Observer entries', entries);
143
+ entries.forEach((entry) => {
144
+ if (entry.isIntersecting) {
145
+ const lazyTarget = entry.target;
146
+ try {
147
+ callBlockJs(lazyTarget);
148
+ } catch (error) {
149
+ console.log(
150
+ error,
151
+ 'block data assetkey:',
152
+ lazyTarget.dataset.assetkey,
153
+ ' - ',
154
+ 'asset import function:',
155
+ options.assetMap[lazyTarget.dataset.assetkey],
156
+ 'are you missing an asset key or import function?'
157
+ );
158
+ }
159
+ observer.unobserve(lazyTarget);
160
+ options.debugLogMessages &&
161
+ console.log('Unobserving lazyElement', lazyTarget);
162
+ }
163
+ });
164
+ };
165
+
166
+ /**
167
+ * Calls the block asset functions and adds the loaded class to the block.
168
+ * @param {object} block The block element.
169
+ */
170
+ function callBlockJs(block) {
171
+ if (!block.classList.contains('loaded')) {
172
+ Promise.all([
173
+ options.assetMap[block.dataset.assetkey].js(),
174
+ block.dataset.cssload !== 'false' && loadCss(block.dataset.assetkey)
175
+ ]).then((module) => {
176
+ try {
177
+ if (block.dataset.jsload !== 'false') {
178
+ module[0].default({
179
+ block,
180
+ css: false
181
+ });
182
+ } else {
183
+ options.debugLogMessages &&
184
+ console.log(
185
+ `Skipping JS load for block: ${block.dataset.assetkey}`
186
+ );
187
+ }
188
+ block.classList.add('loaded');
189
+ } catch (error) {
190
+ console.log('could not load block js', error);
191
+ }
192
+ });
193
+ }
194
+ }
195
+
196
+ /**
197
+ * Checks to see if the css for the block has already been included in the 'criticalconfig' window object.
198
+ * Will return true if it is.
199
+ * @param {string} assetKey The assetkey string of the block.
200
+ * @returns {boolean}
201
+ */
202
+ export function inCriticalCssConfig(assetKey) {
203
+ if (!globalThis.criticalConfig) {
204
+ return false;
205
+ }
206
+ if (
207
+ globalThis.criticalConfig &&
208
+ globalThis.criticalConfig.indexOf(assetKey) === -1
209
+ ) {
210
+ return false;
211
+ }
212
+ return true;
213
+ }
214
+
215
+ /**
216
+ * Dynamically loads the css for the block if it has not already been included in critical css or the css property is set to false.
217
+ * @param {string} assetKey The assetkey string of the block.
218
+ * @param {object} options The options object which will at the very least contain the css property set to true.
219
+ * @returns {promise}
220
+ */
221
+ export function loadCss(assetKey) {
222
+ // if (options.css == true && options.cssLoadingStyle === "bundle") {
223
+ // options.debugLogMessages && console.log("using css bundle");
224
+ // const promise = new Promise((resolve) => {
225
+ // import(
226
+ // `NodeModules/@total_onion/onion-library/public/publicbundlecss.css`
227
+ // ).then(() => {
228
+ // console.log("resolved");
229
+ // resolve(true);
230
+ // });
231
+ // });
232
+ // return promise;
233
+ // }
234
+ if (
235
+ options.css == true &&
236
+ options.cssLoadingStyle === 'component' &&
237
+ options.filePrefix === 'nodemodules'
238
+ ) {
239
+ options.debugLogMessages && console.log('using individual css');
240
+ const promise = new Promise((resolve) => {
241
+ if (
242
+ options.css === true &&
243
+ !inCriticalCssConfig(assetKey) &&
244
+ assetKey.includes('-v3')
245
+ ) {
246
+ import(
247
+ /* webpackChunkName: "[request]" */ `Assets/sub-blocks/${assetKey}/${assetKey}${options.fileSuffixCss}`
248
+ ).then(() => resolve(true));
249
+ } else if (
250
+ options.css === true &&
251
+ !inCriticalCssConfig(assetKey) &&
252
+ !assetKey.includes('-v3')
253
+ ) {
254
+ import(
255
+ /* webpackChunkName: "[request]" */ `Assets/blocks/${assetKey}/${assetKey}${options.fileSuffixCss}`
256
+ ).then(() => resolve(true));
257
+ } else {
258
+ return resolve(true);
259
+ }
260
+ });
261
+ }
262
+ // if (
263
+ // options.css == true &&
264
+ // options.cssLoadingStyle === "component" &&
265
+ // options.filePrefix === "dev"
266
+ // ) {
267
+ // options.debugLogMessages && console.log("using dev css");
268
+ // const promise = new Promise((resolve) => {
269
+ // if (options.css === true && !inCriticalCssConfig(assetKey)) {
270
+ // import(
271
+ // `../../../../../../../../onion-library/components/block-${assetKey}/${assetKey}${options.fileSuffixCss}`
272
+ // ).then(() => resolve(true));
273
+ // } else {
274
+ // return resolve(true);
275
+ // }
276
+ // });
277
+ // }
278
+ }
279
+
280
+ const api = {
281
+ lazyloaderInit,
282
+ options
283
+ };
284
+
285
+ export default api;
package/onion-loader.js CHANGED
@@ -52,35 +52,27 @@ function lazyloaderInit() {
52
52
  options.debugLogMessages && console.log('Lazy Loader initialized!');
53
53
  options.lazyBlocksToSearchFor = [];
54
54
  assetArray.forEach((asset) => {
55
- // if (
56
- // asset.assetKey.includes('-v3') &&
57
- // !asset.assetKey.includes('sub-block')
58
- // ) {
59
- // options.assetMap[asset.assetKey] = {
60
- // js: () =>
61
- // import(
62
- // `Assets/blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
63
- // ),
64
- // // import(
65
- // // `NodeModules/@total_onion/onion-library/components/block-${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
66
- // // ),
67
- // css: options.ignoreCss === true
68
- // };
69
- // }
70
- if (asset.assetKey.includes('-v3')) {
55
+ if (
56
+ options.filePrefix === 'nodemodules' &&
57
+ asset.assetKey.includes('-v3')
58
+ ) {
71
59
  options.assetMap[asset.assetKey] = {
72
60
  js: () =>
73
61
  import(
74
- `Assets/sub-blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
62
+ `NodeModules/@total_onion/onion-library/components/block-${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
75
63
  ),
76
- css: options.ignoreCss === false
64
+ css: options.ignoreCss === true
77
65
  };
66
+ } else {
78
67
  }
79
- if (!asset.assetKey.includes('-v3')) {
68
+ if (
69
+ options.filePrefix === 'nodemodules' &&
70
+ !asset.assetKey.includes('-v3')
71
+ ) {
80
72
  options.assetMap[asset.assetKey] = {
81
73
  js: () =>
82
74
  import(
83
- `Assets/blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
75
+ `Assets/js/blocks/${asset.assetKey}${options.fileSuffixJs}`
84
76
  ),
85
77
  css: options.ignoreCss === false
86
78
  };
@@ -244,7 +236,7 @@ export function loadCss(assetKey) {
244
236
  assetKey.includes('-v3')
245
237
  ) {
246
238
  import(
247
- /* webpackChunkName: "[request]" */ `Assets/sub-blocks/${assetKey}/${assetKey}${options.fileSuffixCss}`
239
+ /* webpackChunkName: "[request]" */ `NodeModules/@total_onion/onion-library/components/block-${assetKey}/${assetKey}${options.fileSuffixCss}`
248
240
  ).then(() => resolve(true));
249
241
  } else if (
250
242
  options.css === true &&
@@ -252,7 +244,7 @@ export function loadCss(assetKey) {
252
244
  !assetKey.includes('-v3')
253
245
  ) {
254
246
  import(
255
- /* webpackChunkName: "[request]" */ `Assets/blocks/${assetKey}/${assetKey}${options.fileSuffixCss}`
247
+ /* webpackChunkName: "[request]" */ `Assets/scss/blocks/${assetKey}${options.fileSuffixCss}`
256
248
  ).then(() => resolve(true));
257
249
  } else {
258
250
  return resolve(true);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@total_onion/onion-library",
3
- "version": "3.2.0",
3
+ "version": "3.2.2",
4
4
  "description": "Component library",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -18,14 +18,6 @@
18
18
  "./onion-modalcontroller": "./onion-modalcontroller/onion-modalcontroller.js",
19
19
  "./onion-modalcontroller.js": "./onion-modalcontroller/onion-modalcontroller.js"
20
20
  },
21
- "files": [
22
- "index.js",
23
- "onion-utils.mjs",
24
- "onion-loader.js",
25
- "entry-animation-observer.js",
26
- "onion-videocontroller",
27
- "onion-modalcontroller"
28
- ],
29
21
  "scripts": {
30
22
  "build": "node build-library.js",
31
23
  "test": ""
File without changes
@@ -0,0 +1,3 @@
1
+
2
+ const dynamicAssets = ["./components/block-video-content-v3/video-content-v3.scss","./components/block-sub-group-container-v3/sub-group-container-v3.scss","./components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.scss","./components/block-standard-content-v3/standard-content-v3.scss","./components/block-spotify-embed-v3/spotify-embed-v3.scss","./components/block-spacer-v3/spacer-v3.scss","./components/block-social-networks-v3/social-networks-v3.scss","./components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.scss","./components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.scss","./components/block-site-logo-container-v3/site-logo-container-v3.scss","./components/block-site-copyright-notice-v3/site-copyright-notice-v3.scss","./components/block-single-responsive-image-v3/single-responsive-image-v3.scss","./components/block-single-column-container-v3/single-column-container-v3.scss","./components/block-section-separator-v3/section-separator-v3.scss","./components/block-scrolling-banner-v3/scrolling-banner-v3.scss","./components/block-responsive-table-v3/responsive-table-v3.scss","./components/block-raw-html-v3/raw-html-v3.scss","./components/block-product-info-v3/product-info-v3.scss","./components/block-post-info-v3/post-info-v3.scss","./components/block-nav-menu-container-v3/nav-menu-container-v3.scss","./components/block-modal-form-v3/modal-form-v3.scss","./components/block-market-selector-v3/market-selector-v3.scss","./components/block-lottie-content-v3/lottie-content-v3.scss","./components/block-group-container-v3/group-container-v3.scss","./components/block-gradient-layer-v3/gradient-layer-v3.scss","./components/block-form-selection-v3/form-selection-v3.scss","./components/block-featured-image-gallery-v3/featured-image-gallery-v3.scss","./components/block-divider-v3/divider-v3.scss","./components/block-cover-link-v3/cover-link-v3.scss","./components/block-cocktail-recipe-v3/cocktail-recipe-v3.scss","./components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.scss","./components/block-block-interactions-v3/block-interactions-v3.scss","./components/block-betterreviews-display-v3/betterreviews-display-v3.scss","./components/block-back-to-top-button-v3/back-to-top-button-v3.scss","./components/block-accordion-v3/accordion-v3.scss","./components/block-accent-image-v3/accent-image-v3.scss","./components/block-video-content-v3/video-content-v3.js","./components/block-sub-group-container-v3/sub-group-container-v3.js","./components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.js","./components/block-standard-content-v3/standard-content-v3.js","./components/block-spotify-embed-v3/spotify-embed-v3.js","./components/block-spacer-v3/spacer-v3.js","./components/block-social-networks-v3/social-networks-v3.js","./components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.js","./components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.js","./components/block-site-logo-container-v3/site-logo-container-v3.js","./components/block-site-copyright-notice-v3/site-copyright-notice-v3.js","./components/block-single-responsive-image-v3/single-responsive-image-v3.js","./components/block-single-column-container-v3/single-column-container-v3.js","./components/block-section-separator-v3/section-separator-v3.js","./components/block-scrolling-banner-v3/scrolling-banner-v3.js","./components/block-responsive-table-v3/responsive-table-v3.js","./components/block-raw-html-v3/raw-html-v3.js","./components/block-product-info-v3/product-info-v3.js","./components/block-post-info-v3/post-info-v3.js","./components/block-nav-menu-container-v3/nav-menu-container-v3.js","./components/block-modal-form-v3/modal-form-v3.js","./components/block-market-selector-v3/market-selector-v3.js","./components/block-lottie-content-v3/lottie-content-v3.js","./components/block-group-container-v3/group-container-v3.js","./components/block-gradient-layer-v3/gradient-layer-v3.js","./components/block-form-selection-v3/form-selection-v3.js","./components/block-featured-image-gallery-v3/featured-image-gallery-v3.js","./components/block-divider-v3/divider-v3.js","./components/block-cover-link-v3/cover-link-v3.js","./components/block-cocktail-recipe-v3/cocktail-recipe-v3.js","./components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.js","./components/block-block-interactions-v3/block-interactions-v3.js","./components/block-betterreviews-display-v3/betterreviews-display-v3.js","./components/block-back-to-top-button-v3/back-to-top-button-v3.js","./components/block-accordion-v3/accordion-v3.js","./components/block-accent-image-v3/accent-image-v3.js"];
3
+ export default dynamicAssets;
@@ -0,0 +1,2 @@
1
+ @layer base-styles {
2
+ }
@@ -0,0 +1,7 @@
1
+ export default function accentimagev3Js(options = {}) {
2
+ try {
3
+ const { block } = options;
4
+ } catch (error) {
5
+ console.error(error);
6
+ }
7
+ }