@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,7 @@ import { useState, useEffect } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import * as FC from './formcomponents';
5
5
  import * as FVF from './formfieldvalidations';
6
- import { capitalize, attributeMap } from './formutils';
6
+ import { capitalize, attributeMap } from '../../general/utilities';
7
7
  import { FormEngine } from './formengine';
8
8
  const debug = false;
9
9
  /*
@@ -11,16 +11,32 @@ const debug = false;
11
11
  Submit a page URL of a form to extract all form elements and
12
12
  convert them to JSON to create a form via FormEngine
13
13
  */
14
+ /**
15
+ * FormExtractor — Extract a form from a URL or pasted HTML and convert it into a JSON schema usable by `FormEngine`.
16
+ *
17
+ * @param {string} [props.url] - URL pointing to a page containing a form to extract.
18
+ * @param {string} [props.htmlPaste] - Raw HTML snippet to parse for form elements instead of fetching a URL.
19
+ */
14
20
  FormExtractor.propTypes = {
21
+ /** URL of the page to extract form elements from */
15
22
  url: PropTypes.string,
23
+ /** Raw HTML string containing a form to extract */
16
24
  htmlPaste: PropTypes.string
17
25
  };
18
26
  export function FormExtractor(props) {
19
27
  const [url, setURL] = useState(props.url || "");
20
28
  const [htmlPaste, setHtmlPaste] = useState(props.htmlPaste || "");
21
29
  const [formData, setFormData] = useState({ fields: [] });
30
+ /**
31
+ * setParentState — Callback invoked by child UI to pass URL or pasted HTML values up to the parent extractor.
32
+ *
33
+ * @param {string} [props.url] - URL value provided by the UI.
34
+ * @param {string} [props.htmlPaste] - Pasted HTML value provided by the UI.
35
+ */
22
36
  setParentState.propTypes = {
37
+ /** URL value provided by the child UI */
23
38
  url: PropTypes.string.isRequired,
39
+ /** Pasted HTML provided by the child UI */
24
40
  htmlPaste: PropTypes.string.isRequired,
25
41
  };
26
42
  function setParentState(childState) {
@@ -32,7 +48,13 @@ export function FormExtractor(props) {
32
48
  }
33
49
  return (_jsxs("div", { children: [_jsx("div", { className: "section-container", children: _jsx(FormExtractUI, { setParentState: setParentState }) }), _jsxs("div", { className: "section-container", children: [_jsx("br", {}), _jsx("br", {}), _jsx("hr", {}), _jsx("br", {}), _jsx("br", {})] }), _jsx("div", { className: "section-container", children: _jsx(FormExtractEngine, { url: url, htmlPaste: htmlPaste, setFormData: setFormData }) }), _jsxs("div", { className: "section-container", children: [_jsx("br", {}), _jsx("br", {}), _jsx("hr", {}), _jsx("br", {}), _jsx("br", {})] }), _jsx("div", { className: "section-container", children: _jsx(FormEngine, { formData: formData }) })] }));
34
50
  }
51
+ /**
52
+ * FormExtractUI — UI allowing the user to enter a URL or paste HTML to extract form fields.
53
+ *
54
+ * @param {function} [props.setParentState] - Callback called with `{ url, htmlPaste }` when the user submits input.
55
+ */
35
56
  FormExtractUI.propTypes = {
57
+ /** Callback to send URL/html values back to parent */
36
58
  setParentState: PropTypes.func.isRequired
37
59
  };
38
60
  export function FormExtractUI(props) {
@@ -58,9 +80,19 @@ export function FormExtractUI(props) {
58
80
  }
59
81
  return (_jsxs("form", { onSubmit: e => { e.preventDefault(); }, method: "post", name: "extract", children: [_jsx("label", { htmlFor: "url", children: "URL : " }), _jsx("input", { type: "text", list: "form_urls", id: "url", name: "url", size: 100, onChange: onChange }), _jsx(FC.FormDataList, { id: 'form_urls', items: FVF.formURLs }), _jsx("div", { style: { width: '100%', textAlign: 'center' }, children: "OR" }), _jsx("label", { htmlFor: "htmlPaste", children: "HTML : " }), _jsx("textarea", { id: "htmlPaste", name: "htmlPaste", rows: 10, cols: 80, onChange: onChange }), _jsx("br", {}), _jsxs("div", { style: { width: '100%', textAlign: 'center' }, children: [_jsx("button", { type: "button", onClick: onSubmit, children: "Extract" }), _jsx("input", { type: "reset" })] })] }));
60
82
  }
83
+ /**
84
+ * FormExtractEngine — Parse the supplied URL or pasted HTML and convert found form elements into a JSON schema.
85
+ *
86
+ * @param {string} [props.url] - URL to fetch and parse for form markup.
87
+ * @param {string} [props.htmlPaste] - Raw HTML to parse instead of fetching a URL.
88
+ * @param {function} [props.setFormData] - Callback which receives the generated form JSON schema.
89
+ */
61
90
  FormExtractEngine.propTypes = {
91
+ /** URL to fetch and parse */
62
92
  url: PropTypes.string,
93
+ /** Raw HTML string to parse for forms */
63
94
  htmlPaste: PropTypes.string,
95
+ /** Callback to receive the generated form JSON */
64
96
  setFormData: PropTypes.func.isRequired
65
97
  };
66
98
  export function FormExtractEngine(props) {
@@ -1,5 +1,3 @@
1
- // Shared utility functions for form components
2
- import { generateKey, capitalize, attributeMap } from '../../general/utilities';
3
1
  const debug = false;
4
2
  /**
5
3
  * Maps input type to form component name
@@ -213,5 +211,3 @@ export function convertNumericProps(props) {
213
211
  }
214
212
  });
215
213
  }
216
- // Re-export utilities from main utilities file for convenience
217
- export { generateKey, capitalize, attributeMap };
@@ -53,7 +53,13 @@ export function useFormValidation() {
53
53
  }
54
54
  return context;
55
55
  }
56
+ /**
57
+ * FormValidationProvider — Context provider for form validation state and helpers (field errors, validity checks).
58
+ *
59
+ * @param {node} [props.children] - Children components that require validation context (usually `FormEngine`).
60
+ */
56
61
  FormValidationProvider.propTypes = {
62
+ /** Child nodes that consume the validation context */
57
63
  children: PropTypes.node.isRequired
58
64
  };
59
65
  export function FormValidationProvider({ children }) {
@@ -6,8 +6,16 @@ import { FormEngine } from '../../form/formengine';
6
6
  * ComponentPropertiesForm - Displays the component properties form
7
7
  * Shows FormEngine when component is selected, placeholder otherwise
8
8
  */
9
+ /**
10
+ * ComponentPropertiesForm — Display and edit the selected component's properties using FormEngine.
11
+ *
12
+ * @param {object} [props.editableComponent] - JSON schema for the currently selected component (contains `fields`).
13
+ * @param {function} [props.onSubmit] - Callback invoked when the edited component is saved; receives the component schema.
14
+ */
9
15
  ComponentPropertiesForm.propTypes = {
16
+ /** JSON schema for the currently selected component */
10
17
  editableComponent: PropTypes.object,
18
+ /** Callback invoked when component properties are submitted */
11
19
  onSubmit: PropTypes.func.isRequired,
12
20
  };
13
21
  export function ComponentPropertiesForm({ editableComponent, onSubmit }) {
@@ -9,9 +9,19 @@ import { generateFieldJSON } from '../lib/componentGeneration';
9
9
  * Phase 1: Select component type
10
10
  * Phase 2: Auto-generate property form based on PropTypes
11
11
  */
12
+ /**
13
+ * ComponentSelector — Select a component type (or edit an existing one) and generate an editable component schema.
14
+ *
15
+ * @param {function} [props.setEditableComponent] - Callback that receives a generated component JSON schema for editing.
16
+ * @param {string} [props.parentPath] - Optional path where a new child component should be inserted.
17
+ * @param {shape} [props.editMode] - Optional edit mode info { component, props } to pre-populate the selector for editing.
18
+ */
12
19
  ComponentSelector.propTypes = {
20
+ /** Callback to set the editable component schema */
13
21
  setEditableComponent: PropTypes.func.isRequired,
22
+ /** Optional parent path where children will be added */
14
23
  parentPath: PropTypes.string,
24
+ /** Optional object used to pre-populate the selector when editing an existing component */
15
25
  editMode: PropTypes.shape({
16
26
  component: PropTypes.string,
17
27
  props: PropTypes.object
@@ -5,14 +5,34 @@ import { layoutComponents } from '../lib/componentMap';
5
5
  * ComponentTree - Displays hierarchical tree of components
6
6
  * Shows Edit and Child buttons for each component
7
7
  */
8
+ /**
9
+ * ComponentTree — Render a hierarchical tree of page components with edit, move, and delete controls.
10
+ *
11
+ * @param {array} [props.components] - Array of component objects that form the page tree.
12
+ * @param {function} [props.onSelectComponent] - Callback when a component is selected for adding children.
13
+ * @param {function} [props.onEditComponent] - Callback when the edit action is triggered for a component.
14
+ * @param {function} [props.onDeleteComponent] - Callback to remove a component from the tree.
15
+ * @param {function} [props.onMoveUp] - Move the component up within its parent's children array.
16
+ * @param {function} [props.onMoveDown] - Move the component down within its parent's children array.
17
+ * @param {string} [props.selectedPath] - Currently selected component path string.
18
+ * @param {string} [props.editPath] - Path of the component currently in edit mode.
19
+ */
8
20
  ComponentTree.propTypes = {
21
+ /** Components forming the tree */
9
22
  components: PropTypes.array.isRequired,
23
+ /** Select callback for child insertion */
10
24
  onSelectComponent: PropTypes.func.isRequired,
25
+ /** Edit callback for component properties */
11
26
  onEditComponent: PropTypes.func.isRequired,
27
+ /** Delete callback */
12
28
  onDeleteComponent: PropTypes.func.isRequired,
29
+ /** Move-up callback */
13
30
  onMoveUp: PropTypes.func.isRequired,
31
+ /** Move-down callback */
14
32
  onMoveDown: PropTypes.func.isRequired,
33
+ /** Currently selected component path */
15
34
  selectedPath: PropTypes.string,
35
+ /** Component path currently being edited */
16
36
  editPath: PropTypes.string,
17
37
  };
18
38
  export function ComponentTree({ components, onSelectComponent, onEditComponent, onDeleteComponent, onMoveUp, onMoveDown, selectedPath, editPath }) {
@@ -14,7 +14,13 @@ import './pagebuilder.scss';
14
14
  * PageBuilderUI - Main orchestrator component
15
15
  * Composes all sub-components and manages layout with inline editing
16
16
  */
17
+ /**
18
+ * PageBuilderUI — Main page builder orchestration UI. Composes selection, properties editing, preview, and save/load.
19
+ *
20
+ * @param {string} [props.apiEndpoint] - API endpoint base used for saving and loading page JSON.
21
+ */
17
22
  PageBuilderUI.propTypes = {
23
+ /** API endpoint base for save/load operations (e.g., '/api/pagebuilder') */
18
24
  apiEndpoint: PropTypes.string,
19
25
  };
20
26
  export function PageBuilderUI({ apiEndpoint = '/api/pagebuilder' }) {
@@ -9,7 +9,20 @@ import './pagebuilder.scss';
9
9
  * When editMode is true, shows borders, hover effects, and action buttons
10
10
  * When editMode is false (default), renders clean components without edit UI
11
11
  */
12
+ /**
13
+ * PageEngine — Render page components (and their children) with optional inline editing functionality.
14
+ *
15
+ * @param {shape} [props.pageData] - Page JSON containing a `components` array describing the page structure.
16
+ * @param {boolean} [props.editMode] - When true, show editing UI (borders, buttons) around components.
17
+ * @param {string} [props.selectedPath] - Path string identifying the currently selected component.
18
+ * @param {function} [props.onEditComponent] - Callback invoked to begin editing a component's properties.
19
+ * @param {function} [props.onSelectComponent] - Callback to select a component for adding children.
20
+ * @param {function} [props.onDeleteComponent] - Callback to delete a component at a given path.
21
+ * @param {function} [props.onMoveUp] - Callback to move a component up within its siblings.
22
+ * @param {function} [props.onMoveDown] - Callback to move a component down within its siblings.
23
+ */
12
24
  PageEngine.propTypes = {
25
+ /** Page JSON with components array */
13
26
  pageData: PropTypes.shape({
14
27
  components: PropTypes.arrayOf(PropTypes.shape({
15
28
  component: PropTypes.string.isRequired,
@@ -17,12 +30,19 @@ PageEngine.propTypes = {
17
30
  children: PropTypes.array,
18
31
  })).isRequired,
19
32
  }).isRequired,
33
+ /** Show inline edit UI when true */
20
34
  editMode: PropTypes.bool,
35
+ /** Currently selected component path */
21
36
  selectedPath: PropTypes.string,
37
+ /** Begin editing component properties */
22
38
  onEditComponent: PropTypes.func,
39
+ /** Select a component for child insertion */
23
40
  onSelectComponent: PropTypes.func,
41
+ /** Delete a component */
24
42
  onDeleteComponent: PropTypes.func,
43
+ /** Move component up */
25
44
  onMoveUp: PropTypes.func,
45
+ /** Move component down */
26
46
  onMoveDown: PropTypes.func,
27
47
  };
28
48
  export function PageEngine(props) {
@@ -2,9 +2,19 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState, useEffect } from 'react';
4
4
  import PropTypes from 'prop-types';
5
+ /**
6
+ * SaveLoadSection — UI for saving and loading page JSON to/from the configured API endpoint.
7
+ *
8
+ * @param {object} [props.pageData] - Current page data object to be saved.
9
+ * @param {function} [props.onLoad] - Callback invoked with loaded page data when a saved page is selected.
10
+ * @param {string} [props.apiEndpoint] - Base API endpoint used for save/load operations.
11
+ */
5
12
  SaveLoadSection.propTypes = {
13
+ /** Current page data object to save */
6
14
  pageData: PropTypes.object.isRequired,
15
+ /** Callback invoked when a saved page is loaded */
7
16
  onLoad: PropTypes.func.isRequired,
17
+ /** API endpoint base for save/load interactions */
8
18
  apiEndpoint: PropTypes.string,
9
19
  };
10
20
  export function SaveLoadSection({ pageData, onLoad, apiEndpoint = '/api/pagebuilder' }) {
@@ -1 +1 @@
1
- pxl:v1:f137cd9910c1845e60779ee1:40e9d679351a8e443af6934ef5c886a7:6f74f57915504ddf50fa5541cd3170b0e6b3f7d6eba7c867d45c74f999ff14199e4bc43273ffd14afe56bb6e47bd33ac3f02d961e745a3c43206e1e50afd34baf4381bd2fa16d5583db56955b033fd701d89ea55891b3b99420529d6cba88fbee1028effa2670071a9a7251fc3a46ec89f0e620ed7f1579564c9ddf4b4be42de9a5c29ec8c1791d03beae59f1689dbc71b9c772f7777d6595f16bed4c534ac9f71e43db93945473d680fa9f1913fa4975ec6697c4c4ec75122166dfad4312a26a29c5c209c24290f9a231fd55b3a52e97a69d8fc8a3b2a8f3441729c775d7ec637a7b78d493e80de51e40545f698dc357fc84b64fffa40e58ef1b87b873b9d81cab6ddaddde0e8ff1cea3d42c08183197ab296514d10e39675b98a0cb77c000d7f4369b5581e527d3eaac9a30846149d326b7bf796575511d59897ce518742243342e7cdd74030cc53ba2618620cb8459c34775fb8e033e34af13d54f86ccbee41d920d401262a50f8c364bd474a5f6064c19a5ba1cd2f05579e09bede8aafccd5b4667ff5601c750154361cd4888b6976c57b1b70362b42486ba316d3d0012fc339931c5fa675ec2a2dc426d0d061ae72f9a9bd4e51803072fd68c3ce696b2b7e6ee88d0962cc96a7633b332c0216f064c5a41335e8eb06179215c55e50efadefa4b82b88d30eebdbe002ff8bf9cfb7b43c0464d25cd9818fbceffb510830c611c8fc995fc15ab7ccd4a64f315608de512ad5ae7bdafcdac7534f29c3d0c9ca84efda9dd499ff29300164416ce9dbad92843feed5b6542c4cdac31b304fcf4fb1b47ebc176483f06c472d31ad7a5f0a8f685283c003049d4f0d79c116c378ea45c0d6d508634d8c478b67ac3b635753eed230a31e201dfde794bcac94719eda799bef296bf45bdf02df543fc446ba0c21401c5233ef06d3015048f9593d82ffb2efc552d0b5f4bc43e4eb5f5b63d3d246a5c3cbd243c070b709900eb8765dac652f82f247fc08a1bcd3285cec825092823dd7a0808ad98e8e784bbfe661c585d1d9b155c243b835bb2d7537273c0cc5391814d6fb7191ed61361c459938c4e94c67567f35af45549a26d4f66735ab4c33951440019f6255638a0550f315a0646f08455ebab6285b27e6b6f4dc35bcb8593746a835ba974c1e97d22b89a6f3ec381333b8d837bf736044096fffff71d5f46cae0087e62b85d0f5487234e75861aaead50467fb2937adc8e87f80abd14fba348ca1abd781391e42786817d9c8fad10eb3eabccfa8caa66da1a97a867314858bb1888f31729032dbe04ec29f74941420dab94fa9601817274cf448c6f60a29856c0d6bead4a8ee49fb5bfdb7aea2507df5244c7a33c1825b36698b9dce47ef27978824eb8a40ad1810731af5e59694e7f20a3dfab5224e2dbf28946b686d067e57434d6d1929e834083ef9e2c31630c6d16cc7ebdf1528a088b445bf7dda1e99450dcaf2cd3098509f79fe342aeb641616aafa0ec0c76d98f77a05e30eac31c03af1ab03c4d11614d0fcff839c78ddaba90ef57b9fc26c8504e983b89d49947c553200f78761cdf81137bab582604102f461f1b8cbfab046a041b6d7c31c19bbc56d8e700b8d7bd174d0b13dae6d10f5d18d3e9be7830928fd2c9b3b8820b17e13098688af9e0a95a740e1990018fde07666d3afb08e4d0b7a31347160c5c7f6522e928e3faab283f8e09a5202e3b46c659a933e088996b74627947a73c243609e6b83f09dbc7e9240dccc4e1611a90157f7fc57c29eca02346b95abbca18140524810c15648b825e56356a788cad13ec5cd58b711905eaeaf46f6ea4801ca5767688e38b5ae72f1d78846f5e3092f0f20953b78c6aa170910ba11e5c4598d26c72c2162eff8c72c88d21fb3d298b839dcb19a6ab7dc00f72d3063f2d14c6db5b17b947b412a614a48945c26651f450819a5553b8bfa4e05a60f0643f24bd8f6af2276ff525974d8f0a2a5cbdfd9f1a8acfd7e65247b36409a8eae0e4ba692bbbd3741d91ebaf038ac7a83370ab92559636f19a0a30a4a7f5b8400ca7667087fad32f9193a71c4b8e251b7fd0a7236ba15fed5c615f48b05c731cc813bcf5c9084b46f2b98b73403fd216cc7d5ed1e257280928d988ba4f6a7caaa24e85d8a91ce04cfab67074d6f932cfd7516a68487a4b87ec0562bf751c957679f9db7131c5d196dcf45bdab2a703abf36684731cc6b21f5d4fcbc41e87152713fd3ae3b2c05df87b56962a70e6b2a74ce1c6fc5a7494c3e8ba7df8265a6d30208ced926866c0d4817dc73919bd3c593cc465d58db9e2b1e236b2324c5cfe0e5b7715b86f7614866d5d57ff087dc4ab98173ef6e0dc6d63e20e6eb9fa14a9a486c82674801d548f343727f6fbb750cbdd0ddd209b66d57f7e90c095711aec08e2726b1f2b4424eed4b5eae98eae0e699ed3d2241509f9f91be55ba4ba00e749e5dd38182eb14186ccb971468923174307a5c27163309d1485ca41c9efb43be7fea00e79e527de999bcd08fdb3880f7cedabd7ec4eb10cc08545113a5b072e92ed9b117e39c37a6250945ced7fe8b185698c1634fe1926b84476a2681e2313f3854fd386c83cf626d8f1dd4618377c057895faaad7a752a7cc4c9a00134590561318ea3bbe927aac53db4f8b4b16a96ee8cd0d14f020b5507698ec38873079eb3e4183c2fe2f515ff53e12260c53d64fd5baf1539fa8e42086e1e1b2d9c71979cc3a696444c0f9331241bfacf0e2b662b7d304501a8a08dcab08aff5c2bc01eb86fcf33ad3509418bd9b9ee9c0d2090b8564ba2d94939b3ab81b3f970c79f7a96f5d700bc6da1ea1708557571d9dc31264b25007892a60121517be78f67b58b8a5c0f8192e01414e51a58b238eae33f5b89b5c133a2dea6c1d680a7610c413e3957367db85a5a7d462b479bf0ad36f3cf3121cbe4b33980f905971ba4f99e5c9f9b1ee586ed4845766d13099c64c8b4076ec990da4a7698df6f8247c4026036c560d1390c15c81e6c92894d65da4c7a1a1e5d0a97445ceddca9a40d4158a3b3fe19fc83eec97bd4931a24db79716a3545c83221e797581634ec563cfecdcc86e1285c687bf22db55ba18b2336078cc8926bedd2c703f91da4bcec61311c69e9e8ede3e419eab17b71175cdb8c140901c0f08d496c91956bc7ee52efa28a60f46225e883200266a72df1a1ab2b29bac0a80153e16bb6aba7455328c98dfc20852e22632ca72e7463d40ec62cd2a35f4e37c771f8ce8baf2a5ac8a96e835eca8f9f608a5055f5001f5e5ff812b9ca437bcc5d0fbd352ba143787e32b1cf7595c45d309d9ebd3fcb38eaad4b2420be02c84712d7b4795d6a48b59e911ac18004498e0b2c8aaf5797d912b7219f5339b5a452e35206f394bb2856765b4ae87ff5bff84eeff5ae93092d473f7203a1d2d0e302be676afb416721427055f252b32f94f0dfe5cef546c3ee26e64bce651f827f7df4527c73e63803ccbf08dbe0f73b7ea0ec475a7818a8ca508bdd62f44eb3b05301eb2fa7551e8e006caddb934dc0bd21326840e3e393f16c7af48ed4313d2c98e1e40379bee95671d0804567db426ed3274172cc67227da35d6bd3fe8eb51e3bfa4c7658724db2dd0be6f9ffbd6f981c6dcff96fac311f1a6284e4c6aa4f8a6a7d9cc0d8b94b1f8b2c5e8e2d7ce12a0bf19d85409150d341cca7c7c67ab09ae70f6be8613daa2a37fd332aa010c38968fc6d5d0661b991dbd6952894c476c7ff94fe53ac089f42b1cb3a35e2f64eac918e3f64303ce964055ee290efa99cdfbb8d835b157b79b0f0e7c8ac971bd771552c19fde00d972d36658e6c49ee5a8a0c0faab9a00743ccec21fc9ee83e0faa8c8e62d44f924cc308b38324b0a6c4368c5f4f7311fec7b56ad207b057790819eff0b3f257391193a3cf02c3a64e602ecca7c09d3063ef64f36c859ab9cfe067644e6994c2bb0a4256b59868672c8d25d982fcdde837be4342ae5d14e93258121ccc1b9ea09d805e371a8924eac5ec1ba80b920bc5c9955c9f5d4b430496e986269df1add3073883c9ab3cf2a879140d07c1732bfcc69eab559c9b3e322ec9a7831df0e3a98e2415125c9b7ddead5c511508ad7cb7424a542b8090a0bfd375c15ff74cc0c3b67d475c93ab3dae5ea1a95b79a7e193a8b1d5daec5801c03586b6601739c5021e26c6d794923a874d30d95afbda63b53fcabfc0ee84cc561f4f26e005622803588700ba1874c0bb5671b1afff1316c574c7ec18c684dc0d3b19f48487fd228d22ad65e0713064a2c460a7a4aacc527ab7bd9e970bc8cd1081ad790fc832a24ad2be6751df118eb63070be35bb6e90b4e0d77ed8df64df6b8969b7a3d2494188664859288331fe5ab8ed0a57b5f31edf2d36e0b29d378edfb03ee7dd5f34836ebca52fa6475e4a768f601d280e4405a95b36047c949c773230cad57483fe0179d1f043189ccccaf09285125e22bd3469a3cdfe2415e5e85166972a7f0e1af6f186f674ca83881fc056fcedeebdd10c945aec415df868ef5ddde2079bbf7d2dd475ee9acaef2a451e072744106bc77816470a4b0be192dc5838a609865446beccfb199987c9c6075462ee7e0b19c363373d3fd7eb4bd41fcbcd675688638756c5048a728da5d445b6ca3ee8bdd955f907113b49520462e58b0e19f71fecd0268130b66e4fefc06fe91dedbad5e4dbb372df38a64831762db0af416f7387e42c95017e4c81b0ffc6866133004fe246cc2d258fe248eec407d9da50641e7ac2d4a7011d8a0bcd1956dad17d5c1a82dea06d2fb60a758b4667a5406f4ef9d1e09ead1461440ebccae7d018b7ee3645c774410ca1e756f1a58ce92c40725d4728ef86075018e3fbed6498b1aea0523ccfe17fe085ce8e7592801298c5497709944e9e50de07acf1bbea8ca557c0f37871d1486e7854a8aadc24e88da93e39ddd0df6846aef069eefcb5bcfd69d94bb2cd1fc1931672ccd480034813019f84746036c3f1787103ef64f0e9f4742f282fce9da08498b1da936011f2df5a72769a246a67b015d632ce7f074196a61a2d9d621ffa81b8b86e5a5c98f5a7821d7c6c3501bf5b68aa3c9d26975c6aae119d83c46ac636f7fd53edf5a2248d4fdff95fec94613450bc4096b9fc9c8488a60013a18e676fabc6520c8367f6fc40c4
1
+ pxl:v1:4cafcdfc486273b5291aa952:a56d5142b18338e2a3419627c0fc4d80:bd4ba14fbe5adcc35537a30c250c48bd82adf8cb6b602fc645da59e39daf913952c2c091d10624182b38166dc88e28e1be616f7a2a6106e0a72329cf12ca1527a1837ec50a556bff7d9d93fe416978950f5270ac26f8eb36d833f185e0ef9282c735a5d84f65a8eaf7c7b95a38206998952b77204d82417d380c28dad7ac8802c6b8a68025c44b6d8402761df93273dfab5a5b6051d52d267bfef6a353b7c1a3bce8ba3e6e4ca1d6195537fef7b74cf4d631f65fdb1702019e531c16513309885bdb0bf99a9acd2cf8a8ab84c8cbbeb2c20bc0653f2da6a465e4eaed11ed7b59e75a7d7e735fa6bede92115646382c7f238684c08fb8beea0a4c215f005f47cbdc9041f1dee79b625495ba4e5cc693c3988b9122c46bd1ca65363d65b30b0ee99b05af6b3c653597dac3f1d1db5c9fbb3ccd53a3c432913211e10d5cec4338e0b48b8380f2be0f3e34aff764d334d334926b6d97192b12b768642a55d3d8af298672717f89e198952deb50282f1ef55c2a4cd7c34d1eabe92df783e1b0a39bcdf5977b8668f62b0b10aaf4c08efd80172e5f07272464d47bc3ed326974cc45ce295c4eb1c099450b14938493a7220231eebc6a26e8abba4bbe1e3e4b937e3220abeca0d5ba9ab9f9cea409914f812ee780b1aaa919bb6160e9372a422d4174a18fa07da05543e3d407f9cc5c14f2bf12b1c4c1e73d9cd31039eaa42bbc41c07646c5be721d1f07eb29a6005a28eafeef43c2b7ccfaddf3db498a7b8429df75772826935db24ac0f3f9c586087e92080bfca691b98273824c51347415c84a82f681d91a38d6ab1bbc7ab65e1661633c2b5b7f768bf3145bf498fa443008b17ae7025b39a4b45898e3781d0bbfcd57670e07b4e67d2b6e14b970c0d82c48fc07b76254e6c68008131159b69eb6a90d29fb818fe5cd1bbbb38c927abbed03e9101cd8aa4ff62c051497df91c11d6b7770e8788c241e6f8046226596fcdb79022bdb68926f4adf567d3c9ddf462b57c30154f9c9cde588377819db6be4b8436a1b78ba10b08e795aae4f21593c083f7fa3d0dc8992c66ba5ea4933a5e8ec24421a2f33e334957eed81de8dfddce307b464fbc37c9053b83d8a499937fa6b6a32559c62e0cdd35a41e0d9442b857a050fb56922d52ceeda1ba9c2ab96c2cfb54dd014ad6ade298ade7be8e2eda1c809e429a4a4ea296bbb5d9b475f0c51f4ce2982d54ed5ea1c13b193a89a2a9cacab91ccff98c74312a057e5ba911796e7b14f0d0ac8506eb9c958ee7fec575984394b9920cbf1a21f77a02f518f03a5cf950dfcc000adff9757ddfb447377464912eacbcd8f5be50b3944c01062aa01c5c1b36198f7b8c75f53cf754c896e73cd1a0a8102fabb1e10815faafd556705c219c081a6e6e1803639789cadad8e24f6d3ed5b519936eecc806e8d0a793a761b2aeba0b0fe4fe216d7fb18fe716320348c717356306570bd6b6070e59111236171ce49e17c4f3953ac856b172887d0fcbc88d3633bfb69925c0029bfcfd73551667f2017ed274e4c86d7ec6673346965368e47e1b71b4775a8a03aefd99c15d5ae484eeae9dc5ced38e40deae11eff719928347535d661ea2923d0ff7100729d09e1af25522719b3ef4bbbb8765015a733c8e2f1410f99807eec19f8dfd6db414de4b3910ec4475fd7005bdffba9965070beaad022b05980e661e4cf1bcdecb7f0ba654e706ca01bbeb1368b8402f14ae93818d76d35b80b28a32157fc12d12b3e053650d13a74c405ab1dbe5e940ea9e5c7b22143528007db5fef88758b5cd03e219318bb787d61ffef11d09c674c05d594671a3e86ed4fddadd609f02999bb02a57b26b05607895f1ec5e4eb03c98da499b9acfd357ca2497c440800b8e5fb8b2f9b54490f6a77f582ff69602e5dad99f46c556aadfe66d9df2fda8cbd887f31082ba9daa18774eaf7b28048ed0cddaf2f5c73f65b4cdaefa7d1c0e93ecfec983bb07a9aa3bd62ce4f387bd2947ecced921f43523559b0e847c3e0d88ce55cecdc2b1eb17a2d2de24e3817e0ab77f1b463106d51c9aaa05bbb4d52b9d89649fca7bc8545451a241d64ff141697c22aaa67b54de79eee22987ae2673b6e82f92360a1fca99ff122ccdb64597632a742b97592a8c0136f6c3aeaaec49db657d66dbdee72d711e716718122b527b88a242f2481fcb97a3403d54d85c3c42bb4a14b7bb785f4f2db48ec38a1721789e03e2f75bf9d8ad5134f5afeaa802a8c61166b75d7e1b96a928fb3f20d963f4235bae1bb8553453cdbf1c27fbcfb913566565595c8bf7a16d0aba8d5be63e08e79505191151da3eb8328bf6687c351e27e1f61621e3eaaa7784c4fd55fb62e9d33804328c59e749af71bc3248e17762e9095e6192a39e1afda1e07fe2f6b05d457e7ce7b0cecdeaf087efa61e2c4ed4cde9f46692d7719305dba811080ec56d35e6207e3a3796aabe02c89c8b1d7c749cbff0292f555a18e4fbbd5457e1c2aa4f9c63987fea066d37f0c3bd642914f0030bc72bcec5fbaf9d445b9a36b5638cc1af5dffd9dc8cd395f92a2d5b44c4d261bc2fe1bd1fff5d9e60f58c99d20a57be20c081ec1d37ea7f5a7017459cb68e27aad952c3d3b6a4b10b34cac652a12fdc293c3c5d626a87f9c4f65eb89a1c01db3c8f340ff0e5bbbed5fb2453d934821847b7cedd83b8e7761a427fc167f501880cb3402daf3156247e9b237bb0c2a37ced4516102897e6e9ac939d797cf8e35efac71ab6e93100d35450822e0bd17dbd5077cb278958d2202c8a5536b079e95884d2072f72d6ca20a6af87f276863f47e729c886e1340a8274263c099329cf2b663ccb86a41c4c0eb32dc0d0d700832dc51af47adb36b15eb7976caceb128ffb3a46411878dac1f281e878a32df401c1b8f7efb77f77d8124b1a2dc11cbb3e7bf31d1076773d13ad6e5d878fe9d95b36814623200eb229ba307ae8dc2aebedcbc624351e9d23fc7e1e0e90b458ea1993122a2b3d3160a62f860a45d08e54b61129aa6d8b98137163e9096fb4da1f58c9c845ba6e4386672cb868c41686d2a1897b0fb0f6a0c337b23d62184200251298072dabae257a8d67e9123b8fab4eaba775ce65b1526b157c6775f7505315f68219fa099c91161db70b153f303134903a6e1fec9525c01c1be44589e9fa95a57c2c8def7cc0a9d8f971e26526c62bb95927f2f7c96d443c0008229af21f2efcb5a9eb9e0051bbddc6e143430ac02a35ab899f2ef1b81db3aa86143b3dc1b42b426dcfb70065d3b265a5984864ae5515ae2250b0d96a38cd548fed9684a02c6227ec5fe37e1fc710961b87dd50ce01d8858eeefc7734f98bf2669572a5dc0b98210400cdb84b5f5c95d5dfc2e2988f8886c340ddc5f0d22325473af8ab2c7a9ab3ad0e8a74b855381edf66d9f6a516df51af3e7ea07a482c488e0b7b08f4b1be0d9840b35e3043336792cf69c068fa8044e76b5a3b05c4b879de2830ff2f0628f566850ec11c0095bd7fbe9f6de449a3087f809c3fa1a12d9ad307e80904778b645b26ae26a0d168b1153aca36f427fea1c22be0d464ef6a7f924595231fcda031bd791020b4348bbd0a735147f99cf95f6d0013dff3c9a827d62d581fccd998c103e6f99ae4be7cb24d5ebf05cb534a403a112eba587dbac95ef981d5745dd23b4551b3a7a71e1ea896c43c4bcc567ec06917548c87d82f6ba6a3e0722eab1a975033a5bce6abd7fa28b815c84601ca2b2ead6d0fce2562252b0dfb1def66afc9c4e3a8f0569b5a3e7e21f6b4690ab538d4e1a30a47417859f596c1f240625d05aa3314027c4a46e1c7c333ca010e69631a5e6edd45d013edde553dab4333fff66a3c79bd683337e74bea1ba0c851d3c200f9aba5ce0876713639ba2cb17c2cc754e8b3f5140691b3663a00ee94869a16191fbe8e1955a2050364abe90939321ce14cabf2e58611474cd2d59fd6f92705a8f50348297edafd798ccb010713c940dad5fb40bcd15b7ea2950a3def71b0998b9383cb85d04bea7b4b14b6e518931f5e33191e1cfb028049d4353eca1b2abae38fe6f7df3da6a0b3503b092a4b8adb2775f453a3f7b4349dea4220077db5f5370aa7479eb7298d831794518ca721fc62babd8e6b4dfb577e9f72b1a3da9542bc8ba6f27fb5140f495d7678ed14883d7fc6c68ff1b4de9f059f5ee049cf50568e679c6f1a34f1edb77fa6f7e6c2cd63482a3d1e3a3b16d00f1d0edb8c72afbcbcebeb80c13c7a6fd5d9cfc1ec521df9529a1e0c4a3b6e044bdf56741b397cf49fd40dc741f24cbb60c7fad2cfdf4e9094aa18b254f54aff303ce8a0dee2e092e55517bc9776339fd8a3f6fdb82002fb9433eb9972df58a9c44666c7eae475a27a6717b0e40ab3e79f5721b3a75d5008a1c483096a6fac0087d3e00628a2e6b0a6ab4325b831547adcd2a7cf7827ae0abc647fd4e2404b3f65a714bf370b0ae9f6f7fc2a6de136258763a3760cba08f7522bf09306cb5ed8028c71a7feb00b2133bd6b3ab21a5118ccd349d503ca0097856ce40543b14e0af2d5f07c0998cb68bbcc21177cdb86d137ff33e67cfabea51c9dfe6e396d7b3368e3ed2392e72160a88c9cf3a8effdb20c51672c74639abad7a441e3714f0ae3bcb52390981c71c9e4d68b6b025b7d9212993e294762589f6707deb30a43e12b2457789024545c0a8ccecdd0764bedb73d6b50aaef3d661d7cc186c9975907da701c4ad5641f59c404cd5553d87200c2ddcbab819f8ad99802eba8f0861df135d4d017a17c5be09be0c062a0d25f008d0f0f336f7afca592135903e72c1a9c3237affae7fa718b9b9efd114cacb8650fa669569dcf03274bae6f0621deb3c26441fb665723543054b587aa6a5a802642a46681ad40ba7823e6292e193ff4d7cddf18028fa883fba7d050797d5c5250666869bbd528bcce34aaf8e479c3e72e12c54a92ec6c4f82902de30b0560b4877a8ffdc62b90bea531cbfbb0e496e9b392113bd667b615674a645dbf27f3d4dd590549745886d9f9a63c5e93daea20fc6742aab62bceff1401e36b8953860271b17d494f661a5ca7b8463d05a84870b85bdbd9b9a04e8d09cf18da76902cd8e51e4c14012e7807d68a53a60c053a23cee570e93ec50cfc00619dcdc132f842cfdf17b0f9bb79979f7e5f7
package/dist/index.js CHANGED
@@ -51,6 +51,7 @@ export * from './components/general/tiles';
51
51
  export * from './components/general/timeline';
52
52
  export * from './components/integrations/calendly';
53
53
  export * from './components/integrations/cloudinary';
54
+ export * from './components/integrations/lipsum';
54
55
  export * from './components/integrations/loremipsum';
55
56
  export * from './components/integrations/contentful.delivery';
56
57
  export * from './components/integrations/contentful.items.components';
@@ -33,6 +33,7 @@ export * from './components/integrations/googlemap';
33
33
  export * from './components/integrations/google.reviews.functions';
34
34
  export * from './components/integrations/gravatar.functions';
35
35
  export * from './components/integrations/instagram.functions';
36
+ export * from './components/integrations/lipsum';
36
37
  export * from './components/integrations/wordpress.functions';
37
38
  export * from './components/shoppingcart/ebay.functions';
38
39
  export * from './components/sitebuilder/config/ConfigEngine';
@@ -294,6 +294,60 @@ const requiredSchemasRule = {
294
294
  },
295
295
  };
296
296
 
297
+ /* ===== RULE: prop-types-jsdoc ===== */
298
+ const propTypesJsdocRule = {
299
+ meta: {
300
+ type: 'suggestion',
301
+ docs: {
302
+ description: 'Require JSDoc for components using PropTypes (either a JSDoc block above propTypes or inline comments for props)',
303
+ category: 'Documentation',
304
+ recommended: true,
305
+ },
306
+ messages: {
307
+ missingJsDoc: 'Component "{{componentName}}" propTypes should have a JSDoc comment above propTypes or inline per-prop comments.',
308
+ },
309
+ schema: [],
310
+ },
311
+ create(context) {
312
+ return {
313
+ AssignmentExpression(node) {
314
+ if (
315
+ node.left &&
316
+ node.left.type === 'MemberExpression' &&
317
+ node.left.property &&
318
+ node.left.property.name === 'propTypes'
319
+ ) {
320
+ const componentName = node.left.object.name;
321
+ const sourceCode = context.getSourceCode();
322
+ const fileContent = sourceCode.text;
323
+ // Only enforce for client components (match prop-types-inferprops behavior)
324
+ if (!isClientComponent(fileContent)) return;
325
+
326
+ // Check for JSDoc block immediately above propTypes
327
+ const comments = sourceCode.getCommentsBefore(node);
328
+ const hasJSDoc = comments.some(c => c.type === 'Block' && c.value.startsWith('*') && c.value.includes('@param'));
329
+
330
+ // Check for inline per-prop comments
331
+ let hasInline = false;
332
+ if (node.right && node.right.properties) {
333
+ for (const prop of node.right.properties) {
334
+ const pc = sourceCode.getCommentsBefore(prop);
335
+ if (pc && pc.length > 0) {
336
+ hasInline = true;
337
+ break;
338
+ }
339
+ }
340
+ }
341
+
342
+ if (!hasJSDoc && !hasInline) {
343
+ context.report({ node, messageId: 'missingJsDoc', data: { componentName } });
344
+ }
345
+ }
346
+ },
347
+ };
348
+ },
349
+ };
350
+
297
351
  const requiredFilesRule = {
298
352
  meta: {
299
353
  type: 'suggestion',
@@ -814,6 +868,7 @@ export default {
814
868
  'validate-test-locations': validateTestLocationsRule,
815
869
  'no-process-env': noProcessEnvRule,
816
870
  'no-debug-true': noDebugTrueRule,
871
+ 'required-proptypes-jsdoc': propTypesJsdocRule,
817
872
  'file-name-kebab-case': fileNameKebabCaseRule,
818
873
  'no-duplicate-export-names': noDuplicateExportNamesRule,
819
874
  },
@@ -830,6 +885,7 @@ export default {
830
885
  'pixelated/no-process-env': ['error', { allowed: ALLOWED_ENV_VARS } ],
831
886
  'pixelated/no-debug-true': 'warn',
832
887
  'pixelated/file-name-kebab-case': 'off',
888
+ 'pixelated/required-proptypes-jsdoc': 'warn',
833
889
  'pixelated/no-duplicate-export-names': 'warn',
834
890
  },
835
891
  },
@@ -338,18 +338,14 @@ if ! git push $REMOTE_NAME dev; then
338
338
  fi
339
339
 
340
340
 
341
-
342
341
  echo ""
342
+ echo "🔄 Step $((STEP_COUNT++)): Updating main branch..."
343
+ echo "================================================="
343
344
  if [ "$RELEASE_MODE" = "dev-only" ]; then
344
- echo "🔕 Step $((STEP_COUNT++)): Skipping main update (RELEASE_MODE=dev-only)."
345
- echo "================================================="
345
+ echo " 🔕 Skipping main update (RELEASE_MODE=dev-only)."
346
346
  else
347
- echo ""
348
- echo "🔄 Step $((STEP_COUNT++)): Updating main branch..."
349
- echo "================================================="
350
347
  # Force main to match dev exactly
351
348
  git push $REMOTE_NAME dev:main --force
352
-
353
349
  # Also update main locally if it exists
354
350
  if git show-ref --verify --quiet refs/heads/main; then
355
351
  git branch -D main 2>/dev/null || true
@@ -363,13 +359,11 @@ fi
363
359
 
364
360
 
365
361
  echo ""
362
+ echo "🏷️ Step $((STEP_COUNT++)): Creating and pushing git tag and release..."
363
+ echo "================================================="
366
364
  if [ "$RELEASE_MODE" = "dev-only" ]; then
367
- echo "🔕 Step $((STEP_COUNT++)): Skipping tag/release creation (RELEASE_MODE=dev-only)."
368
- echo "================================================="
365
+ echo " 🔕 Skipping tag/release creation (RELEASE_MODE=dev-only)."
369
366
  else
370
- echo ""
371
- echo "🏷️ Step $((STEP_COUNT++)): Creating and pushing git tag and release..."
372
- echo "================================================="
373
367
  new_version=$(get_current_version)
374
368
  release_tag="v${new_version}"
375
369
  # Use commit message as tag/release message when available, otherwise default
@@ -386,15 +380,13 @@ fi
386
380
 
387
381
 
388
382
  # Create a published GitHub release for this tag (prefer gh CLI, fallback to API)
383
+ echo ""
384
+ echo "📣 Step $((STEP_COUNT++)): Creating GitHub release..."
385
+ echo "================================================="
389
386
  if [ "$RELEASE_MODE" = "dev-only" ]; then
390
- echo "🔕 Skipping GitHub release creation (RELEASE_MODE=dev-only)."
391
- echo "================================================="
387
+ echo " 🔕 Skipping GitHub release creation (RELEASE_MODE=dev-only)."
392
388
  else
393
- echo ""
394
- echo "📣 Step $((STEP_COUNT++)): Creating GitHub release..."
395
- echo "================================================="
396
389
  REMOTE_URL=$(git remote get-url $REMOTE_NAME 2>/dev/null || true)
397
-
398
390
  # Use GitHub API only (no gh CLI). Ensure GITHUB_TOKEN is present
399
391
  if [ -z "$GITHUB_TOKEN" ]; then
400
392
  echo "⚠️ GITHUB_TOKEN not set; skipping GitHub release creation via API"
@@ -411,7 +403,6 @@ else
411
403
  # Diagnostic: show remote and derived repo path (non-secret)
412
404
  echo "Remote URL: $REMOTE_URL"
413
405
  echo "Derived repo_path: $repo_path"
414
-
415
406
  # Quick access check to see if token and repo path are valid
416
407
  access_resp=$(curl -s -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/$repo_path")
417
408
  if echo "$access_resp" | grep -q '"full_name"'; then
@@ -422,7 +413,6 @@ else
422
413
  # Do not attempt to create a release if the repo isn't accessible
423
414
  exit 1
424
415
  fi
425
-
426
416
  if curl -s -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/$repo_path/releases/tags/$release_tag" | grep -q '"tag_name"'; then
427
417
  echo "ℹ️ Release for $release_tag already exists on GitHub (API)."
428
418
  else
@@ -439,12 +429,13 @@ else
439
429
  fi
440
430
  fi
441
431
 
432
+
433
+
442
434
  echo ""
443
435
  echo "🔐 Step $((STEP_COUNT++)): Publishing to npm..."
444
436
  echo "================================================="
445
437
  if [ "$RELEASE_MODE" = "dev-only" ]; then
446
438
  echo "🔕 Skipping npm publish (RELEASE_MODE=dev-only)."
447
- echo "You can publish manually with: npm publish --access public"
448
439
  else
449
440
  # Function to prompt for publishing
450
441
  prompt_publish() {
@@ -3,6 +3,7 @@ export type SiteHealthAccessibilityType = InferProps<typeof SiteHealthAccessibil
3
3
  export declare function SiteHealthAccessibility({ siteName }: SiteHealthAccessibilityType): import("react/jsx-runtime").JSX.Element;
4
4
  export declare namespace SiteHealthAccessibility {
5
5
  var propTypes: {
6
+ /** Site identifier used to fetch accessibility data */
6
7
  siteName: PropTypes.Validator<string>;
7
8
  };
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-accessibility.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-accessibility.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASnD,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC/F,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,2BAA2B,2CA8IhF;yBA9Ie,uBAAuB"}
1
+ {"version":3,"file":"site-health-accessibility.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-accessibility.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC/F,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,2BAA2B,2CA8IhF;yBA9Ie,uBAAuB;;QAJvC,uDAAuD"}
@@ -3,6 +3,7 @@ export type SiteHealthAxeCoreType = InferProps<typeof SiteHealthAxeCore.propType
3
3
  export declare function SiteHealthAxeCore({ siteName }: SiteHealthAxeCoreType): import("react/jsx-runtime").JSX.Element;
4
4
  export declare namespace SiteHealthAxeCore {
5
5
  var propTypes: {
6
+ /** Site identifier used to fetch axe-core data */
6
7
  siteName: PropTypes.Validator<string>;
7
8
  };
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-axe-core.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-axe-core.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWnD,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACnF,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,2CAiSpE;yBAjSe,iBAAiB"}
1
+ {"version":3,"file":"site-health-axe-core.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-axe-core.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBnD,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACnF,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,2CAiSpE;yBAjSe,iBAAiB;;QAJjC,kDAAkD"}
@@ -3,8 +3,11 @@ export type SiteHealthCloudwatchType = InferProps<typeof SiteHealthCloudwatch.pr
3
3
  export declare function SiteHealthCloudwatch({ siteName, startDate, endDate }: SiteHealthCloudwatchType): import("react/jsx-runtime").JSX.Element;
4
4
  export declare namespace SiteHealthCloudwatch {
5
5
  var propTypes: {
6
+ /** Site identifier used to fetch CloudWatch metrics */
6
7
  siteName: PropTypes.Validator<string>;
8
+ /** ISO start date for the metrics range (optional) */
7
9
  startDate: PropTypes.Requireable<string>;
10
+ /** ISO end date for the metrics range (optional) */
8
11
  endDate: PropTypes.Requireable<string>;
9
12
  };
10
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-cloudwatch.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-cloudwatch.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBnD,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACzF,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,wBAAwB,2CAqH9F;yBArHe,oBAAoB"}
1
+ {"version":3,"file":"site-health-cloudwatch.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-cloudwatch.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2BnD,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACzF,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,wBAAwB,2CAqH9F;yBArHe,oBAAoB;;QARpC,uDAAuD;;QAEtD,sDAAsD;;QAEtD,oDAAoD"}
@@ -3,6 +3,7 @@ export type SiteHealthDependencyVulnerabilitiesType = InferProps<typeof SiteHeal
3
3
  export declare function SiteHealthDependencyVulnerabilities({ siteName }: SiteHealthDependencyVulnerabilitiesType): import("react/jsx-runtime").JSX.Element;
4
4
  export declare namespace SiteHealthDependencyVulnerabilities {
5
5
  var propTypes: {
6
+ /** Site identifier used to fetch dependency vulnerability reports */
6
7
  siteName: PropTypes.Validator<string>;
7
8
  };
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-dependency-vulnerabilities.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-dependency-vulnerabilities.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAOnD,MAAM,MAAM,uCAAuC,GAAG,UAAU,CAAC,OAAO,mCAAmC,CAAC,SAAS,CAAC,CAAC;AACvH,wBAAgB,mCAAmC,CAAC,EAAE,QAAQ,EAAE,EAAE,uCAAuC,2CA+IxG;yBA/Ie,mCAAmC"}
1
+ {"version":3,"file":"site-health-dependency-vulnerabilities.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-dependency-vulnerabilities.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAanD,MAAM,MAAM,uCAAuC,GAAG,UAAU,CAAC,OAAO,mCAAmC,CAAC,SAAS,CAAC,CAAC;AACvH,wBAAgB,mCAAmC,CAAC,EAAE,QAAQ,EAAE,EAAE,uCAAuC,2CA+IxG;yBA/Ie,mCAAmC;;QAJnD,qEAAqE"}
@@ -3,8 +3,11 @@ export type SiteHealthGitType = InferProps<typeof SiteHealthGit.propTypes>;
3
3
  export declare function SiteHealthGit({ siteName, startDate, endDate }: SiteHealthGitType): import("react/jsx-runtime").JSX.Element;
4
4
  export declare namespace SiteHealthGit {
5
5
  var propTypes: {
6
+ /** Site identifier used to fetch Git activity */
6
7
  siteName: PropTypes.Validator<string>;
8
+ /** ISO start date to filter commits (optional) */
7
9
  startDate: PropTypes.Requireable<string>;
10
+ /** ISO end date to filter commits (optional) */
8
11
  endDate: PropTypes.Requireable<string>;
9
12
  };
10
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-github.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-github.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAUnD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3E,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CAyDhF;yBAzDe,aAAa"}
1
+ {"version":3,"file":"site-health-github.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-github.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAoBnD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3E,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CAyDhF;yBAzDe,aAAa;;QAR7B,iDAAiD;;QAEhD,kDAAkD;;QAElD,gDAAgD"}
@@ -3,8 +3,11 @@ export type SiteHealthGoogleAnalyticsType = InferProps<typeof SiteHealthGoogleAn
3
3
  export declare function SiteHealthGoogleAnalytics({ siteName, startDate, endDate }: SiteHealthGoogleAnalyticsType): import("react/jsx-runtime").JSX.Element;
4
4
  export declare namespace SiteHealthGoogleAnalytics {
5
5
  var propTypes: {
6
+ /** Site identifier used to fetch analytics metrics */
6
7
  siteName: PropTypes.Validator<string>;
8
+ /** ISO start date for the metrics range (optional) */
7
9
  startDate: PropTypes.Requireable<string>;
10
+ /** ISO end date for the metrics range (optional) */
8
11
  endDate: PropTypes.Requireable<string>;
9
12
  };
10
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-google-analytics.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-google-analytics.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,MAAM,6BAA6B,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;AACnG,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,6BAA6B,2CAoGxG;yBApGe,yBAAyB"}
1
+ {"version":3,"file":"site-health-google-analytics.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-google-analytics.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAyBnD,MAAM,MAAM,6BAA6B,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;AACnG,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,6BAA6B,2CAoGxG;yBApGe,yBAAyB;;QARzC,sDAAsD;;QAErD,sDAAsD;;QAEtD,oDAAoD"}
@@ -3,8 +3,11 @@ export type SiteHealthGoogleSearchConsoleType = InferProps<typeof SiteHealthGoog
3
3
  export declare function SiteHealthGoogleSearchConsole({ siteName, startDate, endDate }: SiteHealthGoogleSearchConsoleType): import("react/jsx-runtime").JSX.Element;
4
4
  export declare namespace SiteHealthGoogleSearchConsole {
5
5
  var propTypes: {
6
+ /** Site identifier used to fetch Search Console metrics */
6
7
  siteName: PropTypes.Validator<string>;
8
+ /** ISO start date for analysis (optional) */
7
9
  startDate: PropTypes.Requireable<string>;
10
+ /** ISO end date for analysis (optional) */
8
11
  endDate: PropTypes.Requireable<string>;
9
12
  };
10
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-google-search-console.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-google-search-console.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBnD,MAAM,MAAM,iCAAiC,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,SAAS,CAAC,CAAC;AAC3G,wBAAgB,6BAA6B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,iCAAiC,2CAkHhH;yBAlHe,6BAA6B"}
1
+ {"version":3,"file":"site-health-google-search-console.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-google-search-console.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2BnD,MAAM,MAAM,iCAAiC,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,SAAS,CAAC,CAAC;AAC3G,wBAAgB,6BAA6B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,iCAAiC,2CAkHhH;yBAlHe,6BAA6B;;QAR7C,2DAA2D;;QAE1D,6CAA6C;;QAE7C,2CAA2C"}
@@ -7,8 +7,16 @@ export interface SiteHealthMockProviderProps {
7
7
  }
8
8
  export declare const SiteHealthMockProvider: {
9
9
  ({ mocks, children }: SiteHealthMockProviderProps): import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * SiteHealthMockProvider — Provider that injects mock site-health data into child components for development and testing.
12
+ *
13
+ * @param {object} [props.mocks] - Map of mock data keyed by site identifier.
14
+ * @param {node} [props.children] - Child nodes that will receive the mock data via context.
15
+ */
10
16
  propTypes: {
17
+ /** Map of mock site-health data */
11
18
  mocks: PropTypes.Validator<object>;
19
+ /** Child nodes that consume mock data */
12
20
  children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
13
21
  };
14
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-mock-context.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-mock-context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,KAAK,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAIrD,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,sBAAsB;0BAAyB,2BAA2B;;;;;CAMtF,CAAC;AAOF,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAE7F,wBAAgB,qBAAqB,IAAI,qBAAqB,GAAG,IAAI,CAEpE"}
1
+ {"version":3,"file":"site-health-mock-context.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-mock-context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,KAAK,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAIrD,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,sBAAsB;0BAAyB,2BAA2B;IAQvF;;;;;OAKG;;QAEH,mCAAmC;;QAElC,yCAAyC;;;CAXzC,CAAC;AAeF,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAE7F,wBAAgB,qBAAqB,IAAI,qBAAqB,GAAG,IAAI,CAEpE"}
@@ -3,6 +3,7 @@ export type SiteHealthOnSiteSEOType = InferProps<typeof SiteHealthOnSiteSEO.prop
3
3
  export declare function SiteHealthOnSiteSEO({ siteName }: SiteHealthOnSiteSEOType): import("react/jsx-runtime").JSX.Element;
4
4
  export declare namespace SiteHealthOnSiteSEO {
5
5
  var propTypes: {
6
+ /** Site identifier used to fetch on-site SEO data */
6
7
  siteName: PropTypes.Validator<string>;
7
8
  };
8
9
  }