@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
@@ -20,7 +20,14 @@ const debug = false;
20
20
  /* ================================================ */
21
21
  /* ========== SHOPPING CART UI COMPONENT ========== */
22
22
  /* ================================================ */
23
+ /**
24
+ * ShoppingCart — page-level shopping cart UI that handles items, shipping, and checkout flows.
25
+ *
26
+ * Props:
27
+ * @param {string} [props.payPalClientID] - Optional PayPal client ID to enable the PayPal checkout button.
28
+ */
23
29
  ShoppingCart.propTypes = {
30
+ /** Optional PayPal client ID to enable PayPal checkout */
24
31
  payPalClientID: PropTypes.string,
25
32
  };
26
33
  export function ShoppingCart(props) {
@@ -120,7 +127,13 @@ export function ShoppingCart(props) {
120
127
  const formObject = Object.fromEntries(formData);
121
128
  setShippingInfo(formObject);
122
129
  }
130
+ /**
131
+ * handleOnApprove — PayPal approval handler invoked after successful payment.
132
+ *
133
+ * @param {object} [props.data] - Payment approval payload returned by PayPal's onApprove.
134
+ */
123
135
  handleOnApprove.propTypes = {
136
+ /** PayPal onApprove payload */
124
137
  data: PropTypes.object.isRequired
125
138
  };
126
139
  function handleOnApprove(props) {
@@ -160,13 +173,31 @@ export function ShoppingCart(props) {
160
173
  return (_jsxs("div", { className: "pixCart", children: [_jsx(CalloutHeader, { title: "Shopping Cart : " }), _jsx("br", {}), _jsx("div", { className: "centered", children: "No items in your shopping cart" }), _jsx("div", { id: "paypal-button-container", className: "paypal-button-container" })] }));
161
174
  }
162
175
  }
176
+ /**
177
+ * ShoppingCartItem — Render a single cart line item showing thumbnail, title, quantity and price.
178
+ *
179
+ * @param {shape} [props.item] - Shopping cart line item with id, title, image, quantity and cost.
180
+ * @param {string} [props.itemID] - Unique identifier for the cart item.
181
+ * @param {string} [props.itemURL] - Optional item detail URL to link the title and image.
182
+ * @param {string} [props.itemTitle] - Display title for the item.
183
+ * @param {string} [props.itemImageURL] - Thumbnail image URL for the item.
184
+ * @param {number} [props.itemQuantity] - Quantity of this line item in the cart.
185
+ * @param {number} [props.itemCost] - Per-item cost (numeric) used to compute totals.
186
+ */
163
187
  ShoppingCartItem.propTypes = {
188
+ /** Shopping cart line item object */
164
189
  item: PropTypes.shape({
190
+ /** Unique item id */
165
191
  itemID: PropTypes.string.isRequired,
192
+ /** Optional URL for the item details */
166
193
  itemURL: PropTypes.string,
194
+ /** Item display title */
167
195
  itemTitle: PropTypes.string.isRequired,
196
+ /** Thumbnail image URL */
168
197
  itemImageURL: PropTypes.string,
198
+ /** Line item quantity */
169
199
  itemQuantity: PropTypes.number.isRequired,
200
+ /** Per-item price */
170
201
  itemCost: PropTypes.number.isRequired,
171
202
  }).isRequired
172
203
  };
@@ -182,15 +213,35 @@ export function ShoppingCartItem(props) {
182
213
  ? _jsx("a", { href: thisItem.itemURL, target: thisItemTarget, rel: "noopener noreferrer", children: _jsx("h2", { className: "", children: thisItem.itemTitle }) })
183
214
  : _jsx("h2", { className: "", children: thisItem.itemTitle }) }) }), _jsxs("div", { className: "pixCartItemDetails grid12", children: [_jsx("br", {}), _jsxs("div", { children: [_jsx("b", { children: "Item ID: " }), thisItem.itemID] }), _jsxs("div", { children: [_jsx("b", { children: "Quantity: " }), thisItem.itemQuantity] }), _jsx("br", {}), _jsx("div", { children: _jsx(FormButton, { className: "pixCartButton", type: "button", id: `btn-rm-${thisItem.itemID}`, text: "Remove Item From Cart", onClick: () => removeFromShoppingCart(thisItem) }) })] })] }), _jsx("div", { className: "grid-s11-e13", children: _jsx("div", { className: "pixCartItemPrice", children: formatAsUSD(thisItem.itemCost) }) })] }));
