@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
@@ -29,31 +29,63 @@ const defaultDateFormat = 'MM/yyyy';
29
29
  type simpleResumeProps = {
30
30
  data: any
31
31
  } */
32
+ /**
33
+ * Resume — Render a microformatted resume (h-resume) object into sections like contact, education, experience, and skills.
34
+ *
35
+ * @param {any} [props.data] - Resume data object (h-resume structured data expected).
36
+ */
32
37
  Resume.propTypes = {
38
+ /** Resume data object (h-resume) */
33
39
  data: PropTypes.any.isRequired,
34
40
  };
35
41
  export function Resume(props) {
36
42
  return (_jsx("section", { className: "p-resume", id: "resume-section", children: _jsx("div", { className: "section-container", children: _jsxs("div", { className: "row-12col", children: [_jsx("div", { className: "p-name grid-s1-e13", children: _jsx(ResumeName, { data: props.data?.items?.[0]?.properties?.name || '' }) }), _jsxs("div", { className: "divider grid-s1-e4", children: [_jsx("div", { className: "p-contact", children: _jsx(ResumeContact, { title: "Contact Information", data: props.data?.items?.[0]?.properties?.contact || [] }) }), _jsx("div", { className: "p-education", children: _jsx(ResumeEvents, { title: "Education", data: props.data?.items?.[0]?.properties?.education || [], dateFormat: "MM/yyyy", collapsible: false }) }), _jsx("div", { className: "p-skills", children: _jsx(ResumeSkills, { title: "Skills", data: props.data?.items?.[0]?.properties?.skills || [] }) })] }), _jsxs("div", { className: "grid-s4-e13", children: [_jsx("div", { className: "p-summary", children: _jsx(ResumeSummary, { title: "Professional Summary", data: props.data?.items?.[0]?.properties?.summary || '' }) }), _jsx("div", { className: "p-qualifications", children: _jsx(ResumeQualifications, { title: "Professional Qualifications", data: props.data?.items?.[0]?.properties?.qualifications || [] }) }), _jsx("div", { className: "p-experience", children: _jsx(ResumeEvents, { title: "Work History", data: props.data?.items?.[0]?.properties?.experience || [], dateFormat: "MM/yyyy", collapsible: false }) }), _jsx("div", { className: "p-projects", children: _jsx(ResumeProjects, { title: "Projects", data: props.data?.items?.[0]?.properties?.experience || [], collapsible: true }) }), _jsx("div", { className: "p-volunteer", children: _jsx(ResumeEvents, { title: "Volunteer Work", data: props.data?.items?.[0]?.properties?.volunteer || [], dateFormat: "MM/yyyy", collapsible: true }) }), _jsx("div", { className: "p-certifications", children: _jsx(ResumeEvents, { title: "Certifications", data: props.data?.items?.[0]?.properties?.certifications || [], dateFormat: "MM/yyyy", collapsible: true }) }), _jsx("div", { className: "p-awards", children: _jsx(ResumeEvents, { title: "Honors & Awards", data: props.data?.items?.[0]?.properties?.awards || [], dateFormat: "MM/yyyy", collapsible: true }) }), _jsx("div", { className: "p-training", children: _jsx(ResumeEvents, { title: "Training & Conferences", data: props.data?.items?.[0]?.properties?.training || [], dateFormat: "MM/dd/yyyy", collapsible: true }) }), _jsx("div", { className: "p-references", children: _jsx(ResumeReferences, { title: "References", data: props.data?.items?.[0]?.properties?.references || [], collapsible: true }) })] })] }) }) }));
37
43
  }
44
+ /**
45
+ * ResumeName — Render the candidate's name from the resume data.
46
+ *
47
+ * @param {any} [props.data] - Array containing name values; the first entry is used as the display name.
48
+ */
38
49
  ResumeName.propTypes = {
50
+ /** Array containing the name value(s) */
39
51
  data: PropTypes.any.isRequired,
40
52
  };
41
53
  export function ResumeName(props) {
42
54
  const myName = props.data[0];
43
55
  return (_jsx(_Fragment, { children: _jsx("h1", { className: "p-name", children: myName }) }));
44
56
  }
57
+ /**
58
+ * ResumeContact — Renders contact information (email, address, phone, website) from resume data.
59
+ *
60
+ * @param {any} [props.data] - Contact microformat data array (expects typical contact properties).
61
+ * @param {string} [props.title] - Section heading to display above contact information.
62
+ */
45
63
  ResumeContact.propTypes = {
64
+ /** Contact microformat data array */
46
65
  data: PropTypes.any.isRequired,
66
+ /** Section title */
47
67
  title: PropTypes.string.isRequired,
48
68
  };
