@pixelated-tech/components 3.1.4

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 (400) hide show
  1. package/README.md +231 -0
  2. package/dist/components/buzzwordbingo/buzzwordbingo.css +42 -0
  3. package/dist/components/buzzwordbingo/buzzwordbingo.js +35 -0
  4. package/dist/components/callout/callout.js +95 -0
  5. package/dist/components/callout/callout.scss +331 -0
  6. package/dist/components/carousel/carousel.css +178 -0
  7. package/dist/components/carousel/carousel.drag.js +203 -0
  8. package/dist/components/carousel/carousel.js +124 -0
  9. package/dist/components/cms/calendly.js +20 -0
  10. package/dist/components/cms/cloudinary.image.js +132 -0
  11. package/dist/components/cms/cloudinary.js +106 -0
  12. package/dist/components/cms/contentful.delivery.js +247 -0
  13. package/dist/components/cms/contentful.items.components.js +243 -0
  14. package/dist/components/cms/contentful.items.css +131 -0
  15. package/dist/components/cms/contentful.management.js +254 -0
  16. package/dist/components/cms/flickr.js +160 -0
  17. package/dist/components/cms/google.reviews.components.js +36 -0
  18. package/dist/components/cms/google.reviews.functions.js +26 -0
  19. package/dist/components/cms/gravatar.components.js +41 -0
  20. package/dist/components/cms/gravatar.functions.js +52 -0
  21. package/dist/components/cms/hubspot.components.js +45 -0
  22. package/dist/components/cms/hubspot.js +34 -0
  23. package/dist/components/cms/instagram.components.js +40 -0
  24. package/dist/components/cms/instagram.functions.js +67 -0
  25. package/dist/components/cms/wordpress.components.js +47 -0
  26. package/dist/components/cms/wordpress.css +55 -0
  27. package/dist/components/cms/wordpress.functions.js +49 -0
  28. package/dist/components/config/config.client.js +22 -0
  29. package/dist/components/config/config.example.js +70 -0
  30. package/dist/components/config/config.js +53 -0
  31. package/dist/components/config/config.server.js +11 -0
  32. package/dist/components/config/config.types.js +2 -0
  33. package/dist/components/general/css.js +60 -0
  34. package/dist/components/general/headers.css +16 -0
  35. package/dist/components/general/headers.js +27 -0
  36. package/dist/components/general/image.js +81 -0
  37. package/dist/components/general/layout.js +147 -0
  38. package/dist/components/general/layout.scss +47 -0
  39. package/dist/components/general/loading.js +36 -0
  40. package/dist/components/general/loading.scss +80 -0
  41. package/dist/components/general/microinteractions.css +229 -0
  42. package/dist/components/general/microinteractions.js +87 -0
  43. package/dist/components/general/modal.css +65 -0
  44. package/dist/components/general/modal.js +52 -0
  45. package/dist/components/general/table.css +73 -0
  46. package/dist/components/general/table.js +108 -0
  47. package/dist/components/linkedin/pixelated.linkedin.js +180 -0
  48. package/dist/components/linkedin/pixelated.linkedin1.js +102 -0
  49. package/dist/components/linkedin/pixelated.linkedin2.js +92 -0
  50. package/dist/components/markdown/markdown.css +12 -0
  51. package/dist/components/markdown/markdown.js +39 -0
  52. package/dist/components/menu/menu-accordion.css +198 -0
  53. package/dist/components/menu/menu-accordion.js +183 -0
  54. package/dist/components/menu/menu-expando.css +127 -0
  55. package/dist/components/menu/menu-expando.js +48 -0
  56. package/dist/components/menu/menu-simple.css +76 -0
  57. package/dist/components/menu/menu-simple.js +56 -0
  58. package/dist/components/nerdjoke/nerdjoke.css +69 -0
  59. package/dist/components/nerdjoke/nerdjoke.js +95 -0
  60. package/dist/components/pagebuilder/components/ComponentPropertiesForm.js +15 -0
  61. package/dist/components/pagebuilder/components/ComponentSelector.js +67 -0
  62. package/dist/components/pagebuilder/components/ComponentTree.js +95 -0
  63. package/dist/components/pagebuilder/components/PageBuilderUI.js +48 -0
  64. package/dist/components/pagebuilder/components/PageEngine.js +97 -0
  65. package/dist/components/pagebuilder/components/SaveLoadSection.js +168 -0
  66. package/dist/components/pagebuilder/components/pagebuilder.scss +123 -0
  67. package/dist/components/pagebuilder/form/form.css +101 -0
  68. package/dist/components/pagebuilder/form/form.js +455 -0
  69. package/dist/components/pagebuilder/form/form.submit.js +65 -0
  70. package/dist/components/pagebuilder/form/formcomponents.js +359 -0
  71. package/dist/components/pagebuilder/form/formvalidations.js +80 -0
  72. package/dist/components/pagebuilder/lib/componentGeneration.js +105 -0
  73. package/dist/components/pagebuilder/lib/componentMap.js +32 -0
  74. package/dist/components/pagebuilder/lib/componentMetadata.js +146 -0
  75. package/dist/components/pagebuilder/lib/pageStorageContentful.js +142 -0
  76. package/dist/components/pagebuilder/lib/pageStorageLocal.js +143 -0
  77. package/dist/components/pagebuilder/lib/pageStorageTypes.js +1 -0
  78. package/dist/components/pagebuilder/lib/propTypeIntrospection.js +177 -0
  79. package/dist/components/pagebuilder/lib/types.js +4 -0
  80. package/dist/components/pagebuilder/lib/usePageBuilder.js +234 -0
  81. package/dist/components/recipe/recipe.css +107 -0
  82. package/dist/components/recipe/recipe.js +161 -0
  83. package/dist/components/resume/resume.css +162 -0
  84. package/dist/components/resume/resume.js +195 -0
  85. package/dist/components/seo/404.css +25 -0
  86. package/dist/components/seo/404.js +32 -0
  87. package/dist/components/seo/googleanalytics.js +70 -0
  88. package/dist/components/seo/googlemap.js +15 -0
  89. package/dist/components/seo/googlesearch.css +30 -0
  90. package/dist/components/seo/googlesearch.js +37 -0
  91. package/dist/components/seo/metadata.js +156 -0
  92. package/dist/components/seo/sitemap.js +171 -0
  93. package/dist/components/shoppingcart/ebay.components.js +203 -0
  94. package/dist/components/shoppingcart/ebay.css +131 -0
  95. package/dist/components/shoppingcart/ebay.functions.js +240 -0
  96. package/dist/components/shoppingcart/paypal.js +169 -0
  97. package/dist/components/shoppingcart/shoppingcart.components.js +257 -0
  98. package/dist/components/shoppingcart/shoppingcart.css +122 -0
  99. package/dist/components/shoppingcart/shoppingcart.functions.js +324 -0
  100. package/dist/components/sidepanel/sidepanel.css +129 -0
  101. package/dist/components/sidepanel/sidepanel.js +54 -0
  102. package/dist/components/socialcard/socialcard.css +118 -0
  103. package/dist/components/socialcard/socialcard.js +317 -0
  104. package/dist/components/tiles/tiles.css +77 -0
  105. package/dist/components/tiles/tiles.js +38 -0
  106. package/dist/components/timeline/timeline.css +139 -0
  107. package/dist/components/timeline/timeline.js +28 -0
  108. package/dist/components/utilities/api.js +36 -0
  109. package/dist/components/utilities/functions.js +98 -0
  110. package/dist/components/yelp/yelp.js +50 -0
  111. package/dist/css/pixelated.font.scss +68 -0
  112. package/dist/css/pixelated.global.css +548 -0
  113. package/dist/css/pixelated.grid.scss +82 -0
  114. package/dist/data/404-data.json +104 -0
  115. package/dist/data/buzzwords.js +28 -0
  116. package/dist/data/form.json +370 -0
  117. package/dist/data/recipes.json +1917 -0
  118. package/dist/data/references.json +139 -0
  119. package/dist/data/requests.json +137 -0
  120. package/dist/data/resume.json +2577 -0
  121. package/dist/data/routes.json +184 -0
  122. package/dist/data/routes2.json +117 -0
  123. package/dist/data/shipping.to.json +422 -0
  124. package/dist/index.js +78 -0
  125. package/dist/index.server.js +35 -0
  126. package/dist/types/components/buzzwordbingo/buzzwordbingo.d.ts +26 -0
  127. package/dist/types/components/buzzwordbingo/buzzwordbingo.d.ts.map +1 -0
  128. package/dist/types/components/callout/callout.d.ts +53 -0
  129. package/dist/types/components/callout/callout.d.ts.map +1 -0
  130. package/dist/types/components/carousel/carousel.d.ts +28 -0
  131. package/dist/types/components/carousel/carousel.d.ts.map +1 -0
  132. package/dist/types/components/carousel/carousel.drag.d.ts +12 -0
  133. package/dist/types/components/carousel/carousel.drag.d.ts.map +1 -0
  134. package/dist/types/components/cms/calendly.d.ts +11 -0
  135. package/dist/types/components/cms/calendly.d.ts.map +1 -0
  136. package/dist/types/components/cms/cloudinary.d.ts +27 -0
  137. package/dist/types/components/cms/cloudinary.d.ts.map +1 -0
  138. package/dist/types/components/cms/cloudinary.image.d.ts +56 -0
  139. package/dist/types/components/cms/cloudinary.image.d.ts.map +1 -0
  140. package/dist/types/components/cms/contentful.delivery.d.ts +149 -0
  141. package/dist/types/components/cms/contentful.delivery.d.ts.map +1 -0
  142. package/dist/types/components/cms/contentful.items.components.d.ts +38 -0
  143. package/dist/types/components/cms/contentful.items.components.d.ts.map +1 -0
  144. package/dist/types/components/cms/contentful.management.d.ts +71 -0
  145. package/dist/types/components/cms/contentful.management.d.ts.map +1 -0
  146. package/dist/types/components/cms/flickr.d.ts +39 -0
  147. package/dist/types/components/cms/flickr.d.ts.map +1 -0
  148. package/dist/types/components/cms/google.reviews.components.d.ts +7 -0
  149. package/dist/types/components/cms/google.reviews.components.d.ts.map +1 -0
  150. package/dist/types/components/cms/google.reviews.functions.d.ts +25 -0
  151. package/dist/types/components/cms/google.reviews.functions.d.ts.map +1 -0
  152. package/dist/types/components/cms/gravatar.components.d.ts +26 -0
  153. package/dist/types/components/cms/gravatar.components.d.ts.map +1 -0
  154. package/dist/types/components/cms/gravatar.functions.d.ts +53 -0
  155. package/dist/types/components/cms/gravatar.functions.d.ts.map +1 -0
  156. package/dist/types/components/cms/hubspot.components.d.ts +15 -0
  157. package/dist/types/components/cms/hubspot.components.d.ts.map +1 -0
  158. package/dist/types/components/cms/hubspot.d.ts +18 -0
  159. package/dist/types/components/cms/hubspot.d.ts.map +1 -0
  160. package/dist/types/components/cms/instagram.components.d.ts +10 -0
  161. package/dist/types/components/cms/instagram.components.d.ts.map +1 -0
  162. package/dist/types/components/cms/instagram.functions.d.ts +63 -0
  163. package/dist/types/components/cms/instagram.functions.d.ts.map +1 -0
  164. package/dist/types/components/cms/wordpress.components.d.ts +11 -0
  165. package/dist/types/components/cms/wordpress.components.d.ts.map +1 -0
  166. package/dist/types/components/cms/wordpress.functions.d.ts +28 -0
  167. package/dist/types/components/cms/wordpress.functions.d.ts.map +1 -0
  168. package/dist/types/components/config/config.client.d.ts +13 -0
  169. package/dist/types/components/config/config.client.d.ts.map +1 -0
  170. package/dist/types/components/config/config.d.ts +12 -0
  171. package/dist/types/components/config/config.d.ts.map +1 -0
  172. package/dist/types/components/config/config.example.d.ts +4 -0
  173. package/dist/types/components/config/config.example.d.ts.map +1 -0
  174. package/dist/types/components/config/config.server.d.ts +7 -0
  175. package/dist/types/components/config/config.server.d.ts.map +1 -0
  176. package/dist/types/components/config/config.types.d.ts +84 -0
  177. package/dist/types/components/config/config.types.d.ts.map +1 -0
  178. package/dist/types/components/general/css.d.ts +3 -0
  179. package/dist/types/components/general/css.d.ts.map +1 -0
  180. package/dist/types/components/general/headers.d.ts +19 -0
  181. package/dist/types/components/general/headers.d.ts.map +1 -0
  182. package/dist/types/components/general/image.d.ts +3 -0
  183. package/dist/types/components/general/image.d.ts.map +1 -0
  184. package/dist/types/components/general/layout.d.ts +73 -0
  185. package/dist/types/components/general/layout.d.ts.map +1 -0
  186. package/dist/types/components/general/loading.d.ts +11 -0
  187. package/dist/types/components/general/loading.d.ts.map +1 -0
  188. package/dist/types/components/general/microinteractions.d.ts +20 -0
  189. package/dist/types/components/general/microinteractions.d.ts.map +1 -0
  190. package/dist/types/components/general/modal.d.ts +8 -0
  191. package/dist/types/components/general/modal.d.ts.map +1 -0
  192. package/dist/types/components/general/table.d.ts +12 -0
  193. package/dist/types/components/general/table.d.ts.map +1 -0
  194. package/dist/types/components/linkedin/pixelated.linkedin.d.ts +2 -0
  195. package/dist/types/components/linkedin/pixelated.linkedin.d.ts.map +1 -0
  196. package/dist/types/components/linkedin/pixelated.linkedin1.d.ts +2 -0
  197. package/dist/types/components/linkedin/pixelated.linkedin1.d.ts.map +1 -0
  198. package/dist/types/components/linkedin/pixelated.linkedin2.d.ts +2 -0
  199. package/dist/types/components/linkedin/pixelated.linkedin2.d.ts.map +1 -0
  200. package/dist/types/components/markdown/markdown.d.ts +12 -0
  201. package/dist/types/components/markdown/markdown.d.ts.map +1 -0
  202. package/dist/types/components/menu/menu-accordion.d.ts +44 -0
  203. package/dist/types/components/menu/menu-accordion.d.ts.map +1 -0
  204. package/dist/types/components/menu/menu-expando.d.ts +20 -0
  205. package/dist/types/components/menu/menu-expando.d.ts.map +1 -0
  206. package/dist/types/components/menu/menu-simple.d.ts +28 -0
  207. package/dist/types/components/menu/menu-simple.d.ts.map +1 -0
  208. package/dist/types/components/nerdjoke/nerdjoke.d.ts +23 -0
  209. package/dist/types/components/nerdjoke/nerdjoke.d.ts.map +1 -0
  210. package/dist/types/components/pagebuilder/components/ComponentPropertiesForm.d.ts +11 -0
  211. package/dist/types/components/pagebuilder/components/ComponentPropertiesForm.d.ts.map +1 -0
  212. package/dist/types/components/pagebuilder/components/ComponentSelector.d.ts +15 -0
  213. package/dist/types/components/pagebuilder/components/ComponentSelector.d.ts.map +1 -0
  214. package/dist/types/components/pagebuilder/components/ComponentTree.d.ts +17 -0
  215. package/dist/types/components/pagebuilder/components/ComponentTree.d.ts.map +1 -0
  216. package/dist/types/components/pagebuilder/components/PageBuilderUI.d.ts +10 -0
  217. package/dist/types/components/pagebuilder/components/PageBuilderUI.d.ts.map +1 -0
  218. package/dist/types/components/pagebuilder/components/PageEngine.d.ts +23 -0
  219. package/dist/types/components/pagebuilder/components/PageEngine.d.ts.map +1 -0
  220. package/dist/types/components/pagebuilder/components/SaveLoadSection.d.ts +12 -0
  221. package/dist/types/components/pagebuilder/components/SaveLoadSection.d.ts.map +1 -0
  222. package/dist/types/components/pagebuilder/form/form.d.ts +46 -0
  223. package/dist/types/components/pagebuilder/form/form.d.ts.map +1 -0
  224. package/dist/types/components/pagebuilder/form/form.submit.d.ts +3 -0
  225. package/dist/types/components/pagebuilder/form/form.submit.d.ts.map +1 -0
  226. package/dist/types/components/pagebuilder/form/formcomponents.d.ts +205 -0
  227. package/dist/types/components/pagebuilder/form/formcomponents.d.ts.map +1 -0
  228. package/dist/types/components/pagebuilder/form/formvalidations.d.ts +29 -0
  229. package/dist/types/components/pagebuilder/form/formvalidations.d.ts.map +1 -0
  230. package/dist/types/components/pagebuilder/lib/componentGeneration.d.ts +17 -0
  231. package/dist/types/components/pagebuilder/lib/componentGeneration.d.ts.map +1 -0
  232. package/dist/types/components/pagebuilder/lib/componentMap.d.ts +25 -0
  233. package/dist/types/components/pagebuilder/lib/componentMap.d.ts.map +1 -0
  234. package/dist/types/components/pagebuilder/lib/componentMetadata.d.ts +22 -0
  235. package/dist/types/components/pagebuilder/lib/componentMetadata.d.ts.map +1 -0
  236. package/dist/types/components/pagebuilder/lib/pageStorageContentful.d.ts +25 -0
  237. package/dist/types/components/pagebuilder/lib/pageStorageContentful.d.ts.map +1 -0
  238. package/dist/types/components/pagebuilder/lib/pageStorageLocal.d.ts +23 -0
  239. package/dist/types/components/pagebuilder/lib/pageStorageLocal.d.ts.map +1 -0
  240. package/dist/types/components/pagebuilder/lib/pageStorageTypes.d.ts +25 -0
  241. package/dist/types/components/pagebuilder/lib/pageStorageTypes.d.ts.map +1 -0
  242. package/dist/types/components/pagebuilder/lib/propTypeIntrospection.d.ts +24 -0
  243. package/dist/types/components/pagebuilder/lib/propTypeIntrospection.d.ts.map +1 -0
  244. package/dist/types/components/pagebuilder/lib/types.d.ts +34 -0
  245. package/dist/types/components/pagebuilder/lib/types.d.ts.map +1 -0
  246. package/dist/types/components/pagebuilder/lib/usePageBuilder.d.ts +24 -0
  247. package/dist/types/components/pagebuilder/lib/usePageBuilder.d.ts.map +1 -0
  248. package/dist/types/components/recipe/recipe.d.ts +66 -0
  249. package/dist/types/components/recipe/recipe.d.ts.map +1 -0
  250. package/dist/types/components/resume/resume.d.ts +85 -0
  251. package/dist/types/components/resume/resume.d.ts.map +1 -0
  252. package/dist/types/components/seo/404.d.ts +10 -0
  253. package/dist/types/components/seo/404.d.ts.map +1 -0
  254. package/dist/types/components/seo/googleanalytics.d.ts +23 -0
  255. package/dist/types/components/seo/googleanalytics.d.ts.map +1 -0
  256. package/dist/types/components/seo/googlemap.d.ts +15 -0
  257. package/dist/types/components/seo/googlemap.d.ts.map +1 -0
  258. package/dist/types/components/seo/googlesearch.d.ts +10 -0
  259. package/dist/types/components/seo/googlesearch.d.ts.map +1 -0
  260. package/dist/types/components/seo/metadata.d.ts +35 -0
  261. package/dist/types/components/seo/metadata.d.ts.map +1 -0
  262. package/dist/types/components/seo/sitemap.d.ts +47 -0
  263. package/dist/types/components/seo/sitemap.d.ts.map +1 -0
  264. package/dist/types/components/shoppingcart/ebay.components.d.ts +46 -0
  265. package/dist/types/components/shoppingcart/ebay.components.d.ts.map +1 -0
  266. package/dist/types/components/shoppingcart/ebay.functions.d.ts +76 -0
  267. package/dist/types/components/shoppingcart/ebay.functions.d.ts.map +1 -0
  268. package/dist/types/components/shoppingcart/paypal.d.ts +16 -0
  269. package/dist/types/components/shoppingcart/paypal.d.ts.map +1 -0
  270. package/dist/types/components/shoppingcart/shoppingcart.components.d.ts +35 -0
  271. package/dist/types/components/shoppingcart/shoppingcart.components.d.ts.map +1 -0
  272. package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts +89 -0
  273. package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts.map +1 -0
  274. package/dist/types/components/sidepanel/sidepanel.d.ts +18 -0
  275. package/dist/types/components/sidepanel/sidepanel.d.ts.map +1 -0
  276. package/dist/types/components/socialcard/socialcard.d.ts +20 -0
  277. package/dist/types/components/socialcard/socialcard.d.ts.map +1 -0
  278. package/dist/types/components/tiles/tiles.d.ts +28 -0
  279. package/dist/types/components/tiles/tiles.d.ts.map +1 -0
  280. package/dist/types/components/timeline/timeline.d.ts +31 -0
  281. package/dist/types/components/timeline/timeline.d.ts.map +1 -0
  282. package/dist/types/components/utilities/api.d.ts +16 -0
  283. package/dist/types/components/utilities/api.d.ts.map +1 -0
  284. package/dist/types/components/utilities/functions.d.ts +11 -0
  285. package/dist/types/components/utilities/functions.d.ts.map +1 -0
  286. package/dist/types/components/yelp/yelp.d.ts +5 -0
  287. package/dist/types/components/yelp/yelp.d.ts.map +1 -0
  288. package/dist/types/data/buzzwords.d.ts +2 -0
  289. package/dist/types/data/buzzwords.d.ts.map +1 -0
  290. package/dist/types/index.d.ts +76 -0
  291. package/dist/types/index.d.ts.map +1 -0
  292. package/dist/types/index.server.d.ts +30 -0
  293. package/dist/types/index.server.d.ts.map +1 -0
  294. package/dist/types/stories/buzzword-bingo.stories.d.ts +13 -0
  295. package/dist/types/stories/buzzword-bingo.stories.d.ts.map +1 -0
  296. package/dist/types/stories/callout.many.stories.d.ts +8 -0
  297. package/dist/types/stories/callout.many.stories.d.ts.map +1 -0
  298. package/dist/types/stories/callout.stories.d.ts +69 -0
  299. package/dist/types/stories/callout.stories.d.ts.map +1 -0
  300. package/dist/types/stories/carousel-hero.stories.d.ts +22 -0
  301. package/dist/types/stories/carousel-hero.stories.d.ts.map +1 -0
  302. package/dist/types/stories/carousel-reviews.stories.d.ts +38 -0
  303. package/dist/types/stories/carousel-reviews.stories.d.ts.map +1 -0
  304. package/dist/types/stories/carousel-workportfolio.stories.d.ts +22 -0
  305. package/dist/types/stories/carousel-workportfolio.stories.d.ts.map +1 -0
  306. package/dist/types/stories/carousel.stories.d.ts +41 -0
  307. package/dist/types/stories/carousel.stories.d.ts.map +1 -0
  308. package/dist/types/stories/cms.contentful.item.stories.d.ts +21 -0
  309. package/dist/types/stories/cms.contentful.item.stories.d.ts.map +1 -0
  310. package/dist/types/stories/cms.contentful.items.stories.d.ts +20 -0
  311. package/dist/types/stories/cms.contentful.items.stories.d.ts.map +1 -0
  312. package/dist/types/stories/cms.contentful.stories.d.ts +9 -0
  313. package/dist/types/stories/cms.contentful.stories.d.ts.map +1 -0
  314. package/dist/types/stories/cms.google.reviews.stories.d.ts +11 -0
  315. package/dist/types/stories/cms.google.reviews.stories.d.ts.map +1 -0
  316. package/dist/types/stories/cms.gravatar.stories.d.ts +88 -0
  317. package/dist/types/stories/cms.gravatar.stories.d.ts.map +1 -0
  318. package/dist/types/stories/cms.instagram.stories.d.ts +16 -0
  319. package/dist/types/stories/cms.instagram.stories.d.ts.map +1 -0
  320. package/dist/types/stories/cms.wordpress.stories.d.ts +26 -0
  321. package/dist/types/stories/cms.wordpress.stories.d.ts.map +1 -0
  322. package/dist/types/stories/general.headers.stories.d.ts +27 -0
  323. package/dist/types/stories/general.headers.stories.d.ts.map +1 -0
  324. package/dist/types/stories/general.loading.stories.d.ts +11 -0
  325. package/dist/types/stories/general.loading.stories.d.ts.map +1 -0
  326. package/dist/types/stories/general.microinteractions.stories.d.ts +9 -0
  327. package/dist/types/stories/general.microinteractions.stories.d.ts.map +1 -0
  328. package/dist/types/stories/general.modal.stories.d.ts +9 -0
  329. package/dist/types/stories/general.modal.stories.d.ts.map +1 -0
  330. package/dist/types/stories/general.table.stories.d.ts +15 -0
  331. package/dist/types/stories/general.table.stories.d.ts.map +1 -0
  332. package/dist/types/stories/layout.stories.d.ts +299 -0
  333. package/dist/types/stories/layout.stories.d.ts.map +1 -0
  334. package/dist/types/stories/markdown.stories.d.ts +13 -0
  335. package/dist/types/stories/markdown.stories.d.ts.map +1 -0
  336. package/dist/types/stories/menu-accordion.stories.d.ts +34 -0
  337. package/dist/types/stories/menu-accordion.stories.d.ts.map +1 -0
  338. package/dist/types/stories/menu-simple.stories.d.ts +43 -0
  339. package/dist/types/stories/menu-simple.stories.d.ts.map +1 -0
  340. package/dist/types/stories/nerdjoke.stories.d.ts +10 -0
  341. package/dist/types/stories/nerdjoke.stories.d.ts.map +1 -0
  342. package/dist/types/stories/pagebuilder.form-builder.stories.d.ts +10 -0
  343. package/dist/types/stories/pagebuilder.form-builder.stories.d.ts.map +1 -0
  344. package/dist/types/stories/pagebuilder.form-engine.stories.d.ts +16 -0
  345. package/dist/types/stories/pagebuilder.form-engine.stories.d.ts.map +1 -0
  346. package/dist/types/stories/pagebuilder.form-extractor.stories.d.ts +10 -0
  347. package/dist/types/stories/pagebuilder.form-extractor.stories.d.ts.map +1 -0
  348. package/dist/types/stories/pagebuilder.stories.d.ts +29 -0
  349. package/dist/types/stories/pagebuilder.stories.d.ts.map +1 -0
  350. package/dist/types/stories/pagebuilder.usageguide.stories.d.ts +29 -0
  351. package/dist/types/stories/pagebuilder.usageguide.stories.d.ts.map +1 -0
  352. package/dist/types/stories/pageengine.stories.d.ts +32 -0
  353. package/dist/types/stories/pageengine.stories.d.ts.map +1 -0
  354. package/dist/types/stories/recipe.stories.d.ts +16 -0
  355. package/dist/types/stories/recipe.stories.d.ts.map +1 -0
  356. package/dist/types/stories/resume.stories.d.ts +283 -0
  357. package/dist/types/stories/resume.stories.d.ts.map +1 -0
  358. package/dist/types/stories/seo.404.stories.d.ts +18 -0
  359. package/dist/types/stories/seo.404.stories.d.ts.map +1 -0
  360. package/dist/types/stories/seo.googleanalytics.stories.d.ts +12 -0
  361. package/dist/types/stories/seo.googleanalytics.stories.d.ts.map +1 -0
  362. package/dist/types/stories/seo.googlesearch.stories.d.ts +12 -0
  363. package/dist/types/stories/seo.googlesearch.stories.d.ts.map +1 -0
  364. package/dist/types/stories/seo.metadata.stories.d.ts +25 -0
  365. package/dist/types/stories/seo.metadata.stories.d.ts.map +1 -0
  366. package/dist/types/stories/seo.sitemap.stories.d.ts +8 -0
  367. package/dist/types/stories/seo.sitemap.stories.d.ts.map +1 -0
  368. package/dist/types/stories/shoppingcart.ebay.item.stories.d.ts +21 -0
  369. package/dist/types/stories/shoppingcart.ebay.item.stories.d.ts.map +1 -0
  370. package/dist/types/stories/shoppingcart.ebay.items.stories.d.ts +21 -0
  371. package/dist/types/stories/shoppingcart.ebay.items.stories.d.ts.map +1 -0
  372. package/dist/types/stories/shoppingcart.stories.d.ts +9 -0
  373. package/dist/types/stories/shoppingcart.stories.d.ts.map +1 -0
  374. package/dist/types/stories/sidepanel.stories.d.ts +85 -0
  375. package/dist/types/stories/sidepanel.stories.d.ts.map +1 -0
  376. package/dist/types/stories/socialcard.stories.d.ts +81 -0
  377. package/dist/types/stories/socialcard.stories.d.ts.map +1 -0
  378. package/dist/types/stories/tiles.stories.d.ts +9 -0
  379. package/dist/types/stories/tiles.stories.d.ts.map +1 -0
  380. package/dist/types/stories/timeline.stories.d.ts +19 -0
  381. package/dist/types/stories/timeline.stories.d.ts.map +1 -0
  382. package/dist/types/tests/pixelated.api.test.d.ts +2 -0
  383. package/dist/types/tests/pixelated.api.test.d.ts.map +1 -0
  384. package/dist/types/tests/pixelated.callout.test.d.ts +2 -0
  385. package/dist/types/tests/pixelated.callout.test.d.ts.map +1 -0
  386. package/dist/types/tests/pixelated.carousel.test.d.ts +2 -0
  387. package/dist/types/tests/pixelated.carousel.test.d.ts.map +1 -0
  388. package/dist/types/tests/pixelated.menu-accordion.test.d.ts +2 -0
  389. package/dist/types/tests/pixelated.menu-accordion.test.d.ts.map +1 -0
  390. package/dist/types/tests/pixelated.menu-simple.test.d.ts +2 -0
  391. package/dist/types/tests/pixelated.menu-simple.test.d.ts.map +1 -0
  392. package/dist/types/tests/pixelated.nerdjoke.test.d.ts +2 -0
  393. package/dist/types/tests/pixelated.nerdjoke.test.d.ts.map +1 -0
  394. package/dist/types/tests/pixelated.recipe.test.d.ts +2 -0
  395. package/dist/types/tests/pixelated.recipe.test.d.ts.map +1 -0
  396. package/dist/types/tests/pixelated.resume.test.d.ts +2 -0
  397. package/dist/types/tests/pixelated.resume.test.d.ts.map +1 -0
  398. package/dist/types/tests/pixelated.socialcard.test.d.ts +2 -0
  399. package/dist/types/tests/pixelated.socialcard.test.d.ts.map +1 -0
  400. package/package.json +136 -0
