@upstart.gg/sdk 0.0.133 → 0.0.135

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 (527) hide show
  1. package/dist/shared/ai/schemas.d.ts +1 -2
  2. package/dist/shared/ai/schemas.d.ts.map +1 -1
  3. package/dist/shared/ai/schemas.js +28 -1
  4. package/dist/shared/ai/schemas.js.map +1 -1
  5. package/dist/shared/ai/types.d.ts +15 -1
  6. package/dist/shared/ai/types.d.ts.map +1 -1
  7. package/dist/shared/ajv.js +6861 -1
  8. package/dist/shared/ajv.js.map +1 -1
  9. package/dist/shared/analytics/init.js +20 -1
  10. package/dist/shared/analytics/init.js.map +1 -1
  11. package/dist/shared/analytics/track.js +24 -1
  12. package/dist/shared/analytics/track.js.map +1 -1
  13. package/dist/shared/attributes.d.ts +97 -30
  14. package/dist/shared/attributes.d.ts.map +1 -1
  15. package/dist/shared/attributes.js +46 -1
  16. package/dist/shared/brick-manifest.d.ts +1 -1
  17. package/dist/shared/brick-manifest.js +26 -1
  18. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +2 -2
  19. package/dist/shared/bricks/manifests/accordion.manifest.js +29 -1
  20. package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
  21. package/dist/shared/bricks/manifests/all-manifests.js +59 -1
  22. package/dist/shared/bricks/manifests/box.manifest.d.ts +2 -2
  23. package/dist/shared/bricks/manifests/box.manifest.js +28 -1
  24. package/dist/shared/bricks/manifests/button.manifest.d.ts +2 -2
  25. package/dist/shared/bricks/manifests/button.manifest.js +28 -1
  26. package/dist/shared/bricks/manifests/card.manifest.d.ts +3 -3
  27. package/dist/shared/bricks/manifests/card.manifest.js +28 -1
  28. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +2 -2
  29. package/dist/shared/bricks/manifests/carousel.manifest.js +28 -1
  30. package/dist/shared/bricks/manifests/footer.manifest.d.ts +4 -4
  31. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  32. package/dist/shared/bricks/manifests/footer.manifest.js +30 -1
  33. package/dist/shared/bricks/manifests/form.manifest.d.ts +3 -3
  34. package/dist/shared/bricks/manifests/form.manifest.js +29 -1
  35. package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -2
  36. package/dist/shared/bricks/manifests/hero.manifest.js +28 -1
  37. package/dist/shared/bricks/manifests/html.manifest.d.ts +2 -2
  38. package/dist/shared/bricks/manifests/html.manifest.js +28 -1
  39. package/dist/shared/bricks/manifests/icon.manifest.d.ts +2 -2
  40. package/dist/shared/bricks/manifests/icon.manifest.js +28 -1
  41. package/dist/shared/bricks/manifests/image.manifest.d.ts +2 -2
  42. package/dist/shared/bricks/manifests/image.manifest.js +28 -1
  43. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -2
  44. package/dist/shared/bricks/manifests/images-gallery.manifest.js +28 -1
  45. package/dist/shared/bricks/manifests/map.manifest.d.ts +2 -2
  46. package/dist/shared/bricks/manifests/map.manifest.js +31 -1
  47. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +4 -4
  48. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  49. package/dist/shared/bricks/manifests/navbar.manifest.js +31 -1
  50. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +2 -2
  51. package/dist/shared/bricks/manifests/sidebar.manifest.js +29 -1
  52. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +2 -2
  53. package/dist/shared/bricks/manifests/social-links.manifest.js +28 -1
  54. package/dist/shared/bricks/manifests/spacer.manifest.d.ts +2 -2
  55. package/dist/shared/bricks/manifests/spacer.manifest.js +28 -1
  56. package/dist/shared/bricks/manifests/table.manifest.d.ts +91 -0
  57. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -0
  58. package/dist/shared/bricks/manifests/table.manifest.js +31 -0
  59. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +90 -0
  60. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -0
  61. package/dist/shared/bricks/manifests/tabs.manifest.js +31 -0
  62. package/dist/shared/bricks/manifests/tabs.manifest.js.map +1 -0
  63. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +2 -2
  64. package/dist/shared/bricks/manifests/testimonials.manifest.js +28 -1
  65. package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -2
  66. package/dist/shared/bricks/manifests/text.manifest.js +28 -1
  67. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +101 -0
  68. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -0
  69. package/dist/shared/bricks/manifests/timeline.manifest.js +31 -0
  70. package/dist/shared/bricks/manifests/timeline.manifest.js.map +1 -0
  71. package/dist/shared/bricks/manifests/video.manifest.d.ts +2 -2
  72. package/dist/shared/bricks/manifests/video.manifest.js +28 -1
  73. package/dist/shared/bricks/props/align.d.ts +2 -2
  74. package/dist/shared/bricks/props/align.js +19 -1
  75. package/dist/shared/bricks/props/background.d.ts +4 -4
  76. package/dist/shared/bricks/props/background.js +15 -1
  77. package/dist/shared/bricks/props/boolean.js +7 -1
  78. package/dist/shared/bricks/props/border.js +16 -1
  79. package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
  80. package/dist/shared/bricks/props/color-preset.js +13 -1
  81. package/dist/shared/bricks/props/color.js +14 -1
  82. package/dist/shared/bricks/props/common.d.ts +2 -2
  83. package/dist/shared/bricks/props/common.js +13 -1
  84. package/dist/shared/bricks/props/css-length.js +14 -1
  85. package/dist/shared/bricks/props/datarecord.js +7 -1
  86. package/dist/shared/bricks/props/datasource.d.ts +1 -1
  87. package/dist/shared/bricks/props/datasource.js +86 -1
  88. package/dist/shared/bricks/props/datasource.js.map +1 -1
  89. package/dist/shared/bricks/props/date.js +9 -1
  90. package/dist/shared/bricks/props/direction.js +11 -1
  91. package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
  92. package/dist/shared/bricks/props/dynamic.js +30 -1
  93. package/dist/shared/bricks/props/effects.js +17 -1
  94. package/dist/shared/bricks/props/file.js +15 -1
  95. package/dist/shared/bricks/props/file.js.map +1 -1
  96. package/dist/shared/bricks/props/geolocation.js +44 -1
  97. package/dist/shared/bricks/props/geolocation.js.map +1 -1
  98. package/dist/shared/bricks/props/helpers.d.ts +1 -1
  99. package/dist/shared/bricks/props/helpers.js +18 -1
  100. package/dist/shared/bricks/props/image.js +11 -1
  101. package/dist/shared/bricks/props/number.js +7 -1
  102. package/dist/shared/bricks/props/position.js +7 -1
  103. package/dist/shared/bricks/props/string.js +18 -1
  104. package/dist/shared/bricks/props/tags.js +10 -1
  105. package/dist/shared/bricks/props/text.js +19 -1
  106. package/dist/shared/bricks.d.ts +56 -44
  107. package/dist/shared/bricks.d.ts.map +1 -1
  108. package/dist/shared/bricks.js +79 -1
  109. package/dist/shared/chunk-2BPYOTKA.js +21 -0
  110. package/dist/shared/{chunk-WHTPGWUV.js.map → chunk-2BPYOTKA.js.map} +1 -1
  111. package/dist/shared/chunk-2HO4FHLM.js +456 -0
  112. package/dist/shared/{chunk-I3VL6SRH.js.map → chunk-2HO4FHLM.js.map} +1 -1
  113. package/dist/shared/chunk-2RK3CPYJ.js +74 -0
  114. package/dist/shared/{chunk-W33JMRRN.js.map → chunk-2RK3CPYJ.js.map} +1 -1
  115. package/dist/shared/chunk-3KLRW4I2.js +560 -0
  116. package/dist/shared/{chunk-B3EATRFX.js.map → chunk-3KLRW4I2.js.map} +1 -1
  117. package/dist/shared/chunk-3ZDN5BWN.js +18 -0
  118. package/dist/shared/{chunk-OIY3EPHO.js.map → chunk-3ZDN5BWN.js.map} +1 -1
  119. package/dist/shared/chunk-4WI23M7W.js +30 -0
  120. package/dist/shared/chunk-4WI23M7W.js.map +1 -0
  121. package/dist/shared/chunk-55C6MTX2.js +21 -0
  122. package/dist/shared/{chunk-KBHDY425.js.map → chunk-55C6MTX2.js.map} +1 -1
  123. package/dist/shared/chunk-6E42XWFH.js +103 -0
  124. package/dist/shared/{chunk-ZA3GAB4H.js.map → chunk-6E42XWFH.js.map} +1 -1
  125. package/dist/shared/chunk-6TVVKUWM.js +15 -0
  126. package/dist/shared/{chunk-4WDWJA3N.js.map → chunk-6TVVKUWM.js.map} +1 -1
  127. package/dist/shared/chunk-6WIMWLCJ.js +17 -0
  128. package/dist/shared/{chunk-KYY3PHP7.js.map → chunk-6WIMWLCJ.js.map} +1 -1
  129. package/dist/shared/chunk-7LAWWRU7.js +21 -0
  130. package/dist/shared/{chunk-IUXCWWGO.js.map → chunk-7LAWWRU7.js.map} +1 -1
  131. package/dist/shared/chunk-A2QPY54H.js +13 -0
  132. package/dist/shared/{chunk-KFM6KXSE.js.map → chunk-A2QPY54H.js.map} +1 -1
  133. package/dist/shared/chunk-BHC2A43S.js +67 -0
  134. package/dist/shared/{chunk-3YVJ2ELD.js.map → chunk-BHC2A43S.js.map} +1 -1
  135. package/dist/shared/chunk-BMWRR4DI.js +572 -0
  136. package/dist/shared/chunk-BMWRR4DI.js.map +1 -0
  137. package/dist/shared/chunk-BPBKHEQ5.js +39 -0
  138. package/dist/shared/{chunk-OHNYCXPX.js.map → chunk-BPBKHEQ5.js.map} +1 -1
  139. package/dist/shared/chunk-BW6EFRSF.js +794 -0
  140. package/dist/shared/chunk-BW6EFRSF.js.map +1 -0
  141. package/dist/shared/chunk-CKFRSHR2.js +105 -0
  142. package/dist/shared/{chunk-CFF6Q7O7.js.map → chunk-CKFRSHR2.js.map} +1 -1
  143. package/dist/shared/chunk-CSF2WQX2.js +60 -0
  144. package/dist/shared/{chunk-GLS7HPIZ.js.map → chunk-CSF2WQX2.js.map} +1 -1
  145. package/dist/shared/chunk-D4YQ6ABM.js +338 -0
  146. package/dist/shared/{chunk-PXI7AHWS.js.map → chunk-D4YQ6ABM.js.map} +1 -1
  147. package/dist/shared/chunk-DRTGM2UJ.js +129 -0
  148. package/dist/shared/{chunk-FLOMNC6J.js.map → chunk-DRTGM2UJ.js.map} +1 -1
  149. package/dist/shared/chunk-EQMU6NIU.js +1222 -0
  150. package/dist/shared/chunk-EQMU6NIU.js.map +1 -0
  151. package/dist/shared/chunk-EWSPTRDL.js +378 -0
  152. package/dist/shared/{chunk-QX6OGRRT.js.map → chunk-EWSPTRDL.js.map} +1 -1
  153. package/dist/shared/chunk-F22LDHEO.js +105 -0
  154. package/dist/shared/{chunk-5YRC3IT3.js.map → chunk-F22LDHEO.js.map} +1 -1
  155. package/dist/shared/chunk-FVU5PXRC.js +244 -0
  156. package/dist/shared/chunk-FVU5PXRC.js.map +1 -0
  157. package/dist/shared/chunk-GCQURRVB.js +837 -0
  158. package/dist/shared/{chunk-WYVJE6J5.js.map → chunk-GCQURRVB.js.map} +1 -1
  159. package/dist/shared/chunk-GPCI2N2A.js +395 -0
  160. package/dist/shared/{chunk-WBZW5LVH.js.map → chunk-GPCI2N2A.js.map} +1 -1
  161. package/dist/shared/chunk-GRMY35BU.js +722 -0
  162. package/dist/shared/{chunk-NJGXC7D6.js.map → chunk-GRMY35BU.js.map} +1 -1
  163. package/dist/shared/chunk-HPCCD6V5.js +17 -0
  164. package/dist/shared/{chunk-6I3ONVU6.js.map → chunk-HPCCD6V5.js.map} +1 -1
  165. package/dist/shared/chunk-JK2FWFJU.js +15 -0
  166. package/dist/shared/{chunk-JMN3HTZU.js.map → chunk-JK2FWFJU.js.map} +1 -1
  167. package/dist/shared/chunk-KNREHAPN.js +13 -0
  168. package/dist/shared/{chunk-KSEURRVZ.js.map → chunk-KNREHAPN.js.map} +1 -1
  169. package/dist/shared/chunk-KT7SSWMM.js +24 -0
  170. package/dist/shared/{chunk-KO5FPOWZ.js.map → chunk-KT7SSWMM.js.map} +1 -1
  171. package/dist/shared/chunk-LXAO3JA6.js +368 -0
  172. package/dist/shared/chunk-LXAO3JA6.js.map +1 -0
  173. package/dist/shared/chunk-MLZT7MRQ.js +538 -0
  174. package/dist/shared/chunk-MLZT7MRQ.js.map +1 -0
  175. package/dist/shared/chunk-NT3IW52F.js +260 -0
  176. package/dist/shared/chunk-NT3IW52F.js.map +1 -0
  177. package/dist/shared/chunk-NTLAKMMQ.js +94 -0
  178. package/dist/shared/{chunk-ZTZJHY4E.js.map → chunk-NTLAKMMQ.js.map} +1 -1
  179. package/dist/shared/chunk-O5PLB3YB.js +413 -0
  180. package/dist/shared/chunk-O5PLB3YB.js.map +1 -0
  181. package/dist/shared/chunk-O5PQISX4.js +51 -0
  182. package/dist/shared/{chunk-VEDQV5XO.js.map → chunk-O5PQISX4.js.map} +1 -1
  183. package/dist/shared/chunk-OJP4HMJT.js +22 -0
  184. package/dist/shared/{chunk-6HLU4UI2.js.map → chunk-OJP4HMJT.js.map} +1 -1
  185. package/dist/shared/chunk-OSJ6KGPX.js +16 -0
  186. package/dist/shared/{chunk-GPEMPZXK.js.map → chunk-OSJ6KGPX.js.map} +1 -1
  187. package/dist/shared/chunk-OXYXZHP2.js +48 -0
  188. package/dist/shared/{chunk-5O4Z3YQY.js.map → chunk-OXYXZHP2.js.map} +1 -1
  189. package/dist/shared/chunk-P3RH5URN.js +230 -0
  190. package/dist/shared/{chunk-R6ATC4TC.js.map → chunk-P3RH5URN.js.map} +1 -1
  191. package/dist/shared/chunk-Q4NPPLEU.js +34 -0
  192. package/dist/shared/{chunk-QWGUMKZC.js.map → chunk-Q4NPPLEU.js.map} +1 -1
  193. package/dist/shared/chunk-QL3T5HJQ.js +59 -0
  194. package/dist/shared/{chunk-E6XEI7IK.js.map → chunk-QL3T5HJQ.js.map} +1 -1
  195. package/dist/shared/chunk-QLQVDZIL.js +11 -0
  196. package/dist/shared/{chunk-KLD3P5XH.js.map → chunk-QLQVDZIL.js.map} +1 -1
  197. package/dist/shared/chunk-QQQ3FYPG.js +248 -0
  198. package/dist/shared/{chunk-SXHDQ64Z.js.map → chunk-QQQ3FYPG.js.map} +1 -1
  199. package/dist/shared/chunk-QSND5IWT.js +165 -0
  200. package/dist/shared/{chunk-ZQPXQCY2.js.map → chunk-QSND5IWT.js.map} +1 -1
  201. package/dist/shared/chunk-RV7AYVFV.js +75 -0
  202. package/dist/shared/{chunk-DHI3IBOD.js.map → chunk-RV7AYVFV.js.map} +1 -1
  203. package/dist/shared/chunk-SE6O65HC.js +44 -0
  204. package/dist/shared/{chunk-NM5MMPCF.js.map → chunk-SE6O65HC.js.map} +1 -1
  205. package/dist/shared/chunk-SHUGHJ7V.js +519 -0
  206. package/dist/shared/{chunk-IKC3FK7L.js.map → chunk-SHUGHJ7V.js.map} +1 -1
  207. package/dist/shared/chunk-TB3X4LRQ.js +56 -0
  208. package/dist/shared/{chunk-RJYZ5FAR.js.map → chunk-TB3X4LRQ.js.map} +1 -1
  209. package/dist/shared/chunk-TEO6TJOM.js +212 -0
  210. package/dist/shared/chunk-TEO6TJOM.js.map +1 -0
  211. package/dist/shared/chunk-TFGGYU6Y.js +394 -0
  212. package/dist/shared/{chunk-CZRCW5EN.js.map → chunk-TFGGYU6Y.js.map} +1 -1
  213. package/dist/shared/chunk-TKMWY2VN.js +18 -0
  214. package/dist/shared/{chunk-RDZK73KV.js.map → chunk-TKMWY2VN.js.map} +1 -1
  215. package/dist/shared/chunk-TNMNMYOB.js +69 -0
  216. package/dist/shared/{chunk-4BTB3MU2.js.map → chunk-TNMNMYOB.js.map} +1 -1
  217. package/dist/shared/chunk-U7TVEPKA.js +432 -0
  218. package/dist/shared/chunk-U7TVEPKA.js.map +1 -0
  219. package/dist/shared/chunk-UQF52PWK.js +70 -0
  220. package/dist/shared/{chunk-A3GF4PYW.js.map → chunk-UQF52PWK.js.map} +1 -1
  221. package/dist/shared/chunk-V3UA3LRK.js +253 -0
  222. package/dist/shared/{chunk-G5CJU6RD.js.map → chunk-V3UA3LRK.js.map} +1 -1
  223. package/dist/shared/chunk-W6MRYRGJ.js +100 -0
  224. package/dist/shared/{chunk-CCI4C3TM.js.map → chunk-W6MRYRGJ.js.map} +1 -1
  225. package/dist/shared/chunk-WGDUJSSS.js +462 -0
  226. package/dist/shared/chunk-WGDUJSSS.js.map +1 -0
  227. package/dist/shared/chunk-WKN566LN.js +29 -0
  228. package/dist/shared/{chunk-Q4H4QEMB.js.map → chunk-WKN566LN.js.map} +1 -1
  229. package/dist/shared/chunk-X6N463D4.js +222 -0
  230. package/dist/shared/{chunk-IKHZD2JH.js.map → chunk-X6N463D4.js.map} +1 -1
  231. package/dist/shared/chunk-X75YV73Q.js +178 -0
  232. package/dist/shared/{chunk-PLSV746R.js.map → chunk-X75YV73Q.js.map} +1 -1
  233. package/dist/shared/chunk-XCWMZVF5.js +89 -0
  234. package/dist/shared/{chunk-ZFCUSWMT.js.map → chunk-XCWMZVF5.js.map} +1 -1
  235. package/dist/shared/chunk-XCZVD5H6.js +13 -0
  236. package/dist/shared/{chunk-HAGKVQOW.js.map → chunk-XCZVD5H6.js.map} +1 -1
  237. package/dist/shared/chunk-XZ6WJZHN.js +10 -0
  238. package/dist/shared/{chunk-DCH4ZKWT.js.map → chunk-XZ6WJZHN.js.map} +1 -1
  239. package/dist/shared/chunk-Y74LZNND.js +30 -0
  240. package/dist/shared/{chunk-GACHLACT.js.map → chunk-Y74LZNND.js.map} +1 -1
  241. package/dist/shared/chunk-Z2NTDFB4.js +505 -0
  242. package/dist/shared/{chunk-SQ5T4AT5.js.map → chunk-Z2NTDFB4.js.map} +1 -1
  243. package/dist/shared/chunk-Z35I5JM5.js +131 -0
  244. package/dist/shared/{chunk-PSTFJ5IJ.js.map → chunk-Z35I5JM5.js.map} +1 -1
  245. package/dist/shared/chunk-ZEFOWKYP.js +44 -0
  246. package/dist/shared/{chunk-DQ7PRWTG.js.map → chunk-ZEFOWKYP.js.map} +1 -1
  247. package/dist/shared/chunk-ZGQ3AQBG.js +33 -0
  248. package/dist/shared/chunk-ZGQ3AQBG.js.map +1 -0
  249. package/dist/shared/chunk-ZLYIRH2B.js +68 -0
  250. package/dist/shared/{chunk-SWLUQVK7.js.map → chunk-ZLYIRH2B.js.map} +1 -1
  251. package/dist/shared/datarecords/external/airtable/handler.js +377 -1
  252. package/dist/shared/datarecords/external/airtable/handler.js.map +1 -1
  253. package/dist/shared/datarecords/external/airtable/oauth/config.js +15 -1
  254. package/dist/shared/datarecords/external/airtable/oauth/config.js.map +1 -1
  255. package/dist/shared/datarecords/external/airtable/types.js +11 -1
  256. package/dist/shared/datarecords/external/generic-webhook/handler.js +14 -1
  257. package/dist/shared/datarecords/external/generic-webhook/handler.js.map +1 -1
  258. package/dist/shared/datarecords/external/generic-webhook/options.js +16 -1
  259. package/dist/shared/datarecords/external/generic-webhook/options.js.map +1 -1
  260. package/dist/shared/datarecords/external/google/oauth/config.js +35 -1
  261. package/dist/shared/datarecords/external/google/oauth/config.js.map +1 -1
  262. package/dist/shared/datarecords/external/google/sheets/client.js +7 -1
  263. package/dist/shared/datarecords/external/google/sheets/handler.js +184 -5
  264. package/dist/shared/datarecords/external/google/sheets/handler.js.map +1 -1
  265. package/dist/shared/datarecords/external/google/sheets/types.js +7 -1
  266. package/dist/shared/datarecords/external/notion/handler.js +397 -1
  267. package/dist/shared/datarecords/external/notion/handler.js.map +1 -1
  268. package/dist/shared/datarecords/external/notion/oauth/config.js +11 -1
  269. package/dist/shared/datarecords/external/notion/oauth/config.js.map +1 -1
  270. package/dist/shared/datarecords/external/notion/types.js +7 -1
  271. package/dist/shared/datarecords/types.d.ts +3 -3
  272. package/dist/shared/datarecords/types.js +16 -1
  273. package/dist/shared/datarecords.js +9 -1
  274. package/dist/shared/datarecords.js.map +1 -1
  275. package/dist/shared/datasources/external/facebook/posts/fetcher.js +49 -1
  276. package/dist/shared/datasources/external/facebook/posts/fetcher.js.map +1 -1
  277. package/dist/shared/datasources/external/facebook/posts/schema.js +36 -1
  278. package/dist/shared/datasources/external/facebook/posts/schema.js.map +1 -1
  279. package/dist/shared/datasources/external/http-json/fetcher.js +29 -1
  280. package/dist/shared/datasources/external/http-json/fetcher.js.map +1 -1
  281. package/dist/shared/datasources/external/http-json/options.js +11 -1
  282. package/dist/shared/datasources/external/http-json/options.js.map +1 -1
  283. package/dist/shared/datasources/external/http-json/schema.js +10 -1
  284. package/dist/shared/datasources/external/http-json/schema.js.map +1 -1
  285. package/dist/shared/datasources/external/instagram/feed/fetcher.js +29 -1
  286. package/dist/shared/datasources/external/instagram/feed/fetcher.js.map +1 -1
  287. package/dist/shared/datasources/external/instagram/feed/schema.js +26 -1
  288. package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
  289. package/dist/shared/datasources/external/mastodon/account/fetcher.js +7 -1
  290. package/dist/shared/datasources/external/mastodon/account/schema.js +7 -1
  291. package/dist/shared/datasources/external/mastodon/options.js +10 -1
  292. package/dist/shared/datasources/external/mastodon/options.js.map +1 -1
  293. package/dist/shared/datasources/external/mastodon/status/fetcher.js +31 -1
  294. package/dist/shared/datasources/external/mastodon/status/fetcher.js.map +1 -1
  295. package/dist/shared/datasources/external/mastodon/status/sample.array.js +61 -1
  296. package/dist/shared/datasources/external/mastodon/status/sample.array.js.map +1 -1
  297. package/dist/shared/datasources/external/mastodon/status/sample.single.js +59 -1
  298. package/dist/shared/datasources/external/mastodon/status/sample.single.js.map +1 -1
  299. package/dist/shared/datasources/external/mastodon/status/schema.js +125 -1
  300. package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
  301. package/dist/shared/datasources/external/meta/oauth/config.js +17 -1
  302. package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
  303. package/dist/shared/datasources/external/meta/options.js +10 -1
  304. package/dist/shared/datasources/external/meta/options.js.map +1 -1
  305. package/dist/shared/datasources/external/rss/fetcher.js +26 -1
  306. package/dist/shared/datasources/external/rss/fetcher.js.map +1 -1
  307. package/dist/shared/datasources/external/rss/options.js +10 -1
  308. package/dist/shared/datasources/external/rss/options.js.map +1 -1
  309. package/dist/shared/datasources/external/rss/schema.js +7 -1
  310. package/dist/shared/datasources/external/threads/media/fetcher.js +47 -1
  311. package/dist/shared/datasources/external/threads/media/fetcher.js.map +1 -1
  312. package/dist/shared/datasources/external/threads/media/schema.js +40 -1
  313. package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
  314. package/dist/shared/datasources/external/tiktok/oauth/config.js +18 -1
  315. package/dist/shared/datasources/external/tiktok/oauth/config.js.map +1 -1
  316. package/dist/shared/datasources/external/tiktok/video/fetcher.js +34 -1
  317. package/dist/shared/datasources/external/tiktok/video/fetcher.js.map +1 -1
  318. package/dist/shared/datasources/external/tiktok/video/options.js +11 -1
  319. package/dist/shared/datasources/external/tiktok/video/options.js.map +1 -1
  320. package/dist/shared/datasources/external/tiktok/video/schema.js +30 -1
  321. package/dist/shared/datasources/external/tiktok/video/schema.js.map +1 -1
  322. package/dist/shared/datasources/external/youtube/list/fetcher.js +32 -1
  323. package/dist/shared/datasources/external/youtube/list/fetcher.js.map +1 -1
  324. package/dist/shared/datasources/external/youtube/list/options.js +14 -1
  325. package/dist/shared/datasources/external/youtube/list/options.js.map +1 -1
  326. package/dist/shared/datasources/external/youtube/list/schema.js +7 -1
  327. package/dist/shared/datasources/external/youtube/oauth/config.js +18 -1
  328. package/dist/shared/datasources/external/youtube/oauth/config.js.map +1 -1
  329. package/dist/shared/datasources/internal/blog/schema.js +72 -1
  330. package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
  331. package/dist/shared/datasources/internal/changelog/schema.js +51 -1
  332. package/dist/shared/datasources/internal/changelog/schema.js.map +1 -1
  333. package/dist/shared/datasources/internal/contact-info/schema.js +25 -1
  334. package/dist/shared/datasources/internal/contact-info/schema.js.map +1 -1
  335. package/dist/shared/datasources/internal/cv/schema.js +222 -1
  336. package/dist/shared/datasources/internal/cv/schema.js.map +1 -1
  337. package/dist/shared/datasources/internal/faq/schema.js +30 -1
  338. package/dist/shared/datasources/internal/faq/schema.js.map +1 -1
  339. package/dist/shared/datasources/internal/job-board/schema.js +224 -1
  340. package/dist/shared/datasources/internal/job-board/schema.js.map +1 -1
  341. package/dist/shared/datasources/internal/links/schema.js +7 -1
  342. package/dist/shared/datasources/internal/recipes/schema.js +45 -1
  343. package/dist/shared/datasources/internal/recipes/schema.js.map +1 -1
  344. package/dist/shared/datasources/internal/restaurant/schema.js +226 -1
  345. package/dist/shared/datasources/internal/restaurant/schema.js.map +1 -1
  346. package/dist/shared/datasources/samples.js +69 -1
  347. package/dist/shared/datasources/samples.js.map +1 -1
  348. package/dist/shared/datasources/schemas.js +34 -1
  349. package/dist/shared/datasources/schemas.js.map +1 -1
  350. package/dist/shared/datasources/types.d.ts +1 -1
  351. package/dist/shared/datasources/types.d.ts.map +1 -1
  352. package/dist/shared/datasources/types.js +32 -1
  353. package/dist/shared/datasources/utils.js +11 -1
  354. package/dist/shared/datasources.js +51 -1
  355. package/dist/shared/datasources.js.map +1 -1
  356. package/dist/shared/errors.js +7 -1
  357. package/dist/shared/images.d.ts +4 -4
  358. package/dist/shared/images.d.ts.map +1 -1
  359. package/dist/shared/images.js +44 -1
  360. package/dist/shared/images.js.map +1 -1
  361. package/dist/shared/index.js +9 -1
  362. package/dist/shared/index.js.map +1 -1
  363. package/dist/shared/layout-constants.js +14 -1
  364. package/dist/shared/layout-constants.js.map +1 -1
  365. package/dist/shared/manifest.js +52 -1
  366. package/dist/shared/manifest.js.map +1 -1
  367. package/dist/shared/oauth.js +8 -1
  368. package/dist/shared/page.d.ts +12 -126
  369. package/dist/shared/page.d.ts.map +1 -1
  370. package/dist/shared/page.js +58 -1
  371. package/dist/shared/prompt.js +7 -1
  372. package/dist/shared/responsive.js +10 -1
  373. package/dist/shared/responsive.js.map +1 -1
  374. package/dist/shared/schema-registry.d.ts +5 -0
  375. package/dist/shared/schema-registry.d.ts.map +1 -0
  376. package/dist/shared/schema-registry.js +119 -0
  377. package/dist/shared/schema-registry.js.map +1 -0
  378. package/dist/shared/site.d.ts +36 -33
  379. package/dist/shared/site.d.ts.map +1 -1
  380. package/dist/shared/site.js +127 -1
  381. package/dist/shared/site.js.map +1 -1
  382. package/dist/shared/sitemap.d.ts +17 -17
  383. package/dist/shared/sitemap.d.ts.map +1 -1
  384. package/dist/shared/sitemap.js +69 -1
  385. package/dist/shared/social-icons.js +312 -1
  386. package/dist/shared/social-icons.js.map +1 -1
  387. package/dist/shared/tests/schema-registry.test.d.ts +2 -0
  388. package/dist/shared/tests/schema-registry.test.d.ts.map +1 -0
  389. package/dist/shared/theme.d.ts +1 -1
  390. package/dist/shared/theme.d.ts.map +1 -1
  391. package/dist/shared/theme.js +35 -1
  392. package/dist/shared/themes/color-system.d.ts +0 -1
  393. package/dist/shared/themes/color-system.d.ts.map +1 -1
  394. package/dist/shared/themes/color-system.js +103 -1
  395. package/dist/shared/themes/color-system.js.map +1 -1
  396. package/dist/shared/utils/canvas-data-uri.js +7 -1
  397. package/dist/shared/utils/canvas-data-uri.js.map +1 -1
  398. package/dist/shared/utils/invariant.js +7 -1
  399. package/dist/shared/utils/json-date.js +7 -1
  400. package/dist/shared/utils/llm.d.ts +2 -3
  401. package/dist/shared/utils/llm.d.ts.map +1 -1
  402. package/dist/shared/utils/llm.js +24 -1
  403. package/dist/shared/utils/merge.js +7 -1
  404. package/dist/shared/utils/object-hash.js +13 -1
  405. package/dist/shared/utils/object-hash.js.map +1 -1
  406. package/dist/shared/utils/schema-registry.d.ts +5 -0
  407. package/dist/shared/utils/schema-registry.d.ts.map +1 -0
  408. package/dist/shared/utils/schema-registry.js +29 -0
  409. package/dist/shared/utils/schema-registry.js.map +1 -0
  410. package/dist/shared/utils/schema.d.ts +2 -1
  411. package/dist/shared/utils/schema.d.ts.map +1 -1
  412. package/dist/shared/utils/schema.js +31 -1
  413. package/dist/shared/utils/string-enum.js +7 -1
  414. package/dist/shared/utils/tests/schema-registry.test.d.ts +2 -0
  415. package/dist/shared/utils/tests/schema-registry.test.d.ts.map +1 -0
  416. package/dist/shared/utils/try-catch.js +13 -1
  417. package/dist/shared/utils/try-catch.js.map +1 -1
  418. package/dist/shared/utils/typed-ref.js +7 -1
  419. package/package.json +12 -13
  420. package/src/shared/ai/schemas.ts +4 -8
  421. package/src/shared/ai/types.ts +9 -1
  422. package/src/shared/attributes.ts +27 -25
  423. package/src/shared/bricks/manifests/all-manifests.ts +15 -0
  424. package/src/shared/bricks/manifests/footer.manifest.ts +36 -27
  425. package/src/shared/bricks/manifests/navbar.manifest.ts +1 -3
  426. package/src/shared/bricks/manifests/table.manifest.ts +443 -0
  427. package/src/shared/bricks/manifests/tabs.manifest.ts +576 -0
  428. package/src/shared/bricks/manifests/timeline.manifest.ts +441 -0
  429. package/src/shared/bricks/props/color-preset.ts +3 -1
  430. package/src/shared/bricks/props/dynamic.ts +0 -1
  431. package/src/shared/bricks.ts +54 -45
  432. package/src/shared/datasources/types.ts +1 -5
  433. package/src/shared/images.ts +10 -8
  434. package/src/shared/page.ts +0 -4
  435. package/src/shared/schema-registry.ts +82 -0
  436. package/src/shared/sitemap.ts +12 -16
  437. package/src/shared/tests/schema-registry.test.ts +14 -0
  438. package/src/shared/theme.ts +1 -4
  439. package/src/shared/themes/color-system.ts +0 -1
  440. package/src/shared/utils/llm.ts +13 -12
  441. package/src/shared/utils/schema-registry.ts +82 -0
  442. package/src/shared/utils/schema.ts +18 -3
  443. package/src/shared/utils/tests/schema-registry.test.ts +13 -0
  444. package/src/shared/utils/tests/schema.test.ts +82 -55
  445. package/dist/shared/bricks/props/enum.d.ts +0 -13
  446. package/dist/shared/bricks/props/enum.d.ts.map +0 -1
  447. package/dist/shared/bricks/props/enum.js +0 -4
  448. package/dist/shared/chunk-3YVJ2ELD.js +0 -4
  449. package/dist/shared/chunk-4BTB3MU2.js +0 -4
  450. package/dist/shared/chunk-4WDWJA3N.js +0 -4
  451. package/dist/shared/chunk-5O4Z3YQY.js +0 -4
  452. package/dist/shared/chunk-5YRC3IT3.js +0 -4
  453. package/dist/shared/chunk-6HLU4UI2.js +0 -4
  454. package/dist/shared/chunk-6I3ONVU6.js +0 -4
  455. package/dist/shared/chunk-7A2JNQX3.js +0 -4
  456. package/dist/shared/chunk-7A2JNQX3.js.map +0 -1
  457. package/dist/shared/chunk-A3GF4PYW.js +0 -4
  458. package/dist/shared/chunk-A3K4NUVP.js +0 -4
  459. package/dist/shared/chunk-A3K4NUVP.js.map +0 -1
  460. package/dist/shared/chunk-AFVJZPLS.js +0 -4
  461. package/dist/shared/chunk-AFVJZPLS.js.map +0 -1
  462. package/dist/shared/chunk-AI4GHU7R.js +0 -4
  463. package/dist/shared/chunk-AI4GHU7R.js.map +0 -1
  464. package/dist/shared/chunk-B3EATRFX.js +0 -4
  465. package/dist/shared/chunk-CCI4C3TM.js +0 -4
  466. package/dist/shared/chunk-CFF6Q7O7.js +0 -7
  467. package/dist/shared/chunk-CZRCW5EN.js +0 -4
  468. package/dist/shared/chunk-DCH4ZKWT.js +0 -4
  469. package/dist/shared/chunk-DHI3IBOD.js +0 -4
  470. package/dist/shared/chunk-DQ7PRWTG.js +0 -4
  471. package/dist/shared/chunk-E6XEI7IK.js +0 -4
  472. package/dist/shared/chunk-FLOMNC6J.js +0 -4
  473. package/dist/shared/chunk-G5CJU6RD.js +0 -7
  474. package/dist/shared/chunk-GACHLACT.js +0 -4
  475. package/dist/shared/chunk-GLS7HPIZ.js +0 -4
  476. package/dist/shared/chunk-GOMXZC4B.js +0 -35
  477. package/dist/shared/chunk-GOMXZC4B.js.map +0 -1
  478. package/dist/shared/chunk-GPEMPZXK.js +0 -4
  479. package/dist/shared/chunk-HAGKVQOW.js +0 -4
  480. package/dist/shared/chunk-I3VL6SRH.js +0 -9
  481. package/dist/shared/chunk-IKC3FK7L.js +0 -4
  482. package/dist/shared/chunk-IKHZD2JH.js +0 -4
  483. package/dist/shared/chunk-IUXCWWGO.js +0 -4
  484. package/dist/shared/chunk-JMN3HTZU.js +0 -4
  485. package/dist/shared/chunk-KBHDY425.js +0 -4
  486. package/dist/shared/chunk-KFM6KXSE.js +0 -4
  487. package/dist/shared/chunk-KLD3P5XH.js +0 -4
  488. package/dist/shared/chunk-KO5FPOWZ.js +0 -4
  489. package/dist/shared/chunk-KSEURRVZ.js +0 -4
  490. package/dist/shared/chunk-KYY3PHP7.js +0 -4
  491. package/dist/shared/chunk-NJGXC7D6.js +0 -4
  492. package/dist/shared/chunk-NM5MMPCF.js +0 -4
  493. package/dist/shared/chunk-OGBMYMZD.js +0 -4
  494. package/dist/shared/chunk-OGBMYMZD.js.map +0 -1
  495. package/dist/shared/chunk-OHNYCXPX.js +0 -4
  496. package/dist/shared/chunk-OIY3EPHO.js +0 -4
  497. package/dist/shared/chunk-PIG623TZ.js +0 -4
  498. package/dist/shared/chunk-PIG623TZ.js.map +0 -1
  499. package/dist/shared/chunk-PLSV746R.js +0 -4
  500. package/dist/shared/chunk-PSCN3VVA.js +0 -4
  501. package/dist/shared/chunk-PSCN3VVA.js.map +0 -1
  502. package/dist/shared/chunk-PSTFJ5IJ.js +0 -4
  503. package/dist/shared/chunk-PXI7AHWS.js +0 -4
  504. package/dist/shared/chunk-Q4H4QEMB.js +0 -4
  505. package/dist/shared/chunk-QGYZ7CG5.js +0 -4
  506. package/dist/shared/chunk-QGYZ7CG5.js.map +0 -1
  507. package/dist/shared/chunk-QWGUMKZC.js +0 -4
  508. package/dist/shared/chunk-QX6OGRRT.js +0 -5
  509. package/dist/shared/chunk-R6ATC4TC.js +0 -4
  510. package/dist/shared/chunk-RDZK73KV.js +0 -4
  511. package/dist/shared/chunk-RJYZ5FAR.js +0 -4
  512. package/dist/shared/chunk-SQ5T4AT5.js +0 -6
  513. package/dist/shared/chunk-SWLUQVK7.js +0 -4
  514. package/dist/shared/chunk-SXHDQ64Z.js +0 -5
  515. package/dist/shared/chunk-SY6DZLTC.js +0 -4
  516. package/dist/shared/chunk-SY6DZLTC.js.map +0 -1
  517. package/dist/shared/chunk-VEDQV5XO.js +0 -4
  518. package/dist/shared/chunk-W33JMRRN.js +0 -4
  519. package/dist/shared/chunk-WBZW5LVH.js +0 -4
  520. package/dist/shared/chunk-WHTPGWUV.js +0 -4
  521. package/dist/shared/chunk-WYVJE6J5.js +0 -4
  522. package/dist/shared/chunk-ZA3GAB4H.js +0 -9
  523. package/dist/shared/chunk-ZFCUSWMT.js +0 -4
  524. package/dist/shared/chunk-ZQPXQCY2.js +0 -4
  525. package/dist/shared/chunk-ZTZJHY4E.js +0 -4
  526. package/src/shared/bricks/props/enum.ts +0 -38
  527. /package/dist/shared/bricks/{props/enum.js.map → manifests/table.manifest.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/box.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { Type } from \"@sinclair/typebox\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport type { BrickProps } from \"../props/types\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { directionRef } from \"../props/direction\";\nimport { RxBox } from \"react-icons/rx\";\nimport { alignItemsRef, justifyContentRef } from \"../props/align\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\n\n// Generic container can hold any type of array data source\nexport const manifest = defineBrickManifest({\n type: \"box\",\n category: \"container\",\n name: \"Box\",\n description: \"A container for stacking bricks horizontally or vertically.\",\n aiInstructions:\n \"A box is a container for other bricks. A box cannot contain other boxes as children. A box should contain at least 2 bricks to be useful, otherwise use a simple brick instead.\",\n isContainer: true,\n defaultWidth: {\n desktop: \"auto\",\n mobile: \"100%\",\n },\n defaultHeight: {\n desktop: \"auto\",\n },\n icon: RxBox,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n direction: directionRef({\n default: \"flex-col\",\n title: \"Direction\",\n description: \"Direction of the box layout\",\n }),\n justifyContent: Type.Optional(\n justifyContentRef({\n default: \"justify-center\",\n }),\n ),\n alignItems: Type.Optional(\n alignItemsRef({\n default: \"items-stretch\",\n }),\n ),\n gap: Type.Optional(\n cssLengthRef({\n title: \"Gap\",\n default: \"1rem\",\n description: \"Gap between children bricks.\",\n \"ai:instructions\":\n \"Can be a tailwind gap class like 'gap-1' or 'gap-2', or a custom value like '10px'\",\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:gap\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"1rem\",\n description: \"Padding inside the box.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n wrap: Type.Optional(\n Type.Boolean({\n title: \"Wrap\",\n description: \"Wrap bricks if they overflow the section.\",\n default: false,\n \"ui:styleId\": \"styles:wrap\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n shadow: Type.Optional(shadowRef()),\n loop: Type.Optional(loopRef()),\n $children: Type.Array(Type.Any(), {\n \"ui:field\": \"hidden\",\n description: \"List of nested bricks\",\n default: [],\n examples: [\n [\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n ],\n ],\n }),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"A simple box with 2 text bricks aligned vertically\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n $children: [\n {\n type: \"text\",\n props: {\n $children: [\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n ],\n },\n },\n ],\n },\n },\n {\n description: \"A horizontal box with wrapping enabled - images will wrap to new rows if they overflow\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"1rem\",\n wrap: true,\n $children: [\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n ],\n },\n },\n {\n description: \"A vertical box with 2 text bricks and 1 image\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n $children: [\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n ],\n },\n },\n {\n description: \"Employee directory using allEmployees query with vertical layout\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1.5rem\",\n padding: \"2rem\",\n colorPreset: {\n color: \"neutral-100\",\n },\n rounding: \"rounded-lg\",\n loop: {\n over: \"allEmployees\",\n },\n $children: [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{allEmployees.name}}</h3><p><strong>{{allEmployees.position}}</strong></p><p>{{allEmployees.department}} • {{allEmployees.email}}</p>\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"{{allEmployees.photo}}\",\n alt: \"Photo of {{allEmployees.name}}\",\n },\n },\n ],\n },\n },\n {\n description: \"Blog posts grid using blogPosts query with horizontal cards\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"2rem\",\n padding: \"1rem\",\n justifyContent: \"justify-start\",\n alignItems: \"items-stretch\",\n loop: {\n over: \"blogPosts\",\n },\n $children: [\n {\n type: \"image\",\n props: {\n src: \"{{blogPosts.featuredImage}}\",\n alt: \"{{blogPosts.title}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h4>{{blogPosts.title}}</h4><p>{{blogPosts.excerpt}}</p><p><em>By {{blogPosts.author}} • {{blogPosts.publishDate}}</em></p>\",\n },\n },\n ],\n },\n },\n {\n description: \"Featured products showcase using featuredProducts query\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n padding: \"1.5rem\",\n colorPreset: {\n color: \"primary-50\",\n },\n border: {\n width: \"border\",\n color: \"border-primary-200\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n loop: {\n over: \"featuredProducts\",\n },\n $children: [\n {\n type: \"image\",\n props: {\n src: \"{{featuredProducts.image}}\",\n alt: \"{{featuredProducts.name}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{featuredProducts.name}}</h3><p>{{featuredProducts.description}}</p><p><strong>${{featuredProducts.price}}</strong></p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Add to Cart\",\n link: \"/cart/add/{{featuredProducts.id}}\",\n },\n },\n ],\n },\n },\n {\n description:\n \"Team members horizontal layout with wrapping - members will wrap to multiple rows on smaller screens\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"2rem\",\n padding: \"2rem\",\n wrap: true,\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n colorPreset: {\n color: \"secondary-100\",\n },\n loop: {\n over: \"teamMembers\",\n },\n $children: [\n {\n type: \"image\",\n props: {\n src: \"{{teamMembers.avatar}}\",\n alt: \"{{teamMembers.fullName}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content: \"<h4>{{teamMembers.fullName}}</h4><p>{{teamMembers.role}}</p><p>{{teamMembers.bio}}</p>\",\n },\n },\n ],\n },\n },\n {\n description: \"Event listings using upcomingEvents query with accent styling\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1.25rem\",\n padding: \"2.5rem\",\n colorPreset: {\n color: \"accent-100\",\n },\n border: {\n width: \"border-2\",\n color: \"border-accent-300\",\n },\n rounding: \"rounded-lg\",\n loop: {\n over: \"upcomingEvents\",\n },\n $children: [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{upcomingEvents.title}}</h3><p><strong>{{upcomingEvents.date}} at {{upcomingEvents.time}}</strong></p><p>{{upcomingEvents.venue}} • {{upcomingEvents.city}}</p><p>{{upcomingEvents.description}}</p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Register Now\",\n link: \"/events/{{upcomingEvents.slug}}/register\",\n },\n },\n ],\n },\n },\n {\n description: \"Testimonials carousel using customerTestimonials query\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n padding: \"3rem\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n colorPreset: {\n color: \"neutral-50\",\n },\n shadow: \"shadow-lg\",\n rounding: \"rounded-2xl\",\n loop: {\n over: \"customerTestimonials\",\n },\n $children: [\n {\n type: \"text\",\n props: {\n content:\n '<blockquote>\"{{customerTestimonials.quote}}\"</blockquote><p><strong>{{customerTestimonials.customerName}}</strong></p><p>{{customerTestimonials.company}} • {{customerTestimonials.position}}</p>',\n },\n },\n {\n type: \"icon\",\n props: {\n icon: \"mdi:star\",\n size: \"1.5rem\",\n color: \"#fbbf24\",\n },\n },\n ],\n },\n },\n {\n description: \"Portfolio projects using portfolioProjects query with horizontal layout\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"1.5rem\",\n padding: \"1rem\",\n alignItems: \"items-start\",\n justifyContent: \"justify-start\",\n loop: {\n over: \"portfolioProjects\",\n },\n $children: [\n {\n type: \"image\",\n props: {\n src: \"{{portfolioProjects.thumbnail}}\",\n alt: \"{{portfolioProjects.projectName}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h4>{{portfolioProjects.projectName}}</h4><p>{{portfolioProjects.client}}</p><p>{{portfolioProjects.category}} • {{portfolioProjects.year}}</p><p>{{portfolioProjects.shortDescription}}</p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"View Project\",\n link: \"/portfolio/{{portfolioProjects.slug}}\",\n },\n },\n ],\n },\n },\n {\n description: \"News articles using latestNews query with vertical stacking\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"2rem\",\n padding: \"2rem\",\n colorPreset: {\n color: \"primary-100\",\n },\n border: {\n width: \"border\",\n color: \"border-primary-300\",\n },\n loop: {\n over: \"latestNews\",\n },\n $children: [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{latestNews.headline}}</h3><p><strong>{{latestNews.category}}</strong> • {{latestNews.publishedDate}}</p><p>{{latestNews.summary}}</p>\",\n },\n },\n {\n type: \"text\",\n props: {\n content: \"<a href='/news/{{latestNews.slug}}'>Read full article →</a>\",\n },\n },\n ],\n },\n },\n {\n description: \"Service offerings using companyServices query with centered layout\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n padding: \"2rem\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n colorPreset: {\n color: \"secondary-200\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n loop: {\n over: \"companyServices\",\n },\n $children: [\n {\n type: \"icon\",\n props: {\n icon: \"{{companyServices.iconName}}\",\n size: \"2rem\",\n color: \"{{companyServices.iconColor}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h4>{{companyServices.serviceName}}</h4><p>{{companyServices.description}}</p><p><strong>Starting at ${{companyServices.price}}</strong></p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Learn More\",\n link: \"/services/{{companyServices.serviceSlug}}\",\n },\n },\n ],\n },\n },\n];\n"],"mappings":";;sXAEA,OAAS,QAAAA,MAAY,oBAMrB,OAAS,SAAAC,MAAa,iBAMf,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,MACN,SAAU,YACV,KAAM,MACN,YAAa,8DACb,eACE,kLACF,YAAa,GACb,aAAc,CACZ,QAAS,OACT,OAAQ,MACV,EACA,cAAe,CACb,QAAS,MACX,EACA,KAAMC,EACN,MAAOC,EAAY,CACjB,YAAaC,EAAK,SAChBC,EAAe,CACb,MAAO,OACT,CAAC,CACH,EACA,UAAWC,EAAa,CACtB,QAAS,WACT,MAAO,YACP,YAAa,6BACf,CAAC,EACD,eAAgBF,EAAK,SACnBG,EAAkB,CAChB,QAAS,gBACX,CAAC,CACH,EACA,WAAYH,EAAK,SACfI,EAAc,CACZ,QAAS,eACX,CAAC,CACH,EACA,IAAKJ,EAAK,SACRK,EAAa,CACX,MAAO,MACP,QAAS,OACT,YAAa,+BACb,kBACE,qFACF,iBAAkB,gBAClB,aAAc,YAChB,CAAC,CACH,EACA,QAASL,EAAK,SACZK,EAAa,CACX,QAAS,OACT,YAAa,0BACb,kBAAmB,gDACnB,MAAO,UACP,iBAAkB,gBAClB,aAAc,gBAChB,CAAC,CACH,EACA,KAAML,EAAK,SACTA,EAAK,QAAQ,CACX,MAAO,OACP,YAAa,4CACb,QAAS,GACT,aAAc,aAChB,CAAC,CACH,EACA,SAAUA,EAAK,SACbM,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,OAAQN,EAAK,SAASO,EAAU,CAAC,EACjC,OAAQP,EAAK,SAASQ,EAAU,CAAC,EACjC,KAAMR,EAAK,SAASS,EAAQ,CAAC,EAC7B,UAAWT,EAAK,MAAMA,EAAK,IAAI,EAAG,CAChC,WAAY,SACZ,YAAa,wBACb,QAAS,CAAC,EACV,SAAU,CACR,CACE,CACE,KAAM,OACN,MAAO,CACL,QAAS,aACX,CACF,EACA,CACE,KAAM,QACN,MAAO,CACL,IAAK,kCACL,IAAK,mBACP,CACF,CACF,CACF,CACF,CAAC,CACH,CAAC,CACH,CAAC,EAIYU,EAIP,CACJ,CACE,YAAa,qDACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,UAAW,CACT,CACE,KAAM,OACN,MAAO,CACL,UAAW,CACT,CACE,KAAM,OACN,MAAO,CACL,QAAS,aACX,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,QAAS,aACX,CACF,CACF,CACF,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,yFACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,KAAM,GACN,UAAW,CACT,CACE,KAAM,QACN,MAAO,CACL,IAAK,kCACL,IAAK,mBACP,CACF,EACA,CACE,KAAM,QACN,MAAO,CACL,IAAK,kCACL,IAAK,mBACP,CACF,EACA,CACE,KAAM,QACN,MAAO,CACL,IAAK,kCACL,IAAK,mBACP,CACF,EACA,CACE,KAAM,QACN,MAAO,CACL,IAAK,kCACL,IAAK,mBACP,CACF,EACA,CACE,KAAM,QACN,MAAO,CACL,IAAK,kCACL,IAAK,mBACP,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,gDACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,UAAW,CACT,CACE,KAAM,OACN,MAAO,CACL,QAAS,aACX,CACF,EACA,CACE,KAAM,QACN,MAAO,CACL,IAAK,kCACL,IAAK,mBACP,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,QAAS,aACX,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,mEACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,SACL,QAAS,OACT,YAAa,CACX,MAAO,aACT,EACA,SAAU,aACV,KAAM,CACJ,KAAM,cACR,EACA,UAAW,CACT,CACE,KAAM,OACN,MAAO,CACL,QACE,iJACJ,CACF,EACA,CACE,KAAM,QACN,MAAO,CACL,IAAK,yBACL,IAAK,gCACP,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,8DACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,QAAS,OACT,eAAgB,gBAChB,WAAY,gBACZ,KAAM,CACJ,KAAM,WACR,EACA,UAAW,CACT,CACE,KAAM,QACN,MAAO,CACL,IAAK,8BACL,IAAK,qBACP,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,QACE,kIACJ,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,0DACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,QAAS,SACT,YAAa,CACX,MAAO,YACT,EACA,OAAQ,CACN,MAAO,SACP,MAAO,oBACT,EACA,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,kBACR,EACA,UAAW,CACT,CACE,KAAM,QACN,MAAO,CACL,IAAK,6BACL,IAAK,2BACP,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,QACE,8HACJ,CACF,EACA,CACE,KAAM,SACN,MAAO,CACL,KAAM,cACN,KAAM,mCACR,CACF,CACF,CACF,CACF,EACA,CACE,YACE,uGACF,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,QAAS,OACT,KAAM,GACN,eAAgB,iBAChB,WAAY,eACZ,YAAa,CACX,MAAO,eACT,EACA,KAAM,CACJ,KAAM,aACR,EACA,UAAW,CACT,CACE,KAAM,QACN,MAAO,CACL,IAAK,yBACL,IAAK,0BACP,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,QAAS,wFACX,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,gEACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,UACL,QAAS,SACT,YAAa,CACX,MAAO,YACT,EACA,OAAQ,CACN,MAAO,WACP,MAAO,mBACT,EACA,SAAU,aACV,KAAM,CACJ,KAAM,gBACR,EACA,UAAW,CACT,CACE,KAAM,OACN,MAAO,CACL,QACE,gNACJ,CACF,EACA,CACE,KAAM,SACN,MAAO,CACL,KAAM,eACN,KAAM,0CACR,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,yDACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,QAAS,OACT,eAAgB,iBAChB,WAAY,eACZ,YAAa,CACX,MAAO,YACT,EACA,OAAQ,YACR,SAAU,cACV,KAAM,CACJ,KAAM,sBACR,EACA,UAAW,CACT,CACE,KAAM,OACN,MAAO,CACL,QACE,wMACJ,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,KAAM,WACN,KAAM,SACN,MAAO,SACT,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,0EACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,SACL,QAAS,OACT,WAAY,cACZ,eAAgB,gBAChB,KAAM,CACJ,KAAM,mBACR,EACA,UAAW,CACT,CACE,KAAM,QACN,MAAO,CACL,IAAK,kCACL,IAAK,mCACP,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,QACE,mMACJ,CACF,EACA,CACE,KAAM,SACN,MAAO,CACL,KAAM,eACN,KAAM,uCACR,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,8DACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,QAAS,OACT,YAAa,CACX,MAAO,aACT,EACA,OAAQ,CACN,MAAO,SACP,MAAO,oBACT,EACA,KAAM,CACJ,KAAM,YACR,EACA,UAAW,CACT,CACE,KAAM,OACN,MAAO,CACL,QACE,kJACJ,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,QAAS,kEACX,CACF,CACF,CACF,CACF,EACA,CACE,YAAa,qEACb,KAAM,MACN,MAAO,CACL,UAAW,WACX,IAAK,OACL,QAAS,OACT,eAAgB,iBAChB,WAAY,eACZ,YAAa,CACX,MAAO,eACT,EACA,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,iBACR,EACA,UAAW,CACT,CACE,KAAM,OACN,MAAO,CACL,KAAM,+BACN,KAAM,OACN,MAAO,+BACT,CACF,EACA,CACE,KAAM,OACN,MAAO,CACL,QACE,8IACJ,CACF,EACA,CACE,KAAM,SACN,MAAO,CACL,KAAM,aACN,KAAM,2CACR,CACF,CACF,CACF,CACF,CACF","names":["Type","RxBox","manifest","defineBrickManifest","RxBox","defineProps","Type","colorPresetRef","directionRef","justifyContentRef","alignItemsRef","cssLengthRef","roundingRef","borderRef","shadowRef","loopRef","examples"]}
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/box.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { Type } from \"@sinclair/typebox\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport type { BrickProps } from \"../props/types\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { directionRef } from \"../props/direction\";\nimport { RxBox } from \"react-icons/rx\";\nimport { alignItemsRef, justifyContentRef } from \"../props/align\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\n\n// Generic container can hold any type of array data source\nexport const manifest = defineBrickManifest({\n type: \"box\",\n category: \"container\",\n name: \"Box\",\n description: \"A container for stacking bricks horizontally or vertically.\",\n aiInstructions:\n \"A box is a container for other bricks. A box cannot contain other boxes as children. A box should contain at least 2 bricks to be useful, otherwise use a simple brick instead.\",\n isContainer: true,\n defaultWidth: {\n desktop: \"auto\",\n mobile: \"100%\",\n },\n defaultHeight: {\n desktop: \"auto\",\n },\n icon: RxBox,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n direction: directionRef({\n default: \"flex-col\",\n title: \"Direction\",\n description: \"Direction of the box layout\",\n }),\n justifyContent: Type.Optional(\n justifyContentRef({\n default: \"justify-center\",\n }),\n ),\n alignItems: Type.Optional(\n alignItemsRef({\n default: \"items-stretch\",\n }),\n ),\n gap: Type.Optional(\n cssLengthRef({\n title: \"Gap\",\n default: \"1rem\",\n description: \"Gap between children bricks.\",\n \"ai:instructions\":\n \"Can be a tailwind gap class like 'gap-1' or 'gap-2', or a custom value like '10px'\",\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:gap\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"1rem\",\n description: \"Padding inside the box.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n wrap: Type.Optional(\n Type.Boolean({\n title: \"Wrap\",\n description: \"Wrap bricks if they overflow the section.\",\n default: false,\n \"ui:styleId\": \"styles:wrap\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n shadow: Type.Optional(shadowRef()),\n loop: Type.Optional(loopRef()),\n $children: Type.Array(Type.Any(), {\n \"ui:field\": \"hidden\",\n description: \"List of nested bricks\",\n default: [],\n examples: [\n [\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n ],\n ],\n }),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"A simple box with 2 text bricks aligned vertically\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n $children: [\n {\n type: \"text\",\n props: {\n $children: [\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n ],\n },\n },\n ],\n },\n },\n {\n description: \"A horizontal box with wrapping enabled - images will wrap to new rows if they overflow\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"1rem\",\n wrap: true,\n $children: [\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n ],\n },\n },\n {\n description: \"A vertical box with 2 text bricks and 1 image\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n $children: [\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/150\",\n alt: \"Placeholder Image\",\n },\n },\n {\n type: \"text\",\n props: {\n content: \"Hello World\",\n },\n },\n ],\n },\n },\n {\n description: \"Employee directory using allEmployees query with vertical layout\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1.5rem\",\n padding: \"2rem\",\n colorPreset: {\n color: \"neutral-100\",\n },\n rounding: \"rounded-lg\",\n loop: {\n over: \"allEmployees\",\n },\n $children: [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{allEmployees.name}}</h3><p><strong>{{allEmployees.position}}</strong></p><p>{{allEmployees.department}} • {{allEmployees.email}}</p>\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"{{allEmployees.photo}}\",\n alt: \"Photo of {{allEmployees.name}}\",\n },\n },\n ],\n },\n },\n {\n description: \"Blog posts grid using blogPosts query with horizontal cards\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"2rem\",\n padding: \"1rem\",\n justifyContent: \"justify-start\",\n alignItems: \"items-stretch\",\n loop: {\n over: \"blogPosts\",\n },\n $children: [\n {\n type: \"image\",\n props: {\n src: \"{{blogPosts.featuredImage}}\",\n alt: \"{{blogPosts.title}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h4>{{blogPosts.title}}</h4><p>{{blogPosts.excerpt}}</p><p><em>By {{blogPosts.author}} • {{blogPosts.publishDate}}</em></p>\",\n },\n },\n ],\n },\n },\n {\n description: \"Featured products showcase using featuredProducts query\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n padding: \"1.5rem\",\n colorPreset: {\n color: \"primary-50\",\n },\n border: {\n width: \"border\",\n color: \"border-primary-200\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n loop: {\n over: \"featuredProducts\",\n },\n $children: [\n {\n type: \"image\",\n props: {\n src: \"{{featuredProducts.image}}\",\n alt: \"{{featuredProducts.name}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{featuredProducts.name}}</h3><p>{{featuredProducts.description}}</p><p><strong>${{featuredProducts.price}}</strong></p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Add to Cart\",\n link: \"/cart/add/{{featuredProducts.id}}\",\n },\n },\n ],\n },\n },\n {\n description:\n \"Team members horizontal layout with wrapping - members will wrap to multiple rows on smaller screens\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"2rem\",\n padding: \"2rem\",\n wrap: true,\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n colorPreset: {\n color: \"secondary-100\",\n },\n loop: {\n over: \"teamMembers\",\n },\n $children: [\n {\n type: \"image\",\n props: {\n src: \"{{teamMembers.avatar}}\",\n alt: \"{{teamMembers.fullName}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content: \"<h4>{{teamMembers.fullName}}</h4><p>{{teamMembers.role}}</p><p>{{teamMembers.bio}}</p>\",\n },\n },\n ],\n },\n },\n {\n description: \"Event listings using upcomingEvents query with accent styling\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1.25rem\",\n padding: \"2.5rem\",\n colorPreset: {\n color: \"accent-100\",\n },\n border: {\n width: \"border-2\",\n color: \"border-accent-300\",\n },\n rounding: \"rounded-lg\",\n loop: {\n over: \"upcomingEvents\",\n },\n $children: [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{upcomingEvents.title}}</h3><p><strong>{{upcomingEvents.date}} at {{upcomingEvents.time}}</strong></p><p>{{upcomingEvents.venue}} • {{upcomingEvents.city}}</p><p>{{upcomingEvents.description}}</p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Register Now\",\n link: \"/events/{{upcomingEvents.slug}}/register\",\n },\n },\n ],\n },\n },\n {\n description: \"Testimonials carousel using customerTestimonials query\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n padding: \"3rem\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n colorPreset: {\n color: \"neutral-50\",\n },\n shadow: \"shadow-lg\",\n rounding: \"rounded-2xl\",\n loop: {\n over: \"customerTestimonials\",\n },\n $children: [\n {\n type: \"text\",\n props: {\n content:\n '<blockquote>\"{{customerTestimonials.quote}}\"</blockquote><p><strong>{{customerTestimonials.customerName}}</strong></p><p>{{customerTestimonials.company}} • {{customerTestimonials.position}}</p>',\n },\n },\n {\n type: \"icon\",\n props: {\n icon: \"mdi:star\",\n size: \"1.5rem\",\n color: \"#fbbf24\",\n },\n },\n ],\n },\n },\n {\n description: \"Portfolio projects using portfolioProjects query with horizontal layout\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"1.5rem\",\n padding: \"1rem\",\n alignItems: \"items-start\",\n justifyContent: \"justify-start\",\n loop: {\n over: \"portfolioProjects\",\n },\n $children: [\n {\n type: \"image\",\n props: {\n src: \"{{portfolioProjects.thumbnail}}\",\n alt: \"{{portfolioProjects.projectName}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h4>{{portfolioProjects.projectName}}</h4><p>{{portfolioProjects.client}}</p><p>{{portfolioProjects.category}} • {{portfolioProjects.year}}</p><p>{{portfolioProjects.shortDescription}}</p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"View Project\",\n link: \"/portfolio/{{portfolioProjects.slug}}\",\n },\n },\n ],\n },\n },\n {\n description: \"News articles using latestNews query with vertical stacking\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"2rem\",\n padding: \"2rem\",\n colorPreset: {\n color: \"primary-100\",\n },\n border: {\n width: \"border\",\n color: \"border-primary-300\",\n },\n loop: {\n over: \"latestNews\",\n },\n $children: [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{latestNews.headline}}</h3><p><strong>{{latestNews.category}}</strong> • {{latestNews.publishedDate}}</p><p>{{latestNews.summary}}</p>\",\n },\n },\n {\n type: \"text\",\n props: {\n content: \"<a href='/news/{{latestNews.slug}}'>Read full article →</a>\",\n },\n },\n ],\n },\n },\n {\n description: \"Service offerings using companyServices query with centered layout\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n padding: \"2rem\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n colorPreset: {\n color: \"secondary-200\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n loop: {\n over: \"companyServices\",\n },\n $children: [\n {\n type: \"icon\",\n props: {\n icon: \"{{companyServices.iconName}}\",\n size: \"2rem\",\n color: \"{{companyServices.iconColor}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h4>{{companyServices.serviceName}}</h4><p>{{companyServices.description}}</p><p><strong>Starting at ${{companyServices.price}}</strong></p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Learn More\",\n link: \"/services/{{companyServices.serviceSlug}}\",\n },\n },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -0,0 +1,18 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+
4
+ // src/shared/utils/merge.ts
5
+ import { mergeWith, isArray } from "lodash-es";
6
+ function mergeIgnoringArrays(target, ...sources) {
7
+ return mergeWith(target, ...sources, customizer);
8
+ }
9
+ function customizer(objValue, srcValue) {
10
+ if (isArray(objValue)) {
11
+ return srcValue;
12
+ }
13
+ }
14
+
15
+ export {
16
+ mergeIgnoringArrays
17
+ };
18
+ //# sourceMappingURL=chunk-3ZDN5BWN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/utils/merge.ts"],"sourcesContent":["import { mergeWith, isArray } from \"lodash-es\";\n\nexport function mergeIgnoringArrays<T>(target: T, ...sources: T[]): T {\n return mergeWith(target, ...sources, customizer);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\nfunction customizer(objValue: any, srcValue: any) {\n if (isArray(objValue)) {\n return srcValue;\n }\n}\n"],"mappings":";;AAAA,OAAS,aAAAA,EAAW,WAAAC,MAAe,YAE5B,SAASC,EAAuBC,KAAcC,EAAiB,CACpE,OAAOJ,EAAUG,EAAQ,GAAGC,EAASC,CAAU,CACjD,CAGA,SAASA,EAAWC,EAAeC,EAAe,CAChD,GAAIN,EAAQK,CAAQ,EAClB,OAAOC,CAEX","names":["mergeWith","isArray","mergeIgnoringArrays","target","sources","customizer","objValue","srcValue"]}
1
+ {"version":3,"sources":["../../src/shared/utils/merge.ts"],"sourcesContent":["import { mergeWith, isArray } from \"lodash-es\";\n\nexport function mergeIgnoringArrays<T>(target: T, ...sources: T[]): T {\n return mergeWith(target, ...sources, customizer);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\nfunction customizer(objValue: any, srcValue: any) {\n if (isArray(objValue)) {\n return srcValue;\n }\n}\n"],"mappings":";;;;AAAA,SAAS,WAAW,eAAe;AAE5B,SAAS,oBAAuB,WAAc,SAAiB;AACpE,SAAO,UAAU,QAAQ,GAAG,SAAS,UAAU;AACjD;AAGA,SAAS,WAAW,UAAe,UAAe;AAChD,MAAI,QAAQ,QAAQ,GAAG;AACrB,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,30 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+ import {
4
+ pageAttributesSchema
5
+ } from "./chunk-O5PLB3YB.js";
6
+ import {
7
+ sectionSchema
8
+ } from "./chunk-EQMU6NIU.js";
9
+
10
+ // src/shared/page.ts
11
+ import { Type } from "@sinclair/typebox";
12
+ var pageSchema = Type.Object({
13
+ id: Type.String({
14
+ description: "The unique ID of the page. Use a human readable url-safe slug",
15
+ examples: ["home", "about-us", "products-list"]
16
+ }),
17
+ label: Type.String({
18
+ description: "The label (name) of the page",
19
+ examples: ["Home", "About us", "Products"]
20
+ }),
21
+ sections: Type.Array(sectionSchema, {
22
+ description: "The sections of the page. See the Section schema"
23
+ }),
24
+ attributes: pageAttributesSchema
25
+ });
26
+
27
+ export {
28
+ pageSchema
29
+ };
30
+ //# sourceMappingURL=chunk-4WI23M7W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/page.ts"],"sourcesContent":["import { pageAttributesSchema } from \"./attributes\";\nimport { sectionSchema } from \"./bricks\";\nimport { Type, type Static } from \"@sinclair/typebox\";\nimport { toLLMSchema } from \"./utils/llm\";\n\nexport const pageSchema = Type.Object({\n id: Type.String({\n description: \"The unique ID of the page. Use a human readable url-safe slug\",\n examples: [\"home\", \"about-us\", \"products-list\"],\n }),\n label: Type.String({\n description: \"The label (name) of the page\",\n examples: [\"Home\", \"About us\", \"Products\"],\n }),\n sections: Type.Array(sectionSchema, {\n description: \"The sections of the page. See the Section schema\",\n }),\n attributes: pageAttributesSchema,\n});\n\nexport type Page = Static<typeof pageSchema>;\nexport type VersionedPage = Page & { version: string };\n\n/**\n * Page context represents the page config PLUS:\n * - the pathParams of the actual request.\n * - the resolved data for the page.\n */\nexport type PageContext = VersionedPage & {\n pathParams?: Record<string, string>;\n data?: Record<string, unknown[]>;\n};\n"],"mappings":";;;;;;;;;;AAEA,SAAS,YAAyB;AAG3B,IAAM,aAAa,KAAK,OAAO;AAAA,EACpC,IAAI,KAAK,OAAO;AAAA,IACd,aAAa;AAAA,IACb,UAAU,CAAC,QAAQ,YAAY,eAAe;AAAA,EAChD,CAAC;AAAA,EACD,OAAO,KAAK,OAAO;AAAA,IACjB,aAAa;AAAA,IACb,UAAU,CAAC,QAAQ,YAAY,UAAU;AAAA,EAC3C,CAAC;AAAA,EACD,UAAU,KAAK,MAAM,eAAe;AAAA,IAClC,aAAa;AAAA,EACf,CAAC;AAAA,EACD,YAAY;AACd,CAAC;","names":[]}
@@ -0,0 +1,21 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+
4
+ // src/shared/datasources/internal/links/schema.ts
5
+ import { Type } from "@sinclair/typebox";
6
+ var linksSchema = Type.Array(
7
+ Type.Object({
8
+ url: Type.String({ format: "uri", title: "URL" }),
9
+ title: Type.String({ title: "Title" }),
10
+ description: Type.Optional(Type.String({ title: "Description", format: "markdown" })),
11
+ icon: Type.Optional(Type.String({ title: "Icon", format: "uri" }))
12
+ }),
13
+ {
14
+ description: "Schema representing a collection of links"
15
+ }
16
+ );
17
+
18
+ export {
19
+ linksSchema
20
+ };
21
+ //# sourceMappingURL=chunk-55C6MTX2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/datasources/internal/links/schema.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const linksSchema = Type.Array(\n Type.Object({\n url: Type.String({ format: \"uri\", title: \"URL\" }),\n title: Type.String({ title: \"Title\" }),\n description: Type.Optional(Type.String({ title: \"Description\", format: \"markdown\" })),\n icon: Type.Optional(Type.String({ title: \"Icon\", format: \"uri\" })),\n }),\n {\n description: \"Schema representing a collection of links\",\n },\n);\n\nexport type LinksSchema = Static<typeof linksSchema>;\n"],"mappings":";;AAAA,OAAS,QAAAA,MAAyB,oBAE3B,IAAMC,EAAcD,EAAK,MAC9BA,EAAK,OAAO,CACV,IAAKA,EAAK,OAAO,CAAE,OAAQ,MAAO,MAAO,KAAM,CAAC,EAChD,MAAOA,EAAK,OAAO,CAAE,MAAO,OAAQ,CAAC,EACrC,YAAaA,EAAK,SAASA,EAAK,OAAO,CAAE,MAAO,cAAe,OAAQ,UAAW,CAAC,CAAC,EACpF,KAAMA,EAAK,SAASA,EAAK,OAAO,CAAE,MAAO,OAAQ,OAAQ,KAAM,CAAC,CAAC,CACnE,CAAC,EACD,CACE,YAAa,2CACf,CACF","names":["Type","linksSchema"]}
1
+ {"version":3,"sources":["../../src/shared/datasources/internal/links/schema.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const linksSchema = Type.Array(\n Type.Object({\n url: Type.String({ format: \"uri\", title: \"URL\" }),\n title: Type.String({ title: \"Title\" }),\n description: Type.Optional(Type.String({ title: \"Description\", format: \"markdown\" })),\n icon: Type.Optional(Type.String({ title: \"Icon\", format: \"uri\" })),\n }),\n {\n description: \"Schema representing a collection of links\",\n },\n);\n\nexport type LinksSchema = Static<typeof linksSchema>;\n"],"mappings":";;;;AAAA,SAAS,YAAyB;AAE3B,IAAM,cAAc,KAAK;AAAA,EAC9B,KAAK,OAAO;AAAA,IACV,KAAK,KAAK,OAAO,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AAAA,IAChD,OAAO,KAAK,OAAO,EAAE,OAAO,QAAQ,CAAC;AAAA,IACrC,aAAa,KAAK,SAAS,KAAK,OAAO,EAAE,OAAO,eAAe,QAAQ,WAAW,CAAC,CAAC;AAAA,IACpF,MAAM,KAAK,SAAS,KAAK,OAAO,EAAE,OAAO,QAAQ,QAAQ,MAAM,CAAC,CAAC;AAAA,EACnE,CAAC;AAAA,EACD;AAAA,IACE,aAAa;AAAA,EACf;AACF;","names":[]}
@@ -0,0 +1,103 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+ import {
4
+ pageSchema
5
+ } from "./chunk-4WI23M7W.js";
6
+ import {
7
+ toLLMSchema
8
+ } from "./chunk-BW6EFRSF.js";
9
+ import {
10
+ StringEnum
11
+ } from "./chunk-JK2FWFJU.js";
12
+
13
+ // src/shared/sitemap.ts
14
+ import { Type } from "@sinclair/typebox";
15
+ var sitemapPageEntry = Type.Pick(pageSchema, ["id", "label", "path", "attributes"]);
16
+ var sectionsPlanSchema = Type.Array(
17
+ Type.Object(
18
+ {
19
+ id: Type.String({
20
+ title: "Section ID",
21
+ examples: ["header-section", "hero-section", "features-section"],
22
+ format: "slug"
23
+ }),
24
+ name: Type.String({ title: "Section name", examples: ["Header", "Hero", "Features"] }),
25
+ description: Type.String({
26
+ title: "A long description of the section",
27
+ description: `You must elaborate a clear and detailled plan that describes:
28
+ - The section purpose in the page, in detail.
29
+ - The section structure, look & feel, and structural/design organization, in detail
30
+ - the types of bricks (e.g. "container", "text", "video", "carousel", etc) that will be used and their purpose, in detail
31
+
32
+ IMPORTANT: be very descriptive and precise in your plan. The more details you provide, the better the generated page will be.`,
33
+ examples: [
34
+ "This section contains a `hero` and a call-to-action `button`. All of theme aligned horizontally. The section should market a coffee shop.",
35
+ "This section should contain a `hero` text and an `image`."
36
+ ]
37
+ })
38
+ },
39
+ { additionalProperties: false }
40
+ ),
41
+ {
42
+ title: "Sections plan",
43
+ description: "A plan for the sections of the page. Used to generate the page content.",
44
+ examples: [
45
+ [
46
+ {
47
+ id: "header-section",
48
+ name: "Header",
49
+ description: "This section only contains a header brick"
50
+ },
51
+ {
52
+ id: "hero-section",
53
+ name: "Hero",
54
+ description: "This is the hero section of the page. It should display a marketing message using a hero brick, as well as a button (CTA). The section should center bricks horizontally."
55
+ }
56
+ ]
57
+ ]
58
+ }
59
+ );
60
+ var sitemapEntry = Type.Composite(
61
+ [
62
+ sitemapPageEntry,
63
+ Type.Object({
64
+ status: Type.Optional(
65
+ StringEnum(["draft", "published"], {
66
+ title: "Page status",
67
+ enumNames: ["Draft", "Published"],
68
+ default: "draft",
69
+ "ai:hidden": true,
70
+ description: "The status of the page. Can be draft or published. [AI instructions: Dont generate this.]",
71
+ "ai:instructions": "Upsie: Never generate this optional field."
72
+ })
73
+ )
74
+ })
75
+ ],
76
+ {
77
+ description: "Pages map. The complete list of site pages & their metadata",
78
+ additionalProperties: false
79
+ }
80
+ );
81
+ var sitemapSchema = Type.Array(sitemapEntry);
82
+ var sitemapSchemaLLM = toLLMSchema(
83
+ Type.Array(
84
+ Type.Composite([
85
+ sitemapEntry,
86
+ Type.Object({
87
+ // Sections plan helps agents to the structure and content of the page
88
+ sectionsPlan: sectionsPlanSchema
89
+ })
90
+ ])
91
+ )
92
+ );
93
+ var sitemapSchemaNoPlansLLM = toLLMSchema(sitemapSchema);
94
+
95
+ export {
96
+ sitemapPageEntry,
97
+ sectionsPlanSchema,
98
+ sitemapEntry,
99
+ sitemapSchema,
100
+ sitemapSchemaLLM,
101
+ sitemapSchemaNoPlansLLM
102
+ };
103
+ //# sourceMappingURL=chunk-6E42XWFH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/sitemap.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { StringEnum } from \"./utils/string-enum\";\nimport { pageSchema } from \"./page\";\nimport { toLLMSchema } from \"./utils/llm\";\n\nexport const sitemapPageEntry = Type.Pick(pageSchema, [\"id\", \"label\", \"path\", \"attributes\"]);\nexport type SitemapPageEntry = Static<typeof sitemapPageEntry>;\n\nexport const sectionsPlanSchema = Type.Array(\n Type.Object(\n {\n id: Type.String({\n title: \"Section ID\",\n examples: [\"header-section\", \"hero-section\", \"features-section\"],\n format: \"slug\",\n }),\n name: Type.String({ title: \"Section name\", examples: [\"Header\", \"Hero\", \"Features\"] }),\n description: Type.String({\n title: \"A long description of the section\",\n description: `You must elaborate a clear and detailled plan that describes:\n- The section purpose in the page, in detail.\n- The section structure, look & feel, and structural/design organization, in detail\n- the types of bricks (e.g. \"container\", \"text\", \"video\", \"carousel\", etc) that will be used and their purpose, in detail\n\nIMPORTANT: be very descriptive and precise in your plan. The more details you provide, the better the generated page will be.`,\n\n examples: [\n \"This section contains a `hero` and a call-to-action `button`. All of theme aligned horizontally. The section should market a coffee shop.\",\n \"This section should contain a `hero` text and an `image`.\",\n ],\n }),\n },\n { additionalProperties: false },\n ),\n {\n title: \"Sections plan\",\n description: \"A plan for the sections of the page. Used to generate the page content.\",\n examples: [\n [\n {\n id: \"header-section\",\n name: \"Header\",\n description: \"This section only contains a header brick\",\n },\n {\n id: \"hero-section\",\n name: \"Hero\",\n description:\n \"This is the hero section of the page. It should display a marketing message using a hero brick, as well as a button (CTA). The section should center bricks horizontally.\",\n },\n ],\n ],\n },\n);\n\nexport const sitemapEntry = Type.Composite(\n [\n sitemapPageEntry,\n Type.Object({\n status: Type.Optional(\n StringEnum([\"draft\", \"published\"], {\n title: \"Page status\",\n enumNames: [\"Draft\", \"Published\"],\n default: \"draft\",\n \"ai:hidden\": true,\n description:\n \"The status of the page. Can be draft or published. [AI instructions: Dont generate this.]\",\n \"ai:instructions\": \"Upsie: Never generate this optional field.\",\n }),\n ),\n }),\n ],\n {\n description: \"Pages map. The complete list of site pages & their metadata\",\n additionalProperties: false,\n },\n);\n\nexport const sitemapSchema = Type.Array(sitemapEntry);\nexport type Sitemap = Static<typeof sitemapSchema>;\n\nexport function getSitemapSchemaForLLM() {\n return toLLMSchema(\n Type.Array(\n Type.Composite([\n sitemapEntry,\n Type.Object({\n // Sections plan helps agents to the structure and content of the page\n sectionsPlan: sectionsPlanSchema,\n }),\n ]),\n ),\n );\n}\n\nexport function getSitemapSchemaNoPlansForLLM() {\n return toLLMSchema(sitemapSchema);\n}\n"],"mappings":";;mHAAA,OAAS,QAAAA,MAAyB,oBAK3B,IAAMC,EAAmBC,EAAK,KAAKC,EAAY,CAAC,KAAM,QAAS,OAAQ,YAAY,CAAC,EAG9EC,EAAqBF,EAAK,MACrCA,EAAK,OACH,CACE,GAAIA,EAAK,OAAO,CACd,MAAO,aACP,SAAU,CAAC,iBAAkB,eAAgB,kBAAkB,EAC/D,OAAQ,MACV,CAAC,EACD,KAAMA,EAAK,OAAO,CAAE,MAAO,eAAgB,SAAU,CAAC,SAAU,OAAQ,UAAU,CAAE,CAAC,EACrF,YAAaA,EAAK,OAAO,CACvB,MAAO,oCACP,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA,+HAOb,SAAU,CACR,4IACA,2DACF,CACF,CAAC,CACH,EACA,CAAE,qBAAsB,EAAM,CAChC,EACA,CACE,MAAO,gBACP,YAAa,0EACb,SAAU,CACR,CACE,CACE,GAAI,iBACJ,KAAM,SACN,YAAa,2CACf,EACA,CACE,GAAI,eACJ,KAAM,OACN,YACE,2KACJ,CACF,CACF,CACF,CACF,EAEaG,EAAeH,EAAK,UAC/B,CACED,EACAC,EAAK,OAAO,CACV,OAAQA,EAAK,SACXI,EAAW,CAAC,QAAS,WAAW,EAAG,CACjC,MAAO,cACP,UAAW,CAAC,QAAS,WAAW,EAChC,QAAS,QACT,YAAa,GACb,YACE,4FACF,kBAAmB,4CACrB,CAAC,CACH,CACF,CAAC,CACH,EACA,CACE,YAAa,8DACb,qBAAsB,EACxB,CACF,EAEaC,EAAgBL,EAAK,MAAMG,CAAY,EAG7C,SAASG,GAAyB,CACvC,OAAOC,EACLP,EAAK,MACHA,EAAK,UAAU,CACbG,EACAH,EAAK,OAAO,CAEV,aAAcE,CAChB,CAAC,CACH,CAAC,CACH,CACF,CACF,CAEO,SAASM,GAAgC,CAC9C,OAAOD,EAAYF,CAAa,CAClC","names":["Type","sitemapPageEntry","Type","pageSchema","sectionsPlanSchema","sitemapEntry","StringEnum","sitemapSchema","getSitemapSchemaForLLM","toLLMSchema","getSitemapSchemaNoPlansForLLM"]}
1
+ {"version":3,"sources":["../../src/shared/sitemap.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { StringEnum } from \"./utils/string-enum\";\nimport { pageSchema } from \"./page\";\nimport { toLLMSchema } from \"./utils/llm\";\n\nexport const sitemapPageEntry = Type.Pick(pageSchema, [\"id\", \"label\", \"path\", \"attributes\"]);\nexport type SitemapPageEntry = Static<typeof sitemapPageEntry>;\n\nexport const sectionsPlanSchema = Type.Array(\n Type.Object(\n {\n id: Type.String({\n title: \"Section ID\",\n examples: [\"header-section\", \"hero-section\", \"features-section\"],\n format: \"slug\",\n }),\n name: Type.String({ title: \"Section name\", examples: [\"Header\", \"Hero\", \"Features\"] }),\n description: Type.String({\n title: \"A long description of the section\",\n description: `You must elaborate a clear and detailled plan that describes:\n- The section purpose in the page, in detail.\n- The section structure, look & feel, and structural/design organization, in detail\n- the types of bricks (e.g. \"container\", \"text\", \"video\", \"carousel\", etc) that will be used and their purpose, in detail\n\nIMPORTANT: be very descriptive and precise in your plan. The more details you provide, the better the generated page will be.`,\n\n examples: [\n \"This section contains a `hero` and a call-to-action `button`. All of theme aligned horizontally. The section should market a coffee shop.\",\n \"This section should contain a `hero` text and an `image`.\",\n ],\n }),\n },\n { additionalProperties: false },\n ),\n {\n title: \"Sections plan\",\n description: \"A plan for the sections of the page. Used to generate the page content.\",\n examples: [\n [\n {\n id: \"header-section\",\n name: \"Header\",\n description: \"This section only contains a header brick\",\n },\n {\n id: \"hero-section\",\n name: \"Hero\",\n description:\n \"This is the hero section of the page. It should display a marketing message using a hero brick, as well as a button (CTA). The section should center bricks horizontally.\",\n },\n ],\n ],\n },\n);\n\nexport const sitemapEntry = Type.Composite(\n [\n sitemapPageEntry,\n Type.Object({\n status: Type.Optional(\n StringEnum([\"draft\", \"published\"], {\n title: \"Page status\",\n enumNames: [\"Draft\", \"Published\"],\n default: \"draft\",\n \"ai:hidden\": true,\n description:\n \"The status of the page. Can be draft or published. [AI instructions: Dont generate this.]\",\n \"ai:instructions\": \"Upsie: Never generate this optional field.\",\n }),\n ),\n }),\n ],\n {\n description: \"Pages map. The complete list of site pages & their metadata\",\n additionalProperties: false,\n },\n);\n\nexport const sitemapSchema = Type.Array(sitemapEntry);\nexport type Sitemap = Static<typeof sitemapSchema>;\n\nexport const sitemapSchemaLLM = toLLMSchema(\n Type.Array(\n Type.Composite([\n sitemapEntry,\n Type.Object({\n // Sections plan helps agents to the structure and content of the page\n sectionsPlan: sectionsPlanSchema,\n }),\n ]),\n ),\n);\n\nexport const sitemapSchemaNoPlansLLM = toLLMSchema(sitemapSchema);\n"],"mappings":";;;;;;;;;;;;;AAAA,SAAS,YAAyB;AAK3B,IAAM,mBAAmB,KAAK,KAAK,YAAY,CAAC,MAAM,SAAS,QAAQ,YAAY,CAAC;AAGpF,IAAM,qBAAqB,KAAK;AAAA,EACrC,KAAK;AAAA,IACH;AAAA,MACE,IAAI,KAAK,OAAO;AAAA,QACd,OAAO;AAAA,QACP,UAAU,CAAC,kBAAkB,gBAAgB,kBAAkB;AAAA,QAC/D,QAAQ;AAAA,MACV,CAAC;AAAA,MACD,MAAM,KAAK,OAAO,EAAE,OAAO,gBAAgB,UAAU,CAAC,UAAU,QAAQ,UAAU,EAAE,CAAC;AAAA,MACrF,aAAa,KAAK,OAAO;AAAA,QACvB,OAAO;AAAA,QACP,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,EAAE,sBAAsB,MAAM;AAAA,EAChC;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,UAAU;AAAA,MACR;AAAA,QACE;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aACE;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,eAAe,KAAK;AAAA,EAC/B;AAAA,IACE;AAAA,IACA,KAAK,OAAO;AAAA,MACV,QAAQ,KAAK;AAAA,QACX,WAAW,CAAC,SAAS,WAAW,GAAG;AAAA,UACjC,OAAO;AAAA,UACP,WAAW,CAAC,SAAS,WAAW;AAAA,UAChC,SAAS;AAAA,UACT,aAAa;AAAA,UACb,aACE;AAAA,UACF,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,sBAAsB;AAAA,EACxB;AACF;AAEO,IAAM,gBAAgB,KAAK,MAAM,YAAY;AAG7C,IAAM,mBAAmB;AAAA,EAC9B,KAAK;AAAA,IACH,KAAK,UAAU;AAAA,MACb;AAAA,MACA,KAAK,OAAO;AAAA;AAAA,QAEV,cAAc;AAAA,MAChB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAEO,IAAM,0BAA0B,YAAY,aAAa;","names":[]}
@@ -0,0 +1,15 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+
4
+ // src/shared/prompt.ts
5
+ import { Type } from "@sinclair/typebox";
6
+ var sitePrompt = Type.String({
7
+ minLength: 30,
8
+ maxLength: 500,
9
+ description: "User prompt for the site, describing the purpose and main features of the site."
10
+ });
11
+
12
+ export {
13
+ sitePrompt
14
+ };
15
+ //# sourceMappingURL=chunk-6TVVKUWM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/prompt.ts"],"sourcesContent":["import { type Static, Type } from \"@sinclair/typebox\";\n\nexport const sitePrompt = Type.String({\n minLength: 30,\n maxLength: 500,\n description: \"User prompt for the site, describing the purpose and main features of the site.\",\n});\n\nexport type SitePrompt = Static<typeof sitePrompt>;\n"],"mappings":";;AAAA,OAAsB,QAAAA,MAAY,oBAE3B,IAAMC,EAAaD,EAAK,OAAO,CACpC,UAAW,GACX,UAAW,IACX,YAAa,iFACf,CAAC","names":["Type","sitePrompt"]}
1
+ {"version":3,"sources":["../../src/shared/prompt.ts"],"sourcesContent":["import { type Static, Type } from \"@sinclair/typebox\";\n\nexport const sitePrompt = Type.String({\n minLength: 30,\n maxLength: 500,\n description: \"User prompt for the site, describing the purpose and main features of the site.\",\n});\n\nexport type SitePrompt = Static<typeof sitePrompt>;\n"],"mappings":";;;;AAAA,SAAsB,YAAY;AAE3B,IAAM,aAAa,KAAK,OAAO;AAAA,EACpC,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AACf,CAAC;","names":[]}
@@ -0,0 +1,17 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+
4
+ // src/shared/bricks/props/position.ts
5
+ import { Type } from "@sinclair/typebox";
6
+ function fixedPositioned(defaultValue = false, title = "Fixed position") {
7
+ return Type.Boolean({
8
+ title,
9
+ default: defaultValue,
10
+ "ui:styleId": "styles:fixedPositioned"
11
+ });
12
+ }
13
+
14
+ export {
15
+ fixedPositioned
16
+ };
17
+ //# sourceMappingURL=chunk-6WIMWLCJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/position.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport function fixedPositioned(defaultValue = false, title = \"Fixed position\") {\n return Type.Boolean({\n title,\n default: defaultValue,\n \"ui:styleId\": \"styles:fixedPositioned\",\n });\n}\n\nexport type FixedPositionedSettings = Static<ReturnType<typeof fixedPositioned>>;\n"],"mappings":";;AAAA,OAAS,QAAAA,MAAyB,oBAE3B,SAASC,EAAgBC,EAAe,GAAOC,EAAQ,iBAAkB,CAC9E,OAAOH,EAAK,QAAQ,CAClB,MAAAG,EACA,QAASD,EACT,aAAc,wBAChB,CAAC,CACH","names":["Type","fixedPositioned","defaultValue","title"]}
1
+ {"version":3,"sources":["../../src/shared/bricks/props/position.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport function fixedPositioned(defaultValue = false, title = \"Fixed position\") {\n return Type.Boolean({\n title,\n default: defaultValue,\n \"ui:styleId\": \"styles:fixedPositioned\",\n });\n}\n\nexport type FixedPositionedSettings = Static<ReturnType<typeof fixedPositioned>>;\n"],"mappings":";;;;AAAA,SAAS,YAAyB;AAE3B,SAAS,gBAAgB,eAAe,OAAO,QAAQ,kBAAkB;AAC9E,SAAO,KAAK,QAAQ;AAAA,IAClB;AAAA,IACA,SAAS;AAAA,IACT,cAAc;AAAA,EAChB,CAAC;AACH;","names":[]}
@@ -0,0 +1,21 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+
4
+ // src/shared/datarecords/external/notion/types.ts
5
+ import { Type } from "@sinclair/typebox";
6
+ var notionOptions = Type.Object({
7
+ url: Type.Optional(Type.String()),
8
+ id: Type.String({
9
+ pattern: "^[A-Za-z0-9\\-]+$",
10
+ description: "Notion Database ID"
11
+ }),
12
+ name: Type.String({
13
+ description: "Notion Database Name"
14
+ }),
15
+ properties: Type.Any()
16
+ });
17
+
18
+ export {
19
+ notionOptions
20
+ };
21
+ //# sourceMappingURL=chunk-7LAWWRU7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/datarecords/external/notion/types.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const notionOptions = Type.Object({\n url: Type.Optional(Type.String()),\n id: Type.String({\n pattern: \"^[A-Za-z0-9\\\\-]+$\",\n description: \"Notion Database ID\",\n }),\n name: Type.String({\n description: \"Notion Database Name\",\n }),\n properties: Type.Any(),\n});\n\nexport type NotionOptions = Static<typeof notionOptions>;\n\nexport type NotionPage = {\n id: string;\n name: string;\n};\n\nexport type NotionPages = NotionPage[];\nexport type listPageStatus = \"success\" | \"error\" | \"max_call_reached\" | \"max_pages_reached\";\n\nexport type ListPagesResponse = {\n status: listPageStatus;\n pages: NotionPages;\n};\n"],"mappings":";;AAAA,OAAS,QAAAA,MAAyB,oBAE3B,IAAMC,EAAgBD,EAAK,OAAO,CACvC,IAAKA,EAAK,SAASA,EAAK,OAAO,CAAC,EAChC,GAAIA,EAAK,OAAO,CACd,QAAS,oBACT,YAAa,oBACf,CAAC,EACD,KAAMA,EAAK,OAAO,CAChB,YAAa,sBACf,CAAC,EACD,WAAYA,EAAK,IAAI,CACvB,CAAC","names":["Type","notionOptions"]}
1
+ {"version":3,"sources":["../../src/shared/datarecords/external/notion/types.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const notionOptions = Type.Object({\n url: Type.Optional(Type.String()),\n id: Type.String({\n pattern: \"^[A-Za-z0-9\\\\-]+$\",\n description: \"Notion Database ID\",\n }),\n name: Type.String({\n description: \"Notion Database Name\",\n }),\n properties: Type.Any(),\n});\n\nexport type NotionOptions = Static<typeof notionOptions>;\n\nexport type NotionPage = {\n id: string;\n name: string;\n};\n\nexport type NotionPages = NotionPage[];\nexport type listPageStatus = \"success\" | \"error\" | \"max_call_reached\" | \"max_pages_reached\";\n\nexport type ListPagesResponse = {\n status: listPageStatus;\n pages: NotionPages;\n};\n"],"mappings":";;;;AAAA,SAAS,YAAyB;AAE3B,IAAM,gBAAgB,KAAK,OAAO;AAAA,EACvC,KAAK,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,EAChC,IAAI,KAAK,OAAO;AAAA,IACd,SAAS;AAAA,IACT,aAAa;AAAA,EACf,CAAC;AAAA,EACD,MAAM,KAAK,OAAO;AAAA,IAChB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,YAAY,KAAK,IAAI;AACvB,CAAC;","names":[]}
@@ -0,0 +1,13 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+
4
+ // src/shared/utils/typed-ref.ts
5
+ import { Type } from "@sinclair/typebox";
6
+ function typedRef(id, options = {}) {
7
+ return Type.Ref(id, { ...options });
8
+ }
9
+
10
+ export {
11
+ typedRef
12
+ };
13
+ //# sourceMappingURL=chunk-A2QPY54H.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/utils/typed-ref.ts"],"sourcesContent":["import { type SchemaOptions, TSchema, Type, TypeRegistry } from \"@sinclair/typebox\";\nimport type { alignItems, alignSelf, justifyContent } from \"../bricks/props/align\";\nimport type { background, backgroundColor } from \"../bricks/props/background\";\nimport type { border, rounding } from \"../bricks/props/border\";\nimport type { borderColor, color } from \"../bricks/props/color\";\nimport type { hidden } from \"../bricks/props/common\";\nimport type { cssLength } from \"../bricks/props/css-length\";\nimport type { shadow, textShadow } from \"../bricks/props/effects\";\nimport type { fontSize, fontSizeXL, textContent } from \"../bricks/props/text\";\nimport type { icon, urlOrPageId } from \"../bricks/props/string\";\nimport type { colorPreset } from \"../bricks/props/color-preset\";\nimport type { image } from \"../bricks/props/image\";\nimport type { direction } from \"../bricks/props/direction\";\nimport type { loop, queryUse } from \"../bricks/props/dynamic\";\nimport type { tags } from \"../bricks/props/tags\";\n\nexport interface SchemaTypeMap {\n \"styles:background\": ReturnType<typeof background>;\n \"styles:backgroundColor\": ReturnType<typeof backgroundColor>;\n \"styles:justifyContent\": ReturnType<typeof justifyContent>;\n \"styles:alignItems\": ReturnType<typeof alignItems>;\n \"styles:alignSelf\": ReturnType<typeof alignSelf>;\n \"styles:fontSize\": ReturnType<typeof fontSize>;\n \"styles:fontSizeXL\": ReturnType<typeof fontSizeXL>;\n \"styles:hidden\": ReturnType<typeof hidden>;\n \"styles:border\": ReturnType<typeof border>;\n \"styles:color\": ReturnType<typeof color>;\n \"styles:borderColor\": ReturnType<typeof borderColor>;\n \"styles:direction\": ReturnType<typeof direction>;\n \"styles:shadow\": ReturnType<typeof shadow>;\n \"styles:textShadow\": ReturnType<typeof textShadow>;\n \"styles:cssLength\": ReturnType<typeof cssLength>;\n \"styles:rounding\": ReturnType<typeof rounding>;\n \"presets:color\": ReturnType<typeof colorPreset>;\n \"assets:image\": ReturnType<typeof image>;\n \"content:text\": ReturnType<typeof textContent>;\n \"content:urlOrPageId\": ReturnType<typeof urlOrPageId>;\n \"content:loop\": ReturnType<typeof loop>;\n \"content:queryUse\": ReturnType<typeof queryUse>;\n \"assets:icon\": ReturnType<typeof icon>;\n \"content:tags\": ReturnType<typeof tags>;\n\n // Add other schema mappings here\n}\n\n// Create a typed ref helper\nexport function typedRef<K extends keyof SchemaTypeMap>(\n id: K,\n options: SchemaOptions = {},\n): SchemaTypeMap[K] {\n // Force the type to be a TypeBox type\n return Type.Ref(id, { ...options }) as unknown as SchemaTypeMap[K];\n}\n"],"mappings":";;AAAA,OAAsC,QAAAA,MAA0B,oBA8CzD,SAASC,EACdC,EACAC,EAAyB,CAAC,EACR,CAElB,OAAOH,EAAK,IAAIE,EAAI,CAAE,GAAGC,CAAQ,CAAC,CACpC","names":["Type","typedRef","id","options"]}
1
+ {"version":3,"sources":["../../src/shared/utils/typed-ref.ts"],"sourcesContent":["import { type SchemaOptions, TSchema, Type, TypeRegistry } from \"@sinclair/typebox\";\nimport type { alignItems, alignSelf, justifyContent } from \"../bricks/props/align\";\nimport type { background, backgroundColor } from \"../bricks/props/background\";\nimport type { border, rounding } from \"../bricks/props/border\";\nimport type { borderColor, color } from \"../bricks/props/color\";\nimport type { hidden } from \"../bricks/props/common\";\nimport type { cssLength } from \"../bricks/props/css-length\";\nimport type { shadow, textShadow } from \"../bricks/props/effects\";\nimport type { fontSize, fontSizeXL, textContent } from \"../bricks/props/text\";\nimport type { icon, urlOrPageId } from \"../bricks/props/string\";\nimport type { colorPreset } from \"../bricks/props/color-preset\";\nimport type { image } from \"../bricks/props/image\";\nimport type { direction } from \"../bricks/props/direction\";\nimport type { loop, queryUse } from \"../bricks/props/dynamic\";\nimport type { tags } from \"../bricks/props/tags\";\n\nexport interface SchemaTypeMap {\n \"styles:background\": ReturnType<typeof background>;\n \"styles:backgroundColor\": ReturnType<typeof backgroundColor>;\n \"styles:justifyContent\": ReturnType<typeof justifyContent>;\n \"styles:alignItems\": ReturnType<typeof alignItems>;\n \"styles:alignSelf\": ReturnType<typeof alignSelf>;\n \"styles:fontSize\": ReturnType<typeof fontSize>;\n \"styles:fontSizeXL\": ReturnType<typeof fontSizeXL>;\n \"styles:hidden\": ReturnType<typeof hidden>;\n \"styles:border\": ReturnType<typeof border>;\n \"styles:color\": ReturnType<typeof color>;\n \"styles:borderColor\": ReturnType<typeof borderColor>;\n \"styles:direction\": ReturnType<typeof direction>;\n \"styles:shadow\": ReturnType<typeof shadow>;\n \"styles:textShadow\": ReturnType<typeof textShadow>;\n \"styles:cssLength\": ReturnType<typeof cssLength>;\n \"styles:rounding\": ReturnType<typeof rounding>;\n \"presets:color\": ReturnType<typeof colorPreset>;\n \"assets:image\": ReturnType<typeof image>;\n \"content:text\": ReturnType<typeof textContent>;\n \"content:urlOrPageId\": ReturnType<typeof urlOrPageId>;\n \"content:loop\": ReturnType<typeof loop>;\n \"content:queryUse\": ReturnType<typeof queryUse>;\n \"assets:icon\": ReturnType<typeof icon>;\n \"content:tags\": ReturnType<typeof tags>;\n\n // Add other schema mappings here\n}\n\n// Create a typed ref helper\nexport function typedRef<K extends keyof SchemaTypeMap>(\n id: K,\n options: SchemaOptions = {},\n): SchemaTypeMap[K] {\n // Force the type to be a TypeBox type\n return Type.Ref(id, { ...options }) as unknown as SchemaTypeMap[K];\n}\n"],"mappings":";;;;AAAA,SAAsC,YAA0B;AA8CzD,SAAS,SACd,IACA,UAAyB,CAAC,GACR;AAElB,SAAO,KAAK,IAAI,IAAI,EAAE,GAAG,QAAQ,CAAC;AACpC;","names":[]}
@@ -0,0 +1,67 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+ import {
4
+ commonProps
5
+ } from "./chunk-2RK3CPYJ.js";
6
+
7
+ // src/shared/bricks/props/helpers.ts
8
+ import { Type } from "@sinclair/typebox";
9
+ function isTObject(schema) {
10
+ return schema.type === "object";
11
+ }
12
+ function group({
13
+ title,
14
+ children,
15
+ category = "settings",
16
+ metadata,
17
+ options
18
+ }) {
19
+ if (isTObject(children)) {
20
+ const generated = Type.Composite([Type.Object({}), children], {
21
+ title,
22
+ metadata: {
23
+ category,
24
+ group: true,
25
+ ...metadata
26
+ },
27
+ ...options
28
+ });
29
+ return generated;
30
+ }
31
+ return Type.Object(children, {
32
+ title,
33
+ ...options,
34
+ metadata: {
35
+ category,
36
+ group: true,
37
+ ...metadata
38
+ }
39
+ });
40
+ }
41
+ function getGroupInfo(schema) {
42
+ const meta = schema.metadata;
43
+ return {
44
+ title: schema.title ?? schema.metadata?.title,
45
+ meta,
46
+ tab: meta.groupTab || "common"
47
+ };
48
+ }
49
+ function defineProps(props, options) {
50
+ const allProps = { ...commonProps, ...props };
51
+ const { alignSelf, grow, ...rest } = allProps;
52
+ const finalProps = {
53
+ ...rest,
54
+ ...options?.noAlignSelf ? {} : { alignSelf },
55
+ ...options?.noGrow ? {} : { grow }
56
+ };
57
+ return Type.Object(finalProps, { ...options, additionalProperties: false });
58
+ }
59
+ var array = Type.Array;
60
+
61
+ export {
62
+ group,
63
+ getGroupInfo,
64
+ defineProps,
65
+ array
66
+ };
67
+ //# sourceMappingURL=chunk-BHC2A43S.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/helpers.ts"],"sourcesContent":["/**\n * Helper functions for defining and working with props and groups of props\n */\nimport { type TProperties, Type, type TSchema, type TObject, type ObjectOptions } from \"@sinclair/typebox\";\nimport { commonProps } from \"./common\";\nimport type { PartialBy, PropGroup, GroupMetadata } from \"./types\";\n\nfunction isTObject(schema: TSchema | TProperties): schema is TObject {\n return schema.type === \"object\";\n}\n\nexport function group<T extends TProperties>({\n title,\n children,\n category = \"settings\",\n metadata,\n options,\n}: PartialBy<PropGroup<T>, \"category\">) {\n // check if children is already a TObject\n if (isTObject(children)) {\n const generated = Type.Composite([Type.Object({}), children], {\n title,\n metadata: {\n category,\n group: true,\n ...metadata,\n },\n ...options,\n });\n return generated;\n }\n\n // Create the TypeBox schema with title as a standard property and group-specific info in metadata\n return Type.Object(children, {\n title,\n ...options,\n metadata: {\n category,\n group: true,\n ...metadata,\n },\n });\n}\n\n// Functions to extract metadata from schemas\nexport function getGroupInfo(schema: TSchema) {\n const meta = schema.metadata as GroupMetadata;\n return {\n title: (schema.title ?? schema.metadata?.title) as string | undefined,\n meta,\n tab: meta.groupTab || \"common\",\n };\n}\n\nexport function defineProps<P extends TProperties>(\n props: P,\n options?: ObjectOptions & {\n noGrow?: boolean;\n noAlignSelf?: boolean;\n },\n) {\n const allProps = { ...commonProps, ...props };\n const { alignSelf, grow, ...rest } = allProps;\n const finalProps = {\n ...rest,\n ...(options?.noAlignSelf ? {} : { alignSelf }),\n ...(options?.noGrow ? {} : { grow }),\n } as typeof allProps;\n return Type.Object(finalProps, { ...options, additionalProperties: false });\n}\n\n// export const optional = Type.Optional;\nexport const array = Type.Array;\n"],"mappings":";;wCAGA,OAA2B,QAAAA,MAA4D,oBAIvF,SAASC,EAAUC,EAAkD,CACnE,OAAOA,EAAO,OAAS,QACzB,CAEO,SAASC,EAA6B,CAC3C,MAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,WACX,SAAAC,EACA,QAAAC,CACF,EAAwC,CAEtC,OAAIP,EAAUI,CAAQ,EACFI,EAAK,UAAU,CAACA,EAAK,OAAO,CAAC,CAAC,EAAGJ,CAAQ,EAAG,CAC5D,MAAAD,EACA,SAAU,CACR,SAAAE,EACA,MAAO,GACP,GAAGC,CACL,EACA,GAAGC,CACL,CAAC,EAKIC,EAAK,OAAOJ,EAAU,CAC3B,MAAAD,EACA,GAAGI,EACH,SAAU,CACR,SAAAF,EACA,MAAO,GACP,GAAGC,CACL,CACF,CAAC,CACH,CAGO,SAASG,EAAaR,EAAiB,CAC5C,IAAMS,EAAOT,EAAO,SACpB,MAAO,CACL,MAAQA,EAAO,OAASA,EAAO,UAAU,MACzC,KAAAS,EACA,IAAKA,EAAK,UAAY,QACxB,CACF,CAEO,SAASC,EACdC,EACAL,EAIA,CACA,IAAMM,EAAW,CAAE,GAAGC,EAAa,GAAGF,CAAM,EACtC,CAAE,UAAAG,EAAW,KAAAC,EAAM,GAAGC,CAAK,EAAIJ,EAC/BK,EAAa,CACjB,GAAGD,EACH,GAAIV,GAAS,YAAc,CAAC,EAAI,CAAE,UAAAQ,CAAU,EAC5C,GAAIR,GAAS,OAAS,CAAC,EAAI,CAAE,KAAAS,CAAK,CACpC,EACA,OAAOR,EAAK,OAAOU,EAAY,CAAE,GAAGX,EAAS,qBAAsB,EAAM,CAAC,CAC5E,CAGO,IAAMY,EAAQX,EAAK","names":["Type","isTObject","schema","group","title","children","category","metadata","options","Type","getGroupInfo","meta","defineProps","props","allProps","commonProps","alignSelf","grow","rest","finalProps","array"]}
1
+ {"version":3,"sources":["../../src/shared/bricks/props/helpers.ts"],"sourcesContent":["/**\n * Helper functions for defining and working with props and groups of props\n */\nimport { type TProperties, Type, type TSchema, type TObject, type ObjectOptions } from \"@sinclair/typebox\";\nimport { commonProps } from \"./common\";\nimport type { PartialBy, PropGroup, GroupMetadata } from \"./types\";\n\nfunction isTObject(schema: TSchema | TProperties): schema is TObject {\n return schema.type === \"object\";\n}\n\nexport function group<T extends TProperties>({\n title,\n children,\n category = \"settings\",\n metadata,\n options,\n}: PartialBy<PropGroup<T>, \"category\">) {\n // check if children is already a TObject\n if (isTObject(children)) {\n const generated = Type.Composite([Type.Object({}), children], {\n title,\n metadata: {\n category,\n group: true,\n ...metadata,\n },\n ...options,\n });\n return generated;\n }\n\n // Create the TypeBox schema with title as a standard property and group-specific info in metadata\n return Type.Object(children, {\n title,\n ...options,\n metadata: {\n category,\n group: true,\n ...metadata,\n },\n });\n}\n\n// Functions to extract metadata from schemas\nexport function getGroupInfo(schema: TSchema) {\n const meta = schema.metadata as GroupMetadata;\n return {\n title: (schema.title ?? schema.metadata?.title) as string | undefined,\n meta,\n tab: meta.groupTab || \"common\",\n };\n}\n\nexport function defineProps<P extends TProperties>(\n props: P,\n options?: ObjectOptions & {\n noGrow?: boolean;\n noAlignSelf?: boolean;\n },\n) {\n const allProps = { ...commonProps, ...props };\n const { alignSelf, grow, ...rest } = allProps;\n const finalProps = {\n ...rest,\n ...(options?.noAlignSelf ? {} : { alignSelf }),\n ...(options?.noGrow ? {} : { grow }),\n } as typeof allProps;\n return Type.Object(finalProps, { ...options, additionalProperties: false });\n}\n\n// export const optional = Type.Optional;\nexport const array = Type.Array;\n"],"mappings":";;;;;;;AAGA,SAA2B,YAA4D;AAIvF,SAAS,UAAU,QAAkD;AACnE,SAAO,OAAO,SAAS;AACzB;AAEO,SAAS,MAA6B;AAAA,EAC3C;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AACF,GAAwC;AAEtC,MAAI,UAAU,QAAQ,GAAG;AACvB,UAAM,YAAY,KAAK,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,QAAQ,GAAG;AAAA,MAC5D;AAAA,MACA,UAAU;AAAA,QACR;AAAA,QACA,OAAO;AAAA,QACP,GAAG;AAAA,MACL;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AACD,WAAO;AAAA,EACT;AAGA,SAAO,KAAK,OAAO,UAAU;AAAA,IAC3B;AAAA,IACA,GAAG;AAAA,IACH,UAAU;AAAA,MACR;AAAA,MACA,OAAO;AAAA,MACP,GAAG;AAAA,IACL;AAAA,EACF,CAAC;AACH;AAGO,SAAS,aAAa,QAAiB;AAC5C,QAAM,OAAO,OAAO;AACpB,SAAO;AAAA,IACL,OAAQ,OAAO,SAAS,OAAO,UAAU;AAAA,IACzC;AAAA,IACA,KAAK,KAAK,YAAY;AAAA,EACxB;AACF;AAEO,SAAS,YACd,OACA,SAIA;AACA,QAAM,WAAW,EAAE,GAAG,aAAa,GAAG,MAAM;AAC5C,QAAM,EAAE,WAAW,MAAM,GAAG,KAAK,IAAI;AACrC,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,GAAI,SAAS,cAAc,CAAC,IAAI,EAAE,UAAU;AAAA,IAC5C,GAAI,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK;AAAA,EACpC;AACA,SAAO,KAAK,OAAO,YAAY,EAAE,GAAG,SAAS,sBAAsB,MAAM,CAAC;AAC5E;AAGO,IAAM,QAAQ,KAAK;","names":[]}