49
69
  export function ResumeContact(props) {
50
70
  const myContact = props.data[0];
51
71
  return (_jsxs(_Fragment, { children: [_jsx("h2", { children: props.title }), _jsxs("ul", { children: [_jsx("li", { children: _jsx("span", { className: "p-email", children: _jsx("a", { href: `mailto:${myContact?.properties.email[0]}`, target: "_blank", rel: "noopener noreferrer", children: myContact?.properties.email[0] }) }) }), _jsxs("li", { children: [_jsxs("span", { className: "p-street-address", children: [myContact?.properties.adr[0].properties["street-address"], ", "] }), _jsxs("span", { className: "p-locality", children: [myContact?.properties.adr[0].properties.locality, ", "] }), _jsxs("span", { className: "p-region", children: [myContact?.properties.adr[0].properties.region, " "] }), _jsx("span", { className: "p-postal-code", children: myContact?.properties.adr[0].properties["postal-code"] })] }), _jsx("li", { children: _jsx("span", { className: "p-tel", children: myContact?.properties.tel[0] }) }), _jsx("li", { children: _jsx("span", { className: "p-url", children: _jsx("a", { href: myContact?.properties.url[0], target: "_blank", rel: "noopener", children: myContact?.properties.url[0] }) }) })] })] }));
52
72
  }
73
+ /**
74
+ * ResumeEvents — Render a list of dated events (education, work, volunteer) with optional collapsible behavior.
75
+ *
76
+ * @param {any} [props.data] - Array of event objects with `properties` including start/end and location metadata.
77
+ * @param {string} [props.dateFormat] - Date format string passed to `date-fns` for rendering dates (e.g., 'MM/yyyy').
78
+ * @param {boolean} [props.collapsible] - If true, the event list is rendered inside a collapsible `<details>` element.
79
+ * @param {string} [props.title] - Section title for the events list.
80
+ */
53
81
  ResumeEvents.propTypes = {
82
+ /** Array of event objects (work, education, etc.) */
54
83
  data: PropTypes.any.isRequired,
84
+ /** Date format string for display */
55
85
  dateFormat: PropTypes.string.isRequired,
86
+ /** When true, events are shown inside a collapsible details element */
56
87
  collapsible: PropTypes.bool,
88
+ /** Section title */
57
89
  title: PropTypes.string.isRequired,
58
90
  };
59
91
  export function ResumeEvents(props) {
@@ -90,8 +122,16 @@ export function ResumeEvents(props) {
90
122
  return (_jsxs(_Fragment, { children: [_jsx("h2", { children: props.title }), _jsx("ul", { children: myElems })] }));
91
123
  }
92
124
  }
125
+ /**
126
+ * ResumeQualifications — Render grouped qualification lists (e.g., certifications, licenses) by category.
127
+ *
128
+ * @param {any} [props.data] - Object mapping qualification categories to arrays of items.
129
+ * @param {string} [props.title] - Section title to display above qualifications.
130
+ */
93
131
  ResumeQualifications.propTypes = {
132
+ /** Qualifications data by category */
94
133
  data: PropTypes.any.isRequired,
134
+ /** Section title */
95
135
  title: PropTypes.string.isRequired,
96
136
  };
97
137
  export function ResumeQualifications(props) {
@@ -106,8 +146,16 @@ export function ResumeQualifications(props) {
106
146
  }
107
147
  return (_jsxs(_Fragment, { children: [_jsx("h2", { children: props.title }), myElems] }));
108
148
  }
149
+ /**
150
+ * ResumeSkills — Render skill categories and values from the resume data.
151
+ *
152
+ * @param {any} [props.data] - Skills data (typically an object or array of categories and skill lists).
153
+ * @param {string} [props.title] - Section title for the skills block.
154
+ */
109
155
  ResumeSkills.propTypes = {
156
+ /** Skills data (categories and lists) */
110
157
  data: PropTypes.any.isRequired,
158
+ /** Section title */
111
159
  title: PropTypes.string.isRequired,
112
160
  };
113
161
  export function ResumeSkills(props) {
@@ -121,8 +169,16 @@ export function ResumeSkills(props) {
121
169
  }
122
170
  return (_jsxs(_Fragment, { children: [_jsx("h2", { children: props.title }), _jsx("div", { className: "p-skills", children: myElems })] }));
123
171
  }
172
+ /**
173
+ * ResumeSummary — Render a short professional summary paragraph or bullets.
174
+ *
175
+ * @param {any} [props.data] - Summary text or array of summary paragraphs.
176
+ * @param {string} [props.title] - Section title for the summary block.
177
+ */
124
178
  ResumeSummary.propTypes = {
179
+ /** Summary text or paragraphs */
125
180
  data: PropTypes.any.isRequired,
181
+ /** Section title */
126
182
  title: PropTypes.string.isRequired,
127
183
  };
128
184
  export function ResumeSummary(props) {
@@ -135,9 +191,19 @@ export function ResumeSummary(props) {
135
191
  }
136
192
  return (_jsxs(_Fragment, { children: [_jsx("h2", { children: props.title }), _jsx("ul", { className: "p-summary", children: myElems })] }));
137
193
  }
194
+ /**
195
+ * ResumeReferences — Render a list of professional references with contact details.
196
+ *
197
+ * @param {any} [props.data] - Array of reference objects (microformat references).
198
+ * @param {any} [props.title] - Section title for references.
199
+ * @param {boolean} [props.collapsible] - When true, the reference list is collapsible.
200
+ */
138
201
  ResumeReferences.propTypes = {
202
+ /** Reference objects array */
139
203
  data: PropTypes.any.isRequired,
204
+ /** Section title */
140
205
  title: PropTypes.any.isRequired,
206
+ /** When true, make the section collapsible */
141
207
  collapsible: PropTypes.bool,
142
208
  };
