@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
@@ -4,34 +4,31 @@ import {
4
4
  datarecord
5
5
  } from "./chunk-HPCCD6V5.js";
6
6
  import {
7
- defineProps,
8
- group
9
- } from "./chunk-BHC2A43S.js";
10
- import {
11
- defineBrickManifest
12
- } from "./chunk-TB3X4LRQ.js";
7
+ direction
8
+ } from "./chunk-WPZV3LYL.js";
13
9
  import {
14
- fontSizeRef
15
- } from "./chunk-F22LDHEO.js";
10
+ border,
11
+ rounding
12
+ } from "./chunk-SRYBJ6NQ.js";
16
13
  import {
17
- directionRef
18
- } from "./chunk-Y74LZNND.js";
14
+ defineProps,
15
+ group
16
+ } from "./chunk-VTCHJT4O.js";
19
17
  import {
20
- string
21
- } from "./chunk-UQF52PWK.js";
18
+ fontSize
19
+ } from "./chunk-2U5U3CCJ.js";
22
20
  import {
23
- borderRef,
24
- roundingRef
25
- } from "./chunk-NTLAKMMQ.js";
21
+ cssLength
22
+ } from "./chunk-OJ6KL7FU.js";
26
23
  import {
27
- colorPresetRef
28
- } from "./chunk-TFGGYU6Y.js";
24
+ colorPreset
25
+ } from "./chunk-IEMCCHM4.js";
29
26
  import {
30
- cssLengthRef
31
- } from "./chunk-BPBKHEQ5.js";
27
+ defineBrickManifest
28
+ } from "./chunk-J45LSQT6.js";
32
29
  import {
33
30
  StringEnum
34
- } from "./chunk-JK2FWFJU.js";
31
+ } from "./chunk-GDYCCB3B.js";
35
32
 
36
33
  // src/shared/bricks/manifests/form.manifest.ts
37
34
  import { Type } from "@sinclair/typebox";
