@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,127 @@
1
+ export default function cocktailrecipev3Js(options = {}) {
2
+ try {
3
+ const {block} = options;
4
+ const valueEl = block.querySelector('[data-servings-value]');
5
+ const decBtn = block.querySelector('[data-servings-dec]');
6
+ const incBtn = block.querySelector('[data-servings-inc]');
7
+ const decWrapper = block.querySelector('.dec-btn-wrapper');
8
+ const amountEls = block.querySelectorAll('[data-ingredients]');
9
+ const unitToggle = document.querySelector('[data-unit-toggle]');
10
+ const checkbox = unitToggle?.querySelector('[data-unit-checkbox]');
11
+
12
+ amountEls.forEach((el) => {
13
+ if (!el.dataset.baseAmount) {
14
+ el.dataset.baseAmount = el.dataset.amount || '';
15
+ }
16
+ if (!el.dataset.baseUnit) {
17
+ el.dataset.baseUnit = el.dataset.unit || '';
18
+ }
19
+ });
20
+
21
+ let currentUnit = 'ml';
22
+ const ML_TO_OZ = 0.033814;
23
+
24
+ const getServings = () => parseInt(valueEl.textContent, 10) || 1;
25
+ const setServings = (n) => {
26
+ valueEl.textContent = `${n}x`;
27
+ updateInactiveState(n);
28
+ };
29
+
30
+ const updateInactiveState = (value) => {
31
+ if (!decWrapper) return;
32
+ if (value <= 1) decWrapper.classList.add('inactive');
33
+ else decWrapper.classList.remove('inactive');
34
+ };
35
+
36
+ const formatNumber = (num, unit) => {
37
+ if (unit === 'oz')
38
+ return (Math.round(num * 100) / 100)
39
+ .toFixed(2)
40
+ .replace(/\.?0+$/, '');
41
+ if (unit === 'ml')
42
+ return (Math.round(num * 10) / 10)
43
+ .toString()
44
+ .replace(/\.0$/, '');
45
+ if (unit === 'cl')
46
+ return (Math.round(num * 100) / 100)
47
+ .toString()
48
+ .replace(/\.0$/, '');
49
+ return (Math.round(num * 100) / 100)
50
+ .toString()
51
+ .replace(/\.?0+$/, '');
52
+ };
53
+
54
+ const convert = (value, fromUnit, toUnit) => {
55
+ if (isNaN(value)) return value;
56
+ if (fromUnit === toUnit) return value;
57
+
58
+ if (fromUnit === 'ml' && toUnit === 'oz') return value * ML_TO_OZ;
59
+ if (fromUnit === 'oz' && toUnit === 'ml') return value / ML_TO_OZ;
60
+
61
+ return value;
62
+ };
63
+
64
+ const renderIngredients = () => {
65
+ const servings = getServings();
66
+
67
+ amountEls.forEach((el) => {
68
+ const baseAmount = parseFloat(el.dataset.baseAmount);
69
+ const baseUnit = el.dataset.baseUnit || '';
70
+ const name = el.dataset.name || '';
71
+
72
+ if (isNaN(baseAmount)) {
73
+ el.textContent = name;
74
+ return;
75
+ }
76
+
77
+ let amount = baseAmount * servings;
78
+ let displayUnit = baseUnit;
79
+
80
+ if (
81
+ (baseUnit === 'ml' || baseUnit === 'oz') &&
82
+ currentUnit !== baseUnit
83
+ ) {
84
+ amount = convert(amount, baseUnit, currentUnit);
85
+ displayUnit = currentUnit;
86
+ }
87
+
88
+ const numStr = formatNumber(amount, displayUnit);
89
+ const unitStr = displayUnit ? displayUnit : '';
90
+
91
+ el.textContent =
92
+ `${numStr}${unitStr ? unitStr : ''}${unitStr ? ' ' : ' '}${name}`.trim();
93
+ });
94
+ };
95
+
96
+ decBtn?.addEventListener('click', () => {
97
+ const cur = getServings();
98
+ if (cur > 1) {
99
+ setServings(cur - 1);
100
+ renderIngredients();
101
+ }
102
+ });
103
+
104
+ incBtn?.addEventListener('click', () => {
105
+ const cur = getServings();
106
+ if (cur < 99) {
107
+ setServings(cur + 1);
108
+ renderIngredients();
109
+ }
110
+ });
111
+
112
+ if (checkbox) {
113
+ checkbox.addEventListener('change', (e) => {
114
+ currentUnit = e.target.checked ? 'oz' : 'ml';
115
+ renderIngredients();
116
+ });
117
+ }
118
+
119
+ setServings(getServings() || 1);
120
+ currentUnit = 'ml';
121
+ renderIngredients();
122
+ updateInactiveState(getServings());
123
+
124
+ } catch (error) {
125
+ console.error(error);
126
+ }
127
+ }
@@ -0,0 +1,345 @@
1
+ @use '../fields-core-mixins-v3/core-mixins-v3';
2
+ @use '../fields-core-functions-v3/core-functions-v3';
3
+ @use '../../breakpoints';
4
+ @layer base-styles {
5
+ .cocktail-recipe-v3 {
6
+ pointer-events: all;
7
+
8
+ &__ingredients-container {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: core-functions-v3.fluidSize(20);
12
+ padding-bottom: core-functions-v3.fluidSize(50);
13
+
14
+ .ingredients-title {
15
+ padding-block: core-functions-v3.fluidSize(10);
16
+ font-family: var(--primary-font-family);
17
+ font-size: core-functions-v3.fontSize(80);
18
+ font-weight: 500;
19
+ text-transform: uppercase;
20
+ text-box-edge: cap alphabetic;
21
+ text-box-trim: trim-both;
22
+
23
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
24
+ font-size: core-functions-v3.fontSize(160);
25
+ }
26
+ }
27
+ }
28
+
29
+ &__servings {
30
+ display: flex;
31
+ justify-content: space-between;
32
+ align-items: center;
33
+ padding-block: core-functions-v3.fluidSize(15);
34
+ border-bottom: 1px solid #faf8ec4d;
35
+
36
+ .servings-title {
37
+ font-family: var(--secondary-font-family);
38
+ font-size: core-functions-v3.fontSize(26);
39
+ font-weight: 500;
40
+ }
41
+
42
+ .servings-control-wrapper {
43
+ display: flex;
44
+ align-items: center;
45
+ gap: core-functions-v3.fluidSize(15);
46
+
47
+ .dec-btn-wrapper {
48
+ width: 40px;
49
+ height: 40px;
50
+ border: 1px solid #faf8ec;
51
+ overflow: hidden;
52
+
53
+ // styled within the child block
54
+
55
+ // .servings-dec-btn {
56
+ // cursor: pointer;
57
+ // background-color: #0054ff;
58
+ // color: #faf8ec;
59
+ // font-size: 28px;
60
+ // padding-bottom: 4px;
61
+ // width: 100%;
62
+ // height: 100%;
63
+ // border: unset;
64
+ // transform: translateX(0);
65
+ // transition: transform 0.3s ease;
66
+
67
+ // &::after {
68
+ // content: '\2212';
69
+ // color: #0054ff;
70
+ // padding-top: 4px;
71
+ // width: 38px;
72
+ // height: 38px;
73
+ // position: absolute;
74
+ // top: 0;
75
+ // right: -38px;
76
+ // background-color: #faf8ec;
77
+ // }
78
+ // }
79
+
80
+ &:hover {
81
+ .servings-dec-btn {
82
+ transform: translateX(-100%);
83
+ }
84
+ }
85
+ }
86
+
87
+ .dec-btn-wrapper.inactive {
88
+ opacity: 0.4;
89
+ pointer-events: none;
90
+ }
91
+
92
+ .servings-current {
93
+ font-family: var(--secondary-font-family);
94
+ font-size: core-functions-v3.fontSize(26);
95
+ font-weight: 500;
96
+ display: inline-block;
97
+ width: core-functions-v3.fluidSize(60);
98
+ text-align: center;
99
+
100
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
101
+ font-size: core-functions-v3.fontSize(30);
102
+ }
103
+ }
104
+
105
+ .inc-btn-wrapper {
106
+ cursor: pointer;
107
+ width: 40px;
108
+ height: 40px;
109
+ border: 1px solid #faf8ec;
110
+ overflow: hidden;
111
+
112
+ // styled within the child block
113
+
114
+ // .servings-inc-btn {
115
+ // cursor: pointer;
116
+ // color: #0054ff;
117
+ // font-size: 30px;
118
+ // background-color: #faf8ec;
119
+ // width: 100%;
120
+ // height: 100%;
121
+ // border: unset;
122
+ // transform: translateX(-100%);
123
+ // transition: transform 0.3s ease;
124
+
125
+ // &::after {
126
+ // content: '+';
127
+ // padding-top: 2px;
128
+ // color: #faf8ec;
129
+ // width: 38px;
130
+ // height: 38px;
131
+ // position: absolute;
132
+ // top: 0;
133
+ // right: -38px;
134
+ // background-color: #0054ff;
135
+ // }
136
+ // }
137
+
138
+ &:hover {
139
+ .servings-inc-btn {
140
+ transform: translateX(0);
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+
147
+ &__unit-toggle {
148
+ display: flex;
149
+ justify-content: space-between;
150
+ align-items: center;
151
+ padding-top: core-functions-v3.fluidSize(10);
152
+
153
+ .unit-text {
154
+ font-family: var(--tertiary-font-family);
155
+ font-size: core-functions-v3.fontSize(18);
156
+ font-weight: 700;
157
+
158
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
159
+ font-size: core-functions-v3.fontSize(22);
160
+ }
161
+ }
162
+
163
+ .unit-toggle-wrapper {
164
+ display: flex;
165
+ align-items: center;
166
+ gap: core-functions-v3.fluidSize(20);
167
+
168
+ .checkbox-wrapper input[type='checkbox'] {
169
+ display: none;
170
+ visibility: hidden;
171
+ }
172
+
173
+ .checkbox-wrapper .block {
174
+ position: relative;
175
+ clear: both;
176
+ float: left;
177
+ }
178
+
179
+ .checkbox-wrapper label {
180
+ width: 64px;
181
+ height: 36px;
182
+ box-sizing: border-box;
183
+ border: 1px solid;
184
+ float: left;
185
+ border-radius: 100px;
186
+ position: relative;
187
+ cursor: pointer;
188
+ transition: 0.3s ease;
189
+ color: #faf8ec;
190
+ }
191
+ .checkbox-wrapper
192
+ input[type='checkbox']:checked
193
+ + label:before {
194
+ left: 31px;
195
+ }
196
+ .checkbox-wrapper label:before {
197
+ transition: 0.3s ease;
198
+ content: '';
199
+ width: 28px;
200
+ height: 28px;
201
+ position: absolute;
202
+ background: #faf8ec;
203
+ left: 3px;
204
+ top: 3px;
205
+ box-sizing: border-box;
206
+ color: black;
207
+ border-radius: 50%;
208
+ }
209
+ }
210
+ }
211
+
212
+ .ingredients-wrapper {
213
+ display: flex;
214
+ align-items: center;
215
+ gap: core-functions-v3.fluidSize(15);
216
+
217
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
218
+ gap: core-functions-v3.fluidSize(30);
219
+ }
220
+
221
+ .ingredient-image {
222
+ max-width: core-functions-v3.fluidSize(50);
223
+ aspect-ratio: 1;
224
+ object-fit: cover;
225
+
226
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
227
+ max-width: core-functions-v3.fluidSize(100);
228
+ }
229
+ }
230
+
231
+ .ingredient-text {
232
+ font-size: core-functions-v3.fontSize(18);
233
+ font-family: var(--tertiary-font-family);
234
+ font-weight: 400;
235
+
236
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
237
+ font-size: core-functions-v3.fontSize(22);
238
+ }
239
+ }
240
+ }
241
+
242
+ &__equipment-container {
243
+ display: flex;
244
+ flex-direction: column;
245
+ gap: core-functions-v3.fluidSize(20);
246
+ padding-bottom: core-functions-v3.fluidSize(100);
247
+
248
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
249
+ padding-bottom: core-functions-v3.fluidSize(180);
250
+ }
251
+
252
+ .equipments-title {
253
+ font-family: var(--secondary-font-family);
254
+ font-size: core-functions-v3.fontSize(26);
255
+ font-weight: 500;
256
+ padding-block: core-functions-v3.fluidSize(20);
257
+ border-bottom: 1px solid #faf8ec4d;
258
+
259
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
260
+ padding-block: core-functions-v3.fluidSize(10);
261
+ }
262
+ }
263
+
264
+ .equipments-wrapper {
265
+ display: flex;
266
+ align-items: center;
267
+ gap: core-functions-v3.fluidSize(15);
268
+
269
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
270
+ gap: core-functions-v3.fluidSize(30);
271
+ }
272
+
273
+ .equipment-image {
274
+ max-width: core-functions-v3.fluidSize(50);
275
+ aspect-ratio: 1;
276
+ object-fit: cover;
277
+
278
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
279
+ max-width: core-functions-v3.fluidSize(100);
280
+ }
281
+ }
282
+
283
+ .equipment-text {
284
+ font-family: var(--tertiary-font-family);
285
+ font-size: core-functions-v3.fontSize(18);
286
+ font-weight: 400;
287
+
288
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
289
+ font-size: core-functions-v3.fontSize(22);
290
+ }
291
+ }
292
+ }
293
+ }
294
+
295
+ &__instructions-container {
296
+ .instructions-title {
297
+ font-family: var(--primary-font-family);
298
+ font-size: core-functions-v3.fontSize(70);
299
+ font-weight: 500;
300
+ text-transform: uppercase;
301
+ padding-block: core-functions-v3.fluidSize(10);
302
+ text-box-edge: cap alphabetic;
303
+ text-box-trim: trim-both;
304
+
305
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
306
+ padding-block: core-functions-v3.fluidSize(40);
307
+ font-size: core-functions-v3.fontSize(160);
308
+ }
309
+ }
310
+
311
+ .instructions-wrapper {
312
+ display: flex;
313
+ align-items: flex-start;
314
+ gap: core-functions-v3.fluidSize(20);
315
+ padding-block: core-functions-v3.fluidSize(30);
316
+ border-top: 1px solid #faf8ec4d;
317
+
318
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
319
+ align-items: center;
320
+ }
321
+
322
+ .instructions-number {
323
+ font-family: var(--secondary-font-family);
324
+ font-size: core-functions-v3.fontSize(30);
325
+ padding-inline: core-functions-v3.fluidSize(10);
326
+ font-weight: 500;
327
+ text-box-trim: trim-both;
328
+ text-box-edge: cap alphabetic;
329
+ }
330
+
331
+ .instructions-text {
332
+ font-family: var(--tertiary-font-family);
333
+ font-size: core-functions-v3.fontSize(24);
334
+ font-weight: 300;
335
+ text-box-trim: trim-both;
336
+ text-box-edge: cap alphabetic;
337
+
338
+ @include core-mixins-v3.device(breakpoints.$tabPortrait) {
339
+ font-size: core-functions-v3.fontSize(30);
340
+ }
341
+ }
342
+ }
343
+ }
344
+ }
345
+ }
@@ -0,0 +1,93 @@
1
+ {% set blockClassName = "cocktail-recipe-v3" %}
2
+ {% set classNameEntryPoint = include('entry-points/entry-point-classes.twig', { fields: fields, block: block }, with_context = false) %}
3
+ {% set htmlEntryPoint = include('entry-points/entry-point-html-v3.twig', { fields: fields, block: block, blockClassName, blockClassName }, with_context = false) %}
4
+ {% set dataAttributeEntryPoint = include('entry-points/entry-point-data-attribute.twig', { fields: fields, block: block }, with_context = false) %}
5
+ {% set styleEntryPoint = include('entry-points/entry-point-style-v3.twig', { fields: fields, block: block, is_preview }, with_context = false) %}
6
+ {% set previewEntryPoint = include('entry-points/entry-point-preview-info.twig', { fields, block, displaytype, is_preview }, with_context = false) %}
7
+ {% set sectionStyles = styleEntryPoint %}
8
+ {{previewEntryPoint}}
9
+
10
+ {% set selectedPost = Post(fields.cocktail_select) %}
11
+ {% set ingredients = selectedPost.meta('ingredients_recipe') %}
12
+ {% set equipments = selectedPost.meta('other_equipment') %}
13
+ {% set instructions = selectedPost.meta('instruction_steps') %}
14
+
15
+ <style>
16
+ .{{blockClassName}}.{{block.id}}{
17
+ {{sectionStyles}}
18
+ }
19
+ </style>
20
+ <section {{block.anchor ? "id=" ~ block.anchor : ''}} class="{{blockClassName}} {{block.className}} {{loop ? block.className.index ~ '-' ~ loop.index : ''}} {{classNameEntryPoint}} {{block.id}} " {{dataAttributeEntryPoint}} data-blockid="{{block.id}}" data-assetkey="{{blockClassName}}">
21
+ {{htmlEntryPoint}}
22
+
23
+ <div class="{{blockClassName}}__ingredients-container">
24
+ <h1 class="ingredients-title">{{ selectedPost.ingredients_title }}</h1>
25
+
26
+ <div class="{{blockClassName}}__servings" data-servings-controls>
27
+ <h3 class="servings-title">Serve:</h3>
28
+ <div class="servings-control-wrapper">
29
+ <div class="dec-btn-wrapper">
30
+ <button type="button" class="servings-dec-btn" data-servings-dec aria-label="Decrease servings">-</button>
31
+ </div>
32
+ <span class="servings-current" data-servings-value>1x</span>
33
+ <div class="inc-btn-wrapper">
34
+ <button type="button" class="servings-inc-btn" data-servings-inc aria-label="Increase servings">+</button>
35
+ </div>
36
+ </div>
37
+ </div>
38
+
39
+ {% if fields.enable_unit_transform %}
40
+ <div class="{{blockClassName}}__unit-toggle" data-unit-toggle>
41
+ <p class="unit-label unit-text">Unit</p>
42
+ <div class="unit-toggle-wrapper">
43
+ <span class="unit-option unit-text" data-unit="ml">ml</span>
44
+ <div class="checkbox-wrapper">
45
+ <div class="block">
46
+ <input data-index="0" id="checkbox" data-unit-checkbox type="checkbox"/>
47
+ <label for="checkbox"></label>
48
+ </div>
49
+ </div>
50
+ <span class="unit-option unit-text" data-unit="{{ fields.unit_transform }}">{{ fields.unit_transform }}</span>
51
+ </div>
52
+ </div>
53
+ {% endif %}
54
+
55
+
56
+ {% for ingredient in ingredients %}
57
+ <div class="ingredients-wrapper">
58
+ {% set ingredientSelect = ingredient.ingredients_list %}
59
+ {% set image = get_image(options.ingredient[ingredientSelect].ingredient_image) %}
60
+ <img class="ingredient-image" src="{{ image }}" width="{{ image.width }}" height="{{ image.height }}" alt="{{ image.alt }}">
61
+ <p class="ingredient-text" data-ingredients data-amount="{{ ingredient.amount }}" data-unit="{{ ingredient.default_unit }}" data-name="{{ ingredient.name }}">{{ ingredient.amount }}{{ ingredient.default_unit }}
62
+ {{ ingredient.name }}</p>
63
+ </div>
64
+ {% endfor %}
65
+ </div>
66
+
67
+ {% if selectedPost.enable_equipment %}
68
+ <div class="{{blockClassName}}__equipment-container">
69
+ <h3 class="equipments-title">{{ selectedPost.equipment_title }}</h3>
70
+
71
+ {% for equipment in equipments %}
72
+ <div class="equipments-wrapper">
73
+ {% set equipmentSelect = equipment.equipment_list %}
74
+ {% set image = get_image(options.equipments[equipmentSelect].equipment_image) %}
75
+ <img class="equipment-image" src="{{ image }}" width="{{ image.width }}" height="{{ image.height }}" alt="{{ image.alt }}">
76
+ <p class="equipment-text">{{ equipment.equipment_name }}</p>
77
+ </div>
78
+ {% endfor %}
79
+ </div>
80
+ {% endif %}
81
+
82
+ <div class="{{blockClassName}}__instructions-container">
83
+ <h1 class="instructions-title">{{ selectedPost.instructions_title }}</h1>
84
+
85
+ {% for index, instruction in instructions %}
86
+ <div class="instructions-wrapper">
87
+ <span class="instructions-number">{{index + 1}}</span>
88
+ <p class="instructions-text">{{ instruction.instruction }}</p>
89
+ </div>
90
+ {% endfor %}
91
+ </div>
92
+
93
+ </section>