@cooperco/cooper-component-library 0.1.60 → 0.1.62

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 (477) hide show
  1. package/README.md +106 -4
  2. package/dist/cms/0001-init.cjs +41 -0
  3. package/dist/cms/0002-create-image.cjs +34 -0
  4. package/dist/cms/0003-create-video.cjs +52 -0
  5. package/dist/cms/0004-create-testimonial.cjs +56 -0
  6. package/dist/cms/0005-create-tile-label.cjs +41 -0
  7. package/dist/cms/0006-create-accordion-item.cjs +83 -0
  8. package/dist/cms/0007-create-accordion.cjs +45 -0
  9. package/dist/cms/0008-create-page-metadata.cjs +69 -0
  10. package/dist/cms/0009-create-page.cjs +57 -0
  11. package/dist/cms/0010-create-link.cjs +86 -0
  12. package/dist/cms/0011-create-navigation-element.cjs +54 -0
  13. package/dist/cms/0012-create-primary-navigation.cjs +46 -0
  14. package/dist/cms/0013-create-tile-content.cjs +99 -0
  15. package/dist/cms/0014-create-tile-collection.cjs +96 -0
  16. package/dist/cms/0015-create-highlighted-text.cjs +24 -0
  17. package/dist/cms/0016-create-content-module.cjs +105 -0
  18. package/dist/cms/0017-create-cta.cjs +97 -0
  19. package/dist/cms/0018-create-container-module.cjs +134 -0
  20. package/dist/cms/0019-social-media.cjs +45 -0
  21. package/dist/cms/0020-create-footer.cjs +93 -0
  22. package/dist/cms/0021-create-carousel.cjs +68 -0
  23. package/dist/cms/0022-create-logo-collection.cjs +58 -0
  24. package/dist/cms/0023-create-split-module.cjs +66 -0
  25. package/dist/cms/0024-create-container-collection.cjs +58 -0
  26. package/dist/cms/0025-edit-container-module.cjs +15 -0
  27. package/dist/cms/0026-add-localization.cjs +181 -0
  28. package/dist/cms/0027-add-field-to-content-module.cjs +24 -0
  29. package/dist/cms/0028-add-load-more-accordion.cjs +22 -0
  30. package/dist/cms/0029-add-start-open-to-accordion.cjs +22 -0
  31. package/dist/cms/0030-add-mobile-image.cjs +37 -0
  32. package/dist/cms/0031-update-tile-content-helptext.cjs +19 -0
  33. package/dist/cms/0032-add-include-decorations.cjs +33 -0
  34. package/dist/cms/0033-add-centered-option-content-module.cjs +27 -0
  35. package/dist/cms/0034-update-tile-content.cjs +19 -0
  36. package/dist/cms/0035-update-tile-content-subheadline.cjs +19 -0
  37. package/dist/cms/0036-multiple-cta-option.cjs +160 -0
  38. package/dist/cms/0037-edit-content-module.cjs +15 -0
  39. package/dist/cms/0038-add-mobile-image-bottom-option-container-module.cjs +31 -0
  40. package/dist/cms/0039-limit-ctas-collections-size.cjs +39 -0
  41. package/dist/cms/0040-edit-content-tile.cjs +15 -0
  42. package/dist/cms/0041-edit-cta-add-btn-size.cjs +28 -0
  43. package/dist/cms/0042-edit-cta-update-button-type.cjs +23 -0
  44. package/dist/cms/0043-edit-link-add-third-party-id.cjs +24 -0
  45. package/dist/cms/0044-edit-footer-update-copyright-links-validation-type.cjs +144 -0
  46. package/dist/cms/0045-edit-carousel-add-heading-field.cjs +21 -0
  47. package/dist/cms/0046-update-tile-content.cjs +48 -0
  48. package/dist/cms/0047-create-body-copy.cjs +51 -0
  49. package/dist/cms/0048-create-tab-module.cjs +51 -0
  50. package/dist/cms/0049-create-product-module.cjs +68 -0
  51. package/dist/cms/0050-update-container.cjs +29 -0
  52. package/dist/cms/0051-update-accordion.cjs +22 -0
  53. package/dist/cms/0052-update-tile-content.cjs +41 -0
  54. package/dist/cms/0053-add-fields-to-tab-module.cjs +44 -0
  55. package/dist/cms/0054-update-product-module-logo-collection.cjs +70 -0
  56. package/dist/cms/0055-create-cta-action.cjs +50 -0
  57. package/dist/cms/0056-update-cta.cjs +25 -0
  58. package/dist/cms/0057-add-show-cart-to-page.cjs +26 -0
  59. package/dist/cms/README.md +112 -0
  60. package/dist/cms/accordion.query.ts +21 -0
  61. package/dist/cms/addEntryNameField.cjs +9 -0
  62. package/dist/cms/carousel.query.ts +34 -0
  63. package/dist/cms/containerModule.query.ts +142 -0
  64. package/dist/cms/contentModule.query.ts +51 -0
  65. package/dist/cms/contentful/graphql/queries/accordion.query.d.ts +2 -0
  66. package/dist/cms/contentful/graphql/queries/accordion.query.js +19 -0
  67. package/dist/cms/contentful/graphql/queries/carousel.query.d.ts +2 -0
  68. package/dist/cms/contentful/graphql/queries/carousel.query.js +32 -0
  69. package/dist/cms/contentful/graphql/queries/containerModule.query.d.ts +2 -0
  70. package/dist/cms/contentful/graphql/queries/containerModule.query.js +140 -0
  71. package/dist/cms/contentful/graphql/queries/contentModule.query.d.ts +2 -0
  72. package/dist/cms/contentful/graphql/queries/contentModule.query.js +49 -0
  73. package/dist/cms/contentful/graphql/queries/cta.query.d.ts +2 -0
  74. package/dist/cms/contentful/graphql/queries/cta.query.js +10 -0
  75. package/dist/cms/contentful/graphql/queries/footer.query.d.ts +2 -0
  76. package/dist/cms/contentful/graphql/queries/footer.query.js +44 -0
  77. package/dist/cms/contentful/graphql/queries/fragments.d.ts +11 -0
  78. package/dist/cms/contentful/graphql/queries/fragments.js +172 -0
  79. package/dist/cms/contentful/graphql/queries/header.query.d.ts +2 -0
  80. package/dist/cms/contentful/graphql/queries/header.query.js +39 -0
  81. package/dist/cms/contentful/graphql/queries/image.query.d.ts +2 -0
  82. package/dist/cms/contentful/graphql/queries/image.query.js +10 -0
  83. package/dist/cms/contentful/graphql/queries/index.d.ts +18 -0
  84. package/dist/cms/contentful/graphql/queries/index.js +18 -0
  85. package/dist/cms/contentful/graphql/queries/link.query.d.ts +2 -0
  86. package/dist/cms/contentful/graphql/queries/link.query.js +10 -0
  87. package/dist/cms/contentful/graphql/queries/logoCollection.query.d.ts +2 -0
  88. package/dist/cms/contentful/graphql/queries/logoCollection.query.js +16 -0
  89. package/dist/cms/contentful/graphql/queries/navigation.query.d.ts +2 -0
  90. package/dist/cms/contentful/graphql/queries/navigation.query.js +10 -0
  91. package/dist/cms/contentful/graphql/queries/page.query.d.ts +2 -0
  92. package/dist/cms/contentful/graphql/queries/page.query.js +23 -0
  93. package/dist/cms/contentful/graphql/queries/pageMetadata.query.d.ts +2 -0
  94. package/dist/cms/contentful/graphql/queries/pageMetadata.query.js +16 -0
  95. package/dist/cms/contentful/graphql/queries/productModule.query.d.ts +2 -0
  96. package/dist/cms/contentful/graphql/queries/productModule.query.js +59 -0
  97. package/dist/cms/contentful/graphql/queries/testimonial.query.d.ts +2 -0
  98. package/dist/cms/contentful/graphql/queries/testimonial.query.js +23 -0
  99. package/dist/cms/contentful/graphql/queries/tileCollection.query.d.ts +4 -0
  100. package/dist/cms/contentful/graphql/queries/tileCollection.query.js +35 -0
  101. package/dist/cms/contentful/graphql/queries/video.query.d.ts +2 -0
  102. package/dist/cms/contentful/graphql/queries/video.query.js +11 -0
  103. package/dist/cms/contentful/migrations/README.md +42 -0
  104. package/dist/cms/contentful/migrations/helpers/addEntryNameField.cjs +9 -0
  105. package/dist/cms/contentful/migrations/scripts/0001-init.cjs +41 -0
  106. package/dist/cms/contentful/migrations/scripts/0002-create-image.cjs +34 -0
  107. package/dist/cms/contentful/migrations/scripts/0003-create-video.cjs +52 -0
  108. package/dist/cms/contentful/migrations/scripts/0004-create-testimonial.cjs +56 -0
  109. package/dist/cms/contentful/migrations/scripts/0005-create-tile-label.cjs +41 -0
  110. package/dist/cms/contentful/migrations/scripts/0006-create-accordion-item.cjs +83 -0
  111. package/dist/cms/contentful/migrations/scripts/0007-create-accordion.cjs +45 -0
  112. package/dist/cms/contentful/migrations/scripts/0008-create-page-metadata.cjs +69 -0
  113. package/dist/cms/contentful/migrations/scripts/0009-create-page.cjs +57 -0
  114. package/dist/cms/contentful/migrations/scripts/0010-create-link.cjs +86 -0
  115. package/dist/cms/contentful/migrations/scripts/0011-create-navigation-element.cjs +54 -0
  116. package/dist/cms/contentful/migrations/scripts/0012-create-primary-navigation.cjs +46 -0
  117. package/dist/cms/contentful/migrations/scripts/0013-create-tile-content.cjs +99 -0
  118. package/dist/cms/contentful/migrations/scripts/0014-create-tile-collection.cjs +96 -0
  119. package/dist/cms/contentful/migrations/scripts/0015-create-highlighted-text.cjs +24 -0
  120. package/dist/cms/contentful/migrations/scripts/0016-create-content-module.cjs +105 -0
  121. package/dist/cms/contentful/migrations/scripts/0017-create-cta.cjs +97 -0
  122. package/dist/cms/contentful/migrations/scripts/0018-create-container-module.cjs +134 -0
  123. package/dist/cms/contentful/migrations/scripts/0019-social-media.cjs +45 -0
  124. package/dist/cms/contentful/migrations/scripts/0020-create-footer.cjs +93 -0
  125. package/dist/cms/contentful/migrations/scripts/0021-create-carousel.cjs +68 -0
  126. package/dist/cms/contentful/migrations/scripts/0022-create-logo-collection.cjs +58 -0
  127. package/dist/cms/contentful/migrations/scripts/0023-create-split-module.cjs +66 -0
  128. package/dist/cms/contentful/migrations/scripts/0024-create-container-collection.cjs +58 -0
  129. package/dist/cms/contentful/migrations/scripts/0025-edit-container-module.cjs +15 -0
  130. package/dist/cms/contentful/migrations/scripts/0026-add-localization.cjs +181 -0
  131. package/dist/cms/contentful/migrations/scripts/0027-add-field-to-content-module.cjs +24 -0
  132. package/dist/cms/contentful/migrations/scripts/0028-add-load-more-accordion.cjs +22 -0
  133. package/dist/cms/contentful/migrations/scripts/0029-add-start-open-to-accordion.cjs +22 -0
  134. package/dist/cms/contentful/migrations/scripts/0030-add-mobile-image.cjs +37 -0
  135. package/dist/cms/contentful/migrations/scripts/0031-update-tile-content-helptext.cjs +19 -0
  136. package/dist/cms/contentful/migrations/scripts/0032-add-include-decorations.cjs +33 -0
  137. package/dist/cms/contentful/migrations/scripts/0033-add-centered-option-content-module.cjs +27 -0
  138. package/dist/cms/contentful/migrations/scripts/0034-update-tile-content.cjs +19 -0
  139. package/dist/cms/contentful/migrations/scripts/0035-update-tile-content-subheadline.cjs +19 -0
  140. package/dist/cms/contentful/migrations/scripts/0036-multiple-cta-option.cjs +160 -0
  141. package/dist/cms/contentful/migrations/scripts/0037-edit-content-module.cjs +15 -0
  142. package/dist/cms/contentful/migrations/scripts/0038-add-mobile-image-bottom-option-container-module.cjs +31 -0
  143. package/dist/cms/contentful/migrations/scripts/0039-limit-ctas-collections-size.cjs +39 -0
  144. package/dist/cms/contentful/migrations/scripts/0040-edit-content-tile.cjs +15 -0
  145. package/dist/cms/contentful/migrations/scripts/0041-edit-cta-add-btn-size.cjs +28 -0
  146. package/dist/cms/contentful/migrations/scripts/0042-edit-cta-update-button-type.cjs +23 -0
  147. package/dist/cms/contentful/migrations/scripts/0043-edit-link-add-third-party-id.cjs +24 -0
  148. package/dist/cms/contentful/migrations/scripts/0044-edit-footer-update-copyright-links-validation-type.cjs +144 -0
  149. package/dist/cms/contentful/migrations/scripts/0045-edit-carousel-add-heading-field.cjs +21 -0
  150. package/dist/cms/contentful/migrations/scripts/0046-update-tile-content.cjs +48 -0
  151. package/dist/cms/contentful/migrations/scripts/0047-create-body-copy.cjs +51 -0
  152. package/dist/cms/contentful/migrations/scripts/0048-create-tab-module.cjs +51 -0
  153. package/dist/cms/contentful/migrations/scripts/0049-create-product-module.cjs +68 -0
  154. package/dist/cms/contentful/migrations/scripts/0050-update-container.cjs +29 -0
  155. package/dist/cms/contentful/migrations/scripts/0051-update-accordion.cjs +22 -0
  156. package/dist/cms/contentful/migrations/scripts/0052-update-tile-content.cjs +41 -0
  157. package/dist/cms/contentful/migrations/scripts/0053-add-fields-to-tab-module.cjs +44 -0
  158. package/dist/cms/contentful/migrations/scripts/0054-update-product-module-logo-collection.cjs +70 -0
  159. package/dist/cms/contentful/migrations/scripts/0055-create-cta-action.cjs +50 -0
  160. package/dist/cms/contentful/migrations/scripts/0056-update-cta.cjs +25 -0
  161. package/dist/cms/contentful/migrations/scripts/0057-add-show-cart-to-page.cjs +26 -0
  162. package/dist/cms/contentful/queries/README.md +112 -0
  163. package/dist/cms/contentful/queries/accordion.query.d.ts +2 -0
  164. package/dist/cms/contentful/queries/accordion.query.js +19 -0
  165. package/dist/cms/contentful/queries/accordion.query.ts +21 -0
  166. package/dist/cms/contentful/queries/carousel.query.d.ts +2 -0
  167. package/dist/cms/contentful/queries/carousel.query.js +32 -0
  168. package/dist/cms/contentful/queries/carousel.query.ts +34 -0
  169. package/dist/cms/contentful/queries/containerModule.query.d.ts +2 -0
  170. package/dist/cms/contentful/queries/containerModule.query.js +140 -0
  171. package/dist/cms/contentful/queries/containerModule.query.ts +142 -0
  172. package/dist/cms/contentful/queries/contentModule.query.d.ts +2 -0
  173. package/dist/cms/contentful/queries/contentModule.query.js +49 -0
  174. package/dist/cms/contentful/queries/contentModule.query.ts +51 -0
  175. package/dist/cms/contentful/queries/cta.query.d.ts +2 -0
  176. package/dist/cms/contentful/queries/cta.query.js +10 -0
  177. package/dist/cms/contentful/queries/cta.query.ts +12 -0
  178. package/dist/cms/contentful/queries/footer.query.d.ts +2 -0
  179. package/dist/cms/contentful/queries/footer.query.js +44 -0
  180. package/dist/cms/contentful/queries/footer.query.ts +50 -0
  181. package/dist/cms/contentful/queries/fragments.d.ts +11 -0
  182. package/dist/cms/contentful/queries/fragments.js +172 -0
  183. package/dist/cms/contentful/queries/fragments.ts +183 -0
  184. package/dist/cms/contentful/queries/header.query.d.ts +2 -0
  185. package/dist/cms/contentful/queries/header.query.js +39 -0
  186. package/dist/cms/contentful/queries/header.query.ts +41 -0
  187. package/dist/cms/contentful/queries/image.query.d.ts +2 -0
  188. package/dist/cms/contentful/queries/image.query.js +10 -0
  189. package/dist/cms/contentful/queries/image.query.ts +12 -0
  190. package/dist/cms/contentful/queries/index.d.ts +18 -0
  191. package/dist/cms/contentful/queries/index.js +18 -0
  192. package/dist/cms/contentful/queries/index.ts +18 -0
  193. package/dist/cms/contentful/queries/link.query.d.ts +2 -0
  194. package/dist/cms/contentful/queries/link.query.js +10 -0
  195. package/dist/cms/contentful/queries/link.query.ts +12 -0
  196. package/dist/cms/contentful/queries/logoCollection.query.d.ts +2 -0
  197. package/dist/cms/contentful/queries/logoCollection.query.js +16 -0
  198. package/dist/cms/contentful/queries/logoCollection.query.ts +18 -0
  199. package/dist/cms/contentful/queries/navigation.query.d.ts +2 -0
  200. package/dist/cms/contentful/queries/navigation.query.js +10 -0
  201. package/dist/cms/contentful/queries/navigation.query.ts +12 -0
  202. package/dist/cms/contentful/queries/page.query.d.ts +2 -0
  203. package/dist/cms/contentful/queries/page.query.js +23 -0
  204. package/dist/cms/contentful/queries/page.query.ts +25 -0
  205. package/dist/cms/contentful/queries/pageMetadata.query.d.ts +2 -0
  206. package/dist/cms/contentful/queries/pageMetadata.query.js +16 -0
  207. package/dist/cms/contentful/queries/pageMetadata.query.ts +18 -0
  208. package/dist/cms/contentful/queries/productModule.query.d.ts +2 -0
  209. package/dist/cms/contentful/queries/productModule.query.js +59 -0
  210. package/dist/cms/contentful/queries/productModule.query.ts +61 -0
  211. package/dist/cms/contentful/queries/testimonial.query.d.ts +2 -0
  212. package/dist/cms/contentful/queries/testimonial.query.js +23 -0
  213. package/dist/cms/contentful/queries/testimonial.query.ts +25 -0
  214. package/dist/cms/contentful/queries/tileCollection.query.d.ts +4 -0
  215. package/dist/cms/contentful/queries/tileCollection.query.js +35 -0
  216. package/dist/cms/contentful/queries/tileCollection.query.ts +39 -0
  217. package/dist/cms/contentful/queries/video.query.d.ts +2 -0
  218. package/dist/cms/contentful/queries/video.query.js +11 -0
  219. package/dist/cms/contentful/queries/video.query.ts +13 -0
  220. package/dist/cms/cta.query.ts +12 -0
  221. package/dist/cms/footer.query.ts +50 -0
  222. package/dist/cms/fragments.ts +183 -0
  223. package/dist/cms/header.query.ts +41 -0
  224. package/dist/cms/helpers/addEntryNameField.cjs +9 -0
  225. package/dist/cms/image.query.ts +12 -0
  226. package/dist/cms/index.ts +18 -0
  227. package/dist/cms/link.query.ts +12 -0
  228. package/dist/cms/logoCollection.query.ts +18 -0
  229. package/dist/cms/migrations/README.md +42 -0
  230. package/dist/cms/migrations/helpers/addEntryNameField.cjs +9 -0
  231. package/dist/cms/migrations/scripts/0001-init.cjs +41 -0
  232. package/dist/cms/migrations/scripts/0002-create-image.cjs +34 -0
  233. package/dist/cms/migrations/scripts/0003-create-video.cjs +52 -0
  234. package/dist/cms/migrations/scripts/0004-create-testimonial.cjs +56 -0
  235. package/dist/cms/migrations/scripts/0005-create-tile-label.cjs +41 -0
  236. package/dist/cms/migrations/scripts/0006-create-accordion-item.cjs +83 -0
  237. package/dist/cms/migrations/scripts/0007-create-accordion.cjs +45 -0
  238. package/dist/cms/migrations/scripts/0008-create-page-metadata.cjs +69 -0
  239. package/dist/cms/migrations/scripts/0009-create-page.cjs +57 -0
  240. package/dist/cms/migrations/scripts/0010-create-link.cjs +86 -0
  241. package/dist/cms/migrations/scripts/0011-create-navigation-element.cjs +54 -0
  242. package/dist/cms/migrations/scripts/0012-create-primary-navigation.cjs +46 -0
  243. package/dist/cms/migrations/scripts/0013-create-tile-content.cjs +99 -0
  244. package/dist/cms/migrations/scripts/0014-create-tile-collection.cjs +96 -0
  245. package/dist/cms/migrations/scripts/0015-create-highlighted-text.cjs +24 -0
  246. package/dist/cms/migrations/scripts/0016-create-content-module.cjs +105 -0
  247. package/dist/cms/migrations/scripts/0017-create-cta.cjs +97 -0
  248. package/dist/cms/migrations/scripts/0018-create-container-module.cjs +134 -0
  249. package/dist/cms/migrations/scripts/0019-social-media.cjs +45 -0
  250. package/dist/cms/migrations/scripts/0020-create-footer.cjs +93 -0
  251. package/dist/cms/migrations/scripts/0021-create-carousel.cjs +68 -0
  252. package/dist/cms/migrations/scripts/0022-create-logo-collection.cjs +58 -0
  253. package/dist/cms/migrations/scripts/0023-create-split-module.cjs +66 -0
  254. package/dist/cms/migrations/scripts/0024-create-container-collection.cjs +58 -0
  255. package/dist/cms/migrations/scripts/0025-edit-container-module.cjs +15 -0
  256. package/dist/cms/migrations/scripts/0026-add-localization.cjs +181 -0
  257. package/dist/cms/migrations/scripts/0027-add-field-to-content-module.cjs +24 -0
  258. package/dist/cms/migrations/scripts/0028-add-load-more-accordion.cjs +22 -0
  259. package/dist/cms/migrations/scripts/0029-add-start-open-to-accordion.cjs +22 -0
  260. package/dist/cms/migrations/scripts/0030-add-mobile-image.cjs +37 -0
  261. package/dist/cms/migrations/scripts/0031-update-tile-content-helptext.cjs +19 -0
  262. package/dist/cms/migrations/scripts/0032-add-include-decorations.cjs +33 -0
  263. package/dist/cms/migrations/scripts/0033-add-centered-option-content-module.cjs +27 -0
  264. package/dist/cms/migrations/scripts/0034-update-tile-content.cjs +19 -0
  265. package/dist/cms/migrations/scripts/0035-update-tile-content-subheadline.cjs +19 -0
  266. package/dist/cms/migrations/scripts/0036-multiple-cta-option.cjs +160 -0
  267. package/dist/cms/migrations/scripts/0037-edit-content-module.cjs +15 -0
  268. package/dist/cms/migrations/scripts/0038-add-mobile-image-bottom-option-container-module.cjs +31 -0
  269. package/dist/cms/migrations/scripts/0039-limit-ctas-collections-size.cjs +39 -0
  270. package/dist/cms/migrations/scripts/0040-edit-content-tile.cjs +15 -0
  271. package/dist/cms/migrations/scripts/0041-edit-cta-add-btn-size.cjs +28 -0
  272. package/dist/cms/migrations/scripts/0042-edit-cta-update-button-type.cjs +23 -0
  273. package/dist/cms/migrations/scripts/0043-edit-link-add-third-party-id.cjs +24 -0
  274. package/dist/cms/migrations/scripts/0044-edit-footer-update-copyright-links-validation-type.cjs +144 -0
  275. package/dist/cms/migrations/scripts/0045-edit-carousel-add-heading-field.cjs +21 -0
  276. package/dist/cms/migrations/scripts/0046-update-tile-content.cjs +48 -0
  277. package/dist/cms/migrations/scripts/0047-create-body-copy.cjs +51 -0
  278. package/dist/cms/migrations/scripts/0048-create-tab-module.cjs +51 -0
  279. package/dist/cms/migrations/scripts/0049-create-product-module.cjs +68 -0
  280. package/dist/cms/migrations/scripts/0050-update-container.cjs +29 -0
  281. package/dist/cms/migrations/scripts/0051-update-accordion.cjs +22 -0
  282. package/dist/cms/migrations/scripts/0052-update-tile-content.cjs +41 -0
  283. package/dist/cms/migrations/scripts/0053-add-fields-to-tab-module.cjs +44 -0
  284. package/dist/cms/migrations/scripts/0054-update-product-module-logo-collection.cjs +70 -0
  285. package/dist/cms/migrations/scripts/0055-create-cta-action.cjs +50 -0
  286. package/dist/cms/migrations/scripts/0056-update-cta.cjs +25 -0
  287. package/dist/cms/migrations/scripts/0057-add-show-cart-to-page.cjs +26 -0
  288. package/dist/cms/navigation.query.ts +12 -0
  289. package/dist/cms/page.query.ts +25 -0
  290. package/dist/cms/pageMetadata.query.ts +18 -0
  291. package/dist/cms/productModule.query.ts +61 -0
  292. package/dist/cms/queries/README.md +112 -0
  293. package/dist/cms/queries/accordion.query.ts +21 -0
  294. package/dist/cms/queries/carousel.query.ts +34 -0
  295. package/dist/cms/queries/containerModule.query.ts +142 -0
  296. package/dist/cms/queries/contentModule.query.ts +51 -0
  297. package/dist/cms/queries/cta.query.ts +12 -0
  298. package/dist/cms/queries/footer.query.ts +50 -0
  299. package/dist/cms/queries/fragments.ts +183 -0
  300. package/dist/cms/queries/header.query.ts +41 -0
  301. package/dist/cms/queries/image.query.ts +12 -0
  302. package/dist/cms/queries/index.ts +18 -0
  303. package/dist/cms/queries/link.query.ts +12 -0
  304. package/dist/cms/queries/logoCollection.query.ts +18 -0
  305. package/dist/cms/queries/navigation.query.ts +12 -0
  306. package/dist/cms/queries/page.query.ts +25 -0
  307. package/dist/cms/queries/pageMetadata.query.ts +18 -0
  308. package/dist/cms/queries/productModule.query.ts +61 -0
  309. package/dist/cms/queries/testimonial.query.ts +25 -0
  310. package/dist/cms/queries/tileCollection.query.ts +39 -0
  311. package/dist/cms/queries/video.query.ts +13 -0
  312. package/dist/cms/scripts/0001-init.cjs +41 -0
  313. package/dist/cms/scripts/0002-create-image.cjs +34 -0
  314. package/dist/cms/scripts/0003-create-video.cjs +52 -0
  315. package/dist/cms/scripts/0004-create-testimonial.cjs +56 -0
  316. package/dist/cms/scripts/0005-create-tile-label.cjs +41 -0
  317. package/dist/cms/scripts/0006-create-accordion-item.cjs +83 -0
  318. package/dist/cms/scripts/0007-create-accordion.cjs +45 -0
  319. package/dist/cms/scripts/0008-create-page-metadata.cjs +69 -0
  320. package/dist/cms/scripts/0009-create-page.cjs +57 -0
  321. package/dist/cms/scripts/0010-create-link.cjs +86 -0
  322. package/dist/cms/scripts/0011-create-navigation-element.cjs +54 -0
  323. package/dist/cms/scripts/0012-create-primary-navigation.cjs +46 -0
  324. package/dist/cms/scripts/0013-create-tile-content.cjs +99 -0
  325. package/dist/cms/scripts/0014-create-tile-collection.cjs +96 -0
  326. package/dist/cms/scripts/0015-create-highlighted-text.cjs +24 -0
  327. package/dist/cms/scripts/0016-create-content-module.cjs +105 -0
  328. package/dist/cms/scripts/0017-create-cta.cjs +97 -0
  329. package/dist/cms/scripts/0018-create-container-module.cjs +134 -0
  330. package/dist/cms/scripts/0019-social-media.cjs +45 -0
  331. package/dist/cms/scripts/0020-create-footer.cjs +93 -0
  332. package/dist/cms/scripts/0021-create-carousel.cjs +68 -0
  333. package/dist/cms/scripts/0022-create-logo-collection.cjs +58 -0
  334. package/dist/cms/scripts/0023-create-split-module.cjs +66 -0
  335. package/dist/cms/scripts/0024-create-container-collection.cjs +58 -0
  336. package/dist/cms/scripts/0025-edit-container-module.cjs +15 -0
  337. package/dist/cms/scripts/0026-add-localization.cjs +181 -0
  338. package/dist/cms/scripts/0027-add-field-to-content-module.cjs +24 -0
  339. package/dist/cms/scripts/0028-add-load-more-accordion.cjs +22 -0
  340. package/dist/cms/scripts/0029-add-start-open-to-accordion.cjs +22 -0
  341. package/dist/cms/scripts/0030-add-mobile-image.cjs +37 -0
  342. package/dist/cms/scripts/0031-update-tile-content-helptext.cjs +19 -0
  343. package/dist/cms/scripts/0032-add-include-decorations.cjs +33 -0
  344. package/dist/cms/scripts/0033-add-centered-option-content-module.cjs +27 -0
  345. package/dist/cms/scripts/0034-update-tile-content.cjs +19 -0
  346. package/dist/cms/scripts/0035-update-tile-content-subheadline.cjs +19 -0
  347. package/dist/cms/scripts/0036-multiple-cta-option.cjs +160 -0
  348. package/dist/cms/scripts/0037-edit-content-module.cjs +15 -0
  349. package/dist/cms/scripts/0038-add-mobile-image-bottom-option-container-module.cjs +31 -0
  350. package/dist/cms/scripts/0039-limit-ctas-collections-size.cjs +39 -0
  351. package/dist/cms/scripts/0040-edit-content-tile.cjs +15 -0
  352. package/dist/cms/scripts/0041-edit-cta-add-btn-size.cjs +28 -0
  353. package/dist/cms/scripts/0042-edit-cta-update-button-type.cjs +23 -0
  354. package/dist/cms/scripts/0043-edit-link-add-third-party-id.cjs +24 -0
  355. package/dist/cms/scripts/0044-edit-footer-update-copyright-links-validation-type.cjs +144 -0
  356. package/dist/cms/scripts/0045-edit-carousel-add-heading-field.cjs +21 -0
  357. package/dist/cms/scripts/0046-update-tile-content.cjs +48 -0
  358. package/dist/cms/scripts/0047-create-body-copy.cjs +51 -0
  359. package/dist/cms/scripts/0048-create-tab-module.cjs +51 -0
  360. package/dist/cms/scripts/0049-create-product-module.cjs +68 -0
  361. package/dist/cms/scripts/0050-update-container.cjs +29 -0
  362. package/dist/cms/scripts/0051-update-accordion.cjs +22 -0
  363. package/dist/cms/scripts/0052-update-tile-content.cjs +41 -0
  364. package/dist/cms/scripts/0053-add-fields-to-tab-module.cjs +44 -0
  365. package/dist/cms/scripts/0054-update-product-module-logo-collection.cjs +70 -0
  366. package/dist/cms/scripts/0055-create-cta-action.cjs +50 -0
  367. package/dist/cms/scripts/0056-update-cta.cjs +25 -0
  368. package/dist/cms/scripts/0057-add-show-cart-to-page.cjs +26 -0
  369. package/dist/cms/testimonial.query.ts +25 -0
  370. package/dist/cms/tileCollection.query.ts +39 -0
  371. package/dist/cms/video.query.ts +13 -0
  372. package/dist/lib/component-lib.js +1293 -1272
  373. package/dist/lib/component-lib.umd.cjs +16 -16
  374. package/dist/lib/css/main.css +17 -16
  375. package/dist/lib/style.css +1 -1
  376. package/dist/types/cms/contentful/graphql/queries/accordion.query.d.ts +2 -0
  377. package/dist/types/cms/contentful/graphql/queries/carousel.query.d.ts +2 -0
  378. package/dist/types/cms/contentful/graphql/queries/containerModule.query.d.ts +2 -0
  379. package/dist/types/cms/contentful/graphql/queries/contentModule.query.d.ts +2 -0
  380. package/dist/types/cms/contentful/graphql/queries/cta.query.d.ts +2 -0
  381. package/dist/types/cms/contentful/graphql/queries/footer.query.d.ts +2 -0
  382. package/dist/types/cms/contentful/graphql/queries/fragments.d.ts +11 -0
  383. package/dist/types/cms/contentful/graphql/queries/header.query.d.ts +2 -0
  384. package/dist/types/cms/contentful/graphql/queries/image.query.d.ts +2 -0
  385. package/dist/types/cms/contentful/graphql/queries/index.d.ts +18 -0
  386. package/dist/types/cms/contentful/graphql/queries/link.query.d.ts +2 -0
  387. package/dist/types/cms/contentful/graphql/queries/logoCollection.query.d.ts +2 -0
  388. package/dist/types/cms/contentful/graphql/queries/navigation.query.d.ts +2 -0
  389. package/dist/types/cms/contentful/graphql/queries/page.query.d.ts +2 -0
  390. package/dist/types/cms/contentful/graphql/queries/pageMetadata.query.d.ts +2 -0
  391. package/dist/types/cms/contentful/graphql/queries/productModule.query.d.ts +2 -0
  392. package/dist/types/cms/contentful/graphql/queries/testimonial.query.d.ts +2 -0
  393. package/dist/types/cms/contentful/graphql/queries/tileCollection.query.d.ts +4 -0
  394. package/dist/types/cms/contentful/graphql/queries/video.query.d.ts +2 -0
  395. package/dist/types/cms/contentful/queries/accordion.query.d.ts +2 -0
  396. package/dist/types/cms/contentful/queries/carousel.query.d.ts +2 -0
  397. package/dist/types/cms/contentful/queries/containerModule.query.d.ts +2 -0
  398. package/dist/types/cms/contentful/queries/contentModule.query.d.ts +2 -0
  399. package/dist/types/cms/contentful/queries/cta.query.d.ts +2 -0
  400. package/dist/types/cms/contentful/queries/footer.query.d.ts +2 -0
  401. package/dist/types/cms/contentful/queries/fragments.d.ts +11 -0
  402. package/dist/types/cms/contentful/queries/header.query.d.ts +2 -0
  403. package/dist/types/cms/contentful/queries/image.query.d.ts +2 -0
  404. package/dist/types/cms/contentful/queries/index.d.ts +18 -0
  405. package/dist/types/cms/contentful/queries/link.query.d.ts +2 -0
  406. package/dist/types/cms/contentful/queries/logoCollection.query.d.ts +2 -0
  407. package/dist/types/cms/contentful/queries/navigation.query.d.ts +2 -0
  408. package/dist/types/cms/contentful/queries/page.query.d.ts +2 -0
  409. package/dist/types/cms/contentful/queries/pageMetadata.query.d.ts +2 -0
  410. package/dist/types/cms/contentful/queries/productModule.query.d.ts +2 -0
  411. package/dist/types/cms/contentful/queries/testimonial.query.d.ts +2 -0
  412. package/dist/types/cms/contentful/queries/tileCollection.query.d.ts +4 -0
  413. package/dist/types/cms/contentful/queries/video.query.d.ts +2 -0
  414. package/dist/types/components/Accordion/Accordion.d.ts +1 -0
  415. package/dist/types/components/ContentModule/ContentModule.d.ts +1 -0
  416. package/dist/types/src/App.vue.d.ts +2 -0
  417. package/dist/types/src/components/Accordion/Accordion.d.ts +19 -0
  418. package/dist/types/src/components/Accordion/Accordion.vue.d.ts +5 -0
  419. package/dist/types/src/components/Accordion/AccordionItem.d.ts +24 -0
  420. package/dist/types/src/components/Accordion/AccordionItem.vue.d.ts +9 -0
  421. package/dist/types/src/components/Accordion/AccordionListItem.vue.d.ts +3 -0
  422. package/dist/types/src/components/Accordion/AccordionTileItem.vue.d.ts +7 -0
  423. package/dist/types/src/components/AnimationWrapper/AnimationWrapper.d.ts +7 -0
  424. package/dist/types/src/components/AnimationWrapper/AnimationWrapper.vue.d.ts +10 -0
  425. package/dist/types/src/components/CTA/CTA.d.ts +25 -0
  426. package/dist/types/src/components/CTA/CTA.vue.d.ts +7 -0
  427. package/dist/types/src/components/CarouselModule/CarouselModule.d.ts +22 -0
  428. package/dist/types/src/components/CarouselModule/CarouselModule.vue.d.ts +5 -0
  429. package/dist/types/src/components/ContainerCollectionModule/ContainerCollectionModule.d.ts +10 -0
  430. package/dist/types/src/components/ContainerCollectionModule/ContainerCollectionModule.vue.d.ts +3 -0
  431. package/dist/types/src/components/ContainerModule/ContainerModule.d.ts +29 -0
  432. package/dist/types/src/components/ContainerModule/ContainerModule.vue.d.ts +14 -0
  433. package/dist/types/src/components/ContentModule/ContentModule.d.ts +31 -0
  434. package/dist/types/src/components/ContentModule/ContentModule.vue.d.ts +7 -0
  435. package/dist/types/src/components/Footer/FooterCopyright/FooterCopyright.d.ts +10 -0
  436. package/dist/types/src/components/Footer/FooterCopyright/FooterCopyright.vue.d.ts +3 -0
  437. package/dist/types/src/components/Footer/FooterNavigation/FooterNavigation.d.ts +14 -0
  438. package/dist/types/src/components/Footer/FooterNavigation/FooterNavigation.vue.d.ts +3 -0
  439. package/dist/types/src/components/Footer/SocialMediaRef/SocialMediaRef.d.ts +4 -0
  440. package/dist/types/src/components/Footer/SocialMediaRef/SocialMediaRef.vue.d.ts +3 -0
  441. package/dist/types/src/components/Image/Image.d.ts +15 -0
  442. package/dist/types/src/components/Image/Image.vue.d.ts +6 -0
  443. package/dist/types/src/components/LogoCollectionModule/LogoCollectionModule.d.ts +9 -0
  444. package/dist/types/src/components/LogoCollectionModule/LogoCollectionModule.vue.d.ts +3 -0
  445. package/dist/types/src/components/NavigationElement/NavigationElement.d.ts +20 -0
  446. package/dist/types/src/components/NavigationElement/NavigationElement.vue.d.ts +3 -0
  447. package/dist/types/src/components/PrimaryNavigation/PrimaryNavigation.d.ts +10 -0
  448. package/dist/types/src/components/PrimaryNavigation/PrimaryNavigation.vue.d.ts +9 -0
  449. package/dist/types/src/components/SplitModule/SplitModule.d.ts +16 -0
  450. package/dist/types/src/components/SplitModule/SplitModule.vue.d.ts +3 -0
  451. package/dist/types/src/components/TestimonialModule/TestimonialModule.d.ts +21 -0
  452. package/dist/types/src/components/TestimonialModule/TestimonialModule.vue.d.ts +3 -0
  453. package/dist/types/src/components/TileCollectionModule/TileCollectionModule.d.ts +18 -0
  454. package/dist/types/src/components/TileCollectionModule/TileCollectionModule.vue.d.ts +6 -0
  455. package/dist/types/src/components/TileContent/TileContent.d.ts +55 -0
  456. package/dist/types/src/components/TileContent/TileContentIconTile.vue.d.ts +5 -0
  457. package/dist/types/src/components/TileContent/TileContentImageStackedAnimatedTile.vue.d.ts +3 -0
  458. package/dist/types/src/components/TileContent/TileContentImageTile.vue.d.ts +5 -0
  459. package/dist/types/src/components/TileContent/TileContentTextTile.vue.d.ts +5 -0
  460. package/dist/types/src/components/TileContent/TileContentVideoTile.vue.d.ts +5 -0
  461. package/dist/types/src/components/TileLabel/TileLabel.d.ts +14 -0
  462. package/dist/types/src/components/TileLabel/TileLabel.vue.d.ts +6 -0
  463. package/dist/types/src/components/Video/Video.d.ts +7 -0
  464. package/dist/types/src/components/Video/Video.vue.d.ts +3 -0
  465. package/dist/types/src/components/components.d.ts +26 -0
  466. package/dist/types/src/components/types.d.ts +20 -0
  467. package/dist/types/src/config/colorPalettes.d.ts +59 -0
  468. package/dist/types/src/config/defaultPassthrough/config.d.ts +3 -0
  469. package/dist/types/src/config/defaultPassthrough/index.d.ts +67 -0
  470. package/dist/types/src/config/defaultPassthrough/types.d.ts +51 -0
  471. package/dist/types/src/index.d.ts +13 -0
  472. package/dist/types/src/init.d.ts +3 -0
  473. package/dist/types/src/pages/index.vue.d.ts +2 -0
  474. package/dist/types/src/router.d.ts +5 -0
  475. package/dist/types/src/types.d.ts +61 -0
  476. package/dist/types/src/utils/getTarget.d.ts +2 -0
  477. package/package.json +14 -6
