@pixelated-tech/components 3.11.9 → 3.13.0

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 (320) hide show
  1. package/dist/components/admin/componentusage/componentAnalysis.js +2 -0
  2. package/dist/components/admin/deploy/deployment.integration.js +8 -0
  3. package/dist/components/admin/site-health/site-health-accessibility.js +6 -0
  4. package/dist/components/admin/site-health/site-health-axe-core.js +6 -0
  5. package/dist/components/admin/site-health/site-health-cloudwatch.js +10 -0
  6. package/dist/components/admin/site-health/site-health-dependency-vulnerabilities.js +6 -0
  7. package/dist/components/admin/site-health/site-health-github.js +10 -0
  8. package/dist/components/admin/site-health/site-health-google-analytics.js +10 -0
  9. package/dist/components/admin/site-health/site-health-google-search-console.js +10 -0
  10. package/dist/components/admin/site-health/site-health-mock-context.js +8 -0
  11. package/dist/components/admin/site-health/site-health-on-site-seo.js +6 -0
  12. package/dist/components/admin/site-health/site-health-overview.js +6 -0
  13. package/dist/components/admin/site-health/site-health-performance.js +6 -0
  14. package/dist/components/admin/site-health/site-health-security.js +6 -0
  15. package/dist/components/admin/site-health/site-health-seo.js +6 -0
  16. package/dist/components/admin/site-health/site-health-template.js +28 -0
  17. package/dist/components/admin/site-health/site-health-uptime.js +6 -0
  18. package/dist/components/config/config.js +41 -2
  19. package/dist/components/config/config.server.js +8 -0
  20. package/dist/components/general/404.js +6 -0
  21. package/dist/components/general/accordion.js +11 -0
  22. package/dist/components/general/buzzwordbingo.js +18 -0
  23. package/dist/components/general/callout.js +65 -2
  24. package/dist/components/general/carousel.drag.js +12 -0
  25. package/dist/components/general/carousel.js +50 -0
  26. package/dist/components/general/faq-accordion.js +15 -0
  27. package/dist/components/general/global-error.js +12 -0
  28. package/dist/components/general/hero.js +13 -0
  29. package/dist/components/general/loading.js +10 -1
  30. package/dist/components/general/markdown.js +6 -0
  31. package/dist/components/general/menu-accordion.js +30 -1
  32. package/dist/components/general/menu-expando.js +24 -1
  33. package/dist/components/general/menu-simple.js +21 -0
  34. package/dist/components/general/metadata.components.js +10 -0
  35. package/dist/components/general/metadata.functions.js +1 -1
  36. package/dist/components/general/microinteractions.js +22 -0
  37. package/dist/components/general/modal.js +12 -0
  38. package/dist/components/general/nerdjoke.js +11 -1
  39. package/dist/components/general/proxy-handler.js +7 -7
  40. package/dist/components/general/recipe.js +46 -1
  41. package/dist/components/general/resume.js +82 -0
  42. package/dist/components/general/schema-blogposting.js +6 -0
  43. package/dist/components/general/schema-localbusiness.js +36 -0
  44. package/dist/components/general/schema-recipe.js +20 -0
  45. package/dist/components/general/semantic.js +178 -0
  46. package/dist/components/general/sidepanel.js +26 -0
  47. package/dist/components/general/sitemap.js +50 -0
  48. package/dist/components/general/skeleton-loading.js +10 -1
  49. package/dist/components/general/skeleton.js +15 -0
  50. package/dist/components/general/smartimage.js +48 -2
  51. package/dist/components/general/splitscroll.js +21 -10
  52. package/dist/components/general/styleguide.js +6 -0
  53. package/dist/components/general/tab.js +12 -0
  54. package/dist/components/general/table.js +12 -0
  55. package/dist/components/general/tiles.js +32 -1
  56. package/dist/components/general/timeline.js +22 -0
  57. package/dist/components/general/well-known.js +137 -0
  58. package/dist/components/integrations/calendly.js +10 -0
  59. package/dist/components/integrations/cloudinary.js +16 -0
  60. package/dist/components/integrations/contentful.delivery.js +84 -0
  61. package/dist/components/integrations/contentful.items.components.js +46 -0
  62. package/dist/components/integrations/contentful.management.js +25 -25
  63. package/dist/components/integrations/flickr.js +34 -0
  64. package/dist/components/integrations/google.reviews.components.js +14 -0
  65. package/dist/components/integrations/googleanalytics.js +14 -0
  66. package/dist/components/integrations/googlemap.js +20 -0
  67. package/dist/components/integrations/googlesearch.js +6 -0
  68. package/dist/components/integrations/gravatar.components.js +59 -0
  69. package/dist/components/integrations/hubspot.components.js +30 -0
  70. package/dist/components/integrations/instagram.components.js +18 -0
  71. package/dist/components/integrations/lipsum.js +45 -0
  72. package/dist/components/integrations/loremipsum.js +12 -0
  73. package/dist/components/integrations/socialcard.js +20 -1
  74. package/dist/components/integrations/wordpress.components.js +40 -0
  75. package/dist/components/integrations/wordpress.functions.js +24 -0
  76. package/dist/components/integrations/yelp.js +8 -0
  77. package/dist/components/shoppingcart/ebay.components.js +70 -0
  78. package/dist/components/shoppingcart/ebay.functions.js +52 -0
  79. package/dist/components/shoppingcart/shoppingcart.components.js +89 -0
  80. package/dist/components/sitebuilder/config/CompoundFontSelector.js +32 -0
  81. package/dist/components/sitebuilder/config/ConfigBuilder.js +8 -0
  82. package/dist/components/sitebuilder/config/FontSelector.js +40 -0
  83. package/dist/components/sitebuilder/form/formbuilder.js +10 -1
  84. package/dist/components/sitebuilder/form/formcomponents.js +325 -6
  85. package/dist/components/sitebuilder/form/formengine.js +35 -1
  86. package/dist/components/sitebuilder/form/formextractor.js +33 -1
  87. package/dist/components/sitebuilder/form/formutils.js +0 -4
  88. package/dist/components/sitebuilder/form/formvalidator.js +6 -0
  89. package/dist/components/sitebuilder/page/components/ComponentPropertiesForm.js +8 -0
  90. package/dist/components/sitebuilder/page/components/ComponentSelector.js +10 -0
  91. package/dist/components/sitebuilder/page/components/ComponentTree.js +20 -0
  92. package/dist/components/sitebuilder/page/components/PageBuilderUI.js +6 -0
  93. package/dist/components/sitebuilder/page/components/PageEngine.js +20 -0
  94. package/dist/components/sitebuilder/page/components/SaveLoadSection.js +10 -0
  95. package/dist/components/sitebuilder/page/lib/pageStorageContentful.js +4 -4
  96. package/dist/config/pixelated.config.json.enc +1 -1
  97. package/dist/index.js +1 -1
  98. package/dist/index.server.js +4 -4
  99. package/dist/scripts/pixelated-eslint-plugin.js +105 -1
  100. package/dist/scripts/release.sh +12 -21
  101. package/dist/types/components/admin/componentusage/componentAnalysis.d.ts +2 -5
  102. package/dist/types/components/admin/componentusage/componentAnalysis.d.ts.map +1 -1
  103. package/dist/types/components/admin/deploy/deployment.integration.d.ts +1 -5
  104. package/dist/types/components/admin/deploy/deployment.integration.d.ts.map +1 -1
  105. package/dist/types/components/admin/site-health/site-health-accessibility.d.ts +1 -0
  106. package/dist/types/components/admin/site-health/site-health-accessibility.d.ts.map +1 -1
  107. package/dist/types/components/admin/site-health/site-health-axe-core.d.ts +1 -0
  108. package/dist/types/components/admin/site-health/site-health-axe-core.d.ts.map +1 -1
  109. package/dist/types/components/admin/site-health/site-health-cloudwatch.d.ts +3 -0
  110. package/dist/types/components/admin/site-health/site-health-cloudwatch.d.ts.map +1 -1
  111. package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts +1 -0
  112. package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts.map +1 -1
  113. package/dist/types/components/admin/site-health/site-health-github.d.ts +3 -0
  114. package/dist/types/components/admin/site-health/site-health-github.d.ts.map +1 -1
  115. package/dist/types/components/admin/site-health/site-health-github.integration.d.ts +1 -11
  116. package/dist/types/components/admin/site-health/site-health-github.integration.d.ts.map +1 -1
  117. package/dist/types/components/admin/site-health/site-health-google-analytics.d.ts +3 -0
  118. package/dist/types/components/admin/site-health/site-health-google-analytics.d.ts.map +1 -1
  119. package/dist/types/components/admin/site-health/site-health-google-search-console.d.ts +3 -0
  120. package/dist/types/components/admin/site-health/site-health-google-search-console.d.ts.map +1 -1
  121. package/dist/types/components/admin/site-health/site-health-mock-context.d.ts +8 -0
  122. package/dist/types/components/admin/site-health/site-health-mock-context.d.ts.map +1 -1
  123. package/dist/types/components/admin/site-health/site-health-on-site-seo.d.ts +1 -0
  124. package/dist/types/components/admin/site-health/site-health-on-site-seo.d.ts.map +1 -1
  125. package/dist/types/components/admin/site-health/site-health-overview.d.ts +1 -0
  126. package/dist/types/components/admin/site-health/site-health-overview.d.ts.map +1 -1
  127. package/dist/types/components/admin/site-health/site-health-performance.d.ts +1 -0
  128. package/dist/types/components/admin/site-health/site-health-performance.d.ts.map +1 -1
  129. package/dist/types/components/admin/site-health/site-health-security.d.ts +1 -0
  130. package/dist/types/components/admin/site-health/site-health-security.d.ts.map +1 -1
  131. package/dist/types/components/admin/site-health/site-health-seo.d.ts +1 -0
  132. package/dist/types/components/admin/site-health/site-health-seo.d.ts.map +1 -1
  133. package/dist/types/components/admin/site-health/site-health-template.d.ts +12 -0
  134. package/dist/types/components/admin/site-health/site-health-template.d.ts.map +1 -1
  135. package/dist/types/components/admin/site-health/site-health-uptime.d.ts +1 -0
  136. package/dist/types/components/admin/site-health/site-health-uptime.d.ts.map +1 -1
  137. package/dist/types/components/admin/sites/sites.integration.d.ts +7 -1
  138. package/dist/types/components/admin/sites/sites.integration.d.ts.map +1 -1
  139. package/dist/types/components/config/config.d.ts.map +1 -1
  140. package/dist/types/components/config/config.server.d.ts +2 -0
  141. package/dist/types/components/config/config.server.d.ts.map +1 -1
  142. package/dist/types/components/config/config.types.d.ts +2 -2
  143. package/dist/types/components/config/config.types.d.ts.map +1 -1
  144. package/dist/types/components/general/404.d.ts +1 -0
  145. package/dist/types/components/general/404.d.ts.map +1 -1
  146. package/dist/types/components/general/accordion.d.ts +2 -0
  147. package/dist/types/components/general/accordion.d.ts.map +1 -1
  148. package/dist/types/components/general/buzzwordbingo.d.ts +3 -0
  149. package/dist/types/components/general/buzzwordbingo.d.ts.map +1 -1
  150. package/dist/types/components/general/callout.d.ts +24 -0
  151. package/dist/types/components/general/callout.d.ts.map +1 -1
  152. package/dist/types/components/general/carousel.d.ts +13 -0
  153. package/dist/types/components/general/carousel.d.ts.map +1 -1
  154. package/dist/types/components/general/carousel.drag.d.ts +4 -0
  155. package/dist/types/components/general/carousel.drag.d.ts.map +1 -1
  156. package/dist/types/components/general/faq-accordion.d.ts +5 -0
  157. package/dist/types/components/general/faq-accordion.d.ts.map +1 -1
  158. package/dist/types/components/general/global-error.d.ts +4 -0
  159. package/dist/types/components/general/global-error.d.ts.map +1 -1
  160. package/dist/types/components/general/hero.d.ts +4 -0
  161. package/dist/types/components/general/hero.d.ts.map +1 -1
  162. package/dist/types/components/general/loading.d.ts +1 -0
  163. package/dist/types/components/general/loading.d.ts.map +1 -1
  164. package/dist/types/components/general/markdown.d.ts +1 -0
  165. package/dist/types/components/general/markdown.d.ts.map +1 -1
  166. package/dist/types/components/general/menu-accordion.d.ts +7 -0
  167. package/dist/types/components/general/menu-accordion.d.ts.map +1 -1
  168. package/dist/types/components/general/menu-expando.d.ts +6 -0
  169. package/dist/types/components/general/menu-expando.d.ts.map +1 -1
  170. package/dist/types/components/general/menu-simple.d.ts +6 -0
  171. package/dist/types/components/general/menu-simple.d.ts.map +1 -1
  172. package/dist/types/components/general/metadata.components.d.ts +3 -0
  173. package/dist/types/components/general/metadata.components.d.ts.map +1 -1
  174. package/dist/types/components/general/microinteractions.d.ts +9 -0
  175. package/dist/types/components/general/microinteractions.d.ts.map +1 -1
  176. package/dist/types/components/general/modal.d.ts +4 -0
  177. package/dist/types/components/general/modal.d.ts.map +1 -1
  178. package/dist/types/components/general/nerdjoke.d.ts +2 -0
  179. package/dist/types/components/general/nerdjoke.d.ts.map +1 -1
  180. package/dist/types/components/general/proxy-handler.d.ts +7 -7
  181. package/dist/types/components/general/proxy-handler.d.ts.map +1 -1
  182. package/dist/types/components/general/recipe.d.ts +13 -0
  183. package/dist/types/components/general/recipe.d.ts.map +1 -1
  184. package/dist/types/components/general/resume.d.ts +21 -0
  185. package/dist/types/components/general/resume.d.ts.map +1 -1
  186. package/dist/types/components/general/schema-blogposting.d.ts +1 -0
  187. package/dist/types/components/general/schema-blogposting.d.ts.map +1 -1
  188. package/dist/types/components/general/schema-localbusiness.d.ts +16 -0
  189. package/dist/types/components/general/schema-localbusiness.d.ts.map +1 -1
  190. package/dist/types/components/general/schema-recipe.d.ts +1 -0
  191. package/dist/types/components/general/schema-recipe.d.ts.map +1 -1
  192. package/dist/types/components/general/semantic.d.ts +67 -0
  193. package/dist/types/components/general/semantic.d.ts.map +1 -1
  194. package/dist/types/components/general/sidepanel.d.ts +11 -0
  195. package/dist/types/components/general/sidepanel.d.ts.map +1 -1
  196. package/dist/types/components/general/sitemap.d.ts +19 -0
  197. package/dist/types/components/general/sitemap.d.ts.map +1 -1
  198. package/dist/types/components/general/skeleton-loading.d.ts +3 -6
  199. package/dist/types/components/general/skeleton-loading.d.ts.map +1 -1
  200. package/dist/types/components/general/skeleton.d.ts +5 -0
  201. package/dist/types/components/general/skeleton.d.ts.map +1 -1
  202. package/dist/types/components/general/smartimage.d.ts +22 -0
  203. package/dist/types/components/general/smartimage.d.ts.map +1 -1
  204. package/dist/types/components/general/splitscroll.d.ts +18 -40
  205. package/dist/types/components/general/splitscroll.d.ts.map +1 -1
  206. package/dist/types/components/general/styleguide.d.ts +1 -0
  207. package/dist/types/components/general/styleguide.d.ts.map +1 -1
  208. package/dist/types/components/general/tab.d.ts +4 -0
  209. package/dist/types/components/general/tab.d.ts.map +1 -1
  210. package/dist/types/components/general/table.d.ts +4 -0
  211. package/dist/types/components/general/table.d.ts.map +1 -1
  212. package/dist/types/components/general/tiles.d.ts +12 -1
  213. package/dist/types/components/general/tiles.d.ts.map +1 -1
  214. package/dist/types/components/general/timeline.d.ts +5 -0
  215. package/dist/types/components/general/timeline.d.ts.map +1 -1
  216. package/dist/types/components/general/well-known.d.ts +56 -0
  217. package/dist/types/components/general/well-known.d.ts.map +1 -0
  218. package/dist/types/components/integrations/calendly.d.ts +3 -0
  219. package/dist/types/components/integrations/calendly.d.ts.map +1 -1
  220. package/dist/types/components/integrations/cloudinary.d.ts +4 -0
  221. package/dist/types/components/integrations/cloudinary.d.ts.map +1 -1
  222. package/dist/types/components/integrations/contentful.delivery.d.ts +22 -0
  223. package/dist/types/components/integrations/contentful.delivery.d.ts.map +1 -1
  224. package/dist/types/components/integrations/contentful.items.components.d.ts +10 -0
  225. package/dist/types/components/integrations/contentful.items.components.d.ts.map +1 -1
  226. package/dist/types/components/integrations/contentful.management.d.ts +1 -5
  227. package/dist/types/components/integrations/contentful.management.d.ts.map +1 -1
  228. package/dist/types/components/integrations/flickr.d.ts +11 -0
  229. package/dist/types/components/integrations/flickr.d.ts.map +1 -1
  230. package/dist/types/components/integrations/google.reviews.components.d.ts +5 -0
  231. package/dist/types/components/integrations/google.reviews.components.d.ts.map +1 -1
  232. package/dist/types/components/integrations/googleanalytics.d.ts +3 -0
  233. package/dist/types/components/integrations/googleanalytics.d.ts.map +1 -1
  234. package/dist/types/components/integrations/googlemap.d.ts +8 -0
  235. package/dist/types/components/integrations/googlemap.d.ts.map +1 -1
  236. package/dist/types/components/integrations/googlesearch.d.ts +1 -0
  237. package/dist/types/components/integrations/googlesearch.d.ts.map +1 -1
  238. package/dist/types/components/integrations/gravatar.components.d.ts +35 -0
  239. package/dist/types/components/integrations/gravatar.components.d.ts.map +1 -1
  240. package/dist/types/components/integrations/hubspot.components.d.ts +9 -0
  241. package/dist/types/components/integrations/hubspot.components.d.ts.map +1 -1
  242. package/dist/types/components/integrations/instagram.components.d.ts +7 -0
  243. package/dist/types/components/integrations/instagram.components.d.ts.map +1 -1
  244. package/dist/types/components/integrations/lipsum.d.ts +14 -0
  245. package/dist/types/components/integrations/lipsum.d.ts.map +1 -0
  246. package/dist/types/components/integrations/loremipsum.d.ts +4 -0
  247. package/dist/types/components/integrations/loremipsum.d.ts.map +1 -1
  248. package/dist/types/components/integrations/socialcard.d.ts +4 -0
  249. package/dist/types/components/integrations/socialcard.d.ts.map +1 -1
  250. package/dist/types/components/integrations/wordpress.components.d.ts +14 -0
  251. package/dist/types/components/integrations/wordpress.components.d.ts.map +1 -1
  252. package/dist/types/components/integrations/wordpress.functions.d.ts +6 -0
  253. package/dist/types/components/integrations/wordpress.functions.d.ts.map +1 -1
  254. package/dist/types/components/integrations/yelp.d.ts +2 -0
  255. package/dist/types/components/integrations/yelp.d.ts.map +1 -1
  256. package/dist/types/components/shoppingcart/ebay.components.d.ts +15 -0
  257. package/dist/types/components/shoppingcart/ebay.components.d.ts.map +1 -1
  258. package/dist/types/components/shoppingcart/ebay.functions.d.ts +14 -2
  259. package/dist/types/components/shoppingcart/ebay.functions.d.ts.map +1 -1
  260. package/dist/types/components/shoppingcart/paypal.d.ts.map +1 -1
  261. package/dist/types/components/shoppingcart/shoppingcart.components.d.ts +30 -0
  262. package/dist/types/components/shoppingcart/shoppingcart.components.d.ts.map +1 -1
  263. package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts +20 -12
  264. package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts.map +1 -1
  265. package/dist/types/components/sitebuilder/config/CompoundFontSelector.d.ts +12 -0
  266. package/dist/types/components/sitebuilder/config/CompoundFontSelector.d.ts.map +1 -1
  267. package/dist/types/components/sitebuilder/config/ConfigBuilder.d.ts +2 -0
  268. package/dist/types/components/sitebuilder/config/ConfigBuilder.d.ts.map +1 -1
  269. package/dist/types/components/sitebuilder/config/FontSelector.d.ts +16 -0
  270. package/dist/types/components/sitebuilder/config/FontSelector.d.ts.map +1 -1
  271. package/dist/types/components/sitebuilder/form/formbuilder.d.ts +5 -1
  272. package/dist/types/components/sitebuilder/form/formbuilder.d.ts.map +1 -1
  273. package/dist/types/components/sitebuilder/form/formcomponents.d.ts +129 -0
  274. package/dist/types/components/sitebuilder/form/formcomponents.d.ts.map +1 -1
  275. package/dist/types/components/sitebuilder/form/formengine.d.ts +5 -0
  276. package/dist/types/components/sitebuilder/form/formengine.d.ts.map +1 -1
  277. package/dist/types/components/sitebuilder/form/formextractor.d.ts +6 -0
  278. package/dist/types/components/sitebuilder/form/formextractor.d.ts.map +1 -1
  279. package/dist/types/components/sitebuilder/form/formutils.d.ts +0 -2
  280. package/dist/types/components/sitebuilder/form/formutils.d.ts.map +1 -1
  281. package/dist/types/components/sitebuilder/form/formvalidator.d.ts +1 -0
  282. package/dist/types/components/sitebuilder/form/formvalidator.d.ts.map +1 -1
  283. package/dist/types/components/sitebuilder/page/components/ComponentPropertiesForm.d.ts +2 -0
  284. package/dist/types/components/sitebuilder/page/components/ComponentPropertiesForm.d.ts.map +1 -1
  285. package/dist/types/components/sitebuilder/page/components/ComponentSelector.d.ts +3 -0
  286. package/dist/types/components/sitebuilder/page/components/ComponentSelector.d.ts.map +1 -1
  287. package/dist/types/components/sitebuilder/page/components/ComponentTree.d.ts +8 -0
  288. package/dist/types/components/sitebuilder/page/components/ComponentTree.d.ts.map +1 -1
  289. package/dist/types/components/sitebuilder/page/components/PageBuilderUI.d.ts +1 -0
  290. package/dist/types/components/sitebuilder/page/components/PageBuilderUI.d.ts.map +1 -1
  291. package/dist/types/components/sitebuilder/page/components/PageEngine.d.ts +8 -0
  292. package/dist/types/components/sitebuilder/page/components/PageEngine.d.ts.map +1 -1
  293. package/dist/types/components/sitebuilder/page/components/SaveLoadSection.d.ts +3 -0
  294. package/dist/types/components/sitebuilder/page/components/SaveLoadSection.d.ts.map +1 -1
  295. package/dist/types/components/sitebuilder/page/lib/pageStorageContentful.d.ts +1 -1
  296. package/dist/types/components/sitebuilder/page/lib/pageStorageContentful.d.ts.map +1 -1
  297. package/dist/types/index.d.ts +1 -1
  298. package/dist/types/index.server.d.ts +4 -4
  299. package/dist/types/scripts/pixelated-eslint-plugin.d.ts +36 -0
  300. package/dist/types/stories/general/skeleton-loading.stories.d.ts +1 -1
  301. package/dist/types/stories/general/skeleton-loading.stories.d.ts.map +1 -1
  302. package/dist/types/stories/integrations/lipsum.stories.d.ts +38 -0
  303. package/dist/types/stories/integrations/lipsum.stories.d.ts.map +1 -0
  304. package/dist/types/stories/shoppingcart/shoppingcart.stories.d.ts +3 -1
  305. package/dist/types/stories/shoppingcart/shoppingcart.stories.d.ts.map +1 -1
  306. package/dist/types/tests/args.test.d.ts +2 -0
  307. package/dist/types/tests/args.test.d.ts.map +1 -0
  308. package/dist/types/tests/lipsum.test.d.ts +2 -0
  309. package/dist/types/tests/lipsum.test.d.ts.map +1 -0
  310. package/dist/types/tests/securitytxt.test.d.ts +2 -0
  311. package/dist/types/tests/securitytxt.test.d.ts.map +1 -0
  312. package/dist/types/tests/storybook-docgen.test.d.ts +2 -0
  313. package/dist/types/tests/storybook-docgen.test.d.ts.map +1 -0
  314. package/package.json +17 -14
  315. package/dist/components/config/config.utils.js +0 -52
  316. package/dist/components/general/humanstxt.js +0 -81
  317. package/dist/types/components/config/config.utils.d.ts +0 -6
  318. package/dist/types/components/config/config.utils.d.ts.map +0 -1
  319. package/dist/types/components/general/humanstxt.d.ts +0 -37
  320. package/dist/types/components/general/humanstxt.d.ts.map +0 -1
