@pixelated-tech/components 3.11.8 → 3.12.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 (286) hide show
  1. package/dist/components/admin/site-health/site-health-accessibility.js +6 -0
  2. package/dist/components/admin/site-health/site-health-axe-core.js +6 -0
  3. package/dist/components/admin/site-health/site-health-cloudwatch.js +10 -0
  4. package/dist/components/admin/site-health/site-health-dependency-vulnerabilities.js +6 -0
  5. package/dist/components/admin/site-health/site-health-github.js +10 -0
  6. package/dist/components/admin/site-health/site-health-google-analytics.js +10 -0
  7. package/dist/components/admin/site-health/site-health-google-search-console.js +10 -0
  8. package/dist/components/admin/site-health/site-health-mock-context.js +8 -0
  9. package/dist/components/admin/site-health/site-health-on-site-seo.js +6 -0
  10. package/dist/components/admin/site-health/site-health-overview.js +6 -0
  11. package/dist/components/admin/site-health/site-health-performance.js +6 -0
  12. package/dist/components/admin/site-health/site-health-security.js +6 -0
  13. package/dist/components/admin/site-health/site-health-seo.js +6 -0
  14. package/dist/components/admin/site-health/site-health-template.js +28 -0
  15. package/dist/components/admin/site-health/site-health-uptime.js +6 -0
  16. package/dist/components/config/config.server.js +8 -0
  17. package/dist/components/general/404.js +6 -0
  18. package/dist/components/general/accordion.js +11 -0
  19. package/dist/components/general/buzzwordbingo.js +18 -0
  20. package/dist/components/general/callout.js +65 -2
  21. package/dist/components/general/carousel.drag.js +12 -0
  22. package/dist/components/general/carousel.js +50 -0
  23. package/dist/components/general/faq-accordion.js +15 -0
  24. package/dist/components/general/global-error.js +12 -0
  25. package/dist/components/general/hero.js +13 -0
  26. package/dist/components/general/loading.js +10 -1
  27. package/dist/components/general/markdown.js +6 -0
  28. package/dist/components/general/menu-accordion.js +30 -1
  29. package/dist/components/general/menu-expando.js +24 -1
  30. package/dist/components/general/menu-simple.js +21 -0
  31. package/dist/components/general/metadata.components.js +10 -0
  32. package/dist/components/general/microinteractions.js +22 -0
  33. package/dist/components/general/modal.js +12 -0
  34. package/dist/components/general/nerdjoke.js +11 -1
  35. package/dist/components/general/proxy-handler.js +7 -7
  36. package/dist/components/general/recipe.js +46 -1
  37. package/dist/components/general/resume.js +82 -0
  38. package/dist/components/general/schema-blogposting.js +6 -0
  39. package/dist/components/general/schema-localbusiness.js +36 -0
  40. package/dist/components/general/schema-recipe.js +20 -0
  41. package/dist/components/general/semantic.js +178 -0
  42. package/dist/components/general/sidepanel.js +26 -0
  43. package/dist/components/general/sitemap.js +50 -0
  44. package/dist/components/general/skeleton-loading.css +5 -5
  45. package/dist/components/general/skeleton-loading.js +11 -2
  46. package/dist/components/general/skeleton.js +15 -0
  47. package/dist/components/general/smartimage.js +48 -2
  48. package/dist/components/general/splitscroll.js +21 -10
  49. package/dist/components/general/styleguide.js +6 -0
  50. package/dist/components/general/tab.js +12 -0
  51. package/dist/components/general/table.js +12 -0
  52. package/dist/components/general/tiles.js +32 -1
  53. package/dist/components/general/timeline.js +22 -0
  54. package/dist/components/integrations/calendly.js +10 -0
  55. package/dist/components/integrations/cloudinary.js +16 -0
  56. package/dist/components/integrations/contentful.delivery.js +84 -0
  57. package/dist/components/integrations/contentful.items.components.js +46 -0
  58. package/dist/components/integrations/flickr.js +34 -0
  59. package/dist/components/integrations/google.reviews.components.js +14 -0
  60. package/dist/components/integrations/googleanalytics.js +14 -0
  61. package/dist/components/integrations/googlemap.js +20 -0
  62. package/dist/components/integrations/googlesearch.js +6 -0
  63. package/dist/components/integrations/gravatar.components.js +59 -0
  64. package/dist/components/integrations/hubspot.components.js +30 -0
  65. package/dist/components/integrations/instagram.components.js +18 -0
  66. package/dist/components/integrations/lipsum.js +45 -0
  67. package/dist/components/integrations/loremipsum.js +13 -1
  68. package/dist/components/integrations/socialcard.js +20 -1
  69. package/dist/components/integrations/wordpress.components.js +40 -0
  70. package/dist/components/integrations/wordpress.functions.js +24 -0
  71. package/dist/components/integrations/yelp.js +8 -0
  72. package/dist/components/shoppingcart/ebay.components.js +70 -0
  73. package/dist/components/shoppingcart/ebay.functions.js +52 -0
  74. package/dist/components/shoppingcart/shoppingcart.components.js +89 -0
  75. package/dist/components/sitebuilder/config/CompoundFontSelector.js +32 -0
  76. package/dist/components/sitebuilder/config/ConfigBuilder.js +8 -0
  77. package/dist/components/sitebuilder/config/FontSelector.js +40 -0
  78. package/dist/components/sitebuilder/form/formbuilder.js +10 -1
  79. package/dist/components/sitebuilder/form/formcomponents.js +325 -6
  80. package/dist/components/sitebuilder/form/formengine.js +35 -1
  81. package/dist/components/sitebuilder/form/formextractor.js +33 -1
  82. package/dist/components/sitebuilder/form/formutils.js +0 -4
  83. package/dist/components/sitebuilder/form/formvalidator.js +6 -0
  84. package/dist/components/sitebuilder/page/components/ComponentPropertiesForm.js +8 -0
  85. package/dist/components/sitebuilder/page/components/ComponentSelector.js +10 -0
  86. package/dist/components/sitebuilder/page/components/ComponentTree.js +20 -0
  87. package/dist/components/sitebuilder/page/components/PageBuilderUI.js +6 -0
  88. package/dist/components/sitebuilder/page/components/PageEngine.js +20 -0
  89. package/dist/components/sitebuilder/page/components/SaveLoadSection.js +10 -0
  90. package/dist/config/pixelated.config.json.enc +1 -1
  91. package/dist/index.js +1 -0
  92. package/dist/index.server.js +1 -0
  93. package/dist/scripts/pixelated-eslint-plugin.js +56 -0
  94. package/dist/scripts/release.sh +12 -21
  95. package/dist/types/components/admin/site-health/site-health-accessibility.d.ts +1 -0
  96. package/dist/types/components/admin/site-health/site-health-accessibility.d.ts.map +1 -1
  97. package/dist/types/components/admin/site-health/site-health-axe-core.d.ts +1 -0
  98. package/dist/types/components/admin/site-health/site-health-axe-core.d.ts.map +1 -1
  99. package/dist/types/components/admin/site-health/site-health-cloudwatch.d.ts +3 -0
  100. package/dist/types/components/admin/site-health/site-health-cloudwatch.d.ts.map +1 -1
  101. package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts +1 -0
  102. package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts.map +1 -1
  103. package/dist/types/components/admin/site-health/site-health-github.d.ts +3 -0
  104. package/dist/types/components/admin/site-health/site-health-github.d.ts.map +1 -1
  105. package/dist/types/components/admin/site-health/site-health-google-analytics.d.ts +3 -0
  106. package/dist/types/components/admin/site-health/site-health-google-analytics.d.ts.map +1 -1
  107. package/dist/types/components/admin/site-health/site-health-google-search-console.d.ts +3 -0
  108. package/dist/types/components/admin/site-health/site-health-google-search-console.d.ts.map +1 -1
  109. package/dist/types/components/admin/site-health/site-health-mock-context.d.ts +8 -0
  110. package/dist/types/components/admin/site-health/site-health-mock-context.d.ts.map +1 -1
  111. package/dist/types/components/admin/site-health/site-health-on-site-seo.d.ts +1 -0
  112. package/dist/types/components/admin/site-health/site-health-on-site-seo.d.ts.map +1 -1
  113. package/dist/types/components/admin/site-health/site-health-overview.d.ts +1 -0
  114. package/dist/types/components/admin/site-health/site-health-overview.d.ts.map +1 -1
  115. package/dist/types/components/admin/site-health/site-health-performance.d.ts +1 -0
  116. package/dist/types/components/admin/site-health/site-health-performance.d.ts.map +1 -1
  117. package/dist/types/components/admin/site-health/site-health-security.d.ts +1 -0
  118. package/dist/types/components/admin/site-health/site-health-security.d.ts.map +1 -1
  119. package/dist/types/components/admin/site-health/site-health-seo.d.ts +1 -0
  120. package/dist/types/components/admin/site-health/site-health-seo.d.ts.map +1 -1
  121. package/dist/types/components/admin/site-health/site-health-template.d.ts +12 -0
  122. package/dist/types/components/admin/site-health/site-health-template.d.ts.map +1 -1
  123. package/dist/types/components/admin/site-health/site-health-uptime.d.ts +1 -0
  124. package/dist/types/components/admin/site-health/site-health-uptime.d.ts.map +1 -1
  125. package/dist/types/components/config/config.server.d.ts +2 -0
  126. package/dist/types/components/config/config.server.d.ts.map +1 -1
  127. package/dist/types/components/general/404.d.ts +1 -0
  128. package/dist/types/components/general/404.d.ts.map +1 -1
  129. package/dist/types/components/general/accordion.d.ts +2 -0
  130. package/dist/types/components/general/accordion.d.ts.map +1 -1
  131. package/dist/types/components/general/buzzwordbingo.d.ts +3 -0
  132. package/dist/types/components/general/buzzwordbingo.d.ts.map +1 -1
  133. package/dist/types/components/general/callout.d.ts +24 -0
  134. package/dist/types/components/general/callout.d.ts.map +1 -1
  135. package/dist/types/components/general/carousel.d.ts +13 -0
  136. package/dist/types/components/general/carousel.d.ts.map +1 -1
  137. package/dist/types/components/general/carousel.drag.d.ts +4 -0
  138. package/dist/types/components/general/carousel.drag.d.ts.map +1 -1
  139. package/dist/types/components/general/faq-accordion.d.ts +5 -0
  140. package/dist/types/components/general/faq-accordion.d.ts.map +1 -1
  141. package/dist/types/components/general/global-error.d.ts +4 -0
  142. package/dist/types/components/general/global-error.d.ts.map +1 -1
  143. package/dist/types/components/general/hero.d.ts +4 -0
  144. package/dist/types/components/general/hero.d.ts.map +1 -1
  145. package/dist/types/components/general/loading.d.ts +1 -0
  146. package/dist/types/components/general/loading.d.ts.map +1 -1
  147. package/dist/types/components/general/markdown.d.ts +1 -0
  148. package/dist/types/components/general/markdown.d.ts.map +1 -1
  149. package/dist/types/components/general/menu-accordion.d.ts +7 -0
  150. package/dist/types/components/general/menu-accordion.d.ts.map +1 -1
  151. package/dist/types/components/general/menu-expando.d.ts +6 -0
  152. package/dist/types/components/general/menu-expando.d.ts.map +1 -1
  153. package/dist/types/components/general/menu-simple.d.ts +6 -0
  154. package/dist/types/components/general/menu-simple.d.ts.map +1 -1
  155. package/dist/types/components/general/metadata.components.d.ts +3 -0
  156. package/dist/types/components/general/metadata.components.d.ts.map +1 -1
  157. package/dist/types/components/general/microinteractions.d.ts +9 -0
  158. package/dist/types/components/general/microinteractions.d.ts.map +1 -1
  159. package/dist/types/components/general/modal.d.ts +4 -0
  160. package/dist/types/components/general/modal.d.ts.map +1 -1
  161. package/dist/types/components/general/nerdjoke.d.ts +2 -0
  162. package/dist/types/components/general/nerdjoke.d.ts.map +1 -1
  163. package/dist/types/components/general/proxy-handler.d.ts +7 -7
  164. package/dist/types/components/general/proxy-handler.d.ts.map +1 -1
  165. package/dist/types/components/general/recipe.d.ts +13 -0
  166. package/dist/types/components/general/recipe.d.ts.map +1 -1
  167. package/dist/types/components/general/resume.d.ts +21 -0
  168. package/dist/types/components/general/resume.d.ts.map +1 -1
  169. package/dist/types/components/general/schema-blogposting.d.ts +1 -0
  170. package/dist/types/components/general/schema-blogposting.d.ts.map +1 -1
  171. package/dist/types/components/general/schema-localbusiness.d.ts +16 -0
  172. package/dist/types/components/general/schema-localbusiness.d.ts.map +1 -1
  173. package/dist/types/components/general/schema-recipe.d.ts +1 -0
  174. package/dist/types/components/general/schema-recipe.d.ts.map +1 -1
  175. package/dist/types/components/general/semantic.d.ts +67 -0
  176. package/dist/types/components/general/semantic.d.ts.map +1 -1
  177. package/dist/types/components/general/sidepanel.d.ts +11 -0
  178. package/dist/types/components/general/sidepanel.d.ts.map +1 -1
  179. package/dist/types/components/general/sitemap.d.ts +19 -0
  180. package/dist/types/components/general/sitemap.d.ts.map +1 -1
  181. package/dist/types/components/general/skeleton-loading.d.ts +3 -6
  182. package/dist/types/components/general/skeleton-loading.d.ts.map +1 -1
  183. package/dist/types/components/general/skeleton.d.ts +5 -0
  184. package/dist/types/components/general/skeleton.d.ts.map +1 -1
  185. package/dist/types/components/general/smartimage.d.ts +22 -0
  186. package/dist/types/components/general/smartimage.d.ts.map +1 -1
  187. package/dist/types/components/general/splitscroll.d.ts +18 -40
  188. package/dist/types/components/general/splitscroll.d.ts.map +1 -1
  189. package/dist/types/components/general/styleguide.d.ts +1 -0
  190. package/dist/types/components/general/styleguide.d.ts.map +1 -1
  191. package/dist/types/components/general/tab.d.ts +4 -0
  192. package/dist/types/components/general/tab.d.ts.map +1 -1
  193. package/dist/types/components/general/table.d.ts +4 -0
  194. package/dist/types/components/general/table.d.ts.map +1 -1
  195. package/dist/types/components/general/tiles.d.ts +12 -1
  196. package/dist/types/components/general/tiles.d.ts.map +1 -1
  197. package/dist/types/components/general/timeline.d.ts +5 -0
  198. package/dist/types/components/general/timeline.d.ts.map +1 -1
  199. package/dist/types/components/integrations/calendly.d.ts +3 -0
  200. package/dist/types/components/integrations/calendly.d.ts.map +1 -1
  201. package/dist/types/components/integrations/cloudinary.d.ts +4 -0
  202. package/dist/types/components/integrations/cloudinary.d.ts.map +1 -1
  203. package/dist/types/components/integrations/contentful.delivery.d.ts +22 -0
  204. package/dist/types/components/integrations/contentful.delivery.d.ts.map +1 -1
  205. package/dist/types/components/integrations/contentful.items.components.d.ts +10 -0
  206. package/dist/types/components/integrations/contentful.items.components.d.ts.map +1 -1
  207. package/dist/types/components/integrations/flickr.d.ts +11 -0
  208. package/dist/types/components/integrations/flickr.d.ts.map +1 -1
  209. package/dist/types/components/integrations/google.reviews.components.d.ts +5 -0
  210. package/dist/types/components/integrations/google.reviews.components.d.ts.map +1 -1
  211. package/dist/types/components/integrations/googleanalytics.d.ts +3 -0
  212. package/dist/types/components/integrations/googleanalytics.d.ts.map +1 -1
  213. package/dist/types/components/integrations/googlemap.d.ts +8 -0
  214. package/dist/types/components/integrations/googlemap.d.ts.map +1 -1
  215. package/dist/types/components/integrations/googlesearch.d.ts +1 -0
  216. package/dist/types/components/integrations/googlesearch.d.ts.map +1 -1
  217. package/dist/types/components/integrations/gravatar.components.d.ts +35 -0
  218. package/dist/types/components/integrations/gravatar.components.d.ts.map +1 -1
  219. package/dist/types/components/integrations/hubspot.components.d.ts +9 -0
  220. package/dist/types/components/integrations/hubspot.components.d.ts.map +1 -1
  221. package/dist/types/components/integrations/instagram.components.d.ts +7 -0
  222. package/dist/types/components/integrations/instagram.components.d.ts.map +1 -1
  223. package/dist/types/components/integrations/lipsum.d.ts +14 -0
  224. package/dist/types/components/integrations/lipsum.d.ts.map +1 -0
  225. package/dist/types/components/integrations/loremipsum.d.ts +4 -0
  226. package/dist/types/components/integrations/loremipsum.d.ts.map +1 -1
  227. package/dist/types/components/integrations/socialcard.d.ts +4 -0
  228. package/dist/types/components/integrations/socialcard.d.ts.map +1 -1
  229. package/dist/types/components/integrations/wordpress.components.d.ts +14 -0
  230. package/dist/types/components/integrations/wordpress.components.d.ts.map +1 -1
  231. package/dist/types/components/integrations/wordpress.functions.d.ts +6 -0
  232. package/dist/types/components/integrations/wordpress.functions.d.ts.map +1 -1
  233. package/dist/types/components/integrations/yelp.d.ts +2 -0
  234. package/dist/types/components/integrations/yelp.d.ts.map +1 -1
  235. package/dist/types/components/shoppingcart/ebay.components.d.ts +15 -0
  236. package/dist/types/components/shoppingcart/ebay.components.d.ts.map +1 -1
  237. package/dist/types/components/shoppingcart/ebay.functions.d.ts +12 -0
  238. package/dist/types/components/shoppingcart/ebay.functions.d.ts.map +1 -1
  239. package/dist/types/components/shoppingcart/shoppingcart.components.d.ts +30 -0
  240. package/dist/types/components/shoppingcart/shoppingcart.components.d.ts.map +1 -1
  241. package/dist/types/components/sitebuilder/config/CompoundFontSelector.d.ts +12 -0
  242. package/dist/types/components/sitebuilder/config/CompoundFontSelector.d.ts.map +1 -1
  243. package/dist/types/components/sitebuilder/config/ConfigBuilder.d.ts +2 -0
  244. package/dist/types/components/sitebuilder/config/ConfigBuilder.d.ts.map +1 -1
  245. package/dist/types/components/sitebuilder/config/FontSelector.d.ts +16 -0
  246. package/dist/types/components/sitebuilder/config/FontSelector.d.ts.map +1 -1
  247. package/dist/types/components/sitebuilder/form/formbuilder.d.ts +5 -1
  248. package/dist/types/components/sitebuilder/form/formbuilder.d.ts.map +1 -1
  249. package/dist/types/components/sitebuilder/form/formcomponents.d.ts +129 -0
  250. package/dist/types/components/sitebuilder/form/formcomponents.d.ts.map +1 -1
  251. package/dist/types/components/sitebuilder/form/formengine.d.ts +5 -0
  252. package/dist/types/components/sitebuilder/form/formengine.d.ts.map +1 -1
  253. package/dist/types/components/sitebuilder/form/formextractor.d.ts +6 -0
  254. package/dist/types/components/sitebuilder/form/formextractor.d.ts.map +1 -1
  255. package/dist/types/components/sitebuilder/form/formutils.d.ts +0 -2
  256. package/dist/types/components/sitebuilder/form/formutils.d.ts.map +1 -1
  257. package/dist/types/components/sitebuilder/form/formvalidator.d.ts +1 -0
  258. package/dist/types/components/sitebuilder/form/formvalidator.d.ts.map +1 -1
  259. package/dist/types/components/sitebuilder/page/components/ComponentPropertiesForm.d.ts +2 -0
  260. package/dist/types/components/sitebuilder/page/components/ComponentPropertiesForm.d.ts.map +1 -1
  261. package/dist/types/components/sitebuilder/page/components/ComponentSelector.d.ts +3 -0
  262. package/dist/types/components/sitebuilder/page/components/ComponentSelector.d.ts.map +1 -1
  263. package/dist/types/components/sitebuilder/page/components/ComponentTree.d.ts +8 -0
  264. package/dist/types/components/sitebuilder/page/components/ComponentTree.d.ts.map +1 -1
  265. package/dist/types/components/sitebuilder/page/components/PageBuilderUI.d.ts +1 -0
  266. package/dist/types/components/sitebuilder/page/components/PageBuilderUI.d.ts.map +1 -1
  267. package/dist/types/components/sitebuilder/page/components/PageEngine.d.ts +8 -0
  268. package/dist/types/components/sitebuilder/page/components/PageEngine.d.ts.map +1 -1
  269. package/dist/types/components/sitebuilder/page/components/SaveLoadSection.d.ts +3 -0
  270. package/dist/types/components/sitebuilder/page/components/SaveLoadSection.d.ts.map +1 -1
  271. package/dist/types/index.d.ts +1 -0
  272. package/dist/types/index.server.d.ts +1 -0
  273. package/dist/types/scripts/pixelated-eslint-plugin.d.ts +18 -0
  274. package/dist/types/stories/general/skeleton-loading.stories.d.ts +1 -1
  275. package/dist/types/stories/general/skeleton-loading.stories.d.ts.map +1 -1
  276. package/dist/types/stories/integrations/lipsum.stories.d.ts +38 -0
  277. package/dist/types/stories/integrations/lipsum.stories.d.ts.map +1 -0
  278. package/dist/types/stories/shoppingcart/shoppingcart.stories.d.ts +3 -1
  279. package/dist/types/stories/shoppingcart/shoppingcart.stories.d.ts.map +1 -1
  280. package/dist/types/tests/args.test.d.ts +2 -0
  281. package/dist/types/tests/args.test.d.ts.map +1 -0
  282. package/dist/types/tests/lipsum.test.d.ts +2 -0
  283. package/dist/types/tests/lipsum.test.d.ts.map +1 -0
  284. package/dist/types/tests/storybook-docgen.test.d.ts +2 -0
  285. package/dist/types/tests/storybook-docgen.test.d.ts.map +1 -0
  286. package/package.json +12 -9
