@upstart.gg/sdk 0.0.135 → 0.0.137

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 (473) hide show
  1. package/dist/shared/ai/schemas.d.ts +11 -2
  2. package/dist/shared/ai/schemas.d.ts.map +1 -1
  3. package/dist/shared/ai/schemas.js +38 -8
  4. package/dist/shared/ai/schemas.js.map +1 -1
  5. package/dist/shared/ai/types.d.ts +93 -81
  6. package/dist/shared/ai/types.d.ts.map +1 -1
  7. package/dist/shared/ajv.js +33 -32
  8. package/dist/shared/ajv.js.map +1 -1
  9. package/dist/shared/attributes.d.ts +86 -86
  10. package/dist/shared/attributes.d.ts.map +1 -1
  11. package/dist/shared/attributes.js +22 -25
  12. package/dist/shared/brick-manifest.d.ts +8 -5
  13. package/dist/shared/brick-manifest.d.ts.map +1 -1
  14. package/dist/shared/brick-manifest.js +3 -18
  15. package/dist/shared/bricks/manifests/_types.d.ts +9 -0
  16. package/dist/shared/bricks/manifests/_types.d.ts.map +1 -0
  17. package/dist/shared/bricks/manifests/_types.js +3 -0
  18. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +4 -8
  19. package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
  20. package/dist/shared/bricks/manifests/accordion.manifest.js +13 -20
  21. package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
  22. package/dist/shared/bricks/manifests/all-manifests.js +44 -43
  23. package/dist/shared/bricks/manifests/all-props.d.ts +1501 -0
  24. package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -0
  25. package/dist/shared/bricks/manifests/all-props.js +243 -0
  26. package/dist/shared/bricks/manifests/all-props.js.map +1 -0
  27. package/dist/shared/bricks/manifests/box.manifest.d.ts +4 -8
  28. package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
  29. package/dist/shared/bricks/manifests/box.manifest.js +16 -20
  30. package/dist/shared/bricks/manifests/button.manifest.d.ts +5 -12
  31. package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
  32. package/dist/shared/bricks/manifests/button.manifest.js +13 -20
  33. package/dist/shared/bricks/manifests/card.manifest.d.ts +10 -9
  34. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  35. package/dist/shared/bricks/manifests/card.manifest.js +18 -20
  36. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +4 -8
  37. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  38. package/dist/shared/bricks/manifests/carousel.manifest.js +15 -20
  39. package/dist/shared/bricks/manifests/footer.manifest.d.ts +5 -9
  40. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  41. package/dist/shared/bricks/manifests/footer.manifest.js +13 -20
  42. package/dist/shared/bricks/manifests/form.manifest.d.ts +5 -9
  43. package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
  44. package/dist/shared/bricks/manifests/form.manifest.js +13 -20
  45. package/dist/shared/bricks/manifests/hero.manifest.d.ts +4 -8
  46. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  47. package/dist/shared/bricks/manifests/hero.manifest.js +13 -20
  48. package/dist/shared/bricks/manifests/html.manifest.d.ts +3 -7
  49. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  50. package/dist/shared/bricks/manifests/html.manifest.js +8 -20
  51. package/dist/shared/bricks/manifests/icon.manifest.d.ts +3 -7
  52. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  53. package/dist/shared/bricks/manifests/icon.manifest.js +13 -20
  54. package/dist/shared/bricks/manifests/image.manifest.d.ts +3 -2
  55. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  56. package/dist/shared/bricks/manifests/image.manifest.js +16 -20
  57. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +4 -8
  58. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  59. package/dist/shared/bricks/manifests/images-gallery.manifest.js +15 -20
  60. package/dist/shared/bricks/manifests/map.manifest.d.ts +3 -7
  61. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  62. package/dist/shared/bricks/manifests/map.manifest.js +11 -20
  63. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +7 -11
  64. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  65. package/dist/shared/bricks/manifests/navbar.manifest.js +15 -20
  66. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +3 -7
  67. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  68. package/dist/shared/bricks/manifests/sidebar.manifest.js +13 -20
  69. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +4 -8
  70. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  71. package/dist/shared/bricks/manifests/social-links.manifest.js +14 -20
  72. package/dist/shared/bricks/manifests/spacer.manifest.d.ts +3 -7
  73. package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
  74. package/dist/shared/bricks/manifests/spacer.manifest.js +8 -20
  75. package/dist/shared/bricks/manifests/table.manifest.d.ts +6 -10
  76. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  77. package/dist/shared/bricks/manifests/table.manifest.js +15 -20
  78. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +6 -10
  79. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
  80. package/dist/shared/bricks/manifests/tabs.manifest.js +15 -20
  81. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +4 -8
  82. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  83. package/dist/shared/bricks/manifests/testimonials.manifest.js +18 -20
  84. package/dist/shared/bricks/manifests/text.manifest.d.ts +4 -12
  85. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  86. package/dist/shared/bricks/manifests/text.manifest.js +13 -20
  87. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +9 -13
  88. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
  89. package/dist/shared/bricks/manifests/timeline.manifest.js +15 -20
  90. package/dist/shared/bricks/manifests/video.manifest.d.ts +3 -7
  91. package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
  92. package/dist/shared/bricks/manifests/video.manifest.js +11 -20
  93. package/dist/shared/bricks/props/align.d.ts +0 -3
  94. package/dist/shared/bricks/props/align.d.ts.map +1 -1
  95. package/dist/shared/bricks/props/align.js +4 -11
  96. package/dist/shared/bricks/props/background.d.ts +2 -8
  97. package/dist/shared/bricks/props/background.d.ts.map +1 -1
  98. package/dist/shared/bricks/props/background.js +4 -9
  99. package/dist/shared/bricks/props/border.d.ts +0 -7
  100. package/dist/shared/bricks/props/border.d.ts.map +1 -1
  101. package/dist/shared/bricks/props/border.js +5 -10
  102. package/dist/shared/bricks/props/color-preset.d.ts +316 -6
  103. package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
  104. package/dist/shared/bricks/props/color-preset.js +2 -5
  105. package/dist/shared/bricks/props/color.d.ts +3 -5
  106. package/dist/shared/bricks/props/color.d.ts.map +1 -1
  107. package/dist/shared/bricks/props/color.js +3 -8
  108. package/dist/shared/bricks/props/common.d.ts.map +1 -1
  109. package/dist/shared/bricks/props/common.js +4 -5
  110. package/dist/shared/bricks/props/css-length.d.ts +0 -1
  111. package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
  112. package/dist/shared/bricks/props/css-length.js +1 -4
  113. package/dist/shared/bricks/props/datasource.d.ts +3 -3
  114. package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
  115. package/dist/shared/bricks/props/datasource.js +74 -76
  116. package/dist/shared/bricks/props/datasource.js.map +1 -1
  117. package/dist/shared/bricks/props/date.js +21 -4
  118. package/dist/shared/bricks/props/date.js.map +1 -1
  119. package/dist/shared/bricks/props/direction.d.ts +1 -2
  120. package/dist/shared/bricks/props/direction.d.ts.map +1 -1
  121. package/dist/shared/bricks/props/direction.js +4 -7
  122. package/dist/shared/bricks/props/dynamic.d.ts +5 -67
  123. package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
  124. package/dist/shared/bricks/props/dynamic.js +6 -24
  125. package/dist/shared/bricks/props/effects.d.ts +1 -3
  126. package/dist/shared/bricks/props/effects.d.ts.map +1 -1
  127. package/dist/shared/bricks/props/effects.js +4 -9
  128. package/dist/shared/bricks/props/geolocation.d.ts.map +1 -1
  129. package/dist/shared/bricks/props/geolocation.js +3 -6
  130. package/dist/shared/bricks/props/geolocation.js.map +1 -1
  131. package/dist/shared/bricks/props/helpers.js +5 -6
  132. package/dist/shared/bricks/props/image.d.ts +2 -8
  133. package/dist/shared/bricks/props/image.d.ts.map +1 -1
  134. package/dist/shared/bricks/props/image.js +4 -7
  135. package/dist/shared/bricks/props/string.d.ts +2 -5
  136. package/dist/shared/bricks/props/string.d.ts.map +1 -1
  137. package/dist/shared/bricks/props/string.js +3 -10
  138. package/dist/shared/bricks/props/tags.d.ts +0 -1
  139. package/dist/shared/bricks/props/tags.d.ts.map +1 -1
  140. package/dist/shared/bricks/props/tags.js +3 -6
  141. package/dist/shared/bricks/props/text.d.ts +0 -3
  142. package/dist/shared/bricks/props/text.d.ts.map +1 -1
  143. package/dist/shared/bricks/props/text.js +4 -11
  144. package/dist/shared/bricks/props/types.d.ts +2 -2
  145. package/dist/shared/bricks/props/types.d.ts.map +1 -1
  146. package/dist/shared/bricks.d.ts +64 -152
  147. package/dist/shared/bricks.d.ts.map +1 -1
  148. package/dist/shared/bricks.js +49 -52
  149. package/dist/shared/chunk-2O5HVPID.js +41 -0
  150. package/dist/shared/chunk-2O5HVPID.js.map +1 -0
  151. package/dist/shared/{chunk-F22LDHEO.js → chunk-2U5U3CCJ.js} +3 -18
  152. package/dist/shared/chunk-2U5U3CCJ.js.map +1 -0
  153. package/dist/shared/{chunk-LXAO3JA6.js → chunk-4KY7OZWD.js} +35 -35
  154. package/dist/shared/chunk-4KY7OZWD.js.map +1 -0
  155. package/dist/shared/{chunk-TNMNMYOB.js → chunk-5RCC2STG.js} +2 -13
  156. package/dist/shared/chunk-5RCC2STG.js.map +1 -0
  157. package/dist/shared/{chunk-V3UA3LRK.js → chunk-6AE7UD73.js} +56 -37
  158. package/dist/shared/chunk-6AE7UD73.js.map +1 -0
  159. package/dist/shared/chunk-7U5WPHXB.js +346 -0
  160. package/dist/shared/chunk-7U5WPHXB.js.map +1 -0
  161. package/dist/shared/{chunk-Q4NPPLEU.js → chunk-BHARJBEK.js} +2 -9
  162. package/dist/shared/chunk-BHARJBEK.js.map +1 -0
  163. package/dist/shared/chunk-BZTWZC77.js +530 -0
  164. package/dist/shared/chunk-BZTWZC77.js.map +1 -0
  165. package/dist/shared/{chunk-QSND5IWT.js → chunk-DCM4732T.js} +24 -43
  166. package/dist/shared/chunk-DCM4732T.js.map +1 -0
  167. package/dist/shared/{chunk-W6MRYRGJ.js → chunk-DRQKKPTX.js} +6 -20
  168. package/dist/shared/chunk-DRQKKPTX.js.map +1 -0
  169. package/dist/shared/{chunk-CSF2WQX2.js → chunk-EID5HPF3.js} +15 -12
  170. package/dist/shared/chunk-EID5HPF3.js.map +1 -0
  171. package/dist/shared/chunk-EMF5TCPX.js +389 -0
  172. package/dist/shared/chunk-EMF5TCPX.js.map +1 -0
  173. package/dist/shared/chunk-FD7YYFRI.js +225 -0
  174. package/dist/shared/chunk-FD7YYFRI.js.map +1 -0
  175. package/dist/shared/{chunk-MLZT7MRQ.js → chunk-FHA4DFIM.js} +26 -27
  176. package/dist/shared/chunk-FHA4DFIM.js.map +1 -0
  177. package/dist/shared/{chunk-GRMY35BU.js → chunk-FUUSAMN3.js} +165 -40
  178. package/dist/shared/chunk-FUUSAMN3.js.map +1 -0
  179. package/dist/shared/chunk-GDYCCB3B.js +22 -0
  180. package/dist/shared/chunk-GDYCCB3B.js.map +1 -0
  181. package/dist/shared/chunk-GLV6QIIM.js +41 -0
  182. package/dist/shared/chunk-GLV6QIIM.js.map +1 -0
  183. package/dist/shared/chunk-H6TMBELF.js +374 -0
  184. package/dist/shared/chunk-H6TMBELF.js.map +1 -0
  185. package/dist/shared/{chunk-BMWRR4DI.js → chunk-HUWMIXNN.js} +26 -28
  186. package/dist/shared/chunk-HUWMIXNN.js.map +1 -0
  187. package/dist/shared/chunk-HY7JOP3J.js +150 -0
  188. package/dist/shared/chunk-HY7JOP3J.js.map +1 -0
  189. package/dist/shared/{chunk-TFGGYU6Y.js → chunk-IEMCCHM4.js} +7 -12
  190. package/dist/shared/chunk-IEMCCHM4.js.map +1 -0
  191. package/dist/shared/{chunk-TB3X4LRQ.js → chunk-J45LSQT6.js} +2 -2
  192. package/dist/shared/chunk-J45LSQT6.js.map +1 -0
  193. package/dist/shared/{chunk-WGDUJSSS.js → chunk-JF52BBFD.js} +27 -28
  194. package/dist/shared/chunk-JF52BBFD.js.map +1 -0
  195. package/dist/shared/{chunk-GPCI2N2A.js → chunk-JLDAS3VE.js} +136 -33
  196. package/dist/shared/chunk-JLDAS3VE.js.map +1 -0
  197. package/dist/shared/{chunk-SE6O65HC.js → chunk-JSDKK5QN.js} +10 -23
  198. package/dist/shared/chunk-JSDKK5QN.js.map +1 -0
  199. package/dist/shared/chunk-JW7MQAU4.js +354 -0
  200. package/dist/shared/chunk-JW7MQAU4.js.map +1 -0
  201. package/dist/shared/{chunk-RV7AYVFV.js → chunk-KKWT3OXF.js} +4 -19
  202. package/dist/shared/chunk-KKWT3OXF.js.map +1 -0
  203. package/dist/shared/{chunk-TEO6TJOM.js → chunk-KQH6V22E.js} +36 -35
  204. package/dist/shared/{chunk-TEO6TJOM.js.map → chunk-KQH6V22E.js.map} +1 -1
  205. package/dist/shared/{chunk-3KLRW4I2.js → chunk-LGDDJJHK.js} +212 -156
  206. package/dist/shared/chunk-LGDDJJHK.js.map +1 -0
  207. package/dist/shared/{chunk-QL3T5HJQ.js → chunk-LGGPCCCY.js} +3 -3
  208. package/dist/shared/chunk-LGGPCCCY.js.map +1 -0
  209. package/dist/shared/{chunk-2HO4FHLM.js → chunk-LPAQ47C6.js} +137 -171
  210. package/dist/shared/chunk-LPAQ47C6.js.map +1 -0
  211. package/dist/shared/chunk-MO6CRLQA.js +73 -0
  212. package/dist/shared/chunk-MO6CRLQA.js.map +1 -0
  213. package/dist/shared/{chunk-SHUGHJ7V.js → chunk-MYOLWTB2.js} +29 -32
  214. package/dist/shared/chunk-MYOLWTB2.js.map +1 -0
  215. package/dist/shared/{chunk-Z2NTDFB4.js → chunk-O24RDXZS.js} +34 -34
  216. package/dist/shared/chunk-O24RDXZS.js.map +1 -0
  217. package/dist/shared/{chunk-BPBKHEQ5.js → chunk-OJ6KL7FU.js} +1 -8
  218. package/dist/shared/chunk-OJ6KL7FU.js.map +1 -0
  219. package/dist/shared/{chunk-GCQURRVB.js → chunk-PF75LW33.js} +24 -27
  220. package/dist/shared/chunk-PF75LW33.js.map +1 -0
  221. package/dist/shared/{chunk-EWSPTRDL.js → chunk-QEJGPYTB.js} +132 -48
  222. package/dist/shared/chunk-QEJGPYTB.js.map +1 -0
  223. package/dist/shared/{chunk-P3RH5URN.js → chunk-SK2O7GFC.js} +17 -18
  224. package/dist/shared/chunk-SK2O7GFC.js.map +1 -0
  225. package/dist/shared/{chunk-UQF52PWK.js → chunk-SQXZNGQF.js} +8 -23
  226. package/dist/shared/chunk-SQXZNGQF.js.map +1 -0
  227. package/dist/shared/{chunk-NTLAKMMQ.js → chunk-SRYBJ6NQ.js} +6 -17
  228. package/dist/shared/chunk-SRYBJ6NQ.js.map +1 -0
  229. package/dist/shared/{chunk-O5PLB3YB.js → chunk-T6C3NG2L.js} +68 -59
  230. package/dist/shared/chunk-T6C3NG2L.js.map +1 -0
  231. package/dist/shared/{chunk-U7TVEPKA.js → chunk-TBT2PTGB.js} +41 -33
  232. package/dist/shared/chunk-TBT2PTGB.js.map +1 -0
  233. package/dist/shared/{chunk-CKFRSHR2.js → chunk-U4KZUX37.js} +18 -19
  234. package/dist/shared/chunk-U4KZUX37.js.map +1 -0
  235. package/dist/shared/{chunk-4WI23M7W.js → chunk-VSLRTXLF.js} +11 -4
  236. package/dist/shared/chunk-VSLRTXLF.js.map +1 -0
  237. package/dist/shared/{chunk-BHC2A43S.js → chunk-VTCHJT4O.js} +3 -3
  238. package/dist/shared/{chunk-BHC2A43S.js.map → chunk-VTCHJT4O.js.map} +1 -1
  239. package/dist/shared/{chunk-DRTGM2UJ.js → chunk-W2RFDII5.js} +3 -3
  240. package/dist/shared/chunk-W2RFDII5.js.map +1 -0
  241. package/dist/shared/{chunk-Y74LZNND.js → chunk-WPZV3LYL.js} +4 -10
  242. package/dist/shared/chunk-WPZV3LYL.js.map +1 -0
  243. package/dist/shared/chunk-XFZQGRRL.js +101 -0
  244. package/dist/shared/chunk-XFZQGRRL.js.map +1 -0
  245. package/dist/shared/{chunk-QQQ3FYPG.js → chunk-XK2CERPB.js} +147 -31
  246. package/dist/shared/chunk-XK2CERPB.js.map +1 -0
  247. package/dist/shared/chunk-XNRSL6FL.js +78 -0
  248. package/dist/shared/chunk-XNRSL6FL.js.map +1 -0
  249. package/dist/shared/{chunk-2RK3CPYJ.js → chunk-XXPSM6UA.js} +9 -12
  250. package/dist/shared/chunk-XXPSM6UA.js.map +1 -0
  251. package/dist/shared/{chunk-ZLYIRH2B.js → chunk-ZRBTAC3G.js} +3 -18
  252. package/dist/shared/chunk-ZRBTAC3G.js.map +1 -0
  253. package/dist/shared/{chunk-Z35I5JM5.js → chunk-ZVJNRKT4.js} +18 -20
  254. package/dist/shared/chunk-ZVJNRKT4.js.map +1 -0
  255. package/dist/shared/context.d.ts +402 -22
  256. package/dist/shared/context.d.ts.map +1 -1
  257. package/dist/shared/context.js +93 -0
  258. package/dist/shared/context.js.map +1 -1
  259. package/dist/shared/datarecords/external/airtable/types.d.ts +1 -1
  260. package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
  261. package/dist/shared/datarecords/external/airtable/types.js +2 -1
  262. package/dist/shared/datarecords/types.d.ts +10 -63
  263. package/dist/shared/datarecords/types.d.ts.map +1 -1
  264. package/dist/shared/datarecords/types.js +5 -6
  265. package/dist/shared/datasources/external/instagram/feed/schema.d.ts +1 -1
  266. package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
  267. package/dist/shared/datasources/external/instagram/feed/schema.js +4 -1
  268. package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
  269. package/dist/shared/datasources/external/mastodon/status/schema.d.ts +6 -6
  270. package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
  271. package/dist/shared/datasources/external/mastodon/status/schema.js +6 -19
  272. package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
  273. package/dist/shared/datasources/external/meta/oauth/config.d.ts +2 -2
  274. package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
  275. package/dist/shared/datasources/external/meta/oauth/config.js +4 -1
  276. package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
  277. package/dist/shared/datasources/external/threads/media/fetcher.js +3 -3
  278. package/dist/shared/datasources/external/threads/media/schema.d.ts +1 -1
  279. package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
  280. package/dist/shared/datasources/external/threads/media/schema.js +4 -8
  281. package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
  282. package/dist/shared/datasources/internal/blog/schema.d.ts +1 -1
  283. package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
  284. package/dist/shared/datasources/internal/blog/schema.js +4 -1
  285. package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
  286. package/dist/shared/datasources/types.d.ts +25 -25
  287. package/dist/shared/datasources/types.d.ts.map +1 -1
  288. package/dist/shared/datasources/types.js +3 -16
  289. package/dist/shared/datasources.d.ts +1 -1
  290. package/dist/shared/datasources.d.ts.map +1 -1
  291. package/dist/shared/datasources.js +1 -3
  292. package/dist/shared/datasources.js.map +1 -1
  293. package/dist/shared/images.d.ts +1 -1
  294. package/dist/shared/images.d.ts.map +1 -1
  295. package/dist/shared/images.js +4 -38
  296. package/dist/shared/images.js.map +1 -1
  297. package/dist/shared/page.d.ts +139 -22
  298. package/dist/shared/page.d.ts.map +1 -1
  299. package/dist/shared/page.js +51 -49
  300. package/dist/shared/responsive.js +1 -1
  301. package/dist/shared/site.d.ts +80 -197
  302. package/dist/shared/site.d.ts.map +1 -1
  303. package/dist/shared/site.js +55 -114
  304. package/dist/shared/site.js.map +1 -1
  305. package/dist/shared/sitemap.d.ts +6 -327
  306. package/dist/shared/sitemap.d.ts.map +1 -1
  307. package/dist/shared/sitemap.js +50 -58
  308. package/dist/shared/theme.d.ts +0 -37
  309. package/dist/shared/theme.d.ts.map +1 -1
  310. package/dist/shared/theme.js +4 -21
  311. package/dist/shared/utils/llm.d.ts +1 -10
  312. package/dist/shared/utils/llm.d.ts.map +1 -1
  313. package/dist/shared/utils/llm.js +1 -18
  314. package/dist/shared/utils/schema.d.ts +3 -2
  315. package/dist/shared/utils/schema.d.ts.map +1 -1
  316. package/dist/shared/utils/schema.js +2 -17
  317. package/dist/shared/utils/string-enum.d.ts +9 -3
  318. package/dist/shared/utils/string-enum.d.ts.map +1 -1
  319. package/dist/shared/utils/string-enum.js +1 -1
  320. package/package.json +21 -5
  321. package/src/shared/ai/schemas.ts +41 -10
  322. package/src/shared/ai/types.ts +78 -76
  323. package/src/shared/attributes.ts +56 -46
  324. package/src/shared/brick-manifest.ts +5 -6
  325. package/src/shared/bricks/manifests/_types.ts +9 -0
  326. package/src/shared/bricks/manifests/accordion.manifest.ts +138 -171
  327. package/src/shared/bricks/manifests/all-manifests.ts +1 -0
  328. package/src/shared/bricks/manifests/all-props.ts +165 -0
  329. package/src/shared/bricks/manifests/box.manifest.ts +214 -150
  330. package/src/shared/bricks/manifests/button.manifest.ts +204 -79
  331. package/src/shared/bricks/manifests/card.manifest.ts +229 -43
  332. package/src/shared/bricks/manifests/carousel.manifest.ts +165 -35
  333. package/src/shared/bricks/manifests/footer.manifest.ts +18 -20
  334. package/src/shared/bricks/manifests/form.manifest.ts +136 -22
  335. package/src/shared/bricks/manifests/hero.manifest.ts +121 -38
  336. package/src/shared/bricks/manifests/html.manifest.ts +2 -5
  337. package/src/shared/bricks/manifests/icon.manifest.ts +225 -46
  338. package/src/shared/bricks/manifests/image.manifest.ts +125 -21
  339. package/src/shared/bricks/manifests/images-gallery.manifest.ts +15 -20
  340. package/src/shared/bricks/manifests/map.manifest.ts +12 -15
  341. package/src/shared/bricks/manifests/navbar.manifest.ts +22 -26
  342. package/src/shared/bricks/manifests/sidebar.manifest.ts +11 -14
  343. package/src/shared/bricks/manifests/social-links.manifest.ts +19 -24
  344. package/src/shared/bricks/manifests/spacer.manifest.ts +2 -5
  345. package/src/shared/bricks/manifests/table.manifest.ts +17 -20
  346. package/src/shared/bricks/manifests/tabs.manifest.ts +16 -21
  347. package/src/shared/bricks/manifests/testimonials.manifest.ts +23 -25
  348. package/src/shared/bricks/manifests/text.manifest.ts +47 -29
  349. package/src/shared/bricks/manifests/timeline.manifest.ts +31 -29
  350. package/src/shared/bricks/manifests/video.manifest.ts +11 -15
  351. package/src/shared/bricks/props/align.ts +0 -13
  352. package/src/shared/bricks/props/background.ts +1 -14
  353. package/src/shared/bricks/props/border.ts +2 -13
  354. package/src/shared/bricks/props/color-preset.ts +9 -10
  355. package/src/shared/bricks/props/color.ts +7 -18
  356. package/src/shared/bricks/props/common.ts +6 -7
  357. package/src/shared/bricks/props/css-length.ts +0 -5
  358. package/src/shared/bricks/props/datasource.ts +72 -74
  359. package/src/shared/bricks/props/direction.ts +1 -5
  360. package/src/shared/bricks/props/dynamic.ts +0 -11
  361. package/src/shared/bricks/props/effects.ts +0 -9
  362. package/src/shared/bricks/props/geolocation.ts +3 -3
  363. package/src/shared/bricks/props/helpers.ts +1 -1
  364. package/src/shared/bricks/props/image.ts +4 -16
  365. package/src/shared/bricks/props/string.ts +6 -19
  366. package/src/shared/bricks/props/tags.ts +0 -5
  367. package/src/shared/bricks/props/tests/background.test.ts +1 -15
  368. package/src/shared/bricks/props/tests/image.test.ts +3 -9
  369. package/src/shared/bricks/props/tests/string.test.ts +2 -26
  370. package/src/shared/bricks/props/text.ts +0 -12
  371. package/src/shared/bricks/props/types.ts +4 -3
  372. package/src/shared/bricks.ts +164 -1025
  373. package/src/shared/context.ts +24 -23
  374. package/src/shared/datarecords/external/airtable/types.ts +12 -11
  375. package/src/shared/datarecords/types.ts +22 -44
  376. package/src/shared/datasources/external/instagram/feed/schema.ts +2 -1
  377. package/src/shared/datasources/external/mastodon/status/schema.ts +4 -19
  378. package/src/shared/datasources/external/meta/oauth/config.ts +2 -1
  379. package/src/shared/datasources/external/threads/media/schema.ts +2 -8
  380. package/src/shared/datasources/internal/blog/schema.ts +2 -1
  381. package/src/shared/datasources/types.ts +64 -79
  382. package/src/shared/datasources.ts +2 -4
  383. package/src/shared/images.ts +12 -18
  384. package/src/shared/page.ts +9 -2
  385. package/src/shared/site.ts +3 -3
  386. package/src/shared/sitemap.ts +3 -68
  387. package/src/shared/tests/attributes.test.ts +2 -0
  388. package/src/shared/theme.ts +81 -96
  389. package/src/shared/utils/llm.ts +5 -191
  390. package/src/shared/utils/schema.ts +71 -244
  391. package/src/shared/utils/string-enum.ts +25 -4
  392. package/src/shared/utils/tests/schema.test.ts +112 -314
  393. package/dist/shared/chunk-2HO4FHLM.js.map +0 -1
  394. package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
  395. package/dist/shared/chunk-3KLRW4I2.js.map +0 -1
  396. package/dist/shared/chunk-4WI23M7W.js.map +0 -1
  397. package/dist/shared/chunk-6E42XWFH.js +0 -103
  398. package/dist/shared/chunk-6E42XWFH.js.map +0 -1
  399. package/dist/shared/chunk-A2QPY54H.js +0 -13
  400. package/dist/shared/chunk-A2QPY54H.js.map +0 -1
  401. package/dist/shared/chunk-BMWRR4DI.js.map +0 -1
  402. package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
  403. package/dist/shared/chunk-BW6EFRSF.js +0 -794
  404. package/dist/shared/chunk-BW6EFRSF.js.map +0 -1
  405. package/dist/shared/chunk-CKFRSHR2.js.map +0 -1
  406. package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
  407. package/dist/shared/chunk-D4YQ6ABM.js +0 -338
  408. package/dist/shared/chunk-D4YQ6ABM.js.map +0 -1
  409. package/dist/shared/chunk-DRTGM2UJ.js.map +0 -1
  410. package/dist/shared/chunk-EQMU6NIU.js +0 -1222
  411. package/dist/shared/chunk-EQMU6NIU.js.map +0 -1
  412. package/dist/shared/chunk-EWSPTRDL.js.map +0 -1
  413. package/dist/shared/chunk-F22LDHEO.js.map +0 -1
  414. package/dist/shared/chunk-FVU5PXRC.js +0 -244
  415. package/dist/shared/chunk-FVU5PXRC.js.map +0 -1
  416. package/dist/shared/chunk-GCQURRVB.js.map +0 -1
  417. package/dist/shared/chunk-GPCI2N2A.js.map +0 -1
  418. package/dist/shared/chunk-GRMY35BU.js.map +0 -1
  419. package/dist/shared/chunk-JK2FWFJU.js +0 -15
  420. package/dist/shared/chunk-JK2FWFJU.js.map +0 -1
  421. package/dist/shared/chunk-LXAO3JA6.js.map +0 -1
  422. package/dist/shared/chunk-MLZT7MRQ.js.map +0 -1
  423. package/dist/shared/chunk-NT3IW52F.js +0 -260
  424. package/dist/shared/chunk-NT3IW52F.js.map +0 -1
  425. package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
  426. package/dist/shared/chunk-O5PLB3YB.js.map +0 -1
  427. package/dist/shared/chunk-P3RH5URN.js.map +0 -1
  428. package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
  429. package/dist/shared/chunk-QL3T5HJQ.js.map +0 -1
  430. package/dist/shared/chunk-QQQ3FYPG.js.map +0 -1
  431. package/dist/shared/chunk-QSND5IWT.js.map +0 -1
  432. package/dist/shared/chunk-RV7AYVFV.js.map +0 -1
  433. package/dist/shared/chunk-SE6O65HC.js.map +0 -1
  434. package/dist/shared/chunk-SHUGHJ7V.js.map +0 -1
  435. package/dist/shared/chunk-TB3X4LRQ.js.map +0 -1
  436. package/dist/shared/chunk-TFGGYU6Y.js.map +0 -1
  437. package/dist/shared/chunk-TNMNMYOB.js.map +0 -1
  438. package/dist/shared/chunk-U7TVEPKA.js.map +0 -1
  439. package/dist/shared/chunk-UQF52PWK.js.map +0 -1
  440. package/dist/shared/chunk-V3UA3LRK.js.map +0 -1
  441. package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
  442. package/dist/shared/chunk-WGDUJSSS.js.map +0 -1
  443. package/dist/shared/chunk-WKN566LN.js +0 -29
  444. package/dist/shared/chunk-WKN566LN.js.map +0 -1
  445. package/dist/shared/chunk-X6N463D4.js +0 -222
  446. package/dist/shared/chunk-X6N463D4.js.map +0 -1
  447. package/dist/shared/chunk-X75YV73Q.js +0 -178
  448. package/dist/shared/chunk-X75YV73Q.js.map +0 -1
  449. package/dist/shared/chunk-Y74LZNND.js.map +0 -1
  450. package/dist/shared/chunk-Z2NTDFB4.js.map +0 -1
  451. package/dist/shared/chunk-Z35I5JM5.js.map +0 -1
  452. package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
  453. package/dist/shared/schema-registry.d.ts +0 -5
  454. package/dist/shared/schema-registry.d.ts.map +0 -1
  455. package/dist/shared/schema-registry.js +0 -119
  456. package/dist/shared/schema-registry.js.map +0 -1
  457. package/dist/shared/tests/schema-registry.test.d.ts +0 -2
  458. package/dist/shared/tests/schema-registry.test.d.ts.map +0 -1
  459. package/dist/shared/utils/schema-registry.d.ts +0 -5
  460. package/dist/shared/utils/schema-registry.d.ts.map +0 -1
  461. package/dist/shared/utils/schema-registry.js +0 -29
  462. package/dist/shared/utils/tests/schema-registry.test.d.ts +0 -2
  463. package/dist/shared/utils/tests/schema-registry.test.d.ts.map +0 -1
  464. package/dist/shared/utils/typed-ref.d.ts +0 -43
  465. package/dist/shared/utils/typed-ref.d.ts.map +0 -1
  466. package/dist/shared/utils/typed-ref.js +0 -10
  467. package/dist/shared/utils/typed-ref.js.map +0 -1
  468. package/src/shared/schema-registry.ts +0 -82
  469. package/src/shared/tests/schema-registry.test.ts +0 -14
  470. package/src/shared/utils/schema-registry.ts +0 -82
  471. package/src/shared/utils/tests/schema-registry.test.ts +0 -13
  472. package/src/shared/utils/typed-ref.ts +0 -53
  473. /package/dist/shared/{utils/schema-registry.js.map → bricks/manifests/_types.js.map} +0 -0