@@ -0,0 +1,49 @@
1
+ // const wpSite = "pixelatedviews.wordpress.com";
2
+ // const wpSite = "19824045";
3
+ // const wpSite = "blog.pixelated.tech";
4
+ const wpApiURL = "https://public-api.wordpress.com/rest/v1/sites/";
5
+ const wpCategoriesPath = "/categories";
6
+ export async function getWordPressItems(props) {
7
+ const requested = props.count; // undefined means fetch all available
8
+ const posts = [];
9
+ let page = 1;
10
+ while (true) {
11
+ const remaining = requested ? Math.max(requested - posts.length, 0) : 100;
12
+ const number = Math.min(remaining || 100, 100);
13
+ const wpPostsURL = `${wpApiURL}${props.site}/posts?number=${number}&page=${page}`;
14
+ try {
15
+ const response = await fetch(wpPostsURL);
16
+ const data = await response.json();
17
+ const batch = Array.isArray(data.posts) ? data.posts : [];
18
+ if (batch.length === 0) {
19
+ break; // no more posts
20
+ }
21
+ posts.push(...batch);
22
+ if (requested && posts.length >= requested) {
23
+ break; // collected enough
24
+ }
25
+ page++;
26
+ }
27
+ catch (error) {
28
+ console.error("Error fetching WP posts:", error);
29
+ return;
30
+ }
31
+ }
32
+ return posts;
33
+ }
34
+ export async function getWordPressCategories(props) {
35
+ const wpCategoriesURL = wpApiURL + props.site + wpCategoriesPath;
36
+ const categories = [];
37
+ try {
38
+ const response = await fetch(wpCategoriesURL);
39
+ const data = await response.json();
40
+ // Check for total pages on the first page
41
+ const myCategories = data.categories.map((category) => (category.name));
42
+ categories.push(...myCategories);
43
+ }
44
+ catch (error) {
45
+ console.error("Error fetching WP categories:", error);
46
+ return;
47
+ }
48
+ return categories; // Return the complete list of categories
49
+ }
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from 'react';
4
+ const PixelatedConfigContext = React.createContext(null);
5
+ export const PixelatedClientConfigProvider = ({ config, children, }) => {
6
+ return _jsx(PixelatedConfigContext.Provider, { value: config, children: children });
7
+ };
8
+ /**
9
+ * Hook to get the Pixelated config. This throws in development when the provider is missing to
10
+ * make misconfiguration obvious. If you prefer a non-throwing variant use `useOptionalPixelatedConfig`.
11
+ */
12
+ export const usePixelatedConfig = () => {
13
+ const ctx = React.useContext(PixelatedConfigContext);
14
+ if (!ctx) {
15
+ if (process.env.NODE_ENV !== 'production') {
16
+ throw new Error('PixelatedClientConfigProvider not found. Wrap your app with PixelatedClientConfigProvider.');
17
+ }
18
+ // In production return an empty object typed as PixelatedConfig to avoid runtime crashes
19
+ return {};
20
+ }
21
+ return ctx;
22
+ };
@@ -0,0 +1,70 @@
1
+ // Example pixelated.config.ts for consumer apps.
2
+ // Place this file in your app (for example: `src/pixelated.config.ts`) and import it where you mount the provider.
3
+ const pixelatedConfig = {
4
+ cloudinary: {
5
+ product_env: 'your-cloud-name',
6
+ baseUrl: 'https://res.cloudinary.com',
7
+ secure: true,
8
+ transforms: 'f_auto,c_limit,q_auto,dpr_auto',
9
+ },
10
+ contentful: {
11
+ base_url: "https://cdn.contentful.com",
12
+ space_id: "soi9w77t7027",
13
+ environment: "master",
14
+ delivery_access_token: "muY9LfpCt4qoXosDsnRkkoH3DAVVuUFEuB0WRKRdBUM",
15
+ management_access_token: "muY9LfpCt4qoXosDsnRkkoH3DAVVuUFEuB0WRKRdBUM",
16
+ preview_access_token: "muY9LfpCt4qoXosDsnRkkoH3DAVVuUFEuB0WRKRdBUM",
17
+ },
18
+ featureFlags: {
19
+ enableNewGrid: true,
20
+ },
21
+ ebay: {
22
+ proxyURL: 'https://proxy.provier.com/proxy?url=',
23
+ appId: 'your-ebay-client-id',
24
+ appCertId: 'your-ebay-client-secret',
25
+ sbxAppId: 'your-ebay-sandbox-client-id',
26
+ sbxAppCertId: 'your-ebay-sandbox-client-secret',
27
+ globalId: 'EBAY_US',
28
+ environment: 'production',
29
+ tokenScope: 'https://api.ebay.com/oauth/api_scope',
30
+ baseTokenURL: 'https://api.ebay.com/identity/v1/oauth2/token',
31
+ baseSearchURL: 'https://api.ebay.com/buy/browse/v1/item_summary/search',
32
+ qsSearchURL: '?q=sunglasses&fieldgroups=full&category_ids=79720&aspect_filter=categoryId:79720&filter=sellers:{pixelatedtech}&sort=newlyListed&limit=200',
33
+ baseItemURL: 'https://api.ebay.com/buy/browse/v1/item',
34
+ qsItemURL: '/v1|295959752403|0?fieldgroups=PRODUCT,ADDITIONAL_SELLER_DETAILS',
35
+ },
36
+ flickr: {
37
+ baseURL: 'https://api.flickr.com/services/rest/?',
38
+ urlProps: {
39
+ method: 'flickr.photos.search',
40
+ api_key: 'your-flickr-api-key',
41
+ user_id: 'your-flickr-user-id',
42
+ tags: 'gallery-name',
43
+ extras: 'date_taken,description,owner_name',
44
+ sort: 'date-taken-desc',
45
+ per_page: 500,
46
+ format: 'json',
47
+ photoSize: 'Medium',
48
+ nojsoncallback: 'true'
49
+ }
50
+ },
51
+ googleAnalytics: {
52
+ id: 'G-XXXXXXX',
53
+ adId: 'AW-XXXXXXXXX',
54
+ },
55
+ googleSearchConsole: {
56
+ "id": "G-XXXXXXX"
57
+ },
58
+ hubspot: {
59
+ portalId: 'your-hubspot-portal-id',
60
+ formId: 'your-default-form-id',
61
+ trackingCode: 'UA-XXXXXXXXX-X',
62
+ },
63
+ paypal: {
64
+ sandboxPayPalApiKey: "your-sandbox-paypal-client-id",
65
+ sandboxPayPalSecret: "your-sandbox-paypal-client-secret",
66
+ payPalApiKey: "your-paypal-client-id",
67
+ payPalSecret: "your-paypal-client-secret"
68
+ },
69
+ };
70
+ export default pixelatedConfig;
@@ -0,0 +1,53 @@
1
+ const debug = false;
2
+ /**
3
+ * Read the full master config blob from environment.
4
+ * This function is intended for server-side use only.
5
+ */
6
+ export function getFullPixelatedConfig() {
7
+ const raw = process.env.PIXELATED_CONFIG_JSON || (process.env.PIXELATED_CONFIG_B64 && Buffer.from(process.env.PIXELATED_CONFIG_B64, 'base64').toString('utf8'));
8
+ if (!raw) {
9
+ console.error('PIXELATED_CONFIG not found: neither PIXELATED_CONFIG_JSON nor PIXELATED_CONFIG_B64 is set in the environment.');
10
+ return {};
11
+ }
12
+ const source = process.env.PIXELATED_CONFIG_JSON ? 'PIXELATED_CONFIG_JSON' : 'PIXELATED_CONFIG_B64';
13
+ try {
14
+ const parsed = JSON.parse(raw);
15
+ if (debug)
16
+ console.log(`PIXELATED_CONFIG loaded from ${source}; raw length=${raw.length}`);
17
+ return parsed;
18
+ }
19
+ catch (err) {
20
+ console.error('Failed to parse PIXELATED_CONFIG JSON; source=', source, 'rawLength=', raw.length, err);
21
+ return {};
22
+ }
23
+ }
24
+ /**
25
+ * Produce a client-safe copy of a full config by removing secret-like keys.
26
+ * This will walk the object and drop any fields that match a secret pattern.
27
+ */
28
+ export function getClientOnlyPixelatedConfig(full) {
29
+ const src = full ?? getFullPixelatedConfig();
30
+ function isSecretKey(key) {
31
+ return /token|secret|key|password|management|access/i.test(key);
32
+ }
33
+ function strip(obj) {
34
+ if (!obj || typeof obj !== 'object')
35
+ return obj;
36
+ if (Array.isArray(obj))
37
+ return obj.map(strip);
38
+ const out = {};
39
+ for (const k of Object.keys(obj)) {
40
+ if (isSecretKey(k))
41
+ continue;
42
+ out[k] = strip(obj[k]);
43
+ }
44
+ return out;
45
+ }
46
+ try {
47
+ return strip(src);
48
+ }
49
+ catch (err) {
50
+ console.error('Failed to strip secrets from config', err);
51
+ return {};
52
+ }
53
+ }
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getClientOnlyPixelatedConfig } from './config';
3
+ // Server wrapper: reads server env blob and sanitizes it, then mounts the client provider.
4
+ // Important: do NOT import client components at module scope — dynamically import
5
+ // the client provider inside the function so this module remains server-safe.
6
+ export async function PixelatedServerConfigProvider({ config, children, }) {
7
+ const cfg = config ?? getClientOnlyPixelatedConfig();
8
+ const mod = await import('./config.client');
9
+ const Provider = mod.PixelatedClientConfigProvider;
10
+ return _jsx(Provider, { config: cfg, children: children });
11
+ }
@@ -0,0 +1,2 @@
1
+ // Types for Pixelated integration configuration
2
+ export {};
@@ -0,0 +1,60 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ function isPartialMatchInArray(searchString, array) {
3
+ // Convert both the search string and array items to lowercase for case-insensitive matching
4
+ const lowerCaseSearchString = searchString.toLowerCase();
5
+ return array.every(item => {
6
+ return item.toLowerCase().includes(lowerCaseSearchString);
7
+ });
8
+ }
9
+ export function preloadAllCSS() {
10
+ // console.log("Deferring all CSS loading...");
11
+ // Select all link tags with rel="stylesheet"
12
+ const stylesheets = document.querySelectorAll('link[rel="stylesheet"]');
13
+ stylesheets.forEach(function (stylesheet) {
14
+ // PRELOAD THE STYLESHEET WITH A LINK TAG
15
+ const link = document.createElement('link');
16
+ link.rel = 'preload';
17
+ link.as = 'style';
18
+ link.href = stylesheet.href;
19
+ link.fetchPriority = 'high';
20
+ document.head.appendChild(link);
21
+ stylesheet.setAttribute('fetchpriority', 'high');
22
+ });
23
+ // Provide a noscript fallback for browsers that don't execute JavaScript
24
+ const noscript = document.createElement('noscript');
25
+ stylesheets.forEach(function (link) {
26
+ const fallbackLink = document.createElement('link');
27
+ fallbackLink.rel = 'stylesheet';
28
+ fallbackLink.href = link.href;
29
+ fallbackLink.fetchPriority = 'high';
30
+ fallbackLink.type = 'text/css';
31
+ noscript.appendChild(fallbackLink);
32
+ });
33
+ document.head.appendChild(noscript);
34
+ }
35
+ export function deferAllCSS() {
36
+ // console.log("Deferring all CSS loading...");
37
+ // Select all link tags with rel="stylesheet"
38
+ const stylesheets = document.querySelectorAll('link[rel="stylesheet"]');
39
+ stylesheets.forEach(function (link) {
40
+ // Change rel to "preload" and as to "style" to asynchronously load the stylesheet
41
+ link.rel = 'preload';
42
+ link.as = 'style';
43
+ // Add an onload handler to apply the stylesheet once loaded
44
+ link.onload = function () {
45
+ link.rel = 'stylesheet'; // Apply the stylesheet
46
+ link.onload = null; // Remove the onload handler to prevent re-execution
47
+ };
48
+ });
49
+ // Provide a noscript fallback for browsers that don't execute JavaScript
50
+ const noscript = document.createElement('noscript');
51
+ stylesheets.forEach(function (link) {
52
+ const fallbackLink = document.createElement('link');
53
+ fallbackLink.rel = 'stylesheet';
54
+ fallbackLink.href = link.href;
55
+ noscript.appendChild(fallbackLink);
56
+ });
57
+ document.head.appendChild(noscript);
58
+ }
59
+ // Call the function when the DOM is ready
60
+ // document.addEventListener('DOMContentLoaded', deferAllCSS);
@@ -0,0 +1,16 @@
1
+ .pageHeader {
2
+ display: block;
3
+ font-size: var(--font-size1, 2em);
4
+ font-variant-caps: small-caps;
5
+ font-variant: small-caps;
6
+ text-align: center;
7
+ font-weight: 800;
8
+ }
9
+
10
+ .pageSectionHeader {
11
+ display: block;
12
+ font-size: var(--font-size2, 1.65em);
13
+ text-align: center;
14
+ font-weight: 700;
15
+ margin: 20px;
16
+ }
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import PropTypes from 'prop-types';
3
+ import "./headers.css";
4
+ /* ========== CALLOUT HEADER ========== */
5
+ PageHeader.propTypes = {
6
+ title: PropTypes.string.isRequired,
7
+ url: PropTypes.string
8
+ };
9
+ export function PageHeader({ title, url }) {
10
+ const calloutTarget = url && url.substring(0, 4).toLowerCase() === 'http' ? '_blank' : '_self';
11
+ return (_jsx(_Fragment, { children: url
12
+ ? _jsx("a", { href: url, target: calloutTarget, rel: "noopener noreferrer", children: _jsx("h1", { className: "pageHeader", children: title }) })
13
+ : _jsx("h1", { className: "pageHeader", children: title }) }));
14
+ }
15
+ ;
16
+ /* ========== CALLOUT HEADER ========== */
17
+ PageSectionHeader.propTypes = {
18
+ title: PropTypes.string.isRequired,
19
+ url: PropTypes.string
20
+ };
21
+ export function PageSectionHeader({ title, url }) {
22
+ const calloutTarget = url && url.substring(0, 4).toLowerCase() === 'http' ? '_blank' : '_self';
23
+ return (_jsx(_Fragment, { children: url
24
+ ? _jsx("a", { href: url, target: calloutTarget, rel: "noopener noreferrer", children: _jsx("h2", { className: "pageSectionHeader", children: title }) })
25
+ : _jsx("h2", { className: "pageSectionHeader", children: title }) }));
26
+ }
27
+ ;
@@ -0,0 +1,81 @@
1
+ /* export function lazyLoadImages() {
2
+ const lazyImages = document.querySelectorAll("img[data-src]");
3
+ const options = {
4
+ rootMargin: "0px 0px 100px 0px", // Preload images when they are 100px from entering the viewport
5
+ threshold: 0, // Trigger when any part of the element intersects
6
+ };
7
+ const imageObserver = new IntersectionObserver((entries, observer) => {
8
+ entries.forEach((entry) => {
9
+ if (entry.isIntersecting) {
10
+ const image = entry.target as HTMLImageElement;
11
+ image.src = image.dataset.src!; // Set the actual image source
12
+ image.removeAttribute("data-src"); // Remove data-src to prevent re-observing
13
+ // Optional: Add a class for styling or animation
14
+ image.classList.add("loaded");
15
+ observer.unobserve(image); // Stop observing once loaded
16
+ }
17
+ });
18
+ }, options);
19
+ lazyImages.forEach((image) => {
20
+ imageObserver.observe(image);
21
+ });
22
+ } */
23
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
+ function isInViewport(el) {
25
+ const rect = el.getBoundingClientRect();
26
+ return (rect.top >= 0 &&
27
+ rect.left >= 0 &&
28
+ rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
29
+ rect.right <= (window.innerWidth || document.documentElement.clientWidth));
30
+ }
31
+ function isPartiallyInViewport(el) {
32
+ const rect = el.getBoundingClientRect();
33
+ return (rect.top < (window.innerHeight || document.documentElement.clientHeight) &&
34
+ rect.left < (window.innerWidth || document.documentElement.clientWidth) &&
35
+ rect.bottom > 0 &&
36
+ rect.right > 0);
37
+ }
38
+ export function preloadImages() {
39
+ const images = document.querySelectorAll("img");
40
+ images.forEach(function (image) {
41
+ // PRELOAD THE IMAGE WITH A LINK TAG
42
+ const link = document.createElement('link');
43
+ link.rel = 'preload';
44
+ link.as = 'image';
45
+ link.href = image.src;
46
+ // link.type = 'image/' + image.src.split('.').pop();
47
+ if (isPartiallyInViewport(image))
48
+ link.fetchPriority = 'high';
49
+ document.head.appendChild(link);
50
+ preloadImage(image.src);
51
+ // SET FETCHPRIORITY = HIGH FOR ALL IMAGES IN VIEWPORT
52
+ if (isPartiallyInViewport(image)) {
53
+ image.setAttribute('fetchpriority', 'high');
54
+ }
55
+ });
56
+ }
57
+ export function preloadImages_v2() {
58
+ if (typeof document === "undefined")
59
+ return; // SSR guard
60
+ const images = document.querySelectorAll("img");
61
+ const preloaded = new Set();
62
+ images.forEach((image) => {
63
+ const src = image.src;
64
+ if (!src || preloaded.has(src))
65
+ return; // Skip if no src or already preloaded
66
+ // Create preload link
67
+ const link = document.createElement("link");
68
+ link.rel = "preload";
69
+ link.as = "image";
70
+ link.href = src;
71
+ document.head.appendChild(link);
72
+ // Preload via JS
73
+ const img = new window.Image();
74
+ img.src = src;
75
+ preloaded.add(src);
76
+ });
77
+ }
78
+ function preloadImage(url) {
79
+ const img = new Image();
80
+ img.src = url;
81
+ }
@@ -0,0 +1,147 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import PropTypes from "prop-types";
4
+ import { SmartImage } from "../cms/cloudinary.image";
5
+ import "../../css/pixelated.grid.scss";
6
+ import "./layout.scss";
7
+ import { usePixelatedConfig } from "../config/config.client";
8
+ /* ==================== LAYOUT COMPONENTS ====================
9
+ Reusable, scalable layout components for grid and flex layouts.
10
+ These components can be used in the pagebuilder to create
11
+ responsive, customizable page sections.
12
+ ==================== ==================== */
13
+ // Define option arrays - used by both PropTypes and form generation
14
+ export const layoutTypes = ['grid', 'flex', 'none'];
15
+ export const autoFlowValues = ['row', 'column', 'dense', 'row dense', 'column dense'];
16
+ export const justifyItemsValues = ['start', 'center', 'end', 'stretch'];
17
+ export const flexDirections = ['row', 'column', 'row-reverse', 'column-reverse'];
18
+ export const flexWraps = ['nowrap', 'wrap', 'wrap-reverse'];
19
+ export const justifyContentValues = ['start', 'center', 'end', 'space-between', 'space-around', 'space-evenly'];
20
+ export const alignItemsValues = ['start', 'center', 'end', 'stretch', 'baseline'];
21
+ // ========== PAGE SECTION ==========
22
+ PageSection.propTypes = {
23
+ id: PropTypes.string,
24
+ className: PropTypes.string,
25
+ layoutType: PropTypes.oneOf([...layoutTypes]),
26
+ // Common props
27
+ gap: PropTypes.string,
28
+ maxWidth: PropTypes.string,
29
+ padding: PropTypes.string,
30
+ background: PropTypes.string,
31
+ backgroundImage: PropTypes.string,
32
+ // Grid-specific props
33
+ columns: PropTypes.number,
34
+ autoFlow: PropTypes.oneOf([...autoFlowValues]),
35
+ justifyItems: PropTypes.oneOf([...justifyItemsValues]),
36
+ responsive: PropTypes.shape({
37
+ mobile: PropTypes.number,
38
+ tablet: PropTypes.number,
39
+ desktop: PropTypes.number,
40
+ }),
41
+ // Flex-specific props
42
+ direction: PropTypes.oneOf([...flexDirections]),
43
+ wrap: PropTypes.oneOf([...flexWraps]),
44
+ justifyContent: PropTypes.oneOf([...justifyContentValues]),
45
+ // Shared alignment
46
+ alignItems: PropTypes.oneOf([...alignItemsValues]),
47
+ children: PropTypes.node,
48
+ };
49
+ export function PageSection({ id, className, layoutType = 'grid', gap = '10px', maxWidth = '1024px', padding = '0 20px', /* 5px */ background, backgroundImage,
50
+ // Grid props
51
+ columns = 12, autoFlow = 'row', justifyItems = 'stretch',
52
+ // responsive = { mobile: 1, tablet: 2, desktop: 3 },
53
+ // Flex props
54
+ direction = 'row', wrap = 'wrap', justifyContent = 'start',
55
+ // Shared
56
+ alignItems = 'stretch', children, }) {
57
+ const sectionStyle = {
58
+ ...(background && { background }),
59
+ };
60
+ const contentStyle = {
61
+ ...(maxWidth && { maxWidth }),
62
+ margin: '0 auto',
63
+ ...(padding && { padding }),
64
+ };
65
+ // Add layout-specific styles
66
+ if (layoutType === 'grid') {
67
+ return (_jsxs("section", { id: id || undefined, className: "page-section" + (className ? ` ${className}` : ''), style: sectionStyle, children: [backgroundImage && _jsx(SectionBackgroundImage, { backgroundImage: backgroundImage, id: id }), _jsx("div", { className: "page-section-content" + " row-" + columns + "col", style: {
68
+ ...contentStyle,
69
+ ...(gap && { gap }),
70
+ ...(autoFlow && { gridAutoFlow: autoFlow }),
71
+ ...(alignItems && { alignItems }),
72
+ ...(justifyItems && { justifyItems }),
73
+ }, children: children })] }));
74
+ }
75
+ if (layoutType === 'flex') {
76
+ return (_jsxs("section", { id: id || undefined, className: "page-section page-section-flex", style: sectionStyle, children: [backgroundImage && _jsx(SectionBackgroundImage, { backgroundImage: backgroundImage, id: id }), _jsx("div", { className: "page-section-content", style: {
77
+ ...contentStyle,
78
+ display: 'flex',
79
+ ...(direction && { flexDirection: direction }),
80
+ ...(wrap && { flexWrap: wrap }),
81
+ ...(gap && { gap }),
82
+ ...(alignItems && { alignItems: alignItems }),
83
+ ...(justifyContent && { justifyContent: justifyContent }),
84
+ }, children: children })] }));
85
+ }
86
+ // layoutType === 'none'
87
+ return (_jsxs("section", { id: id || undefined, className: "page-section page-section-none", style: sectionStyle, children: [backgroundImage && _jsx(SectionBackgroundImage, { backgroundImage: backgroundImage, id: id }), _jsx("div", { className: "page-section-content", style: contentStyle, children: children })] }));
88
+ }
89
+ // ========== GRID ITEM ==========
90
+ GridItem.propTypes = {
91
+ id: PropTypes.string,
92
+ className: PropTypes.string,
93
+ columnSpan: PropTypes.number,
94
+ rowSpan: PropTypes.number,
95
+ columnStart: PropTypes.number,
96
+ columnEnd: PropTypes.number,
97
+ rowStart: PropTypes.number,
98
+ rowEnd: PropTypes.number,
99
+ alignSelf: PropTypes.oneOf(['start', 'center', 'end', 'stretch']),
100
+ justifySelf: PropTypes.oneOf(['start', 'center', 'end', 'stretch']),
101
+ children: PropTypes.node,
102
+ };
103
+ export function GridItem({ id, className, columnSpan, rowSpan, columnStart, columnEnd, rowStart, rowEnd, alignSelf, justifySelf, children, }) {
104
+ const itemStyle = {
105
+ ...(columnSpan && !columnStart && { gridColumn: ` span ${columnSpan}` }),
106
+ // columnStart && columnSpan = style grid-s##-w##
107
+ // columnStart && columnEnd = style grid-s##-e##
108
+ // ...(columnStart && columnEnd && { gridColumn: ` ${columnStart} / ${columnEnd}` }),
109
+ ...(rowSpan && { gridRow: ` span ${rowSpan}` }),
110
+ ...(rowStart && rowEnd && { gridRow: ` ${rowStart} / ${rowEnd}` }),
111
+ ...(alignSelf && { alignSelf }),
112
+ ...(justifySelf && { justifySelf }),
113
+ };
114
+ return (
115
+ /* THIS IS AN OLD STYLE */
116
+ /* <div className={"grid-item" + */
117
+ _jsx("div", { className: "gridItem" +
118
+ (className ? ` ${className}` : '') +
119
+ (columnStart && columnSpan && !columnEnd ? ` grid-s${columnStart}-w${columnSpan}` : '') +
120
+ (columnStart && columnEnd && !columnSpan ? ` grid-s${columnStart}-e${columnEnd}` : ''), id: (id) ? id : undefined, style: itemStyle, children: children }));
121
+ }
122
+ // ========== FLEX ITEM ==========
123
+ FlexItem.propTypes = {
124
+ flex: PropTypes.string,
125
+ order: PropTypes.number,
126
+ alignSelf: PropTypes.oneOf(['auto', 'start', 'center', 'end', 'stretch', 'baseline']),
127
+ children: PropTypes.node,
128
+ };
129
+ export function FlexItem({ flex = '1', order, alignSelf, children, }) {
130
+ const itemStyle = {
131
+ ...(flex && { flex }),
132
+ ...(order !== undefined && order !== null && { order }),
133
+ ...(alignSelf && { alignSelf: alignSelf }),
134
+ };
135
+ return (_jsx("div", { className: "flex-item", style: itemStyle, children: children }));
136
+ }
137
+ // ========== SECTION BACKGROUND IMAGE ==========
138
+ SectionBackgroundImage.propTypes = {
139
+ backgroundImage: PropTypes.string.isRequired,
140
+ id: PropTypes.string,
141
+ };
142
+ export function SectionBackgroundImage(props) {
143
+ const config = usePixelatedConfig();
144
+ return (_jsx(_Fragment, { children: _jsx(SmartImage, { src: props.backgroundImage, className: "section-background-image", id: props.id ? `${props.id}-background-image` : undefined,
145
+ // name={props.id ? `${props.id} background image` : undefined}
146
+ title: props.id ? `${props.id} background image` : undefined, alt: props.id ? `${props.id} background image` : "", cloudinaryEnv: config?.cloudinary?.product_env ?? undefined, cloudinaryDomain: config?.cloudinary?.baseUrl ?? undefined, cloudinaryTransforms: config?.cloudinary?.transforms ?? undefined }) }));
147
+ }
@@ -0,0 +1,47 @@
1
+ /* ========================================
2
+ ========= LAYOUT COMPONENTS =========
3
+ ======================================== */
4
+
5
+ section.page-section {
6
+ position: relative;
7
+ overflow: hidden;
8
+ /* margin-bottom: 50px; */
9
+ padding: 0 0 30px 0;
10
+ }
11
+
12
+ /* section:first-of-type .page-section {
13
+ padding: 30px 0;
14
+ } */
15
+
16
+ /* Base section styles (used by `PageSection` component) */
17
+ .section-background-image {
18
+ width: 100%;
19
+ height: 100% !important;
20
+ object-fit: cover;
21
+ object-position: center top;
22
+ position: absolute;
23
+ opacity: 0.3;
24
+ z-index: -1;
25
+ }
26
+
27
+ .page-section-content {
28
+ width: 100%;
29
+ box-sizing: border-box;
30
+ }
31
+
32
+ /* Grid item styles */
33
+ /* ALL GRID STYLES ARE IN PIXELATED.GRID.SCSS */
34
+ /*
35
+ .grid-item {
36
+ box-sizing: border-box;
37
+ display: grid ;
38
+ min-width: 0; // Prevents grid blowout
39
+ min-height: 0;
40
+ }
41
+ */
42
+
43
+ /* Flex item styles */
44
+ .flex-item {
45
+ box-sizing: border-box;
46
+ min-width: 0; // Prevents flex blowout
47
+ }
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import PropTypes from "prop-types";
3
+ import "./loading.scss";
4
+ /*
5
+ https://signalvnoise.com/posts/2577-loading-spinner-animation-using-css-and-webkit
6
+ https://www.andreaverlicchi.eu/blog/css-3-only-spinning-loading-animation/
7
+ */
8
+ /* ========== MARKDOWN ========== */
9
+ export function Loading() {
10
+ return (_jsx(_Fragment, { children: _jsx("div", { id: "loadingSpinner", className: "loading", children: _jsxs("div", { className: "spinner", children: [_jsx("div", { className: "bar1" }), _jsx("div", { className: "bar2" }), _jsx("div", { className: "bar3" }), _jsx("div", { className: "bar4" }), _jsx("div", { className: "bar5" }), _jsx("div", { className: "bar6" }), _jsx("div", { className: "bar7" }), _jsx("div", { className: "bar8" }), _jsx("div", { className: "bar9" }), _jsx("div", { className: "bar10" }), _jsx("div", { className: "bar11" }), _jsx("div", { className: "bar12" })] }) }) }));
11
+ }
12
+ ToggleLoading.propTypes = {
13
+ show: PropTypes.bool,
14
+ };
15
+ export function ToggleLoading(props) {
16
+ if (typeof window !== "undefined" && typeof document !== "undefined") {
17
+ const loadingElem = document.getElementById("loadingSpinner");
18
+ if (!loadingElem)
19
+ return;
20
+ if (props.show && props.show === true) {
21
+ loadingElem.style.display = "inline-block";
22
+ return;
23
+ } // Show content
24
+ if (props.show && props.show === false) {
25
+ loadingElem.style.display = "none";
26
+ return;
27
+ } // Hide content
28
+ if (loadingElem && loadingElem.style.display === "none") {
29
+ loadingElem.style.display = "inline-block"; // Show content
30
+ }
31
+ else {
32
+ if (loadingElem)
33
+ loadingElem.style.display = "none"; // Hide content
34
+ }
35
+ }
36
+ }