@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,61 @@
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 { BsAlphabetUppercase } from "react-icons/bs";
5
5
  import type { BrickProps } from "../props/types";
6
6
  import { Type } from "@sinclair/typebox";
7
- import { shadowRef, textShadowRef } from "../props/effects";
8
- import { borderRef, roundingRef } from "../props/border";
9
- import { colorPresetRef } from "../props/color-preset";
10
- import { alignItemsRef, justifyContentRef } from "../props/align";
11
- import { cssLengthRef } from "../props/css-length";
7
+ import { shadow, textShadow } from "../props/effects";
8
+ import { border, rounding } from "../props/border";
9
+ import { colorPreset } from "../props/color-preset";
10
+ import { alignItems, justifyContent } from "../props/align";
11
+ import { cssLength } from "../props/css-length";
12
+ import type { BrickExample } from "./_types";
12
13
 
13
14
  export const manifest = defineBrickManifest({
14
15
  type: "hero",
15
16
  category: "basic",
16
17
  name: "Hero",
17
18
  description: "A big textual element for home pages.",
18
- aiInstructions: `Displays a large text element that can be used to display a title and an optional tagline.
19
- Typically used on home pages to grab the user's attention. It's better NOT to provide the colorPreset prop so that the Hero inherits the background of its parent box or section.`,
19
+ aiInstructions: `PURPOSE
20
+ A prominent textual block (main heading + optional tagline) used to introduce a page, product, event, company, or dynamic entity.
21
+
22
+ STRUCTURE
23
+ 1. Always supply 'content' (can be plain text or simple HTML like <h1>, <strong>, <br/>).
24
+ 2. 'tagline' is optional. Prefer concise value (1 short sentence). Omit if not needed.
25
+ 3. Do NOT add buttons, images, forms, lists, or unrelated HTML here (use dedicated bricks for that).
26
+
27
+ COLOR & BACKGROUND
28
+ • Prefer omitting colorPreset so the hero inherits its parent layout background.
29
+ • When you need emphasis use semantic presets: primary-, secondary-, accent-, neutral-, base-*** or gradient variants like primary-gradient-400 (then add gradientDirection).
30
+ • NEVER invent tokens like success-, warning-, danger-, blue-, orange- (they don't exist). Map them to semantic sets (e.g. success -> secondary, warning -> accent, danger -> accent or primary, blue -> primary, orange -> accent).
31
+
32
+ LAYOUT & SPACING
33
+ • Use padding suited to visual weight: landing hero: 5–8rem desktop; simple page intro: 2–4rem.
34
+ • You may provide a mobile override via mobileProps (e.g. smaller padding such as 2rem).
35
+ • Keep justifyContent + alignItems consistent (usually center/center or start/start). Avoid mixing center with start.
36
+
37
+ TYPOGRAPHY
38
+ • 'content' should typically render ONE main heading concept (avoid stacking multiple unrelated headings). Use <br/> to split lines when stylistic.
39
+ • Avoid overly long taglines (>140 chars).
40
+
41
+ DYNAMIC DATA
42
+ • You may interpolate page queries fields fields: {{company.name}}, {{product.name}}, etc.
43
+ • Ensure dynamic tokens exist in the referenced query context. Don't fabricate field names.
44
+
45
+ RESPONSIVE
46
+ • Use mobileProps only for necessary reductions (padding, alignment). Do not duplicate unchanged properties.
47
+
48
+ DON'TS
49
+ ✗ Don't add properties that are not in the schema.
50
+ ✗ Don't wrap everything with extraneous HTML containers.
51
+ ✗ Don't use colorPreset plus a conflicting parent background rationale—choose one.
52
+
53
+ DO
54
+ ✓ Keep content focused.
55
+ ✓ Use semantic colors thoughtfully.
56
+ ✓ Use gradientDirection ONLY with gradient presets.
57
+ ✓ Provide accessible plain text when not using HTML tags.
58
+ `,
20
59
  icon: BsAlphabetUppercase,
21
60
 
22
61
  defaultWidth: { desktop: "60dvw", mobile: "auto" },
@@ -25,29 +64,29 @@ Typically used on home pages to grab the user's attention. It's better NOT to pr
25
64
  staticClasses: "flex-col",
26
65
 
27
66
  props: defineProps({
28
- content: textContentRef({
67
+ content: textContent({
29
68
  title: "Hero title",
30
69
  default: "<h1 style='text-align:center'>Lorem Ipsum<br />dolor sit amet</h1>",
31
70
  }),
32
71
  tagline: Type.Optional(
33
- textContentRef({
72
+ textContent({
34
73
  title: "Hero tagline",
35
- default: "<p style='text-align:center'>Use our platform to build your business with confidence.</p>",
74
+ // default: "<p style='text-align:center'>Use our platform to build your business with confidence.</p>",
36
75
  }),
37
76
  ),
38
77
  colorPreset: Type.Optional(
39
- colorPresetRef({
78
+ colorPreset({
40
79
  title: "Color",
41
80
  }),
42
81
  ),
43
82
 
44
83
  textShadow: Type.Optional(
45
- textShadowRef({
84
+ textShadow({
46
85
  default: "text-shadow-sm",
47
86
  }),
48
87
  ),
49
88
  padding: Type.Optional(
50
- cssLengthRef({
89
+ cssLength({
51
90
  default: "6rem",
52
91
  description: "Padding inside the hero.",
53
92
  "ai:instructions": "Use only a single value like '1rem' or '10px'",
@@ -57,20 +96,18 @@ Typically used on home pages to grab the user's attention. It's better NOT to pr
57
96
  "ui:styleId": "styles:padding",
58
97
  }),
59
98
  ),
60
- rounding: Type.Optional(
61
- roundingRef({
62
- default: "rounded-md",
63
- }),
64
- ),
65
- border: Type.Optional(borderRef()),
66
- shadow: Type.Optional(shadowRef()),
99
+ rounding: rounding({
100
+ default: "rounded-md",
101
+ }),
102
+ border: Type.Optional(border()),
103
+ shadow: Type.Optional(shadow()),
67
104
  justifyContent: Type.Optional(
68
- justifyContentRef({
105
+ justifyContent({
69
106
  default: "justify-center",
70
107
  }),
71
108
  ),
72
109
  alignItems: Type.Optional(
73
- alignItemsRef({
110
+ alignItems({
74
111
  default: "items-center",
75
112
  }),
76
113
  ),
@@ -79,11 +116,7 @@ Typically used on home pages to grab the user's attention. It's better NOT to pr
79
116
 
80
117
  export type Manifest = typeof manifest;
81
118
 
82
- export const examples: {
83
- description: string;
84
- type: string;
85
- props: BrickProps<Manifest>["brick"]["props"];
86
- }[] = [
119
+ export const examples: BrickExample<Manifest>[] = [
87
120
  {
88
121
  description: "Simple welcome hero with primary background",
89
122
  type: "hero",
@@ -148,28 +181,29 @@ export const examples: {
148
181
  },
149
182
  },
150
183
  {
151
- description: "Restaurant hero with warm colors and rounded design",
184
+ description: "Restaurant hero with warm colors and rounded design (accent mapping for former 'orange')",
152
185
  type: "hero",
153
186
  props: {
154
187
  content: "Authentic Italian Cuisine",
155
188
  tagline: "Fresh ingredients, traditional recipes, unforgettable flavors",
156
189
  padding: "4rem",
157
190
  colorPreset: {
158
- color: "orange-600",
191
+ color: "accent-600",
159
192
  },
160
193
  rounding: "rounded-xl",
161
194
  shadow: "shadow-lg",
162
195
  },
163
196
  },
164
197
  {
165
- description: "Tech company hero with success gradient and modern styling",
198
+ description:
199
+ "Tech company hero with secondary gradient (mapped from former 'success') and modern styling",
166
200
  type: "hero",
167
201
  props: {
168
202
  content: "Innovation Redefined",
169
203
  tagline: "Pushing the boundaries of what's possible with AI technology",
170
204
  padding: "5rem",
171
205
  colorPreset: {
172
- color: "success-500",
206
+ color: "secondary-gradient-400",
173
207
  gradientDirection: "bg-gradient-to-r",
174
208
  },
175
209
  textShadow: "text-shadow-lg",
@@ -180,14 +214,14 @@ export const examples: {
180
214
  },
181
215
  },
182
216
  {
183
- description: "Medical practice hero with trust-inspiring design",
217
+ description: "Medical practice hero with trust-inspiring design (primary mapping for former 'blue')",
184
218
  type: "hero",
185
219
  props: {
186
220
  content: "Your Health, Our Priority",
187
221
  tagline: "Comprehensive healthcare services with compassionate care",
188
222
  padding: "4rem",
189
223
  colorPreset: {
190
- color: "blue-500",
224
+ color: "primary-500",
191
225
  },
192
226
  rounding: "rounded-lg",
193
227
  justifyContent: "justify-start",
@@ -195,14 +229,15 @@ export const examples: {
195
229
  },
196
230
  },
197
231
  {
198
- description: "Creative agency hero with warning accent and diagonal gradient",
232
+ description:
233
+ "Creative agency hero with accent gradient (mapped from former 'warning') and diagonal gradient",
199
234
  type: "hero",
200
235
  props: {
201
236
  content: "Creative Solutions",
202
237
  tagline: "Bold designs that make your brand unforgettable",
203
238
  padding: "3rem",
204
239
  colorPreset: {
205
- color: "warning-400",
240
+ color: "accent-gradient-300",
206
241
  gradientDirection: "bg-gradient-to-tl",
207
242
  },
208
243
  shadow: "shadow-xl",
@@ -213,14 +248,14 @@ export const examples: {
213
248
  },
214
249
  },
215
250
  {
216
- description: "Fitness studio hero with danger color and strong presence",
251
+ description: "Fitness studio hero with accent strong presence (mapping former 'danger')",
217
252
  type: "hero",
218
253
  props: {
219
254
  content: "Transform Your Body",
220
255
  tagline: "High-intensity training programs that deliver real results",
221
256
  padding: "5rem",
222
257
  colorPreset: {
223
- color: "danger-600",
258
+ color: "accent-600",
224
259
  },
225
260
  textShadow: "text-shadow-md",
226
261
  rounding: "rounded-2xl",
@@ -246,6 +281,54 @@ export const examples: {
246
281
  rounding: "rounded-md",
247
282
  },
248
283
  },
284
+ {
285
+ description: "Inverted dark hero using neutral-800 background and left alignment",
286
+ type: "hero",
287
+ props: {
288
+ content: "Experience Powerful Automation",
289
+ tagline: "Scale operations with intelligent workflows",
290
+ padding: "5rem",
291
+ colorPreset: { color: "neutral-800" },
292
+ justifyContent: "justify-start",
293
+ alignItems: "items-start",
294
+ textShadow: "text-shadow-sm",
295
+ },
296
+ },
297
+ {
298
+ description: "Compact hero without tagline (no colorPreset to inherit parent)",
299
+ type: "hero",
300
+ props: {
301
+ content: "Documentation",
302
+ padding: "2rem",
303
+ justifyContent: "justify-start",
304
+ alignItems: "items-start",
305
+ },
306
+ },
307
+ {
308
+ description: "Responsive hero with large desktop padding and reduced mobile padding",
309
+ type: "hero",
310
+ props: {
311
+ content: "All-In-One Platform",
312
+ tagline: "Design • Launch • Grow",
313
+ padding: "8rem",
314
+ colorPreset: { color: "primary-gradient-500", gradientDirection: "bg-gradient-to-br" },
315
+ },
316
+ mobileProps: {
317
+ content: "All-In-One Platform",
318
+ padding: "3rem",
319
+ },
320
+ },
321
+ {
322
+ description: "Hero using dynamic product dataset with gradient emphasis",
323
+ type: "hero",
324
+ props: {
325
+ content: "Introducing {{product.name}}",
326
+ tagline: "{{product.shortTagline}}",
327
+ padding: "5rem",
328
+ colorPreset: { color: "accent-gradient-400", gradientDirection: "bg-gradient-to-r" },
329
+ textShadow: "text-shadow-md",
330
+ },
331
+ },
249
332
  {
250
333
  description: "Dynamic company hero using business query data",
251
334
  type: "hero",
@@ -4,6 +4,7 @@ import type { BrickProps } from "../props/types";
4
4
  import { BsCodeSquare } from "react-icons/bs";
5
5
 
6
6
  import { Type } from "@sinclair/typebox";
7
+ import type { BrickExample } from "./_types";
7
8
 
8
9
  export const manifest = defineBrickManifest({
9
10
  type: "html",
@@ -35,11 +36,7 @@ export const manifest = defineBrickManifest({
35
36
 
36
37
  export type Manifest = typeof manifest;
37
38
 
38
- export const examples: {
39
- description: string;
40
- type: string;
41
- props: BrickProps<Manifest>["brick"]["props"];
42
- }[] = [
39
+ export const examples: BrickExample<Manifest>[] = [
43
40
  {
44
41
  description: "A tally form",
45
42
  type: "html",
@@ -1,29 +1,72 @@
1
1
  import { defineBrickManifest } from "~/shared/brick-manifest";
2
2
  import { defineProps } from "../props/helpers";
3
3
  import { PiConfetti } from "react-icons/pi";
4
- import { iconRef, urlOrPageIdRef } from "../props/string";
5
- import type { BrickProps } from "../props/types";
4
+ import { icon, urlOrPageId } from "../props/string";
6
5
  import { Type } from "@sinclair/typebox";
7
- import { cssLengthRef } from "../props/css-length";
8
- import { colorRef } from "../props/color";
9
- import { loopRef } from "../props/dynamic";
6
+ import { cssLength } from "../props/css-length";
7
+ import { color } from "../props/color";
8
+ import { loop } from "../props/dynamic";
9
+ import type { BrickExample } from "./_types";
10
10
 
11
11
  export const manifest = defineBrickManifest({
12
12
  type: "icon",
13
13
  name: "Icon",
14
14
  category: "basic",
15
15
  description: "An icon.",
16
- aiInstructions: "Uses iconify references",
16
+ aiInstructions: `Use the icon component for adding visual symbols and interactive elements throughout your design.
17
+
18
+ WHEN TO USE:
19
+ - Navigation elements (menu, close, arrow buttons)
20
+ - Social media links (Facebook, Twitter, Instagram, LinkedIn)
21
+ - Contact information (email, phone, location markers)
22
+ - User interface actions (search, shopping cart, download)
23
+ - Status indicators (success, warning, error, info)
24
+ - Content enhancement (stars, hearts, thumbs up)
25
+ - Feature highlights (checkmarks, shields, awards)
26
+
27
+ ICON SELECTION:
28
+ - Use Iconify format: "mdi:icon-name", "lucide:icon-name", "heroicons:icon-name"
29
+ - Examples: "mdi:heart", "lucide:star", "heroicons:envelope", "mdi:facebook"
30
+
31
+ SIZING GUIDELINES:
32
+ - size: "1em" for inline text icons, "1.5em" for buttons, "2em" for headers
33
+ - Common sizes: "16px", "20px", "24px", "32px" for pixel precision
34
+ - Use "em" units to scale with text, "px" for fixed sizes
35
+ - Large decorative icons: "3em", "4em", or "48px", "64px"
36
+
37
+ COLOR OPTIONS:
38
+ - color: "currentColor" inherits text color (default)
39
+ - Hex colors: "#1877f2" (Facebook blue), "#ff0000" (red), "#10b981" (green)
40
+ - Use brand colors for social media icons
41
+ - Match color scheme: warnings (orange/yellow), errors (red), success (green)
42
+
43
+ INTERACTIVE ICONS:
44
+ - Add link property for clickable icons
45
+ - External links: "https://facebook.com/yourpage"
46
+ - Email links: "mailto:contact@example.com"
47
+ - Phone links: "tel:+1234567890"
48
+ - Internal pages: "/contact", "/about"
49
+
50
+ DYNAMIC CONTENT:
51
+ - Use template variables: icon: "{{ service.iconName }}"
52
+ - Dynamic colors: color: "{{ brand.primaryColor }}"
53
+ - Loop over data for icon lists or social media sets
54
+
55
+ AVOID:
56
+ - Oversized icons that dominate content
57
+ - Poor contrast (light icons on light backgrounds)
58
+ - Inconsistent icon styles within the same design
59
+ - Missing alt text context when icons convey important information`,
17
60
  resizable: false,
18
61
  staticClasses: "!grow-0",
19
62
  icon: PiConfetti,
20
63
  props: defineProps(
21
64
  {
22
- icon: iconRef({
65
+ icon: icon({
23
66
  default: "mdi:heart",
24
67
  }),
25
68
  size: Type.Optional(
26
- cssLengthRef({
69
+ cssLength({
27
70
  title: "Size",
28
71
  description: "The size of the icon. Can be a CSS length value (e.g. '2em', '24px')",
29
72
  default: "1em",
@@ -32,14 +75,14 @@ export const manifest = defineBrickManifest({
32
75
  }),
33
76
  ),
34
77
  color: Type.Optional(
35
- colorRef({
78
+ color({
36
79
  title: "Color",
37
80
  default: "currentColor",
38
81
  "ui:hide-color-label": true,
39
82
  }),
40
83
  ),
41
- link: Type.Optional(urlOrPageIdRef({ title: "Link" })),
42
- loop: Type.Optional(loopRef()),
84
+ link: Type.Optional(urlOrPageId({ title: "Link" })),
85
+ loop: Type.Optional(loop()),
43
86
  },
44
87
  { noGrow: true },
45
88
  ),
@@ -47,28 +90,66 @@ export const manifest = defineBrickManifest({
47
90
 
48
91
  export type Manifest = typeof manifest;
49
92
 
50
- export const examples: {
51
- description: string;
52
- type: string;
53
- props: BrickProps<Manifest>["brick"]["props"];
54
- }[] = [
93
+ export const examples: BrickExample<Manifest>[] = [
94
+ // BASIC ICONS
55
95
  {
56
- description: "Large heart icon with inherited color and size",
96
+ description: "Heart icon with default styling - Inherits text color and size",
57
97
  type: "icon",
58
98
  props: {
59
99
  icon: "mdi:heart",
60
100
  },
61
101
  },
62
102
  {
63
- description: "Shopping cart icon",
103
+ description: "Star icon with gold color - Perfect for ratings and reviews",
64
104
  type: "icon",
65
105
  props: {
66
- icon: "mdi:cart",
106
+ icon: "mdi:star",
67
107
  size: "1.2em",
108
+ color: "#fbbf24",
109
+ },
110
+ },
111
+
112
+ // NAVIGATION ICONS
113
+ {
114
+ description: "Menu hamburger icon - Mobile navigation toggle",
115
+ type: "icon",
116
+ props: {
117
+ icon: "mdi:menu",
118
+ size: "1.8em",
119
+ color: "#374151",
120
+ },
121
+ },
122
+ {
123
+ description: "Search icon - Search functionality indicator",
124
+ type: "icon",
125
+ props: {
126
+ icon: "mdi:magnify",
127
+ size: "1.2em",
128
+ color: "#6b7280",
129
+ },
130
+ },
131
+ {
132
+ description: "Shopping cart icon - E-commerce navigation",
133
+ type: "icon",
134
+ props: {
135
+ icon: "mdi:cart",
136
+ size: "1.4em",
137
+ color: "#059669",
68
138
  },
69
139
  },
70
140
  {
71
- description: "Social media icon with blue color and link",
141
+ description: "Arrow right icon - Navigation and call-to-action",
142
+ type: "icon",
143
+ props: {
144
+ icon: "mdi:arrow-right",
145
+ size: "1.1em",
146
+ color: "currentColor",
147
+ },
148
+ },
149
+
150
+ // SOCIAL MEDIA ICONS
151
+ {
152
+ description: "Facebook icon with official brand color and link",
72
153
  type: "icon",
73
154
  props: {
74
155
  icon: "mdi:facebook",
@@ -78,16 +159,39 @@ export const examples: {
78
159
  },
79
160
  },
80
161
  {
81
- description: "Warning icon with orange color for alerts",
162
+ description: "Twitter/X icon with link - Social media engagement",
82
163
  type: "icon",
83
164
  props: {
84
- icon: "mdi:alert-triangle",
85
- size: "1.8em",
86
- color: "#f59e0b",
165
+ icon: "mdi:twitter",
166
+ size: "1.5em",
167
+ color: "#000000",
168
+ link: "https://x.com/yourhandle",
169
+ },
170
+ },
171
+ {
172
+ description: "Instagram icon with gradient-inspired color",
173
+ type: "icon",
174
+ props: {
175
+ icon: "mdi:instagram",
176
+ size: "1.5em",
177
+ color: "#e1306c",
178
+ link: "https://instagram.com/yourprofile",
179
+ },
180
+ },
181
+ {
182
+ description: "LinkedIn icon with professional blue",
183
+ type: "icon",
184
+ props: {
185
+ icon: "mdi:linkedin",
186
+ size: "1.5em",
187
+ color: "#0077b5",
188
+ link: "https://linkedin.com/company/yourcompany",
87
189
  },
88
190
  },
191
+
192
+ // CONTACT INFORMATION ICONS
89
193
  {
90
- description: "Email contact icon with link",
194
+ description: "Email icon with link - Contact information",
91
195
  type: "icon",
92
196
  props: {
93
197
  icon: "mdi:email",
@@ -97,68 +201,143 @@ export const examples: {
97
201
  },
98
202
  },
99
203
  {
100
- description: "Phone icon with green color",
204
+ description: "Phone icon with clickable link - Direct calling",
101
205
  type: "icon",
102
206
  props: {
103
207
  icon: "mdi:phone",
104
208
  size: "1.4em",
105
209
  color: "#10b981",
210
+ link: "tel:+1234567890",
106
211
  },
107
212
  },
108
213
  {
109
- description: "Location pin icon with red color",
214
+ description: "Location marker icon - Address and directions",
110
215
  type: "icon",
111
216
  props: {
112
217
  icon: "mdi:map-marker",
113
- size: "2.2em",
218
+ size: "1.6em",
114
219
  color: "#ef4444",
115
220
  },
116
221
  },
222
+
223
+ // STATUS & FEEDBACK ICONS
117
224
  {
118
- description: "Twitter/X icon with custom color and link",
225
+ description: "Success checkmark icon - Confirmation and completion",
119
226
  type: "icon",
120
227
  props: {
121
- icon: "mdi:twitter",
122
- size: "1.6em",
123
- color: "#000000",
124
- link: "https://x.com/yourhandle",
228
+ icon: "mdi:check-circle",
229
+ size: "1.5em",
230
+ color: "#10b981",
125
231
  },
126
232
  },
127
233
  {
128
- description: "Star rating icon with gold color",
234
+ description: "Warning icon - Alerts and cautions",
129
235
  type: "icon",
130
236
  props: {
131
- icon: "mdi:star",
132
- size: "1.2em",
133
- color: "#fbbf24",
237
+ icon: "mdi:alert-triangle",
238
+ size: "1.5em",
239
+ color: "#f59e0b",
134
240
  },
135
241
  },
136
242
  {
137
- description: "Download icon with link and purple color",
243
+ description: "Error icon - Problems and failures",
138
244
  type: "icon",
139
245
  props: {
140
- icon: "mdi:download",
246
+ icon: "mdi:alert-circle",
141
247
  size: "1.5em",
248
+ color: "#ef4444",
249
+ },
250
+ },
251
+ {
252
+ description: "Information icon - Help and guidance",
253
+ type: "icon",
254
+ props: {
255
+ icon: "mdi:information",
256
+ size: "1.4em",
257
+ color: "#3b82f6",
258
+ },
259
+ },
260
+
261
+ // ACTION ICONS
262
+ {
263
+ description: "Download icon with link - File downloads",
264
+ type: "icon",
265
+ props: {
266
+ icon: "mdi:download",
267
+ size: "1.4em",
142
268
  color: "#8b5cf6",
143
269
  link: "/files/brochure.pdf",
144
270
  },
145
271
  },
146
272
  {
147
- description: "Menu hamburger icon for navigation",
273
+ description: "Share icon - Content sharing functionality",
148
274
  type: "icon",
149
275
  props: {
150
- icon: "mdi:menu",
151
- size: "1.8em",
276
+ icon: "mdi:share-variant",
277
+ size: "1.2em",
278
+ color: "#6b7280",
279
+ },
280
+ },
281
+ {
282
+ description: "Print icon - Document printing",
283
+ type: "icon",
284
+ props: {
285
+ icon: "mdi:printer",
286
+ size: "1.3em",
152
287
  color: "#374151",
153
288
  },
154
289
  },
290
+
291
+ // LARGE DECORATIVE ICONS
155
292
  {
156
- description: "Search icon with dark color",
293
+ description: "Large security shield icon - Trust and safety messaging",
157
294
  type: "icon",
158
295
  props: {
159
- icon: "mdi:magnify",
160
- size: "1.1em",
161
- color: "#1f2937",
296
+ icon: "mdi:shield-check",
297
+ size: "3em",
298
+ color: "#10b981",
299
+ },
300
+ },
301
+ {
302
+ description: "Large rocket icon - Innovation and growth themes",
303
+ type: "icon",
304
+ props: {
305
+ icon: "mdi:rocket",
306
+ size: "2.5em",
307
+ color: "#f59e0b",
308
+ },
309
+ },
310
+
311
+ // DYNAMIC CONTENT EXAMPLES
312
+ {
313
+ description: "Dynamic service icon using template variables - Data-driven icons",
314
+ type: "icon",
315
+ props: {
316
+ icon: "{{service.iconName}}",
317
+ size: "2em",
318
+ color: "{{service.brandColor}}",
319
+ link: "/services/{{service.slug}}",
320
+ },
321
+ },
322
+ {
323
+ description: "Dynamic social media icon with loop - Multiple social platforms",
324
+ type: "icon",
325
+ props: {
326
+ icon: "{{socialLinks.iconName}}",
327
+ size: "1.6em",
328
+ color: "{{socialLinks.brandColor}}",
329
+ link: "{{socialLinks.url}}",
330
+ loop: { over: "socialLinks" },
331
+ },
332
+ },
333
+ {
334
+ description: "Team member contact icon - Dynamic contact information",
335
+ type: "icon",
336
+ props: {
337
+ icon: "mdi:email",
338
+ size: "1.2em",
339
+ color: "#4f46e5",
340
+ link: "mailto:{{teamMember.email}}",
162
341
  },
163
342
  },
164
343
  ];