@@ -1,22 +1,38 @@
1
1
  import { defineBrickManifest } from "~/shared/brick-manifest";
2
2
  import { defineProps } from "../props/helpers";
3
- import { textContentRef } from "../props/text";
3
+ import { textContent } from "../props/text";
4
4
  import { BsCardText } from "react-icons/bs";
5
- import { imageRef } from "../props/image";
5
+ import { image } from "../props/image";
6
6
  import { type Static, Type } from "@sinclair/typebox";
7
7
  import type { BrickProps } from "../props/types";
8
- import { shadowRef } from "../props/effects";
9
- import { borderRef, roundingRef } from "../props/border";
10
- import { colorPresetRef } from "../props/color-preset";
11
- import { loopRef } from "../props/dynamic";
8
+ import { shadow } from "../props/effects";
9
+ import { border, rounding } from "../props/border";
10
+ import { colorPreset } from "../props/color-preset";
11
+ import { loop } from "../props/dynamic";
12
12
  import { StringEnum } from "~/shared/utils/string-enum";
13
+ import { urlOrPageId } from "../props/string";
14
+ import type { BrickExample } from "./_types";
13
15
 
14
16
  export const manifest = defineBrickManifest({
15
17
  type: "card",
16
18
  name: "Card",
17
19
  description: "A card that can have a title, image, and content.",
18
- aiInstructions:
19
- "Use this brick to create cards that contain an image, title, and text content. Cards are useful for displaying information in a concise and visually appealing way.",
20
+ aiInstructions: `Use this brick to create visually distinct content blocks (product, feature, testimonial, event, article, CTA, etc.).
21
+
22
+ Guidelines:
23
+ - Button is REQUIRED.
24
+ - Always provide a short action label (1-3 words) and pick a color matching semantic weight (primary/accent for primary actions, neutral/secondary for low emphasis).
25
+ - Image is OPTIONAL. If present you may set imagePosition to top | middle | bottom. Default is top.
26
+ - Pick middle for vertically centered feature highlights, bottom for caption-first layouts.
27
+ - Set noTitle: true when the card is intentionally title-less (e.g. a quote card or pure media focus).
28
+ - Do NOT include an empty title string alongside noTitle.
29
+ - Use dynamic tokens (e.g. {{products.price}}) instead of duplicating literal values.
30
+ - Prefer gradient presets for more visual emphasis (e.g. primary-gradient-400 with gradientDirection).
31
+ - border + rounding + shadow should be cohesive: stronger borders pair well with larger rounding + moderate shadow; minimal / flat cards may use border-0 + no shadow.
32
+ - For internal navigation you can supply a page ID (e.g. 'about') OR a relative/absolute URL (e.g. '/pricing', 'https://example.com').
33
+ - Keep HTML inside text minimal (<strong>, <em>, <br>) — for richer structure consider multiple bricks instead.
34
+ - Avoid mixing noTitle with large heading text embedded inside the text field — in that case keep a proper title.
35
+ - Return ONLY valid properties defined in the schema; do not invent new ones.`,
20
36
  icon: BsCardText,
21
37
  defaultWidth: { desktop: "400px", mobile: "100%" },
22
38
  minWidth: { desktop: 300 },
@@ -24,14 +40,14 @@ export const manifest = defineBrickManifest({
24
40
  maxWidth: { desktop: 650 },
25
41
  props: defineProps({
26
42
  colorPreset: Type.Optional(
27
- colorPresetRef({
43
+ colorPreset({
28
44
  title: "Color preset",
29
45
  default: { color: "base-100" },
30
46
  }),
31
47
  ),
32
48
 
33
49
  cardImage: Type.Optional(
34
- imageRef({
50
+ image({
35
51
  "ui:responsive": "desktop",
36
52
  metadata: {
37
53
  category: "content",
@@ -39,8 +55,8 @@ export const manifest = defineBrickManifest({
39
55
  }),
40
56
  ),
41
57
  imagePosition: Type.Optional(
42
- StringEnum(["top", "middle", "bottom", "left", "right"], {
43
- enumNames: ["Top", "Middle", "Bottom", "Left", "Right"],
58
+ StringEnum(["top", "middle", "bottom"], {
59
+ enumNames: ["Top", "Middle", "Bottom"],
44
60
  title: "Image Position",
45
61
  description: "Where the image should be placed in the card",
46
62
  default: "top",
@@ -61,52 +77,165 @@ export const manifest = defineBrickManifest({
61
77
  "ui:responsive": "desktop",
62
78
  }),
63
79
  ),
64
- title: Type.Optional(textContentRef({ title: "Title" })),
65
- text: Type.Optional(textContentRef({ title: "Text" })),
80
+ title: Type.Optional(textContent({ title: "Title" })),
81
+ text: Type.Optional(textContent({ title: "Text" })),
66
82
  rounding: Type.Optional(
67
- roundingRef({
83
+ rounding({
68
84
  default: "rounded-md",
69
85
  }),
70
86
  ),
71
87
  border: Type.Optional(
72
- borderRef({
88
+ border({
73
89
  // default: { width: "border", color: "border-base-300" },
74
90
  }),
75
91
  ),
76
92
  shadow: Type.Optional(
77
- shadowRef({
93
+ shadow({
78
94
  default: "shadow-sm",
79
95
  }),
80
96
  ),
81
- loop: Type.Optional(loopRef()),
97
+ loop: Type.Optional(loop()),
98
+ button: Type.Object(
99
+ {
100
+ label: Type.String({
101
+ title: "Button label",
102
+ default: "Click me",
103
+ examples: ["Learn more", "Buy now", "Sign up"],
104
+ metadata: {
105
+ category: "content",
106
+ },
107
+ }),
108
+ url: urlOrPageId({
109
+ title: "Button URL",
110
+ description: "The URL the button should link to.",
111
+ metadata: {
112
+ category: "content",
113
+ },
114
+ }),
115
+ color: Type.Optional(
116
+ StringEnum(["btn-neutral", "btn-primary", "btn-secondary", "btn-accent"], {
117
+ enumNames: ["Neutral", "Primary", "Secondary", "Accent"],
118
+ title: "Color",
119
+ default: "btn-primary",
120
+ }),
121
+ ),
122
+ },
123
+ { title: "Button", description: "Button displayed at the bottom of the card" },
124
+ ),
82
125
  }),
83
126
  });
84
127
 
85
128
  export type Manifest = typeof manifest;
86
129
 
87
- export const examples: {
88
- description: string;
89
- type: string;
90
- props: BrickProps<Manifest>["brick"]["props"];
91
- }[] = [
130
+ export const examples: BrickExample<Manifest>[] = [
92
131
  {
93
132
  description: "A simple card with a title and content",
94
133
  type: "card",
95
134
  props: {
96
135
  title: "Card Title",
97
136
  text: "This is the body of the card.",
137
+ button: {
138
+ label: "Learn more",
139
+ url: "/learn-more",
140
+ color: "btn-primary",
141
+ },
98
142
  },
99
143
  },
144
+ // IMAGE POSITION MIDDLE VARIANT
100
145
  {
101
- description: "Product card with image on the left",
146
+ description: "Feature highlight card with centered image (imagePosition=middle)",
102
147
  type: "card",
103
148
  props: {
104
- cardImage: {
105
- src: "https://via.placeholder.com/200x200",
106
- alt: "Product image",
107
- },
108
- title: "Premium Headphones",
109
- text: "High-quality wireless headphones with noise cancellation and 30-hour battery life.",
149
+ cardImage: { src: "https://via.placeholder.com/420x240", alt: "Feature visual" },
150
+ imagePosition: "middle",
151
+ title: "Blazing Performance",
152
+ text: "Our new engine reduces processing time by 45% while maintaining reliability.",
153
+ colorPreset: { color: "primary-100" },
154
+ border: { width: "border", color: "border-primary-200" },
155
+ rounding: "rounded-lg",
156
+ shadow: "shadow-sm",
157
+ button: { label: "Learn More", url: "/features/performance", color: "btn-primary" },
158
+ },
159
+ },
160
+ // IMAGE POSITION BOTTOM VARIANT
161
+ {
162
+ description: "Case study card with image at the bottom (imagePosition=bottom)",
163
+ type: "card",
164
+ props: {
165
+ title: "Case Study: ScaleOps",
166
+ text: "How ScaleOps handled 10x growth with zero downtime using our platform.",
167
+ cardImage: { src: "https://via.placeholder.com/600x260", alt: "Scale graph" },
168
+ imagePosition: "bottom",
169
+ colorPreset: { color: "secondary-50" },
170
+ rounding: "rounded-md",
171
+ shadow: "shadow-sm",
172
+ button: { label: "Read Study", url: "/cases/scaleops", color: "btn-secondary" },
173
+ },
174
+ },
175
+ // NO TITLE VARIANT
176
+ {
177
+ description: "Quote / testimonial style card without a title (uses noTitle=true)",
178
+ type: "card",
179
+ props: {
180
+ noTitle: true,
181
+ text: '"This toolkit accelerated our launch by weeks — the component quality is outstanding."<br><em>— CTO, FinEdge</em>',
182
+ colorPreset: { color: "neutral-100" },
183
+ border: { width: "border", color: "border-neutral-300" },
184
+ rounding: "rounded-xl",
185
+ shadow: "shadow-sm",
186
+ button: { label: "See More", url: "/testimonials", color: "btn-neutral" },
187
+ },
188
+ },
189
+ // INTERNAL PAGE ID LINK VARIANT
190
+ {
191
+ description: "Internal navigation card using a page ID instead of a URL",
192
+ type: "card",
193
+ props: {
194
+ title: "About Our Mission",
195
+ text: "Learn how we're building an open, extensible site generation platform for modern teams.",
196
+ colorPreset: { color: "base-100" },
197
+ rounding: "rounded-md",
198
+ button: { label: "About Us", url: "about", color: "btn-primary" },
199
+ },
200
+ },
201
+ // GRADIENT & STRONG BORDER VARIANT
202
+ {
203
+ description: "High-emphasis promotional card using gradient background and thick border",
204
+ type: "card",
205
+ props: {
206
+ title: "Limited Time Offer",
207
+ text: "Upgrade now and receive a complimentary strategy session plus extended analytics access.",
208
+ colorPreset: { color: "primary-gradient-400", gradientDirection: "bg-gradient-to-tr" },
209
+ border: { width: "border-4", color: "border-primary-400" },
210
+ rounding: "rounded-xl",
211
+ shadow: "shadow-lg",
212
+ button: { label: "Upgrade", url: "/pricing", color: "btn-accent" },
213
+ },
214
+ },
215
+ // MINIMAL / FLAT VARIANT (no border, no shadow, subtle preset)
216
+ {
217
+ description: "Minimal flat information card (border-0, no shadow)",
218
+ type: "card",
219
+ props: {
220
+ title: "Maintenance Window",
221
+ text: "Scheduled maintenance on Saturday 02:00–03:00 UTC. API responses may be delayed.",
222
+ colorPreset: { color: "neutral-50" },
223
+ border: { width: "border-0", color: "border-neutral-200" },
224
+ button: { label: "Status Page", url: "/status", color: "btn-neutral" },
225
+ },
226
+ },
227
+ // DARK / INVERTED VARIANT
228
+ {
229
+ description: "Dark themed spotlight card (primary-800 background)",
230
+ type: "card",
231
+ props: {
232
+ title: "Night Mode Preview",
233
+ text: "Experience the new adaptive dark theme optimized for low ambient light environments.",
234
+ colorPreset: { color: "primary-800" },
235
+ border: { width: "border", color: "border-primary-600" },
236
+ rounding: "rounded-lg",
237
+ shadow: "shadow-md",
238
+ button: { label: "Preview", url: "/themes/dark", color: "btn-primary" },
110
239
  },
111
240
  },
112
241
  {
@@ -115,29 +244,31 @@ export const examples: {
115
244
  props: {
116
245
  title: "Key Feature",
117
246
  text: "This feature provides exceptional value and enhances user experience significantly.",
247
+ colorPreset: { color: "primary-50" },
248
+ border: { width: "border", color: "border-primary-200" },
249
+ rounding: "rounded-lg",
250
+ shadow: "shadow-sm",
251
+ button: {
252
+ label: "Discover More",
253
+ url: "/features",
254
+ color: "btn-primary",
255
+ },
118
256
  },
119
257
  },
120
258
  {
121
259
  description: "Blog post card with image at the bottom",
122
260
  type: "card",
123
261
  props: {
124
- title: "The Future of Technology",
262
+ title: "Future of Tech",
125
263
  text: "Exploring emerging trends and innovations that will shape our digital landscape in the coming decade.",
126
264
  cardImage: {
127
265
  src: "https://via.placeholder.com/400x200",
128
266
  alt: "Technology concept",
129
267
  },
130
- },
131
- },
132
- {
133
- description: "Testimonial card with right-side image",
134
- type: "card",
135
- props: {
136
- title: "Customer Review",
137
- text: '"This product exceeded my expectations. The quality is outstanding and the customer service is top-notch!"',
138
- cardImage: {
139
- src: "https://via.placeholder.com/150x150",
140
- alt: "Customer photo",
268
+ button: {
269
+ label: "Read More",
270
+ url: "/blog/{{ blogPosts.$slug }}",
271
+ color: "btn-primary",
141
272
  },
142
273
  },
143
274
  },
@@ -147,6 +278,11 @@ export const examples: {
147
278
  props: {
148
279
  title: "Simple Announcement",
149
280
  text: "Important updates will be posted here regularly.",
281
+ button: {
282
+ label: "View Updates",
283
+ url: "/updates",
284
+ color: "btn-neutral",
285
+ },
150
286
  },
151
287
  },
152
288
  {
@@ -159,6 +295,11 @@ export const examples: {
159
295
  },
160
296
  title: "Annual Conference 2025",
161
297
  text: "Join us for three days of inspiring talks, networking opportunities, and hands-on workshops.",
298
+ button: {
299
+ label: "Register Now",
300
+ url: "/events/conference-2025",
301
+ color: "btn-primary",
302
+ },
162
303
  },
163
304
  },
164
305
  {
@@ -171,6 +312,11 @@ export const examples: {
171
312
  },
172
313
  title: "Breaking News Update",
173
314
  text: "Latest developments in the ongoing story with expert analysis and community reactions.",
315
+ button: {
316
+ label: "Read Full Article",
317
+ url: "/news/breaking-update",
318
+ color: "btn-secondary",
319
+ },
174
320
  },
175
321
  },
176
322
  {
@@ -179,6 +325,11 @@ export const examples: {
179
325
  props: {
180
326
  title: "Get Started Today",
181
327
  text: "Transform your workflow with our powerful tools. Sign up now and get 30 days free!",
328
+ button: {
329
+ label: "Sign Up Now",
330
+ url: "/signup",
331
+ color: "btn-primary",
332
+ },
182
333
  },
183
334
  },
184
335
  {
@@ -195,6 +346,11 @@ export const examples: {
195
346
  border: { width: "border", color: "border-primary-200" },
196
347
  rounding: "rounded-lg",
197
348
  shadow: "shadow-md",
349
+ button: {
350
+ label: "Buy Now",
351
+ url: "{{products.purchaseUrl}}",
352
+ color: "btn-primary",
353
+ },
198
354
  loop: {
199
355
  over: "products",
200
356
  },
@@ -214,6 +370,11 @@ export const examples: {
214
370
  colorPreset: { color: "neutral-100" },
215
371
  rounding: "rounded-xl",
216
372
  shadow: "shadow-lg",
373
+ button: {
374
+ label: "Contact",
375
+ url: "mailto:{{teamMembers.email}}",
376
+ color: "btn-neutral",
377
+ },
217
378
  loop: {
218
379
  over: "teamMembers",
219
380
  },
@@ -234,6 +395,11 @@ export const examples: {
234
395
  border: { width: "border", color: "border-secondary-300" },
235
396
  rounding: "rounded-md",
236
397
  shadow: "shadow-sm",
398
+ button: {
399
+ label: "Read More",
400
+ url: "{{blogPosts.url}}",
401
+ color: "btn-secondary",
402
+ },
237
403
  loop: {
238
404
  over: "blogPosts",
239
405
  },
@@ -254,6 +420,11 @@ export const examples: {
254
420
  border: { width: "border-2", color: "border-accent-400" },
255
421
  rounding: "rounded-lg",
256
422
  shadow: "shadow-md",
423
+ button: {
424
+ label: "Book Tickets",
425
+ url: "{{upcomingEvents.ticketUrl}}",
426
+ color: "btn-accent",
427
+ },
257
428
  loop: {
258
429
  over: "upcomingEvents",
259
430
  },
@@ -267,12 +438,17 @@ export const examples: {
267
438
  src: "{{customerReviews.customerPhoto}}",
268
439
  alt: "{{customerReviews.customerName}}",
269
440
  },
270
- imagePosition: "left",
441
+ imagePosition: "top",
271
442
  title: "{{customerReviews.customerName}}",
272
443
  text: '"{{customerReviews.review}}"<br><br><strong>Rating: {{customerReviews.rating}}/5 stars</strong><br>{{customerReviews.company}} • {{customerReviews.position}}',
273
444
  colorPreset: { color: "neutral-50" },
274
445
  rounding: "rounded-xl",
275
446
  shadow: "shadow-lg",
447
+ button: {
448
+ label: "See All Reviews",
449
+ url: "/reviews",
450
+ color: "btn-neutral",
451
+ },
276
452
  loop: {
277
453
  over: "customerReviews",
278
454
  },
@@ -293,6 +469,11 @@ export const examples: {
293
469
  border: { width: "border", color: "border-primary-300" },
294
470
  rounding: "rounded-lg",
295
471
  shadow: "shadow-md",
472
+ button: {
473
+ label: "Learn More",
474
+ url: "{{companyServices.detailsUrl}}",
475
+ color: "btn-primary",
476
+ },
296
477
  loop: {
297
478
  over: "companyServices",
298
479
  },
@@ -312,6 +493,11 @@ export const examples: {
312
493
  colorPreset: { color: "secondary-100" },
313
494
  rounding: "rounded-md",
314
495
  shadow: "shadow-sm",
496
+ button: {
497
+ label: "View Project",
498
+ url: "{{portfolioWork.projectUrl}}",
499
+ color: "btn-secondary",
500
+ },
315
501
  loop: {
316
502
  over: "portfolioWork",
317
503
  },