184
215
  }
216
+ /**
217
+ * CheckoutItems — Display a checkout summary with itemized lines and shipping information.
218
+ *
219
+ * @param {arrayOf} [props.items] - Cart items included in the checkout summary.
220
+ * @param {shape} [props.shippingTo] - Shipping address object with name, street1, city, state and zip.
221
+ * @param {number} [props.subtotal_discount] - Discount amount applied to subtotal.
222
+ * @param {number} [props.subtotal] - Subtotal amount before shipping and taxes.
223
+ * @param {number} [props.shippingCost] - Shipping cost for the order.
224
+ * @param {number} [props.handlingFee] - Optional handling fees.
225
+ * @param {number} [props.salesTax] - Sales tax amount.
226
+ * @param {number} [props.total] - Final total amount charged.
227
+ */
185
228
  CheckoutItems.propTypes = {
229
+ /** Array of cart items to summarize */
186
230
  items: PropTypes.arrayOf(PropTypes.shape({
231
+ /** Item identifier */
187
232
  itemID: PropTypes.string.isRequired,
233
+ /** Item detail URL (optional) */
188
234
  itemURL: PropTypes.string,
235
+ /** Item title */
189
236
  itemTitle: PropTypes.string.isRequired,
237
+ /** Item image URL */
190
238
  itemImageURL: PropTypes.string,
239
+ /** Quantity for this item */
191
240
  itemQuantity: PropTypes.number.isRequired,
241
+ /** Per-item price */
192
242
  itemCost: PropTypes.number.isRequired,
193
243
  })).isRequired,
244
+ /** Shipping address object */
194
245
  shippingTo: PropTypes.shape({
195
246
  name: PropTypes.string.isRequired,
196
247
  street1: PropTypes.string.isRequired,
@@ -198,11 +249,17 @@ CheckoutItems.propTypes = {
198
249
  state: PropTypes.string.isRequired,
199
250
  zip: PropTypes.string.isRequired,
200
251
  }).isRequired,
252
+ /** Discount amount applied to subtotal */
201
253
  subtotal_discount: PropTypes.number.isRequired,
254
+ /** Subtotal amount before shipping and taxes */
202
255
  subtotal: PropTypes.number.isRequired,
256
+ /** Shipping cost for the order */
203
257
  shippingCost: PropTypes.number.isRequired,
258
+ /** Handling fee applied to the order */
204
259
  handlingFee: PropTypes.number.isRequired,
260
+ /** Sales tax amount */
205
261
  salesTax: PropTypes.number.isRequired,
262
+ /** Final total amount */
206
263
  total: PropTypes.number.isRequired,
207
264
  };
208
265
  export function CheckoutItems(props) {
@@ -250,7 +307,13 @@ export function CheckoutItems(props) {
250
307
  }
251
308
  return (_jsx(Table, { id: "pixCheckout", data: checkoutTableData }));
252
309
  }
310
+ /**
311
+ * CartButton — Render a cart button showing the current cart item count and navigates to the cart page when clicked.
312
+ *
313
+ * @param {string} [props.href] - Destination URL for the cart page.
314
+ */
253
315
  CartButton.propTypes = {
316
+ /** Destination URL for viewing the shopping cart */
254
317
  href: PropTypes.string.isRequired,
255
318
  };
256
319
  export function CartButton(props) {
@@ -277,16 +340,34 @@ export function CartButton(props) {
277
340
  }, [cartCount]);
278
341
  return (_jsx("div", { className: "pixCart", children: _jsxs("button", { className: "pixCartButton", type: "button", id: "pixCartButton", onClick: () => window.location.href = props.href, children: [_jsx(SmartImage, { src: "/images/icons/cart-icon.png", title: "View Shopping Cart", alt: "View Shopping Cart", cloudinaryEnv: config?.cloudinary?.product_env, cloudinaryDomain: config?.cloudinary?.baseUrl, cloudinaryTransforms: config?.cloudinary?.transforms }), _jsxs("span", { children: ["\u00A0", `(${cartCount})`] })] }) }));
279
342
  }