143
209
  export function ResumeReferences(props) {
@@ -156,16 +222,32 @@ export function ResumeReferences(props) {
156
222
  return (_jsxs(_Fragment, { children: [_jsx("h2", { children: props.title }), _jsx("div", { children: myElems })] }));
157
223
  }
158
224
  }
225
+ /**
226
+ * ResumeReference — Render a single reference entry (name, organization, contact info).
227
+ *
228
+ * @param {any} [props.data] - Reference object with contact properties used for display.
229
+ */
159
230
  ResumeReference.propTypes = {
231
+ /** Reference object with contact details */
160
232
  data: PropTypes.any.isRequired,
161
233
  };
162
234
  export function ResumeReference(props) {
163
235
  const myReference = props.data.properties;
164
236
  return (_jsxs(_Fragment, { children: [_jsxs("div", { children: [(myReference?.url[0]) ? _jsx("a", { href: myReference?.url[0], target: "_blank", className: "u-url", rel: "noopener noreferrer", children: _jsx("span", { className: "p-name", children: myReference?.name[0] }) }) : _jsx("span", { className: "p-name", children: myReference?.name[0] }), ",", ' ', " ", _jsx("span", { className: "p-locality", children: myReference?.locality[0] }), ",", ' ', " ", _jsx("span", { className: "p-region", children: myReference?.region[0] })] }), _jsxs("div", { children: [_jsx("span", { className: "p-job-title", children: myReference["job-title"][0] }), ",", ' ', " ", _jsx("span", { className: "p-org", children: myReference?.org[0] })] }), _jsxs("div", { children: ["email : ", _jsx("a", { href: `mailto:${myReference?.email[0]}`, target: "_blank", rel: "noopener noreferrer", className: "u-email", children: myReference?.email[0] }), ' ', " || phone : ", _jsx("a", { href: `tel:${myReference?.tel[0]}`, className: "p-tel", children: myReference?.tel[0] })] }), _jsx("br", {}), _jsx("hr", {}), _jsx("br", {})] }));
165
237
  }
238
+ /**
239
+ * ResumeProjects — Render projects associated with work history or portfolios.
240
+ *
241
+ * @param {any} [props.data] - Array of project objects with properties like name, url, photo, and note.
242
+ * @param {any} [props.title] - Section title for the projects block.
243
+ * @param {boolean} [props.collapsible] - When true, projects render inside a collapsible element.
244
+ */
166
245
  ResumeProjects.propTypes = {
246
+ /** Projects array */
167
247
  data: PropTypes.any.isRequired,
248
+ /** Section title */
168
249
  title: PropTypes.any.isRequired,
250
+ /** When true, make the section collapsible */
169
251
  collapsible: PropTypes.bool,
170
252
  };
