@upstart.gg/sdk 0.0.134 → 0.0.136

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 (589) hide show
  1. package/dist/shared/ai/schemas.d.ts +11 -3
  2. package/dist/shared/ai/schemas.d.ts.map +1 -1
  3. package/dist/shared/ai/schemas.js +63 -1
  4. package/dist/shared/ai/schemas.js.map +1 -1
  5. package/dist/shared/ai/types.d.ts +138 -64
  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 +99 -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/_types.d.ts +9 -0
  19. package/dist/shared/bricks/manifests/_types.d.ts.map +1 -0
  20. package/dist/shared/bricks/{props/enum.js → manifests/_types.js} +1 -2
  21. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +4 -8
  22. package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
  23. package/dist/shared/bricks/manifests/accordion.manifest.js +29 -1
  24. package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
  25. package/dist/shared/bricks/manifests/all-manifests.js +59 -1
  26. package/dist/shared/bricks/manifests/box.manifest.d.ts +4 -8
  27. package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
  28. package/dist/shared/bricks/manifests/box.manifest.js +28 -1
  29. package/dist/shared/bricks/manifests/button.manifest.d.ts +4 -8
  30. package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
  31. package/dist/shared/bricks/manifests/button.manifest.js +28 -1
  32. package/dist/shared/bricks/manifests/card.manifest.d.ts +10 -9
  33. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  34. package/dist/shared/bricks/manifests/card.manifest.js +28 -1
  35. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +4 -8
  36. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  37. package/dist/shared/bricks/manifests/carousel.manifest.js +28 -1
  38. package/dist/shared/bricks/manifests/footer.manifest.d.ts +6 -10
  39. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  40. package/dist/shared/bricks/manifests/footer.manifest.js +30 -1
  41. package/dist/shared/bricks/manifests/form.manifest.d.ts +5 -9
  42. package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
  43. package/dist/shared/bricks/manifests/form.manifest.js +29 -1
  44. package/dist/shared/bricks/manifests/hero.manifest.d.ts +4 -8
  45. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  46. package/dist/shared/bricks/manifests/hero.manifest.js +28 -1
  47. package/dist/shared/bricks/manifests/html.manifest.d.ts +4 -8
  48. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  49. package/dist/shared/bricks/manifests/html.manifest.js +28 -1
  50. package/dist/shared/bricks/manifests/icon.manifest.d.ts +4 -8
  51. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  52. package/dist/shared/bricks/manifests/icon.manifest.js +28 -1
  53. package/dist/shared/bricks/manifests/image.manifest.d.ts +3 -2
  54. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  55. package/dist/shared/bricks/manifests/image.manifest.js +28 -1
  56. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +4 -8
  57. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  58. package/dist/shared/bricks/manifests/images-gallery.manifest.js +28 -1
  59. package/dist/shared/bricks/manifests/map.manifest.d.ts +4 -8
  60. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  61. package/dist/shared/bricks/manifests/map.manifest.js +31 -1
  62. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +6 -10
  63. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  64. package/dist/shared/bricks/manifests/navbar.manifest.js +31 -1
  65. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +4 -8
  66. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  67. package/dist/shared/bricks/manifests/sidebar.manifest.js +29 -1
  68. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +4 -8
  69. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  70. package/dist/shared/bricks/manifests/social-links.manifest.js +28 -1
  71. package/dist/shared/bricks/manifests/spacer.manifest.d.ts +4 -8
  72. package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
  73. package/dist/shared/bricks/manifests/spacer.manifest.js +28 -1
  74. package/dist/shared/bricks/manifests/table.manifest.d.ts +87 -0
  75. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -0
  76. package/dist/shared/bricks/manifests/table.manifest.js +31 -0
  77. package/dist/shared/bricks/manifests/table.manifest.js.map +1 -0
  78. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +86 -0
  79. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -0
  80. package/dist/shared/bricks/manifests/tabs.manifest.js +31 -0
  81. package/dist/shared/bricks/manifests/tabs.manifest.js.map +1 -0
  82. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +4 -8
  83. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  84. package/dist/shared/bricks/manifests/testimonials.manifest.js +28 -1
  85. package/dist/shared/bricks/manifests/text.manifest.d.ts +4 -8
  86. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  87. package/dist/shared/bricks/manifests/text.manifest.js +28 -1
  88. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +97 -0
  89. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -0
  90. package/dist/shared/bricks/manifests/timeline.manifest.js +31 -0
  91. package/dist/shared/bricks/manifests/timeline.manifest.js.map +1 -0
  92. package/dist/shared/bricks/manifests/video.manifest.d.ts +4 -8
  93. package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
  94. package/dist/shared/bricks/manifests/video.manifest.js +28 -1
  95. package/dist/shared/bricks/props/align.d.ts +2 -2
  96. package/dist/shared/bricks/props/align.js +19 -1
  97. package/dist/shared/bricks/props/background.d.ts +4 -4
  98. package/dist/shared/bricks/props/background.js +15 -1
  99. package/dist/shared/bricks/props/boolean.js +7 -1
  100. package/dist/shared/bricks/props/border.js +16 -1
  101. package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
  102. package/dist/shared/bricks/props/color-preset.js +13 -1
  103. package/dist/shared/bricks/props/color.js +14 -1
  104. package/dist/shared/bricks/props/common.d.ts +2 -2
  105. package/dist/shared/bricks/props/common.js +13 -1
  106. package/dist/shared/bricks/props/css-length.js +14 -1
  107. package/dist/shared/bricks/props/datarecord.js +7 -1
  108. package/dist/shared/bricks/props/datasource.d.ts +1 -1
  109. package/dist/shared/bricks/props/datasource.js +86 -1
  110. package/dist/shared/bricks/props/datasource.js.map +1 -1
  111. package/dist/shared/bricks/props/date.js +9 -1
  112. package/dist/shared/bricks/props/direction.js +11 -1
  113. package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
  114. package/dist/shared/bricks/props/dynamic.js +30 -1
  115. package/dist/shared/bricks/props/effects.js +17 -1
  116. package/dist/shared/bricks/props/file.js +15 -1
  117. package/dist/shared/bricks/props/file.js.map +1 -1
  118. package/dist/shared/bricks/props/geolocation.js +44 -1
  119. package/dist/shared/bricks/props/geolocation.js.map +1 -1
  120. package/dist/shared/bricks/props/helpers.d.ts +1 -1
  121. package/dist/shared/bricks/props/helpers.js +18 -1
  122. package/dist/shared/bricks/props/image.js +11 -1
  123. package/dist/shared/bricks/props/number.js +7 -1
  124. package/dist/shared/bricks/props/position.js +7 -1
  125. package/dist/shared/bricks/props/string.js +18 -1
  126. package/dist/shared/bricks/props/tags.js +10 -1
  127. package/dist/shared/bricks/props/text.js +19 -1
  128. package/dist/shared/bricks.d.ts +59 -45
  129. package/dist/shared/bricks.d.ts.map +1 -1
  130. package/dist/shared/bricks.js +81 -1
  131. package/dist/shared/chunk-2BPYOTKA.js +21 -0
  132. package/dist/shared/{chunk-WHTPGWUV.js.map → chunk-2BPYOTKA.js.map} +1 -1
  133. package/dist/shared/chunk-2IHKVMKW.js +105 -0
  134. package/dist/shared/chunk-2IHKVMKW.js.map +1 -0
  135. package/dist/shared/chunk-2RK3CPYJ.js +74 -0
  136. package/dist/shared/{chunk-W33JMRRN.js.map → chunk-2RK3CPYJ.js.map} +1 -1
  137. package/dist/shared/chunk-2VDR4ZYY.js +230 -0
  138. package/dist/shared/chunk-2VDR4ZYY.js.map +1 -0
  139. package/dist/shared/chunk-36PLZKMW.js +538 -0
  140. package/dist/shared/chunk-36PLZKMW.js.map +1 -0
  141. package/dist/shared/chunk-3ZDN5BWN.js +18 -0
  142. package/dist/shared/{chunk-OIY3EPHO.js.map → chunk-3ZDN5BWN.js.map} +1 -1
  143. package/dist/shared/chunk-42OUNI7C.js +366 -0
  144. package/dist/shared/chunk-42OUNI7C.js.map +1 -0
  145. package/dist/shared/chunk-4MNWMEMM.js +422 -0
  146. package/dist/shared/chunk-4MNWMEMM.js.map +1 -0
  147. package/dist/shared/chunk-55C6MTX2.js +21 -0
  148. package/dist/shared/{chunk-KBHDY425.js.map → chunk-55C6MTX2.js.map} +1 -1
  149. package/dist/shared/chunk-6TVVKUWM.js +15 -0
  150. package/dist/shared/{chunk-4WDWJA3N.js.map → chunk-6TVVKUWM.js.map} +1 -1
  151. package/dist/shared/chunk-6WIMWLCJ.js +17 -0
  152. package/dist/shared/{chunk-KYY3PHP7.js.map → chunk-6WIMWLCJ.js.map} +1 -1
  153. package/dist/shared/chunk-7LAWWRU7.js +21 -0
  154. package/dist/shared/{chunk-IUXCWWGO.js.map → chunk-7LAWWRU7.js.map} +1 -1
  155. package/dist/shared/chunk-A2QPY54H.js +13 -0
  156. package/dist/shared/{chunk-KFM6KXSE.js.map → chunk-A2QPY54H.js.map} +1 -1
  157. package/dist/shared/chunk-BHC2A43S.js +67 -0
  158. package/dist/shared/{chunk-3YVJ2ELD.js.map → chunk-BHC2A43S.js.map} +1 -1
  159. package/dist/shared/chunk-BPBKHEQ5.js +39 -0
  160. package/dist/shared/{chunk-OHNYCXPX.js.map → chunk-BPBKHEQ5.js.map} +1 -1
  161. package/dist/shared/chunk-CRS7QCPZ.js +308 -0
  162. package/dist/shared/chunk-CRS7QCPZ.js.map +1 -0
  163. package/dist/shared/chunk-CSF2WQX2.js +60 -0
  164. package/dist/shared/{chunk-GLS7HPIZ.js.map → chunk-CSF2WQX2.js.map} +1 -1
  165. package/dist/shared/chunk-DFAFDBYZ.js +462 -0
  166. package/dist/shared/chunk-DFAFDBYZ.js.map +1 -0
  167. package/dist/shared/chunk-DV3G7X34.js +244 -0
  168. package/dist/shared/chunk-DV3G7X34.js.map +1 -0
  169. package/dist/shared/chunk-EVLRH6VG.js +56 -0
  170. package/dist/shared/{chunk-RJYZ5FAR.js.map → chunk-EVLRH6VG.js.map} +1 -1
  171. package/dist/shared/chunk-F22LDHEO.js +105 -0
  172. package/dist/shared/{chunk-5YRC3IT3.js.map → chunk-F22LDHEO.js.map} +1 -1
  173. package/dist/shared/chunk-F247VKAE.js +131 -0
  174. package/dist/shared/chunk-F247VKAE.js.map +1 -0
  175. package/dist/shared/chunk-FOGAVJC2.js +59 -0
  176. package/dist/shared/chunk-FOGAVJC2.js.map +1 -0
  177. package/dist/shared/chunk-FQDR2BBZ.js +30 -0
  178. package/dist/shared/chunk-FQDR2BBZ.js.map +1 -0
  179. package/dist/shared/chunk-GFAQWQER.js +618 -0
  180. package/dist/shared/chunk-GFAQWQER.js.map +1 -0
  181. package/dist/shared/chunk-GIGFNQBO.js +129 -0
  182. package/dist/shared/chunk-GIGFNQBO.js.map +1 -0
  183. package/dist/shared/chunk-GQTZPN5D.js +519 -0
  184. package/dist/shared/chunk-GQTZPN5D.js.map +1 -0
  185. package/dist/shared/chunk-H5JM2M2T.js +515 -0
  186. package/dist/shared/chunk-H5JM2M2T.js.map +1 -0
  187. package/dist/shared/chunk-HPCCD6V5.js +17 -0
  188. package/dist/shared/{chunk-6I3ONVU6.js.map → chunk-HPCCD6V5.js.map} +1 -1
  189. package/dist/shared/chunk-HTUSL2U7.js +260 -0
  190. package/dist/shared/chunk-HTUSL2U7.js.map +1 -0
  191. package/dist/shared/chunk-IQIISR22.js +794 -0
  192. package/dist/shared/chunk-IQIISR22.js.map +1 -0
  193. package/dist/shared/chunk-JK2FWFJU.js +15 -0
  194. package/dist/shared/{chunk-JMN3HTZU.js.map → chunk-JK2FWFJU.js.map} +1 -1
  195. package/dist/shared/chunk-KEM5N6GJ.js +505 -0
  196. package/dist/shared/chunk-KEM5N6GJ.js.map +1 -0
  197. package/dist/shared/chunk-KIDICX3Y.js +278 -0
  198. package/dist/shared/chunk-KIDICX3Y.js.map +1 -0
  199. package/dist/shared/chunk-KILJYJFE.js +354 -0
  200. package/dist/shared/chunk-KILJYJFE.js.map +1 -0
  201. package/dist/shared/chunk-KNREHAPN.js +13 -0
  202. package/dist/shared/{chunk-KSEURRVZ.js.map → chunk-KNREHAPN.js.map} +1 -1
  203. package/dist/shared/chunk-KT7SSWMM.js +24 -0
  204. package/dist/shared/{chunk-KO5FPOWZ.js.map → chunk-KT7SSWMM.js.map} +1 -1
  205. package/dist/shared/chunk-L6C7HUSA.js +850 -0
  206. package/dist/shared/chunk-L6C7HUSA.js.map +1 -0
  207. package/dist/shared/chunk-LCJ2VFPM.js +837 -0
  208. package/dist/shared/chunk-LCJ2VFPM.js.map +1 -0
  209. package/dist/shared/chunk-LLNPH3XR.js +148 -0
  210. package/dist/shared/chunk-LLNPH3XR.js.map +1 -0
  211. package/dist/shared/chunk-LTIJI7Y3.js +368 -0
  212. package/dist/shared/chunk-LTIJI7Y3.js.map +1 -0
  213. package/dist/shared/chunk-MFNHFN2B.js +103 -0
  214. package/dist/shared/{chunk-ZA3GAB4H.js.map → chunk-MFNHFN2B.js.map} +1 -1
  215. package/dist/shared/chunk-N3BEBLWF.js +213 -0
  216. package/dist/shared/chunk-N3BEBLWF.js.map +1 -0
  217. package/dist/shared/chunk-N3ZTQD5I.js +70 -0
  218. package/dist/shared/chunk-N3ZTQD5I.js.map +1 -0
  219. package/dist/shared/chunk-NTLAKMMQ.js +94 -0
  220. package/dist/shared/{chunk-ZTZJHY4E.js.map → chunk-NTLAKMMQ.js.map} +1 -1
  221. package/dist/shared/chunk-O5PQISX4.js +51 -0
  222. package/dist/shared/{chunk-VEDQV5XO.js.map → chunk-O5PQISX4.js.map} +1 -1
  223. package/dist/shared/chunk-OJP4HMJT.js +22 -0
  224. package/dist/shared/{chunk-6HLU4UI2.js.map → chunk-OJP4HMJT.js.map} +1 -1
  225. package/dist/shared/chunk-OSJ6KGPX.js +16 -0
  226. package/dist/shared/{chunk-GPEMPZXK.js.map → chunk-OSJ6KGPX.js.map} +1 -1
  227. package/dist/shared/chunk-OXYXZHP2.js +48 -0
  228. package/dist/shared/{chunk-5O4Z3YQY.js.map → chunk-OXYXZHP2.js.map} +1 -1
  229. package/dist/shared/chunk-Q4NPPLEU.js +34 -0
  230. package/dist/shared/{chunk-QWGUMKZC.js.map → chunk-Q4NPPLEU.js.map} +1 -1
  231. package/dist/shared/chunk-QLQVDZIL.js +11 -0
  232. package/dist/shared/{chunk-KLD3P5XH.js.map → chunk-QLQVDZIL.js.map} +1 -1
  233. package/dist/shared/chunk-RV7AYVFV.js +75 -0
  234. package/dist/shared/{chunk-DHI3IBOD.js.map → chunk-RV7AYVFV.js.map} +1 -1
  235. package/dist/shared/chunk-SE6O65HC.js +44 -0
  236. package/dist/shared/{chunk-NM5MMPCF.js.map → chunk-SE6O65HC.js.map} +1 -1
  237. package/dist/shared/chunk-TFGGYU6Y.js +394 -0
  238. package/dist/shared/{chunk-CZRCW5EN.js.map → chunk-TFGGYU6Y.js.map} +1 -1
  239. package/dist/shared/chunk-TKMWY2VN.js +18 -0
  240. package/dist/shared/{chunk-RDZK73KV.js.map → chunk-TKMWY2VN.js.map} +1 -1
  241. package/dist/shared/chunk-TNMNMYOB.js +69 -0
  242. package/dist/shared/{chunk-4BTB3MU2.js.map → chunk-TNMNMYOB.js.map} +1 -1
  243. package/dist/shared/chunk-TNTFKLCR.js +1225 -0
  244. package/dist/shared/chunk-TNTFKLCR.js.map +1 -0
  245. package/dist/shared/chunk-U5ZECCJM.js +464 -0
  246. package/dist/shared/chunk-U5ZECCJM.js.map +1 -0
  247. package/dist/shared/chunk-UXTASZ23.js +419 -0
  248. package/dist/shared/chunk-UXTASZ23.js.map +1 -0
  249. package/dist/shared/chunk-W6MRYRGJ.js +100 -0
  250. package/dist/shared/{chunk-CCI4C3TM.js.map → chunk-W6MRYRGJ.js.map} +1 -1
  251. package/dist/shared/chunk-WKN566LN.js +29 -0
  252. package/dist/shared/{chunk-Q4H4QEMB.js.map → chunk-WKN566LN.js.map} +1 -1
  253. package/dist/shared/chunk-XCWMZVF5.js +89 -0
  254. package/dist/shared/{chunk-ZFCUSWMT.js.map → chunk-XCWMZVF5.js.map} +1 -1
  255. package/dist/shared/chunk-XCZVD5H6.js +13 -0
  256. package/dist/shared/{chunk-HAGKVQOW.js.map → chunk-XCZVD5H6.js.map} +1 -1
  257. package/dist/shared/chunk-XZ6WJZHN.js +10 -0
  258. package/dist/shared/{chunk-DCH4ZKWT.js.map → chunk-XZ6WJZHN.js.map} +1 -1
  259. package/dist/shared/chunk-Y74LZNND.js +30 -0
  260. package/dist/shared/{chunk-GACHLACT.js.map → chunk-Y74LZNND.js.map} +1 -1
  261. package/dist/shared/chunk-YWOTQWIQ.js +572 -0
  262. package/dist/shared/chunk-YWOTQWIQ.js.map +1 -0
  263. package/dist/shared/chunk-ZEFOWKYP.js +44 -0
  264. package/dist/shared/{chunk-DQ7PRWTG.js.map → chunk-ZEFOWKYP.js.map} +1 -1
  265. package/dist/shared/chunk-ZGQ3AQBG.js +33 -0
  266. package/dist/shared/chunk-ZGQ3AQBG.js.map +1 -0
  267. package/dist/shared/chunk-ZLYIRH2B.js +68 -0
  268. package/dist/shared/{chunk-SWLUQVK7.js.map → chunk-ZLYIRH2B.js.map} +1 -1
  269. package/dist/shared/chunk-ZR6R6Z6O.js +496 -0
  270. package/dist/shared/chunk-ZR6R6Z6O.js.map +1 -0
  271. package/dist/shared/chunk-ZRRAK5NS.js +432 -0
  272. package/dist/shared/chunk-ZRRAK5NS.js.map +1 -0
  273. package/dist/shared/context.d.ts +1 -0
  274. package/dist/shared/context.d.ts.map +1 -1
  275. package/dist/shared/datarecords/external/airtable/handler.js +377 -1
  276. package/dist/shared/datarecords/external/airtable/handler.js.map +1 -1
  277. package/dist/shared/datarecords/external/airtable/oauth/config.js +15 -1
  278. package/dist/shared/datarecords/external/airtable/oauth/config.js.map +1 -1
  279. package/dist/shared/datarecords/external/airtable/types.js +11 -1
  280. package/dist/shared/datarecords/external/generic-webhook/handler.js +14 -1
  281. package/dist/shared/datarecords/external/generic-webhook/handler.js.map +1 -1
  282. package/dist/shared/datarecords/external/generic-webhook/options.js +16 -1
  283. package/dist/shared/datarecords/external/generic-webhook/options.js.map +1 -1
  284. package/dist/shared/datarecords/external/google/oauth/config.js +35 -1
  285. package/dist/shared/datarecords/external/google/oauth/config.js.map +1 -1
  286. package/dist/shared/datarecords/external/google/sheets/client.js +7 -1
  287. package/dist/shared/datarecords/external/google/sheets/handler.js +184 -5
  288. package/dist/shared/datarecords/external/google/sheets/handler.js.map +1 -1
  289. package/dist/shared/datarecords/external/google/sheets/types.js +7 -1
  290. package/dist/shared/datarecords/external/notion/handler.js +397 -1
  291. package/dist/shared/datarecords/external/notion/handler.js.map +1 -1
  292. package/dist/shared/datarecords/external/notion/oauth/config.js +11 -1
  293. package/dist/shared/datarecords/external/notion/oauth/config.js.map +1 -1
  294. package/dist/shared/datarecords/external/notion/types.js +7 -1
  295. package/dist/shared/datarecords/types.d.ts +6 -59
  296. package/dist/shared/datarecords/types.d.ts.map +1 -1
  297. package/dist/shared/datarecords/types.js +14 -1
  298. package/dist/shared/datarecords.js +9 -1
  299. package/dist/shared/datarecords.js.map +1 -1
  300. package/dist/shared/datasources/external/facebook/posts/fetcher.js +49 -1
  301. package/dist/shared/datasources/external/facebook/posts/fetcher.js.map +1 -1
  302. package/dist/shared/datasources/external/facebook/posts/schema.js +36 -1
  303. package/dist/shared/datasources/external/facebook/posts/schema.js.map +1 -1
  304. package/dist/shared/datasources/external/http-json/fetcher.js +29 -1
  305. package/dist/shared/datasources/external/http-json/fetcher.js.map +1 -1
  306. package/dist/shared/datasources/external/http-json/options.js +11 -1
  307. package/dist/shared/datasources/external/http-json/options.js.map +1 -1
  308. package/dist/shared/datasources/external/http-json/schema.js +10 -1
  309. package/dist/shared/datasources/external/http-json/schema.js.map +1 -1
  310. package/dist/shared/datasources/external/instagram/feed/fetcher.js +29 -1
  311. package/dist/shared/datasources/external/instagram/feed/fetcher.js.map +1 -1
  312. package/dist/shared/datasources/external/instagram/feed/schema.js +26 -1
  313. package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
  314. package/dist/shared/datasources/external/mastodon/account/fetcher.js +7 -1
  315. package/dist/shared/datasources/external/mastodon/account/schema.js +7 -1
  316. package/dist/shared/datasources/external/mastodon/options.js +10 -1
  317. package/dist/shared/datasources/external/mastodon/options.js.map +1 -1
  318. package/dist/shared/datasources/external/mastodon/status/fetcher.js +31 -1
  319. package/dist/shared/datasources/external/mastodon/status/fetcher.js.map +1 -1
  320. package/dist/shared/datasources/external/mastodon/status/sample.array.js +61 -1
  321. package/dist/shared/datasources/external/mastodon/status/sample.array.js.map +1 -1
  322. package/dist/shared/datasources/external/mastodon/status/sample.single.js +59 -1
  323. package/dist/shared/datasources/external/mastodon/status/sample.single.js.map +1 -1
  324. package/dist/shared/datasources/external/mastodon/status/schema.js +125 -1
  325. package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
  326. package/dist/shared/datasources/external/meta/oauth/config.js +17 -1
  327. package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
  328. package/dist/shared/datasources/external/meta/options.js +10 -1
  329. package/dist/shared/datasources/external/meta/options.js.map +1 -1
  330. package/dist/shared/datasources/external/rss/fetcher.js +26 -1
  331. package/dist/shared/datasources/external/rss/fetcher.js.map +1 -1
  332. package/dist/shared/datasources/external/rss/options.js +10 -1
  333. package/dist/shared/datasources/external/rss/options.js.map +1 -1
  334. package/dist/shared/datasources/external/rss/schema.js +7 -1
  335. package/dist/shared/datasources/external/threads/media/fetcher.js +47 -1
  336. package/dist/shared/datasources/external/threads/media/fetcher.js.map +1 -1
  337. package/dist/shared/datasources/external/threads/media/schema.js +40 -1
  338. package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
  339. package/dist/shared/datasources/external/tiktok/oauth/config.js +18 -1
  340. package/dist/shared/datasources/external/tiktok/oauth/config.js.map +1 -1
  341. package/dist/shared/datasources/external/tiktok/video/fetcher.js +34 -1
  342. package/dist/shared/datasources/external/tiktok/video/fetcher.js.map +1 -1
  343. package/dist/shared/datasources/external/tiktok/video/options.js +11 -1
  344. package/dist/shared/datasources/external/tiktok/video/options.js.map +1 -1
  345. package/dist/shared/datasources/external/tiktok/video/schema.js +30 -1
  346. package/dist/shared/datasources/external/tiktok/video/schema.js.map +1 -1
  347. package/dist/shared/datasources/external/youtube/list/fetcher.js +32 -1
  348. package/dist/shared/datasources/external/youtube/list/fetcher.js.map +1 -1
  349. package/dist/shared/datasources/external/youtube/list/options.js +14 -1
  350. package/dist/shared/datasources/external/youtube/list/options.js.map +1 -1
  351. package/dist/shared/datasources/external/youtube/list/schema.js +7 -1
  352. package/dist/shared/datasources/external/youtube/oauth/config.js +18 -1
  353. package/dist/shared/datasources/external/youtube/oauth/config.js.map +1 -1
  354. package/dist/shared/datasources/internal/blog/schema.js +72 -1
  355. package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
  356. package/dist/shared/datasources/internal/changelog/schema.js +51 -1
  357. package/dist/shared/datasources/internal/changelog/schema.js.map +1 -1
  358. package/dist/shared/datasources/internal/contact-info/schema.js +25 -1
  359. package/dist/shared/datasources/internal/contact-info/schema.js.map +1 -1
  360. package/dist/shared/datasources/internal/cv/schema.js +222 -1
  361. package/dist/shared/datasources/internal/cv/schema.js.map +1 -1
  362. package/dist/shared/datasources/internal/faq/schema.js +30 -1
  363. package/dist/shared/datasources/internal/faq/schema.js.map +1 -1
  364. package/dist/shared/datasources/internal/job-board/schema.js +224 -1
  365. package/dist/shared/datasources/internal/job-board/schema.js.map +1 -1
  366. package/dist/shared/datasources/internal/links/schema.js +7 -1
  367. package/dist/shared/datasources/internal/recipes/schema.js +45 -1
  368. package/dist/shared/datasources/internal/recipes/schema.js.map +1 -1
  369. package/dist/shared/datasources/internal/restaurant/schema.js +226 -1
  370. package/dist/shared/datasources/internal/restaurant/schema.js.map +1 -1
  371. package/dist/shared/datasources/samples.js +69 -1
  372. package/dist/shared/datasources/samples.js.map +1 -1
  373. package/dist/shared/datasources/schemas.js +34 -1
  374. package/dist/shared/datasources/schemas.js.map +1 -1
  375. package/dist/shared/datasources/types.d.ts +1 -1
  376. package/dist/shared/datasources/types.d.ts.map +1 -1
  377. package/dist/shared/datasources/types.js +32 -1
  378. package/dist/shared/datasources/utils.js +11 -1
  379. package/dist/shared/datasources.d.ts +1 -1
  380. package/dist/shared/datasources.d.ts.map +1 -1
  381. package/dist/shared/datasources.js +49 -1
  382. package/dist/shared/datasources.js.map +1 -1
  383. package/dist/shared/errors.js +7 -1
  384. package/dist/shared/images.d.ts +4 -4
  385. package/dist/shared/images.d.ts.map +1 -1
  386. package/dist/shared/images.js +44 -1
  387. package/dist/shared/images.js.map +1 -1
  388. package/dist/shared/index.js +9 -1
  389. package/dist/shared/index.js.map +1 -1
  390. package/dist/shared/layout-constants.js +14 -1
  391. package/dist/shared/layout-constants.js.map +1 -1
  392. package/dist/shared/manifest.js +52 -1
  393. package/dist/shared/manifest.js.map +1 -1
  394. package/dist/shared/oauth.js +8 -1
  395. package/dist/shared/page.d.ts +12 -126
  396. package/dist/shared/page.d.ts.map +1 -1
  397. package/dist/shared/page.js +58 -1
  398. package/dist/shared/prompt.js +7 -1
  399. package/dist/shared/responsive.js +10 -1
  400. package/dist/shared/responsive.js.map +1 -1
  401. package/dist/shared/site.d.ts +34 -31
  402. package/dist/shared/site.d.ts.map +1 -1
  403. package/dist/shared/site.js +127 -1
  404. package/dist/shared/site.js.map +1 -1
  405. package/dist/shared/sitemap.d.ts +13 -12
  406. package/dist/shared/sitemap.d.ts.map +1 -1
  407. package/dist/shared/sitemap.js +69 -1
  408. package/dist/shared/social-icons.js +312 -1
  409. package/dist/shared/social-icons.js.map +1 -1
  410. package/dist/shared/tests/schema-registry.test.d.ts +2 -0
  411. package/dist/shared/tests/schema-registry.test.d.ts.map +1 -0
  412. package/dist/shared/theme.d.ts +1 -1
  413. package/dist/shared/theme.d.ts.map +1 -1
  414. package/dist/shared/theme.js +35 -1
  415. package/dist/shared/themes/color-system.js +103 -1
  416. package/dist/shared/themes/color-system.js.map +1 -1
  417. package/dist/shared/utils/canvas-data-uri.js +7 -1
  418. package/dist/shared/utils/canvas-data-uri.js.map +1 -1
  419. package/dist/shared/utils/invariant.js +7 -1
  420. package/dist/shared/utils/json-date.js +7 -1
  421. package/dist/shared/utils/llm.d.ts +2 -3
  422. package/dist/shared/utils/llm.d.ts.map +1 -1
  423. package/dist/shared/utils/llm.js +24 -1
  424. package/dist/shared/utils/merge.js +7 -1
  425. package/dist/shared/utils/object-hash.js +13 -1
  426. package/dist/shared/utils/object-hash.js.map +1 -1
  427. package/dist/shared/utils/schema-registry.d.ts +5 -0
  428. package/dist/shared/utils/schema-registry.d.ts.map +1 -0
  429. package/dist/shared/utils/schema-registry.js +29 -0
  430. package/dist/shared/utils/schema-registry.js.map +1 -0
  431. package/dist/shared/utils/schema.d.ts +2 -1
  432. package/dist/shared/utils/schema.d.ts.map +1 -1
  433. package/dist/shared/utils/schema.js +31 -1
  434. package/dist/shared/utils/string-enum.js +7 -1
  435. package/dist/shared/utils/tests/schema-registry.test.d.ts +2 -0
  436. package/dist/shared/utils/tests/schema-registry.test.d.ts.map +1 -0
  437. package/dist/shared/utils/try-catch.js +13 -1
  438. package/dist/shared/utils/try-catch.js.map +1 -1
  439. package/dist/shared/utils/typed-ref.js +7 -1
  440. package/package.json +9 -10
  441. package/src/shared/ai/schemas.ts +44 -12
  442. package/src/shared/ai/types.ts +135 -59
  443. package/src/shared/attributes.ts +37 -27
  444. package/src/shared/bricks/manifests/_types.ts +9 -0
  445. package/src/shared/bricks/manifests/accordion.manifest.ts +128 -161
  446. package/src/shared/bricks/manifests/all-manifests.ts +16 -0
  447. package/src/shared/bricks/manifests/box.manifest.ts +195 -129
  448. package/src/shared/bricks/manifests/button.manifest.ts +158 -71
  449. package/src/shared/bricks/manifests/card.manifest.ts +200 -28
  450. package/src/shared/bricks/manifests/carousel.manifest.ts +154 -22
  451. package/src/shared/bricks/manifests/footer.manifest.ts +38 -32
  452. package/src/shared/bricks/manifests/form.manifest.ts +122 -7
  453. package/src/shared/bricks/manifests/hero.manifest.ts +103 -18
  454. package/src/shared/bricks/manifests/html.manifest.ts +2 -5
  455. package/src/shared/bricks/manifests/icon.manifest.ts +216 -36
  456. package/src/shared/bricks/manifests/image.manifest.ts +103 -2
  457. package/src/shared/bricks/manifests/images-gallery.manifest.ts +2 -5
  458. package/src/shared/bricks/manifests/map.manifest.ts +2 -5
  459. package/src/shared/bricks/manifests/navbar.manifest.ts +3 -8
  460. package/src/shared/bricks/manifests/sidebar.manifest.ts +2 -5
  461. package/src/shared/bricks/manifests/social-links.manifest.ts +2 -5
  462. package/src/shared/bricks/manifests/spacer.manifest.ts +2 -5
  463. package/src/shared/bricks/manifests/table.manifest.ts +440 -0
  464. package/src/shared/bricks/manifests/tabs.manifest.ts +573 -0
  465. package/src/shared/bricks/manifests/testimonials.manifest.ts +2 -5
  466. package/src/shared/bricks/manifests/text.manifest.ts +31 -10
  467. package/src/shared/bricks/manifests/timeline.manifest.ts +438 -0
  468. package/src/shared/bricks/manifests/video.manifest.ts +2 -5
  469. package/src/shared/bricks/props/color-preset.ts +3 -1
  470. package/src/shared/bricks/props/dynamic.ts +0 -1
  471. package/src/shared/bricks/props/string.ts +1 -1
  472. package/src/shared/bricks.ts +61 -49
  473. package/src/shared/context.ts +1 -0
  474. package/src/shared/datarecords/types.ts +47 -37
  475. package/src/shared/datasources/types.ts +1 -5
  476. package/src/shared/datasources.ts +2 -4
  477. package/src/shared/images.ts +10 -8
  478. package/src/shared/page.ts +0 -5
  479. package/src/shared/site.ts +3 -3
  480. package/src/shared/sitemap.ts +14 -16
  481. package/src/shared/tests/schema-registry.test.ts +12 -0
  482. package/src/shared/theme.ts +1 -4
  483. package/src/shared/utils/llm.ts +13 -12
  484. package/src/shared/utils/schema-registry.ts +82 -0
  485. package/src/shared/utils/schema.ts +18 -3
  486. package/src/shared/utils/tests/schema-registry.test.ts +13 -0
  487. package/src/shared/utils/tests/schema.test.ts +124 -56
  488. package/dist/shared/bricks/props/enum.d.ts +0 -13
  489. package/dist/shared/bricks/props/enum.d.ts.map +0 -1
  490. package/dist/shared/chunk-3YVJ2ELD.js +0 -4
  491. package/dist/shared/chunk-4BTB3MU2.js +0 -4
  492. package/dist/shared/chunk-4WDWJA3N.js +0 -4
  493. package/dist/shared/chunk-5O4Z3YQY.js +0 -4
  494. package/dist/shared/chunk-5YRC3IT3.js +0 -4
  495. package/dist/shared/chunk-6HLU4UI2.js +0 -4
  496. package/dist/shared/chunk-6I3ONVU6.js +0 -4
  497. package/dist/shared/chunk-7A2JNQX3.js +0 -4
  498. package/dist/shared/chunk-7A2JNQX3.js.map +0 -1
  499. package/dist/shared/chunk-A3GF4PYW.js +0 -4
  500. package/dist/shared/chunk-A3GF4PYW.js.map +0 -1
  501. package/dist/shared/chunk-A3K4NUVP.js +0 -4
  502. package/dist/shared/chunk-A3K4NUVP.js.map +0 -1
  503. package/dist/shared/chunk-AFVJZPLS.js +0 -4
  504. package/dist/shared/chunk-AFVJZPLS.js.map +0 -1
  505. package/dist/shared/chunk-AI4GHU7R.js +0 -4
  506. package/dist/shared/chunk-AI4GHU7R.js.map +0 -1
  507. package/dist/shared/chunk-B3EATRFX.js +0 -4
  508. package/dist/shared/chunk-B3EATRFX.js.map +0 -1
  509. package/dist/shared/chunk-CCI4C3TM.js +0 -4
  510. package/dist/shared/chunk-CFF6Q7O7.js +0 -7
  511. package/dist/shared/chunk-CFF6Q7O7.js.map +0 -1
  512. package/dist/shared/chunk-CZRCW5EN.js +0 -4
  513. package/dist/shared/chunk-DCH4ZKWT.js +0 -4
  514. package/dist/shared/chunk-DHI3IBOD.js +0 -4
  515. package/dist/shared/chunk-DQ7PRWTG.js +0 -4
  516. package/dist/shared/chunk-E6XEI7IK.js +0 -4
  517. package/dist/shared/chunk-E6XEI7IK.js.map +0 -1
  518. package/dist/shared/chunk-FLOMNC6J.js +0 -4
  519. package/dist/shared/chunk-FLOMNC6J.js.map +0 -1
  520. package/dist/shared/chunk-G5CJU6RD.js +0 -7
  521. package/dist/shared/chunk-G5CJU6RD.js.map +0 -1
  522. package/dist/shared/chunk-GACHLACT.js +0 -4
  523. package/dist/shared/chunk-GLS7HPIZ.js +0 -4
  524. package/dist/shared/chunk-GOMXZC4B.js +0 -35
  525. package/dist/shared/chunk-GOMXZC4B.js.map +0 -1
  526. package/dist/shared/chunk-GPEMPZXK.js +0 -4
  527. package/dist/shared/chunk-HAGKVQOW.js +0 -4
  528. package/dist/shared/chunk-I3VL6SRH.js +0 -9
  529. package/dist/shared/chunk-I3VL6SRH.js.map +0 -1
  530. package/dist/shared/chunk-IKC3FK7L.js +0 -4
  531. package/dist/shared/chunk-IKC3FK7L.js.map +0 -1
  532. package/dist/shared/chunk-IKHZD2JH.js +0 -4
  533. package/dist/shared/chunk-IKHZD2JH.js.map +0 -1
  534. package/dist/shared/chunk-IUXCWWGO.js +0 -4
  535. package/dist/shared/chunk-JMN3HTZU.js +0 -4
  536. package/dist/shared/chunk-KBHDY425.js +0 -4
  537. package/dist/shared/chunk-KFM6KXSE.js +0 -4
  538. package/dist/shared/chunk-KLD3P5XH.js +0 -4
  539. package/dist/shared/chunk-KO5FPOWZ.js +0 -4
  540. package/dist/shared/chunk-KSEURRVZ.js +0 -4
  541. package/dist/shared/chunk-KYY3PHP7.js +0 -4
  542. package/dist/shared/chunk-NJGXC7D6.js +0 -4
  543. package/dist/shared/chunk-NJGXC7D6.js.map +0 -1
  544. package/dist/shared/chunk-NM5MMPCF.js +0 -4
  545. package/dist/shared/chunk-OGBMYMZD.js +0 -4
  546. package/dist/shared/chunk-OGBMYMZD.js.map +0 -1
  547. package/dist/shared/chunk-OHNYCXPX.js +0 -4
  548. package/dist/shared/chunk-OIY3EPHO.js +0 -4
  549. package/dist/shared/chunk-PIG623TZ.js +0 -4
  550. package/dist/shared/chunk-PIG623TZ.js.map +0 -1
  551. package/dist/shared/chunk-PLSV746R.js +0 -4
  552. package/dist/shared/chunk-PLSV746R.js.map +0 -1
  553. package/dist/shared/chunk-PSCN3VVA.js +0 -4
  554. package/dist/shared/chunk-PSCN3VVA.js.map +0 -1
  555. package/dist/shared/chunk-PSTFJ5IJ.js +0 -4
  556. package/dist/shared/chunk-PSTFJ5IJ.js.map +0 -1
  557. package/dist/shared/chunk-PXI7AHWS.js +0 -4
  558. package/dist/shared/chunk-PXI7AHWS.js.map +0 -1
  559. package/dist/shared/chunk-Q4H4QEMB.js +0 -4
  560. package/dist/shared/chunk-QGYZ7CG5.js +0 -4
  561. package/dist/shared/chunk-QGYZ7CG5.js.map +0 -1
  562. package/dist/shared/chunk-QWGUMKZC.js +0 -4
  563. package/dist/shared/chunk-QX6OGRRT.js +0 -5
  564. package/dist/shared/chunk-QX6OGRRT.js.map +0 -1
  565. package/dist/shared/chunk-R6ATC4TC.js +0 -4
  566. package/dist/shared/chunk-R6ATC4TC.js.map +0 -1
  567. package/dist/shared/chunk-RDZK73KV.js +0 -4
  568. package/dist/shared/chunk-RJYZ5FAR.js +0 -4
  569. package/dist/shared/chunk-SQ5T4AT5.js +0 -6
  570. package/dist/shared/chunk-SQ5T4AT5.js.map +0 -1
  571. package/dist/shared/chunk-SWLUQVK7.js +0 -4
  572. package/dist/shared/chunk-SXHDQ64Z.js +0 -5
  573. package/dist/shared/chunk-SXHDQ64Z.js.map +0 -1
  574. package/dist/shared/chunk-SY6DZLTC.js +0 -4
  575. package/dist/shared/chunk-SY6DZLTC.js.map +0 -1
  576. package/dist/shared/chunk-VEDQV5XO.js +0 -4
  577. package/dist/shared/chunk-W33JMRRN.js +0 -4
  578. package/dist/shared/chunk-WBZW5LVH.js +0 -4
  579. package/dist/shared/chunk-WBZW5LVH.js.map +0 -1
  580. package/dist/shared/chunk-WHTPGWUV.js +0 -4
  581. package/dist/shared/chunk-WYVJE6J5.js +0 -4
  582. package/dist/shared/chunk-WYVJE6J5.js.map +0 -1
  583. package/dist/shared/chunk-ZA3GAB4H.js +0 -9
  584. package/dist/shared/chunk-ZFCUSWMT.js +0 -4
  585. package/dist/shared/chunk-ZQPXQCY2.js +0 -4
  586. package/dist/shared/chunk-ZQPXQCY2.js.map +0 -1
  587. package/dist/shared/chunk-ZTZJHY4E.js +0 -4
  588. package/src/shared/bricks/props/enum.ts +0 -38
  589. /package/dist/shared/bricks/{props/enum.js.map → manifests/_types.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/hero.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { textContentRef } from \"../props/text\";\nimport { BsAlphabetUppercase } from \"react-icons/bs\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { shadowRef, textShadowRef } from \"../props/effects\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { alignItemsRef, justifyContentRef } from \"../props/align\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"hero\",\n category: \"basic\",\n name: \"Hero\",\n description: \"A big textual element for home pages.\",\n aiInstructions: `PURPOSE\nA prominent textual block (main heading + optional tagline) used to introduce a page, product, event, company, or dynamic entity.\n\nSTRUCTURE\n1. Always supply 'content' (can be plain text or simple HTML like <h1>, <strong>, <br/>).\n2. 'tagline' is optional. Prefer concise value (1 short sentence). Omit if not needed.\n3. Do NOT add buttons, images, forms, lists, or unrelated HTML here (use dedicated bricks for that).\n\nCOLOR & BACKGROUND\n• Prefer omitting colorPreset so the hero inherits its parent layout background.\n• When you need emphasis use semantic presets: primary-, secondary-, accent-, neutral-, base-*** or gradient variants like primary-gradient-400 (then add gradientDirection).\n• NEVER invent tokens like success-, warning-, danger-, blue-, orange- (they don't exist). Map them to semantic sets (e.g. success -> secondary, warning -> accent, danger -> accent or primary, blue -> primary, orange -> accent).\n\nLAYOUT & SPACING\n• Use padding suited to visual weight: landing hero: 5–8rem desktop; simple page intro: 2–4rem.\n• You may provide a mobile override via mobileProps (e.g. smaller padding such as 2rem).\n• Keep justifyContent + alignItems consistent (usually center/center or start/start). Avoid mixing center with start.\n\nTYPOGRAPHY\n• 'content' should typically render ONE main heading concept (avoid stacking multiple unrelated headings). Use <br/> to split lines when stylistic.\n• Avoid overly long taglines (>140 chars).\n\nDYNAMIC DATA\n• You may interpolate page queries fields fields: {{company.name}}, {{product.name}}, etc.\n• Ensure dynamic tokens exist in the referenced query context. Don't fabricate field names.\n\nRESPONSIVE\n• Use mobileProps only for necessary reductions (padding, alignment). Do not duplicate unchanged properties.\n\nDON'TS\n✗ Don't add properties that are not in the schema.\n✗ Don't wrap everything with extraneous HTML containers.\n✗ Don't use colorPreset plus a conflicting parent background rationale—choose one.\n\nDO\n✓ Keep content focused.\n✓ Use semantic colors thoughtfully.\n✓ Use gradientDirection ONLY with gradient presets.\n✓ Provide accessible plain text when not using HTML tags.\n`,\n icon: BsAlphabetUppercase,\n\n defaultWidth: { desktop: \"60dvw\", mobile: \"auto\" },\n\n // Force the wrapper direction to be the same as the text direction\n staticClasses: \"flex-col\",\n\n props: defineProps({\n content: textContentRef({\n title: \"Hero title\",\n default: \"<h1 style='text-align:center'>Lorem Ipsum<br />dolor sit amet</h1>\",\n }),\n tagline: Type.Optional(\n textContentRef({\n title: \"Hero tagline\",\n // default: \"<p style='text-align:center'>Use our platform to build your business with confidence.</p>\",\n }),\n ),\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n\n textShadow: Type.Optional(\n textShadowRef({\n default: \"text-shadow-sm\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"6rem\",\n description: \"Padding inside the hero.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n shadow: Type.Optional(shadowRef()),\n justifyContent: Type.Optional(\n justifyContentRef({\n default: \"justify-center\",\n }),\n ),\n alignItems: Type.Optional(\n alignItemsRef({\n default: \"items-center\",\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Simple welcome hero with primary background\",\n type: \"hero\",\n props: {\n content: \"Welcome to Our Platform\",\n tagline: \"The future of productivity starts here\",\n padding: \"3rem\",\n colorPreset: {\n color: \"primary-400\",\n },\n },\n },\n {\n description: \"Startup hero with primary gradient background to bottom-right\",\n type: \"hero\",\n props: {\n content: \"Build Something Amazing\",\n tagline: \"Turn your ideas into reality with our cutting-edge tools\",\n padding: \"3rem\",\n colorPreset: {\n color: \"primary-500\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n },\n },\n {\n description: \"Construction company hero with bold presence\",\n type: \"hero\",\n props: {\n content: \"Building Tomorrow Today\",\n tagline: \"Quality construction services for residential and commercial projects\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Fashion brand hero with modern appeal\",\n type: \"hero\",\n props: {\n content: \"Express Your Style\",\n tagline: \"Contemporary fashion that speaks to your individuality\",\n padding: \"6rem\",\n },\n },\n {\n description: \"Law firm hero with authoritative tone\",\n type: \"hero\",\n props: {\n content: \"Justice You Can Trust\",\n tagline: \"Experienced legal representation for individuals and businesses\",\n padding: \"6rem\",\n colorPreset: {\n color: \"neutral-800\",\n },\n },\n },\n {\n description: \"Photography studio hero with artistic flair\",\n type: \"hero\",\n props: {\n content: \"Capturing Life's Moments\",\n tagline: \"Professional photography services for weddings, portraits, and events\",\n },\n },\n {\n description: \"Restaurant hero with warm colors and rounded design (accent mapping for former 'orange')\",\n type: \"hero\",\n props: {\n content: \"Authentic Italian Cuisine\",\n tagline: \"Fresh ingredients, traditional recipes, unforgettable flavors\",\n padding: \"4rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n {\n description:\n \"Tech company hero with secondary gradient (mapped from former 'success') and modern styling\",\n type: \"hero\",\n props: {\n content: \"Innovation Redefined\",\n tagline: \"Pushing the boundaries of what's possible with AI technology\",\n padding: \"5rem\",\n colorPreset: {\n color: \"secondary-gradient-400\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n textShadow: \"text-shadow-lg\",\n border: {\n width: \"border-2\",\n color: \"border-success-300\",\n },\n },\n },\n {\n description: \"Medical practice hero with trust-inspiring design (primary mapping for former 'blue')\",\n type: \"hero\",\n props: {\n content: \"Your Health, Our Priority\",\n tagline: \"Comprehensive healthcare services with compassionate care\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-500\",\n },\n rounding: \"rounded-lg\",\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description:\n \"Creative agency hero with accent gradient (mapped from former 'warning') and diagonal gradient\",\n type: \"hero\",\n props: {\n content: \"Creative Solutions\",\n tagline: \"Bold designs that make your brand unforgettable\",\n padding: \"3rem\",\n colorPreset: {\n color: \"accent-gradient-300\",\n gradientDirection: \"bg-gradient-to-tl\",\n },\n shadow: \"shadow-xl\",\n border: {\n width: \"border\",\n color: \"border-warning-200\",\n },\n },\n },\n {\n description: \"Fitness studio hero with accent strong presence (mapping former 'danger')\",\n type: \"hero\",\n props: {\n content: \"Transform Your Body\",\n tagline: \"High-intensity training programs that deliver real results\",\n padding: \"5rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n textShadow: \"text-shadow-md\",\n rounding: \"rounded-2xl\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n },\n {\n description: \"Minimalist hero with neutral tones and subtle effects\",\n type: \"hero\",\n props: {\n content: \"Simplicity Perfected\",\n tagline: \"Clean design solutions for modern businesses\",\n padding: \"8rem\",\n colorPreset: {\n color: \"neutral-100\",\n },\n shadow: \"shadow-sm\",\n border: {\n width: \"border\",\n color: \"border-neutral-300\",\n },\n rounding: \"rounded-md\",\n },\n },\n {\n description: \"Inverted dark hero using neutral-800 background and left alignment\",\n type: \"hero\",\n props: {\n content: \"Experience Powerful Automation\",\n tagline: \"Scale operations with intelligent workflows\",\n padding: \"5rem\",\n colorPreset: { color: \"neutral-800\" },\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n textShadow: \"text-shadow-sm\",\n },\n },\n {\n description: \"Compact hero without tagline (no colorPreset to inherit parent)\",\n type: \"hero\",\n props: {\n content: \"Documentation\",\n padding: \"2rem\",\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description: \"Responsive hero with large desktop padding and reduced mobile padding\",\n type: \"hero\",\n props: {\n content: \"All-In-One Platform\",\n tagline: \"Design • Launch • Grow\",\n padding: \"8rem\",\n colorPreset: { color: \"primary-gradient-500\", gradientDirection: \"bg-gradient-to-br\" },\n },\n mobileProps: {\n content: \"All-In-One Platform\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Hero using dynamic product dataset with gradient emphasis\",\n type: \"hero\",\n props: {\n content: \"Introducing {{product.name}}\",\n tagline: \"{{product.shortTagline}}\",\n padding: \"5rem\",\n colorPreset: { color: \"accent-gradient-400\", gradientDirection: \"bg-gradient-to-r\" },\n textShadow: \"text-shadow-md\",\n },\n },\n {\n description: \"Dynamic company hero using business query data\",\n type: \"hero\",\n props: {\n content: \"Welcome to {{company.name}}\",\n tagline: \"{{company.tagline}} - Serving {{company.location}} since {{company.foundedYear}}\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-500\",\n },\n },\n },\n {\n description: \"Dynamic employee spotlight using employee query\",\n type: \"hero\",\n props: {\n content: \"Meet {{employee.fullName}}\",\n tagline:\n \"{{employee.position}} at {{employee.department}} - {{employee.yearsExperience}} years of experience\",\n padding: \"3rem\",\n colorPreset: {\n color: \"secondary-400\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n },\n },\n {\n description: \"Dynamic product launch hero using product query\",\n type: \"hero\",\n props: {\n content: \"Introducing {{product.name}}\",\n tagline: \"{{product.description}} - Starting at ${{product.price}}\",\n padding: \"5rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n shadow: \"shadow-lg\",\n rounding: \"rounded-xl\",\n },\n },\n {\n description: \"Dynamic event announcement using event query\",\n type: \"hero\",\n props: {\n content: \"{{event.title}}\",\n tagline: \"Join us on {{event.date}} at {{event.venue}} - {{event.city}}\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-400\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n textShadow: \"text-shadow-md\",\n },\n },\n {\n description: \"Dynamic blog post hero using article query\",\n type: \"hero\",\n props: {\n content: \"{{article.title}}\",\n tagline: \"By {{article.author}} • Published {{article.publishDate}} • {{article.readTime}} min read\",\n padding: \"3rem\",\n colorPreset: {\n color: \"neutral-700\",\n },\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description: \"Dynamic service promotion using service query\",\n type: \"hero\",\n props: {\n content: \"{{service.name}}\",\n tagline: \"{{service.description}} - {{service.duration}} • Starting at ${{service.price}}\",\n padding: \"6rem\",\n colorPreset: {\n color: \"secondary-500\",\n gradientDirection: \"bg-gradient-to-tl\",\n },\n border: {\n width: \"border-2\",\n color: \"border-secondary-300\",\n },\n },\n },\n {\n description: \"Dynamic property showcase using property query\",\n type: \"hero\",\n props: {\n content: \"{{property.address}}\",\n tagline:\n \"${{property.price}} • {{property.bedrooms}} bed, {{property.bathrooms}} bath • {{property.squareFootage}} sq ft\",\n padding: \"4rem\",\n colorPreset: {\n color: \"accent-500\",\n },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic course announcement using course query\",\n type: \"hero\",\n props: {\n content: \"{{course.title}}\",\n tagline:\n \"Learn {{course.subject}} with {{course.instructor}} • {{course.duration}} • {{course.skillLevel}} level\",\n padding: \"5rem\",\n colorPreset: {\n color: \"primary-600\",\n },\n textShadow: \"text-shadow-lg\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -0,0 +1,419 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+ import {
4
+ datetime
5
+ } from "./chunk-WKN566LN.js";
6
+ import {
7
+ manifest
8
+ } from "./chunk-LTIJI7Y3.js";
9
+ import {
10
+ manifest as manifest2
11
+ } from "./chunk-36PLZKMW.js";
12
+ import {
13
+ boolean
14
+ } from "./chunk-KNREHAPN.js";
15
+ import {
16
+ getSchemaDefaults
17
+ } from "./chunk-HTUSL2U7.js";
18
+ import {
19
+ querySchema,
20
+ queryUseRef,
21
+ toLLMSchema
22
+ } from "./chunk-IQIISR22.js";
23
+ import {
24
+ string
25
+ } from "./chunk-N3ZTQD5I.js";
26
+ import {
27
+ imageRef
28
+ } from "./chunk-W6MRYRGJ.js";
29
+ import {
30
+ colorPresetRef
31
+ } from "./chunk-TFGGYU6Y.js";
32
+ import {
33
+ backgroundRef
34
+ } from "./chunk-RV7AYVFV.js";
35
+ import {
36
+ StringEnum
37
+ } from "./chunk-JK2FWFJU.js";
38
+
39
+ // src/shared/attributes.ts
40
+ import { Type } from "@sinclair/typebox";
41
+ var pageAttributesSchema = Type.Object(
42
+ {
43
+ backgroundImage: Type.Optional(backgroundRef()),
44
+ colorPreset: Type.Optional(
45
+ colorPresetRef({
46
+ examples: [
47
+ { color: "base-100" },
48
+ { color: "primary-500" },
49
+ { color: "accent-100", gradientDirection: "bg-gradient-to-r" }
50
+ ]
51
+ })
52
+ ),
53
+ tags: Type.Optional(
54
+ Type.Array(Type.String({ description: "A tag for the page. Should be url-safe." }), {
55
+ title: "Tags",
56
+ description: "Use tags to organize, group and filter pages in navigation elements and in the dashboard. By default, the navbar element display pages having the 'navbar' tag, while the sidebar displays the pages with the tag 'sidebar'.",
57
+ "ui:field": "tags",
58
+ examples: [
59
+ ["navbar", "important"],
60
+ ["navbar", "sidebar"],
61
+ ["sidebar"],
62
+ ["campaign-landing-20250610"]
63
+ ],
64
+ maxItems: 8
65
+ })
66
+ ),
67
+ path: string("URL path", {
68
+ default: "/",
69
+ description: "The URL path of the page. Use placeholders like :id or :slug for dynamic paths.",
70
+ "ai:instructions": "Never put language codes in the path.",
71
+ "ui:field": "path",
72
+ pattern: "^/[a-z0-9-:/]*$",
73
+ examples: ["/", "/about", "/products/:id"]
74
+ }),
75
+ queries: Type.Optional(
76
+ Type.Array(queryUseRef(), {
77
+ title: "Page Queries",
78
+ description: "List of queries to use in this page. All listed queries will be executed when the page loads.",
79
+ "ai:instructions": "Reference Query IDs to use at the page level.",
80
+ "ui:field": "page-queries",
81
+ maxItems: 5
82
+ })
83
+ ),
84
+ title: string("Title", {
85
+ default: "Untitled",
86
+ "ui:group": "meta",
87
+ "ui:group:title": "Meta tags",
88
+ description: "The title of the page. Appears in the browser tab and search results",
89
+ "ui:placeholder": "Page title"
90
+ }),
91
+ description: string("Description", {
92
+ "ui:widget": "textarea",
93
+ "ui:group": "meta",
94
+ "ui:group:title": "Meta tags",
95
+ description: "A short description of the page. Used by search engines",
96
+ "ui:multiline": true,
97
+ "ui:textarea-class": "h-24",
98
+ default: "",
99
+ "ui:placeholder": "A brief description of the page"
100
+ }),
101
+ keywords: string("Keywords", {
102
+ "ui:group": "meta",
103
+ "ui:group:title": "Meta tags",
104
+ description: "Keywords related to the page. Used by search engines",
105
+ "ui:multiline": true,
106
+ default: "",
107
+ "ui:placeholder": "keyword1, keyword2, keyword3"
108
+ }),
109
+ ogImage: Type.Optional(
110
+ imageRef({
111
+ title: "Social share image",
112
+ description: "Image shown when this page is shared on social media",
113
+ "ui:group": "meta",
114
+ "ai:hidden": true,
115
+ "ui:no-object-options": true,
116
+ "ui:no-alt-text": true,
117
+ "ui:show-img-search": false,
118
+ "ui:no-dynamic": true,
119
+ "ui:placeholder": "https://example.com/image.jpg"
120
+ })
121
+ ),
122
+ robotsIndexing: Type.Optional(
123
+ boolean("Allow search engines to index this page", true, {
124
+ description: "Disabling this will prevent search engines from indexing this page",
125
+ "ai:hidden": true,
126
+ "ui:group": "meta"
127
+ })
128
+ ),
129
+ language: Type.Optional(
130
+ StringEnum(
131
+ [
132
+ "ar",
133
+ "zh",
134
+ "cs",
135
+ "nl",
136
+ "en",
137
+ "fr",
138
+ "de",
139
+ "he",
140
+ "hi",
141
+ "it",
142
+ "ja",
143
+ "ko",
144
+ "fa",
145
+ "pl",
146
+ "pt",
147
+ "ru",
148
+ "es",
149
+ "tr",
150
+ "vi"
151
+ ],
152
+ {
153
+ "ai:hidden": true,
154
+ "ui:group": "meta",
155
+ title: "Language",
156
+ default: "en",
157
+ description: "Overrides the site language for this page. Leave blank to use the site default language.",
158
+ enumNames: [
159
+ "Arabic",
160
+ "Chinese",
161
+ "Czech",
162
+ "Dutch",
163
+ "English",
164
+ "French",
165
+ "German",
166
+ "Hebrew",
167
+ "Hindi",
168
+ "Italian",
169
+ "Japanese",
170
+ "Korean",
171
+ "Persian",
172
+ "Polish",
173
+ "Portuguese",
174
+ "Russian",
175
+ "Spanish",
176
+ "Turkish",
177
+ "Vietnamese"
178
+ ]
179
+ }
180
+ )
181
+ ),
182
+ additionalTags: Type.Optional(
183
+ Type.Object(
184
+ {
185
+ headTags: Type.Optional(
186
+ Type.String({
187
+ title: "Head script tags",
188
+ description: "Add custom tags to the <head> of your site. Useful for analytics tags, custom scripts, etc.",
189
+ "ai:instructions": "Don't include meta tags here, they are automatically generated.",
190
+ "ui:multiline": true,
191
+ "ui:textarea-class": "h-40 !font-mono",
192
+ "ui:placeholder": "<script src='https://example.com/script.js'></script>",
193
+ "ui:premium": true,
194
+ "ui:textarea-font-size": "1",
195
+ "ui:no-dynamic": true
196
+ })
197
+ ),
198
+ bodyTags: Type.Optional(
199
+ Type.String({
200
+ title: "Body script tags",
201
+ description: "Add custom tags to the <body> of your site. Useful for analytics tags, custom scripts, etc.",
202
+ "ui:multiline": true,
203
+ "ui:premium": true,
204
+ "ui:textarea-class": "h-40 !font-mono",
205
+ "ui:textarea-font-size": "1",
206
+ "ui:placeholder": "<script src='https://example.com/script.js'></script>",
207
+ "ui:no-dynamic": true
208
+ })
209
+ )
210
+ },
211
+ { "ui:group": "meta" }
212
+ )
213
+ ),
214
+ noNavbar: Type.Optional(boolean("Hide navbar", false, { "ui:group": "layout" })),
215
+ noFooter: Type.Optional(boolean("Hide footer", false, { "ui:group": "layout" })),
216
+ lastUpdated: Type.Optional(
217
+ datetime("Last updated", {
218
+ "ui:hidden": true,
219
+ "ai:hidden": true
220
+ })
221
+ )
222
+ },
223
+ {
224
+ "ui:groups": {
225
+ meta: "SEO & Meta tags",
226
+ layout: "Layout"
227
+ }
228
+ }
229
+ );
230
+ var pageQueriesSchema = Type.Array(queryUseRef(), {
231
+ title: "Page Queries",
232
+ description: `List of page queries in use in this page. All listed queries will be executed when the page loads. Aliases must be unique and camelCase'd.
233
+ The queryId must reference an existing site query ID.`,
234
+ examples: [
235
+ { queryId: "get-latest-posts", alias: "latestPosts" },
236
+ {
237
+ queryId: "get-user-profile",
238
+ alias: "userProfile",
239
+ params: [{ field: "userId", op: "eq", value: ":slug" }]
240
+ },
241
+ {
242
+ queryId: "list-featured-products",
243
+ alias: "featuredProducts"
244
+ },
245
+ {
246
+ queryId: "get-event-by-slug",
247
+ alias: "eventBySlug",
248
+ params: [{ field: "$slug", op: "eq", value: ":slug" }]
249
+ }
250
+ ]
251
+ });
252
+ var siteAttributesSchema = Type.Object(
253
+ {
254
+ language: StringEnum(
255
+ [
256
+ "ar",
257
+ "zh",
258
+ "cs",
259
+ "nl",
260
+ "en",
261
+ "fr",
262
+ "de",
263
+ "he",
264
+ "hi",
265
+ "it",
266
+ "ja",
267
+ "ko",
268
+ "fa",
269
+ "pl",
270
+ "pt",
271
+ "ru",
272
+ "es",
273
+ "tr",
274
+ "vi"
275
+ ],
276
+ {
277
+ title: "Site language",
278
+ default: "en",
279
+ enumNames: [
280
+ "Arabic",
281
+ "Chinese",
282
+ "Czech",
283
+ "Dutch",
284
+ "English",
285
+ "French",
286
+ "German",
287
+ "Hebrew",
288
+ "Hindi",
289
+ "Italian",
290
+ "Japanese",
291
+ "Korean",
292
+ "Persian",
293
+ "Polish",
294
+ "Portuguese",
295
+ "Russian",
296
+ "Spanish",
297
+ "Turkish",
298
+ "Vietnamese"
299
+ ],
300
+ "ai:instructions": "Choose a value based on the site description. If the site is in multiple languages, use 'en'."
301
+ }
302
+ ),
303
+ backgroundImage: Type.Optional(backgroundRef()),
304
+ colorPreset: Type.Optional(
305
+ colorPresetRef({
306
+ examples: [
307
+ { color: "base-100" },
308
+ { color: "primary-500" },
309
+ { color: "secondary-400" },
310
+ { color: "neutral-400" },
311
+ { color: "accent-200-gradient", gradientDirection: "bg-gradient-to-r" },
312
+ { color: "neutral-800-gradient", gradientDirection: "bg-gradient-to-t" }
313
+ ]
314
+ })
315
+ ),
316
+ queries: Type.Optional(
317
+ Type.Array(querySchema, {
318
+ title: "Site Queries",
319
+ "ui:field": "site-queries",
320
+ description: "List of all queries available in this site. These can be used in any page.",
321
+ "ai:instructions": "This is where queries are first defined. They are then referenced in pages attributes (in the 'queries' field) to use them."
322
+ })
323
+ ),
324
+ navbar: Type.Optional(
325
+ Type.Composite([manifest.props], {
326
+ title: "Navbar",
327
+ "ui:group": "navbar"
328
+ })
329
+ ),
330
+ footer: Type.Optional(
331
+ Type.Composite([manifest2.props], {
332
+ title: "Footer",
333
+ "ui:group": "footer"
334
+ // "ui:hidden": true, // Hidden in attributes panel. Users will have to click the brick to configure it, even if the configuration applies globally, so they have the same editing experience
335
+ })
336
+ ),
337
+ ogImage: Type.Optional(
338
+ imageRef({
339
+ title: "Social share image",
340
+ description: "Image shown when this site is shared on social media",
341
+ "ai:hidden": true,
342
+ "ui:group": "meta",
343
+ "ui:no-object-options": true,
344
+ "ui:no-alt-text": true,
345
+ "ui:show-img-search": false,
346
+ "ui:no-dynamic": true
347
+ })
348
+ ),
349
+ robotsIndexing: Type.Optional(
350
+ boolean("Allow search engines to index this site", true, {
351
+ description: "Disabling this will prevent search engines from indexing this site entirely",
352
+ "ai:hidden": true,
353
+ "ui:group": "meta"
354
+ })
355
+ ),
356
+ headTags: Type.Optional(
357
+ Type.String({
358
+ title: "Head script tags",
359
+ description: "Add custom tags to the <head> of your site. Useful for analytics tags, custom scripts, etc.",
360
+ "ai:hidden": true,
361
+ "ui:multiline": true,
362
+ "ui:textarea-class": "h-40 !font-mono",
363
+ "ui:placeholder": "<script src='https://example.com/script.js'></script>",
364
+ "ui:premium": true,
365
+ "ui:textarea-font-size": "1",
366
+ "ui:group": "external",
367
+ "ui:no-dynamic": true
368
+ })
369
+ ),
370
+ bodyTags: Type.Optional(
371
+ Type.String({
372
+ title: "Body script tags",
373
+ description: "Add custom tags to the <body> of your site. Useful for analytics tags, custom scripts, etc.",
374
+ "ai:hidden": true,
375
+ "ui:multiline": true,
376
+ "ui:premium": true,
377
+ "ui:textarea-class": "h-40 !font-mono",
378
+ "ui:textarea-font-size": "1",
379
+ "ui:placeholder": "<script src='https://example.com/script.js'></script>",
380
+ "ui:group": "external",
381
+ "ui:no-dynamic": true
382
+ })
383
+ )
384
+ },
385
+ {
386
+ "ui:groups": {
387
+ meta: "SEO & Meta tags",
388
+ layout: "Layout",
389
+ navbar: "Navbar",
390
+ footer: "Footer",
391
+ external: "External scripts"
392
+ }
393
+ }
394
+ );
395
+ var siteAttributesNoQueriesSchema = Type.Omit(siteAttributesSchema, ["queries"]);
396
+ var pageAttributesNoQueriesSchema = Type.Omit(pageAttributesSchema, ["queries"]);
397
+ var siteQueriesSchema = Type.Array(querySchema);
398
+ var siteQueriesSchemaLLM = toLLMSchema(siteQueriesSchema);
399
+ function resolvePageAttributes(data = {}) {
400
+ const defaultAttrValues = getSchemaDefaults(pageAttributesSchema);
401
+ return { ...defaultAttrValues, ...data };
402
+ }
403
+ function resolveSiteAttributes(data = {}) {
404
+ const defaultAttrValues = getSchemaDefaults(siteAttributesSchema);
405
+ return { ...defaultAttrValues, ...data };
406
+ }
407
+
408
+ export {
409
+ pageAttributesSchema,
410
+ pageQueriesSchema,
411
+ siteAttributesSchema,
412
+ siteAttributesNoQueriesSchema,
413
+ pageAttributesNoQueriesSchema,
414
+ siteQueriesSchema,
415
+ siteQueriesSchemaLLM,
416
+ resolvePageAttributes,
417
+ resolveSiteAttributes
418
+ };
419
+ //# sourceMappingURL=chunk-UXTASZ23.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/attributes.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport type { JSONSchemaType } from \"ajv\";\nimport { getSchemaDefaults } from \"../shared/utils/schema\";\nimport { manifest as navbarManifest } from \"./bricks/manifests/navbar.manifest\";\nimport { manifest as footerManifest } from \"./bricks/manifests/footer.manifest\";\nimport { string } from \"./bricks/props/string\";\nimport { boolean } from \"./bricks/props/boolean\";\nimport { datetime } from \"./bricks/props/date\";\nimport { imageRef } from \"./bricks/props/image\";\nimport { colorPresetRef } from \"./bricks/props/color-preset\";\nimport { queryUseRef, type QueryUseSettings } from \"./bricks/props/dynamic\";\nimport { querySchema } from \"./datasources/types\";\nimport { StringEnum } from \"./utils/string-enum\";\nimport { backgroundRef } from \"./bricks/props/background\";\nimport { toLLMSchema } from \"./utils/llm\";\n\nexport type { JSONSchemaType };\n\n// Default attributes\nexport const pageAttributesSchema = Type.Object(\n {\n backgroundImage: Type.Optional(backgroundRef()),\n colorPreset: Type.Optional(\n colorPresetRef({\n examples: [\n { color: \"base-100\" },\n { color: \"primary-500\" },\n { color: \"accent-100\", gradientDirection: \"bg-gradient-to-r\" },\n ],\n }),\n ),\n tags: Type.Optional(\n Type.Array(Type.String({ description: \"A tag for the page. Should be url-safe.\" }), {\n title: \"Tags\",\n description:\n \"Use tags to organize, group and filter pages in navigation elements and in the dashboard. By default, the navbar element display pages having the 'navbar' tag, while the sidebar displays the pages with the tag 'sidebar'.\",\n \"ui:field\": \"tags\",\n examples: [\n [\"navbar\", \"important\"],\n [\"navbar\", \"sidebar\"],\n [\"sidebar\"],\n [\"campaign-landing-20250610\"],\n ],\n maxItems: 8,\n }),\n ),\n path: string(\"URL path\", {\n default: \"/\",\n description: \"The URL path of the page. Use placeholders like :id or :slug for dynamic paths.\",\n \"ai:instructions\": \"Never put language codes in the path.\",\n \"ui:field\": \"path\",\n pattern: \"^/[a-z0-9-:/]*$\",\n examples: [\"/\", \"/about\", \"/products/:id\"],\n }),\n queries: Type.Optional(\n Type.Array(queryUseRef(), {\n title: \"Page Queries\",\n description:\n \"List of queries to use in this page. All listed queries will be executed when the page loads.\",\n \"ai:instructions\": \"Reference Query IDs to use at the page level.\",\n \"ui:field\": \"page-queries\",\n maxItems: 5,\n }),\n ),\n title: string(\"Title\", {\n default: \"Untitled\",\n \"ui:group\": \"meta\",\n \"ui:group:title\": \"Meta tags\",\n description: \"The title of the page. Appears in the browser tab and search results\",\n \"ui:placeholder\": \"Page title\",\n }),\n description: string(\"Description\", {\n \"ui:widget\": \"textarea\",\n \"ui:group\": \"meta\",\n \"ui:group:title\": \"Meta tags\",\n description: \"A short description of the page. Used by search engines\",\n \"ui:multiline\": true,\n \"ui:textarea-class\": \"h-24\",\n default: \"\",\n \"ui:placeholder\": \"A brief description of the page\",\n }),\n keywords: string(\"Keywords\", {\n \"ui:group\": \"meta\",\n \"ui:group:title\": \"Meta tags\",\n description: \"Keywords related to the page. Used by search engines\",\n \"ui:multiline\": true,\n default: \"\",\n \"ui:placeholder\": \"keyword1, keyword2, keyword3\",\n }),\n\n ogImage: Type.Optional(\n imageRef({\n title: \"Social share image\",\n description: \"Image shown when this page is shared on social media\",\n \"ui:group\": \"meta\",\n \"ai:hidden\": true,\n \"ui:no-object-options\": true,\n \"ui:no-alt-text\": true,\n \"ui:show-img-search\": false,\n \"ui:no-dynamic\": true,\n \"ui:placeholder\": \"https://example.com/image.jpg\",\n }),\n ),\n robotsIndexing: Type.Optional(\n boolean(\"Allow search engines to index this page\", true, {\n description: \"Disabling this will prevent search engines from indexing this page\",\n \"ai:hidden\": true,\n \"ui:group\": \"meta\",\n }),\n ),\n language: Type.Optional(\n StringEnum(\n [\n \"ar\",\n \"zh\",\n \"cs\",\n \"nl\",\n \"en\",\n \"fr\",\n \"de\",\n \"he\",\n \"hi\",\n \"it\",\n \"ja\",\n \"ko\",\n \"fa\",\n \"pl\",\n \"pt\",\n \"ru\",\n \"es\",\n \"tr\",\n \"vi\",\n ],\n {\n \"ai:hidden\": true,\n \"ui:group\": \"meta\",\n title: \"Language\",\n default: \"en\",\n description:\n \"Overrides the site language for this page. Leave blank to use the site default language.\",\n enumNames: [\n \"Arabic\",\n \"Chinese\",\n \"Czech\",\n \"Dutch\",\n \"English\",\n \"French\",\n \"German\",\n \"Hebrew\",\n \"Hindi\",\n \"Italian\",\n \"Japanese\",\n \"Korean\",\n \"Persian\",\n \"Polish\",\n \"Portuguese\",\n \"Russian\",\n \"Spanish\",\n \"Turkish\",\n \"Vietnamese\",\n ],\n },\n ),\n ),\n additionalTags: Type.Optional(\n Type.Object(\n {\n headTags: Type.Optional(\n Type.String({\n title: \"Head script tags\",\n description:\n \"Add custom tags to the <head> of your site. Useful for analytics tags, custom scripts, etc.\",\n \"ai:instructions\": \"Don't include meta tags here, they are automatically generated.\",\n \"ui:multiline\": true,\n \"ui:textarea-class\": \"h-40 !font-mono\",\n \"ui:placeholder\": \"<script src='https://example.com/script.js'></script>\",\n \"ui:premium\": true,\n \"ui:textarea-font-size\": \"1\",\n \"ui:no-dynamic\": true,\n }),\n ),\n bodyTags: Type.Optional(\n Type.String({\n title: \"Body script tags\",\n description:\n \"Add custom tags to the <body> of your site. Useful for analytics tags, custom scripts, etc.\",\n \"ui:multiline\": true,\n \"ui:premium\": true,\n \"ui:textarea-class\": \"h-40 !font-mono\",\n \"ui:textarea-font-size\": \"1\",\n \"ui:placeholder\": \"<script src='https://example.com/script.js'></script>\",\n \"ui:no-dynamic\": true,\n }),\n ),\n },\n { \"ui:group\": \"meta\" },\n ),\n ),\n\n noNavbar: Type.Optional(boolean(\"Hide navbar\", false, { \"ui:group\": \"layout\" })),\n noFooter: Type.Optional(boolean(\"Hide footer\", false, { \"ui:group\": \"layout\" })),\n lastUpdated: Type.Optional(\n datetime(\"Last updated\", {\n \"ui:hidden\": true,\n \"ai:hidden\": true,\n }),\n ),\n },\n {\n \"ui:groups\": {\n meta: \"SEO & Meta tags\",\n layout: \"Layout\",\n },\n },\n);\n\nexport const pageQueriesSchema = Type.Array(queryUseRef(), {\n title: \"Page Queries\",\n description: `List of page queries in use in this page. All listed queries will be executed when the page loads. Aliases must be unique and camelCase'd.\nThe queryId must reference an existing site query ID.`,\n examples: [\n { queryId: \"get-latest-posts\", alias: \"latestPosts\" },\n {\n queryId: \"get-user-profile\",\n alias: \"userProfile\",\n params: [{ field: \"userId\", op: \"eq\", value: \":slug\" }],\n },\n {\n queryId: \"list-featured-products\",\n alias: \"featuredProducts\",\n },\n {\n queryId: \"get-event-by-slug\",\n alias: \"eventBySlug\",\n params: [{ field: \"$slug\", op: \"eq\", value: \":slug\" }],\n },\n ] satisfies QueryUseSettings[],\n});\n\nexport const siteAttributesSchema = Type.Object(\n {\n language: StringEnum(\n [\n \"ar\",\n \"zh\",\n \"cs\",\n \"nl\",\n \"en\",\n \"fr\",\n \"de\",\n \"he\",\n \"hi\",\n \"it\",\n \"ja\",\n \"ko\",\n \"fa\",\n \"pl\",\n \"pt\",\n \"ru\",\n \"es\",\n \"tr\",\n \"vi\",\n ],\n {\n title: \"Site language\",\n default: \"en\",\n enumNames: [\n \"Arabic\",\n \"Chinese\",\n \"Czech\",\n \"Dutch\",\n \"English\",\n \"French\",\n \"German\",\n \"Hebrew\",\n \"Hindi\",\n \"Italian\",\n \"Japanese\",\n \"Korean\",\n \"Persian\",\n \"Polish\",\n \"Portuguese\",\n \"Russian\",\n \"Spanish\",\n \"Turkish\",\n \"Vietnamese\",\n ],\n \"ai:instructions\":\n \"Choose a value based on the site description. If the site is in multiple languages, use 'en'.\",\n },\n ),\n backgroundImage: Type.Optional(backgroundRef()),\n colorPreset: Type.Optional(\n colorPresetRef({\n examples: [\n { color: \"base-100\" },\n { color: \"primary-500\" },\n { color: \"secondary-400\" },\n { color: \"neutral-400\" },\n { color: \"accent-200-gradient\", gradientDirection: \"bg-gradient-to-r\" },\n { color: \"neutral-800-gradient\", gradientDirection: \"bg-gradient-to-t\" },\n ],\n }),\n ),\n queries: Type.Optional(\n Type.Array(querySchema, {\n title: \"Site Queries\",\n \"ui:field\": \"site-queries\",\n description: \"List of all queries available in this site. These can be used in any page.\",\n \"ai:instructions\":\n \"This is where queries are first defined. They are then referenced in pages attributes (in the 'queries' field) to use them.\",\n }),\n ),\n navbar: Type.Optional(\n Type.Composite([navbarManifest.props], {\n title: \"Navbar\",\n \"ui:group\": \"navbar\",\n }),\n ),\n footer: Type.Optional(\n Type.Composite([footerManifest.props], {\n title: \"Footer\",\n \"ui:group\": \"footer\",\n // \"ui:hidden\": true, // Hidden in attributes panel. Users will have to click the brick to configure it, even if the configuration applies globally, so they have the same editing experience\n }),\n ),\n ogImage: Type.Optional(\n imageRef({\n title: \"Social share image\",\n description: \"Image shown when this site is shared on social media\",\n \"ai:hidden\": true,\n \"ui:group\": \"meta\",\n \"ui:no-object-options\": true,\n \"ui:no-alt-text\": true,\n \"ui:show-img-search\": false,\n \"ui:no-dynamic\": true,\n }),\n ),\n robotsIndexing: Type.Optional(\n boolean(\"Allow search engines to index this site\", true, {\n description: \"Disabling this will prevent search engines from indexing this site entirely\",\n \"ai:hidden\": true,\n \"ui:group\": \"meta\",\n }),\n ),\n headTags: Type.Optional(\n Type.String({\n title: \"Head script tags\",\n description:\n \"Add custom tags to the <head> of your site. Useful for analytics tags, custom scripts, etc.\",\n \"ai:hidden\": true,\n \"ui:multiline\": true,\n \"ui:textarea-class\": \"h-40 !font-mono\",\n \"ui:placeholder\": \"<script src='https://example.com/script.js'></script>\",\n \"ui:premium\": true,\n \"ui:textarea-font-size\": \"1\",\n \"ui:group\": \"external\",\n \"ui:no-dynamic\": true,\n }),\n ),\n bodyTags: Type.Optional(\n Type.String({\n title: \"Body script tags\",\n description:\n \"Add custom tags to the <body> of your site. Useful for analytics tags, custom scripts, etc.\",\n \"ai:hidden\": true,\n \"ui:multiline\": true,\n \"ui:premium\": true,\n \"ui:textarea-class\": \"h-40 !font-mono\",\n \"ui:textarea-font-size\": \"1\",\n \"ui:placeholder\": \"<script src='https://example.com/script.js'></script>\",\n \"ui:group\": \"external\",\n \"ui:no-dynamic\": true,\n }),\n ),\n },\n {\n \"ui:groups\": {\n meta: \"SEO & Meta tags\",\n layout: \"Layout\",\n navbar: \"Navbar\",\n footer: \"Footer\",\n external: \"External scripts\",\n },\n },\n);\n\nexport const siteAttributesNoQueriesSchema = Type.Omit(siteAttributesSchema, [\"queries\"]);\nexport const pageAttributesNoQueriesSchema = Type.Omit(pageAttributesSchema, [\"queries\"]);\nexport const siteQueriesSchema = Type.Array(querySchema);\nexport const siteQueriesSchemaLLM = toLLMSchema(siteQueriesSchema);\n\nexport type PageAttributes = Static<typeof pageAttributesSchema>;\nexport type SiteAttributes = Static<typeof siteAttributesSchema>;\nexport type SiteAttributesNoQueries = Static<typeof siteAttributesNoQueriesSchema>;\nexport type PageAttributesNoQueries = Static<typeof pageAttributesNoQueriesSchema>;\n\nexport function resolvePageAttributes(data: Partial<PageAttributes> = {}) {\n const defaultAttrValues = getSchemaDefaults(pageAttributesSchema);\n return { ...defaultAttrValues, ...data } as PageAttributes;\n}\n\nexport function resolveSiteAttributes(data: Partial<SiteAttributes> = {}) {\n const defaultAttrValues = getSchemaDefaults(siteAttributesSchema);\n return { ...defaultAttrValues, ...data } as SiteAttributes;\n}\n"],"mappings":"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","names":["manifest"]}
@@ -0,0 +1,100 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+ import {
4
+ typedRef
5
+ } from "./chunk-A2QPY54H.js";
6
+ import {
7
+ StringEnum
8
+ } from "./chunk-JK2FWFJU.js";
9
+
10
+ // src/shared/bricks/props/image.ts
11
+ import { Type } from "@sinclair/typebox";
12
+ function image(title = "Image", options = {}) {
13
+ const { defaultImageUrl, showImgSearch = false, noObjectOptions = false } = options;
14
+ const schema = Type.Object(
15
+ {
16
+ src: Type.String({
17
+ default: defaultImageUrl,
18
+ title,
19
+ description: "Image URL. Can be a link to an image or a data URI"
20
+ }),
21
+ alt: Type.Optional(
22
+ Type.String({
23
+ title: "Alternate Text",
24
+ description: "Alternative text for the image. Recommended for screen readers and SEO",
25
+ "ui:placeholder": "Your image description"
26
+ })
27
+ ),
28
+ fit: Type.Optional(
29
+ StringEnum(["object-none", "object-contain", "object-cover", "object-fill", "object-scale-down"], {
30
+ enumNames: ["None", "Contain", "Cover", "Fill", "Scale down"],
31
+ title: "Fit",
32
+ description: "How the image should be resized to fit its container",
33
+ default: "object-cover",
34
+ "ui:field": "enum",
35
+ "ui:styleId": "styles:objectFit"
36
+ })
37
+ ),
38
+ position: Type.Optional(
39
+ StringEnum(
40
+ [
41
+ "object-top",
42
+ "object-center",
43
+ "object-bottom",
44
+ "object-left",
45
+ "object-right",
46
+ "object-top-left",
47
+ "object-top-right",
48
+ "object-bottom-left",
49
+ "object-bottom-right"
50
+ ],
51
+ {
52
+ enumNames: [
53
+ "Top",
54
+ "Center",
55
+ "Bottom",
56
+ "Left",
57
+ "Right",
58
+ "Top left",
59
+ "Top right",
60
+ "Bottom left",
61
+ "Bottom right"
62
+ ],
63
+ "ui:styleId": "styles:objectPosition",
64
+ title: "Position",
65
+ description: "The position of the image inside its container",
66
+ "ui:field": "enum"
67
+ }
68
+ )
69
+ )
70
+ },
71
+ {
72
+ // $id: "assets:image",
73
+ title,
74
+ "ui:field": "image",
75
+ "ui:accept": "image/*",
76
+ "ui:show-img-search": showImgSearch,
77
+ "ui:no-object-options": noObjectOptions,
78
+ default: {
79
+ alt: "Image",
80
+ fit: "object-cover",
81
+ position: "object-center"
82
+ },
83
+ // "ui:responsive": "desktop",
84
+ metadata: {
85
+ category: "content"
86
+ },
87
+ ...options
88
+ }
89
+ );
90
+ return schema;
91
+ }
92
+ function imageRef(options = {}) {
93
+ return typedRef("assets:image", options);
94
+ }
95
+
96
+ export {
97
+ image,
98
+ imageRef
99
+ };
100
+ //# sourceMappingURL=chunk-W6MRYRGJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/image.ts"],"sourcesContent":["import { type SchemaOptions, Type, type Static, type ObjectOptions } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\ntype PropImageOptions = {\n defaultImageUrl?: string;\n showImgSearch?: boolean;\n noObjectOptions?: boolean;\n} & ObjectOptions;\n\nexport function image(title = \"Image\", options: PropImageOptions = {}) {\n const { defaultImageUrl, showImgSearch = false, noObjectOptions = false } = options;\n const schema = Type.Object(\n {\n src: Type.String({\n default: defaultImageUrl,\n title,\n description: \"Image URL. Can be a link to an image or a data URI\",\n }),\n alt: Type.Optional(\n Type.String({\n title: \"Alternate Text\",\n description: \"Alternative text for the image. Recommended for screen readers and SEO\",\n \"ui:placeholder\": \"Your image description\",\n }),\n ),\n fit: Type.Optional(\n StringEnum([\"object-none\", \"object-contain\", \"object-cover\", \"object-fill\", \"object-scale-down\"], {\n enumNames: [\"None\", \"Contain\", \"Cover\", \"Fill\", \"Scale down\"],\n title: \"Fit\",\n description: \"How the image should be resized to fit its container\",\n default: \"object-cover\",\n \"ui:field\": \"enum\",\n \"ui:styleId\": \"styles:objectFit\",\n }),\n ),\n position: Type.Optional(\n StringEnum(\n [\n \"object-top\",\n \"object-center\",\n \"object-bottom\",\n \"object-left\",\n \"object-right\",\n \"object-top-left\",\n \"object-top-right\",\n \"object-bottom-left\",\n \"object-bottom-right\",\n ],\n {\n enumNames: [\n \"Top\",\n \"Center\",\n \"Bottom\",\n \"Left\",\n \"Right\",\n \"Top left\",\n \"Top right\",\n \"Bottom left\",\n \"Bottom right\",\n ],\n \"ui:styleId\": \"styles:objectPosition\",\n title: \"Position\",\n description: \"The position of the image inside its container\",\n \"ui:field\": \"enum\",\n },\n ),\n ),\n },\n {\n // $id: \"assets:image\",\n title,\n \"ui:field\": \"image\",\n \"ui:accept\": \"image/*\",\n \"ui:show-img-search\": showImgSearch,\n \"ui:no-object-options\": noObjectOptions,\n default: {\n alt: \"Image\",\n fit: \"object-cover\",\n position: \"object-center\",\n },\n // \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n },\n ...options,\n },\n );\n return schema;\n}\n\nexport function imageRef(options: PropImageOptions & SchemaOptions = {}) {\n return typedRef(\"assets:image\", options);\n}\n\nexport type ImageProps = Static<ReturnType<typeof image>>;\n"],"mappings":";;gFAAA,OAA6B,QAAAA,MAA6C,oBAUnE,SAASC,EAAMC,EAAQ,QAASC,EAA4B,CAAC,EAAG,CACrE,GAAM,CAAE,gBAAAC,EAAiB,cAAAC,EAAgB,GAAO,gBAAAC,EAAkB,EAAM,EAAIH,EA6E5E,OA5EeI,EAAK,OAClB,CACE,IAAKA,EAAK,OAAO,CACf,QAASH,EACT,MAAAF,EACA,YAAa,oDACf,CAAC,EACD,IAAKK,EAAK,SACRA,EAAK,OAAO,CACV,MAAO,iBACP,YAAa,yEACb,iBAAkB,wBACpB,CAAC,CACH,EACA,IAAKA,EAAK,SACRC,EAAW,CAAC,cAAe,iBAAkB,eAAgB,cAAe,mBAAmB,EAAG,CAChG,UAAW,CAAC,OAAQ,UAAW,QAAS,OAAQ,YAAY,EAC5D,MAAO,MACP,YAAa,uDACb,QAAS,eACT,WAAY,OACZ,aAAc,kBAChB,CAAC,CACH,EACA,SAAUD,EAAK,SACbC,EACE,CACE,aACA,gBACA,gBACA,cACA,eACA,kBACA,mBACA,qBACA,qBACF,EACA,CACE,UAAW,CACT,MACA,SACA,SACA,OACA,QACA,WACA,YACA,cACA,cACF,EACA,aAAc,wBACd,MAAO,WACP,YAAa,iDACb,WAAY,MACd,CACF,CACF,CACF,EACA,CAEE,MAAAN,EACA,WAAY,QACZ,YAAa,UACb,qBAAsBG,EACtB,uBAAwBC,EACxB,QAAS,CACP,IAAK,QACL,IAAK,eACL,SAAU,eACZ,EAEA,SAAU,CACR,SAAU,SACZ,EACA,GAAGH,CACL,CACF,CAEF,CAEO,SAASM,EAASN,EAA4C,CAAC,EAAG,CACvE,OAAOO,EAAS,eAAgBP,CAAO,CACzC","names":["Type","image","title","options","defaultImageUrl","showImgSearch","noObjectOptions","Type","StringEnum","imageRef","typedRef"]}
1
+ {"version":3,"sources":["../../src/shared/bricks/props/image.ts"],"sourcesContent":["import { type SchemaOptions, Type, type Static, type ObjectOptions } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\ntype PropImageOptions = {\n defaultImageUrl?: string;\n showImgSearch?: boolean;\n noObjectOptions?: boolean;\n} & ObjectOptions;\n\nexport function image(title = \"Image\", options: PropImageOptions = {}) {\n const { defaultImageUrl, showImgSearch = false, noObjectOptions = false } = options;\n const schema = Type.Object(\n {\n src: Type.String({\n default: defaultImageUrl,\n title,\n description: \"Image URL. Can be a link to an image or a data URI\",\n }),\n alt: Type.Optional(\n Type.String({\n title: \"Alternate Text\",\n description: \"Alternative text for the image. Recommended for screen readers and SEO\",\n \"ui:placeholder\": \"Your image description\",\n }),\n ),\n fit: Type.Optional(\n StringEnum([\"object-none\", \"object-contain\", \"object-cover\", \"object-fill\", \"object-scale-down\"], {\n enumNames: [\"None\", \"Contain\", \"Cover\", \"Fill\", \"Scale down\"],\n title: \"Fit\",\n description: \"How the image should be resized to fit its container\",\n default: \"object-cover\",\n \"ui:field\": \"enum\",\n \"ui:styleId\": \"styles:objectFit\",\n }),\n ),\n position: Type.Optional(\n StringEnum(\n [\n \"object-top\",\n \"object-center\",\n \"object-bottom\",\n \"object-left\",\n \"object-right\",\n \"object-top-left\",\n \"object-top-right\",\n \"object-bottom-left\",\n \"object-bottom-right\",\n ],\n {\n enumNames: [\n \"Top\",\n \"Center\",\n \"Bottom\",\n \"Left\",\n \"Right\",\n \"Top left\",\n \"Top right\",\n \"Bottom left\",\n \"Bottom right\",\n ],\n \"ui:styleId\": \"styles:objectPosition\",\n title: \"Position\",\n description: \"The position of the image inside its container\",\n \"ui:field\": \"enum\",\n },\n ),\n ),\n },\n {\n // $id: \"assets:image\",\n title,\n \"ui:field\": \"image\",\n \"ui:accept\": \"image/*\",\n \"ui:show-img-search\": showImgSearch,\n \"ui:no-object-options\": noObjectOptions,\n default: {\n alt: \"Image\",\n fit: \"object-cover\",\n position: \"object-center\",\n },\n // \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n },\n ...options,\n },\n );\n return schema;\n}\n\nexport function imageRef(options: PropImageOptions & SchemaOptions = {}) {\n return typedRef(\"assets:image\", options);\n}\n\nexport type ImageProps = Static<ReturnType<typeof image>>;\n"],"mappings":";;;;;;;;;;AAAA,SAA6B,YAA6C;AAUnE,SAAS,MAAM,QAAQ,SAAS,UAA4B,CAAC,GAAG;AACrE,QAAM,EAAE,iBAAiB,gBAAgB,OAAO,kBAAkB,MAAM,IAAI;AAC5E,QAAM,SAAS,KAAK;AAAA,IAClB;AAAA,MACE,KAAK,KAAK,OAAO;AAAA,QACf,SAAS;AAAA,QACT;AAAA,QACA,aAAa;AAAA,MACf,CAAC;AAAA,MACD,KAAK,KAAK;AAAA,QACR,KAAK,OAAO;AAAA,UACV,OAAO;AAAA,UACP,aAAa;AAAA,UACb,kBAAkB;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,MACA,KAAK,KAAK;AAAA,QACR,WAAW,CAAC,eAAe,kBAAkB,gBAAgB,eAAe,mBAAmB,GAAG;AAAA,UAChG,WAAW,CAAC,QAAQ,WAAW,SAAS,QAAQ,YAAY;AAAA,UAC5D,OAAO;AAAA,UACP,aAAa;AAAA,UACb,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,cAAc;AAAA,QAChB,CAAC;AAAA,MACH;AAAA,MACA,UAAU,KAAK;AAAA,QACb;AAAA,UACE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA;AAAA,YACE,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,cAAc;AAAA,YACd,OAAO;AAAA,YACP,aAAa;AAAA,YACb,YAAY;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA;AAAA,MAEE;AAAA,MACA,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,sBAAsB;AAAA,MACtB,wBAAwB;AAAA,MACxB,SAAS;AAAA,QACP,KAAK;AAAA,QACL,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA;AAAA,MAEA,UAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,SAAS,UAA4C,CAAC,GAAG;AACvE,SAAO,SAAS,gBAAgB,OAAO;AACzC;","names":[]}