343
+ /**
344
+ * ViewItemDetails — Button to navigate to an item detail page for a given item ID.
345
+ *
346
+ * @param {string} [props.href] - Base URL for the item detail page.
347
+ * @param {string} [props.itemID] - Item identifier appended to the URL when navigating.
348
+ */
280
349
  ViewItemDetails.propTypes = {
350
+ /** Base URL for item details */
281
351
  href: PropTypes.string.isRequired,
352
+ /** Item identifier to navigate to */
282
353
  itemID: PropTypes.string.isRequired,
283
354
  };
284
355
  export function ViewItemDetails(props) {
285
356
  return (_jsx("div", { children: _jsx(FormButton, { className: "pixCartButton", type: "button", id: `btn-item-${props.itemID}`, text: "View Item Details", onClick: () => window.location.href = `${props.href}/${props.itemID}` }) }));
286
357
  }
358
+ /**
359
+ * AddToCartButton — Button that adds an item to the shopping cart and displays a confirmation modal.
360
+ *
361
+ * @param {function} [props.handler] - Handler function that performs the add-to-cart action (receives the item object).
362
+ * @param {object} [props.item] - Shopping cart item object to add.
363
+ * @param {string} [props.itemID] - Unique identifier for the item used for modal IDs and button IDs.
364
+ */
287
365
  AddToCartButton.propTypes = {
366
+ /** Handler called to add the item to cart */
288
367
  handler: PropTypes.func.isRequired,
368
+ /** Shopping cart item object */
289
369
  item: PropTypes.object.isRequired,
370
+ /** Unique item identifier */
290
371
  itemID: PropTypes.string.isRequired,
291
372
  };
292
373
  export function AddToCartButton(props) {
@@ -301,8 +382,16 @@ export function AddToCartButton(props) {
301
382
  }
302
383
  return (_jsxs("div", { children: [_jsx(FormButton, { className: "pixCartButton", type: "button", id: `btn-add-${props.itemID}`, text: "Add to Shopping Cart", onClick: (e) => handleClick(e) }), modalContent && _jsx(Modal, { modalContent: modalContent, modalID: "-" + props.itemID })] }));
303
384
  }
385
+ /**
386
+ * GoToCartButton — Button that navigates the user to the shopping cart page.
387
+ *
388
+ * @param {string} [props.href] - Destination URL for the shopping cart.
389
+ * @param {string} [props.itemID] - ID used to compose button id attributes (not required for navigation).
390
+ */
304
391
  GoToCartButton.propTypes = {
392
+ /** Cart page URL */
305
393
  href: PropTypes.string.isRequired,
394
+ /** Item ID used for button id attributes */
306
395
  itemID: PropTypes.string.isRequired,
307
396
  };
