@pixelated-tech/components 3.1.4

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 (400) hide show
  1. package/README.md +231 -0
  2. package/dist/components/buzzwordbingo/buzzwordbingo.css +42 -0
  3. package/dist/components/buzzwordbingo/buzzwordbingo.js +35 -0
  4. package/dist/components/callout/callout.js +95 -0
  5. package/dist/components/callout/callout.scss +331 -0
  6. package/dist/components/carousel/carousel.css +178 -0
  7. package/dist/components/carousel/carousel.drag.js +203 -0
  8. package/dist/components/carousel/carousel.js +124 -0
  9. package/dist/components/cms/calendly.js +20 -0
  10. package/dist/components/cms/cloudinary.image.js +132 -0
  11. package/dist/components/cms/cloudinary.js +106 -0
  12. package/dist/components/cms/contentful.delivery.js +247 -0
  13. package/dist/components/cms/contentful.items.components.js +243 -0
  14. package/dist/components/cms/contentful.items.css +131 -0
  15. package/dist/components/cms/contentful.management.js +254 -0
  16. package/dist/components/cms/flickr.js +160 -0
  17. package/dist/components/cms/google.reviews.components.js +36 -0
  18. package/dist/components/cms/google.reviews.functions.js +26 -0
  19. package/dist/components/cms/gravatar.components.js +41 -0
  20. package/dist/components/cms/gravatar.functions.js +52 -0
  21. package/dist/components/cms/hubspot.components.js +45 -0
  22. package/dist/components/cms/hubspot.js +34 -0
  23. package/dist/components/cms/instagram.components.js +40 -0
  24. package/dist/components/cms/instagram.functions.js +67 -0
  25. package/dist/components/cms/wordpress.components.js +47 -0
  26. package/dist/components/cms/wordpress.css +55 -0
  27. package/dist/components/cms/wordpress.functions.js +49 -0
  28. package/dist/components/config/config.client.js +22 -0
  29. package/dist/components/config/config.example.js +70 -0
  30. package/dist/components/config/config.js +53 -0
  31. package/dist/components/config/config.server.js +11 -0
  32. package/dist/components/config/config.types.js +2 -0
  33. package/dist/components/general/css.js +60 -0
  34. package/dist/components/general/headers.css +16 -0
  35. package/dist/components/general/headers.js +27 -0
  36. package/dist/components/general/image.js +81 -0
  37. package/dist/components/general/layout.js +147 -0
  38. package/dist/components/general/layout.scss +47 -0
  39. package/dist/components/general/loading.js +36 -0
  40. package/dist/components/general/loading.scss +80 -0
  41. package/dist/components/general/microinteractions.css +229 -0
  42. package/dist/components/general/microinteractions.js +87 -0
  43. package/dist/components/general/modal.css +65 -0
  44. package/dist/components/general/modal.js +52 -0
  45. package/dist/components/general/table.css +73 -0
  46. package/dist/components/general/table.js +108 -0
  47. package/dist/components/linkedin/pixelated.linkedin.js +180 -0
  48. package/dist/components/linkedin/pixelated.linkedin1.js +102 -0
  49. package/dist/components/linkedin/pixelated.linkedin2.js +92 -0
  50. package/dist/components/markdown/markdown.css +12 -0
  51. package/dist/components/markdown/markdown.js +39 -0
  52. package/dist/components/menu/menu-accordion.css +198 -0
  53. package/dist/components/menu/menu-accordion.js +183 -0
  54. package/dist/components/menu/menu-expando.css +127 -0
  55. package/dist/components/menu/menu-expando.js +48 -0
  56. package/dist/components/menu/menu-simple.css +76 -0
  57. package/dist/components/menu/menu-simple.js +56 -0
  58. package/dist/components/nerdjoke/nerdjoke.css +69 -0
  59. package/dist/components/nerdjoke/nerdjoke.js +95 -0
  60. package/dist/components/pagebuilder/components/ComponentPropertiesForm.js +15 -0
  61. package/dist/components/pagebuilder/components/ComponentSelector.js +67 -0
  62. package/dist/components/pagebuilder/components/ComponentTree.js +95 -0
  63. package/dist/components/pagebuilder/components/PageBuilderUI.js +48 -0
  64. package/dist/components/pagebuilder/components/PageEngine.js +97 -0
  65. package/dist/components/pagebuilder/components/SaveLoadSection.js +168 -0
  66. package/dist/components/pagebuilder/components/pagebuilder.scss +123 -0
  67. package/dist/components/pagebuilder/form/form.css +101 -0
  68. package/dist/components/pagebuilder/form/form.js +455 -0
  69. package/dist/components/pagebuilder/form/form.submit.js +65 -0
  70. package/dist/components/pagebuilder/form/formcomponents.js +359 -0
  71. package/dist/components/pagebuilder/form/formvalidations.js +80 -0
  72. package/dist/components/pagebuilder/lib/componentGeneration.js +105 -0
  73. package/dist/components/pagebuilder/lib/componentMap.js +32 -0
  74. package/dist/components/pagebuilder/lib/componentMetadata.js +146 -0
  75. package/dist/components/pagebuilder/lib/pageStorageContentful.js +142 -0
  76. package/dist/components/pagebuilder/lib/pageStorageLocal.js +143 -0
  77. package/dist/components/pagebuilder/lib/pageStorageTypes.js +1 -0
  78. package/dist/components/pagebuilder/lib/propTypeIntrospection.js +177 -0
  79. package/dist/components/pagebuilder/lib/types.js +4 -0
  80. package/dist/components/pagebuilder/lib/usePageBuilder.js +234 -0
  81. package/dist/components/recipe/recipe.css +107 -0
  82. package/dist/components/recipe/recipe.js +161 -0
  83. package/dist/components/resume/resume.css +162 -0
  84. package/dist/components/resume/resume.js +195 -0
  85. package/dist/components/seo/404.css +25 -0
  86. package/dist/components/seo/404.js +32 -0
  87. package/dist/components/seo/googleanalytics.js +70 -0
  88. package/dist/components/seo/googlemap.js +15 -0
  89. package/dist/components/seo/googlesearch.css +30 -0
  90. package/dist/components/seo/googlesearch.js +37 -0
  91. package/dist/components/seo/metadata.js +156 -0
  92. package/dist/components/seo/sitemap.js +171 -0
  93. package/dist/components/shoppingcart/ebay.components.js +203 -0
  94. package/dist/components/shoppingcart/ebay.css +131 -0
  95. package/dist/components/shoppingcart/ebay.functions.js +240 -0
  96. package/dist/components/shoppingcart/paypal.js +169 -0
  97. package/dist/components/shoppingcart/shoppingcart.components.js +257 -0
  98. package/dist/components/shoppingcart/shoppingcart.css +122 -0
  99. package/dist/components/shoppingcart/shoppingcart.functions.js +324 -0
  100. package/dist/components/sidepanel/sidepanel.css +129 -0
  101. package/dist/components/sidepanel/sidepanel.js +54 -0
  102. package/dist/components/socialcard/socialcard.css +118 -0
  103. package/dist/components/socialcard/socialcard.js +317 -0
  104. package/dist/components/tiles/tiles.css +77 -0
  105. package/dist/components/tiles/tiles.js +38 -0
  106. package/dist/components/timeline/timeline.css +139 -0
  107. package/dist/components/timeline/timeline.js +28 -0
  108. package/dist/components/utilities/api.js +36 -0
  109. package/dist/components/utilities/functions.js +98 -0
  110. package/dist/components/yelp/yelp.js +50 -0
  111. package/dist/css/pixelated.font.scss +68 -0
  112. package/dist/css/pixelated.global.css +548 -0
  113. package/dist/css/pixelated.grid.scss +82 -0
  114. package/dist/data/404-data.json +104 -0
  115. package/dist/data/buzzwords.js +28 -0
  116. package/dist/data/form.json +370 -0
  117. package/dist/data/recipes.json +1917 -0
  118. package/dist/data/references.json +139 -0
  119. package/dist/data/requests.json +137 -0
  120. package/dist/data/resume.json +2577 -0
  121. package/dist/data/routes.json +184 -0
  122. package/dist/data/routes2.json +117 -0
  123. package/dist/data/shipping.to.json +422 -0
  124. package/dist/index.js +78 -0
  125. package/dist/index.server.js +35 -0
  126. package/dist/types/components/buzzwordbingo/buzzwordbingo.d.ts +26 -0
  127. package/dist/types/components/buzzwordbingo/buzzwordbingo.d.ts.map +1 -0
  128. package/dist/types/components/callout/callout.d.ts +53 -0
  129. package/dist/types/components/callout/callout.d.ts.map +1 -0
  130. package/dist/types/components/carousel/carousel.d.ts +28 -0
  131. package/dist/types/components/carousel/carousel.d.ts.map +1 -0
  132. package/dist/types/components/carousel/carousel.drag.d.ts +12 -0
  133. package/dist/types/components/carousel/carousel.drag.d.ts.map +1 -0
  134. package/dist/types/components/cms/calendly.d.ts +11 -0
  135. package/dist/types/components/cms/calendly.d.ts.map +1 -0
  136. package/dist/types/components/cms/cloudinary.d.ts +27 -0
  137. package/dist/types/components/cms/cloudinary.d.ts.map +1 -0
  138. package/dist/types/components/cms/cloudinary.image.d.ts +56 -0
  139. package/dist/types/components/cms/cloudinary.image.d.ts.map +1 -0
  140. package/dist/types/components/cms/contentful.delivery.d.ts +149 -0
  141. package/dist/types/components/cms/contentful.delivery.d.ts.map +1 -0
  142. package/dist/types/components/cms/contentful.items.components.d.ts +38 -0
  143. package/dist/types/components/cms/contentful.items.components.d.ts.map +1 -0
  144. package/dist/types/components/cms/contentful.management.d.ts +71 -0
  145. package/dist/types/components/cms/contentful.management.d.ts.map +1 -0
  146. package/dist/types/components/cms/flickr.d.ts +39 -0
  147. package/dist/types/components/cms/flickr.d.ts.map +1 -0
  148. package/dist/types/components/cms/google.reviews.components.d.ts +7 -0
  149. package/dist/types/components/cms/google.reviews.components.d.ts.map +1 -0
  150. package/dist/types/components/cms/google.reviews.functions.d.ts +25 -0
  151. package/dist/types/components/cms/google.reviews.functions.d.ts.map +1 -0
  152. package/dist/types/components/cms/gravatar.components.d.ts +26 -0
  153. package/dist/types/components/cms/gravatar.components.d.ts.map +1 -0
  154. package/dist/types/components/cms/gravatar.functions.d.ts +53 -0
  155. package/dist/types/components/cms/gravatar.functions.d.ts.map +1 -0
  156. package/dist/types/components/cms/hubspot.components.d.ts +15 -0
  157. package/dist/types/components/cms/hubspot.components.d.ts.map +1 -0
  158. package/dist/types/components/cms/hubspot.d.ts +18 -0
  159. package/dist/types/components/cms/hubspot.d.ts.map +1 -0
  160. package/dist/types/components/cms/instagram.components.d.ts +10 -0
  161. package/dist/types/components/cms/instagram.components.d.ts.map +1 -0
  162. package/dist/types/components/cms/instagram.functions.d.ts +63 -0
  163. package/dist/types/components/cms/instagram.functions.d.ts.map +1 -0
  164. package/dist/types/components/cms/wordpress.components.d.ts +11 -0
  165. package/dist/types/components/cms/wordpress.components.d.ts.map +1 -0
  166. package/dist/types/components/cms/wordpress.functions.d.ts +28 -0
  167. package/dist/types/components/cms/wordpress.functions.d.ts.map +1 -0
  168. package/dist/types/components/config/config.client.d.ts +13 -0
  169. package/dist/types/components/config/config.client.d.ts.map +1 -0
  170. package/dist/types/components/config/config.d.ts +12 -0
  171. package/dist/types/components/config/config.d.ts.map +1 -0
  172. package/dist/types/components/config/config.example.d.ts +4 -0
  173. package/dist/types/components/config/config.example.d.ts.map +1 -0
  174. package/dist/types/components/config/config.server.d.ts +7 -0
  175. package/dist/types/components/config/config.server.d.ts.map +1 -0
  176. package/dist/types/components/config/config.types.d.ts +84 -0
  177. package/dist/types/components/config/config.types.d.ts.map +1 -0
  178. package/dist/types/components/general/css.d.ts +3 -0
  179. package/dist/types/components/general/css.d.ts.map +1 -0
  180. package/dist/types/components/general/headers.d.ts +19 -0
  181. package/dist/types/components/general/headers.d.ts.map +1 -0
  182. package/dist/types/components/general/image.d.ts +3 -0
  183. package/dist/types/components/general/image.d.ts.map +1 -0
  184. package/dist/types/components/general/layout.d.ts +73 -0
  185. package/dist/types/components/general/layout.d.ts.map +1 -0
  186. package/dist/types/components/general/loading.d.ts +11 -0
  187. package/dist/types/components/general/loading.d.ts.map +1 -0
  188. package/dist/types/components/general/microinteractions.d.ts +20 -0
  189. package/dist/types/components/general/microinteractions.d.ts.map +1 -0
  190. package/dist/types/components/general/modal.d.ts +8 -0
  191. package/dist/types/components/general/modal.d.ts.map +1 -0
  192. package/dist/types/components/general/table.d.ts +12 -0
  193. package/dist/types/components/general/table.d.ts.map +1 -0
  194. package/dist/types/components/linkedin/pixelated.linkedin.d.ts +2 -0
  195. package/dist/types/components/linkedin/pixelated.linkedin.d.ts.map +1 -0
  196. package/dist/types/components/linkedin/pixelated.linkedin1.d.ts +2 -0
  197. package/dist/types/components/linkedin/pixelated.linkedin1.d.ts.map +1 -0
  198. package/dist/types/components/linkedin/pixelated.linkedin2.d.ts +2 -0
  199. package/dist/types/components/linkedin/pixelated.linkedin2.d.ts.map +1 -0
  200. package/dist/types/components/markdown/markdown.d.ts +12 -0
  201. package/dist/types/components/markdown/markdown.d.ts.map +1 -0
  202. package/dist/types/components/menu/menu-accordion.d.ts +44 -0
  203. package/dist/types/components/menu/menu-accordion.d.ts.map +1 -0
  204. package/dist/types/components/menu/menu-expando.d.ts +20 -0
  205. package/dist/types/components/menu/menu-expando.d.ts.map +1 -0
  206. package/dist/types/components/menu/menu-simple.d.ts +28 -0
  207. package/dist/types/components/menu/menu-simple.d.ts.map +1 -0
  208. package/dist/types/components/nerdjoke/nerdjoke.d.ts +23 -0
  209. package/dist/types/components/nerdjoke/nerdjoke.d.ts.map +1 -0
  210. package/dist/types/components/pagebuilder/components/ComponentPropertiesForm.d.ts +11 -0
  211. package/dist/types/components/pagebuilder/components/ComponentPropertiesForm.d.ts.map +1 -0
  212. package/dist/types/components/pagebuilder/components/ComponentSelector.d.ts +15 -0
  213. package/dist/types/components/pagebuilder/components/ComponentSelector.d.ts.map +1 -0
  214. package/dist/types/components/pagebuilder/components/ComponentTree.d.ts +17 -0
  215. package/dist/types/components/pagebuilder/components/ComponentTree.d.ts.map +1 -0
  216. package/dist/types/components/pagebuilder/components/PageBuilderUI.d.ts +10 -0
  217. package/dist/types/components/pagebuilder/components/PageBuilderUI.d.ts.map +1 -0
  218. package/dist/types/components/pagebuilder/components/PageEngine.d.ts +23 -0
  219. package/dist/types/components/pagebuilder/components/PageEngine.d.ts.map +1 -0
  220. package/dist/types/components/pagebuilder/components/SaveLoadSection.d.ts +12 -0
  221. package/dist/types/components/pagebuilder/components/SaveLoadSection.d.ts.map +1 -0
  222. package/dist/types/components/pagebuilder/form/form.d.ts +46 -0
  223. package/dist/types/components/pagebuilder/form/form.d.ts.map +1 -0
  224. package/dist/types/components/pagebuilder/form/form.submit.d.ts +3 -0
  225. package/dist/types/components/pagebuilder/form/form.submit.d.ts.map +1 -0
  226. package/dist/types/components/pagebuilder/form/formcomponents.d.ts +205 -0
  227. package/dist/types/components/pagebuilder/form/formcomponents.d.ts.map +1 -0
  228. package/dist/types/components/pagebuilder/form/formvalidations.d.ts +29 -0
  229. package/dist/types/components/pagebuilder/form/formvalidations.d.ts.map +1 -0
  230. package/dist/types/components/pagebuilder/lib/componentGeneration.d.ts +17 -0
  231. package/dist/types/components/pagebuilder/lib/componentGeneration.d.ts.map +1 -0
  232. package/dist/types/components/pagebuilder/lib/componentMap.d.ts +25 -0
  233. package/dist/types/components/pagebuilder/lib/componentMap.d.ts.map +1 -0
  234. package/dist/types/components/pagebuilder/lib/componentMetadata.d.ts +22 -0
  235. package/dist/types/components/pagebuilder/lib/componentMetadata.d.ts.map +1 -0
  236. package/dist/types/components/pagebuilder/lib/pageStorageContentful.d.ts +25 -0
  237. package/dist/types/components/pagebuilder/lib/pageStorageContentful.d.ts.map +1 -0
  238. package/dist/types/components/pagebuilder/lib/pageStorageLocal.d.ts +23 -0
  239. package/dist/types/components/pagebuilder/lib/pageStorageLocal.d.ts.map +1 -0
  240. package/dist/types/components/pagebuilder/lib/pageStorageTypes.d.ts +25 -0
  241. package/dist/types/components/pagebuilder/lib/pageStorageTypes.d.ts.map +1 -0
  242. package/dist/types/components/pagebuilder/lib/propTypeIntrospection.d.ts +24 -0
  243. package/dist/types/components/pagebuilder/lib/propTypeIntrospection.d.ts.map +1 -0
  244. package/dist/types/components/pagebuilder/lib/types.d.ts +34 -0
  245. package/dist/types/components/pagebuilder/lib/types.d.ts.map +1 -0
  246. package/dist/types/components/pagebuilder/lib/usePageBuilder.d.ts +24 -0
  247. package/dist/types/components/pagebuilder/lib/usePageBuilder.d.ts.map +1 -0
  248. package/dist/types/components/recipe/recipe.d.ts +66 -0
  249. package/dist/types/components/recipe/recipe.d.ts.map +1 -0
  250. package/dist/types/components/resume/resume.d.ts +85 -0
  251. package/dist/types/components/resume/resume.d.ts.map +1 -0
  252. package/dist/types/components/seo/404.d.ts +10 -0
  253. package/dist/types/components/seo/404.d.ts.map +1 -0
  254. package/dist/types/components/seo/googleanalytics.d.ts +23 -0
  255. package/dist/types/components/seo/googleanalytics.d.ts.map +1 -0
  256. package/dist/types/components/seo/googlemap.d.ts +15 -0
  257. package/dist/types/components/seo/googlemap.d.ts.map +1 -0
  258. package/dist/types/components/seo/googlesearch.d.ts +10 -0
  259. package/dist/types/components/seo/googlesearch.d.ts.map +1 -0
  260. package/dist/types/components/seo/metadata.d.ts +35 -0
  261. package/dist/types/components/seo/metadata.d.ts.map +1 -0
  262. package/dist/types/components/seo/sitemap.d.ts +47 -0
  263. package/dist/types/components/seo/sitemap.d.ts.map +1 -0
  264. package/dist/types/components/shoppingcart/ebay.components.d.ts +46 -0
  265. package/dist/types/components/shoppingcart/ebay.components.d.ts.map +1 -0
  266. package/dist/types/components/shoppingcart/ebay.functions.d.ts +76 -0
  267. package/dist/types/components/shoppingcart/ebay.functions.d.ts.map +1 -0
  268. package/dist/types/components/shoppingcart/paypal.d.ts +16 -0
  269. package/dist/types/components/shoppingcart/paypal.d.ts.map +1 -0
  270. package/dist/types/components/shoppingcart/shoppingcart.components.d.ts +35 -0
  271. package/dist/types/components/shoppingcart/shoppingcart.components.d.ts.map +1 -0
  272. package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts +89 -0
  273. package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts.map +1 -0
  274. package/dist/types/components/sidepanel/sidepanel.d.ts +18 -0
  275. package/dist/types/components/sidepanel/sidepanel.d.ts.map +1 -0
  276. package/dist/types/components/socialcard/socialcard.d.ts +20 -0
  277. package/dist/types/components/socialcard/socialcard.d.ts.map +1 -0
  278. package/dist/types/components/tiles/tiles.d.ts +28 -0
  279. package/dist/types/components/tiles/tiles.d.ts.map +1 -0
  280. package/dist/types/components/timeline/timeline.d.ts +31 -0
  281. package/dist/types/components/timeline/timeline.d.ts.map +1 -0
  282. package/dist/types/components/utilities/api.d.ts +16 -0
  283. package/dist/types/components/utilities/api.d.ts.map +1 -0
  284. package/dist/types/components/utilities/functions.d.ts +11 -0
  285. package/dist/types/components/utilities/functions.d.ts.map +1 -0
  286. package/dist/types/components/yelp/yelp.d.ts +5 -0
  287. package/dist/types/components/yelp/yelp.d.ts.map +1 -0
  288. package/dist/types/data/buzzwords.d.ts +2 -0
  289. package/dist/types/data/buzzwords.d.ts.map +1 -0
  290. package/dist/types/index.d.ts +76 -0
  291. package/dist/types/index.d.ts.map +1 -0
  292. package/dist/types/index.server.d.ts +30 -0
  293. package/dist/types/index.server.d.ts.map +1 -0
  294. package/dist/types/stories/buzzword-bingo.stories.d.ts +13 -0
  295. package/dist/types/stories/buzzword-bingo.stories.d.ts.map +1 -0
  296. package/dist/types/stories/callout.many.stories.d.ts +8 -0
  297. package/dist/types/stories/callout.many.stories.d.ts.map +1 -0
  298. package/dist/types/stories/callout.stories.d.ts +69 -0
  299. package/dist/types/stories/callout.stories.d.ts.map +1 -0
  300. package/dist/types/stories/carousel-hero.stories.d.ts +22 -0
  301. package/dist/types/stories/carousel-hero.stories.d.ts.map +1 -0
  302. package/dist/types/stories/carousel-reviews.stories.d.ts +38 -0
  303. package/dist/types/stories/carousel-reviews.stories.d.ts.map +1 -0
  304. package/dist/types/stories/carousel-workportfolio.stories.d.ts +22 -0
  305. package/dist/types/stories/carousel-workportfolio.stories.d.ts.map +1 -0
  306. package/dist/types/stories/carousel.stories.d.ts +41 -0
  307. package/dist/types/stories/carousel.stories.d.ts.map +1 -0
  308. package/dist/types/stories/cms.contentful.item.stories.d.ts +21 -0
  309. package/dist/types/stories/cms.contentful.item.stories.d.ts.map +1 -0
  310. package/dist/types/stories/cms.contentful.items.stories.d.ts +20 -0
  311. package/dist/types/stories/cms.contentful.items.stories.d.ts.map +1 -0
  312. package/dist/types/stories/cms.contentful.stories.d.ts +9 -0
  313. package/dist/types/stories/cms.contentful.stories.d.ts.map +1 -0
  314. package/dist/types/stories/cms.google.reviews.stories.d.ts +11 -0
  315. package/dist/types/stories/cms.google.reviews.stories.d.ts.map +1 -0
  316. package/dist/types/stories/cms.gravatar.stories.d.ts +88 -0
  317. package/dist/types/stories/cms.gravatar.stories.d.ts.map +1 -0
  318. package/dist/types/stories/cms.instagram.stories.d.ts +16 -0
  319. package/dist/types/stories/cms.instagram.stories.d.ts.map +1 -0
  320. package/dist/types/stories/cms.wordpress.stories.d.ts +26 -0
  321. package/dist/types/stories/cms.wordpress.stories.d.ts.map +1 -0
  322. package/dist/types/stories/general.headers.stories.d.ts +27 -0
  323. package/dist/types/stories/general.headers.stories.d.ts.map +1 -0
  324. package/dist/types/stories/general.loading.stories.d.ts +11 -0
  325. package/dist/types/stories/general.loading.stories.d.ts.map +1 -0
  326. package/dist/types/stories/general.microinteractions.stories.d.ts +9 -0
  327. package/dist/types/stories/general.microinteractions.stories.d.ts.map +1 -0
  328. package/dist/types/stories/general.modal.stories.d.ts +9 -0
  329. package/dist/types/stories/general.modal.stories.d.ts.map +1 -0
  330. package/dist/types/stories/general.table.stories.d.ts +15 -0
  331. package/dist/types/stories/general.table.stories.d.ts.map +1 -0
  332. package/dist/types/stories/layout.stories.d.ts +299 -0
  333. package/dist/types/stories/layout.stories.d.ts.map +1 -0
  334. package/dist/types/stories/markdown.stories.d.ts +13 -0
  335. package/dist/types/stories/markdown.stories.d.ts.map +1 -0
  336. package/dist/types/stories/menu-accordion.stories.d.ts +34 -0
  337. package/dist/types/stories/menu-accordion.stories.d.ts.map +1 -0
  338. package/dist/types/stories/menu-simple.stories.d.ts +43 -0
  339. package/dist/types/stories/menu-simple.stories.d.ts.map +1 -0
  340. package/dist/types/stories/nerdjoke.stories.d.ts +10 -0
  341. package/dist/types/stories/nerdjoke.stories.d.ts.map +1 -0
  342. package/dist/types/stories/pagebuilder.form-builder.stories.d.ts +10 -0
  343. package/dist/types/stories/pagebuilder.form-builder.stories.d.ts.map +1 -0
  344. package/dist/types/stories/pagebuilder.form-engine.stories.d.ts +16 -0
  345. package/dist/types/stories/pagebuilder.form-engine.stories.d.ts.map +1 -0
  346. package/dist/types/stories/pagebuilder.form-extractor.stories.d.ts +10 -0
  347. package/dist/types/stories/pagebuilder.form-extractor.stories.d.ts.map +1 -0
  348. package/dist/types/stories/pagebuilder.stories.d.ts +29 -0
  349. package/dist/types/stories/pagebuilder.stories.d.ts.map +1 -0
  350. package/dist/types/stories/pagebuilder.usageguide.stories.d.ts +29 -0
  351. package/dist/types/stories/pagebuilder.usageguide.stories.d.ts.map +1 -0
  352. package/dist/types/stories/pageengine.stories.d.ts +32 -0
  353. package/dist/types/stories/pageengine.stories.d.ts.map +1 -0
  354. package/dist/types/stories/recipe.stories.d.ts +16 -0
  355. package/dist/types/stories/recipe.stories.d.ts.map +1 -0
  356. package/dist/types/stories/resume.stories.d.ts +283 -0
  357. package/dist/types/stories/resume.stories.d.ts.map +1 -0
  358. package/dist/types/stories/seo.404.stories.d.ts +18 -0
  359. package/dist/types/stories/seo.404.stories.d.ts.map +1 -0
  360. package/dist/types/stories/seo.googleanalytics.stories.d.ts +12 -0
  361. package/dist/types/stories/seo.googleanalytics.stories.d.ts.map +1 -0
  362. package/dist/types/stories/seo.googlesearch.stories.d.ts +12 -0
  363. package/dist/types/stories/seo.googlesearch.stories.d.ts.map +1 -0
  364. package/dist/types/stories/seo.metadata.stories.d.ts +25 -0
  365. package/dist/types/stories/seo.metadata.stories.d.ts.map +1 -0
  366. package/dist/types/stories/seo.sitemap.stories.d.ts +8 -0
  367. package/dist/types/stories/seo.sitemap.stories.d.ts.map +1 -0
  368. package/dist/types/stories/shoppingcart.ebay.item.stories.d.ts +21 -0
  369. package/dist/types/stories/shoppingcart.ebay.item.stories.d.ts.map +1 -0
  370. package/dist/types/stories/shoppingcart.ebay.items.stories.d.ts +21 -0
  371. package/dist/types/stories/shoppingcart.ebay.items.stories.d.ts.map +1 -0
  372. package/dist/types/stories/shoppingcart.stories.d.ts +9 -0
  373. package/dist/types/stories/shoppingcart.stories.d.ts.map +1 -0
  374. package/dist/types/stories/sidepanel.stories.d.ts +85 -0
  375. package/dist/types/stories/sidepanel.stories.d.ts.map +1 -0
  376. package/dist/types/stories/socialcard.stories.d.ts +81 -0
  377. package/dist/types/stories/socialcard.stories.d.ts.map +1 -0
  378. package/dist/types/stories/tiles.stories.d.ts +9 -0
  379. package/dist/types/stories/tiles.stories.d.ts.map +1 -0
  380. package/dist/types/stories/timeline.stories.d.ts +19 -0
  381. package/dist/types/stories/timeline.stories.d.ts.map +1 -0
  382. package/dist/types/tests/pixelated.api.test.d.ts +2 -0
  383. package/dist/types/tests/pixelated.api.test.d.ts.map +1 -0
  384. package/dist/types/tests/pixelated.callout.test.d.ts +2 -0
  385. package/dist/types/tests/pixelated.callout.test.d.ts.map +1 -0
  386. package/dist/types/tests/pixelated.carousel.test.d.ts +2 -0
  387. package/dist/types/tests/pixelated.carousel.test.d.ts.map +1 -0
  388. package/dist/types/tests/pixelated.menu-accordion.test.d.ts +2 -0
  389. package/dist/types/tests/pixelated.menu-accordion.test.d.ts.map +1 -0
  390. package/dist/types/tests/pixelated.menu-simple.test.d.ts +2 -0
  391. package/dist/types/tests/pixelated.menu-simple.test.d.ts.map +1 -0
  392. package/dist/types/tests/pixelated.nerdjoke.test.d.ts +2 -0
  393. package/dist/types/tests/pixelated.nerdjoke.test.d.ts.map +1 -0
  394. package/dist/types/tests/pixelated.recipe.test.d.ts +2 -0
  395. package/dist/types/tests/pixelated.recipe.test.d.ts.map +1 -0
  396. package/dist/types/tests/pixelated.resume.test.d.ts +2 -0
  397. package/dist/types/tests/pixelated.resume.test.d.ts.map +1 -0
  398. package/dist/types/tests/pixelated.socialcard.test.d.ts +2 -0
  399. package/dist/types/tests/pixelated.socialcard.test.d.ts.map +1 -0
  400. package/package.json +136 -0
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Component metadata for form generation
3
+ *
4
+ * Imports const arrays from component files that are used in PropTypes.
5
+ * This ensures single source of truth - arrays are defined once in the component,
6
+ * used in PropTypes, generate TypeScript types via InferProps, and provide
7
+ * runtime values for form generation.
8
+ */
9
+ import { variants, shapes, layouts, directions } from "../../callout/callout";
10
+ import { layoutTypes, autoFlowValues, flexDirections, flexWraps, justifyContentValues, alignItemsValues } from "../../general/layout";
11
+ export const componentMetadata = {
12
+ 'Callout': {
13
+ variant: {
14
+ type: 'select',
15
+ options: variants,
16
+ default: 'default',
17
+ },
18
+ boxShape: {
19
+ type: 'select',
20
+ options: shapes,
21
+ default: 'squircle',
22
+ },
23
+ layout: {
24
+ type: 'select',
25
+ options: layouts,
26
+ default: 'horizontal',
27
+ },
28
+ direction: {
29
+ type: 'select',
30
+ options: directions,
31
+ default: 'left',
32
+ },
33
+ url: {
34
+ type: 'text',
35
+ },
36
+ img: {
37
+ type: 'text',
38
+ },
39
+ imgAlt: {
40
+ type: 'text',
41
+ },
42
+ imgShape: {
43
+ type: 'select',
44
+ options: shapes,
45
+ default: 'square',
46
+ },
47
+ title: {
48
+ type: 'text',
49
+ },
50
+ subtitle: {
51
+ type: 'text',
52
+ },
53
+ content: {
54
+ type: 'text',
55
+ },
56
+ buttonText: {
57
+ type: 'text',
58
+ },
59
+ },
60
+ 'Page Section': {
61
+ layoutType: {
62
+ type: 'select',
63
+ options: layoutTypes,
64
+ default: 'grid',
65
+ },
66
+ columns: {
67
+ type: 'number',
68
+ },
69
+ gap: {
70
+ type: 'text',
71
+ },
72
+ direction: {
73
+ type: 'select',
74
+ options: flexDirections,
75
+ },
76
+ wrap: {
77
+ type: 'select',
78
+ options: flexWraps,
79
+ },
80
+ justifyContent: {
81
+ type: 'select',
82
+ options: justifyContentValues,
83
+ },
84
+ alignItems: {
85
+ type: 'select',
86
+ options: alignItemsValues,
87
+ },
88
+ autoFlow: {
89
+ type: 'select',
90
+ options: autoFlowValues,
91
+ },
92
+ responsive: {
93
+ type: 'checkbox',
94
+ },
95
+ },
96
+ 'Grid Item': {
97
+ columnSpan: {
98
+ type: 'number',
99
+ },
100
+ rowSpan: {
101
+ type: 'number',
102
+ },
103
+ columnStart: {
104
+ type: 'number',
105
+ },
106
+ columnEnd: {
107
+ type: 'number',
108
+ },
109
+ rowStart: {
110
+ type: 'number',
111
+ },
112
+ rowEnd: {
113
+ type: 'number',
114
+ },
115
+ },
116
+ 'Flex Item': {
117
+ flex: {
118
+ type: 'text',
119
+ },
120
+ order: {
121
+ type: 'number',
122
+ },
123
+ alignSelf: {
124
+ type: 'select',
125
+ options: ['auto', 'flex-start', 'flex-end', 'center', 'baseline', 'stretch'],
126
+ },
127
+ },
128
+ 'Page Header': {
129
+ title: {
130
+ type: 'text',
131
+ required: true,
132
+ },
133
+ subtitle: {
134
+ type: 'text',
135
+ },
136
+ },
137
+ 'Page Section Header': {
138
+ title: {
139
+ type: 'text',
140
+ required: true,
141
+ },
142
+ subtitle: {
143
+ type: 'text',
144
+ },
145
+ },
146
+ };
@@ -0,0 +1,142 @@
1
+ /**
2
+ * PageBuilder-specific Contentful storage implementation
3
+ *
4
+ * Uses generic Contentful management functions with PageBuilder-specific logic
5
+ */
6
+ import { createEntry, updateEntry, deleteEntry, searchEntriesByField } from '../../cms/contentful.management';
7
+ import { getContentfulEntriesByType } from '../../cms/contentful.delivery';
8
+ const CONTENT_TYPE = 'page';
9
+ /**
10
+ * Validate page name format
11
+ */
12
+ function validatePageName(name) {
13
+ return /^[a-zA-Z0-9-_]+$/.test(name);
14
+ }
15
+ /**
16
+ * List all saved pages
17
+ */
18
+ export async function listContentfulPages(config) {
19
+ // Map management-style config to delivery apiProps for the CDN-based read helper
20
+ const apiProps = {
21
+ base_url: 'https://cdn.contentful.com',
22
+ space_id: config.spaceId,
23
+ environment: config.environment || 'master',
24
+ delivery_access_token: config.accessToken,
25
+ };
26
+ const result = await getContentfulEntriesByType({ apiProps, contentType: CONTENT_TYPE });
27
+ if (!result || !Array.isArray(result.items)) {
28
+ return { success: true, pages: [] };
29
+ }
30
+ const pages = result.items
31
+ .map((entry) => (entry && entry.fields && entry.fields.pageName) ? (entry.fields.pageName['en-US'] || entry.fields.pageName) : undefined)
32
+ .filter((name) => typeof name === 'string')
33
+ .sort();
34
+ return { success: true, pages };
35
+ }
36
+ /**
37
+ * Load a page by name
38
+ */
39
+ export async function loadContentfulPage(name, config) {
40
+ if (!validatePageName(name)) {
41
+ return {
42
+ success: false,
43
+ message: 'Invalid page name. Use only letters, numbers, dashes, and underscores.',
44
+ };
45
+ }
46
+ // Use delivery API for reads
47
+ const apiProps = {
48
+ base_url: 'https://cdn.contentful.com',
49
+ space_id: config.spaceId,
50
+ environment: config.environment || 'master',
51
+ delivery_access_token: config.accessToken,
52
+ };
53
+ const result = await getContentfulEntriesByType({ apiProps, contentType: CONTENT_TYPE });
54
+ if (!result || !Array.isArray(result.items) || result.items.length === 0) {
55
+ return { success: false, message: `Page "${name}" not found.` };
56
+ }
57
+ const entry = result.items.find((item) => {
58
+ const val = item && item.fields && item.fields.pageName;
59
+ const pageName = Array.isArray(val) ? val[0] : val;
60
+ const nameStr = typeof pageName === 'object' ? pageName['en-US'] : pageName;
61
+ return nameStr === name;
62
+ });
63
+ if (!entry)
64
+ return { success: false, message: `Page "${name}" not found.` };
65
+ const pageData = entry.fields.pageData?.['en-US'] || entry.fields.pageData;
66
+ return { success: true, data: pageData };
67
+ }
68
+ /**
69
+ * Save a page (create or update)
70
+ */
71
+ export async function saveContentfulPage(name, data, config) {
72
+ if (!validatePageName(name)) {
73
+ return {
74
+ success: false,
75
+ message: 'Invalid page name. Use only letters, numbers, dashes, and underscores.',
76
+ };
77
+ }
78
+ // Check if page exists
79
+ const searchResult = await searchEntriesByField(CONTENT_TYPE, 'pageName', name, config);
80
+ if (!searchResult.success) {
81
+ return {
82
+ success: false,
83
+ message: searchResult.message || 'Failed to check existing page.',
84
+ };
85
+ }
86
+ const fields = {
87
+ pageName: name,
88
+ pageData: data,
89
+ title: name,
90
+ status: 'published',
91
+ };
92
+ if (searchResult.entries.length > 0) {
93
+ // Update existing entry
94
+ const entryId = searchResult.entries[0].sys.id;
95
+ const result = await updateEntry(entryId, fields, config, true);
96
+ return {
97
+ success: result.success,
98
+ message: result.success ? `Page "${name}" updated successfully.` : result.message,
99
+ filename: name,
100
+ };
101
+ }
102
+ else {
103
+ // Create new entry
104
+ const result = await createEntry(CONTENT_TYPE, fields, config, true);
105
+ return {
106
+ success: result.success,
107
+ message: result.success ? `Page "${name}" created successfully.` : result.message,
108
+ filename: name,
109
+ };
110
+ }
111
+ }
112
+ /**
113
+ * Delete a page by name
114
+ */
115
+ export async function deleteContentfulPage(name, config) {
116
+ if (!validatePageName(name)) {
117
+ return {
118
+ success: false,
119
+ message: 'Invalid page name.',
120
+ };
121
+ }
122
+ // Find the entry
123
+ const searchResult = await searchEntriesByField(CONTENT_TYPE, 'pageName', name, config);
124
+ if (!searchResult.success) {
125
+ return {
126
+ success: false,
127
+ message: searchResult.message || 'Failed to find page.',
128
+ };
129
+ }
130
+ if (searchResult.entries.length === 0) {
131
+ return {
132
+ success: false,
133
+ message: `Page "${name}" not found.`,
134
+ };
135
+ }
136
+ const entryId = searchResult.entries[0].sys.id;
137
+ const result = await deleteEntry(entryId, config);
138
+ return {
139
+ success: result.success,
140
+ message: result.success ? `Page "${name}" deleted successfully.` : result.message,
141
+ };
142
+ }
@@ -0,0 +1,143 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ const PAGES_DIR = process.env.PAGES_DIR || 'public/data/pages';
4
+ /**
5
+ * Get absolute path to pages directory
6
+ */
7
+ function getPagesDir() {
8
+ return path.join(process.cwd(), PAGES_DIR);
9
+ }
10
+ /**
11
+ * Ensure pages directory exists
12
+ */
13
+ function ensurePagesDir() {
14
+ const dir = getPagesDir();
15
+ if (!fs.existsSync(dir)) {
16
+ fs.mkdirSync(dir, { recursive: true });
17
+ }
18
+ }
19
+ /**
20
+ * Validate page name (alphanumeric, dashes, underscores only)
21
+ */
22
+ export function validatePageName(name) {
23
+ const validPattern = /^[a-zA-Z0-9_-]+$/;
24
+ return validPattern.test(name) && name.length > 0 && name.length <= 100;
25
+ }
26
+ /**
27
+ * List all saved pages
28
+ */
29
+ export async function listPages() {
30
+ try {
31
+ ensurePagesDir();
32
+ const dir = getPagesDir();
33
+ const files = fs.readdirSync(dir);
34
+ const jsonFiles = files
35
+ .filter((f) => f.endsWith('.json'))
36
+ .map((f) => f.replace('.json', ''));
37
+ return {
38
+ success: true,
39
+ pages: jsonFiles.sort()
40
+ };
41
+ }
42
+ catch (error) {
43
+ return {
44
+ success: false,
45
+ pages: [],
46
+ message: `Failed to list pages: ${error}`
47
+ };
48
+ }
49
+ }
50
+ /**
51
+ * Load a page by name
52
+ */
53
+ export async function loadPage(name) {
54
+ try {
55
+ if (!validatePageName(name)) {
56
+ return {
57
+ success: false,
58
+ message: 'Invalid page name. Use only letters, numbers, dashes, and underscores.'
59
+ };
60
+ }
61
+ const dir = getPagesDir();
62
+ const filepath = path.join(dir, `${name}.json`);
63
+ if (!fs.existsSync(filepath)) {
64
+ return {
65
+ success: false,
66
+ message: `Page "${name}" not found.`
67
+ };
68
+ }
69
+ const content = fs.readFileSync(filepath, 'utf-8');
70
+ const data = JSON.parse(content);
71
+ return {
72
+ success: true,
73
+ data
74
+ };
75
+ }
76
+ catch (error) {
77
+ return {
78
+ success: false,
79
+ message: `Failed to load page: ${error}`
80
+ };
81
+ }
82
+ }
83
+ /**
84
+ * Save a page
85
+ */
86
+ export async function savePage(name, data) {
87
+ try {
88
+ if (!validatePageName(name)) {
89
+ return {
90
+ success: false,
91
+ message: 'Invalid page name. Use only letters, numbers, dashes, and underscores.'
92
+ };
93
+ }
94
+ ensurePagesDir();
95
+ const dir = getPagesDir();
96
+ const filepath = path.join(dir, `${name}.json`);
97
+ // Write file with pretty formatting
98
+ fs.writeFileSync(filepath, JSON.stringify(data, null, 2), 'utf-8');
99
+ return {
100
+ success: true,
101
+ message: `Page "${name}" saved successfully.`,
102
+ filename: `${name}.json`
103
+ };
104
+ }
105
+ catch (error) {
106
+ return {
107
+ success: false,
108
+ message: `Failed to save page: ${error}`
109
+ };
110
+ }
111
+ }
112
+ /**
113
+ * Delete a page
114
+ */
115
+ export async function deletePage(name) {
116
+ try {
117
+ if (!validatePageName(name)) {
118
+ return {
119
+ success: false,
120
+ message: 'Invalid page name.'
121
+ };
122
+ }
123
+ const dir = getPagesDir();
124
+ const filepath = path.join(dir, `${name}.json`);
125
+ if (!fs.existsSync(filepath)) {
126
+ return {
127
+ success: false,
128
+ message: `Page "${name}" not found.`
129
+ };
130
+ }
131
+ fs.unlinkSync(filepath);
132
+ return {
133
+ success: true,
134
+ message: `Page "${name}" deleted successfully.`
135
+ };
136
+ }
137
+ catch (error) {
138
+ return {
139
+ success: false,
140
+ message: `Failed to delete page: ${error}`
141
+ };
142
+ }
143
+ }
@@ -0,0 +1,177 @@
1
+ import { componentMetadata } from './componentMetadata';
2
+ /**
3
+ * PropTypes Introspection Utilities
4
+ * Analyzes PropTypes to generate appropriate form fields
5
+ *
6
+ * Strategy:
7
+ * 1. Components define const arrays for enum values (e.g., CALLOUT_STYLES)
8
+ * 2. These arrays are used in PropTypes: PropTypes.oneOf([...CALLOUT_STYLES])
9
+ * 3. InferProps generates TypeScript types from PropTypes
10
+ * 4. componentMetadata imports the same const arrays for form generation
11
+ *
12
+ * This ensures single source of truth:
13
+ * - const array → PropTypes → InferProps → TypeScript types
14
+ * - const array → componentMetadata → form fields
15
+ */
16
+ /**
17
+ * Analyzes PropTypes to determine the appropriate form field type
18
+ */
19
+ export function getPropTypeInfo(propType, componentName, propName) {
20
+ // Check our metadata (which imports const arrays from component files)
21
+ if (componentName && propName && componentMetadata[componentName]?.[propName]) {
22
+ const metadata = componentMetadata[componentName][propName];
23
+ return {
24
+ type: metadata.type,
25
+ options: metadata.options,
26
+ isRequired: metadata.required || false,
27
+ };
28
+ }
29
+ if (!propType)
30
+ return { type: 'text', isRequired: false };
31
+ // PropTypes logic is inverted:
32
+ // - Optional: PropTypes.string (HAS .isRequired property pointing to the required version)
33
+ // - Required: PropTypes.string.isRequired (NO .isRequired property - it IS the required version)
34
+ const isRequired = !('isRequired' in propType);
35
+ // Handle both optional and required PropTypes
36
+ // Optional: PropTypes.oneOf([...]) - has .isRequired property
37
+ // Required: PropTypes.oneOf([...]).isRequired - is the actual validator
38
+ let basePropType = propType;
39
+ // If this is an optional PropType, it might have an isRequired property that points to the validator
40
+ // We need to check the current propType first, not the isRequired version
41
+ // PropTypes don't include metadata at runtime, so oneOf detection won't work
42
+ // We rely on componentMetadata instead (checked above)
43
+ // Check for shape (object with defined props)
44
+ if (basePropType._propType === 'shape' || (basePropType.type && basePropType.type._propType === 'shape')) {
45
+ return {
46
+ type: 'object',
47
+ options: basePropType.shapeTypes || basePropType.type?.shapeTypes || {},
48
+ isRequired
49
+ };
50
+ }
51
+ // Check for arrayOf
52
+ if (basePropType._propType === 'arrayOf' || (basePropType.type && basePropType.type._propType === 'arrayOf')) {
53
+ return {
54
+ type: 'array',
55
+ elementType: basePropType.elementType || basePropType.type?.elementType,
56
+ isRequired
57
+ };
58
+ }
59
+ // Check the name property for basic types
60
+ const typeName = basePropType.name || basePropType.type?.name || '';
61
+ switch (typeName) {
62
+ case 'number':
63
+ return { type: 'number', isRequired };
64
+ case 'bool':
65
+ return { type: 'checkbox', isRequired };
66
+ case 'func':
67
+ return { type: 'function', isRequired };
68
+ case 'node':
69
+ case 'element':
70
+ return { type: 'children', isRequired };
71
+ case 'object':
72
+ return { type: 'json', isRequired };
73
+ case 'string':
74
+ default:
75
+ return { type: 'text', isRequired };
76
+ }
77
+ }
78
+ /**
79
+ * Generates appropriate form field configuration based on PropType
80
+ */
81
+ export function generateFormFieldFromPropType(propName, propType, value, componentName) {
82
+ const propInfo = getPropTypeInfo(propType, componentName, propName);
83
+ const baseProps = {
84
+ label: propName + ':',
85
+ name: propName,
86
+ id: propName,
87
+ };
88
+ // Only add required attribute when field is actually required
89
+ // Don't pass required prop at all for optional fields (HTML treats ANY value as required)
90
+ if (propInfo.isRequired) {
91
+ baseProps.required = 'required';
92
+ }
93
+ // Only add defaultValue if a value is provided
94
+ if (value !== undefined && value !== null && value !== '') {
95
+ baseProps.defaultValue = value;
96
+ }
97
+ switch (propInfo.type) {
98
+ case 'select':
99
+ return {
100
+ component: 'FormSelect',
101
+ props: {
102
+ ...baseProps,
103
+ options: [
104
+ { value: '', text: '-- Select --' },
105
+ ...(propInfo.options || []).map((opt) => ({
106
+ value: opt,
107
+ text: opt
108
+ }))
109
+ ],
110
+ }
111
+ };
112
+ case 'number':
113
+ return {
114
+ component: 'FormInput',
115
+ props: {
116
+ ...baseProps,
117
+ type: 'number',
118
+ }
119
+ };
120
+ case 'checkbox':
121
+ return {
122
+ component: 'FormInput',
123
+ props: {
124
+ ...baseProps,
125
+ type: 'checkbox',
126
+ }
127
+ };
128
+ case 'json':
129
+ case 'object':
130
+ return {
131
+ component: 'FormInput',
132
+ props: {
133
+ ...baseProps,
134
+ type: 'text',
135
+ placeholder: 'JSON object: {"key": "value"}',
136
+ }
137
+ };
138
+ case 'array':
139
+ return {
140
+ component: 'FormInput',
141
+ props: {
142
+ ...baseProps,
143
+ type: 'text',
144
+ placeholder: 'Comma-separated values',
145
+ }
146
+ };
147
+ case 'children':
148
+ return {
149
+ component: 'FormInput',
150
+ props: {
151
+ ...baseProps,
152
+ type: 'text',
153
+ placeholder: 'Add child components separately',
154
+ disabled: true,
155
+ }
156
+ };
157
+ case 'function':
158
+ return {
159
+ component: 'FormInput',
160
+ props: {
161
+ ...baseProps,
162
+ type: 'text',
163
+ placeholder: 'Function (not editable in builder)',
164
+ disabled: true,
165
+ }
166
+ };
167
+ case 'text':
168
+ default:
169
+ return {
170
+ component: 'FormInput',
171
+ props: {
172
+ ...baseProps,
173
+ type: 'text',
174
+ }
175
+ };
176
+ }
177
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Shared TypeScript types for the PageBuilder
3
+ */
4
+ export {};