171
253
  export function ResumeProjects(props) {
@@ -1,6 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import PropTypes from 'prop-types';
3
+ /**
4
+ * SchemaBlogPosting — Inject a JSON-LD <script> tag containing a BlogPosting schema object.
5
+ *
6
+ * @param {object} [props.post] - Structured JSON-LD object representing a blog post (BlogPosting schema).
7
+ */
3
8
  SchemaBlogPosting.propTypes = {
9
+ /** Structured BlogPosting JSON-LD object */
4
10
  post: PropTypes.object.isRequired,
5
11
  };
6
12
  export function SchemaBlogPosting(props) {
@@ -8,22 +8,58 @@ import PropTypes from "prop-types";
8
8
  * This component uses siteInfo passed as props to generate schema data.
9
9
  * It does not use client-side hooks and can be rendered on the server.
10
10
  */
11
+ /**
12
+ * LocalBusinessSchema — generates JSON-LD for a LocalBusiness using provided props or a fallback `siteInfo`.
13
+ *
14
+ * @param {string} [props.name] - Business name (overrides siteInfo.name).
15
+ * @param {string} [props.streetAddress] - Street address line.
16
+ * @param {string} [props.addressLocality] - City or locality.
17
+ * @param {string} [props.addressRegion] - State, region or province.
18
+ * @param {string} [props.postalCode] - Postal/ZIP code.
19
+ * @param {string} [props.addressCountry] - Country (defaults to 'United States' when missing).
20
+ * @param {string} [props.telephone] - Contact phone number.
21
+ * @param {string} [props.url] - Canonical website URL.
22
+ * @param {string} [props.logo] - Logo image URL.
23
+ * @param {string} [props.image] - Representative image URL.
24
+ * @param {oneOfType} [props.openingHours] - Opening hours string or array in schema.org format.
25
+ * @param {string} [props.description] - Short business description.
26
+ * @param {string} [props.email] - Contact email address.
27
+ * @param {string} [props.priceRange] - Price range (e.g. '$$', optional).
28
+ * @param {arrayOf} [props.sameAs] - Array of social/profile URLs for schema 'sameAs'.
29
+ * @param {object} [props.siteInfo] - Site-level fallback information object.
30
+ */
11
31
  LocalBusinessSchema.propTypes = {
32
+ /** Business name to include in schema (falls back to siteInfo.name). */
12
33
  name: PropTypes.string,
34
+ /** Street address for the business. */
13
35
  streetAddress: PropTypes.string,
36
+ /** City or locality for the business address. */
14
37
  addressLocality: PropTypes.string,
38
+ /** State/region for the business address. */
15
39
  addressRegion: PropTypes.string,
40
+ /** Postal or ZIP code for the address. */
16
41
  postalCode: PropTypes.string,
42
+ /** Country for the address (defaults to United States when absent). */
17
43
  addressCountry: PropTypes.string,
44
+ /** Contact telephone number. */
18
45
  telephone: PropTypes.string,
46
+ /** Canonical website URL. */
19
47
  url: PropTypes.string,
48
+ /** Logo image URL for schema/logo property. */
20
49
  logo: PropTypes.string,
50
+ /** Representative image URL. */
21
51
  image: PropTypes.string,
52
+ /** Opening hours as a string or array in schema.org format (e.g., "Mo-Fr 09:00-17:00"). */
22
53
  openingHours: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
54
+ /** Short description for schema. */
23
55
  description: PropTypes.string,
56
+ /** Contact email address. */
24
57
  email: PropTypes.string,
58
+ /** Price range string (e.g. '$$'). */
25
59
  priceRange: PropTypes.string,
60
+ /** Array of profile/URL strings for sameAs (social links). */
26
61
  sameAs: PropTypes.arrayOf(PropTypes.string), // Social media profiles
62
+ /** Site-level fallback information object (used when props omitted). */
27
63
  siteInfo: PropTypes.object // Required siteinfo from parent component
28
64
  };
29
65
  export function LocalBusinessSchema(props) {
@@ -5,7 +5,27 @@ import PropTypes from 'prop-types';
5
5
  * Generates JSON-LD structured data for recipes
6
6
  * https://schema.org/Recipe
7
7
  */
8
+ /**
9
+ * RecipeSchema — embeds a recipe as JSON-LD for SEO (schema.org/Recipe).
10
+ *
11
+ * @param {shape} [props.recipe] - Recipe object conforming to schema.org/Recipe; will be serialized as JSON-LD.
12
+ * @param {string} [props.name] - Recipe title.
13
+ * @param {string} [props.description] - Short recipe description.
14
+ * @param {shape} [props.author] - Author information (name and @type).
15
+ * @param {string} [props.datePublished] - ISO date the recipe was published.
16
+ * @param {string} [props.image] - Primary image URL for the recipe.
17
+ * @param {string} [props.recipeYield] - Yield or serving size (e.g., '4 servings').
18
+ * @param {string} [props.prepTime] - Prep time in ISO 8601 duration (e.g. 'PT20M').
19
+ * @param {string} [props.cookTime] - Cook time in ISO 8601 duration.
20
+ * @param {string} [props.totalTime] - Total time in ISO 8601 duration.
21
+ * @param {string} [props.recipeCategory] - Category of the recipe (e.g., 'Dessert').
22
+ * @param {string} [props.recipeCuisine] - Cuisine (e.g., 'Italian').
23
+ * @param {arrayOf} [props.recipeIngredient] - List of ingredient strings.
24
+ * @param {arrayOf} [props.recipeInstructions] - Structured list of instruction steps or paragraphs.
25
+ * @param {string} [props.license] - License URL or short string for the recipe content.
26
+ */
8
27
  RecipeSchema.propTypes = {
28
+ /** Recipe information object to be serialized as JSON-LD. */
9
29
  recipe: PropTypes.shape({
10
30
  '@context': PropTypes.string.isRequired,
11
31
  '@type': PropTypes.string.isRequired,
@@ -19,8 +19,16 @@ export const flexWraps = ['nowrap', 'wrap', 'wrap-reverse'];
19
19
  export const justifyContentValues = ['start', 'center', 'end', 'space-between', 'space-around', 'space-evenly'];
20
20
  export const alignItemsValues = ['start', 'center', 'end', 'stretch', 'baseline'];
21
21
  // ========== PAGE TITLE HEADER ==========
22
+ /**
23
+ * PageTitleHeader — Small H1 header used primarily for page titles.
24
+ *
25
+ * @param {string} [props.title] - Title text to display (required).
26
+ * @param {string} [props.url] - Optional URL; when present, the title will be rendered as a link.
27
+ */
22
28
  PageTitleHeader.propTypes = {
29
+ /** Page title text (required) */
23
30
  title: PropTypes.string.isRequired,
31
+ /** Optional URL to wrap the title with */
24
32
  url: PropTypes.string
25
33
  };
26
34
  export function PageTitleHeader({ title, url }) {
@@ -31,31 +39,75 @@ export function PageTitleHeader({ title, url }) {
31
39
  }
32
40
  ;
33
41
  // ========== PAGE SECTION ==========
42
+ /**
43
+ * PageSection — Flexible section wrapper used for page layout (grid or flex).
44
+ *
45
+ * @param {string} [props.id] - Optional element id for the section.
46
+ * @param {string} [props.className] - Optional additional CSS class names.
47
+ * @param {oneOf} [props.layoutType] - Layout mode: 'grid' | 'flex' | 'none'.
48
+ * @param {string} [props.gap] - Gap between child elements (CSS gap value).
49
+ * @param {string} [props.maxWidth] - Maximum content width (e.g., '1024px').
50
+ * @param {string} [props.padding] - Section padding (CSS shorthand).
51
+ * @param {string} [props.background] - Background color or CSS value.
52
+ * @param {string} [props.backgroundImage] - Background image URL.
53
+ * @param {number} [props.columns] - Number of grid columns when `layoutType` is 'grid'.
54
+ * @param {oneOf} [props.autoFlow] - Grid auto-flow property (e.g., 'row', 'column', 'dense').
55
+ * @param {oneOf} [props.justifyItems] - Grid justify-items value.
56
+ * @param {shape} [props.responsive] - Responsive column counts ({ mobile, tablet, desktop }).
57
+ * @param {number} [props.mobile] - Mobile column count (inside `responsive`).
58
+ * @param {number} [props.tablet] - Tablet column count (inside `responsive`).
59
+ * @param {number} [props.desktop] - Desktop column count (inside `responsive`).
60
+ * @param {oneOf} [props.direction] - Flex direction when `layoutType` is 'flex'.
61
+ * @param {oneOf} [props.wrap] - Flex wrap property when using flex layout.
62
+ * @param {oneOf} [props.justifyContent] - Flex justify-content value.
63
+ * @param {oneOf} [props.alignItems] - Alignment for cross-axis in grid/flex.
64
+ * @param {node} [props.children] - Child nodes to render inside the section.
65
+ */
34
66
  PageSection.propTypes = {
67
+ /** Optional element id */
35
68
  id: PropTypes.string,
69
+ /** Optional CSS classes */
36
70
  className: PropTypes.string,
71
+ /** Layout mode ('grid' | 'flex' | 'none') */
37
72
  layoutType: PropTypes.oneOf([...layoutTypes]),
38
73
  // Common props
74
+ /** Gap between children (CSS gap) */
39
75
  gap: PropTypes.string,
76
+ /** Max width of the content area */
40
77
  maxWidth: PropTypes.string,
78
+ /** Padding applied to content area */
41
79
  padding: PropTypes.string,
80
+ /** Background color/string */
42
81
  background: PropTypes.string,
82
+ /** Background image URL */
43
83
  backgroundImage: PropTypes.string,
44
84
  // Grid-specific props
85
+ /** Number of columns when using grid layout */
45
86
  columns: PropTypes.number,
87
+ /** Grid auto-flow value */
46
88
  autoFlow: PropTypes.oneOf([...autoFlowValues]),
89
+ /** Grid justify-items */
47
90
  justifyItems: PropTypes.oneOf([...justifyItemsValues]),
91
+ /** Responsive column config */
48
92
  responsive: PropTypes.shape({
93
+ /** Mobile column count */
49
94
  mobile: PropTypes.number,
95
+ /** Tablet column count */
50
96
  tablet: PropTypes.number,
97
+ /** Desktop column count */
51
98
  desktop: PropTypes.number,
52
99
  }),
53
100
  // Flex-specific props
101
+ /** Flex direction value */
54
102
  direction: PropTypes.oneOf([...flexDirections]),
103
+ /** Flex wrap behavior */
55
104
  wrap: PropTypes.oneOf([...flexWraps]),
105
+ /** Flex justify-content value */
56
106
  justifyContent: PropTypes.oneOf([...justifyContentValues]),
57
107
  // Shared alignment
108
+ /** Cross-axis alignment for children */
58
109
  alignItems: PropTypes.oneOf([...alignItemsValues]),
110
+ /** Child nodes */
59
111
  children: PropTypes.node,
60
112
  };
61
113
  export function PageSection({ id, className, layoutType = 'grid', gap = '10px', maxWidth = '1024px', padding = '0 20px', /* 5px */ background, backgroundImage,
@@ -99,8 +151,16 @@ alignItems = 'stretch', children, }) {
99
151
  return (_jsxs("section", { id: id || undefined, className: "page-section page-section-none", style: sectionStyle, children: [backgroundImage && _jsx(PageSectionBackgroundImage, { backgroundImage: backgroundImage, id: id }), _jsx("div", { className: "page-section-content", style: contentStyle, children: children })] }));
100
152
  }
101
153
  // ========== PAGE SECTION HEADER ==========
154
+ /**
155
+ * PageSectionHeader — Small header used to label a `PageSection`.
156
+ *
157
+ * @param {string} [props.title] - Section title text (required).
158
+ * @param {string} [props.url] - Optional URL to link the section title.
159
+ */
102
160
  PageSectionHeader.propTypes = {
161
+ /** Section title text */
103
162
  title: PropTypes.string.isRequired,
163
+ /** Optional URL to link the title */
104
164
  url: PropTypes.string
105
165
  };
106
166
  export function PageSectionHeader({ title, url }) {
@@ -111,8 +171,16 @@ export function PageSectionHeader({ title, url }) {
111
171
  }
112
172
  ;
113
173
  // ========== PAGE SECTION BACKGROUND IMAGE ==========
174
+ /**
175
+ * PageSectionBackgroundImage — Decorative background image used by `PageSection`.
176
+ *
177
+ * @param {string} [props.backgroundImage] - Background image URL (required).
178
+ * @param {string} [props.id] - Optional id used for element ids and titles.
179
+ */
114
180
  PageSectionBackgroundImage.propTypes = {
181
+ /** Background image URL */
115
182
  backgroundImage: PropTypes.string.isRequired,
183
+ /** Optional id for the image element */
116
184
  id: PropTypes.string,
117
185
  };
118
186
  export function PageSectionBackgroundImage(props) {
@@ -122,17 +190,43 @@ export function PageSectionBackgroundImage(props) {
122
190
  title: props.id ? `${props.id} background image` : undefined, alt: props.id ? `${props.id} background image` : "", cloudinaryEnv: config?.cloudinary?.product_env ?? undefined, cloudinaryDomain: config?.cloudinary?.baseUrl ?? undefined, cloudinaryTransforms: config?.cloudinary?.transforms ?? undefined }) }));
123
191
  }
124
192
  // ========== GRID ITEM ==========
193
+ /**
194
+ * PageGridItem — Single grid cell wrapper that supports span and positioning helpers.
195
+ *
196
+ * @param {string} [props.id] - Optional id for the grid item element.
197
+ * @param {string} [props.className] - Additional CSS classes for the item.
198
+ * @param {number} [props.columnSpan] - How many columns the item spans.
199
+ * @param {number} [props.rowSpan] - How many rows the item spans.
200
+ * @param {number} [props.columnStart] - Starting column index for the item.
201
+ * @param {number} [props.columnEnd] - Ending column index for the item.
202
+ * @param {number} [props.rowStart] - Starting row index for the item.
203
+ * @param {number} [props.rowEnd] - Ending row index for the item.
204
+ * @param {oneOf} [props.alignSelf] - Cross-axis alignment for the item.
205
+ * @param {oneOf} [props.justifySelf] - Main-axis alignment for the item.
206
+ * @param {node} [props.children] - Child nodes to render inside the grid cell.
207
+ */
125
208
  PageGridItem.propTypes = {
209
+ /** Optional element id */
126
210
  id: PropTypes.string,
211
+ /** Optional CSS classes */
127
212
  className: PropTypes.string,
213
+ /** Column span value */
128
214
  columnSpan: PropTypes.number,
215
+ /** Row span value */
129
216
  rowSpan: PropTypes.number,
217
+ /** Column start index */
130
218
  columnStart: PropTypes.number,
219
+ /** Column end index */
131
220
  columnEnd: PropTypes.number,
221
+ /** Row start index */
132
222
  rowStart: PropTypes.number,
223
+ /** Row end index */
133
224
  rowEnd: PropTypes.number,
225
+ /** Cross-axis alignment */
134
226
  alignSelf: PropTypes.oneOf(['start', 'center', 'end', 'stretch']),
227
+ /** Main-axis alignment */
135
228
  justifySelf: PropTypes.oneOf(['start', 'center', 'end', 'stretch']),
229
+ /** Child nodes */
136
230
  children: PropTypes.node,
137
231
  };
138
232
  export function PageGridItem({ id, className, columnSpan, rowSpan, columnStart, columnEnd, rowStart, rowEnd, alignSelf, justifySelf, children, }) {
@@ -155,10 +249,22 @@ export function PageGridItem({ id, className, columnSpan, rowSpan, columnStart,
155
249
  (columnStart && columnEnd && !columnSpan ? ` grid-s${columnStart}-e${columnEnd}` : ''), id: (id) ? id : undefined, style: itemStyle, children: children }));
156
250
  }
157
251
  // ========== FLEX ITEM ==========
252
+ /**
253
+ * PageFlexItem — Simple flex item helper that exposes CSS flex and order helpers.
254
+ *
255
+ * @param {string} [props.flex] - CSS flex shorthand value (e.g., '1 1 auto').
256
+ * @param {number} [props.order] - Order value used by flexbox ordering.
257
+ * @param {oneOf} [props.alignSelf] - Override for cross-axis alignment on the item.
258
+ * @param {node} [props.children] - Child nodes to render inside the flex item.
259
+ */
158
260
  PageFlexItem.propTypes = {
261
+ /** CSS flex shorthand value */
159
262
  flex: PropTypes.string,
263
+ /** Flex order value */
160
264
  order: PropTypes.number,
265
+ /** Cross-axis alignment override */
161
266
  alignSelf: PropTypes.oneOf(['auto', 'start', 'center', 'end', 'stretch', 'baseline']),
267
+ /** Child nodes */
162
268
  children: PropTypes.node,
163
269
  };
164
270
  export function PageFlexItem({ flex = '1', order, alignSelf, children, }) {
@@ -176,15 +282,37 @@ const pageLinkShape = PropTypes.shape({
176
282
  target: PropTypes.oneOf(["_self", "_blank"]),
177
283
  });
178
284
  // ========== PAGE HEADER ==========
285
+ /**
286
+ * PageHeader — Top page header block that can include eyebrow, headline, description and CTA.
287
+ *
288
+ * @param {string} [props.className] - Optional CSS classes to apply to the header.
289
+ * @param {string} [props.eyebrow] - Small eyebrow text shown above the headline.
290
+ * @param {string} [props.headline] - Main headline text.
291
+ * @param {string} [props.description] - Short description or subheading text.
292
+ * @param {string} [props.ctaLabel] - CTA button label text.
293
+ * @param {string} [props.ctaHref] - CTA URL to navigate to when clicked.
294
+ * @param {oneOf} [props.ctaTarget] - Optional target for CTA link ('_self' or '_blank').
295
+ * @param {node} [props.children] - Additional nodes to render inside the header.
296
+ * @param {boolean} [props.fixed] - When true, header becomes fixed and a spacer is inserted.
297
+ */
179
298
  PageHeader.propTypes = {
299
+ /** Optional CSS classes */
180
300
  className: PropTypes.string,
301
+ /** Eyebrow above the headline */
181
302
  eyebrow: PropTypes.string,
303
+ /** Headline text */
182
304
  headline: PropTypes.string,
305
+ /** Subheading or description */
183
306
  description: PropTypes.string,
307
+ /** CTA label */
184
308
  ctaLabel: PropTypes.string,
309
+ /** CTA href */
185
310
  ctaHref: PropTypes.string,
311
+ /** CTA target */
186
312
  ctaTarget: PropTypes.oneOf(["_self", "_blank"]),
313
+ /** Additional child nodes */
187
314
  children: PropTypes.node,
315
+ /** When true, header is fixed (sticky) */
188
316
  fixed: PropTypes.bool,
189
317
  };
190
318
  export function PageHeader({ className, eyebrow, headline, description, ctaLabel, ctaHref, ctaTarget, children, fixed = false, }) {
@@ -212,11 +340,25 @@ export function PageHeader({ className, eyebrow, headline, description, ctaLabel
212
340
  return (_jsxs(_Fragment, { children: [fixed && (_jsx("div", { className: "page-header-spacer", "aria-hidden": "true", style: spacerStyle })), _jsxs("header", { ref: headerRef, className: headerClasses, children: [eyebrow && _jsx("p", { className: "page-header-eyebrow", children: eyebrow }), headline && _jsx("h1", { children: headline }), description && _jsx("p", { className: "page-header-description", children: description }), ctaLabel && ctaHref && (_jsx("a", { className: "page-header-cta", href: ctaHref, target: resolvedTarget, rel: rel, children: ctaLabel })), children] })] }));
213
341
  }
214
342
  // ========== PAGE HERO ==========
343
+ /**
344
+ * PageHero — Generic hero wrapper used within page layouts.
345
+ *
346
+ * @param {string} [props.id] - Optional id for the hero section.
347
+ * @param {string} [props.className] - Additional CSS classes for the hero.
348
+ * @param {string} [props.background] - Background color or CSS value.
349
+ * @param {string} [props.backgroundImage] - Background image URL to render behind content.
350
+ * @param {node} [props.children] - Content to display inside the hero.
351
+ */
215
352
  PageHero.propTypes = {
353
+ /** Optional id for hero */
216
354
  id: PropTypes.string,
355
+ /** Optional CSS classes */
217
356
  className: PropTypes.string,
357
+ /** Background color or CSS string */
218
358
  background: PropTypes.string,
359
+ /** Background image URL */
219
360
  backgroundImage: PropTypes.string,
361
+ /** Child nodes */
220
362
  children: PropTypes.node,
221
363
  };
222
364
  export function PageHero({ id, className, background, backgroundImage, children, }) {
@@ -226,11 +368,25 @@ export function PageHero({ id, className, background, backgroundImage, children,
226
368
  return (_jsxs("section", { id: id || undefined, className: `page-hero${className ? ` ${className}` : ""}`, style: wrapperStyle, children: [backgroundImage && _jsx(PageSectionBackgroundImage, { backgroundImage: backgroundImage, id: id }), _jsx("div", { className: "page-hero-content", children: children })] }));
227
369
  }
228
370
  // ========== PAGE MAIN ==========
371
+ /**
372
+ * PageMain — Main content wrapper with optional width and padding controls.
373
+ *
374
+ * @param {string} [props.id] - Optional id attribute for the main element.
375
+ * @param {string} [props.className] - Additional CSS classes to apply.
376
+ * @param {string} [props.maxWidth] - Maximum content width (e.g., '1200px').
377
+ * @param {string} [props.padding] - Padding around the main content (CSS shorthand).
378
+ * @param {node} [props.children] - Main content nodes.
379
+ */
229
380
  PageMain.propTypes = {
381
+ /** Optional id */
230
382
  id: PropTypes.string,
383
+ /** Optional CSS classes */
231
384
  className: PropTypes.string,
385
+ /** Max content width */
232
386
  maxWidth: PropTypes.string,
387
+ /** Padding for main content */
233
388
  padding: PropTypes.string,
389
+ /** Child nodes */
234
390
  children: PropTypes.node,
235
391
  };
236
392
  export function PageMain({ id, className, maxWidth = "1200px", padding = "0 20px 60px", children, }) {
@@ -241,9 +397,19 @@ export function PageMain({ id, className, maxWidth = "1200px", padding = "0 20px
241
397
  return (_jsx("main", { id: id || undefined, className: `page-main${className ? ` ${className}` : ""}`, style: layoutStyle, children: children }));
242
398
  }
243
399
  // ========== PAGE NAV ==========
400
+ /**
401
+ * PageNav — Simple navigation helper that renders link items horizontally or vertically.
402
+ *
403
+ * @param {string} [props.className] - Optional CSS classes for the nav wrapper.
404
+ * @param {oneOf} [props.orientation] - Layout orientation: 'horizontal' or 'vertical'.
405
+ * @param {arrayOf} [props.links] - Array of link objects ({label, href, target}).
406
+ */
244
407
  PageNav.propTypes = {
408
+ /** Optional CSS classes */
245
409
  className: PropTypes.string,
410
+ /** Orientation: 'horizontal' | 'vertical' */
246
411
  orientation: PropTypes.oneOf(["horizontal", "vertical"]),
412
+ /** Array of link objects */
247
413
  links: PropTypes.arrayOf(pageLinkShape),
248
414
  };
249
415
  export function PageNav({ className, orientation = "horizontal", links, }) {
@@ -260,10 +426,22 @@ export function PageNav({ className, orientation = "horizontal", links, }) {
260
426
  }) }));
261
427
  }
262
428
  // ========== PAGE FOOTER ==========
429
+ /**
430
+ * PageFooter — Page footer that optionally renders text, links and children.
431
+ *
432
+ * @param {string} [props.className] - Optional additional CSS classes.
433
+ * @param {string} [props.text] - Footer text or short copyright string.
434
+ * @param {arrayOf} [props.links] - Array of link objects to show in footer.
435
+ * @param {node} [props.children] - Additional nodes rendered inside the footer.
436
+ */
263
437
  PageFooter.propTypes = {
438
+ /** Optional CSS classes */
264
439
  className: PropTypes.string,
440
+ /** Footer text */
265
441
  text: PropTypes.string,
442
+ /** Footer links */
266
443
  links: PropTypes.arrayOf(pageLinkShape),
444
+ /** Child nodes */
267
445
  children: PropTypes.node,
268
446
  };
269
447
  export function PageFooter({ className, text, links, children, }) {
@@ -7,17 +7,43 @@ import PropTypes from 'prop-types';
7
7
  import './sidepanel.css';
8
8
  // Define const arrays for options - used by both PropTypes and form generation
9
9
  export const positions = ['left', 'right'];
10
+ /**
11
+ * SidePanel — off-canvas panel that can be opened from the left or right with optional overlay and tab toggle.
12
+ *
13
+ * @param {boolean} [props.isOpen] - Whether the panel is currently open.
14
+ * @param {function} [props.onClose] - Callback invoked to request the panel be closed.
15
+ * @param {function} [props.onToggle] - Callback to toggle the panel open/closed.
16
+ * @param {oneOf} [props.position] - Which side the panel appears on ('left' | 'right').
17
+ * @param {string} [props.width] - CSS width (e.g., '300px') used for panel size.
18
+ * @param {boolean} [props.showOverlay] - Whether to render a click-to-close overlay behind the panel.
19
+ * @param {boolean} [props.showTab] - Whether to display a persistent toggle tab.
20
+ * @param {node} [props.tabIcon] - Optional icon node to render inside the tab button.
21
+ * @param {string} [props.tabLabel] - Optional text label to show on the tab button.
22
+ * @param {node} [props.children] - Panel content to render inside the side panel.
23
+ * @param {string} [props.className] - Additional CSS class names to apply to the panel container.
24
+ */
10
25
  SidePanel.propTypes = {
26
+ /** Whether the panel is open (controls visible state). */
11
27
  isOpen: PropTypes.bool.isRequired,
28
+ /** Function called to request closing the panel. */
12
29
  onClose: PropTypes.func.isRequired,
30
+ /** Optional toggle callback to open/close the panel. */
13
31
  onToggle: PropTypes.func,
32
+ /** Position of the panel on the screen ('left' or 'right'). */
14
33
  position: PropTypes.oneOf([...positions]),
34
+ /** CSS width value for the panel (e.g., '300px'). */
15
35
  width: PropTypes.string,
36
+ /** When true an overlay is shown and clicking it closes the panel. */
16
37
  showOverlay: PropTypes.bool,
38
+ /** Whether to render a fixed tab toggle for the panel. */
17
39
  showTab: PropTypes.bool,
40
+ /** Optional icon node shown inside the persistent tab. */
18
41
  tabIcon: PropTypes.node,
42
+ /** Optional label text for the tab toggle. */
19
43
  tabLabel: PropTypes.string,
44
+ /** Panel content as React children. */
20
45
  children: PropTypes.node,
46
+ /** Extra CSS class names to apply to the component. */
21
47
  className: PropTypes.string,
22
48
  };
23
49
  export default function SidePanel({ isOpen, onClose, onToggle, position = 'left', width = '300px', showOverlay = true, showTab = false, tabIcon /* = "≡" */, tabLabel, children, className = '' }) {