308
397
  export function GoToCartButton(props) {
@@ -3,12 +3,28 @@ import { useState, useEffect } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { FontSelector } from './FontSelector';
5
5
  import './CompoundFontSelector.css';
6
+ /**
7
+ * CompoundFontSelector — Combined font selector that exposes primary, fallback and generic font fields as one compound value.
8
+ *
9
+ * @param {string} [props.id] - Base id used for the internal font inputs.
10
+ * @param {string} [props.name] - Base name used for the internal font inputs.
11
+ * @param {string} [props.label] - Label displayed above the compound selector.
12
+ * @param {boolean} [props.required] - Whether selecting a primary font is required.
13
+ * @param {string} [props.value] - Current combined font value (comma-separated stack).
14
+ * @param {function} [props.onChange] - Callback invoked with the combined font stack when any part changes.
15
+ */
6
16
  CompoundFontSelector.propTypes = {
17
+ /** Base id for internal inputs */
7
18
  id: PropTypes.string.isRequired,
19
+ /** Base name for internal inputs */
8
20
  name: PropTypes.string.isRequired,
21
+ /** Display label for the control */
9
22
  label: PropTypes.string.isRequired,
23
+ /** Required flag for the primary font */
10
24
  required: PropTypes.bool,
25
+ /** Combined font stack value */
11
26
  value: PropTypes.string,
27
+ /** onChange callback receiving combined font string */
12
28
  onChange: PropTypes.func,
13
29
  };
14
30
  export function CompoundFontSelector(props) {
@@ -40,11 +56,27 @@ export function CompoundFontSelector(props) {
40
56
  };
41
57
  return (_jsxs("div", { className: "compound-font-selector", children: [_jsx("label", { children: label }), _jsxs("div", { className: "compound-container", children: [_jsx(FontSelector, { id: `${id}-primary`, name: `${name}-primary`, label: "Primary Font", fontType: "google", required: !!required, placeholder: "Select Google Font", value: fonts.primary, onChange: (val) => handleFontChange('primary', val) }), _jsx(FontSelector, { id: `${id}-fallback`, name: `${name}-fallback`, label: "Fallback Font", fontType: "websafe", required: false, placeholder: "Select web-safe font", value: fonts.fallback, onChange: (val) => handleFontChange('fallback', val) }), _jsx(FontSelector, { id: `${id}-generic`, name: `${name}-generic`, label: "Generic Family", fontType: "generic", required: false, placeholder: "Select generic family", value: fonts.generic, onChange: (val) => handleFontChange('generic', val) })] })] }));
42
58
  }
59
+ /**
60
+ * CompoundFontSelector — Combined font selector that exposes primary, fallback and generic font fields as one compound value.
61
+ *
62
+ * @param {string} [props.id] - Base id used for the internal font inputs.
63
+ * @param {string} [props.name] - Base name used for the internal font inputs.
64
+ * @param {string} [props.label] - Label displayed above the compound selector.
65
+ * @param {boolean} [props.required] - Whether selecting a primary font is required.
66
+ * @param {string} [props.value] - Current combined font value (comma-separated stack).
67
+ * @param {function} [props.onChange] - Callback invoked with the combined font stack when any part changes.
68
+ */
43
69
  CompoundFontSelector.propTypes = {
70
+ /** Base id for internal inputs */
44
71
  id: PropTypes.string.isRequired,
72
+ /** Base name for internal inputs */
45
73
  name: PropTypes.string.isRequired,
74
+ /** Display label for the control */
46
75
  label: PropTypes.string.isRequired,
76
+ /** Required flag for the primary font */
47
77
  required: PropTypes.bool,
78
+ /** Combined font stack value */
48
79
  value: PropTypes.string,
80
+ /** onChange callback receiving combined font string */
49
81
  onChange: PropTypes.func,
50
82
  };
@@ -103,8 +103,16 @@ const SiteConfigPropTypes = {
103
103
  routes: PropTypes.arrayOf(PropTypes.shape(RoutePropTypes).isRequired).isRequired,
104
104
  visualdesign: PropTypes.shape(VisualDesignPropTypes).isRequired,
105
105
  };
106
+ /**
107
+ * ConfigBuilder — Interactive configuration editor for site-level settings (siteInfo, routes, visual design) with optional AI-assisted recommendations.
108
+ *
109
+ * @param {shape} [props.initialConfig] - Initial configuration object used to prepopulate the editor.
110
+ * @param {function} [props.onSave] - Callback invoked when the user saves the configuration (receives the full config object).
111
+ */
106
112
  ConfigBuilder.propTypes = {
113
+ /** Initial site configuration to edit */
107
114
  initialConfig: PropTypes.shape(SiteConfigPropTypes),
115
+ /** Save callback to persist config changes */
108
116
  onSave: PropTypes.func,
109
117
  };
110
118
  export function ConfigBuilder(props) {
@@ -4,14 +4,34 @@ import PropTypes from 'prop-types';
4
4
  import { getFontOptions } from './google-fonts';
5
5
  import { WEB_SAFE_FONTS, GENERIC_FAMILIES } from './fonts';
6
6
  import './FontSelector.css';
7
+ /**
8
+ * FontSelector — Single-font picker that supports Google Fonts, web-safe fonts, and generic families with autocomplete.
9
+ *
10
+ * @param {string} [props.id] - Input id attribute.
11
+ * @param {string} [props.name] - Input name attribute.
12
+ * @param {string} [props.label] - Display label for the selector.
13
+ * @param {oneOf} [props.fontType] - Font source type: 'google' | 'websafe' | 'generic'.
14
+ * @param {boolean} [props.required] - Whether the field is required.
15
+ * @param {string} [props.placeholder] - Placeholder text shown when empty.
16
+ * @param {string} [props.value] - Current selected font value.
17
+ * @param {function} [props.onChange] - Callback invoked when selection changes (receives the font value).
18
+ */
7
19
  FontSelector.propTypes = {
20
+ /** Input id attribute */
8
21
  id: PropTypes.string.isRequired,
22
+ /** Input name attribute */
9
23
  name: PropTypes.string.isRequired,
24
+ /** Display label */
10
25
  label: PropTypes.string.isRequired,
26
+ /** Font source type */
11
27
  fontType: PropTypes.oneOf(['google', 'websafe', 'generic']).isRequired,
28
+ /** Required flag */
12
29
  required: PropTypes.bool,
30
+ /** Placeholder text */
13
31
  placeholder: PropTypes.string,
32
+ /** Selected font value */
14
33
  value: PropTypes.string,
34
+ /** Change handler receives new font value */
15
35
  onChange: PropTypes.func,
16
36
  };
17
37
  export function FontSelector(props) {
@@ -85,13 +105,33 @@ export function FontSelector(props) {
85
105
  }
86
106
  }, tabIndex: 0, role: "option", "aria-selected": inputValue === option.value, children: [_jsx("span", { className: "font-selector-font-name", children: option.label }), option.category && (_jsxs("span", { className: "font-selector-font-category", children: ["(", option.category, ")"] }))] }, option.value)))) }))] })] }));