@@ -32,32 +32,80 @@ import './gravatar.css';
32
32
  avatarSize?: number; // in pixels
33
33
  compact?: boolean; // compact variant
34
34
  }; */
35
+ /**
36
+ * GravatarCard — Render a profile card using Gravatar profile data, with optional prop overrides.
37
+ *
38
+ * @param {shape} [props.profile] - Gravatar profile object (fetched server-side) including profile fields and accounts.
39
+ * @param {string} [props.hash] - Gravatar hash for the avatar.
40
+ * @param {string} [props.requestHash] - Optional request hash used when fetching the profile.
41
+ * @param {string} [props.profileUrl] - Direct URL to the Gravatar profile.
42
+ * @param {string} [props.preferredUsername] - Preferred username from the profile.
43
+ * @param {string} [props.thumbnailUrl] - Avatar image URL.
44
+ * @param {string} [props.displayName] - Display name to show on the card.
45
+ * @param {string} [props.pronouns] - Display pronouns (if available).
46
+ * @param {string} [props.aboutMe] - Short bio or about text.
47
+ * @param {string} [props.currentLocation] - Location string for the profile.
48
+ * @param {string} [props.job_title] - Job title from the profile.
49
+ * @param {string} [props.company] - Company name from the profile.
50
+ * @param {arrayOf} [props.accounts] - Array of social account objects (domain, url, username, etc.).
51
+ * @param {arrayOf} [props.emails] - Email objects associated with the profile.
52
+ * @param {string} [props.customRole] - Optional custom role to use instead of job_title.
53
+ * @param {shape} [props.socialLinks] - Override object for social links (github, linkedin, twitter, instagram, website).
54
+ * @param {oneOf} [props.layout] - Layout style: 'horizontal' or 'vertical'.
55
+ * @param {oneOf} [props.direction] - Photo position for horizontal layout: 'left' or 'right'.
56
+ * @param {number} [props.avatarSize] - Avatar size in pixels.
57
+ * @param {boolean} [props.compact] - Render a compact variant of the card.
58
+ */
35
59
  GravatarCard.propTypes = {
36
60
  // Gravatar profile data (fetched server-side)
61
+ /** Gravatar profile object with common fields */
37
62
  profile: PropTypes.shape({
63
+ /** Gravatar hash used to construct avatar URLs */
38
64
  hash: PropTypes.string,
65
+ /** Optional request identifier used when fetching the profile */
39
66
  requestHash: PropTypes.string,
67
+ /** Direct URL to the Gravatar profile */
40
68
  profileUrl: PropTypes.string,
69
+ /** Preferred username from the Gravatar profile */
41
70
  preferredUsername: PropTypes.string,
71
+ /** Avatar thumbnail URL from the profile */
42
72
  thumbnailUrl: PropTypes.string,
73
+ /** Display name from profile */
43
74
  displayName: PropTypes.string,
75
+ /** Pronouns string */
44
76
  pronouns: PropTypes.string,
77
+ /** Short bio / about text */
45
78
  aboutMe: PropTypes.string,
79
+ /** Current location string */
46
80
  currentLocation: PropTypes.string,
81
+ /** Job title from profile */
47
82
  job_title: PropTypes.string,
83
+ /** Company name from profile */
48
84
  company: PropTypes.string,
85
+ /** Social accounts array */
49
86
  accounts: PropTypes.arrayOf(PropTypes.shape({
87
+ /** Account domain (e.g., 'github.com') */
50
88
  domain: PropTypes.string,
89
+ /** Display label for the account */
51
90
  display: PropTypes.string,
91
+ /** URL for the account */
52
92
  url: PropTypes.string,
93
+ /** Icon URL for the account */
53
94
  iconUrl: PropTypes.string,
95
+ /** Account username */
54
96
  username: PropTypes.string,
97
+ /** Whether the account is verified */
55
98
  verified: PropTypes.bool,
99
+ /** Full name associated with the account */
56
100
  name: PropTypes.string,
101
+ /** Shortname used to identify the service (e.g., 'github') */
57
102
  shortname: PropTypes.string,
58
103
  })),
104
+ /** Email addresses associated with the profile */
59
105
  emails: PropTypes.arrayOf(PropTypes.shape({
106
+ /** Email primary flag (if applicable) */
60
107
  primary: PropTypes.string,
108
+ /** Email address value */
61
109
  value: PropTypes.string,
62
110
  })),
63
111
  }),
@@ -71,18 +119,29 @@ GravatarCard.propTypes = {
71
119
  pronouns: PropTypes.string,
72
120
  profileUrl: PropTypes.string,
73
121
  // Additional custom fields not in Gravatar
122
+ /** Optional custom role to display instead of job_title */
74
123
  customRole: PropTypes.string, // Alternative to job_title
124
+ /** Overrides for social links (preferred over profile accounts) */
75
125
  socialLinks: PropTypes.shape({
126
+ /** GitHub profile URL */
76
127
  github: PropTypes.string,
128
+ /** LinkedIn profile URL */
77
129
  linkedin: PropTypes.string,
130
+ /** Twitter profile URL */
78
131
  twitter: PropTypes.string,
132
+ /** Instagram profile URL */
79
133
  instagram: PropTypes.string,
134
+ /** Personal website URL */
80
135
  website: PropTypes.string,
81
136
  }),
82
137
  // Layout options
138
+ /** Layout style: 'horizontal' or 'vertical' */
83
139
  layout: PropTypes.oneOf(['horizontal', 'vertical']),
140
+ /** Photo position when horizontal: 'left' or 'right' */
84
141
  direction: PropTypes.oneOf(['left', 'right']), // photo position (for horizontal layout)
142
+ /** Avatar size in pixels */
85
143
  avatarSize: PropTypes.number, // in pixels
144
+ /** Compact card variant */
86
145
  compact: PropTypes.bool, // compact variant
87
146
  };
88
147
  export function GravatarCard(props) {
@@ -16,11 +16,25 @@ export function initializeHubSpotScript(region, portalId) {
16
16
  script.defer = true;
17
17
  document.head.appendChild(script);
18
18
  }
19
+ /**
20
+ * HubSpotForm — Embed a HubSpot form by injecting the HubSpot script and creating a form instance.
21
+ *
22
+ * @param {string} [props.region] - HubSpot region code (e.g., 'na1').
23
+ * @param {string} [props.portalId] - HubSpot portal ID (account identifier).
24
+ * @param {string} [props.formId] - HubSpot form GUID to render.
25
+ * @param {string} [props.target] - CSS selector target for where the form will be injected (overrides containerId).
26
+ * @param {string} [props.containerId] - ID of the container element to mount the form into (default: 'hubspot-form-container').
27
+ */
19
28
  HubSpotForm.propTypes = {
29
+ /** HubSpot region code */
20
30
  region: PropTypes.string,
31
+ /** HubSpot portal/account ID */
21
32
  portalId: PropTypes.string,
33
+ /** HubSpot form GUID */
22
34
  formId: PropTypes.string,
35
+ /** CSS selector or target element for the form */
23
36
  target: PropTypes.string,
37
+ /** DOM ID of the container element for the form */
24
38
  containerId: PropTypes.string,
25
39
  };
26
40
  export function HubSpotForm({ region, portalId, formId, target, containerId = 'hubspot-form-container' }) {
@@ -48,15 +62,31 @@ export function HubSpotForm({ region, portalId, formId, target, containerId = 'h
48
62
  }, [finalRegion, finalPortalId, finalFormId, formTarget]);
49
63
  return _jsx("div", { className: "hs-form-frame", "data-region": finalRegion, "data-form-id": finalFormId, "data-portal-id": finalPortalId });
50
64
  }
65
+ /**
66
+ * HubspotTrackingCode — Inject the HubSpot tracking script for the given portal ID.
67
+ *
68
+ * @param {string} [props.hubID] - HubSpot portal ID used to load the tracking script.
69
+ */
51
70
  HubspotTrackingCode.propTypes = {
71
+ /** HubSpot portal ID for tracking script injection */
52
72
  hubID: PropTypes.string.isRequired,
53
73
  };
54
74
  export function HubspotTrackingCode(props) {
55
75
  return (_jsx(_Fragment, { children: _jsx("script", { type: "text/javascript", id: "hs-script-loader", async: true, defer: true, src: `//js-na2.hs-scripts.com/${props.hubID}.js` }) }));
56
76
  }
77
+ /**
78
+ * getHubspotFormSubmissions — Retrieve submissions for a HubSpot form via the HubSpot Forms API (proxied).
79
+ *
80
+ * @param {string} [props.proxyURL] - Proxy base URL used to avoid CORS (must include trailing slash if required by proxy).
81
+ * @param {string} [props.formGUID] - HubSpot form GUID to fetch submissions for.
82
+ * @param {string} [props.apiToken] - HubSpot API token used for authorization.
83
+ */
57
84
  getHubspotFormSubmissions.propTypes = {
85
+ /** Proxy base URL to route the request through */
58
86
  proxyURL: PropTypes.string.isRequired,
87
+ /** HubSpot form GUID */
59
88
  formGUID: PropTypes.string.isRequired,
89
+ /** Bearer API token for HubSpot requests */
60
90
  apiToken: PropTypes.string.isRequired,
61
91
  };
62
92
  export async function getHubspotFormSubmissions(props) {
@@ -5,13 +5,31 @@ import PropTypes from 'prop-types';
5
5
  import { getInstagramTiles } from './instagram.functions';
6
6
  import { usePixelatedConfig } from "../config/config.client";
7
7
  import { Tiles } from '../general/tiles';
8
+ /**
9
+ * InstagramTiles — Fetch Instagram media and render as tiles.
10
+ *
11
+ * @param {string} [props.accessToken] - Instagram user access token with required permissions.
12
+ * @param {string} [props.userId] - Instagram user ID to fetch media from.
13
+ * @param {number} [props.limit] - Maximum number of media items to fetch (default: 12).
14
+ * @param {number} [props.rowCount] - Number of columns/rows to use in the tiles layout.
15
+ * @param {boolean} [props.useThumbnails] - Whether to prefer thumbnail images over full-size media.
16
+ * @param {boolean} [props.includeVideos] - Include video posts in results when true.
17
+ * @param {boolean} [props.includeCaptions] - Include captions in the returned tile metadata.
18
+ */
8
19
  InstagramTiles.propTypes = {
20
+ /** Instagram access token */
9
21
  accessToken: PropTypes.string,
22
+ /** Instagram user ID */
10
23
  userId: PropTypes.string,
24
+ /** Max number of media items to fetch */
11
25
  limit: PropTypes.number,
26
+ /** Number of columns/rows used by Tiles layout */
12
27
  rowCount: PropTypes.number,
28
+ /** Prefer thumbnails when available */
13
29
  useThumbnails: PropTypes.bool,
30
+ /** Include video posts */
14
31
  includeVideos: PropTypes.bool,
32
+ /** Include captions in tile metadata */
15
33
  includeCaptions: PropTypes.bool,
16
34
  };
17
35
  export function InstagramTiles(props) {
@@ -0,0 +1,45 @@
1
+ import PropTypes from 'prop-types';
2
+ // https://www.outsystems.com/forge/component-documentation/12204/lorem-ipsum-lipsum-com-o11/0
3
+ /**
4
+ * getLipsum — Fetch placeholder text from lipsum.com and return an array of paragraphs.
5
+ *
6
+ * @param {oneOf} [props.LipsumTypeId] - Type of content to request ('Paragraph', 'Word', 'Char').
7
+ * @param {number} [props.Amount] - Quantity to request (number of paragraphs/words/chars).
8
+ * @param {boolean} [props.StartWithLoremIpsum] - Whether the text should start with the classic Lorem Ipsum opening.
9
+ */
10
+ getLipsum.propTypes = {
11
+ /** Type of lipsum content to request */
12
+ LipsumTypeId: PropTypes.oneOf(['Paragraph', 'Word', 'Char']).isRequired,
13
+ /** Number of items to request */
14
+ Amount: PropTypes.number.isRequired,
15
+ /** Start with the canonical Lorem Ipsum text */
16
+ StartWithLoremIpsum: PropTypes.bool,
17
+ };
18
+ export async function getLipsum(props) {
19
+ const { LipsumTypeId, Amount, StartWithLoremIpsum } = props;
20
+ const proxyURL = "https://proxy.pixelated.tech/prod/proxy?url=";
21
+ const baseURL = "https://www.lipsum.com/feed/html";
22
+ const qs = `?LipsumTypeId=${LipsumTypeId}&amount=${Amount}&StartWithLoremIpsum=${StartWithLoremIpsum}`;
23
+ const fulURL = `${proxyURL}${baseURL}${qs}`;
24
+ const res = await fetch(fulURL)
25
+ .then((response) => {
26
+ return response.text();
27
+ })
28
+ .then((html) => {
29
+ const parser = new DOMParser();
30
+ const doc = parser.parseFromString(html, 'text/html');
31
+ const lipsum = doc.getElementById('lipsum');
32
+ // const lipsums = doc.getElementById('lipsum')?.innerHTML || "";
33
+ const paragraphs = lipsum?.querySelectorAll('p');
34
+ const strings = [];
35
+ paragraphs?.forEach((p) => {
36
+ strings.push(p.textContent.trim());
37
+ });
38
+ return strings;
39
+ })
40
+ .catch(error => {
41
+ console.error('Failed to fetch page: ', error);
42
+ return [];
43
+ });
44
+ return res;
45
+ }
@@ -4,10 +4,22 @@ import { useEffect, useState } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { usePixelatedConfig } from '../config/config.client';
6
6
  const debug = false;
7
+ /**
8
+ * LoremIpsum — Fetch and render placeholder paragraphs via an external API (with optional proxy fallback).
9
+ *
10
+ * @param {number} [props.paragraphs] - Number of paragraphs to fetch.
11
+ * @param {string} [props.seed] - Optional seed to generate deterministic content.
12
+ * @param {string} [props.proxyBase] - Optional proxy base URL to use when direct fetch fails due to CORS.
13
+ * @param {string} [props.className] - CSS class name(s) applied to the wrapper element.
14
+ */
7
15
  LoremIpsum.propTypes = {
16
+ /** Paragraph count to request */
8
17
  paragraphs: PropTypes.number,
18
+ /** Optional deterministic seed for content */
9
19
  seed: PropTypes.string,
20
+ /** Proxy base URL used as a fallback */
10
21
  proxyBase: PropTypes.string,
22
+ /** Wrapper CSS class name */
11
23
  className: PropTypes.string,
12
24
  };
13
25
  export function LoremIpsum({ paragraphs = 1, seed = '', proxyBase, className = '' }) {
@@ -31,7 +31,13 @@ function removeDeadHrefs(element) {
31
31
  return doc.body.innerHTML;
32
32
  }
33
33
  /* ========== SOCIALCARD ========== */
34
+ /**
35
+ * SocialCards — Aggregate feeds from configured sources (RSS, APIs) and render as social cards.
36
+ *
37
+ * @param {object} [props.sources] - Map of source configurations (url/userID/entryCount/iconSrc/iconSrcAlt) keyed by source name.
38
+ */
34
39
  SocialCards.propTypes = {
40
+ /** Map of feed source configurations (e.g., { instagram: { userID, entryCount }, blog: { url, entryCount }, ... }) */
35
41
  sources: PropTypes.object.isRequired
36
42
  };
37
43
  export function SocialCards(props) {
@@ -289,9 +295,19 @@ export function SocialCards(props) {
289
295
  return (state.mySocialCards);
290
296
  }
291
297
  }
298
+ /**
299
+ * SocialCard — Render a single social feed item as a card with icon, title, description, and date.
300
+ *
301
+ * @param {string} [props.iconSrc] - URL/path to the source icon image.
302
+ * @param {string} [props.iconSrcAlt] - Alt text for the source icon.
303
+ * @param {any} [props.card] - Feed item object containing title, link, description and pubDate.
304
+ */
292
305
  SocialCard.propTypes = {
306
+ /** Source icon image URL */
293
307
  iconSrc: PropTypes.string.isRequired,
308
+ /** Alt text for the icon */
294
309
  iconSrcAlt: PropTypes.string.isRequired,
310
+ /** Feed item object with title/link/description/pubDate */
295
311
  card: PropTypes.any.isRequired
296
312
  };
297
313
  export function SocialCard(props) {
@@ -299,7 +315,10 @@ export function SocialCard(props) {
299
315
  return (_jsx("div", { className: "masonryItem", children: _jsxs("div", { className: "card", children: [_jsx("div", { className: "cardTitle", children: _jsxs("a", { href: props.card.link, target: "_blank", rel: "noopener noreferrer", children: [_jsx(SmartImage, { className: "cardIcon", src: props.iconSrc, title: props.iconSrcAlt, alt: props.iconSrcAlt, cloudinaryEnv: config?.cloudinary?.product_env, cloudinaryDomain: config?.cloudinary?.baseUrl, cloudinaryTransforms: config?.cloudinary?.transforms }), props.card.title] }) }), _jsx("div", { className: "cardBody", dangerouslySetInnerHTML: { __html: removeDeadHrefs(props.card.description) } }), _jsx("div", { className: "cardDate", children: props.card.pubDate })] }) }, props.card.guid));
300
316
  }
301
317
  /* ========== SPINNER ========== */
302
- SocialCardsLoading.propTypes = {};
318
+ /** SocialCardsLoading.propTypes No props (simple loading indicator).
319
+ * @param {any} [props] - No props are accepted by SocialCardsLoading.
320
+ */
321
+ SocialCardsLoading.propTypes = { /** no props */};
303
322
  export function SocialCardsLoading() {
304
323
  return (_jsx("div", { className: "cardsLoading", children: _jsx("div", { children: "Loading..." }) }));
305
324
  }
@@ -14,11 +14,25 @@ function decodeString(str) {
14
14
  textarea.innerHTML = str;
15
15
  return textarea.value;
16
16
  }
17
+ /**
18
+ * BlogPostList — Render a list of WordPress posts. If `posts` are provided they are used directly; otherwise the component will fetch posts from the configured WordPress endpoint.
19
+ *
20
+ * @param {string} [props.site] - WordPress site identifier (overrides provider config).
21
+ * @param {string} [props.baseURL] - Base URL for WordPress API if not using site config.
22
+ * @param {number} [props.count] - Maximum number of posts to fetch/display.
23
+ * @param {array} [props.posts] - Optional pre-fetched posts to render (bypasses remote fetch).
24
+ * @param {boolean} [props.showCategories] - Whether to show category icons for each post.
25
+ */
17
26
  BlogPostList.propTypes = {
27
+ /** WordPress site identifier */
18
28
  site: PropTypes.string,
29
+ /** Optional WordPress base URL */
19
30
  baseURL: PropTypes.string,
31
+ /** Max number of posts to fetch/display */
20
32
  count: PropTypes.number,
33
+ /** Optional array of pre-fetched posts */
21
34
  posts: PropTypes.array,
35
+ /** Show category icons next to posts */
22
36
  showCategories: PropTypes.bool,
23
37
  };
24
38
  export function BlogPostList(props) {
@@ -55,14 +69,34 @@ export function BlogPostList(props) {
55
69
  }, [site, baseURL, count, cachedPosts]);
56
70
  return (_jsxs(_Fragment, { children: [_jsx(Loading, {}), posts.map((post) => (_jsx(PageGridItem, { children: _jsx(BlogPostSummary, { ID: post.ID, title: post.title, date: post.date, excerpt: post.excerpt, URL: post.URL, categories: post.categories, featured_image: post.featured_image, showCategories: showCategories }) }, post.ID)))] }));
57
71
  }
72
+ /**
73
+ * BlogPostSummary — Render a compact summary card for a single WordPress post.
74
+ *
75
+ * @param {oneOfType} [props.ID] - Post ID (string or number).
76
+ * @param {string} [props.title] - Post title.
77
+ * @param {string} [props.date] - Post publish date (ISO string).
78
+ * @param {string} [props.excerpt] - HTML excerpt to display as the summary.
79
+ * @param {string} [props.URL] - Canonical URL for the post.
80
+ * @param {object} [props.categories] - Categories object (keys -> category name) used to derive icons.
81
+ * @param {string} [props.featured_image] - URL of the post's featured image.
82
+ * @param {boolean} [props.showCategories] - Whether to render category icons beneath the summary.
83
+ */
58
84
  BlogPostSummary.propTypes = {
85
+ /** Post ID (string or number) */
59
86
  ID: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
87
+ /** Post title */
60
88
  title: PropTypes.string,
89
+ /** Post publish date (ISO string) */
61
90
  date: PropTypes.string,
91
+ /** HTML excerpt */
62
92
  excerpt: PropTypes.string,
93
+ /** Canonical URL for the post */
63
94
  URL: PropTypes.string,
95
+ /** Categories object used for icons */
64
96
  categories: PropTypes.object,
97
+ /** Featured image URL */
65
98
  featured_image: PropTypes.string,
99
+ /** Show categories flag */
66
100
  showCategories: PropTypes.bool,
67
101
  };
68
102
  export function BlogPostSummary(props) {
@@ -72,7 +106,13 @@ export function BlogPostSummary(props) {
72
106
  return (_jsx("div", { className: "blog-post-summary", children: _jsxs("article", { className: "h-entry", children: [_jsx("h2", { className: "p-name", children: _jsx("a", { className: "u-url blog-post-url", href: props.URL || '', target: "_blank", rel: "noopener noreferrer", children: props.title ? decodeString(props.title) : '' }) }), _jsxs("div", { className: "dt-published", children: ["Published: ", props.date ? new Date(props.date).toLocaleDateString() : ''] }), props.featured_image ? (_jsxs("div", { className: "article-body row-12col", children: [_jsx("div", { className: "article-featured-image grid-s1-e4", children: _jsx(SmartImage, { className: "u-photo", src: props.featured_image, alt: props.title ? decodeString(props.title) : '', title: props.title ? decodeString(props.title) : '', style: {}, cloudinaryEnv: config?.cloudinary?.product_env ?? undefined, cloudinaryDomain: config?.cloudinary?.baseUrl ?? undefined, cloudinaryTransforms: config?.cloudinary?.transforms ?? undefined }) }), _jsx("div", { className: "article-excerpt grid-s4-e13", children: _jsx("div", { className: "p-summary", dangerouslySetInnerHTML: { __html: myExcerpt } }) })] })) :
73
107
  _jsx("div", { className: "article-excerpt grid-s1-e13", children: _jsx("div", { className: "p-summary", dangerouslySetInnerHTML: { __html: myExcerpt } }) }), props.showCategories !== false && (_jsxs("div", { children: ["Categories:", myCategoryImages.map(([categoryImg, index]) => (_jsx("span", { className: "p-category", children: _jsx(SmartImage, { src: `/images/icons/${categoryImg}.png`, title: String(categoryImg), alt: String(categoryImg), cloudinaryEnv: config?.cloudinary?.product_env ?? undefined, cloudinaryDomain: config?.cloudinary?.baseUrl ?? undefined, cloudinaryTransforms: config?.cloudinary?.transforms ?? undefined }) }, categoryImg + "-" + index)))] }))] }) }, props.ID));
74
108
  }
109
+ /**
110
+ * BlogPostCategories — Render a compact list of category names or icons for a post.
111
+ *
112
+ * @param {arrayOf} [props.categories] - Array of category strings to render.
113
+ */
75
114
  BlogPostCategories.propTypes = {
115
+ /** Array of category names */
76
116
  categories: PropTypes.arrayOf(PropTypes.string),
77
117
  };
78
118
  export function BlogPostCategories(props) {
@@ -4,9 +4,19 @@ import PropTypes from "prop-types";
4
4
  // const wpSite = "blog.pixelated.tech";
5
5
  const wpApiURL = "https://public-api.wordpress.com/rest/v1/sites/";
6
6
  const wpCategoriesPath = "/categories";
7
+ /**
8
+ * getWordPressItems — Fetch posts from the WordPress REST API for a given site.
9
+ *
10
+ * @param {string} [props.site] - WordPress site identifier (site slug or domain).
11
+ * @param {number} [props.count] - Optional number of posts to fetch (omit to fetch all available).
12
+ * @param {string} [props.baseURL] - Optional base URL for the WordPress API (defaults to public WordPress API URL).
13
+ */
7
14
  getWordPressItems.propTypes = {
15
+ /** WordPress site identifier (slug or domain) */
8
16
  site: PropTypes.string.isRequired,
17
+ /** Number of posts to fetch (optional) */
9
18
  count: PropTypes.number,
19
+ /** Base URL for WordPress API (optional) */
10
20
  baseURL: PropTypes.string,
11
21
  };
12
22
  export async function getWordPressItems(props) {
@@ -43,7 +53,13 @@ export async function getWordPressItems(props) {
43
53
  }
44
54
  return posts;
45
55
  }
56
+ /**
57
+ * getWordPressItemImages — Extract image objects from a WordPress post for use in sitemaps and galleries.
58
+ *
59
+ * @param {object} [props.item] - WordPress post object to extract image URLs from.
60
+ */
46
61
  getWordPressItemImages.propTypes = {
62
+ /** WordPress post object */
47
63
  item: PropTypes.object.isRequired,
48
64
  };
49
65
  export function getWordPressItemImages(item) {
@@ -87,8 +103,16 @@ export function getWordPressItemImages(item) {
87
103
  }
88
104
  return images;
89
105
  }
106
+ /**
107
+ * getWordPressCategories — Retrieve categories for a WordPress site.
108
+ *
109
+ * @param {string} [props.site] - WordPress site identifier (slug or domain).
110
+ * @param {string} [props.baseURL] - Optional base URL for the WordPress API.
111
+ */
90
112
  getWordPressCategories.propTypes = {
113
+ /** WordPress site identifier (slug or domain) */
91
114
  site: PropTypes.string.isRequired,
115
+ /** Base URL for WordPress API (optional) */
92
116
  baseURL: PropTypes.string,
93
117
  };
94
118
  export async function getWordPressCategories(props) {
@@ -13,8 +13,16 @@ https://www.google.com/search?q=yelp+reviews+react+component&oq=yelp+reviews+rea
13
13
  https://www.reddit.com/r/nextjs/comments/16smhqa/next_js_fetching_data_from_yelp_api/
14
14
  https://helloputnam.medium.com/easiest-way-to-include-business-reviews-on-a-web-app-google-facebook-yelp-etc-de3e243bbe75
15
15
  */
16
+ /**
17
+ * YelpReviews — Fetch and display Yelp reviews for a given business ID (note: Yelp API access may require paid plan).
18
+ *
19
+ * @param {string} [props.businessID] - Yelp business ID used to fetch reviews (required).
20
+ * @param {string} [props.key] - Optional API key (not used by the demo placeholder implementation).
21
+ */
16
22
  YelpReviews.propTypes = {
23
+ /** Yelp business identifier */
17
24
  businessID: PropTypes.string.isRequired,
25
+ /** Optional Yelp API key */
18
26
  key: PropTypes.string,
19
27
  };
20
28
  export function YelpReviews(props) {
@@ -14,8 +14,16 @@ import "../../css/pixelated.grid.scss";
14
14
  import "./ebay.css";
15
15
  const debug = false;
16
16
  /* ========== EBAY ITEMS PAGE ========== */
17
+ /**
18
+ * EbayItems — Fetch and display eBay items using the configured API parameters and optional Cloudinary transforms.
19
+ *
20
+ * @param {object} [props.apiProps] - eBay API configuration and query parameters.
21
+ * @param {string} [props.cloudinaryProductEnv] - Optional Cloudinary cloud name used to transform image URLs.
22
+ */
17
23
  EbayItems.propTypes = {
24
+ /** eBay API configuration and query params */
18
25
  apiProps: PropTypes.object.isRequired,
26
+ /** Optional Cloudinary product environment for image transforms */
19
27
  cloudinaryProductEnv: PropTypes.string,
20
28
  };
21
29
  export function EbayItems(props) {
@@ -24,8 +32,16 @@ export function EbayItems(props) {
24
32
  const [items, setItems] = useState([]);
25
33
  const [aspects, setAspects] = useState([]);
26
34
  const apiProps = { ...(config?.ebay || {}), ...props.apiProps };
35
+ /**
36
+ * paintItems — Map raw eBay item data into rendered `EbayListItem` elements.
37
+ *
38
+ * @param {array} [props.items] - Array of eBay item objects returned by the API.
39
+ * @param {string} [props.cloudinaryProductEnv] - Optional Cloudinary cloud name for image URL transformations.
40
+ */
27
41
  paintItems.propTypes = {
42
+ /** Array of eBay item objects */
28
43
  items: PropTypes.array.isRequired,
44
+ /** Optional Cloudinary product environment */
29
45
  cloudinaryProductEnv: PropTypes.string,
30
46
  };
31
47
  function paintItems(props) {
@@ -39,8 +55,16 @@ export function EbayItems(props) {
39
55
  }
40
56
  return newItems;
41
57
  }
58
+ /**
59
+ * fetchItems — Perform a search query against eBay and update component state with results.
60
+ *
61
+ * @param {string} [props.aspectName] - Optional aspect name to filter search results.
62
+ * @param {string} [props.aspectValue] - Optional aspect value corresponding to `aspectName` to filter results.
63
+ */
42
64
  fetchItems.propTypes = {
65
+ /** Filter aspect name for the search (optional) */
43
66
  aspectName: PropTypes.string,
67
+ /** Filter aspect value for the search (optional) */
44
68
  aspectValue: PropTypes.string,
45
69
  };
46
70
  async function fetchItems(props) {
@@ -80,8 +104,16 @@ export function EbayItems(props) {
80
104
  return (_jsx("div", { className: "section-container", children: _jsx("div", { id: "ebayItems", className: "ebayItems", children: _jsx(Loading, {}) }) }));
81
105
  }
82
106
  }
107
+ /**
108
+ * EbayListFilter — UI for filtering eBay item lists by aspect values.
109
+ *
110
+ * @param {any} [props.aspects] - Aspect distributions returned by eBay used to build filter controls.
111
+ * @param {function} [props.callback] - Callback invoked when a filter selection changes; receives filter criteria.
112
+ */
83
113
  EbayListFilter.propTypes = {
114
+ /** Aspect distributions used to render filter controls */
84
115
  aspects: PropTypes.any.isRequired,
116
+ /** Callback to fetch filtered results */
85
117
  callback: PropTypes.func.isRequired,
86
118
  };
87
119
  export function EbayListFilter(props) {
@@ -124,9 +156,19 @@ export function EbayListFilter(props) {
124
156
  }
125
157
  return (_jsxs("form", { name: "ebayItemsFilter", id: "ebayItemsFilter", children: [_jsxs("span", { className: "filterInput", children: [_jsx("label", { htmlFor: "aspectName", children: "Aspect:" }), _jsxs("select", { id: "aspectName", onChange: onAspectNameChange, children: [_jsx("option", { value: "" }), aspectNames.map((aspectName, index) => _jsx("option", { value: aspectName, children: aspectName }, index))] })] }), _jsxs("span", { className: "filterInput", children: [_jsx("label", { htmlFor: "aspectValue", onChange: onAspectValueChange, children: "Value:" }), _jsx("select", { id: "aspectValue", children: _jsx("option", { value: "" }) })] }), _jsx("span", { className: "filterInput", children: _jsx("button", { type: "button", onClick: handleAspectFilter, children: "Filter" }) })] }));
126
158
  }
159
+ /**
160
+ * EbayListItem — Render a single eBay item with thumbnail, metadata and add-to-cart actions.
161
+ *
162
+ * @param {any} [props.item] - eBay item object returned by the API.
163
+ * @param {string} [props.cloudinaryProductEnv] - Optional Cloudinary cloud name to transform image URLs.
164
+ * @param {any} [props.apiProps] - eBay API properties (for link generation or calls).
165
+ */
127
166
  EbayListItem.propTypes = {
167
+ /** eBay item object */
128
168
  item: PropTypes.any.isRequired,
169
+ /** Optional Cloudinary product environment */
129
170
  cloudinaryProductEnv: PropTypes.string,
171
+ /** eBay API properties */
130
172
  apiProps: PropTypes.any,
131
173
  };
132
174
  export function EbayListItem(props) {
@@ -151,9 +193,19 @@ export function EbayListItem(props) {
151
193
  ? _jsxs("a", { href: itemURL, target: itemURLTarget, rel: "noreferrer", children: ["$", thisItem.price.value + " " + thisItem.price.currency] })
152
194
  : "$" + thisItem.price.value + " " + thisItem.price.currency }), _jsx("br", {}), _jsxs("div", { className: "ebayItemAddToCart", children: [_jsx(ViewItemDetails, { href: "/store", itemID: thisItem.legacyItemId }), _jsx(AddToCartButton, { handler: addToShoppingCart, item: shoppingCartItem, itemID: thisItem.legacyItemId })] })] })] }));
153
195
  }
196
+ /**
197
+ * EbayItemHeader — Render a heading for an eBay item; optionally wrap in a link when a `url` is provided.
198
+ *
199
+ * @param {string} [props.title] - The item title to display.
200
+ * @param {string} [props.url] - Optional URL to link the title to (opens in `props.target`).
201
+ * @param {string} [props.target] - Link target attribute (e.g., '_blank').
202
+ */
154
203
  EbayItemHeader.propTypes = {
204
+ /** The item title text */
155
205
  title: PropTypes.string.isRequired,
206
+ /** Optional link URL for the title */
156
207
  url: PropTypes.string,
208
+ /** Link target attribute (e.g., '_blank') */
157
209
  target: PropTypes.string,
158
210
  };
159
211
  export function EbayItemHeader(props) {
@@ -162,9 +214,19 @@ export function EbayItemHeader(props) {
162
214
  : _jsx("h2", { className: "", children: props.title }) }));
163
215
  }
164
216
  /* ========== EBAY ITEM DETAIL PAGE ========== */
217
+ /**
218
+ * EbayItemDetail — Display detailed information for a single eBay item fetched via the API.
219
+ *
220
+ * @param {object} [props.apiProps] - eBay API configuration used to fetch the item.
221
+ * @param {string} [props.itemID] - eBay item identifier to fetch details for.
222
+ * @param {string} [props.cloudinaryProductEnv] - Optional Cloudinary product environment for image transforms.
223
+ */
165
224
  EbayItemDetail.propTypes = {
225
+ /** eBay API configuration */
166
226
  apiProps: PropTypes.object.isRequired,
227
+ /** eBay item ID to fetch details for */
167
228
  itemID: PropTypes.string.isRequired, // currently not used
229
+ /** Cloudinary product env for image transforms */
168
230
  cloudinaryProductEnv: PropTypes.string,
169
231
  };
170
232
  export function EbayItemDetail(props) {
@@ -209,8 +271,16 @@ export function EbayItemDetail(props) {
209
271
  }
210
272
  }
211
273
  /* ========== EBAY RATE LIMITS VISUALIZER ========== */
274
+ /**
275
+ * EbayRateLimitsVisualizer — Visualize eBay API rate limit information for debugging and monitoring.
276
+ *
277
+ * @param {string} [props.token] - OAuth access token used to authorize analytics requests.
278
+ * @param {object} [props.apiProps] - eBay analytics API configuration (baseAnalyticsURL, proxyURL).
279
+ */
212
280
  EbayRateLimitsVisualizer.propTypes = {
281
+ /** OAuth access token for analytics endpoints */
213
282
  token: PropTypes.string,
283
+ /** eBay analytics API configuration */
214
284
  apiProps: PropTypes.object,
215
285
  };
216
286
  export function EbayRateLimitsVisualizer(props) {