@@ -40,8 +37,43 @@ var manifest = defineBrickManifest({
40
37
  type: "form",
41
38
  name: "Form",
42
39
  description: "A form element.",
43
- aiInstructions: `The form brick automatically renders form fields based on the datarecord id provided in the props.
44
- There is no need to define the form fields manually and the form does not accept any children`,
40
+ aiInstructions: `PURPOSE
41
+ Dynamic form generator. Fields are inferred from the referenced datarecord schema (datarecordId). You NEVER list fields manually and the form does not accept children.
42
+
43
+ REQUIRED
44
+ \u2022 datarecordId must reference an existing datarecord definition.
45
+
46
+ COLOR & STYLE
47
+ \u2022 Optional colorPreset sets background + text. If omitted the form inherits parent background.
48
+ \u2022 Allowed tokens: primary-/secondary-/accent-/neutral-/base-*** (and gradient variants). Do NOT invent success, warning, danger, info, etc. Map them (success->secondary or primary; warning->accent; danger->accent/primary).
49
+ \u2022 Use rounding + border + padding for emphasis. Keep padding modest (1\u20133rem) unless it's a feature form hero (max ~4rem).
50
+
51
+ LAYOUT
52
+ \u2022 direction controls stacking (flex-col vs flex-row). Wide multi-column layouts usually flex-row on desktop, stacked (flex-col) on mobile.
53
+ \u2022 Use mobileProps to reduce padding or switch direction ONLY if necessary. (If switching direction, you must repeat required props.)
54
+
55
+ BUTTON GROUP
56
+ \u2022 Only supply button overrides you actually change (color, size, position, rounding). Unspecified values fallback to defaults.
57
+ \u2022 If button.size = wide then hide position (handled by schema metadata automatically\u2014don't circumvent).
58
+
59
+ CONTENT STRINGS
60
+ \u2022 title, intro, buttonLabel, successMessage, errorMessage should be concise.
61
+ \u2022 Avoid marketing fluff inside intro beyond one short paragraph.
62
+
63
+ DYNAMIC DATA
64
+ \u2022 Do not interpolate inside datarecordId (it must be a static id).
65
+ \u2022 You MAY interpolate page queries aliases in title/intro (e.g. "Apply for {{job.title}}") if those fields exist in surrounding dataset context.
66
+
67
+ DON'TS
68
+ \u2717 Don't invent props.
69
+ \u2717 Don't add HTML tags except basic inline markup if absolutely needed (prefer plain text).
70
+ \u2717 Don't set impossible color tokens.
71
+
72
+ DO
73
+ \u2713 Keep examples lean.
74
+ \u2713 Use semantic color mapping guidelines.
75
+ \u2713 Provide accessible, human-readable labels.
76
+ `,
45
77
  isContainer: false,
46
78
  icon: FaWpforms,
47
79
  minWidth: {
@@ -53,13 +85,13 @@ There is no need to define the form fields manually and the form does not accept
53
85
  "ui:responsive": "desktop"
54
86
  }),
55
87
  colorPreset: Type.Optional(
56
- colorPresetRef({
88
+ colorPreset({
57
89
  title: "Color",
58
90
  default: "base-200"
59
91
  })
60
92
  ),
61
93
  direction: Type.Optional(
62
- directionRef({
94
+ direction({
63
95
  title: "Direction",
64
96
  description: "The direction of the form fields",
65
97
  default: "flex-col",
@@ -68,7 +100,7 @@ There is no need to define the form fields manually and the form does not accept
68
100
  })
69
101
  ),
70
102
  padding: Type.Optional(
71
- cssLengthRef({
103
+ cssLength({
72
104
  default: "2rem",
73
105
  description: "Padding inside the form.",
74
106
  title: "Padding",
@@ -78,12 +110,12 @@ There is no need to define the form fields manually and the form does not accept
78
110
  })
79
111
  ),
80
112
  rounding: Type.Optional(
81
- roundingRef({
113
+ rounding({
82
114
  default: "rounded-md"
83
115
  })
84
116
  ),
85
- border: Type.Optional(borderRef({})),
86
- fontSize: Type.Optional(fontSizeRef({ default: "inherit", "ui:no-extra-large-sizes": true })),
117
+ border: Type.Optional(border({})),
118
+ fontSize: Type.Optional(fontSize({ default: "inherit", "ui:no-extra-large-sizes": true })),
87
119
  button: group({
88
120
  title: "Button",
89
121
  children: {
@@ -117,7 +149,7 @@ There is no need to define the form fields manually and the form does not accept
117
149
  }
118
150
  })
119
151
  ),
120
- rounding: Type.Optional(roundingRef({ default: "rounded-md" }))
152
+ rounding: rounding({ default: "rounded-md" })
121
153
  }
122
154
  }),
123
155
  title: Type.Optional(
@@ -140,7 +172,8 @@ There is no need to define the form fields manually and the form does not accept
140
172
  })
141
173
  ),
142
174
  buttonLabel: Type.Optional(
143
- string("Button Label", {
175
+ Type.String({
176
+ title: "Button label",
144
177
  default: "Submit",
145
178
  metadata: { category: "content" }
146
179
  })
@@ -196,6 +229,30 @@ var examples = [
196
229
  }
197
230
  }
198
231
  },
232
+ {
233
+ description: "Responsive newsletter subscription: desktop horizontal -> mobile vertical",
234
+ type: "form",
235
+ props: {
236
+ title: "Stay Updated",
237
+ intro: "Subscribe for product news and occasional tips.",
238
+ direction: "flex-row",
239
+ datarecordId: "newsletter-subscription",
240
+ padding: "3rem",
241
+ buttonLabel: "Subscribe",
242
+ button: { size: "block" },
243
+ colorPreset: { color: "neutral-100" }
244
+ },
245
+ mobileProps: {
246
+ title: "Stay Updated",
247
+ intro: "Subscribe for product news and occasional tips.",
248
+ direction: "flex-col",
249
+ datarecordId: "newsletter-subscription",
250
+ padding: "2rem",
251
+ buttonLabel: "Subscribe",
252
+ button: { size: "block" },
253
+ colorPreset: { color: "neutral-100" }
254
+ }
255
+ },
199
256
  {
200
257
  description: "Newsletter subscription form (horizontal) with large padding",
201
258
  type: "form",
@@ -211,6 +268,51 @@ var examples = [
211
268
  }
212
269
  }
213
270
  },
271
+ {
272
+ description: "Minimal inline signup form (no background colorPreset, inherits parent)",
273
+ type: "form",
274
+ props: {
275
+ title: "Join Beta",
276
+ intro: "Access early features before public launch.",
277
+ direction: "flex-row",
278
+ datarecordId: "beta-signup",
279
+ buttonLabel: "Request Access",
280
+ button: { size: "block" },
281
+ padding: "1.5rem"
282
+ }
283
+ },
284
+ {
285
+ description: "Dark themed form using neutral-800 background and accent button",
286
+ type: "form",
287
+ props: {
288
+ title: "Feedback",
289
+ intro: "Tell us how we can improve the product.",
290
+ direction: "flex-col",
291
+ datarecordId: "product-feedback",
292
+ buttonLabel: "Send Feedback",
293
+ colorPreset: { color: "neutral-800" },
294
+ padding: "2.5rem",
295
+ button: { color: "btn-accent" },
296
+ rounding: "rounded-lg",
297
+ border: { width: "border", color: "border-neutral-700" }
298
+ }
299
+ },
300
+ {
301
+ description: "Gradient emphasis form (primary gradient) for event signup",
302
+ type: "form",
303
+ props: {
304
+ title: "Conference RSVP",
305
+ intro: "Reserve your seat for {{event.title}}.",
306
+ direction: "flex-col",
307
+ datarecordId: "event-registration",
308
+ buttonLabel: "Reserve Seat",
309
+ colorPreset: { color: "primary-gradient-400", gradientDirection: "bg-gradient-to-br" },
310
+ padding: "3rem",
311
+ button: { color: "btn-secondary" },
312
+ rounding: "rounded-xl",
313
+ border: { width: "border-2", color: "border-primary-300" }
314
+ }
315
+ },
214
316
  {
215
317
  description: "Event registration form",
216
318
  type: "form",
@@ -238,6 +340,20 @@ var examples = [
238
340
  size: "block"
239
341
  }
240
342
  }
343
+ },
344
+ {
345
+ description: "Dynamic job application (title interpolated) mapping dataset field",
346
+ type: "form",
347
+ props: {
348
+ title: "Apply for {{job.title}}",
349
+ intro: "Join our team in {{job.location}}.",
350
+ direction: "flex-col",
351
+ datarecordId: "job-application",
352
+ buttonLabel: "Apply Now",
353
+ colorPreset: { color: "secondary-100" },
354
+ button: { size: "block", color: "btn-primary" },
355
+ padding: "2rem"
356
+ }
241
357
  }
242
358
  ];
243
359
 
@@ -245,4 +361,4 @@ export {
245
361
  manifest,
246
362
  examples
247
363
  };
248
- //# sourceMappingURL=chunk-QQQ3FYPG.js.map
364
+ //# sourceMappingURL=chunk-XK2CERPB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/form.manifest.ts"],"sourcesContent":["import { type Static, Type } from \"@sinclair/typebox\";\nimport { FaWpforms } from \"react-icons/fa6\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { border, rounding } from \"../props/border\";\nimport { datarecord } from \"../props/datarecord\";\nimport { defineProps, group } from \"../props/helpers\";\nimport { fontSize } from \"../props/text\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { direction } from \"../props/direction\";\nimport { cssLength } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"form\",\n name: \"Form\",\n description: \"A form element.\",\n aiInstructions: `PURPOSE\nDynamic form generator. Fields are inferred from the referenced datarecord schema (datarecordId). You NEVER list fields manually and the form does not accept children.\n\nREQUIRED\n• datarecordId must reference an existing datarecord definition.\n\nCOLOR & STYLE\n• Optional colorPreset sets background + text. If omitted the form inherits parent background.\n• Allowed tokens: primary-/secondary-/accent-/neutral-/base-*** (and gradient variants). Do NOT invent success, warning, danger, info, etc. Map them (success->secondary or primary; warning->accent; danger->accent/primary).\n• Use rounding + border + padding for emphasis. Keep padding modest (1–3rem) unless it's a feature form hero (max ~4rem).\n\nLAYOUT\n• direction controls stacking (flex-col vs flex-row). Wide multi-column layouts usually flex-row on desktop, stacked (flex-col) on mobile.\n• Use mobileProps to reduce padding or switch direction ONLY if necessary. (If switching direction, you must repeat required props.)\n\nBUTTON GROUP\n• Only supply button overrides you actually change (color, size, position, rounding). Unspecified values fallback to defaults.\n• If button.size = wide then hide position (handled by schema metadata automatically—don't circumvent).\n\nCONTENT STRINGS\n• title, intro, buttonLabel, successMessage, errorMessage should be concise.\n• Avoid marketing fluff inside intro beyond one short paragraph.\n\nDYNAMIC DATA\n• Do not interpolate inside datarecordId (it must be a static id).\n• You MAY interpolate page queries aliases in title/intro (e.g. \"Apply for {{job.title}}\") if those fields exist in surrounding dataset context.\n\nDON'TS\n✗ Don't invent props.\n✗ Don't add HTML tags except basic inline markup if absolutely needed (prefer plain text).\n✗ Don't set impossible color tokens.\n\nDO\n✓ Keep examples lean.\n✓ Use semantic color mapping guidelines.\n✓ Provide accessible, human-readable labels.\n`,\n isContainer: false,\n icon: FaWpforms,\n minWidth: {\n desktop: 300,\n },\n props: defineProps({\n datarecordId: datarecord(\"Datarecord ID\", {\n description: \"The ID of the datarecord to use to generate the form fields. The datarecord must exist.\",\n \"ui:responsive\": \"desktop\",\n }),\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color\",\n default: \"base-200\",\n }),\n ),\n direction: Type.Optional(\n direction({\n title: \"Direction\",\n description: \"The direction of the form fields\",\n default: \"flex-col\",\n \"ui:responsive\": \"desktop\",\n \"ui:desktop-only\": true,\n }),\n ),\n padding: Type.Optional(\n cssLength({\n default: \"2rem\",\n description: \"Padding inside the form.\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n rounding({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(border({})),\n fontSize: Type.Optional(fontSize({ default: \"inherit\", \"ui:no-extra-large-sizes\": true })),\n button: group({\n title: \"Button\",\n children: {\n color: Type.Optional(\n StringEnum([\"btn-neutral\", \"btn-primary\", \"btn-secondary\", \"btn-accent\"], {\n enumNames: [\"Neutral\", \"Primary\", \"Secondary\", \"Accent\"],\n title: \"Color\",\n default: \"btn-primary\",\n }),\n ),\n size: Type.Optional(\n StringEnum([\"block\", \"wide\"], {\n title: \"Size\",\n description: \"Button sizes.\",\n enumNames: [\"Block\", \"Wide\"],\n default: \"block\",\n \"ui:responsive\": \"desktop\",\n }),\n ),\n position: Type.Optional(\n StringEnum([\"justify-start\", \"justify-center\", \"justify-end\"], {\n title: \"Button Position\",\n description: \"The position of the button in the form\",\n enumNames: [\"Left\", \"Center\", \"Right\"],\n default: \"justify-end\",\n \"ui:responsive\": \"desktop\",\n metadata: {\n filter: (manifestProps: Manifest[\"props\"], formData: Static<Manifest[\"props\"]>) => {\n return formData.button?.size !== \"wide\";\n },\n },\n }),\n ),\n rounding: rounding({ default: \"rounded-md\" }),\n },\n }),\n\n title: Type.Optional(\n Type.String({\n title: \"Form title\",\n default: \"My form\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n intro: Type.Optional(\n Type.String({\n title: \"Intro\",\n description: \"The intro text of the form\",\n \"ui:multiline\": true,\n metadata: {\n category: \"content\",\n },\n }),\n ),\n buttonLabel: Type.Optional(\n Type.String({\n title: \"Button label\",\n default: \"Submit\",\n metadata: { category: \"content\" },\n }),\n ),\n successMessage: Type.Optional(\n Type.String({\n title: \"Success Message\",\n description: \"The message to display when the form is successfully submitted\",\n default: \"Thank you for your submission!\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n errorMessage: Type.Optional(\n Type.String({\n title: \"Error Message\",\n description: \"The message to display when the form submission fails\",\n default: \"There was an error submitting the form. Please try again later.\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Basic contact form\",\n type: \"form\",\n props: {\n title: \"Contact Us\",\n intro: \"We'd love to hear from you. Send us a message and we'll respond as soon as possible.\",\n direction: \"flex-row\",\n datarecordId: \"contacts\",\n buttonLabel: \"Send Message\",\n button: {\n size: \"block\",\n },\n },\n },\n {\n description: \"User registration form with large button\",\n type: \"form\",\n props: {\n title: \"Create Account\",\n intro: \"Join our platform and start your journey today.\",\n direction: \"flex-row\",\n datarecordId: \"user-registration\",\n buttonLabel: \"Register\",\n button: {\n size: \"wide\",\n },\n },\n },\n {\n description: \"Responsive newsletter subscription: desktop horizontal -> mobile vertical\",\n type: \"form\",\n props: {\n title: \"Stay Updated\",\n intro: \"Subscribe for product news and occasional tips.\",\n direction: \"flex-row\",\n datarecordId: \"newsletter-subscription\",\n padding: \"3rem\",\n buttonLabel: \"Subscribe\",\n button: { size: \"block\" },\n colorPreset: { color: \"neutral-100\" },\n },\n mobileProps: {\n title: \"Stay Updated\",\n intro: \"Subscribe for product news and occasional tips.\",\n direction: \"flex-col\",\n datarecordId: \"newsletter-subscription\",\n padding: \"2rem\",\n buttonLabel: \"Subscribe\",\n button: { size: \"block\" },\n colorPreset: { color: \"neutral-100\" },\n },\n },\n {\n description: \"Newsletter subscription form (horizontal) with large padding\",\n type: \"form\",\n props: {\n title: \"Stay Updated\",\n intro: \"Subscribe to our newsletter for the latest updates and exclusive content.\",\n direction: \"flex-col\",\n datarecordId: \"newsletter-subscription\",\n padding: \"3rem\",\n buttonLabel: \"Subscribe\",\n button: {\n size: \"block\",\n },\n },\n },\n {\n description: \"Minimal inline signup form (no background colorPreset, inherits parent)\",\n type: \"form\",\n props: {\n title: \"Join Beta\",\n intro: \"Access early features before public launch.\",\n direction: \"flex-row\",\n datarecordId: \"beta-signup\",\n buttonLabel: \"Request Access\",\n button: { size: \"block\" },\n padding: \"1.5rem\",\n },\n },\n {\n description: \"Dark themed form using neutral-800 background and accent button\",\n type: \"form\",\n props: {\n title: \"Feedback\",\n intro: \"Tell us how we can improve the product.\",\n direction: \"flex-col\",\n datarecordId: \"product-feedback\",\n buttonLabel: \"Send Feedback\",\n colorPreset: { color: \"neutral-800\" },\n padding: \"2.5rem\",\n button: { color: \"btn-accent\" },\n rounding: \"rounded-lg\",\n border: { width: \"border\", color: \"border-neutral-700\" },\n },\n },\n {\n description: \"Gradient emphasis form (primary gradient) for event signup\",\n type: \"form\",\n props: {\n title: \"Conference RSVP\",\n intro: \"Reserve your seat for {{event.title}}.\",\n direction: \"flex-col\",\n datarecordId: \"event-registration\",\n buttonLabel: \"Reserve Seat\",\n colorPreset: { color: \"primary-gradient-400\", gradientDirection: \"bg-gradient-to-br\" },\n padding: \"3rem\",\n button: { color: \"btn-secondary\" },\n rounding: \"rounded-xl\",\n border: { width: \"border-2\", color: \"border-primary-300\" },\n },\n },\n {\n description: \"Event registration form\",\n type: \"form\",\n props: {\n title: \"Conference Registration\",\n intro: \"Register for the Annual Tech Conference 2025. Early bird pricing ends soon!\",\n direction: \"flex-col\",\n datarecordId: \"event-registration\",\n buttonLabel: \"Register Now\",\n button: {\n size: \"block\",\n },\n },\n },\n {\n description: \"Job application form\",\n type: \"form\",\n props: {\n title: \"Apply for Position\",\n intro: \"We're excited to learn more about you! Please fill out this application form completely.\",\n direction: \"flex-col\",\n datarecordId: \"job-application\",\n buttonLabel: \"Submit Application\",\n button: {\n size: \"block\",\n },\n },\n },\n {\n description: \"Dynamic job application (title interpolated) mapping dataset field\",\n type: \"form\",\n props: {\n title: \"Apply for {{job.title}}\",\n intro: \"Join our team in {{job.location}}.\",\n direction: \"flex-col\",\n datarecordId: \"job-application\",\n buttonLabel: \"Apply Now\",\n colorPreset: { color: \"secondary-100\" },\n button: { size: \"block\", color: \"btn-primary\" },\n padding: \"2rem\",\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -0,0 +1,78 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+ import {
4
+ datarecordsList
5
+ } from "./chunk-DCM4732T.js";
6
+ import {
7
+ sitemapSchema
8
+ } from "./chunk-2O5HVPID.js";
9
+ import {
10
+ defaultTheme,
11
+ themeSchema
12
+ } from "./chunk-FD7YYFRI.js";
13
+ import {
14
+ pageSchema
15
+ } from "./chunk-VSLRTXLF.js";
16
+ import {
17
+ sitePrompt
18
+ } from "./chunk-6TVVKUWM.js";
19
+ import {
20
+ resolvePageAttributes,
21
+ resolveSiteAttributes,
22
+ siteAttributesSchema
23
+ } from "./chunk-T6C3NG2L.js";
24
+ import {
25
+ datasourcesList
26
+ } from "./chunk-EMF5TCPX.js";
27
+
28
+ // src/shared/site.ts
29
+ import { Type } from "@sinclair/typebox";
30
+ var siteSchema = Type.Object({
31
+ id: Type.String(),
32
+ label: Type.String(),
33
+ hostname: Type.String(),
34
+ attributes: siteAttributesSchema,
35
+ datasources: datasourcesList,
36
+ datarecords: datarecordsList,
37
+ themes: Type.Array(themeSchema),
38
+ theme: themeSchema,
39
+ sitemap: sitemapSchema,
40
+ sitePrompt
41
+ });
42
+ var siteAndPagesSchema = Type.Object({
43
+ site: siteSchema,
44
+ pages: Type.Array(pageSchema)
45
+ });
46
+ function createEmptyConfig(sitePrompt2) {
47
+ return {
48
+ site: {
49
+ id: crypto.randomUUID(),
50
+ label: `My site ${(/* @__PURE__ */ new Date()).toLocaleString(void 0, { dateStyle: "short", timeStyle: "short" })}`,
51
+ hostname: "example.com",
52
+ sitePrompt: sitePrompt2,
53
+ theme: defaultTheme,
54
+ themes: [],
55
+ sitemap: [],
56
+ attributes: resolveSiteAttributes(),
57
+ datarecords: [],
58
+ datasources: []
59
+ },
60
+ // we need a fake page
61
+ pages: [
62
+ {
63
+ id: "_default_",
64
+ label: "First page",
65
+ sections: [],
66
+ attributes: resolvePageAttributes({
67
+ path: "/"
68
+ })
69
+ }
70
+ ]
71
+ };
72
+ }
73
+
74
+ export {
75
+ siteSchema,
76
+ createEmptyConfig
77
+ };
78
+ //# sourceMappingURL=chunk-XNRSL6FL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/site.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { resolvePageAttributes, resolveSiteAttributes, siteAttributesSchema } from \"./attributes\";\nimport { datarecordsList } from \"./datarecords/types\";\nimport { datasourcesList } from \"./datasources/types\";\nimport { pageSchema } from \"./page\";\nimport { sitePrompt } from \"./prompt\";\nimport { sitemapSchema } from \"./sitemap\";\nimport { defaultTheme, themeSchema } from \"./theme\";\n\nexport const siteSchema = Type.Object({\n id: Type.String(),\n label: Type.String(),\n hostname: Type.String(),\n attributes: siteAttributesSchema,\n datasources: datasourcesList,\n datarecords: datarecordsList,\n themes: Type.Array(themeSchema),\n theme: themeSchema,\n sitemap: sitemapSchema,\n sitePrompt,\n});\n\nexport type Site = Static<typeof siteSchema>;\nexport type PublicSite = Omit<Site, \"sitePrompt\">;\n\nconst siteAndPagesSchema = Type.Object({\n site: siteSchema,\n pages: Type.Array(pageSchema),\n});\n\nexport type SiteAndPagesConfig = Static<typeof siteAndPagesSchema>;\n\nexport function createEmptyConfig(sitePrompt: string): SiteAndPagesConfig {\n return {\n site: {\n id: crypto.randomUUID(),\n label: `My site ${new Date().toLocaleString(undefined, { dateStyle: \"short\", timeStyle: \"short\" })}`,\n hostname: \"example.com\",\n sitePrompt,\n theme: defaultTheme,\n themes: [],\n sitemap: [],\n attributes: resolveSiteAttributes(),\n datarecords: [],\n datasources: [],\n },\n // we need a fake page\n pages: [\n {\n id: \"_default_\",\n label: \"First page\",\n sections: [],\n attributes: resolvePageAttributes({\n path: \"/\",\n }),\n },\n ],\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAyB;AAS3B,IAAM,aAAa,KAAK,OAAO;AAAA,EACpC,IAAI,KAAK,OAAO;AAAA,EAChB,OAAO,KAAK,OAAO;AAAA,EACnB,UAAU,KAAK,OAAO;AAAA,EACtB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ,KAAK,MAAM,WAAW;AAAA,EAC9B,OAAO;AAAA,EACP,SAAS;AAAA,EACT;AACF,CAAC;AAKD,IAAM,qBAAqB,KAAK,OAAO;AAAA,EACrC,MAAM;AAAA,EACN,OAAO,KAAK,MAAM,UAAU;AAC9B,CAAC;AAIM,SAAS,kBAAkBA,aAAwC;AACxE,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,IAAI,OAAO,WAAW;AAAA,MACtB,OAAO,YAAW,oBAAI,KAAK,GAAE,eAAe,QAAW,EAAE,WAAW,SAAS,WAAW,QAAQ,CAAC,CAAC;AAAA,MAClG,UAAU;AAAA,MACV,YAAAA;AAAA,MACA,OAAO;AAAA,MACP,QAAQ,CAAC;AAAA,MACT,SAAS,CAAC;AAAA,MACV,YAAY,sBAAsB;AAAA,MAClC,aAAa,CAAC;AAAA,MACd,aAAa,CAAC;AAAA,IAChB;AAAA;AAAA,IAEA,OAAO;AAAA,MACL;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,UAAU,CAAC;AAAA,QACX,YAAY,sBAAsB;AAAA,UAChC,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;","names":["sitePrompt"]}
@@ -1,14 +1,11 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
3
  import {
4
- cssLengthRef
5
- } from "./chunk-BPBKHEQ5.js";
4
+ cssLength
5
+ } from "./chunk-OJ6KL7FU.js";
6
6
  import {
7
- alignSelfRef
8
- } from "./chunk-ZLYIRH2B.js";
9
- import {
10
- typedRef
11
- } from "./chunk-A2QPY54H.js";
7
+ alignSelf
8
+ } from "./chunk-ZRBTAC3G.js";
12
9
 