package/README.md CHANGED
@@ -1,11 +1,113 @@
1
- # Vue 3 + Vite
1
+ # Cooper Component Library
2
2
 
3
- This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
3
+ A Vue 3 component library built with TypeScript, Vite, and Tailwind CSS. Published as `@cooperco/cooper-component-library` and designed for integration with Contentful CMS via GraphQL.
4
+
5
+ ## Tech Stack
6
+
7
+ - **Vue 3.5+** - Composition API with `<script setup>`
8
+ - **TypeScript 5.3+** - Strict mode enabled
9
+ - **Tailwind CSS 3.4+** - Utility-first styling
10
+ - **Vite 5.2+** - Library build mode
11
+ - **Storybook 8.2+** - Component documentation
12
+ - **GraphQL** - Contentful CMS integration
13
+ - **pnpm** - Package manager
4
14
 
5
15
  ## Recommended IDE Setup
6
16
 
7
17
  - [VS Code](https://code.visualstudio.com/) + [Vue - Official](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (previously Volar) and disable Vetur
8
18
 
9
- ### TODO issues
19
+ ## Development
20
+
21
+ ```bash
22
+ # Install dependencies
23
+ pnpm install
24
+
25
+ # Start Storybook dev server
26
+ pnpm run dev
27
+
28
+ # Run linter
29
+ pnpm run lint
30
+
31
+ # Fix linting issues
32
+ pnpm run lint:fix
33
+
34
+ # Type check
35
+ pnpm run check-types
36
+ ```
37
+
38
+ ## Testing Locally
39
+
40
+ To test the component library in a consuming project before publishing:
41
+
42
+ ```bash
43
+ # 1. Build and pack the library
44
+ pnpm run local-test
45
+ ```
46
+
47
+ This creates a `.tgz` file in the root directory (e.g., `cooperco-cooper-component-library-0.1.61.tgz`)
48
+
49
+ ```bash
50
+ # 2. In the consuming project, install the local package
51
+ pnpm add /path/to/cooperco-cooper-component-library-0.1.61.tgz
52
+ ```
53
+
54
+ This allows you to test changes locally before publishing to npm.
55
+
56
+ ## Building and Publishing
57
+
58
+ The build and publish process needs to happen manually when changes are merged to `main`:
59
+
60
+ ### Workflow
61
+
62
+ 1. **Merge to main** - Merge your feature branch to `main`
63
+ 2. **Patch version** - Update version number using `npm version patch` (or `minor`/`major`)
64
+ 3. **Publish** - Run `npm publish` to publish to npm registry
65
+ 4. **Push** - Push changes and tags to GitHub
66
+
67
+ ### Build Process
68
+
69
+ When you run `pnpm run build`, the following happens in order:
70
+
71
+ 1. **`build:types`** - Compiles Vue component TypeScript definitions
72
+ 2. **`build:cms`** - Compiles GraphQL queries for Contentful
73
+ 3. **`vite build`** - Builds the component library bundle
74
+
75
+ All build artifacts are output to the `dist/` directory.
76
+
77
+ ### Package Exports
78
+
79
+ The package exports multiple entry points:
80
+
81
+ - **Components:** `@cooperco/cooper-component-library` - Main component library
82
+ - **Styles:** `@cooperco/cooper-component-library/css/main.css` - Main styles
83
+ - **Theme:** `@cooperco/cooper-component-library/css/theme.css` - Theme variables
84
+ - **Queries:** `@cooperco/cooper-component-library/cms/contentful/graphql` - GraphQL queries
85
+
86
+ ## Project Structure
87
+
88
+ ```
89
+ ├── src/
90
+ │ ├── components/ # Vue components
91
+ │ │ ├── ComponentName/
92
+ │ │ │ ├── ComponentName.vue
93
+ │ │ │ └── ComponentName.ts
94
+ │ │ ├── components.ts # Component exports
95
+ │ │ └── types.ts # Type exports
96
+ │ ├── config/ # Configuration (color palettes, passthroughs)
97
+ │ └── utils/ # Utility functions
98
+ ├── cms/
99
+ │ └── contentful/
100
+ │ └── queries/ # GraphQL queries (see cms/contentful/queries/README.md)
101
+ ├── .storybook/ # Storybook configuration
102
+ │ └── components/ # Component stories
103
+ └── dist/ # Build output (generated)
104
+ ```
105
+
106
+ ## Documentation
107
+
108
+ - **Component Documentation:** Run `pnpm run dev` to view Storybook
109
+ - **GraphQL Queries:** See [cms/contentful/queries/README.md](cms/contentful/queries/README.md)
110
+
111
+ ## TODO Issues
10
112
 
11
- - There are many places where `class` is not recognized by Typescript. Examples are "start"/"end" in ContainerModule. This is because we are not defining `class` on the component types. Defining them explicitly overrides the default Attribute Inheritance behavior of Vue. Need to find a way to get around this
113
+ - There are many places where `class` is not recognized by TypeScript. Examples are "start"/"end" in ContainerModule. This is because we are not defining `class` on the component types. Defining them explicitly overrides the default Attribute Inheritance behavior of Vue. Need to find a way to get around this
@@ -0,0 +1,41 @@
1
+ module.exports = {
2
+ up: async function (migration) {
3
+ const versionTrackingContentType = migration.createContentType(
4
+ 'migrationVersionTracker',
5
+ {
6
+ name: 'Migration Version Tracker',
7
+ displayField: 'entryName',
8
+ }
9
+ )
10
+
11
+ versionTrackingContentType
12
+ .createField('entryName')
13
+ .name('Entry Name')
14
+ .type('Symbol')
15
+ .localized(false)
16
+ .required(true)
17
+ .validations([
18
+ {
19
+ unique: true,
20
+ },
21
+ ])
22
+ .disabled(false)
23
+ .omitted(false)
24
+
25
+ versionTrackingContentType
26
+ .createField('version')
27
+ .name('Version')
28
+ .type('Integer')
29
+ .required(true)
30
+ .validations([])
31
+ .disabled(true)
32
+ .omitted(false)
33
+
34
+ versionTrackingContentType.changeFieldControl(
35
+ 'version',
36
+ 'builtin',
37
+ 'numberEditor',
38
+ {}
39
+ )
40
+ },
41
+ }
@@ -0,0 +1,34 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const image = migration.createContentType('image', {
8
+ name: 'Image',
9
+ displayField: 'entryName',
10
+ description: 'Manage an image asset',
11
+ })
12
+
13
+ // Add required entryName field
14
+ addEntryNameField(image)
15
+
16
+ // Add required image asset field
17
+ image
18
+ .createField('media')
19
+ .name('Media')
20
+ .type('Link')
21
+ .linkType('Asset')
22
+ .required(true)
23
+ .validations([
24
+ {
25
+ linkMimetypeGroup: ['image'],
26
+ },
27
+ ])
28
+
29
+ image.createField('altTag').name('Alt Tag').type('Symbol').required(false)
30
+ },
31
+ down: async function (migration) {
32
+ await migration.deleteContentType('image')
33
+ },
34
+ }
@@ -0,0 +1,52 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const video = migration.createContentType('video', {
8
+ name: 'Video',
9
+ displayField: 'entryName',
10
+ description: 'Manage a video asset',
11
+ })
12
+
13
+ // Add required assetName field
14
+ addEntryNameField(video)
15
+
16
+ // Add required url field
17
+ video
18
+ .createField('url')
19
+ .name('Url')
20
+ .type('Symbol')
21
+ .required(true)
22
+ .validations([
23
+ {
24
+ regexp: {
25
+ pattern:
26
+ '^(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-/]))?$',
27
+ flags: null,
28
+ },
29
+ },
30
+ ])
31
+
32
+ // add help text to 'url' field
33
+ video.changeFieldControl('url', 'builtin', 'urlEditor', {
34
+ helpText: 'The URL of the video',
35
+ })
36
+
37
+ video
38
+ .createField('thumbnail')
39
+ .name('Thumbnail')
40
+ .type('Link')
41
+ .linkType('Entry')
42
+ .validations([
43
+ {
44
+ linkContentType: ['image'],
45
+ },
46
+ ])
47
+ .required(true)
48
+ },
49
+ down: async function (migration) {
50
+ await migration.deleteContentType('video')
51
+ },
52
+ }
@@ -0,0 +1,56 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const testimonialModule = migration.createContentType('testimonialModule', {
8
+ name: 'Testimonial Module',
9
+ displayField: 'entryName',
10
+ description: 'Testimonial module with text and media',
11
+ })
12
+
13
+ // Add mandatory assetName field
14
+ addEntryNameField(testimonialModule)
15
+
16
+ // Add headline field
17
+ testimonialModule
18
+ .createField('headline')
19
+ .name('Headline')
20
+ .type('Symbol')
21
+ .required(false)
22
+
23
+ testimonialModule
24
+ .createField('media')
25
+ .name('Media')
26
+ .type('Link')
27
+ .linkType('Entry')
28
+ .validations([
29
+ {
30
+ linkContentType: ['image', 'video'],
31
+ },
32
+ ])
33
+ .required(false)
34
+
35
+ testimonialModule
36
+ .createField('quote')
37
+ .name('Quote')
38
+ .type('Symbol')
39
+ .required(true)
40
+
41
+ testimonialModule
42
+ .createField('author')
43
+ .name('Author')
44
+ .type('Symbol')
45
+ .required(false)
46
+
47
+ testimonialModule
48
+ .createField('details')
49
+ .name('Details')
50
+ .type('Text')
51
+ .required(false)
52
+ },
53
+ down: async function (migration) {
54
+ await migration.deleteContentType('testimonialModule')
55
+ },
56
+ }
@@ -0,0 +1,41 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const tileLabel = migration.createContentType('tileLabel', {
8
+ name: 'Tile Label',
9
+ displayField: 'entryName',
10
+ description: 'Label for tiles',
11
+ })
12
+
13
+ // Add mandatory assetName field
14
+ addEntryNameField(tileLabel)
15
+
16
+ // Add mandatory copy field
17
+ tileLabel.createField('copy').name('Copy').type('Symbol').required(false)
18
+
19
+ tileLabel
20
+ .createField('color')
21
+ .name('Color')
22
+ .type('Symbol')
23
+ .validations([
24
+ {
25
+ in: ['Primary', 'Secondary', 'Tertiary'],
26
+ },
27
+ ])
28
+ .defaultValue({
29
+ 'en-US': 'Primary',
30
+ })
31
+ .required(true)
32
+
33
+ tileLabel.changeFieldControl('color', 'builtin', 'dropdown', {
34
+ helpText:
35
+ 'These colors are determined by the background color of the tile, based on the design system.',
36
+ })
37
+ },
38
+ down: async function (migration) {
39
+ await migration.deleteContentType('tileLabel')
40
+ },
41
+ }
@@ -0,0 +1,83 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const accordionItem = migration.createContentType('accordionItem', {
8
+ name: 'Accordion Item',
9
+ displayField: 'entryName',
10
+ description: 'Items for an accordion module',
11
+ })
12
+
13
+ // Add required assetName field
14
+ addEntryNameField(accordionItem)
15
+
16
+ // Add required headline field
17
+ accordionItem
18
+ .createField('headline')
19
+ .name('Headline')
20
+ .type('Symbol')
21
+ .required(true)
22
+
23
+ // Add required body copy field
24
+ accordionItem
25
+ .createField('bodyCopy')
26
+ .name('Body Copy')
27
+ .type('RichText')
28
+ .required(true)
29
+ .validations([
30
+ {
31
+ enabledMarks: ['bold', 'italic', 'underline'],
32
+ message: 'Only bold, italic, and underline marks are allowed',
33
+ },
34
+ {
35
+ enabledNodeTypes: [
36
+ 'ordered-list',
37
+ 'unordered-list',
38
+ 'hr',
39
+ 'hyperlink',
40
+ ],
41
+ },
42
+ {
43
+ nodes: {},
44
+ },
45
+ ])
46
+
47
+ // Icon Reference
48
+ accordionItem
49
+ .createField('icon')
50
+ .name('Icon')
51
+ .type('Link')
52
+ .linkType('Entry')
53
+ .validations([
54
+ {
55
+ linkContentType: ['image'],
56
+ },
57
+ ])
58
+ .required(false)
59
+
60
+ // Color
61
+ accordionItem
62
+ .createField('color')
63
+ .name('Color')
64
+ .type('Symbol')
65
+ .validations([
66
+ {
67
+ in: ['Primary', 'Secondary', 'Tertiary'],
68
+ },
69
+ ])
70
+ .defaultValue({
71
+ 'en-US': 'Primary',
72
+ })
73
+ .required(true)
74
+
75
+ accordionItem.changeFieldControl('color', 'builtin', 'dropdown', {
76
+ helpText:
77
+ 'These colors are determined by the background color of the tile, based on the design system.',
78
+ })
79
+ },
80
+ down: async function (migration) {
81
+ await migration.deleteContentType('accordionItem')
82
+ },
83
+ }
@@ -0,0 +1,45 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const accordion = migration.createContentType('accordion', {
8
+ name: 'Accordion',
9
+ displayField: 'entryName',
10
+ })
11
+
12
+ // Add required assetName field
13
+ addEntryNameField(accordion)
14
+
15
+ accordion
16
+ .createField('accordionItem')
17
+ .name('Accordion Item')
18
+ .type('Array')
19
+ .items({
20
+ type: 'Link',
21
+ validations: [
22
+ {
23
+ linkContentType: ['accordionItem'],
24
+ },
25
+ ],
26
+ linkType: 'Entry',
27
+ })
28
+ .required(true)
29
+
30
+ accordion
31
+ .createField('accordionType')
32
+ .name('Accordion Type')
33
+ .type('Symbol')
34
+ .validations([
35
+ {
36
+ in: ['List', 'Tile'],
37
+ },
38
+ ])
39
+
40
+ accordion.changeFieldControl('accordionType', 'builtin', 'dropdown')
41
+ },
42
+ down: async function (migration) {
43
+ await migration.deleteContentType('accordion')
44
+ },
45
+ }
@@ -0,0 +1,69 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const pageMetadata = migration.createContentType('pageMetadata', {
8
+ name: 'Page Metadata',
9
+ displayField: 'entryName',
10
+ description: 'Page metadata to be used for SEO and social sharing',
11
+ })
12
+
13
+ // Add mandatory entryName field
14
+ addEntryNameField(pageMetadata)
15
+
16
+ // Add required title field
17
+ pageMetadata
18
+ .createField('title')
19
+ .name('Title')
20
+ .type('Symbol')
21
+ .required(true)
22
+
23
+ // Add required description field
24
+ pageMetadata
25
+ .createField('description')
26
+ .name('Description')
27
+ .type('Text')
28
+ .required(true)
29
+ pageMetadata.changeFieldControl('description', 'builtin', 'multipleLine')
30
+
31
+ // Keywords
32
+ pageMetadata.createField('keywords', {
33
+ name: 'Keywords',
34
+ type: 'Array',
35
+ items: {
36
+ type: 'Symbol',
37
+ validations: [],
38
+ },
39
+ })
40
+ pageMetadata.changeFieldControl('keywords', 'builtin', 'list')
41
+
42
+ // Add required social image field
43
+ pageMetadata
44
+ .createField('socialImage')
45
+ .name('Social Image')
46
+ .type('Link')
47
+ .linkType('Entry')
48
+ .required(true)
49
+ .validations([
50
+ {
51
+ linkContentType: ['image'],
52
+ },
53
+ ])
54
+
55
+ // Add help text to socialImage field
56
+ pageMetadata.changeFieldControl(
57
+ 'socialImage',
58
+ 'builtin',
59
+ 'entryLinkEditor',
60
+ {
61
+ helpText:
62
+ 'This image is what will appear when the link to the page is shared on any social post.',
63
+ }
64
+ )
65
+ },
66
+ down: async function (migration) {
67
+ await migration.deleteContentType('pageMetadata')
68
+ },
69
+ }
@@ -0,0 +1,57 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const page = migration.createContentType('page', {
8
+ name: 'Page',
9
+ displayField: 'entryName',
10
+ })
11
+
12
+ // Add required entryName field
13
+ addEntryNameField(page)
14
+
15
+ // Add required title field
16
+ page.createField('title').name('Title').type('Symbol').required(true)
17
+
18
+ // Slug
19
+ page.createField('slug', {
20
+ name: 'Slug',
21
+ type: 'Symbol',
22
+ required: true,
23
+ validations: [
24
+ {
25
+ regexp: {
26
+ pattern: '^\\/([\\w#!:.?+=&%@!\\-/])*$',
27
+ flags: null,
28
+ },
29
+ message:
30
+ 'Slug must begin with a forward slash and use standard symbols. e.g a-z, 0-9, _#!:.?+=&%@!-/',
31
+ },
32
+ ],
33
+ })
34
+
35
+ // Page Modules
36
+ page.createField('pageModules', {
37
+ name: 'Page Modules',
38
+ type: 'Array',
39
+ items: {
40
+ type: 'Link',
41
+ validations: [],
42
+ linkType: 'Entry',
43
+ },
44
+ })
45
+
46
+ // Metadata
47
+ page.createField('metadata', {
48
+ name: 'Metadata',
49
+ type: 'Link',
50
+ linkType: 'Entry',
51
+ validations: [{ linkContentType: ['pageMetadata'] }],
52
+ })
53
+ },
54
+ down: async function (migration) {
55
+ await migration.deleteContentType('page')
56
+ },
57
+ }
@@ -0,0 +1,86 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const link = migration.createContentType('link', {
8
+ name: 'Link',
9
+ description:
10
+ 'General link type. Can point to an external url or internal page',
11
+ displayField: 'entryName',
12
+ })
13
+
14
+ // Add required assetName field
15
+ addEntryNameField(link)
16
+
17
+ // Page
18
+ link.createField('page', {
19
+ name: 'Page',
20
+ type: 'Link',
21
+ linkType: 'Entry',
22
+ validations: [{ linkContentType: ['page'] }],
23
+ })
24
+ link.changeFieldControl('page', 'builtin', 'entryLinkEditor', {
25
+ helpText:
26
+ "Use Page OR External URL. If both are set, Page will be used. If neither are set, the link won't work.",
27
+ })
28
+
29
+ // Anchor
30
+ link.createField('anchor', { name: 'Anchor', type: 'Symbol' })
31
+ link.changeFieldControl('anchor', 'builtin', 'singleLine', {
32
+ helpText: 'Set the anchor (#) for the url set by the Page reference.',
33
+ })
34
+
35
+ // External URL
36
+ link.createField('externalUrl', {
37
+ name: 'External URL',
38
+ type: 'Symbol',
39
+ })
40
+ link.changeFieldControl('externalUrl', 'builtin', 'urlEditor', {
41
+ helpText:
42
+ "Use Page OR External URL. If both are set, Page will be used. If neither are set, the link won't work.",
43
+ })
44
+
45
+ // Target
46
+ link.createField('target', {
47
+ name: 'Target',
48
+ type: 'Symbol',
49
+ required: true,
50
+ validations: [
51
+ {
52
+ in: ['Default', 'New Tab', 'Same Tab'],
53
+ },
54
+ ],
55
+ defaultValue: {
56
+ 'en-US': 'Default',
57
+ },
58
+ })
59
+
60
+ link.changeFieldControl('target', 'builtin', 'dropdown', {
61
+ helpText:
62
+ 'Set target attribute to override default behavior. (i.e internal pages in same tab, external pages in new tab).',
63
+ })
64
+
65
+ // Aria Label
66
+ link.createField('ariaLabel', {
67
+ name: 'Aria Label',
68
+ type: 'Symbol',
69
+ })
70
+ link.changeFieldControl('ariaLabel', 'builtin', 'singleLine', {
71
+ helpText: 'Aria label.',
72
+ })
73
+
74
+ // Aria Description
75
+ link.createField('ariaDescription', {
76
+ name: 'Aria Description',
77
+ type: 'Symbol',
78
+ })
79
+ link.changeFieldControl('ariaDescription', 'builtin', 'singleLine', {
80
+ helpText: 'Aria description.',
81
+ })
82
+ },
83
+ down: async function (migration) {
84
+ await migration.deleteContentType('link')
85
+ },
86
+ }