@@ -3,7 +3,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import PropTypes from 'prop-types';
4
4
  import { SiteHealthTemplate } from './site-health-template';
5
5
  import { formatAuditItem, getAuditScoreIcon, getScoreColor } from './site-health-utils';
6
+ /**
7
+ * SiteHealthAccessibility — Accessibility report panel showing Lighthouse accessibility scores and audit details.
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch accessibility metrics (e.g., 'example.com').
10
+ */
6
11
  SiteHealthAccessibility.propTypes = {
12
+ /** Site identifier used to fetch accessibility data */
7
13
  siteName: PropTypes.string.isRequired,
8
14
  };
9
15
  export function SiteHealthAccessibility({ siteName }) {
@@ -6,7 +6,13 @@ import { SiteHealthTemplate } from './site-health-template';
6
6
  import { getImpactIndicator, getIncompleteIndicator, getPassingIndicator } from './site-health-indicators';
7
7
  // Debug logging: set to `true` temporarily when investigating issues locally. Keep `false` in production.
8
8
  const debug = false;
9
+ /**
10
+ * SiteHealthAxeCore — Accessibility violations viewer powered by axe-core results.
11
+ *
12
+ * @param {string} [props.siteName] - Site identifier used to fetch axe-core scan results.
13
+ */
9
14
  SiteHealthAxeCore.propTypes = {
15
+ /** Site identifier used to fetch axe-core data */
10
16
  siteName: PropTypes.string.isRequired,
11
17
  };
12
18
  export function SiteHealthAxeCore({ siteName }) {
@@ -3,9 +3,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import PropTypes from 'prop-types';
4
4
  import { ComposedChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';
5
5
  import { SiteHealthTemplate } from './site-health-template';
6
+ /**
7
+ * SiteHealthCloudwatch — Displays CloudWatch health-check metrics and availability over time.
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch CloudWatch metrics.
10
+ * @param {string} [props.startDate] - Optional ISO date string to restrict the start of the range.
11
+ * @param {string} [props.endDate] - Optional ISO date string to restrict the end of the range.
12
+ */
6
13
  SiteHealthCloudwatch.propTypes = {
14
+ /** Site identifier used to fetch CloudWatch metrics */
7
15
  siteName: PropTypes.string.isRequired,
16
+ /** ISO start date for the metrics range (optional) */
8
17
  startDate: PropTypes.string,
18
+ /** ISO end date for the metrics range (optional) */
9
19
  endDate: PropTypes.string,
10
20
  };
11
21
  export function SiteHealthCloudwatch({ siteName, startDate, endDate }) {
@@ -2,7 +2,13 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import PropTypes from 'prop-types';
4
4
  import { SiteHealthTemplate } from './site-health-template';
5
+ /**
6
+ * SiteHealthDependencyVulnerabilities — Shows known dependency vulnerabilities and their severities for the site.
7
+ *
8
+ * @param {string} [props.siteName] - Site identifier used to fetch dependency vulnerability data.
9
+ */
5
10
  SiteHealthDependencyVulnerabilities.propTypes = {
11
+ /** Site identifier used to fetch dependency vulnerability reports */
6
12
  siteName: PropTypes.string.isRequired,
7
13
  };
8
14
  export function SiteHealthDependencyVulnerabilities({ siteName }) {
@@ -3,9 +3,19 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import PropTypes from 'prop-types';
4
4
  import { Table } from '@pixelated-tech/components';
5
5
  import { SiteHealthTemplate } from './site-health-template';
6
+ /**
7
+ * SiteHealthGit — Shows recent Git commits and push notes retrieved for the site.
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch Git activity.
10
+ * @param {string} [props.startDate] - Optional ISO start date to filter commits.
11
+ * @param {string} [props.endDate] - Optional ISO end date to filter commits.
12
+ */
6
13
  SiteHealthGit.propTypes = {
14
+ /** Site identifier used to fetch Git activity */
7
15
  siteName: PropTypes.string.isRequired,
16
+ /** ISO start date to filter commits (optional) */
8
17
  startDate: PropTypes.string,
18
+ /** ISO end date to filter commits (optional) */
9
19
  endDate: PropTypes.string,
10
20
  };
11
21
  export function SiteHealthGit({ siteName, startDate, endDate }) {
@@ -3,9 +3,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import PropTypes from 'prop-types';
4
4
  import { ComposedChart, Bar, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Legend } from 'recharts';
5
5
  import { SiteHealthTemplate } from './site-health-template';
6
+ /**
7
+ * SiteHealthGoogleAnalytics — Shows Google Analytics metrics (page views, sessions) over a date range.
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch analytics data.
10
+ * @param {string} [props.startDate] - Optional ISO start date for the metrics range.
11
+ * @param {string} [props.endDate] - Optional ISO end date for the metrics range.
12
+ */
6
13
  SiteHealthGoogleAnalytics.propTypes = {
14
+ /** Site identifier used to fetch analytics metrics */
7
15
  siteName: PropTypes.string.isRequired,
16
+ /** ISO start date for the metrics range (optional) */
8
17
  startDate: PropTypes.string,
18
+ /** ISO end date for the metrics range (optional) */
9
19
  endDate: PropTypes.string,
10
20
  };
11
21
  export function SiteHealthGoogleAnalytics({ siteName, startDate, endDate }) {
@@ -3,9 +3,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import PropTypes from 'prop-types';
4
4
  import { ComposedChart, Bar, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';
5
5
  import { SiteHealthTemplate } from './site-health-template';
6
+ /**
7
+ * SiteHealthGoogleSearchConsole — Visualize search performance (impressions/clicks) from Google Search Console.
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch Search Console metrics.
10
+ * @param {string} [props.startDate] - Optional ISO start date for the analysis range.
11
+ * @param {string} [props.endDate] - Optional ISO end date for the analysis range.
12
+ */
6
13
  SiteHealthGoogleSearchConsole.propTypes = {
14
+ /** Site identifier used to fetch Search Console metrics */
7
15
  siteName: PropTypes.string.isRequired,
16
+ /** ISO start date for analysis (optional) */
8
17
  startDate: PropTypes.string,
18
+ /** ISO end date for analysis (optional) */
9
19
  endDate: PropTypes.string,
10
20
  };
11
21
  export function SiteHealthGoogleSearchConsole({ siteName, startDate, endDate }) {
@@ -6,8 +6,16 @@ const SiteHealthMockDataContext = createContext(null);
6
6
  export const SiteHealthMockProvider = ({ mocks, children }) => {
7
7
  return (_jsx(SiteHealthMockDataContext.Provider, { value: mocks, children: children }));
8
8
  };
9
+ /**
10
+ * SiteHealthMockProvider — Provider that injects mock site-health data into child components for development and testing.
11
+ *
12
+ * @param {object} [props.mocks] - Map of mock data keyed by site identifier.
13
+ * @param {node} [props.children] - Child nodes that will receive the mock data via context.
14
+ */
9
15
  SiteHealthMockProvider.propTypes = {
16
+ /** Map of mock site-health data */
10
17
  mocks: PropTypes.object.isRequired,
18
+ /** Child nodes that consume mock data */
11
19
  children: PropTypes.node.isRequired
12
20
  };
13
21
  export function useSiteHealthMockData() {
@@ -61,7 +61,13 @@ function restructureAuditsByType(pagesAnalyzed) {
61
61
  });
62
62
  return restructuredAudits.sort((a, b) => (b.score || 0) - (a.score || 0));
63
63
  }
64
+ /**
65
+ * SiteHealthOnSiteSEO — On-site SEO checks and recommendations for the specified site (meta tags, headings, etc.).
66
+ *
67
+ * @param {string} [props.siteName] - Site identifier used to fetch on-site SEO analysis.
68
+ */
64
69
  SiteHealthOnSiteSEO.propTypes = {
70
+ /** Site identifier used to fetch on-site SEO data */
65
71
  siteName: PropTypes.string.isRequired,
66
72
  };
67
73
  export function SiteHealthOnSiteSEO({ siteName }) {
@@ -3,7 +3,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import PropTypes from 'prop-types';
4
4
  import { SiteHealthTemplate } from './site-health-template';
5
5
  import { formatScore, getScoreColor } from './site-health-utils';
6
+ /**
7
+ * SiteHealthOverview — Aggregated site health dashboard combining multiple checks (uptime, performance, SEO).
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch consolidated site-health metrics.
10
+ */
6
11
  SiteHealthOverview.propTypes = {
12
+ /** Site identifier used to build the overview */
7
13
  siteName: PropTypes.string.isRequired,
8
14
  };
9
15
  export function SiteHealthOverview({ siteName }) {
@@ -3,7 +3,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import PropTypes from 'prop-types';
4
4
  import { SiteHealthTemplate } from './site-health-template';
5
5
  import { formatAuditItem, getAuditScoreIcon, getScoreColor, formatScore } from './site-health-utils';
6
+ /**
7
+ * SiteHealthPerformance — Performance metrics panel showing Lighthouse Core Web Vitals and related scores.
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch performance data.
10
+ */
6
11
  SiteHealthPerformance.propTypes = {
12
+ /** Site identifier used to fetch performance metrics */
7
13
  siteName: PropTypes.string.isRequired,
8
14
  };
9
15
  export function SiteHealthPerformance({ siteName }) {
@@ -3,7 +3,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import PropTypes from 'prop-types';
4
4
  import { SiteHealthTemplate } from './site-health-template';
5
5
  import { formatAuditItem, getAuditScoreIcon, getScoreColor } from './site-health-utils';
6
+ /**
7
+ * SiteHealthSecurity — Security checks (certificate status, headers, known CVEs) for the site.
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch security scan results.
10
+ */
6
11
  SiteHealthSecurity.propTypes = {
12
+ /** Site identifier used to fetch security data */
7
13
  siteName: PropTypes.string.isRequired,
8
14
  };
9
15
  export function SiteHealthSecurity({ siteName }) {
@@ -3,7 +3,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import PropTypes from 'prop-types';
4
4
  import { SiteHealthTemplate } from './site-health-template';
5
5
  import { formatAuditItem, getAuditScoreIcon, getScoreColor } from './site-health-utils';
6
+ /**
7
+ * SiteHealthSEO — SEO report panel focused on searchability and structured data checks.
8
+ *
9
+ * @param {string} [props.siteName] - Site identifier used to fetch SEO-related metrics.
10
+ */
6
11
  SiteHealthSEO.propTypes = {
12
+ /** Site identifier used to fetch SEO data */
7
13
  siteName: PropTypes.string.isRequired,
8
14
  };
9
15
  export function SiteHealthSEO({ siteName }) {
@@ -5,20 +5,48 @@ import PropTypes from 'prop-types';
5
5
  import { PageGridItem } from '../../general/semantic';
6
6
  import "./site-health.css";
7
7
  import { useSiteHealthMockData } from './site-health-mock-context';
8
+ /**
9
+ * SiteHealthTemplate — Generic data-fetching and rendering wrapper used by site-health panels.
10
+ *
11
+ * @param {string} [props.siteName] - Site identifier used to query health endpoints.
12
+ * @param {string} [props.title] - Optional title rendered in the panel header.
13
+ * @param {function} [props.children] - Render prop that receives fetched data and returns JSX.
14
+ * @param {shape} [props.endpoint] - Endpoint configuration object including `endpoint`, optional `params`, and a `responseTransformer`.
15
+ * @param {oneOf} [props.method] - HTTP method used to call the endpoint (default: 'GET').
16
+ * @param {object} [props.headers] - Optional headers to include in the request.
17
+ * @param {object} [props.params] - Optional query params to include in the request.
18
+ * @param {any} [props.body] - Optional request body for non-GET requests.
19
+ * @param {function} [props.responseTransformer] - Function to transform the API response into the shape consumed by the children render prop.
20
+ * @param {boolean} [props.enableCacheControl] - When true, respects the `cache` query param to bypass or enable caching.
21
+ * @param {number} [props.columnSpan] - Optional grid column span when rendering as a card.
22
+ * @param {any} [props.data] - Optional pre-fetched data to render instead of calling the endpoint.
23
+ */
8
24
  SiteHealthTemplate.propTypes = {
25
+ /** Site identifier used to query health endpoints */
9
26
  siteName: PropTypes.string.isRequired,
27
+ /** Optional title for the panel */
10
28
  title: PropTypes.string,
29
+ /** Render prop receiving the fetched data */
11
30
  children: PropTypes.func.isRequired,
31
+ /** Endpoint configuration */
12
32
  endpoint: PropTypes.shape({
13
33
  endpoint: PropTypes.string.isRequired,
34
+ /** HTTP method (GET/POST/PUT/DELETE) */
14
35
  method: PropTypes.oneOf(['GET', 'POST', 'PUT', 'DELETE']),
36
+ /** Optional request headers */
15
37
  headers: PropTypes.object,
38
+ /** Optional query parameters */
16
39
  params: PropTypes.object,
40
+ /** Optional request body (for POST/PUT) */
17
41
  body: PropTypes.any,
42
+ /** Optional response transformer function */
18
43
  responseTransformer: PropTypes.func,
19
44
  }),
45
+ /** Respect cache control query param when true */
20
46
  enableCacheControl: PropTypes.bool,
47
+ /** Grid column span for card rendering */
21
48
  columnSpan: PropTypes.number,
49
+ /** Optional pre-fetched data to render */
22
50
  data: PropTypes.any,
23
51
  };
24
52
  export function SiteHealthTemplate(props) {
@@ -2,7 +2,13 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import PropTypes from 'prop-types';
4
4
  import { SiteHealthTemplate } from './site-health-template';
5
+ /**
6
+ * SiteHealthUptime — Uptime report showing availability and recent failures for the site.
7
+ *
8
+ * @param {string} [props.siteName] - Site identifier used to fetch uptime metrics.
9
+ */
5
10
  SiteHealthUptime.propTypes = {
11
+ /** Site identifier used to fetch uptime metrics */
6
12
  siteName: PropTypes.string.isRequired,
7
13
  };
8
14
  export function SiteHealthUptime({ siteName }) {
@@ -5,8 +5,16 @@ import { getClientOnlyPixelatedConfig } from './config';
5
5
  // Server wrapper: reads server env blob and sanitizes it, then mounts the client provider.
6
6
  // Important: do NOT import client components at module scope — dynamically import
7
7
  // the client provider inside the function so this module remains server-safe.
8
+ /**
9
+ * PixelatedServerConfigProvider — Server-side wrapper that loads and sanitizes server config then mounts the client config provider.
10
+ *
11
+ * @param {object} [props.config] - Optional server config object (sanitized before passing to client provider).
12
+ * @param {node} [props.children] - Client-side UI rendered within the provider.
13
+ */
8
14
  PixelatedServerConfigProvider.propTypes = {
15
+ /** Optional sanitized server config object */
9
16
  config: PropTypes.object,
17
+ /** Child nodes rendered inside the client provider */
10
18
  children: PropTypes.node.isRequired,
11
19
  };
12
20
  export async function PixelatedServerConfigProvider(props) {
@@ -6,7 +6,13 @@ import PropTypes from 'prop-types';
6
6
  import { SmartImage } from "../general/smartimage";
7
7
  import { usePixelatedConfig } from "../config/config.client";
8
8
  import "./404.css";
9
+ /**
10
+ * FourOhFour — Simple 404 page that randomly displays an image and short message.
11
+ *
12
+ * @param {array} [props.images] - Array of image objects used to display the 404 page. Each object should contain { img: string, text: string, description?: string }.
13
+ */
9
14
  FourOhFour.propTypes = {
15
+ /** Array of image objects: { img: string, text: string, description?: string } */
10
16
  images: PropTypes.array.isRequired,
11
17
  };
12
18
  export function FourOhFour(props) {
@@ -2,12 +2,23 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import PropTypes from 'prop-types';
4
4
  import './accordion.css';
5
+ /**
6
+ * Accordion — a simple details/summary-based accordion component.
7
+ *
8
+ * @param {arrayOf} [props.items] - Array of items each with `title`, `content`, and optional `open` state.
9
+ * @param {string} [props.title] - Title or header for an accordion item.
10
+ * @param {oneOfType} [props.content] - Content for an accordion item, either string or React node.
11
+ * @param {boolean} [props.open] - Initial open state of an item (when true the item is expanded).
12
+ * @param {function} [props.onToggle] - Optional callback called when an item is toggled (index, isOpen).
13
+ */
5
14
  Accordion.propTypes = {
15
+ /** Array of accordion items to render. */
6
16
  items: PropTypes.arrayOf(PropTypes.shape({
7
17
  title: PropTypes.string.isRequired,
8
18
  content: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
9
19
  open: PropTypes.bool,
10
20
  })).isRequired,
21
+ /** Called when an item is toggled with (index, isOpen). */
11
22
  onToggle: PropTypes.func,
12
23
  };
13
24
  export function Accordion({ items, onToggle }) {
@@ -10,7 +10,13 @@ function getBingoWords(arr, x) {
10
10
  myBingoWords.splice(12, 0, "FREE SPACE");
11
11
  return myBingoWords;
12
12
  }
13
+ /**
14
+ * BuzzwordBingo — renders a bingo-style card populated with provided buzzwords (defaults to an internal list).
15
+ *
16
+ * @param {array} [props.buzzwords] - Array of words (strings) used to populate the bingo card; uses default list when omitted.
17
+ */
13
18
  BuzzwordBingo.propTypes = {
19
+ /** List of buzzwords used to populate the bingo card. */
14
20
  buzzwords: PropTypes.array,
15
21
  };
16
22
  export function BuzzwordBingo(props) {
@@ -22,13 +28,25 @@ export function BuzzwordBingo(props) {
22
28
  }, [buzzwords]);
23
29
  return (_jsxs("div", { className: "bingoCard rowfix-5col", children: [myBingoHeaders.map((word) => (_jsx(BingoHeader, { word: word }, word))), bingoWords.map((word) => (_jsx(BingoBox, { word: word }, word)))] }));
24
30
  }
31
+ /**
32
+ * BingoHeader — renders a single header cell for the bingo card (letters B I N G O).
33
+ *
34
+ * @param {string} [props.word] - Single character header label (e.g., 'B', 'I', 'N', 'G', 'O').
35
+ */
25
36
  BingoHeader.propTypes = {
37
+ /** Header label character. */
26
38
  word: PropTypes.string.isRequired,
27
39
  };
28
40
  function BingoHeader({ word }) {
29
41
  return (_jsx("div", { className: "bingoHeader gridItem", children: _jsx("div", { className: "bingoBoxText", children: word }) }));
30
42
  }
43
+ /**
44
+ * BingoBox — renders an individual bingo cell (word or 'FREE SPACE').
45
+ *
46
+ * @param {string} [props.word] - Word displayed in this cell; 'FREE SPACE' is treated specially.
47
+ */
31
48
  BingoBox.propTypes = {
49
+ /** Word displayed in the bingo cell. */
32
50
  word: PropTypes.string.isRequired,
33
51
  };
34
52
  function BingoBox({ word }) {
@@ -22,30 +22,73 @@ export const variants = ['default', 'boxed', 'boxed grid', 'full', 'grid', 'over
22
22
  export const shapes = ['square', 'bevel', 'squircle', 'round'];
23
23
  export const layouts = ['horizontal', 'vertical'];
24
24
  export const directions = ['left', 'right'];
25
+ /**
26
+ * Callout — versatile content block used for banners, promotional sections, and feature callouts.
27
+ *
28
+ * @param {oneOf} [props.variant] - Visual variant (e.g., 'default', 'boxed', 'full', 'grid', 'overlay', 'split').
29
+ * @param {oneOf} [props.boxShape] - Corner shape for boxed variants (e.g., 'square', 'bevel', 'squircle', 'round').
30
+ * @param {oneOf} [props.layout] - Layout direction: 'horizontal' (image + content) or 'vertical'.
31
+ * @param {oneOf} [props.direction] - When horizontal, whether the image appears on the 'left' or 'right'.
32
+ * @param {shape} [props.gridColumns] - Optional grid column counts used for boxed grid variants ({ left, right }).
33
+ * @param {number} [props.left] - Left column width for grid layouts.
34
+ * @param {number} [props.right] - Right column width for grid layouts.
35
+ * @param {string} [props.url] - Optional CTA URL for the callout button.
36
+ * @param {string} [props.img] - Image URL to display in the callout.
37
+ * @param {string} [props.imgAlt] - Alternate text for the image (accessibility and caption fallback).
38
+ * @param {oneOf} [props.imgShape] - Visual shape applied to the image container.
39
+ * @param {function} [props.imgClick] - Optional image click handler (event, url).
40
+ * @param {string} [props.title] - Primary title text for the callout.
41
+ * @param {string} [props.subtitle] - Secondary title/subtitle text.
42
+ * @param {oneOfType} [props.content] - Content as string or React node to place inside the callout body.
43
+ * @param {node} [props.children] - React children to render in the content area (takes precedence over content).
44
+ * @param {string} [props.buttonText] - Button/CTA text to display when `url` is provided.
45
+ * @param {boolean} [props.aboveFold] - Hint to prioritize image loading (above-the-fold) for performance.
46
+ * @param {string} [props.cloudinaryEnv] - Cloudinary environment key (internal use for SmartImage).
47
+ * @param {string} [props.cloudinaryDomain] - Cloudinary domain to use for image hosts.
48
+ * @param {string} [props.cloudinaryTransforms] - Optional Cloudinary transform presets.
49
+ */
25
50
  Callout.propTypes = {
51
+ /** Visual variant selector (e.g., 'default', 'boxed', 'grid', 'full'). */
26
52
  variant: PropTypes.oneOf([...variants]),
53
+ /** Corner/box shape for boxed variants. */
27
54
  boxShape: PropTypes.oneOf([...shapes]),
55
+ /** Layout direction: 'horizontal' or 'vertical'. */
28
56
  layout: PropTypes.oneOf([...layouts]),
57
+ /** When horizontal layout is used, position image on 'left' or 'right'. */
29
58
  direction: PropTypes.oneOf([...directions]),
59
+ /** Grid column sizing used for 'boxed grid' variants. */
30
60
  gridColumns: PropTypes.shape({
61
+ /** Left column width in the grid configuration. */
31
62
  left: PropTypes.number,
63
+ /** Right column width in the grid configuration. */
32
64
  right: PropTypes.number
33
65
  }),
66
+ /** Optional CTA URL used by CalloutButton. */
34
67
  url: PropTypes.string,
68
+ /** Image URL to display in the callout. */
35
69
  img: PropTypes.string,
70
+ /** Alt text for the image (used for accessibility and caption fallback). */
36
71
  imgAlt: PropTypes.string,
72
+ /** Visual shape applied to the image container (e.g., 'square', 'round'). */
37
73
  imgShape: PropTypes.oneOf([...shapes]),
74
+ /** Optional click handler for the image (event, url). */
38
75
  imgClick: PropTypes.func,
76
+ /** Primary title text for the callout. */
39
77
  title: PropTypes.string,
78
+ /** Optional subtitle/secondary heading. */
40
79
  subtitle: PropTypes.string,
80
+ /** Content string or React node to render inside the body area. */
41
81
  content: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
82
+ /** React children to render in the content area (takes precedence over content prop). */
42
83
  children: PropTypes.node,
84
+ /** Button or CTA text used when `url` is provided. */
43
85
  buttonText: PropTypes.string,
44
86
  // SmartImage props
87
+ /** Hint to prioritize image loading (treat as above-the-fold). */
45
88
  aboveFold: PropTypes.bool,
46
89
  /* cloudinaryEnv: PropTypes.string,
47
- cloudinaryDomain: PropTypes.string,
48
- cloudinaryTransforms: PropTypes.string, */
90
+ cloudinaryDomain: PropTypes.string,
91
+ cloudinaryTransforms: PropTypes.string, */
49
92
  };
50
93
  export function Callout({ variant = 'default', boxShape = "squircle", layout = "horizontal", direction = 'left', gridColumns = { left: 1, right: 2 }, url, img, imgAlt, imgShape = 'square', imgClick, title, subtitle, content, children, buttonText, aboveFold,
51
94
  /* cloudinaryEnv,
@@ -73,9 +116,19 @@ cloudinaryTransforms */ }) {
73
116
  (variant && (variant === 'boxed grid' || variant === 'grid') && gridColumns ? ` callout-grid-${gridColumns.left}-${gridColumns.right}` : ''), children: (direction === "right") ? _jsxs(_Fragment, { children: [body, image] }) : _jsxs(_Fragment, { children: [image, body] }) }));
74
117
  }
75
118
  /* ========== CALLOUT HEADER ========== */
119
+ /**
120
+ * CalloutHeader — renders the primary title and optional link wrapper for a Callout.
121
+ *
122
+ * @param {string} [props.title] - Title text displayed as the heading.
123
+ * @param {string} [props.url] - Optional URL that wraps the title as a link.
124
+ * @param {string} [props.target] - Link target (e.g., '_self', '_blank').
125
+ */
76
126
  CalloutHeader.propTypes = {
127
+ /** Heading title text (required). */
77
128
  title: PropTypes.string.isRequired,
129
+ /** Optional link URL for the heading. */
78
130
  url: PropTypes.string,
131
+ /** Optional link target attribute. */
79
132
  target: PropTypes.string
80
133
  };
81
134
  export function CalloutHeader({ title, url, target }) {
@@ -84,9 +137,19 @@ export function CalloutHeader({ title, url, target }) {
84
137
  : _jsx("h2", { className: "callout-title", children: title }) }));
85
138
  }
86
139
  /* ========== CALLOUT BUTTON ========== */
140
+ /**
141
+ * CalloutButton — renders a button that navigates to a provided CTA URL.
142
+ *
143
+ * @param {string} [props.title] - Button label text (required when URL is provided).
144
+ * @param {string} [props.url] - Required URL that the button navigates to.
145
+ * @param {string} [props.target] - Optional link target for cross-origin behavior.
146
+ */
87
147
  CalloutButton.propTypes = {
148
+ /** Button label text. */
88
149
  title: PropTypes.string.isRequired,
150
+ /** CTA URL that the button will navigate to when clicked. */
89
151
  url: PropTypes.string.isRequired,
152
+ /** Optional target attribute for link behavior. */
90
153
  target: PropTypes.string
91
154
  };
92
155
  export function CalloutButton({ title, url, target }) {
@@ -8,10 +8,22 @@ import PropTypes from 'prop-types';
8
8
  if (debug) console.log('CarouselSimple: Dragging disabled');
9
9
  }
10
10
  */
11
+ /**
12
+ * DragHandler — attaches global drag/touch handlers to enable swipe navigation for a carousel-like container.
13
+ *
14
+ * @param {number} [props.activeIndex] - Current active slide index (used to calculate offsets).
15
+ * @param {string} [props.targetDiv] - CSS class name of the container that should be draggable (e.g., 'carousel-card-wrapper').
16
+ * @param {function} [props.nextImage] - Callback invoked to advance to the next slide.
17
+ * @param {function} [props.previousImage] - Callback invoked to go to the previous slide.
18
+ */
11
19
  DragHandler.propTypes = {
20
+ /** Current active slide index. */
12
21
  activeIndex: PropTypes.number.isRequired,
22
+ /** CSS class of the container element to attach drag handlers to (without the leading dot). */
13
23
  targetDiv: PropTypes.string.isRequired,
24
+ /** Callback to show the next image/slide. */
14
25
  nextImage: PropTypes.func.isRequired,
26
+ /** Callback to show the previous image/slide. */
15
27
  previousImage: PropTypes.func.isRequired,
16
28
  };
17
29
  export function DragHandler(props) {
@@ -10,20 +10,50 @@ function capitalize(str) {
10
10
  return str && String(str[0]).toUpperCase() + String(str).slice(1);
11
11
  }
12
12
  /* ========== CAROUSEL ========== */
13
+ /**
14
+ * Carousel — renders a rotating set of card slides (images and optional text) with autoplay and optional drag support.
15
+ *
16
+ * @param {arrayOf} [props.cards] - Array of cards to display; each card may include image, header, subHeader, body and link.
17
+ * @param {number} [props.index] - Initial active index for the carousel (zero-based).
18
+ * @param {number} [props.cardIndex] - Current active index managed by the component (zero-based).
19
+ * @param {number} [props.cardLength] - Total number of cards (used for stacking and calculations).
20
+ * @param {string} [props.link] - Optional fallback link for a card when provided at the card level.
21
+ * @param {string} [props.linkTarget] - Target attribute for links (e.g. '_self', '_blank').
22
+ * @param {string} [props.image] - Image URL for a card.
23
+ * @param {string} [props.imageAlt] - Alt text for the card image (accessibility).
24
+ * @param {oneOf} [props.imgFit] - How to fit images: 'contain' | 'cover' | 'fill'.
25
+ * @param {string} [props.headerText] - Optional card header/title text.
26
+ * @param {string} [props.subHeaderText] - Optional card subtitle text.
27
+ * @param {string} [props.bodyText] - Optional card body content.
28
+ * @param {boolean} [props.draggable] - Enable swipe/drag interactions on touch devices.
29
+ */
13
30
  Carousel.propTypes = {
31
+ /** Array of card objects used to render slides. */
14
32
  cards: PropTypes.arrayOf(PropTypes.shape({
33
+ /** Zero-based index of this card within the source array. */
15
34
  index: PropTypes.number.isRequired,
35
+ /** Index of the currently active card as passed to each card. */
16
36
  cardIndex: PropTypes.number.isRequired,
37
+ /** Total number of cards in the carousel (used for z-index/stacking). */
17
38
  cardLength: PropTypes.number.isRequired,
39
+ /** Optional href for this card. */
18
40
  link: PropTypes.string,
41
+ /** Optional link target attribute (e.g., '_self', '_blank'). */
19
42
  linkTarget: PropTypes.string,
43
+ /** Image URL for the slide (required). */
20
44
  image: PropTypes.string.isRequired,
45
+ /** Alt text for the image (used for accessibility). */
21
46
  imageAlt: PropTypes.string,
47
+ /** Image fitting mode: 'contain' | 'cover' | 'fill'. */
22
48
  imgFit: PropTypes.oneOf(['contain', 'cover', 'fill']),
49
+ /** Title or header text shown on the card. */
23
50
  headerText: PropTypes.string,
51
+ /** Optional subtitle text for the card. */
24
52
  subHeaderText: PropTypes.string,
53
+ /** Optional body content for the card. */
25
54
  bodyText: PropTypes.string,
26
55
  })).isRequired,
56
+ /** Enable swipe/drag interactions on touch and pointer devices. */
27
57
  draggable: PropTypes.bool,
28
58
  imgFit: PropTypes.oneOf(['contain', 'cover', 'fill'])
29
59
  };
@@ -114,16 +144,36 @@ function CarouselCard(props) {
114
144
  }
115
145
  // REMOVED PROPTYPE AS TYPESCRIPT TYPE COVERS THIS
116
146
  /* ========== CAROUSEL ARROW ========== */
147
+ /**
148
+ * CarouselButton — small interactive control used to navigate carousel slides.
149
+ *
150
+ * @param {function} [props.clickFunction] - Click handler invoked when the control is pressed.
151
+ * @param {string} [props.glyph] - Label or HTML entity used to visually render the button.
152
+ */
117
153
  CarouselButton.propTypes = {
154
+ /** Click handler invoked when the control is clicked. */
118
155
  clickFunction: PropTypes.func.isRequired,
156
+ /** Label or glyph to display inside the button. */
119
157
  glyph: PropTypes.string.isRequired
120
158
  };
121
159
  function CarouselButton(props) {
122
160
  return (_jsx("button", { className: `carousel-button text-outline`, onClick: props.clickFunction, children: props.glyph }));
123
161
  }
162
+ /**
163
+ * CarouselArrow — Render a directional navigation control used by the Carousel.
164
+ *
165
+ * Renders a button styled for left or right placement and calls the provided handler when clicked.
166
+ *
167
+ * @param {('left'|'right')} [props.direction] - Direction used to determine button styling/placement.
168
+ * @param {function} [props.clickFunction] - Click handler invoked when the control is pressed.
169
+ * @param {string} [props.glyph] - Glyph or label text displayed inside the button.
170
+ */
124
171
  CarouselArrow.propTypes = {
172
+ /** Direction keyword used to choose button styling/placement ('left'|'right'). */
125
173
  direction: PropTypes.string.isRequired,
174
+ /** Click handler invoked by the arrow control. */
126
175
  clickFunction: PropTypes.func.isRequired,
176
+ /** Glyph or label text used for the arrow control. */
127
177
  glyph: PropTypes.string.isRequired
128
178
  };
129
179
  function CarouselArrow(props) {
@@ -13,11 +13,26 @@ const categoryIcons = {
13
13
  'Services': '💼',
14
14
  '': ''
15
15
  };
16
+ /**
17
+ * FAQAccordion — list of frequently asked questions rendered as an accordion with search and expand controls.
18
+ *
19
+ * @param {shape} [props.faqsData] - Object containing FAQ data; expected to include a `mainEntity` array of question objects.
20
+ * @param {arrayOf} [props.mainEntity] - Array of FAQ objects each with `name`, `category`, and `acceptedAnswer`.
21
+ * @param {string} [props.name] - Question title text.
22
+ * @param {string} [props.category] - Category/section for the FAQ (used for grouping and icons).
23
+ * @param {shape} [props.acceptedAnswer] - Object with an answer, typically containing `text` as string or array of strings.
24
+ * @param {oneOfType} [props.text] - Answer text or an array of paragraphs.
25
+ */
16
26
  FAQAccordion.propTypes = {
27
+ /** FAQ data wrapper object; should contain mainEntity array. */
17
28
  faqsData: PropTypes.shape({
29
+ /** Array of FAQ objects to render as accordion items. */
18
30
  mainEntity: PropTypes.arrayOf(PropTypes.shape({
31
+ /** Question text/title. */
19
32
  name: PropTypes.string,
33
+ /** Category key for grouping or icons. */
20
34
  category: PropTypes.string,
35
+ /** Accepted answer object with text or list of paragraphs. */
21
36
  acceptedAnswer: PropTypes.shape({
22
37
  text: PropTypes.oneOfType([
23
38
  PropTypes.string,