13
10
  // src/shared/bricks/props/common.ts
14
11
  import { Type } from "@sinclair/typebox";
@@ -33,7 +30,7 @@ var commonProps = {
33
30
  "ai:hidden": true
34
31
  })
35
32
  ),
36
- hidden: Type.Optional(typedRef("styles:hidden")),
33
+ hidden: Type.Optional(hidden()),
37
34
  editable: Type.Optional(
38
35
  Type.Boolean({
39
36
  "ui:field": "hidden",
@@ -41,7 +38,7 @@ var commonProps = {
41
38
  })
42
39
  ),
43
40
  width: Type.Optional(
44
- cssLengthRef({
41
+ cssLength({
45
42
  title: "Fixed Width",
46
43
  description: "Set a fixed width for the brick. If not set, the brick will be responsive and will follow the flex layout of its parent section.",
47
44
  "ai:instructions": "Use percentage values to make the width responsive, like '50%'",
@@ -49,7 +46,7 @@ var commonProps = {
49
46
  })
50
47
  ),
51
48
  height: Type.Optional(
52
- cssLengthRef({
49
+ cssLength({
53
50
  title: "Fixed height",
54
51
  description: "Set a fixed height for the brick. If not set, the brick will be responsive and will follow the flex layout of its parent section.",
55
52
  "ui:field": "hidden"
@@ -63,7 +60,7 @@ var commonProps = {
63
60
  "ui:responsive": true
64
61
  })
65
62
  ),
66
- alignSelf: Type.Optional(alignSelfRef())
63
+ alignSelf: Type.Optional(alignSelf())
67
64
  };
68
65
  var commonPropsSchema = Type.Object(commonProps);
69
66
 
@@ -71,4 +68,4 @@ export {
71
68
  hidden,
72
69
  commonProps
73
70
  };
74
- //# sourceMappingURL=chunk-2RK3CPYJ.js.map
71
+ //# sourceMappingURL=chunk-XXPSM6UA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/props/common.ts"],"sourcesContent":["import { type Static, type TString, Type } from \"@sinclair/typebox\";\nimport { cssLength } from \"./css-length\";\nimport { alignSelf } from \"./align\";\n\nexport function hidden() {\n return Type.Object(\n {\n desktop: Type.Optional(Type.Boolean()),\n mobile: Type.Optional(Type.Boolean()),\n },\n {\n // $id: \"styles:hidden\",\n title: \"Hidden\",\n description: \"Used to hide the brick on desktop or mobile.\",\n \"ui:field\": \"hidden\",\n },\n );\n}\n\nexport const commonProps = {\n lastTouched: Type.Optional(\n Type.Number({\n \"ui:field\": \"hidden\",\n \"ai:hidden\": true,\n }),\n ),\n hidden: Type.Optional(hidden()),\n editable: Type.Optional(\n Type.Boolean({\n \"ui:field\": \"hidden\",\n \"ai:hidden\": true,\n }),\n ),\n width: Type.Optional(\n cssLength({\n title: \"Fixed Width\",\n description:\n \"Set a fixed width for the brick. If not set, the brick will be responsive and will follow the flex layout of its parent section.\",\n \"ai:instructions\": \"Use percentage values to make the width responsive, like '50%'\",\n \"ui:field\": \"hidden\",\n }) as TString,\n ),\n height: Type.Optional(\n cssLength({\n title: \"Fixed height\",\n description:\n \"Set a fixed height for the brick. If not set, the brick will be responsive and will follow the flex layout of its parent section.\",\n \"ui:field\": \"hidden\",\n }),\n ),\n grow: Type.Optional(\n Type.Boolean({\n title: \"Auto expand\",\n description: \"If set, the brick will grow to fill the available space of its parent section or box.\",\n \"ui:styleId\": \"styles:grow\",\n \"ui:responsive\": true,\n }),\n ),\n alignSelf: Type.Optional(alignSelf()),\n};\n\nconst commonPropsSchema = Type.Object(commonProps);\nexport type CommonBrickProps = Static<typeof commonPropsSchema>;\n"],"mappings":";;;;;;;;;;AAAA,SAAoC,YAAY;AAIzC,SAAS,SAAS;AACvB,SAAO,KAAK;AAAA,IACV;AAAA,MACE,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,MACrC,QAAQ,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,IACtC;AAAA,IACA;AAAA;AAAA,MAEE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEO,IAAM,cAAc;AAAA,EACzB,aAAa,KAAK;AAAA,IAChB,KAAK,OAAO;AAAA,MACV,YAAY;AAAA,MACZ,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,QAAQ,KAAK,SAAS,OAAO,CAAC;AAAA,EAC9B,UAAU,KAAK;AAAA,IACb,KAAK,QAAQ;AAAA,MACX,YAAY;AAAA,MACZ,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,OAAO,KAAK;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aACE;AAAA,MACF,mBAAmB;AAAA,MACnB,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EACA,QAAQ,KAAK;AAAA,IACX,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aACE;AAAA,MACF,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EACA,MAAM,KAAK;AAAA,IACT,KAAK,QAAQ;AAAA,MACX,OAAO;AAAA,MACP,aAAa;AAAA,MACb,cAAc;AAAA,MACd,iBAAiB;AAAA,IACnB,CAAC;AAAA,EACH;AAAA,EACA,WAAW,KAAK,SAAS,UAAU,CAAC;AACtC;AAEA,IAAM,oBAAoB,KAAK,OAAO,WAAW;","names":[]}
@@ -1,11 +1,8 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
- import {
4
- typedRef
5
- } from "./chunk-A2QPY54H.js";
6
3
  import {
7
4
  StringEnum
8
- } from "./chunk-JK2FWFJU.js";
5
+ } from "./chunk-GDYCCB3B.js";
9
6
 
10
7
  // src/shared/bricks/props/align.ts
11
8
  function justifyContent(options = {}) {
@@ -23,9 +20,6 @@ function justifyContent(options = {}) {
23
20
  }
24
21
  );
25
22
  }
26
- function justifyContentRef(options = {}) {
27
- return typedRef("styles:justifyContent", options);
28
- }
29
23
  function alignItems(options = {}) {
30
24
  return StringEnum(["items-start", "items-center", "items-end", "items-stretch"], {
31
25
  enumNames: ["Start", "Center", "End", "Stretch"],
@@ -38,9 +32,6 @@ function alignItems(options = {}) {
38
32
  ...options
39
33
  });
40
34
  }
41
- function alignItemsRef(options = {}) {
42
- return typedRef("styles:alignItems", options);
43
- }
44
35
  function alignSelf(options = {}) {
45
36
  return StringEnum(["self-auto", "self-start", "self-center", "self-end", "self-stretch"], {
46
37
  enumNames: ["Auto", "Start", "Center", "End", "Stretch"],
@@ -53,16 +44,10 @@ function alignSelf(options = {}) {
53
44
  ...options
54
45
  });
55
46
  }
56
- function alignSelfRef(options = {}) {
57
- return typedRef("styles:alignSelf", options);
58
- }
59
47
 
60
48
  export {
61
49
  justifyContent,
62
- justifyContentRef,
63
50
  alignItems,
64
- alignItemsRef,
65
- alignSelf,
66
- alignSelfRef
51
+ alignSelf
67
52
  };
68
- //# sourceMappingURL=chunk-ZLYIRH2B.js.map
53
+ //# sourceMappingURL=chunk-ZRBTAC3G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/props/align.ts"],"sourcesContent":["import type { Static, StringOptions } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\nexport function justifyContent(options: StringOptions = {}) {\n return StringEnum(\n [\"justify-start\", \"justify-center\", \"justify-end\", \"justify-between\", \"justify-around\", \"justify-evenly\"],\n {\n enumNames: [\"Start\", \"Center\", \"End\", \"Between\", \"Around\", \"Evenly\"],\n // $id: \"styles:justifyContent\",\n title: \"Justify bricks\",\n \"ui:field\": \"justify-content\",\n \"ui:responsive\": true,\n \"ui:styleId\": \"styles:justifyContent\",\n examples: [\"justify-center\", \"justify-evenly\"],\n ...options,\n },\n );\n}\n\nexport type JustifyContentSettings = Static<ReturnType<typeof justifyContent>>;\n\nexport function alignItems(options: StringOptions = {}) {\n return StringEnum([\"items-start\", \"items-center\", \"items-end\", \"items-stretch\"], {\n enumNames: [\"Start\", \"Center\", \"End\", \"Stretch\"],\n // $id: \"styles:alignItems\",\n title: \"Align bricks\",\n \"ui:field\": \"align-items\",\n \"ui:responsive\": true,\n \"ui:styleId\": \"styles:alignItems\",\n examples: [\"items-center\", \"items-stretch\"],\n ...options,\n });\n}\n\nexport type AlignItemsSettings = Static<ReturnType<typeof alignItems>>;\n\nexport function alignSelf(options: StringOptions = {}) {\n return StringEnum([\"self-auto\", \"self-start\", \"self-center\", \"self-end\", \"self-stretch\"], {\n enumNames: [\"Auto\", \"Start\", \"Center\", \"End\", \"Stretch\"],\n default: \"self-auto\",\n // $id: \"styles:alignSelf\",\n title: \"Align self\",\n \"ui:field\": \"align-self\",\n \"ui:responsive\": true,\n \"ui:styleId\": \"styles:alignSelf\",\n ...options,\n });\n}\n\nexport type AlignSelfSettings = Static<ReturnType<typeof alignSelf>>;\n"],"mappings":";;;;;;;AAGO,SAAS,eAAe,UAAyB,CAAC,GAAG;AAC1D,SAAO;AAAA,IACL,CAAC,iBAAiB,kBAAkB,eAAe,mBAAmB,kBAAkB,gBAAgB;AAAA,IACxG;AAAA,MACE,WAAW,CAAC,SAAS,UAAU,OAAO,WAAW,UAAU,QAAQ;AAAA;AAAA,MAEnE,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,UAAU,CAAC,kBAAkB,gBAAgB;AAAA,MAC7C,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,WAAW,UAAyB,CAAC,GAAG;AACtD,SAAO,WAAW,CAAC,eAAe,gBAAgB,aAAa,eAAe,GAAG;AAAA,IAC/E,WAAW,CAAC,SAAS,UAAU,OAAO,SAAS;AAAA;AAAA,IAE/C,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,UAAU,CAAC,gBAAgB,eAAe;AAAA,IAC1C,GAAG;AAAA,EACL,CAAC;AACH;AAIO,SAAS,UAAU,UAAyB,CAAC,GAAG;AACrD,SAAO,WAAW,CAAC,aAAa,cAAc,eAAe,YAAY,cAAc,GAAG;AAAA,IACxF,WAAW,CAAC,QAAQ,SAAS,UAAU,OAAO,SAAS;AAAA,IACvD,SAAS;AAAA;AAAA,IAET,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -1,24 +1,21 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
3
  import {
4
- defineProps
5
- } from "./chunk-BHC2A43S.js";
6
- import {
7
- defineBrickManifest
8
- } from "./chunk-TB3X4LRQ.js";
4
+ border,
5
+ rounding
6
+ } from "./chunk-SRYBJ6NQ.js";
9
7
  import {
10
- shadowRef
11
- } from "./chunk-TNMNMYOB.js";
8
+ defineProps
9
+ } from "./chunk-VTCHJT4O.js";
12
10
  import {
13
- string
14
- } from "./chunk-UQF52PWK.js";
11
+ cssLength
12
+ } from "./chunk-OJ6KL7FU.js";
15
13
  import {
16
- borderRef,
17
- roundingRef
18
- } from "./chunk-NTLAKMMQ.js";
14
+ shadow
15
+ } from "./chunk-5RCC2STG.js";
19
16
  import {
20
- cssLengthRef
21
- } from "./chunk-BPBKHEQ5.js";
17
+ defineBrickManifest
18
+ } from "./chunk-J45LSQT6.js";
22
19
 
23
20
  // src/shared/bricks/manifests/video.manifest.ts
24
21
  import { RxVideo } from "react-icons/rx";
@@ -49,7 +46,8 @@ var manifest = defineBrickManifest({
49
46
  // 16:9 aspect ratio
50
47
  },
51
48
  props: defineProps({
52
- url: string("Video URL", {
49
+ url: Type.String({
50
+ title: "Video URL",
53
51
  description: "URL of the video to embed. It can be a YouTube link or an embed link. It also supports Vimeo and Wistia links.",
54
52
  default: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
55
53
  metadata: {
@@ -58,7 +56,7 @@ var manifest = defineBrickManifest({
58
56
  }
59
57
  }),
60
58
  padding: Type.Optional(
61
- cssLengthRef({
59
+ cssLength({
62
60
  description: "Padding inside the video player.",
63
61
  "ai:instructions": "Use only a single value like '1rem' or '10px'",
64
62
  title: "Padding",
@@ -68,12 +66,12 @@ var manifest = defineBrickManifest({
68
66
  })
69
67
  ),
70
68
  rounding: Type.Optional(
71
- roundingRef({
69
+ rounding({
72
70
  default: "rounded-md"
73
71
  })
74
72
  ),
75
- border: Type.Optional(borderRef()),
76
- shadow: Type.Optional(shadowRef())
73
+ border: Type.Optional(border()),
74
+ shadow: Type.Optional(shadow())
77
75
  })
78
76
  });
79
77
  var examples = [
@@ -128,4 +126,4 @@ export {
128
126
  manifest,
129
127
  examples
130
128
  };
131
- //# sourceMappingURL=chunk-Z35I5JM5.js.map
129
+ //# sourceMappingURL=chunk-ZVJNRKT4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/video.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { RxVideo } from \"react-icons/rx\";\nimport { border, rounding } from \"../props/border\";\nimport { shadow } from \"../props/effects\";\nimport { Type } from \"@sinclair/typebox\";\nimport { cssLength } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"video\",\n name: \"Video\",\n category: \"media\",\n description: \"An embedded video player for YouTube / Vimeo / Wistia links\",\n icon: RxVideo,\n defaultWidth: {\n mobile: \"auto\",\n desktop: `${(360 * 16) / 9}px`, // 16:9 aspect ratio\n },\n defaultHeight: {\n mobile: \"168px\",\n desktop: \"360px\", // 16:9 aspect ratio\n },\n minWidth: {\n mobile: 300,\n desktop: (360 * 16) / 9,\n },\n minHeight: {\n mobile: 168,\n desktop: 360, // 16:9 aspect ratio\n },\n props: defineProps({\n url: Type.String({\n title: \"Video URL\",\n description:\n \"URL of the video to embed. It can be a YouTube link or an embed link. It also supports Vimeo and Wistia links.\",\n default: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n metadata: {\n category: \"content\",\n \"ui:responsive\": \"desktop\",\n },\n }),\n padding: Type.Optional(\n cssLength({\n description: \"Padding inside the video player.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n rounding({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(border()),\n shadow: Type.Optional(shadow()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"A YouTube video\",\n type: \"video\",\n props: {\n url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n },\n },\n {\n description: \"An embedded YouTube video\",\n type: \"video\",\n props: {\n url: \"https://www.youtube.com/embed/dQw4w9WgXcQ\",\n },\n },\n {\n description: \"A Vimeo video\",\n type: \"video\",\n props: {\n url: \"https://vimeo.com/123456789\",\n },\n },\n {\n description: \"Dynamic course video using course query\",\n type: \"video\",\n props: {\n url: \"{{course.videoUrl}}\",\n padding: \"1rem\",\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic product demo video using product query\",\n type: \"video\",\n props: {\n url: \"{{product.demoVideoUrl}}\",\n padding: \"0.5rem\",\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n border: {\n width: \"border-2\",\n color: \"border-primary-300\",\n },\n },\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEA,SAAS,eAAe;AAGxB,SAAS,YAAY;AAId,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AAAA,EACb,MAAM;AAAA,EACN,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS,GAAI,MAAM,KAAM,CAAC;AAAA;AAAA,EAC5B;AAAA,EACA,eAAe;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,SAAU,MAAM,KAAM;AAAA,EACxB;AAAA,EACA,WAAW;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA;AAAA,EACX;AAAA,EACA,OAAO,YAAY;AAAA,IACjB,KAAK,KAAK,OAAO;AAAA,MACf,OAAO;AAAA,MACP,aACE;AAAA,MACF,SAAS;AAAA,MACT,UAAU;AAAA,QACR,UAAU;AAAA,QACV,iBAAiB;AAAA,MACnB;AAAA,IACF,CAAC;AAAA,IACD,SAAS,KAAK;AAAA,MACZ,UAAU;AAAA,QACR,aAAa;AAAA,QACb,mBAAmB;AAAA,QACnB,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,cAAc;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,IACA,UAAU,KAAK;AAAA,MACb,SAAS;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,KAAK,SAAS,OAAO,CAAC;AAAA,IAC9B,QAAQ,KAAK,SAAS,OAAO,CAAC;AAAA,EAChC,CAAC;AACH,CAAC;AAIM,IAAM,WAAqC;AAAA,EAChD;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;","names":[]}