87
107
  }
108
+ /**
109
+ * FontSelector — Single-font picker that supports Google Fonts, web-safe fonts, and generic families with autocomplete.
110
+ *
111
+ * @param {string} [props.id] - Input id attribute.
112
+ * @param {string} [props.name] - Input name attribute.
113
+ * @param {string} [props.label] - Display label for the selector.
114
+ * @param {oneOf} [props.fontType] - Font source type: 'google' | 'websafe' | 'generic'.
115
+ * @param {boolean} [props.required] - Whether the field is required.
116
+ * @param {string} [props.placeholder] - Placeholder text shown when empty.
117
+ * @param {string} [props.value] - Current selected font value.
118
+ * @param {function} [props.onChange] - Callback invoked when selection changes (receives the font value).
119
+ */
88
120
  FontSelector.propTypes = {
121
+ /** Input id attribute */
89
122
  id: PropTypes.string.isRequired,
123
+ /** Input name attribute */
90
124
  name: PropTypes.string.isRequired,
125
+ /** Display label */
91
126
  label: PropTypes.string.isRequired,
127
+ /** Font source type */
92
128
  fontType: PropTypes.oneOf(['google', 'websafe', 'generic']).isRequired,
129
+ /** Required flag */
93
130
  required: PropTypes.bool,
131
+ /** Placeholder text */
94
132
  placeholder: PropTypes.string,
133
+ /** Selected font value */
95
134
  value: PropTypes.string,
135
+ /** Change handler receives new font value */
96
136
  onChange: PropTypes.func,
97
137
  };
@@ -9,7 +9,15 @@ const debug = false;
9
9
  /* ===== FORM BUILDER =====
10
10
  Display all the components for a Form Builder -
11
11
  Element Buttons, Element Details, and the Form */
12
- FormBuilder.propTypes = {};
12
+ /**
13
+ * FormBuilder — Visual editor for composing forms via JSON schema. Provides a field editor and a live preview powered by `FormEngine`.
14
+ *
15
+ * @param {function} [props.setFormData] - Callback that receives generated field JSON when building a new field (used by the UI to pass schema to the preview).
16
+ */
17
+ FormBuilder.propTypes = {
18
+ /** Callback invoked with generated form JSON */
19
+ setFormData: PropTypes.func,
20
+ };
13
21
  export function FormBuilder() {
14
22
  const [formData, setFormData] = useState({ fields: [] });
15
23
  const [fieldFormData, setFieldFormData] = useState({ fields: [] });
@@ -57,6 +65,7 @@ Dynamically generate, component by component, and prop by prop,
57
65
  the JSON to create a form via FormEngine
58
66
  */
59
67
  FormBuild.propTypes = {
68
+ /** Callback used to set the generated field JSON in the parent */
60
69
  setFormData: PropTypes.func.isRequired,
61
70
  };
62
71
  export function FormBuild(props) {