@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
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/social-links.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TiSocialFlickr } from \"react-icons/ti\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { iconRef, string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { fontSizeRef } from \"../props/text\";\nimport { directionRef } from \"../props/direction\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"social-links\",\n name: \"Social links\",\n description: \"A list of social media links\",\n icon: TiSocialFlickr,\n defaultWidth: {\n mobile: \"100%\",\n },\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n links: Type.Array(\n Type.Object({\n icon: Type.Optional(\n iconRef({\n \"ui:default-icon-collection\": \"cib\",\n }),\n ),\n label: Type.Optional(string(\"Label\")),\n href: string(\"Link\"),\n }),\n {\n title: \"Social Links\",\n description: \"List of social media links\",\n default: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n \"ui:widget\": \"array\",\n \"ui:displayField\": \"label\",\n \"ui:options\": {\n orderable: true, // Enable drag & drop reordering\n removable: true, // Enable delete button\n addable: true, // Enable add button\n },\n metadata: {\n category: \"content\",\n },\n },\n ),\n direction: Type.Optional(\n directionRef({\n default: \"flex-row\",\n }),\n ),\n fontSize: Type.Optional(fontSizeRef()),\n padding: Type.Optional(\n cssLengthRef({\n default: \"2rem\",\n description: \"Padding.\",\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 iconOnly: Type.Optional(\n Type.Boolean({\n title: \"Only icons\",\n description: \"If set, the brick will only display the icons without labels.\",\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: \"Social icons displayed horizontally, without labels\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed vertically, without labels\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed horizontally, with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed vertically, with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n ],\n },\n },\n {\n description: \"Professional social links with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://linkedin.com/in/johndoe\",\n label: \"Connect on LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n {\n href: \"https://github.com/johndoe\",\n label: \"View GitHub Profile\",\n icon: \"mdi:github\",\n },\n {\n href: \"https://twitter.com/johndoe\",\n label: \"Follow on Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"mailto:john@example.com\",\n label: \"Send Email\",\n icon: \"mdi:email\",\n },\n ],\n },\n },\n {\n description: \"Creative portfolio social links (icon-only inline)\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"https://dribbble.com/designer\",\n label: \"Dribbble\",\n icon: \"mdi:dribbble\",\n },\n {\n href: \"https://behance.net/designer\",\n label: \"Behance\",\n icon: \"mdi:behance\",\n },\n {\n href: \"https://instagram.com/designer\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://pinterest.com/designer\",\n label: \"Pinterest\",\n icon: \"mdi:pinterest\",\n },\n {\n href: \"https://youtube.com/designer\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n ],\n },\n },\n {\n description: \"Developer/tech social links with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://github.com/developer\",\n label: \"GitHub\",\n icon: \"mdi:github\",\n },\n {\n href: \"https://stackoverflow.com/users/developer\",\n label: \"Stack Overflow\",\n icon: \"mdi:stack-overflow\",\n },\n {\n href: \"https://dev.to/developer\",\n label: \"Dev.to\",\n icon: \"mdi:dev-to\",\n },\n {\n href: \"https://codepen.io/developer\",\n label: \"CodePen\",\n icon: \"mdi:codepen\",\n },\n ],\n },\n },\n {\n description: \"Music artist social platforms (block layout)\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://spotify.com/artist/musician\",\n label: \"Listen on Spotify\",\n icon: \"mdi:spotify\",\n },\n {\n href: \"https://music.apple.com/artist/musician\",\n label: \"Apple Music\",\n icon: \"mdi:apple\",\n },\n {\n href: \"https://soundcloud.com/musician\",\n label: \"SoundCloud\",\n icon: \"mdi:soundcloud\",\n },\n {\n href: \"https://youtube.com/musician\",\n label: \"YouTube Channel\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://bandcamp.com/musician\",\n label: \"Bandcamp\",\n icon: \"mdi:bandcamp\",\n },\n ],\n },\n },\n {\n description: \"Business contact icons only\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"tel:+1234567890\",\n label: \"Phone\",\n icon: \"mdi:phone\",\n },\n {\n href: \"mailto:contact@business.com\",\n label: \"Email\",\n icon: \"mdi:email\",\n },\n {\n href: \"https://maps.google.com/business\",\n label: \"Location\",\n icon: \"mdi:map-marker\",\n },\n {\n href: \"https://business.com\",\n label: \"Website\",\n icon: \"mdi:web\",\n },\n ],\n },\n },\n {\n description: \"Gaming content creator links (inline with labels)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://twitch.tv/gamer\",\n label: \"Twitch\",\n icon: \"mdi:twitch\",\n },\n {\n href: \"https://youtube.com/gamer\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://discord.gg/gamer\",\n label: \"Discord\",\n icon: \"mdi:discord\",\n },\n {\n href: \"https://tiktok.com/@gamer\",\n label: \"TikTok\",\n icon: \"mdi:tiktok\",\n },\n ],\n },\n },\n {\n description: \"Restaurant social presence (block layout)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/restaurant\",\n label: \"Follow us on Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://instagram.com/restaurant\",\n label: \"See photos on Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://yelp.com/restaurant\",\n label: \"Review us on Yelp\",\n icon: \"mdi:yelp\",\n },\n {\n href: \"https://tripadvisor.com/restaurant\",\n label: \"TripAdvisor Reviews\",\n icon: \"mdi:tripadvisor\",\n },\n {\n href: \"tel:+1234567890\",\n label: \"Call for Reservations\",\n icon: \"mdi:phone\",\n },\n ],\n },\n },\n {\n description: \"Minimal footer social icons\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-row\",\n links: [\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n {\n href: \"mailto:hello@company.com\",\n label: \"Email\",\n icon: \"mdi:email\",\n },\n ],\n },\n },\n {\n description: \"E-commerce store social channels (inline with labels)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-row\",\n links: [\n {\n href: \"https://facebook.com/store\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://instagram.com/store\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://pinterest.com/store\",\n label: \"Pinterest\",\n icon: \"mdi:pinterest\",\n },\n {\n href: \"https://youtube.com/store\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://tiktok.com/@store\",\n label: \"TikTok\",\n icon: \"mdi:tiktok\",\n },\n ],\n },\n },\n];\n"],"mappings":";;8UAAA,OAAS,QAAAA,MAAY,oBACrB,OAAS,kBAAAC,MAAsB,iBAWxB,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,eACN,KAAM,eACN,YAAa,+BACb,KAAMC,EACN,aAAc,CACZ,OAAQ,MACV,EACA,MAAOC,EAAY,CACjB,YAAaC,EAAK,SAChBC,EAAe,CACb,MAAO,OACT,CAAC,CACH,EACA,MAAOD,EAAK,MACVA,EAAK,OAAO,CACV,KAAMA,EAAK,SACTE,EAAQ,CACN,6BAA8B,KAChC,CAAC,CACH,EACA,MAAOF,EAAK,SAASG,EAAO,OAAO,CAAC,EACpC,KAAMA,EAAO,MAAM,CACrB,CAAC,EACD,CACE,MAAO,eACP,YAAa,6BACb,QAAS,CACP,CACE,KAAM,+BACN,MAAO,WACP,KAAM,cACR,EACA,CACE,KAAM,8BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,gCACN,MAAO,YACP,KAAM,eACR,CACF,EACA,YAAa,QACb,kBAAmB,QACnB,aAAc,CACZ,UAAW,GACX,UAAW,GACX,QAAS,EACX,EACA,SAAU,CACR,SAAU,SACZ,CACF,CACF,EACA,UAAWH,EAAK,SACdI,EAAa,CACX,QAAS,UACX,CAAC,CACH,EACA,SAAUJ,EAAK,SAASK,EAAY,CAAC,EACrC,QAASL,EAAK,SACZM,EAAa,CACX,QAAS,OACT,YAAa,WACb,kBAAmB,gDACnB,MAAO,UACP,gBAAiB,GACjB,iBAAkB,gBAClB,aAAc,gBAChB,CAAC,CACH,EACA,SAAUN,EAAK,SACbO,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,OAAQP,EAAK,SAASQ,EAAU,CAAC,EACjC,SAAUR,EAAK,SACbA,EAAK,QAAQ,CACX,MAAO,aACP,YAAa,+DACf,CAAC,CACH,CACF,CAAC,CACH,CAAC,EAIYS,EAIP,CACJ,CACE,YAAa,sDACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,MAAO,CACL,CACE,KAAM,+BACN,MAAO,WACP,KAAM,cACR,EACA,CACE,KAAM,8BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,gCACN,MAAO,YACP,KAAM,eACR,CACF,CACF,CACF,EACA,CACE,YAAa,oDACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,UAAW,WACX,MAAO,CACL,CACE,KAAM,+BACN,MAAO,WACP,KAAM,cACR,EACA,CACE,KAAM,8BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,gCACN,MAAO,YACP,KAAM,eACR,CACF,CACF,CACF,EACA,CACE,YAAa,mDACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,MAAO,CACL,CACE,KAAM,+BACN,MAAO,WACP,KAAM,cACR,EACA,CACE,KAAM,8BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,gCACN,MAAO,YACP,KAAM,eACR,EACA,CACE,KAAM,uCACN,MAAO,WACP,KAAM,cACR,CACF,CACF,CACF,EACA,CACE,YAAa,iDACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,UAAW,WACX,MAAO,CACL,CACE,KAAM,+BACN,MAAO,WACP,KAAM,cACR,EACA,CACE,KAAM,8BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,gCACN,MAAO,YACP,KAAM,eACR,EACA,CACE,KAAM,uCACN,MAAO,WACP,KAAM,cACR,CACF,CACF,CACF,EACA,CACE,YAAa,wCACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,MAAO,CACL,CACE,KAAM,kCACN,MAAO,sBACP,KAAM,cACR,EACA,CACE,KAAM,6BACN,MAAO,sBACP,KAAM,YACR,EACA,CACE,KAAM,8BACN,MAAO,oBACP,KAAM,aACR,EACA,CACE,KAAM,0BACN,MAAO,aACP,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,YAAa,qDACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,MAAO,CACL,CACE,KAAM,gCACN,MAAO,WACP,KAAM,cACR,EACA,CACE,KAAM,+BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,iCACN,MAAO,YACP,KAAM,eACR,EACA,CACE,KAAM,iCACN,MAAO,YACP,KAAM,eACR,EACA,CACE,KAAM,+BACN,MAAO,UACP,KAAM,aACR,CACF,CACF,CACF,EACA,CACE,YAAa,0CACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,UAAW,WACX,MAAO,CACL,CACE,KAAM,+BACN,MAAO,SACP,KAAM,YACR,EACA,CACE,KAAM,4CACN,MAAO,iBACP,KAAM,oBACR,EACA,CACE,KAAM,2BACN,MAAO,SACP,KAAM,YACR,EACA,CACE,KAAM,+BACN,MAAO,UACP,KAAM,aACR,CACF,CACF,CACF,EACA,CACE,YAAa,+CACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,UAAW,WACX,MAAO,CACL,CACE,KAAM,sCACN,MAAO,oBACP,KAAM,aACR,EACA,CACE,KAAM,0CACN,MAAO,cACP,KAAM,WACR,EACA,CACE,KAAM,kCACN,MAAO,aACP,KAAM,gBACR,EACA,CACE,KAAM,+BACN,MAAO,kBACP,KAAM,aACR,EACA,CACE,KAAM,gCACN,MAAO,WACP,KAAM,cACR,CACF,CACF,CACF,EACA,CACE,YAAa,8BACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,MAAO,CACL,CACE,KAAM,kBACN,MAAO,QACP,KAAM,WACR,EACA,CACE,KAAM,8BACN,MAAO,QACP,KAAM,WACR,EACA,CACE,KAAM,mCACN,MAAO,WACP,KAAM,gBACR,EACA,CACE,KAAM,uBACN,MAAO,UACP,KAAM,SACR,CACF,CACF,CACF,EACA,CACE,YAAa,oDACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,MAAO,CACL,CACE,KAAM,0BACN,MAAO,SACP,KAAM,YACR,EACA,CACE,KAAM,4BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,2BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,4BACN,MAAO,SACP,KAAM,YACR,CACF,CACF,CACF,EACA,CACE,YAAa,4CACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,UAAW,WACX,MAAO,CACL,CACE,KAAM,kCACN,MAAO,wBACP,KAAM,cACR,EACA,CACE,KAAM,mCACN,MAAO,0BACP,KAAM,eACR,EACA,CACE,KAAM,8BACN,MAAO,oBACP,KAAM,UACR,EACA,CACE,KAAM,qCACN,MAAO,sBACP,KAAM,iBACR,EACA,CACE,KAAM,kBACN,MAAO,wBACP,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,YAAa,8BACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,UAAW,WACX,MAAO,CACL,CACE,KAAM,8BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,uCACN,MAAO,WACP,KAAM,cACR,EACA,CACE,KAAM,2BACN,MAAO,QACP,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,YAAa,wDACb,KAAM,eACN,MAAO,CACL,SAAU,GACV,UAAW,WACX,MAAO,CACL,CACE,KAAM,6BACN,MAAO,WACP,KAAM,cACR,EACA,CACE,KAAM,8BACN,MAAO,YACP,KAAM,eACR,EACA,CACE,KAAM,8BACN,MAAO,YACP,KAAM,eACR,EACA,CACE,KAAM,4BACN,MAAO,UACP,KAAM,aACR,EACA,CACE,KAAM,4BACN,MAAO,SACP,KAAM,YACR,CACF,CACF,CACF,CACF","names":["Type","TiSocialFlickr","manifest","defineBrickManifest","TiSocialFlickr","defineProps","Type","colorPresetRef","iconRef","string","directionRef","fontSizeRef","cssLengthRef","roundingRef","borderRef","examples"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{c as a}from"./chunk-3YVJ2ELD.js";import{a as d}from"./chunk-RJYZ5FAR.js";import{a as n,d as i}from"./chunk-A3GF4PYW.js";import{b as r}from"./chunk-5YRC3IT3.js";import{b as e,d as o}from"./chunk-ZTZJHY4E.js";import{c as l}from"./chunk-CZRCW5EN.js";import{Type as t}from"@sinclair/typebox";import{RxButton as p}from"react-icons/rx";var h=d({type:"button",name:"Button",category:"basic",description:"A button",aiInstructions:"A clickable button that can link to a URL or a page within the site. It can be styled with different colors, font sizes, and border radii. Don't use it in forms since forms have their own submit button.",resizable:"horizontal",icon:p,minWidth:{desktop:120,mobile:120},defaultWidth:{mobile:"100%"},props:a({colorPreset:t.Optional(l({default:{color:"primary-500"},title:"Color","ui:default-gradient-direction":"bg-gradient-to-b"})),label:n("Label",{default:"My button",metadata:{category:"content"}}),fontSize:t.Optional(r({title:"Font size",description:"The font size of the button text.",default:"text-base","ui:responsive":"desktop","ui:no-extra-large-sizes":!0})),rounding:t.Optional(o({default:"rounded-md"})),border:t.Optional(e({default:{width:"border-0"},"ui:responsive":"desktop"})),link:i({title:"Link","ui:placeholder":"https://example.com",metadata:{category:"content"}})},{noGrow:!0})}),x=[{description:"Primary button, full width, linking to an external URL",type:"button",props:{label:"Click me",link:"https://example.com",colorPreset:{color:"primary-500"}}},{description:"Secondary button, block width, linking to a page id",type:"button",props:{label:"Go to page",link:"page-id-123",colorPreset:{color:"secondary-500"}}},{description:"Neutral colored button with large text and rounded corners and external link",type:"button",props:{label:"Submit",fontSize:"text-lg",rounding:"rounded-full",link:"https://example.com",colorPreset:{color:"neutral-500"}}},{description:"Dynamic label from a page query alias named 'employee'",type:"button",props:{label:"Go to profile of {{employee.name}}",link:"/employees/{{employee.$slug}}",fontSize:"text-lg",rounding:"rounded-full",colorPreset:{color:"neutral-500"}}},{description:"Accent colored call-to-action button with medium text and subtle border",type:"button",props:{label:"Get Started",link:"/signup",fontSize:"text-base",rounding:"rounded-lg",colorPreset:{color:"accent-600"},border:{width:"border",color:"border-accent-700"}}},{description:"Small text button with sharp corners for minimal design",type:"button",props:{label:"Learn More",link:"/about",fontSize:"text-sm",rounding:"rounded-none",colorPreset:{color:"primary-400"}}},{description:"Large download button with thick border and rounded corners",type:"button",props:{label:"Download Now",link:"https://download.example.com/file.zip",fontSize:"text-xl",rounding:"rounded-xl",colorPreset:{color:"secondary-600"},border:{width:"border-2",color:"border-secondary-800"}}},{description:"Contact button with neutral colors and medium border radius",type:"button",props:{label:"Contact Us",link:"/contact",fontSize:"text-base",rounding:"rounded-md",colorPreset:{color:"neutral-600"},border:{width:"border",color:"border-neutral-400"}}},{description:"Newsletter signup button with gradient background and full rounding",type:"button",props:{label:"Subscribe to Newsletter",link:"/newsletter",fontSize:"text-lg",rounding:"rounded-full",colorPreset:{color:"primary-500",gradientDirection:"bg-gradient-to-r"}}},{description:"Shop now button with accent colors and extra large text",type:"button",props:{label:"Shop Now",link:"/shop",fontSize:"text-xl",rounding:"rounded-lg",colorPreset:{color:"accent-500"}}},{description:"Dynamic product button using product query data",type:"button",props:{label:"Buy {{product.name}} - ${{product.price}}",link:"/products/{{product.id}}/purchase",fontSize:"text-base",rounding:"rounded-md",colorPreset:{color:"primary-600"},border:{width:"border",color:"border-primary-800"}}},{description:"Event registration button with secondary gradient and medium text",type:"button",props:{label:"Register for Event",link:"/events/register",fontSize:"text-base",rounding:"rounded-lg",colorPreset:{color:"secondary-500",gradientDirection:"bg-gradient-to-br"},border:{width:"border",color:"border-secondary-300"}}}];export{h as a,x as b};
4
- //# sourceMappingURL=chunk-IKHZD2JH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/button.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { RxButton } from \"react-icons/rx\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { string, urlOrPageIdRef } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { fontSizeRef } from \"../props/text\";\nimport { colorPresetRef } from \"../props/color-preset\";\n\nexport const manifest = defineBrickManifest({\n type: \"button\",\n name: \"Button\",\n category: \"basic\",\n description: \"A button\",\n aiInstructions:\n \"A clickable button that can link to a URL or a page within the site. It can be styled with different colors, font sizes, and border radii. Don't use it in forms since forms have their own submit button.\",\n resizable: \"horizontal\",\n icon: RxButton,\n minWidth: {\n desktop: 120,\n mobile: 120,\n },\n defaultWidth: {\n mobile: \"100%\",\n },\n props: defineProps(\n {\n colorPreset: Type.Optional(\n colorPresetRef({\n default: { color: \"primary-500\" },\n title: \"Color\",\n \"ui:default-gradient-direction\": \"bg-gradient-to-b\",\n }),\n ),\n label: string(\"Label\", { default: \"My button\", metadata: { category: \"content\" } }),\n fontSize: Type.Optional(\n fontSizeRef({\n title: \"Font size\",\n description: \"The font size of the button text.\",\n default: \"text-base\",\n \"ui:responsive\": \"desktop\",\n \"ui:no-extra-large-sizes\": true,\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef({ default: { width: \"border-0\" }, \"ui:responsive\": \"desktop\" })),\n link: urlOrPageIdRef({\n title: \"Link\",\n \"ui:placeholder\": \"https://example.com\",\n metadata: { category: \"content\" },\n }),\n },\n { noGrow: true },\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: \"Primary button, full width, linking to an external URL\",\n type: \"button\",\n props: {\n label: \"Click me\",\n link: \"https://example.com\",\n colorPreset: { color: \"primary-500\" },\n },\n },\n {\n description: \"Secondary button, block width, linking to a page id\",\n type: \"button\",\n props: {\n label: \"Go to page\",\n link: \"page-id-123\",\n colorPreset: { color: \"secondary-500\" },\n },\n },\n {\n description: \"Neutral colored button with large text and rounded corners and external link\",\n type: \"button\",\n props: {\n label: \"Submit\",\n fontSize: \"text-lg\",\n rounding: \"rounded-full\",\n link: \"https://example.com\",\n colorPreset: { color: \"neutral-500\" },\n },\n },\n {\n description: \"Dynamic label from a page query alias named 'employee'\",\n type: \"button\",\n props: {\n label: \"Go to profile of {{employee.name}}\",\n link: \"/employees/{{employee.$slug}}\",\n fontSize: \"text-lg\",\n rounding: \"rounded-full\",\n colorPreset: { color: \"neutral-500\" },\n },\n },\n {\n description: \"Accent colored call-to-action button with medium text and subtle border\",\n type: \"button\",\n props: {\n label: \"Get Started\",\n link: \"/signup\",\n fontSize: \"text-base\",\n rounding: \"rounded-lg\",\n colorPreset: { color: \"accent-600\" },\n border: { width: \"border\", color: \"border-accent-700\" },\n },\n },\n {\n description: \"Small text button with sharp corners for minimal design\",\n type: \"button\",\n props: {\n label: \"Learn More\",\n link: \"/about\",\n fontSize: \"text-sm\",\n rounding: \"rounded-none\",\n colorPreset: { color: \"primary-400\" },\n },\n },\n {\n description: \"Large download button with thick border and rounded corners\",\n type: \"button\",\n props: {\n label: \"Download Now\",\n link: \"https://download.example.com/file.zip\",\n fontSize: \"text-xl\",\n rounding: \"rounded-xl\",\n colorPreset: { color: \"secondary-600\" },\n border: { width: \"border-2\", color: \"border-secondary-800\" },\n },\n },\n {\n description: \"Contact button with neutral colors and medium border radius\",\n type: \"button\",\n props: {\n label: \"Contact Us\",\n link: \"/contact\",\n fontSize: \"text-base\",\n rounding: \"rounded-md\",\n colorPreset: { color: \"neutral-600\" },\n border: { width: \"border\", color: \"border-neutral-400\" },\n },\n },\n {\n description: \"Newsletter signup button with gradient background and full rounding\",\n type: \"button\",\n props: {\n label: \"Subscribe to Newsletter\",\n link: \"/newsletter\",\n fontSize: \"text-lg\",\n rounding: \"rounded-full\",\n colorPreset: {\n color: \"primary-500\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n },\n },\n {\n description: \"Shop now button with accent colors and extra large text\",\n type: \"button\",\n props: {\n label: \"Shop Now\",\n link: \"/shop\",\n fontSize: \"text-xl\",\n rounding: \"rounded-lg\",\n colorPreset: { color: \"accent-500\" },\n },\n },\n {\n description: \"Dynamic product button using product query data\",\n type: \"button\",\n props: {\n label: \"Buy {{product.name}} - ${{product.price}}\",\n link: \"/products/{{product.id}}/purchase\",\n fontSize: \"text-base\",\n rounding: \"rounded-md\",\n colorPreset: { color: \"primary-600\" },\n border: { width: \"border\", color: \"border-primary-800\" },\n },\n },\n {\n description: \"Event registration button with secondary gradient and medium text\",\n type: \"button\",\n props: {\n label: \"Register for Event\",\n link: \"/events/register\",\n fontSize: \"text-base\",\n rounding: \"rounded-lg\",\n colorPreset: {\n color: \"secondary-500\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n border: { width: \"border\", color: \"border-secondary-300\" },\n },\n },\n];\n"],"mappings":"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","names":["Type","RxButton","manifest","defineBrickManifest","RxButton","defineProps","Type","colorPresetRef","string","fontSizeRef","roundingRef","borderRef","urlOrPageIdRef","examples"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as t}from"@sinclair/typebox";var o=t.Object({url:t.Optional(t.String()),id:t.String({pattern:"^[A-Za-z0-9\\-]+$",description:"Notion Database ID"}),name:t.String({description:"Notion Database Name"}),properties:t.Any()});export{o as a};
4
- //# sourceMappingURL=chunk-IUXCWWGO.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as e}from"@sinclair/typebox";var i=(n,t={})=>e.Unsafe({type:"string",enum:n,...t});export{i as a};
4
- //# sourceMappingURL=chunk-JMN3HTZU.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as t}from"@sinclair/typebox";var e=t.Array(t.Object({url:t.String({format:"uri",title:"URL"}),title:t.String({title:"Title"}),description:t.Optional(t.String({title:"Description",format:"markdown"})),icon:t.Optional(t.String({title:"Icon",format:"uri"}))}),{description:"Schema representing a collection of links"});export{e as a};
4
- //# sourceMappingURL=chunk-KBHDY425.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as o}from"@sinclair/typebox";function n(e,t={}){return o.Ref(e,{...t})}export{n as a};
4
- //# sourceMappingURL=chunk-KFM6KXSE.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as e}from"@sinclair/typebox";var a=e.Transform(e.String({format:"date-time"})).Decode(t=>new Date(t)).Encode(t=>t.toISOString());export{a};
4
- //# sourceMappingURL=chunk-KLD3P5XH.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- var s=async({options:t})=>{let a=`https://mastodon.social/api/v1/accounts/lookup?${new URLSearchParams({acct:t.username}).toString()}`,o=await fetch(a);if(!o.ok)throw new Error(`fetchMastodonAccount Error: Response status: ${o.status}`);return await o.json()},e=s;export{e as a};
4
- //# sourceMappingURL=chunk-KO5FPOWZ.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as t}from"@sinclair/typebox";function a(o,n,e={}){return t.Boolean({title:o,default:n??!1,...e})}export{a};
4
- //# sourceMappingURL=chunk-KSEURRVZ.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as i}from"@sinclair/typebox";function d(e=!1,t="Fixed position"){return i.Boolean({title:t,default:e,"ui:styleId":"styles:fixedPositioned"})}export{d as a};
4
- //# sourceMappingURL=chunk-KYY3PHP7.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{c}from"./chunk-3YVJ2ELD.js";import{a as l}from"./chunk-RJYZ5FAR.js";import{m as i}from"./chunk-AFVJZPLS.js";import{b as a}from"./chunk-CCI4C3TM.js";import{a as o}from"./chunk-A3GF4PYW.js";import{d as r}from"./chunk-ZTZJHY4E.js";import{c as s}from"./chunk-CZRCW5EN.js";import{c as t}from"./chunk-OHNYCXPX.js";import{Type as e}from"@sinclair/typebox";import{TbCarouselHorizontal as n}from"react-icons/tb";var P=l({type:"carousel",name:"Carousel",description:"An image carousel with navigation arrows and dots or numbers indicator",aiInstructions:"Use this brick to create an image carousel or slideshow. It can display multiple images that users can navigate through using arrows or dots. Each image can have an optional legend or caption. This brick is ideal for showcasing portfolios, product images, or any visual content in an engaging way.",category:"media",defaultInspectorTab:"content",consumesMultipleQueryRows:!0,minHeight:{desktop:200},minWidth:{desktop:300},icon:n,props:c({colorPreset:e.Optional(s({title:"Color"})),padding:e.Optional(t({default:"1rem",description:"Padding inside the carousel.","ai:instructions":"Use only a single value like '1rem' or '10px'",title:"Padding","ui:responsive":!0,"ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),images:e.Optional(e.Array(e.Object({src:a({"ui:responsive":"desktop","ui:no-alt-text":!0,"ui:no-object-options":!0}),legend:o("Legend")}),{title:"Images",default:[],maxItems:12,metadata:{category:"content"}})),borderRadius:e.Optional(r({default:"rounded-md"})),loop:e.Optional(i())})}),b=[{description:"Basic image carousel with legends",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/800x400.png?text=Slide+1",alt:"First slide"},legend:"Beautiful landscape"},{src:{src:"https://via.placeholder.com/800x400.png?text=Slide+2",alt:"Second slide"},legend:"Amazing architecture"},{src:{src:"https://via.placeholder.com/800x400.png?text=Slide+3",alt:"Third slide"},legend:"Stunning nature"}]}},{description:"Product showcase carousel with rounded corners and padding",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/600x400.png?text=Product+1",alt:"Product 1"},legend:"Premium Headphones - $199"},{src:{src:"https://via.placeholder.com/600x400.png?text=Product+2",alt:"Product 2"},legend:"Wireless Speaker - $149"},{src:{src:"https://via.placeholder.com/600x400.png?text=Product+3",alt:"Product 3"},legend:"Smart Watch - $299"},{src:{src:"https://via.placeholder.com/600x400.png?text=Product+4",alt:"Product 4"},legend:"Laptop Stand - $79"}],borderRadius:"rounded-xl",padding:"2rem",colorPreset:{color:"gray-50"}}},{description:"Portfolio carousel with minimal styling",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/900x600.png?text=Portfolio+1",alt:"Portfolio piece 1"},legend:"Web Design Project"},{src:{src:"https://via.placeholder.com/900x600.png?text=Portfolio+2",alt:"Portfolio piece 2"},legend:"Brand Identity Design"},{src:{src:"https://via.placeholder.com/900x600.png?text=Portfolio+3",alt:"Portfolio piece 3"},legend:"Mobile App Interface"}],borderRadius:"rounded-none",padding:"0"}},{description:"Event photos carousel with primary color theme",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/800x500.png?text=Event+Photo+1",alt:"Event photo 1"},legend:"Opening Ceremony"},{src:{src:"https://via.placeholder.com/800x500.png?text=Event+Photo+2",alt:"Event photo 2"},legend:"Keynote Speaker"},{src:{src:"https://via.placeholder.com/800x500.png?text=Event+Photo+3",alt:"Event photo 3"},legend:"Networking Session"},{src:{src:"https://via.placeholder.com/800x500.png?text=Event+Photo+4",alt:"Event photo 4"},legend:"Award Ceremony"},{src:{src:"https://via.placeholder.com/800x500.png?text=Event+Photo+5",alt:"Event photo 5"},legend:"Closing Remarks"}],colorPreset:{color:"primary-100"},borderRadius:"rounded-lg",padding:"1.5rem"}},{description:"Travel destinations carousel without legends",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/700x450.png?text=Paris",alt:"Paris cityscape"},legend:""},{src:{src:"https://via.placeholder.com/700x450.png?text=Tokyo",alt:"Tokyo skyline"},legend:""},{src:{src:"https://via.placeholder.com/700x450.png?text=New+York",alt:"New York streets"},legend:""},{src:{src:"https://via.placeholder.com/700x450.png?text=London",alt:"London landmarks"},legend:""}],borderRadius:"rounded-2xl",padding:"1rem"}},{description:"Team members carousel with blue color scheme",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/400x400.png?text=Team+1",alt:"Team member 1"},legend:"John Smith - CEO"},{src:{src:"https://via.placeholder.com/400x400.png?text=Team+2",alt:"Team member 2"},legend:"Sarah Johnson - CTO"},{src:{src:"https://via.placeholder.com/400x400.png?text=Team+3",alt:"Team member 3"},legend:"Mike Davis - Design Lead"},{src:{src:"https://via.placeholder.com/400x400.png?text=Team+4",alt:"Team member 4"},legend:"Emily Chen - Marketing Director"}],colorPreset:{color:"blue-50"},borderRadius:"rounded-full",padding:"2rem"}},{description:"Recipe steps carousel with detailed descriptions",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/600x400.png?text=Step+1",alt:"Recipe step 1"},legend:"Step 1: Prepare all ingredients"},{src:{src:"https://via.placeholder.com/600x400.png?text=Step+2",alt:"Recipe step 2"},legend:"Step 2: Heat oil in a large pan"},{src:{src:"https://via.placeholder.com/600x400.png?text=Step+3",alt:"Recipe step 3"},legend:"Step 3: Add vegetables and saut\xE9"},{src:{src:"https://via.placeholder.com/600x400.png?text=Step+4",alt:"Recipe step 4"},legend:"Step 4: Season and serve hot"}],colorPreset:{color:"orange-50"},borderRadius:"rounded-md",padding:"1.5rem"}},{description:"Before and after comparison carousel",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/800x400.png?text=Before+1",alt:"Before renovation 1"},legend:"Kitchen - Before Renovation"},{src:{src:"https://via.placeholder.com/800x400.png?text=After+1",alt:"After renovation 1"},legend:"Kitchen - After Renovation"},{src:{src:"https://via.placeholder.com/800x400.png?text=Before+2",alt:"Before renovation 2"},legend:"Living Room - Before"},{src:{src:"https://via.placeholder.com/800x400.png?text=After+2",alt:"After renovation 2"},legend:"Living Room - After"}],colorPreset:{color:"green-50"},borderRadius:"rounded-lg",padding:"1rem"}},{description:"Art gallery carousel with dramatic styling",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/600x800.png?text=Artwork+1",alt:"Abstract painting 1"},legend:"Abstract Composition #1 - 2023"},{src:{src:"https://via.placeholder.com/600x800.png?text=Artwork+2",alt:"Abstract painting 2"},legend:"Urban Landscape - 2023"},{src:{src:"https://via.placeholder.com/600x800.png?text=Artwork+3",alt:"Abstract painting 3"},legend:"Color Study #7 - 2024"}],colorPreset:{color:"gray-900"},borderRadius:"rounded-sm",padding:"3rem"}},{description:"Fashion lookbook carousel with purple theme",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/500x700.png?text=Look+1",alt:"Fashion look 1"},legend:"Spring Collection - Casual Chic"},{src:{src:"https://via.placeholder.com/500x700.png?text=Look+2",alt:"Fashion look 2"},legend:"Summer Vibes - Beach Ready"},{src:{src:"https://via.placeholder.com/500x700.png?text=Look+3",alt:"Fashion look 3"},legend:"Autumn Elegance - Business"},{src:{src:"https://via.placeholder.com/500x700.png?text=Look+4",alt:"Fashion look 4"},legend:"Winter Style - Cozy Comfort"},{src:{src:"https://via.placeholder.com/500x700.png?text=Look+5",alt:"Fashion look 5"},legend:"Evening Wear - Formal Event"},{src:{src:"https://via.placeholder.com/500x700.png?text=Look+6",alt:"Fashion look 6"},legend:"Weekend Casual - Relaxed Fit"}],colorPreset:{color:"purple-100"},borderRadius:"rounded-xl",padding:"2rem"}},{description:"Car showcase carousel with compact design",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/800x450.png?text=Car+1",alt:"Sports car 1"},legend:"2024 Sports Coupe"},{src:{src:"https://via.placeholder.com/800x450.png?text=Car+2",alt:"SUV model"},legend:"Family SUV"},{src:{src:"https://via.placeholder.com/800x450.png?text=Car+3",alt:"Electric vehicle"},legend:"Electric Sedan"}],colorPreset:{color:"red-50"},borderRadius:"rounded-lg",padding:"0.5rem"}},{description:"Software features carousel with large padding",type:"carousel",props:{images:[{src:{src:"https://via.placeholder.com/900x500.png?text=Feature+1",alt:"Software feature 1"},legend:"Dashboard Analytics - Real-time insights"},{src:{src:"https://via.placeholder.com/900x500.png?text=Feature+2",alt:"Software feature 2"},legend:"Team Collaboration - Work together seamlessly"},{src:{src:"https://via.placeholder.com/900x500.png?text=Feature+3",alt:"Software feature 3"},legend:"Mobile App - Access anywhere, anytime"},{src:{src:"https://via.placeholder.com/900x500.png?text=Feature+4",alt:"Software feature 4"},legend:"Security - Enterprise-grade protection"}],colorPreset:{color:"indigo-50"},borderRadius:"rounded-2xl",padding:"4rem"}},{description:"Dynamic product gallery using products query with pricing and details",type:"carousel",props:{images:[{src:{src:"{{products.image}}",alt:"{{products.name}}"},legend:"{{products.name}} - ${{products.price}}"}],colorPreset:{color:"primary-50"},borderRadius:"rounded-lg",padding:"1.5rem",loop:{over:"products"}}},{description:"Team member carousel using teamMembers query with roles and departments",type:"carousel",props:{images:[{src:{src:"{{teamMembers.photo}}",alt:"{{teamMembers.fullName}}"},legend:"{{teamMembers.fullName}} - {{teamMembers.position}}, {{teamMembers.department}}"}],colorPreset:{color:"secondary-100"},borderRadius:"rounded-xl",padding:"2rem",loop:{over:"teamMembers"}}},{description:"Portfolio showcase using portfolioProjects query with client information",type:"carousel",props:{images:[{src:{src:"{{portfolioProjects.featuredImage}}",alt:"{{portfolioProjects.projectName}}"},legend:"{{portfolioProjects.projectName}} - {{portfolioProjects.clientName}} ({{portfolioProjects.year}})"}],colorPreset:{color:"neutral-100"},borderRadius:"rounded-md",padding:"1rem",loop:{over:"portfolioProjects"}}},{description:"Event photo gallery using eventPhotos query with captions and dates",type:"carousel",props:{images:[{src:{src:"{{eventPhotos.imageUrl}}",alt:"{{eventPhotos.caption}}"},legend:"{{eventPhotos.caption}} - {{eventPhotos.eventDate}}"}],colorPreset:{color:"accent-50"},borderRadius:"rounded-lg",padding:"2rem",loop:{over:"eventPhotos"}}},{description:"Property listings carousel using realEstateProperties query with pricing",type:"carousel",props:{images:[{src:{src:"{{realEstateProperties.mainPhoto}}",alt:"{{realEstateProperties.address}}"},legend:"{{realEstateProperties.address}} - ${{realEstateProperties.price}} \u2022 {{realEstateProperties.bedrooms}}BR/{{realEstateProperties.bathrooms}}BA"}],colorPreset:{color:"primary-100"},borderRadius:"rounded-xl",padding:"1.5rem",loop:{over:"realEstateProperties"}}},{description:"Restaurant menu carousel using menuItems query with categories and prices",type:"carousel",props:{images:[{src:{src:"{{menuItems.photo}}",alt:"{{menuItems.dishName}}"},legend:"{{menuItems.dishName}} - {{menuItems.category}} \u2022 ${{menuItems.price}}"}],colorPreset:{color:"neutral-50"},borderRadius:"rounded-lg",padding:"1rem",loop:{over:"menuItems"}}},{description:"Travel destinations carousel using destinations query with country information",type:"carousel",props:{images:[{src:{src:"{{destinations.heroImage}}",alt:"{{destinations.cityName}}"},legend:"{{destinations.cityName}}, {{destinations.country}} - {{destinations.bestTimeToVisit}}"}],colorPreset:{color:"secondary-50"},borderRadius:"rounded-2xl",padding:"2.5rem",loop:{over:"destinations"}}},{description:"Art collection carousel using artworks query with artist and year information",type:"carousel",props:{images:[{src:{src:"{{artworks.imageUrl}}",alt:"{{artworks.title}}"},legend:"{{artworks.title}} by {{artworks.artist}} ({{artworks.year}}) - {{artworks.medium}}"}],colorPreset:{color:"accent-100"},borderRadius:"rounded-sm",padding:"3rem",loop:{over:"artworks"}}}];export{P as a,b};
4
- //# sourceMappingURL=chunk-NJGXC7D6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/carousel.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TbCarouselHorizontal } from \"react-icons/tb\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { imageRef } from \"../props/image\";\nimport { string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { roundingRef } from \"../props/border\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"carousel\",\n name: \"Carousel\",\n description: \"An image carousel with navigation arrows and dots or numbers indicator\",\n aiInstructions:\n \"Use this brick to create an image carousel or slideshow. It can display multiple images that users can navigate through using arrows or dots. Each image can have an optional legend or caption. This brick is ideal for showcasing portfolios, product images, or any visual content in an engaging way.\",\n category: \"media\",\n defaultInspectorTab: \"content\",\n consumesMultipleQueryRows: true,\n minHeight: {\n desktop: 200,\n },\n minWidth: {\n desktop: 300,\n },\n icon: TbCarouselHorizontal,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"1rem\",\n description: \"Padding inside the carousel.\",\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 images: Type.Optional(\n Type.Array(\n Type.Object({\n src: imageRef({\n \"ui:responsive\": \"desktop\",\n \"ui:no-alt-text\": true,\n \"ui:no-object-options\": true,\n }),\n legend: string(\"Legend\"),\n }),\n {\n title: \"Images\",\n default: [],\n maxItems: 12,\n metadata: {\n category: \"content\",\n },\n },\n ),\n ),\n borderRadius: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n loop: Type.Optional(loopRef()),\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: \"Basic image carousel with legends\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Slide+1\",\n alt: \"First slide\",\n },\n legend: \"Beautiful landscape\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Slide+2\",\n alt: \"Second slide\",\n },\n legend: \"Amazing architecture\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Slide+3\",\n alt: \"Third slide\",\n },\n legend: \"Stunning nature\",\n },\n ],\n },\n },\n {\n description: \"Product showcase carousel with rounded corners and padding\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Product+1\",\n alt: \"Product 1\",\n },\n legend: \"Premium Headphones - $199\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Product+2\",\n alt: \"Product 2\",\n },\n legend: \"Wireless Speaker - $149\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Product+3\",\n alt: \"Product 3\",\n },\n legend: \"Smart Watch - $299\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Product+4\",\n alt: \"Product 4\",\n },\n legend: \"Laptop Stand - $79\",\n },\n ],\n borderRadius: \"rounded-xl\",\n padding: \"2rem\",\n colorPreset: { color: \"gray-50\" },\n },\n },\n {\n description: \"Portfolio carousel with minimal styling\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/900x600.png?text=Portfolio+1\",\n alt: \"Portfolio piece 1\",\n },\n legend: \"Web Design Project\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x600.png?text=Portfolio+2\",\n alt: \"Portfolio piece 2\",\n },\n legend: \"Brand Identity Design\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x600.png?text=Portfolio+3\",\n alt: \"Portfolio piece 3\",\n },\n legend: \"Mobile App Interface\",\n },\n ],\n borderRadius: \"rounded-none\",\n padding: \"0\",\n },\n },\n {\n description: \"Event photos carousel with primary color theme\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+1\",\n alt: \"Event photo 1\",\n },\n legend: \"Opening Ceremony\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+2\",\n alt: \"Event photo 2\",\n },\n legend: \"Keynote Speaker\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+3\",\n alt: \"Event photo 3\",\n },\n legend: \"Networking Session\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+4\",\n alt: \"Event photo 4\",\n },\n legend: \"Award Ceremony\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+5\",\n alt: \"Event photo 5\",\n },\n legend: \"Closing Remarks\",\n },\n ],\n colorPreset: { color: \"primary-100\" },\n borderRadius: \"rounded-lg\",\n padding: \"1.5rem\",\n },\n },\n {\n description: \"Travel destinations carousel without legends\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/700x450.png?text=Paris\",\n alt: \"Paris cityscape\",\n },\n legend: \"\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/700x450.png?text=Tokyo\",\n alt: \"Tokyo skyline\",\n },\n legend: \"\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/700x450.png?text=New+York\",\n alt: \"New York streets\",\n },\n legend: \"\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/700x450.png?text=London\",\n alt: \"London landmarks\",\n },\n legend: \"\",\n },\n ],\n borderRadius: \"rounded-2xl\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Team members carousel with blue color scheme\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/400x400.png?text=Team+1\",\n alt: \"Team member 1\",\n },\n legend: \"John Smith - CEO\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/400x400.png?text=Team+2\",\n alt: \"Team member 2\",\n },\n legend: \"Sarah Johnson - CTO\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/400x400.png?text=Team+3\",\n alt: \"Team member 3\",\n },\n legend: \"Mike Davis - Design Lead\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/400x400.png?text=Team+4\",\n alt: \"Team member 4\",\n },\n legend: \"Emily Chen - Marketing Director\",\n },\n ],\n colorPreset: { color: \"blue-50\" },\n borderRadius: \"rounded-full\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Recipe steps carousel with detailed descriptions\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Step+1\",\n alt: \"Recipe step 1\",\n },\n legend: \"Step 1: Prepare all ingredients\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Step+2\",\n alt: \"Recipe step 2\",\n },\n legend: \"Step 2: Heat oil in a large pan\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Step+3\",\n alt: \"Recipe step 3\",\n },\n legend: \"Step 3: Add vegetables and sauté\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Step+4\",\n alt: \"Recipe step 4\",\n },\n legend: \"Step 4: Season and serve hot\",\n },\n ],\n colorPreset: { color: \"orange-50\" },\n borderRadius: \"rounded-md\",\n padding: \"1.5rem\",\n },\n },\n {\n description: \"Before and after comparison carousel\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Before+1\",\n alt: \"Before renovation 1\",\n },\n legend: \"Kitchen - Before Renovation\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=After+1\",\n alt: \"After renovation 1\",\n },\n legend: \"Kitchen - After Renovation\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Before+2\",\n alt: \"Before renovation 2\",\n },\n legend: \"Living Room - Before\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=After+2\",\n alt: \"After renovation 2\",\n },\n legend: \"Living Room - After\",\n },\n ],\n colorPreset: { color: \"green-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Art gallery carousel with dramatic styling\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/600x800.png?text=Artwork+1\",\n alt: \"Abstract painting 1\",\n },\n legend: \"Abstract Composition #1 - 2023\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x800.png?text=Artwork+2\",\n alt: \"Abstract painting 2\",\n },\n legend: \"Urban Landscape - 2023\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x800.png?text=Artwork+3\",\n alt: \"Abstract painting 3\",\n },\n legend: \"Color Study #7 - 2024\",\n },\n ],\n colorPreset: { color: \"gray-900\" },\n borderRadius: \"rounded-sm\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Fashion lookbook carousel with purple theme\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+1\",\n alt: \"Fashion look 1\",\n },\n legend: \"Spring Collection - Casual Chic\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+2\",\n alt: \"Fashion look 2\",\n },\n legend: \"Summer Vibes - Beach Ready\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+3\",\n alt: \"Fashion look 3\",\n },\n legend: \"Autumn Elegance - Business\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+4\",\n alt: \"Fashion look 4\",\n },\n legend: \"Winter Style - Cozy Comfort\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+5\",\n alt: \"Fashion look 5\",\n },\n legend: \"Evening Wear - Formal Event\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+6\",\n alt: \"Fashion look 6\",\n },\n legend: \"Weekend Casual - Relaxed Fit\",\n },\n ],\n colorPreset: { color: \"purple-100\" },\n borderRadius: \"rounded-xl\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Car showcase carousel with compact design\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/800x450.png?text=Car+1\",\n alt: \"Sports car 1\",\n },\n legend: \"2024 Sports Coupe\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x450.png?text=Car+2\",\n alt: \"SUV model\",\n },\n legend: \"Family SUV\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x450.png?text=Car+3\",\n alt: \"Electric vehicle\",\n },\n legend: \"Electric Sedan\",\n },\n ],\n colorPreset: { color: \"red-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"0.5rem\",\n },\n },\n {\n description: \"Software features carousel with large padding\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/900x500.png?text=Feature+1\",\n alt: \"Software feature 1\",\n },\n legend: \"Dashboard Analytics - Real-time insights\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x500.png?text=Feature+2\",\n alt: \"Software feature 2\",\n },\n legend: \"Team Collaboration - Work together seamlessly\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x500.png?text=Feature+3\",\n alt: \"Software feature 3\",\n },\n legend: \"Mobile App - Access anywhere, anytime\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x500.png?text=Feature+4\",\n alt: \"Software feature 4\",\n },\n legend: \"Security - Enterprise-grade protection\",\n },\n ],\n colorPreset: { color: \"indigo-50\" },\n borderRadius: \"rounded-2xl\",\n padding: \"4rem\",\n },\n },\n {\n description: \"Dynamic product gallery using products query with pricing and details\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{products.image}}\",\n alt: \"{{products.name}}\",\n },\n legend: \"{{products.name}} - ${{products.price}}\",\n },\n ],\n colorPreset: { color: \"primary-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"1.5rem\",\n loop: {\n over: \"products\",\n },\n },\n },\n {\n description: \"Team member carousel using teamMembers query with roles and departments\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{teamMembers.photo}}\",\n alt: \"{{teamMembers.fullName}}\",\n },\n legend: \"{{teamMembers.fullName}} - {{teamMembers.position}}, {{teamMembers.department}}\",\n },\n ],\n colorPreset: { color: \"secondary-100\" },\n borderRadius: \"rounded-xl\",\n padding: \"2rem\",\n loop: {\n over: \"teamMembers\",\n },\n },\n },\n {\n description: \"Portfolio showcase using portfolioProjects query with client information\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{portfolioProjects.featuredImage}}\",\n alt: \"{{portfolioProjects.projectName}}\",\n },\n legend:\n \"{{portfolioProjects.projectName}} - {{portfolioProjects.clientName}} ({{portfolioProjects.year}})\",\n },\n ],\n colorPreset: { color: \"neutral-100\" },\n borderRadius: \"rounded-md\",\n padding: \"1rem\",\n loop: {\n over: \"portfolioProjects\",\n },\n },\n },\n {\n description: \"Event photo gallery using eventPhotos query with captions and dates\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{eventPhotos.imageUrl}}\",\n alt: \"{{eventPhotos.caption}}\",\n },\n legend: \"{{eventPhotos.caption}} - {{eventPhotos.eventDate}}\",\n },\n ],\n colorPreset: { color: \"accent-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"2rem\",\n loop: {\n over: \"eventPhotos\",\n },\n },\n },\n {\n description: \"Property listings carousel using realEstateProperties query with pricing\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{realEstateProperties.mainPhoto}}\",\n alt: \"{{realEstateProperties.address}}\",\n },\n legend:\n \"{{realEstateProperties.address}} - ${{realEstateProperties.price}} • {{realEstateProperties.bedrooms}}BR/{{realEstateProperties.bathrooms}}BA\",\n },\n ],\n colorPreset: { color: \"primary-100\" },\n borderRadius: \"rounded-xl\",\n padding: \"1.5rem\",\n loop: {\n over: \"realEstateProperties\",\n },\n },\n },\n {\n description: \"Restaurant menu carousel using menuItems query with categories and prices\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{menuItems.photo}}\",\n alt: \"{{menuItems.dishName}}\",\n },\n legend: \"{{menuItems.dishName}} - {{menuItems.category}} • ${{menuItems.price}}\",\n },\n ],\n colorPreset: { color: \"neutral-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"1rem\",\n loop: {\n over: \"menuItems\",\n },\n },\n },\n {\n description: \"Travel destinations carousel using destinations query with country information\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{destinations.heroImage}}\",\n alt: \"{{destinations.cityName}}\",\n },\n legend: \"{{destinations.cityName}}, {{destinations.country}} - {{destinations.bestTimeToVisit}}\",\n },\n ],\n colorPreset: { color: \"secondary-50\" },\n borderRadius: \"rounded-2xl\",\n padding: \"2.5rem\",\n loop: {\n over: \"destinations\",\n },\n },\n },\n {\n description: \"Art collection carousel using artworks query with artist and year information\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{artworks.imageUrl}}\",\n alt: \"{{artworks.title}}\",\n },\n legend: \"{{artworks.title}} by {{artworks.artist}} ({{artworks.year}}) - {{artworks.medium}}\",\n },\n ],\n colorPreset: { color: \"accent-100\" },\n borderRadius: \"rounded-sm\",\n padding: \"3rem\",\n loop: {\n over: \"artworks\",\n },\n },\n },\n];\n"],"mappings":";;2TAAA,OAAS,QAAAA,MAAY,oBACrB,OAAS,wBAAAC,MAA4B,iBAW9B,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,WACN,KAAM,WACN,YAAa,yEACb,eACE,4SACF,SAAU,QACV,oBAAqB,UACrB,0BAA2B,GAC3B,UAAW,CACT,QAAS,GACX,EACA,SAAU,CACR,QAAS,GACX,EACA,KAAMC,EACN,MAAOC,EAAY,CACjB,YAAaC,EAAK,SAChBC,EAAe,CACb,MAAO,OACT,CAAC,CACH,EACA,QAASD,EAAK,SACZE,EAAa,CACX,QAAS,OACT,YAAa,+BACb,kBAAmB,gDACnB,MAAO,UACP,gBAAiB,GACjB,iBAAkB,gBAClB,aAAc,gBAChB,CAAC,CACH,EACA,OAAQF,EAAK,SACXA,EAAK,MACHA,EAAK,OAAO,CACV,IAAKG,EAAS,CACZ,gBAAiB,UACjB,iBAAkB,GAClB,uBAAwB,EAC1B,CAAC,EACD,OAAQC,EAAO,QAAQ,CACzB,CAAC,EACD,CACE,MAAO,SACP,QAAS,CAAC,EACV,SAAU,GACV,SAAU,CACR,SAAU,SACZ,CACF,CACF,CACF,EACA,aAAcJ,EAAK,SACjBK,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,KAAML,EAAK,SAASM,EAAQ,CAAC,CAC/B,CAAC,CACH,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,oCACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,uDACL,IAAK,aACP,EACA,OAAQ,qBACV,EACA,CACE,IAAK,CACH,IAAK,uDACL,IAAK,cACP,EACA,OAAQ,sBACV,EACA,CACE,IAAK,CACH,IAAK,uDACL,IAAK,aACP,EACA,OAAQ,iBACV,CACF,CACF,CACF,EACA,CACE,YAAa,6DACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,yDACL,IAAK,WACP,EACA,OAAQ,2BACV,EACA,CACE,IAAK,CACH,IAAK,yDACL,IAAK,WACP,EACA,OAAQ,yBACV,EACA,CACE,IAAK,CACH,IAAK,yDACL,IAAK,WACP,EACA,OAAQ,oBACV,EACA,CACE,IAAK,CACH,IAAK,yDACL,IAAK,WACP,EACA,OAAQ,oBACV,CACF,EACA,aAAc,aACd,QAAS,OACT,YAAa,CAAE,MAAO,SAAU,CAClC,CACF,EACA,CACE,YAAa,0CACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,2DACL,IAAK,mBACP,EACA,OAAQ,oBACV,EACA,CACE,IAAK,CACH,IAAK,2DACL,IAAK,mBACP,EACA,OAAQ,uBACV,EACA,CACE,IAAK,CACH,IAAK,2DACL,IAAK,mBACP,EACA,OAAQ,sBACV,CACF,EACA,aAAc,eACd,QAAS,GACX,CACF,EACA,CACE,YAAa,iDACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,6DACL,IAAK,eACP,EACA,OAAQ,kBACV,EACA,CACE,IAAK,CACH,IAAK,6DACL,IAAK,eACP,EACA,OAAQ,iBACV,EACA,CACE,IAAK,CACH,IAAK,6DACL,IAAK,eACP,EACA,OAAQ,oBACV,EACA,CACE,IAAK,CACH,IAAK,6DACL,IAAK,eACP,EACA,OAAQ,gBACV,EACA,CACE,IAAK,CACH,IAAK,6DACL,IAAK,eACP,EACA,OAAQ,iBACV,CACF,EACA,YAAa,CAAE,MAAO,aAAc,EACpC,aAAc,aACd,QAAS,QACX,CACF,EACA,CACE,YAAa,+CACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,qDACL,IAAK,iBACP,EACA,OAAQ,EACV,EACA,CACE,IAAK,CACH,IAAK,qDACL,IAAK,eACP,EACA,OAAQ,EACV,EACA,CACE,IAAK,CACH,IAAK,wDACL,IAAK,kBACP,EACA,OAAQ,EACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,kBACP,EACA,OAAQ,EACV,CACF,EACA,aAAc,cACd,QAAS,MACX,CACF,EACA,CACE,YAAa,+CACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,sDACL,IAAK,eACP,EACA,OAAQ,kBACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,eACP,EACA,OAAQ,qBACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,eACP,EACA,OAAQ,0BACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,eACP,EACA,OAAQ,iCACV,CACF,EACA,YAAa,CAAE,MAAO,SAAU,EAChC,aAAc,eACd,QAAS,MACX,CACF,EACA,CACE,YAAa,mDACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,sDACL,IAAK,eACP,EACA,OAAQ,iCACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,eACP,EACA,OAAQ,iCACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,eACP,EACA,OAAQ,qCACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,eACP,EACA,OAAQ,8BACV,CACF,EACA,YAAa,CAAE,MAAO,WAAY,EAClC,aAAc,aACd,QAAS,QACX,CACF,EACA,CACE,YAAa,uCACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,wDACL,IAAK,qBACP,EACA,OAAQ,6BACV,EACA,CACE,IAAK,CACH,IAAK,uDACL,IAAK,oBACP,EACA,OAAQ,4BACV,EACA,CACE,IAAK,CACH,IAAK,wDACL,IAAK,qBACP,EACA,OAAQ,sBACV,EACA,CACE,IAAK,CACH,IAAK,uDACL,IAAK,oBACP,EACA,OAAQ,qBACV,CACF,EACA,YAAa,CAAE,MAAO,UAAW,EACjC,aAAc,aACd,QAAS,MACX,CACF,EACA,CACE,YAAa,6CACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,yDACL,IAAK,qBACP,EACA,OAAQ,gCACV,EACA,CACE,IAAK,CACH,IAAK,yDACL,IAAK,qBACP,EACA,OAAQ,wBACV,EACA,CACE,IAAK,CACH,IAAK,yDACL,IAAK,qBACP,EACA,OAAQ,uBACV,CACF,EACA,YAAa,CAAE,MAAO,UAAW,EACjC,aAAc,aACd,QAAS,MACX,CACF,EACA,CACE,YAAa,8CACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,sDACL,IAAK,gBACP,EACA,OAAQ,iCACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,gBACP,EACA,OAAQ,4BACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,gBACP,EACA,OAAQ,4BACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,gBACP,EACA,OAAQ,6BACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,gBACP,EACA,OAAQ,6BACV,EACA,CACE,IAAK,CACH,IAAK,sDACL,IAAK,gBACP,EACA,OAAQ,8BACV,CACF,EACA,YAAa,CAAE,MAAO,YAAa,EACnC,aAAc,aACd,QAAS,MACX,CACF,EACA,CACE,YAAa,4CACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,qDACL,IAAK,cACP,EACA,OAAQ,mBACV,EACA,CACE,IAAK,CACH,IAAK,qDACL,IAAK,WACP,EACA,OAAQ,YACV,EACA,CACE,IAAK,CACH,IAAK,qDACL,IAAK,kBACP,EACA,OAAQ,gBACV,CACF,EACA,YAAa,CAAE,MAAO,QAAS,EAC/B,aAAc,aACd,QAAS,QACX,CACF,EACA,CACE,YAAa,gDACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,yDACL,IAAK,oBACP,EACA,OAAQ,0CACV,EACA,CACE,IAAK,CACH,IAAK,yDACL,IAAK,oBACP,EACA,OAAQ,+CACV,EACA,CACE,IAAK,CACH,IAAK,yDACL,IAAK,oBACP,EACA,OAAQ,uCACV,EACA,CACE,IAAK,CACH,IAAK,yDACL,IAAK,oBACP,EACA,OAAQ,wCACV,CACF,EACA,YAAa,CAAE,MAAO,WAAY,EAClC,aAAc,cACd,QAAS,MACX,CACF,EACA,CACE,YAAa,wEACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,qBACL,IAAK,mBACP,EACA,OAAQ,yCACV,CACF,EACA,YAAa,CAAE,MAAO,YAAa,EACnC,aAAc,aACd,QAAS,SACT,KAAM,CACJ,KAAM,UACR,CACF,CACF,EACA,CACE,YAAa,0EACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,wBACL,IAAK,0BACP,EACA,OAAQ,iFACV,CACF,EACA,YAAa,CAAE,MAAO,eAAgB,EACtC,aAAc,aACd,QAAS,OACT,KAAM,CACJ,KAAM,aACR,CACF,CACF,EACA,CACE,YAAa,2EACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,sCACL,IAAK,mCACP,EACA,OACE,mGACJ,CACF,EACA,YAAa,CAAE,MAAO,aAAc,EACpC,aAAc,aACd,QAAS,OACT,KAAM,CACJ,KAAM,mBACR,CACF,CACF,EACA,CACE,YAAa,sEACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,2BACL,IAAK,yBACP,EACA,OAAQ,qDACV,CACF,EACA,YAAa,CAAE,MAAO,WAAY,EAClC,aAAc,aACd,QAAS,OACT,KAAM,CACJ,KAAM,aACR,CACF,CACF,EACA,CACE,YAAa,2EACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,qCACL,IAAK,kCACP,EACA,OACE,oJACJ,CACF,EACA,YAAa,CAAE,MAAO,aAAc,EACpC,aAAc,aACd,QAAS,SACT,KAAM,CACJ,KAAM,sBACR,CACF,CACF,EACA,CACE,YAAa,4EACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,sBACL,IAAK,wBACP,EACA,OAAQ,6EACV,CACF,EACA,YAAa,CAAE,MAAO,YAAa,EACnC,aAAc,aACd,QAAS,OACT,KAAM,CACJ,KAAM,WACR,CACF,CACF,EACA,CACE,YAAa,iFACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,6BACL,IAAK,2BACP,EACA,OAAQ,wFACV,CACF,EACA,YAAa,CAAE,MAAO,cAAe,EACrC,aAAc,cACd,QAAS,SACT,KAAM,CACJ,KAAM,cACR,CACF,CACF,EACA,CACE,YAAa,gFACb,KAAM,WACN,MAAO,CACL,OAAQ,CACN,CACE,IAAK,CACH,IAAK,wBACL,IAAK,oBACP,EACA,OAAQ,qFACV,CACF,EACA,YAAa,CAAE,MAAO,YAAa,EACnC,aAAc,aACd,QAAS,OACT,KAAM,CACJ,KAAM,UACR,CACF,CACF,CACF","names":["Type","TbCarouselHorizontal","manifest","defineBrickManifest","TbCarouselHorizontal","defineProps","Type","colorPresetRef","cssLengthRef","imageRef","string","roundingRef","loopRef","examples"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{a as o}from"./chunk-KFM6KXSE.js";import{Type as t}from"@sinclair/typebox";function s(r,e="Text color"){return t.String({title:e,"ai:instructions":"hex/rgb/rgba color or classes like `text-<variant>-<shade>`, variants being `primary`, `secondary`, `accent` and `neutral`, and shades between 50 and 900",default:r,"ui:styleId":"styles:color","ui:field":"color","ui:color-type":"text"})}function l(r={}){return o("styles:color",{...r,"ui:styleId":"styles:color"})}function a(r,e="Border color"){return t.String({title:e,"ai:instructions":"hex/rgb/rgba color or classes like `border-<variant>-<shade>`, variants being `primary`, `secondary`, `accent` and `neutral`, and shades between 50 and 900",default:r,"ui:styleId":"styles:borderColor","ui:field":"color","ui:color-type":"border"})}function c(r={}){return o("styles:borderColor",{...r,"ui:styleId":"styles:borderColor"})}export{s as a,l as b,a as c,c as d};
4
- //# sourceMappingURL=chunk-NM5MMPCF.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{a as o}from"./chunk-AI4GHU7R.js";import{f as a}from"./chunk-GOMXZC4B.js";import{a as t}from"./chunk-AFVJZPLS.js";import{Type as e}from"@sinclair/typebox";var r=e.Object({id:e.String({description:"The unique ID of the page. Use a human readable url-safe slug",examples:["home","about-us","products-list"]}),label:e.String({description:"The label (name) of the page",examples:["Home","About us","Products"]}),sections:e.Array(a,{description:"The sections of the page. See the Section schema"}),attributes:o});function c(){return t(r)}export{r as a,c as b};
4
- //# sourceMappingURL=chunk-OGBMYMZD.js.map
@@ -1 +0,0 @@
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 function getPageSchemaForLLM() {\n return toLLMSchema(pageSchema);\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":";;wHAEA,OAAS,QAAAA,MAAyB,oBAG3B,IAAMC,EAAaC,EAAK,OAAO,CACpC,GAAIA,EAAK,OAAO,CACd,YAAa,gEACb,SAAU,CAAC,OAAQ,WAAY,eAAe,CAChD,CAAC,EACD,MAAOA,EAAK,OAAO,CACjB,YAAa,+BACb,SAAU,CAAC,OAAQ,WAAY,UAAU,CAC3C,CAAC,EACD,SAAUA,EAAK,MAAMC,EAAe,CAClC,YAAa,kDACf,CAAC,EACD,WAAYC,CACd,CAAC,EAEM,SAASC,GAAsB,CACpC,OAAOC,EAAYL,CAAU,CAC/B","names":["Type","pageSchema","Type","sectionSchema","pageAttributesSchema","getPageSchemaForLLM","toLLMSchema"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{a as n}from"./chunk-KFM6KXSE.js";import{Type as s}from"@sinclair/typebox";var e=["px","%","em","rem","vh","vw","dvh","dvw","rlh","lh","cqh","cqw"];function p(t={}){return s.String({title:"Length",description:`A CSS length value. Must be a number with a unit (e.g. "10px", "50%"). The unit can be one of the following: ${e?.join(", ")}.`,default:t.default,"ui:field":"css-length","ui:css-units":e,examples:["100px","50%","2em","1.5rem"],...t})}function c(t={}){return n("styles:cssLength",t)}function g(t){return typeof t!="string"?!1:new RegExp(`^-?\\d+(?:\\.\\d+)?\\s*(${e.join("|")})$`).test(t)}export{e as a,p as b,c,g as d};
4
- //# sourceMappingURL=chunk-OHNYCXPX.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{mergeWith as e,isArray as i}from"lodash-es";function m(r,...n){return e(r,...n,t)}function t(r,n){if(i(r))return n}export{m as a};
4
- //# sourceMappingURL=chunk-OIY3EPHO.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as n}from"@sinclair/typebox";function a(e,s,t){let o={"ui:field":"enum","ui:display":t.displayAs||"select"},{options:r,displayAs:l,...u}=t;return n.Union(r.map(i=>n.Literal(typeof i=="string"?i:i.value,{title:typeof i=="string"?i:i.title,"ui:icon":typeof i=="string"?void 0:i.icon})),{title:e,default:s,...o,...u})}export{a};
4
- //# sourceMappingURL=chunk-PIG623TZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/enum.ts"],"sourcesContent":["import { type SchemaOptions, Type } from \"@sinclair/typebox\";\n\ntype EnumOption = {\n title?: string;\n description?: string;\n value: string;\n icon?: string;\n};\n\nexport function enumProp(\n title: string,\n defaultValue: string,\n opts: Omit<SchemaOptions, \"title\" | \"default\"> & {\n options: EnumOption[] | string[];\n displayAs?: \"radio\" | \"select\" | \"button-group\" | \"icon-group\";\n },\n) {\n const defaultOpts = {\n \"ui:field\": \"enum\",\n \"ui:display\": opts.displayAs || \"select\",\n };\n const { options, displayAs, ...commonOpts } = opts;\n\n return Type.Union(\n options.map((opt) =>\n Type.Literal(typeof opt === \"string\" ? opt : opt.value, {\n title: typeof opt === \"string\" ? opt : opt.title,\n \"ui:icon\": typeof opt === \"string\" ? undefined : opt.icon,\n }),\n ),\n {\n title,\n default: defaultValue,\n ...defaultOpts,\n ...commonOpts,\n },\n );\n}\n"],"mappings":";;AAAA,OAA6B,QAAAA,MAAY,oBASlC,SAASC,EACdC,EACAC,EACAC,EAIA,CACA,IAAMC,EAAc,CAClB,WAAY,OACZ,aAAcD,EAAK,WAAa,QAClC,EACM,CAAE,QAAAE,EAAS,UAAAC,EAAW,GAAGC,CAAW,EAAIJ,EAE9C,OAAOJ,EAAK,MACVM,EAAQ,IAAKG,GACXT,EAAK,QAAQ,OAAOS,GAAQ,SAAWA,EAAMA,EAAI,MAAO,CACtD,MAAO,OAAOA,GAAQ,SAAWA,EAAMA,EAAI,MAC3C,UAAW,OAAOA,GAAQ,SAAW,OAAYA,EAAI,IACvD,CAAC,CACH,EACA,CACE,MAAAP,EACA,QAASC,EACT,GAAGE,EACH,GAAGG,CACL,CACF,CACF","names":["Type","enumProp","title","defaultValue","opts","defaultOpts","options","displayAs","commonOpts","opt"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{c as p}from"./chunk-3YVJ2ELD.js";import{a as c}from"./chunk-RJYZ5FAR.js";import{m as t}from"./chunk-AFVJZPLS.js";import{d as r,f as n}from"./chunk-A3GF4PYW.js";import{b as i}from"./chunk-NM5MMPCF.js";import{c as e}from"./chunk-OHNYCXPX.js";import{PiConfetti as s}from"react-icons/pi";import{Type as o}from"@sinclair/typebox";var g=c({type:"icon",name:"Icon",category:"basic",description:"An icon.",aiInstructions:"Uses iconify references",resizable:!1,staticClasses:"!grow-0",icon:s,props:p({icon:n({default:"mdi:heart"}),size:o.Optional(e({title:"Size",description:"The size of the icon. Can be a CSS length value (e.g. '2em', '24px')",default:"1em","ui:css-units":["em","rem","px"],"ai:instructions":"Use 'em', 'rem', or 'px' for units. Example: '2em', '24px'"})),color:o.Optional(i({title:"Color",default:"currentColor","ui:hide-color-label":!0})),link:o.Optional(r({title:"Link"})),loop:o.Optional(t())},{noGrow:!0})}),k=[{description:"Large heart icon with inherited color and size",type:"icon",props:{icon:"mdi:heart"}},{description:"Shopping cart icon",type:"icon",props:{icon:"mdi:cart",size:"1.2em"}},{description:"Social media icon with blue color and link",type:"icon",props:{icon:"mdi:facebook",size:"1.5em",color:"#1877f2",link:"https://facebook.com/yourpage"}},{description:"Warning icon with orange color for alerts",type:"icon",props:{icon:"mdi:alert-triangle",size:"1.8em",color:"#f59e0b"}},{description:"Email contact icon with link",type:"icon",props:{icon:"mdi:email",size:"1.3em",color:"#4f46e5",link:"mailto:contact@example.com"}},{description:"Phone icon with green color",type:"icon",props:{icon:"mdi:phone",size:"1.4em",color:"#10b981"}},{description:"Location pin icon with red color",type:"icon",props:{icon:"mdi:map-marker",size:"2.2em",color:"#ef4444"}},{description:"Twitter/X icon with custom color and link",type:"icon",props:{icon:"mdi:twitter",size:"1.6em",color:"#000000",link:"https://x.com/yourhandle"}},{description:"Star rating icon with gold color",type:"icon",props:{icon:"mdi:star",size:"1.2em",color:"#fbbf24"}},{description:"Download icon with link and purple color",type:"icon",props:{icon:"mdi:download",size:"1.5em",color:"#8b5cf6",link:"/files/brochure.pdf"}},{description:"Menu hamburger icon for navigation",type:"icon",props:{icon:"mdi:menu",size:"1.8em",color:"#374151"}},{description:"Search icon with dark color",type:"icon",props:{icon:"mdi:magnify",size:"1.1em",color:"#1f2937"}}];export{g as a,k as b};
4
- //# sourceMappingURL=chunk-PLSV746R.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/icon.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { PiConfetti } from \"react-icons/pi\";\nimport { iconRef, urlOrPageIdRef } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { colorRef } from \"../props/color\";\nimport { loopRef } from \"../props/dynamic\";\n\nexport const manifest = defineBrickManifest({\n type: \"icon\",\n name: \"Icon\",\n category: \"basic\",\n description: \"An icon.\",\n aiInstructions: \"Uses iconify references\",\n resizable: false,\n staticClasses: \"!grow-0\",\n icon: PiConfetti,\n props: defineProps(\n {\n icon: iconRef({\n default: \"mdi:heart\",\n }),\n size: Type.Optional(\n cssLengthRef({\n title: \"Size\",\n description: \"The size of the icon. Can be a CSS length value (e.g. '2em', '24px')\",\n default: \"1em\",\n \"ui:css-units\": [\"em\", \"rem\", \"px\"],\n \"ai:instructions\": \"Use 'em', 'rem', or 'px' for units. Example: '2em', '24px'\",\n }),\n ),\n color: Type.Optional(\n colorRef({\n title: \"Color\",\n default: \"currentColor\",\n \"ui:hide-color-label\": true,\n }),\n ),\n link: Type.Optional(urlOrPageIdRef({ title: \"Link\" })),\n loop: Type.Optional(loopRef()),\n },\n { noGrow: true },\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: \"Large heart icon with inherited color and size\",\n type: \"icon\",\n props: {\n icon: \"mdi:heart\",\n },\n },\n {\n description: \"Shopping cart icon\",\n type: \"icon\",\n props: {\n icon: \"mdi:cart\",\n size: \"1.2em\",\n },\n },\n {\n description: \"Social media icon with blue color and link\",\n type: \"icon\",\n props: {\n icon: \"mdi:facebook\",\n size: \"1.5em\",\n color: \"#1877f2\",\n link: \"https://facebook.com/yourpage\",\n },\n },\n {\n description: \"Warning icon with orange color for alerts\",\n type: \"icon\",\n props: {\n icon: \"mdi:alert-triangle\",\n size: \"1.8em\",\n color: \"#f59e0b\",\n },\n },\n {\n description: \"Email contact icon with link\",\n type: \"icon\",\n props: {\n icon: \"mdi:email\",\n size: \"1.3em\",\n color: \"#4f46e5\",\n link: \"mailto:contact@example.com\",\n },\n },\n {\n description: \"Phone icon with green color\",\n type: \"icon\",\n props: {\n icon: \"mdi:phone\",\n size: \"1.4em\",\n color: \"#10b981\",\n },\n },\n {\n description: \"Location pin icon with red color\",\n type: \"icon\",\n props: {\n icon: \"mdi:map-marker\",\n size: \"2.2em\",\n color: \"#ef4444\",\n },\n },\n {\n description: \"Twitter/X icon with custom color and link\",\n type: \"icon\",\n props: {\n icon: \"mdi:twitter\",\n size: \"1.6em\",\n color: \"#000000\",\n link: \"https://x.com/yourhandle\",\n },\n },\n {\n description: \"Star rating icon with gold color\",\n type: \"icon\",\n props: {\n icon: \"mdi:star\",\n size: \"1.2em\",\n color: \"#fbbf24\",\n },\n },\n {\n description: \"Download icon with link and purple color\",\n type: \"icon\",\n props: {\n icon: \"mdi:download\",\n size: \"1.5em\",\n color: \"#8b5cf6\",\n link: \"/files/brochure.pdf\",\n },\n },\n {\n description: \"Menu hamburger icon for navigation\",\n type: \"icon\",\n props: {\n icon: \"mdi:menu\",\n size: \"1.8em\",\n color: \"#374151\",\n },\n },\n {\n description: \"Search icon with dark color\",\n type: \"icon\",\n props: {\n icon: \"mdi:magnify\",\n size: \"1.1em\",\n color: \"#1f2937\",\n },\n },\n];\n"],"mappings":";;uPAEA,OAAS,cAAAA,MAAkB,iBAG3B,OAAS,QAAAC,MAAY,oBAKd,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,OACN,KAAM,OACN,SAAU,QACV,YAAa,WACb,eAAgB,0BAChB,UAAW,GACX,cAAe,UACf,KAAMC,EACN,MAAOC,EACL,CACE,KAAMC,EAAQ,CACZ,QAAS,WACX,CAAC,EACD,KAAMC,EAAK,SACTC,EAAa,CACX,MAAO,OACP,YAAa,uEACb,QAAS,MACT,eAAgB,CAAC,KAAM,MAAO,IAAI,EAClC,kBAAmB,4DACrB,CAAC,CACH,EACA,MAAOD,EAAK,SACVE,EAAS,CACP,MAAO,QACP,QAAS,eACT,sBAAuB,EACzB,CAAC,CACH,EACA,KAAMF,EAAK,SAASG,EAAe,CAAE,MAAO,MAAO,CAAC,CAAC,EACrD,KAAMH,EAAK,SAASI,EAAQ,CAAC,CAC/B,EACA,CAAE,OAAQ,EAAK,CACjB,CACF,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,iDACb,KAAM,OACN,MAAO,CACL,KAAM,WACR,CACF,EACA,CACE,YAAa,qBACb,KAAM,OACN,MAAO,CACL,KAAM,WACN,KAAM,OACR,CACF,EACA,CACE,YAAa,6CACb,KAAM,OACN,MAAO,CACL,KAAM,eACN,KAAM,QACN,MAAO,UACP,KAAM,+BACR,CACF,EACA,CACE,YAAa,4CACb,KAAM,OACN,MAAO,CACL,KAAM,qBACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,+BACb,KAAM,OACN,MAAO,CACL,KAAM,YACN,KAAM,QACN,MAAO,UACP,KAAM,4BACR,CACF,EACA,CACE,YAAa,8BACb,KAAM,OACN,MAAO,CACL,KAAM,YACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,mCACb,KAAM,OACN,MAAO,CACL,KAAM,iBACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,4CACb,KAAM,OACN,MAAO,CACL,KAAM,cACN,KAAM,QACN,MAAO,UACP,KAAM,0BACR,CACF,EACA,CACE,YAAa,mCACb,KAAM,OACN,MAAO,CACL,KAAM,WACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,2CACb,KAAM,OACN,MAAO,CACL,KAAM,eACN,KAAM,QACN,MAAO,UACP,KAAM,qBACR,CACF,EACA,CACE,YAAa,qCACb,KAAM,OACN,MAAO,CACL,KAAM,WACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,8BACb,KAAM,OACN,MAAO,CACL,KAAM,cACN,KAAM,QACN,MAAO,SACT,CACF,CACF","names":["PiConfetti","Type","manifest","defineBrickManifest","PiConfetti","defineProps","iconRef","Type","cssLengthRef","colorRef","urlOrPageIdRef","loopRef","examples"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{b as n,c as w}from"./chunk-R6ATC4TC.js";import{a as g,b as z}from"./chunk-CFF6Q7O7.js";import{a as l,b as A}from"./chunk-IKC3FK7L.js";import{a as x,b as C}from"./chunk-E6XEI7IK.js";import{a as c,b as F}from"./chunk-SQ5T4AT5.js";import{a as M,b as G}from"./chunk-G5CJU6RD.js";import{a as E,b as H}from"./chunk-PSTFJ5IJ.js";import{a as m,b as T}from"./chunk-NJGXC7D6.js";import{a as i,b as L}from"./chunk-SXHDQ64Z.js";import{a as o,b as W}from"./chunk-QX6OGRRT.js";import{a as d,b as I}from"./chunk-FLOMNC6J.js";import{a as y,b as P}from"./chunk-PLSV746R.js";import{a as r,b as j}from"./chunk-WBZW5LVH.js";import{a as f,b as q}from"./chunk-WYVJE6J5.js";import{a as t,b as v}from"./chunk-I3VL6SRH.js";import{a as p,b as D}from"./chunk-B3EATRFX.js";import{a as s,b as R}from"./chunk-IKHZD2JH.js";import{a,b as S}from"./chunk-PXI7AHWS.js";import{a as k,c as B}from"./chunk-SY6DZLTC.js";import{a as b,c as h}from"./chunk-7A2JNQX3.js";import{b as e}from"./chunk-RJYZ5FAR.js";import{a as u}from"./chunk-JMN3HTZU.js";var fe={[M.type]:M,[o.type]:o,[r.type]:r,[E.type]:E,[a.type]:a,[n.type]:n,[i.type]:i,[g.type]:g,[f.type]:f,[m.type]:m,[k.type]:k,[b.type]:b,[s.type]:s,[y.type]:y,[l.type]:l,[p.type]:p,[x.type]:x,[c.type]:c,[t.type]:t,[d.type]:d},ne={[M.type]:e(M),[o.type]:e(o),[r.type]:e(r),[E.type]:e(E),[a.type]:e(a),[g.type]:e(g),[n.type]:e(n),[i.type]:e(i),[f.type]:e(f),[m.type]:e(m),[k.type]:e(k),[b.type]:e(b),[s.type]:e(s),[y.type]:e(y),[l.type]:e(l),[p.type]:e(p),[x.type]:e(x),[c.type]:e(c),[t.type]:e(t),[d.type]:e(d)},le=u([M.type,o.type,r.type,E.type,a.type,n.type,i.type,f.type,m.type,s.type,y.type,l.type,p.type,x.type,c.type,t.type,d.type],{title:"Brick type"}),xe={[M.type]:G,[o.type]:W,[r.type]:j,[E.type]:H,[a.type]:S,[n.type]:w,[i.type]:L,[g.type]:z,[f.type]:q,[m.type]:T,[k.type]:B,[b.type]:h,[s.type]:R,[y.type]:P,[l.type]:A,[p.type]:D,[x.type]:C,[c.type]:F,[t.type]:v,[d.type]:I};export{fe as a,ne as b,le as c,xe as d};
4
- //# sourceMappingURL=chunk-PSCN3VVA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/all-manifests.ts"],"sourcesContent":["import { examples as accordionExamples, manifest as accordionManifest } from \"./accordion.manifest\";\nimport { examples as boxExamples, manifest as boxManifest } from \"./box.manifest\";\nimport { examples as buttonExamples, manifest as buttonManifest } from \"./button.manifest\";\nimport { examples as cardExamples, manifest as cardManifest } from \"./card.manifest\";\nimport { examples as carouselExamples, manifest as carouselManifest } from \"./carousel.manifest\";\nimport { examples as footerExamples, manifest as footerManifest } from \"./footer.manifest\";\nimport { examples as formExamples, manifest as formManifest } from \"./form.manifest\";\nimport { examples as heroExamples, manifest as heroManifest } from \"./hero.manifest\";\nimport { examples as iconExamples, manifest as iconManifest } from \"./icon.manifest\";\nimport { examples as imageExamples, manifest as imageManifest } from \"./image.manifest\";\nimport { examples as imagesWallExamples, manifest as imagesWallManifest } from \"./images-gallery.manifest\";\nimport { examples as mapExamples, manifest as mapManifest } from \"./map.manifest\";\nimport { examples as navbarExamples, manifest as navbarManifest } from \"./navbar.manifest\";\nimport { examples as sidebarExamples, manifest as sidebarManifest } from \"./sidebar.manifest\";\nimport { examples as socialLinksExamples, manifest as socialLinksManifest } from \"./social-links.manifest\";\nimport { examples as spacerExamples, manifest as spacerManifest } from \"./spacer.manifest\";\nimport { examples as testimonialsExamples, manifest as testimonialsManifest } from \"./testimonials.manifest\";\nimport { examples as textExamples, manifest as textManifest } from \"./text.manifest\";\nimport { examples as videoExamples, manifest as videoManifest } from \"./video.manifest\";\nimport { examples as htmlExamples, manifest as htmlManifest } from \"./html.manifest\";\nimport { getBrickManifestDefaults, type BrickDefaults, type BrickManifest } from \"../../brick-manifest\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport type { Static } from \"@sinclair/typebox\";\n\nexport const manifests: Record<string, BrickManifest> = {\n [textManifest.type]: textManifest,\n [heroManifest.type]: heroManifest,\n [imageManifest.type]: imageManifest,\n [videoManifest.type]: videoManifest,\n [cardManifest.type]: cardManifest,\n [mapManifest.type]: mapManifest,\n [formManifest.type]: formManifest,\n [sidebarManifest.type]: sidebarManifest,\n [imagesWallManifest.type]: imagesWallManifest,\n [carouselManifest.type]: carouselManifest,\n [navbarManifest.type]: navbarManifest,\n [footerManifest.type]: footerManifest,\n [buttonManifest.type]: buttonManifest,\n [iconManifest.type]: iconManifest,\n [socialLinksManifest.type]: socialLinksManifest,\n [boxManifest.type]: boxManifest,\n [spacerManifest.type]: spacerManifest,\n [testimonialsManifest.type]: testimonialsManifest,\n [accordionManifest.type]: accordionManifest,\n [htmlManifest.type]: htmlManifest,\n};\n\nexport const defaultProps: Record<keyof typeof manifests, BrickDefaults> = {\n [textManifest.type]: getBrickManifestDefaults(textManifest),\n [heroManifest.type]: getBrickManifestDefaults(heroManifest),\n [imageManifest.type]: getBrickManifestDefaults(imageManifest),\n [videoManifest.type]: getBrickManifestDefaults(videoManifest),\n [cardManifest.type]: getBrickManifestDefaults(cardManifest),\n [sidebarManifest.type]: getBrickManifestDefaults(sidebarManifest),\n [mapManifest.type]: getBrickManifestDefaults(mapManifest),\n [formManifest.type]: getBrickManifestDefaults(formManifest),\n [imagesWallManifest.type]: getBrickManifestDefaults(imagesWallManifest),\n [carouselManifest.type]: getBrickManifestDefaults(carouselManifest),\n [navbarManifest.type]: getBrickManifestDefaults(navbarManifest),\n [footerManifest.type]: getBrickManifestDefaults(footerManifest),\n [buttonManifest.type]: getBrickManifestDefaults(buttonManifest),\n [iconManifest.type]: getBrickManifestDefaults(iconManifest),\n [socialLinksManifest.type]: getBrickManifestDefaults(socialLinksManifest),\n [boxManifest.type]: getBrickManifestDefaults(boxManifest),\n [spacerManifest.type]: getBrickManifestDefaults(spacerManifest),\n [testimonialsManifest.type]: getBrickManifestDefaults(testimonialsManifest),\n [accordionManifest.type]: getBrickManifestDefaults(accordionManifest),\n [htmlManifest.type]: getBrickManifestDefaults(htmlManifest),\n};\n\n// Do not include footer, navbar and sidebar\nexport const brickTypes = StringEnum<(keyof typeof manifests)[]>(\n [\n textManifest.type,\n heroManifest.type,\n imageManifest.type,\n videoManifest.type,\n cardManifest.type,\n mapManifest.type,\n formManifest.type,\n imagesWallManifest.type,\n carouselManifest.type,\n buttonManifest.type,\n iconManifest.type,\n socialLinksManifest.type,\n boxManifest.type,\n spacerManifest.type,\n testimonialsManifest.type,\n accordionManifest.type,\n htmlManifest.type,\n ],\n {\n title: \"Brick type\",\n },\n);\n\nexport type BrickType = Static<typeof brickTypes>;\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\nexport const examples: Record<string, { description: string; type: string; props: any }[]> = {\n [textManifest.type]: textExamples,\n [heroManifest.type]: heroExamples,\n [imageManifest.type]: imageExamples,\n [videoManifest.type]: videoExamples,\n [cardManifest.type]: cardExamples,\n [mapManifest.type]: mapExamples,\n [formManifest.type]: formExamples,\n [sidebarManifest.type]: sidebarExamples,\n [imagesWallManifest.type]: imagesWallExamples,\n [carouselManifest.type]: carouselExamples,\n [navbarManifest.type]: navbarExamples,\n [footerManifest.type]: footerExamples,\n [buttonManifest.type]: buttonExamples,\n [iconManifest.type]: iconExamples,\n [socialLinksManifest.type]: socialLinksExamples,\n [boxManifest.type]: boxExamples,\n [spacerManifest.type]: spacerExamples,\n [testimonialsManifest.type]: testimonialsExamples,\n [accordionManifest.type]: accordionExamples,\n [htmlManifest.type]: htmlExamples,\n};\n"],"mappings":"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","names":["manifests","manifest","defaultProps","getBrickManifestDefaults","brickTypes","StringEnum","examples"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{c as s}from"./chunk-3YVJ2ELD.js";import{a as p}from"./chunk-RJYZ5FAR.js";import{a as t}from"./chunk-A3GF4PYW.js";import{b as r}from"./chunk-4BTB3MU2.js";import{b as o,d as i}from"./chunk-ZTZJHY4E.js";import{c as d}from"./chunk-OHNYCXPX.js";import{RxVideo as n}from"react-icons/rx";import{Type as e}from"@sinclair/typebox";var w=p({type:"video",name:"Video",category:"media",description:"An embedded video player for YouTube / Vimeo / Wistia links",icon:n,defaultWidth:{mobile:"auto",desktop:`${360*16/9}px`},defaultHeight:{mobile:"168px",desktop:"360px"},minWidth:{mobile:300,desktop:360*16/9},minHeight:{mobile:168,desktop:360},props:s({url:t("Video URL",{description:"URL of the video to embed. It can be a YouTube link or an embed link. It also supports Vimeo and Wistia links.",default:"https://www.youtube.com/watch?v=dQw4w9WgXcQ",metadata:{category:"content","ui:responsive":"desktop"}}),padding:e.Optional(d({description:"Padding inside the video player.","ai:instructions":"Use only a single value like '1rem' or '10px'",title:"Padding","ui:responsive":!0,"ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),rounding:e.Optional(i({default:"rounded-md"})),border:e.Optional(o()),shadow:e.Optional(r())})}),b=[{description:"A YouTube video",type:"video",props:{url:"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}},{description:"An embedded YouTube video",type:"video",props:{url:"https://www.youtube.com/embed/dQw4w9WgXcQ"}},{description:"A Vimeo video",type:"video",props:{url:"https://vimeo.com/123456789"}},{description:"Dynamic course video using course query",type:"video",props:{url:"{{course.videoUrl}}",padding:"1rem",rounding:"rounded-lg",shadow:"shadow-md"}},{description:"Dynamic product demo video using product query",type:"video",props:{url:"{{product.demoVideoUrl}}",padding:"0.5rem",rounding:"rounded-xl",shadow:"shadow-lg",border:{width:"border-2",color:"border-primary-300"}}}];export{w as a,b};
4
- //# sourceMappingURL=chunk-PSTFJ5IJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/video.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { RxVideo } from \"react-icons/rx\";\nimport { string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport { Type } from \"@sinclair/typebox\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"video\",\n name: \"Video\",\n category: \"media\",\n description: \"An embedded video player for YouTube / Vimeo / Wistia links\",\n icon: RxVideo,\n defaultWidth: {\n mobile: \"auto\",\n desktop: `${(360 * 16) / 9}px`, // 16:9 aspect ratio\n },\n defaultHeight: {\n mobile: \"168px\",\n desktop: \"360px\", // 16:9 aspect ratio\n },\n minWidth: {\n mobile: 300,\n desktop: (360 * 16) / 9,\n },\n minHeight: {\n mobile: 168,\n desktop: 360, // 16:9 aspect ratio\n },\n props: defineProps({\n url: string(\"Video URL\", {\n description:\n \"URL of the video to embed. It can be a YouTube link or an embed link. It also supports Vimeo and Wistia links.\",\n default: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n metadata: {\n category: \"content\",\n \"ui:responsive\": \"desktop\",\n },\n }),\n padding: Type.Optional(\n cssLengthRef({\n description: \"Padding inside the video player.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n shadow: Type.Optional(shadowRef()),\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 YouTube video\",\n type: \"video\",\n props: {\n url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n },\n },\n {\n description: \"An embedded YouTube video\",\n type: \"video\",\n props: {\n url: \"https://www.youtube.com/embed/dQw4w9WgXcQ\",\n },\n },\n {\n description: \"A Vimeo video\",\n type: \"video\",\n props: {\n url: \"https://vimeo.com/123456789\",\n },\n },\n {\n description: \"Dynamic course video using course query\",\n type: \"video\",\n props: {\n url: \"{{course.videoUrl}}\",\n padding: \"1rem\",\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic product demo video using product query\",\n type: \"video\",\n props: {\n url: \"{{product.demoVideoUrl}}\",\n padding: \"0.5rem\",\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n border: {\n width: \"border-2\",\n color: \"border-primary-300\",\n },\n },\n },\n];\n"],"mappings":";;uPAEA,OAAS,WAAAA,MAAe,iBAKxB,OAAS,QAAAC,MAAY,oBAGd,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,QACN,KAAM,QACN,SAAU,QACV,YAAa,8DACb,KAAMC,EACN,aAAc,CACZ,OAAQ,OACR,QAAS,GAAI,IAAM,GAAM,CAAC,IAC5B,EACA,cAAe,CACb,OAAQ,QACR,QAAS,OACX,EACA,SAAU,CACR,OAAQ,IACR,QAAU,IAAM,GAAM,CACxB,EACA,UAAW,CACT,OAAQ,IACR,QAAS,GACX,EACA,MAAOC,EAAY,CACjB,IAAKC,EAAO,YAAa,CACvB,YACE,iHACF,QAAS,8CACT,SAAU,CACR,SAAU,UACV,gBAAiB,SACnB,CACF,CAAC,EACD,QAASC,EAAK,SACZC,EAAa,CACX,YAAa,mCACb,kBAAmB,gDACnB,MAAO,UACP,gBAAiB,GACjB,iBAAkB,gBAClB,aAAc,gBAChB,CAAC,CACH,EACA,SAAUD,EAAK,SACbE,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,OAAQF,EAAK,SAASG,EAAU,CAAC,EACjC,OAAQH,EAAK,SAASI,EAAU,CAAC,CACnC,CAAC,CACH,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,kBACb,KAAM,QACN,MAAO,CACL,IAAK,6CACP,CACF,EACA,CACE,YAAa,4BACb,KAAM,QACN,MAAO,CACL,IAAK,2CACP,CACF,EACA,CACE,YAAa,gBACb,KAAM,QACN,MAAO,CACL,IAAK,6BACP,CACF,EACA,CACE,YAAa,0CACb,KAAM,QACN,MAAO,CACL,IAAK,sBACL,QAAS,OACT,SAAU,aACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,iDACb,KAAM,QACN,MAAO,CACL,IAAK,2BACL,QAAS,SACT,SAAU,aACV,OAAQ,YACR,OAAQ,CACN,MAAO,WACP,MAAO,oBACT,CACF,CACF,CACF","names":["RxVideo","Type","manifest","defineBrickManifest","RxVideo","defineProps","string","Type","cssLengthRef","roundingRef","borderRef","shadowRef","examples"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{c as d}from"./chunk-3YVJ2ELD.js";import{a as c}from"./chunk-RJYZ5FAR.js";import{m as p}from"./chunk-AFVJZPLS.js";import{b as n}from"./chunk-CCI4C3TM.js";import{f as t}from"./chunk-5YRC3IT3.js";import{b as a}from"./chunk-4BTB3MU2.js";import{b as r,d as i}from"./chunk-ZTZJHY4E.js";import{c as s}from"./chunk-CZRCW5EN.js";import{a as o}from"./chunk-JMN3HTZU.js";import{BsCardText as m}from"react-icons/bs";import{Type as e}from"@sinclair/typebox";var I=c({type:"card",name:"Card",description:"A card that can have a title, image, and content.",aiInstructions:"Use this brick to create cards that contain an image, title, and text content. Cards are useful for displaying information in a concise and visually appealing way.",icon:m,defaultWidth:{desktop:"400px",mobile:"100%"},minWidth:{desktop:300},minHeight:{mobile:200,desktop:200},maxWidth:{desktop:650},props:d({colorPreset:e.Optional(s({title:"Color preset",default:{color:"base-100"}})),cardImage:e.Optional(n({"ui:responsive":"desktop",metadata:{category:"content"}})),imagePosition:e.Optional(o(["top","middle","bottom","left","right"],{enumNames:["Top","Middle","Bottom","Left","Right"],title:"Image Position",description:"Where the image should be placed in the card",default:"top","ui:responsive":"desktop",metadata:{category:"content",filter:(g,l)=>!!l.cardImage?.src}})),noTitle:e.Optional(e.Boolean({title:"No Title",description:"Whether to hide the card title",default:!1,"ui:responsive":"desktop"})),title:e.Optional(t({title:"Title"})),text:e.Optional(t({title:"Text"})),rounding:e.Optional(i({default:"rounded-md"})),border:e.Optional(r({})),shadow:e.Optional(a({default:"shadow-sm"})),loop:e.Optional(p())})}),R=[{description:"A simple card with a title and content",type:"card",props:{title:"Card Title",text:"This is the body of the card."}},{description:"Product card with image on the left",type:"card",props:{cardImage:{src:"https://via.placeholder.com/200x200",alt:"Product image"},title:"Premium Headphones",text:"High-quality wireless headphones with noise cancellation and 30-hour battery life."}},{description:"Feature card with large padding and background",type:"card",props:{title:"Key Feature",text:"This feature provides exceptional value and enhances user experience significantly."}},{description:"Blog post card with image at the bottom",type:"card",props:{title:"The Future of Technology",text:"Exploring emerging trends and innovations that will shape our digital landscape in the coming decade.",cardImage:{src:"https://via.placeholder.com/400x200",alt:"Technology concept"}}},{description:"Testimonial card with right-side image",type:"card",props:{title:"Customer Review",text:'"This product exceeded my expectations. The quality is outstanding and the customer service is top-notch!"',cardImage:{src:"https://via.placeholder.com/150x150",alt:"Customer photo"}}},{description:"Minimal centered card without image",type:"card",props:{title:"Simple Announcement",text:"Important updates will be posted here regularly."}},{description:"Event card with multiple variants",type:"card",props:{cardImage:{src:"https://via.placeholder.com/400x250",alt:"Event venue"},title:"Annual Conference 2025",text:"Join us for three days of inspiring talks, networking opportunities, and hands-on workshops."}},{description:"News article card with compact layout",type:"card",props:{cardImage:{src:"https://via.placeholder.com/120x120",alt:"News thumbnail"},title:"Breaking News Update",text:"Latest developments in the ongoing story with expert analysis and community reactions."}},{description:"Call-to-action card with prominent styling",type:"card",props:{title:"Get Started Today",text:"Transform your workflow with our powerful tools. Sign up now and get 30 days free!"}},{description:"Dynamic product card using products query with pricing and details",type:"card",props:{cardImage:{src:"{{products.image}}",alt:"{{products.name}}"},title:"{{products.name}}",text:"{{products.description}}<br><strong>Price: ${{products.price}}</strong><br>Category: {{products.category}}",colorPreset:{color:"primary-50"},border:{width:"border",color:"border-primary-200"},rounding:"rounded-lg",shadow:"shadow-md",loop:{over:"products"}}},{description:"Employee profile card using teamMembers query with contact information",type:"card",props:{cardImage:{src:"{{teamMembers.photo}}",alt:"Photo of {{teamMembers.fullName}}"},imagePosition:"top",title:"{{teamMembers.fullName}}",text:"<strong>{{teamMembers.position}}</strong><br>{{teamMembers.department}}<br>Email: {{teamMembers.email}}<br>Phone: {{teamMembers.phone}}",colorPreset:{color:"neutral-100"},rounding:"rounded-xl",shadow:"shadow-lg",loop:{over:"teamMembers"}}},{description:"Blog post card using blogPosts query with author and date",type:"card",props:{cardImage:{src:"{{blogPosts.featuredImage}}",alt:"{{blogPosts.title}}"},imagePosition:"top",title:"{{blogPosts.title}}",text:"{{blogPosts.excerpt}}<br><br><em>By {{blogPosts.author}} \u2022 {{blogPosts.publishDate}}</em><br>Tags: {{blogPosts.tags}}",colorPreset:{color:"secondary-50"},border:{width:"border",color:"border-secondary-300"},rounding:"rounded-md",shadow:"shadow-sm",loop:{over:"blogPosts"}}},{description:"Event listing card using upcomingEvents query with venue details",type:"card",props:{cardImage:{src:"{{upcomingEvents.banner}}",alt:"{{upcomingEvents.title}}"},imagePosition:"top",title:"{{upcomingEvents.title}}",text:"<strong>{{upcomingEvents.date}} at {{upcomingEvents.time}}</strong><br>{{upcomingEvents.venue}}, {{upcomingEvents.city}}<br><br>{{upcomingEvents.description}}<br><br>Tickets: ${{upcomingEvents.price}}",colorPreset:{color:"accent-100"},border:{width:"border-2",color:"border-accent-400"},rounding:"rounded-lg",shadow:"shadow-md",loop:{over:"upcomingEvents"}}},{description:"Testimonial card using customerReviews query with ratings",type:"card",props:{cardImage:{src:"{{customerReviews.customerPhoto}}",alt:"{{customerReviews.customerName}}"},imagePosition:"left",title:"{{customerReviews.customerName}}",text:'"{{customerReviews.review}}"<br><br><strong>Rating: {{customerReviews.rating}}/5 stars</strong><br>{{customerReviews.company}} \u2022 {{customerReviews.position}}',colorPreset:{color:"neutral-50"},rounding:"rounded-xl",shadow:"shadow-lg",loop:{over:"customerReviews"}}},{description:"Service offering card using companyServices query with pricing tiers",type:"card",props:{cardImage:{src:"{{companyServices.icon}}",alt:"{{companyServices.serviceName}}"},imagePosition:"top",title:"{{companyServices.serviceName}}",text:"{{companyServices.description}}<br><br><strong>Starting at ${{companyServices.startingPrice}}</strong><br>Duration: {{companyServices.duration}}<br>Includes: {{companyServices.features}}",colorPreset:{color:"primary-100"},border:{width:"border",color:"border-primary-300"},rounding:"rounded-lg",shadow:"shadow-md",loop:{over:"companyServices"}}},{description:"Portfolio project card using portfolioWork query with project details",type:"card",props:{cardImage:{src:"{{portfolioWork.thumbnail}}",alt:"{{portfolioWork.projectName}}"},imagePosition:"top",title:"{{portfolioWork.projectName}}",text:"<strong>Client:</strong> {{portfolioWork.clientName}}<br><strong>Year:</strong> {{portfolioWork.year}}<br><strong>Category:</strong> {{portfolioWork.category}}<br><br>{{portfolioWork.description}}",colorPreset:{color:"secondary-100"},rounding:"rounded-md",shadow:"shadow-sm",loop:{over:"portfolioWork"}}}];export{I as a,R as b};
4
- //# sourceMappingURL=chunk-PXI7AHWS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/card.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { textContentRef } from \"../props/text\";\nimport { BsCardText } from \"react-icons/bs\";\nimport { imageRef } from \"../props/image\";\nimport { type Static, Type } from \"@sinclair/typebox\";\nimport type { BrickProps } from \"../props/types\";\nimport { shadowRef } from \"../props/effects\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\nexport const manifest = defineBrickManifest({\n type: \"card\",\n name: \"Card\",\n description: \"A card that can have a title, image, and content.\",\n aiInstructions:\n \"Use this brick to create cards that contain an image, title, and text content. Cards are useful for displaying information in a concise and visually appealing way.\",\n icon: BsCardText,\n defaultWidth: { desktop: \"400px\", mobile: \"100%\" },\n minWidth: { desktop: 300 },\n minHeight: { mobile: 200, desktop: 200 },\n maxWidth: { desktop: 650 },\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color preset\",\n default: { color: \"base-100\" },\n }),\n ),\n\n cardImage: Type.Optional(\n imageRef({\n \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n imagePosition: Type.Optional(\n StringEnum([\"top\", \"middle\", \"bottom\", \"left\", \"right\"], {\n enumNames: [\"Top\", \"Middle\", \"Bottom\", \"Left\", \"Right\"],\n title: \"Image Position\",\n description: \"Where the image should be placed in the card\",\n default: \"top\",\n \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n filter: (manifestProps: Manifest[\"props\"], formData: Static<Manifest[\"props\"]>) => {\n return !!formData.cardImage?.src;\n },\n },\n }),\n ),\n noTitle: Type.Optional(\n Type.Boolean({\n title: \"No Title\",\n description: \"Whether to hide the card title\",\n default: false,\n \"ui:responsive\": \"desktop\",\n }),\n ),\n title: Type.Optional(textContentRef({ title: \"Title\" })),\n text: Type.Optional(textContentRef({ title: \"Text\" })),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(\n borderRef({\n // default: { width: \"border\", color: \"border-base-300\" },\n }),\n ),\n shadow: Type.Optional(\n shadowRef({\n default: \"shadow-sm\",\n }),\n ),\n loop: Type.Optional(loopRef()),\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 card with a title and content\",\n type: \"card\",\n props: {\n title: \"Card Title\",\n text: \"This is the body of the card.\",\n },\n },\n {\n description: \"Product card with image on the left\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"https://via.placeholder.com/200x200\",\n alt: \"Product image\",\n },\n title: \"Premium Headphones\",\n text: \"High-quality wireless headphones with noise cancellation and 30-hour battery life.\",\n },\n },\n {\n description: \"Feature card with large padding and background\",\n type: \"card\",\n props: {\n title: \"Key Feature\",\n text: \"This feature provides exceptional value and enhances user experience significantly.\",\n },\n },\n {\n description: \"Blog post card with image at the bottom\",\n type: \"card\",\n props: {\n title: \"The Future of Technology\",\n text: \"Exploring emerging trends and innovations that will shape our digital landscape in the coming decade.\",\n cardImage: {\n src: \"https://via.placeholder.com/400x200\",\n alt: \"Technology concept\",\n },\n },\n },\n {\n description: \"Testimonial card with right-side image\",\n type: \"card\",\n props: {\n title: \"Customer Review\",\n text: '\"This product exceeded my expectations. The quality is outstanding and the customer service is top-notch!\"',\n cardImage: {\n src: \"https://via.placeholder.com/150x150\",\n alt: \"Customer photo\",\n },\n },\n },\n {\n description: \"Minimal centered card without image\",\n type: \"card\",\n props: {\n title: \"Simple Announcement\",\n text: \"Important updates will be posted here regularly.\",\n },\n },\n {\n description: \"Event card with multiple variants\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"https://via.placeholder.com/400x250\",\n alt: \"Event venue\",\n },\n title: \"Annual Conference 2025\",\n text: \"Join us for three days of inspiring talks, networking opportunities, and hands-on workshops.\",\n },\n },\n {\n description: \"News article card with compact layout\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"https://via.placeholder.com/120x120\",\n alt: \"News thumbnail\",\n },\n title: \"Breaking News Update\",\n text: \"Latest developments in the ongoing story with expert analysis and community reactions.\",\n },\n },\n {\n description: \"Call-to-action card with prominent styling\",\n type: \"card\",\n props: {\n title: \"Get Started Today\",\n text: \"Transform your workflow with our powerful tools. Sign up now and get 30 days free!\",\n },\n },\n {\n description: \"Dynamic product card using products query with pricing and details\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{products.image}}\",\n alt: \"{{products.name}}\",\n },\n title: \"{{products.name}}\",\n text: \"{{products.description}}<br><strong>Price: ${{products.price}}</strong><br>Category: {{products.category}}\",\n colorPreset: { color: \"primary-50\" },\n border: { width: \"border\", color: \"border-primary-200\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n loop: {\n over: \"products\",\n },\n },\n },\n {\n description: \"Employee profile card using teamMembers query with contact information\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{teamMembers.photo}}\",\n alt: \"Photo of {{teamMembers.fullName}}\",\n },\n imagePosition: \"top\",\n title: \"{{teamMembers.fullName}}\",\n text: \"<strong>{{teamMembers.position}}</strong><br>{{teamMembers.department}}<br>Email: {{teamMembers.email}}<br>Phone: {{teamMembers.phone}}\",\n colorPreset: { color: \"neutral-100\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n loop: {\n over: \"teamMembers\",\n },\n },\n },\n {\n description: \"Blog post card using blogPosts query with author and date\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{blogPosts.featuredImage}}\",\n alt: \"{{blogPosts.title}}\",\n },\n imagePosition: \"top\",\n title: \"{{blogPosts.title}}\",\n text: \"{{blogPosts.excerpt}}<br><br><em>By {{blogPosts.author}} • {{blogPosts.publishDate}}</em><br>Tags: {{blogPosts.tags}}\",\n colorPreset: { color: \"secondary-50\" },\n border: { width: \"border\", color: \"border-secondary-300\" },\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n loop: {\n over: \"blogPosts\",\n },\n },\n },\n {\n description: \"Event listing card using upcomingEvents query with venue details\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{upcomingEvents.banner}}\",\n alt: \"{{upcomingEvents.title}}\",\n },\n imagePosition: \"top\",\n title: \"{{upcomingEvents.title}}\",\n text: \"<strong>{{upcomingEvents.date}} at {{upcomingEvents.time}}</strong><br>{{upcomingEvents.venue}}, {{upcomingEvents.city}}<br><br>{{upcomingEvents.description}}<br><br>Tickets: ${{upcomingEvents.price}}\",\n colorPreset: { color: \"accent-100\" },\n border: { width: \"border-2\", color: \"border-accent-400\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n loop: {\n over: \"upcomingEvents\",\n },\n },\n },\n {\n description: \"Testimonial card using customerReviews query with ratings\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{customerReviews.customerPhoto}}\",\n alt: \"{{customerReviews.customerName}}\",\n },\n imagePosition: \"left\",\n title: \"{{customerReviews.customerName}}\",\n text: '\"{{customerReviews.review}}\"<br><br><strong>Rating: {{customerReviews.rating}}/5 stars</strong><br>{{customerReviews.company}} • {{customerReviews.position}}',\n colorPreset: { color: \"neutral-50\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n loop: {\n over: \"customerReviews\",\n },\n },\n },\n {\n description: \"Service offering card using companyServices query with pricing tiers\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{companyServices.icon}}\",\n alt: \"{{companyServices.serviceName}}\",\n },\n imagePosition: \"top\",\n title: \"{{companyServices.serviceName}}\",\n text: \"{{companyServices.description}}<br><br><strong>Starting at ${{companyServices.startingPrice}}</strong><br>Duration: {{companyServices.duration}}<br>Includes: {{companyServices.features}}\",\n colorPreset: { color: \"primary-100\" },\n border: { width: \"border\", color: \"border-primary-300\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n loop: {\n over: \"companyServices\",\n },\n },\n },\n {\n description: \"Portfolio project card using portfolioWork query with project details\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{portfolioWork.thumbnail}}\",\n alt: \"{{portfolioWork.projectName}}\",\n },\n imagePosition: \"top\",\n title: \"{{portfolioWork.projectName}}\",\n text: \"<strong>Client:</strong> {{portfolioWork.clientName}}<br><strong>Year:</strong> {{portfolioWork.year}}<br><strong>Category:</strong> {{portfolioWork.category}}<br><br>{{portfolioWork.description}}\",\n colorPreset: { color: \"secondary-100\" },\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n loop: {\n over: \"portfolioWork\",\n },\n },\n },\n];\n"],"mappings":";;+WAGA,OAAS,cAAAA,MAAkB,iBAE3B,OAAsB,QAAAC,MAAY,oBAQ3B,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,OACN,KAAM,OACN,YAAa,oDACb,eACE,sKACF,KAAMC,EACN,aAAc,CAAE,QAAS,QAAS,OAAQ,MAAO,EACjD,SAAU,CAAE,QAAS,GAAI,EACzB,UAAW,CAAE,OAAQ,IAAK,QAAS,GAAI,EACvC,SAAU,CAAE,QAAS,GAAI,EACzB,MAAOC,EAAY,CACjB,YAAaC,EAAK,SAChBC,EAAe,CACb,MAAO,eACP,QAAS,CAAE,MAAO,UAAW,CAC/B,CAAC,CACH,EAEA,UAAWD,EAAK,SACdE,EAAS,CACP,gBAAiB,UACjB,SAAU,CACR,SAAU,SACZ,CACF,CAAC,CACH,EACA,cAAeF,EAAK,SAClBG,EAAW,CAAC,MAAO,SAAU,SAAU,OAAQ,OAAO,EAAG,CACvD,UAAW,CAAC,MAAO,SAAU,SAAU,OAAQ,OAAO,EACtD,MAAO,iBACP,YAAa,+CACb,QAAS,MACT,gBAAiB,UACjB,SAAU,CACR,SAAU,UACV,OAAQ,CAACC,EAAkCC,IAClC,CAAC,CAACA,EAAS,WAAW,GAEjC,CACF,CAAC,CACH,EACA,QAASL,EAAK,SACZA,EAAK,QAAQ,CACX,MAAO,WACP,YAAa,iCACb,QAAS,GACT,gBAAiB,SACnB,CAAC,CACH,EACA,MAAOA,EAAK,SAASM,EAAe,CAAE,MAAO,OAAQ,CAAC,CAAC,EACvD,KAAMN,EAAK,SAASM,EAAe,CAAE,MAAO,MAAO,CAAC,CAAC,EACrD,SAAUN,EAAK,SACbO,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,OAAQP,EAAK,SACXQ,EAAU,CAEV,CAAC,CACH,EACA,OAAQR,EAAK,SACXS,EAAU,CACR,QAAS,WACX,CAAC,CACH,EACA,KAAMT,EAAK,SAASU,EAAQ,CAAC,CAC/B,CAAC,CACH,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,yCACb,KAAM,OACN,MAAO,CACL,MAAO,aACP,KAAM,+BACR,CACF,EACA,CACE,YAAa,sCACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,sCACL,IAAK,eACP,EACA,MAAO,qBACP,KAAM,oFACR,CACF,EACA,CACE,YAAa,iDACb,KAAM,OACN,MAAO,CACL,MAAO,cACP,KAAM,qFACR,CACF,EACA,CACE,YAAa,0CACb,KAAM,OACN,MAAO,CACL,MAAO,2BACP,KAAM,wGACN,UAAW,CACT,IAAK,sCACL,IAAK,oBACP,CACF,CACF,EACA,CACE,YAAa,yCACb,KAAM,OACN,MAAO,CACL,MAAO,kBACP,KAAM,6GACN,UAAW,CACT,IAAK,sCACL,IAAK,gBACP,CACF,CACF,EACA,CACE,YAAa,sCACb,KAAM,OACN,MAAO,CACL,MAAO,sBACP,KAAM,kDACR,CACF,EACA,CACE,YAAa,oCACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,sCACL,IAAK,aACP,EACA,MAAO,yBACP,KAAM,8FACR,CACF,EACA,CACE,YAAa,wCACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,sCACL,IAAK,gBACP,EACA,MAAO,uBACP,KAAM,wFACR,CACF,EACA,CACE,YAAa,6CACb,KAAM,OACN,MAAO,CACL,MAAO,oBACP,KAAM,oFACR,CACF,EACA,CACE,YAAa,qEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,qBACL,IAAK,mBACP,EACA,MAAO,oBACP,KAAM,6GACN,YAAa,CAAE,MAAO,YAAa,EACnC,OAAQ,CAAE,MAAO,SAAU,MAAO,oBAAqB,EACvD,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,UACR,CACF,CACF,EACA,CACE,YAAa,yEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,wBACL,IAAK,mCACP,EACA,cAAe,MACf,MAAO,2BACP,KAAM,0IACN,YAAa,CAAE,MAAO,aAAc,EACpC,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,aACR,CACF,CACF,EACA,CACE,YAAa,4DACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,8BACL,IAAK,qBACP,EACA,cAAe,MACf,MAAO,sBACP,KAAM,6HACN,YAAa,CAAE,MAAO,cAAe,EACrC,OAAQ,CAAE,MAAO,SAAU,MAAO,sBAAuB,EACzD,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,WACR,CACF,CACF,EACA,CACE,YAAa,mEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,4BACL,IAAK,0BACP,EACA,cAAe,MACf,MAAO,2BACP,KAAM,2MACN,YAAa,CAAE,MAAO,YAAa,EACnC,OAAQ,CAAE,MAAO,WAAY,MAAO,mBAAoB,EACxD,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,gBACR,CACF,CACF,EACA,CACE,YAAa,4DACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,oCACL,IAAK,kCACP,EACA,cAAe,OACf,MAAO,mCACP,KAAM,qKACN,YAAa,CAAE,MAAO,YAAa,EACnC,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,iBACR,CACF,CACF,EACA,CACE,YAAa,uEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,2BACL,IAAK,iCACP,EACA,cAAe,MACf,MAAO,kCACP,KAAM,6LACN,YAAa,CAAE,MAAO,aAAc,EACpC,OAAQ,CAAE,MAAO,SAAU,MAAO,oBAAqB,EACvD,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,iBACR,CACF,CACF,EACA,CACE,YAAa,wEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,8BACL,IAAK,+BACP,EACA,cAAe,MACf,MAAO,gCACP,KAAM,uMACN,YAAa,CAAE,MAAO,eAAgB,EACtC,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,eACR,CACF,CACF,CACF","names":["BsCardText","Type","manifest","defineBrickManifest","BsCardText","defineProps","Type","colorPresetRef","imageRef","StringEnum","manifestProps","formData","textContentRef","roundingRef","borderRef","shadowRef","loopRef","examples"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{Type as i}from"@sinclair/typebox";function r(t="Date",e){return i.String({title:t,format:"date","ui:field":"date",examples:["2023-03-15"],...e})}function a(t="Date and Time",e){return i.String({title:t,format:"date-time","ui:field":"datetime",examples:["2023-03-15T12:00:00Z"],...e})}export{r as a,a as b};
4
- //# sourceMappingURL=chunk-Q4H4QEMB.js.map
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{p}from"./chunk-AFVJZPLS.js";import{Kind as l}from"@sinclair/typebox";function c(e){if(!("enum"in e))return e.anyOf??e.oneOf;let{enum:o,enumNames:a,"ui:icons":t}=e;return o.map((n,i)=>({const:n,title:a?a[i]:n,"ui:icon":t?t[i]:void 0}))}function S(e,o){if(e.type==="object"&&"properties"in e){let a=e,t={};for(let[n,i]of Object.entries(a.properties)){let r=u(i,o);r!==void 0&&(t[n]=r)}return t}if(e.type==="array"&&"items"in e){let a=e;return o&&typeof a[`default:${o}`]<"u"?a[`default:${o}`]:a.default?a.default:[]}throw new Error("Schema must be either TObject or TArray")}function u(e,o){if(o&&typeof e[`default:${o}`]<"u")return e[`default:${o}`];if("default"in e&&e.default!==void 0)return e.default;if(e.type==="object"&&"properties"in e){let a=e,t={};for(let[n,i]of Object.entries(a.properties)){let r=u(i,o);r!==void 0&&(t[n]=r)}return Object.keys(t).length>0?t:void 0}e.type==="array"&&"items"in e}function T(e,o){function a(t){let n={};for(let[i,r]of Object.entries(t.properties))if(o(r))n[i]=r;else if(r.type==="object"&&r.properties){let s=a(r);Object.keys(s).length>0&&Object.assign(n,s)}return n}return a(e)}function b(e){return f(e,new Set)}function f(e,o){if(!e||typeof e!="object")return e;if("$ref"in e&&typeof e.$ref=="string"){if(o.has(e.$ref)||e[l]==="This")return e;let t=p.getSchema(e.$ref)?.schema;if(!t)return console.error("Schema not found for reference:",e),e;o.add(e.$ref);let{$ref:n,...i}=e,r={...f(t,o),...i};return o.delete(e.$ref),r}if("type"in e&&e.type==="object"&&"properties"in e){let t={};if(e.properties&&typeof e.properties=="object")for(let[i,r]of Object.entries(e.properties))r&&typeof r=="object"?t[i]=f(r,o):t[i]=r;let n={...e};if(Object.keys(t).length>0&&(n.properties=t),"additionalProperties"in e&&e.additionalProperties&&typeof e.additionalProperties=="object"&&e.additionalProperties!==!0&&(n.additionalProperties=f(e.additionalProperties,o)),"patternProperties"in e&&e.patternProperties&&typeof e.patternProperties=="object"){let i={};for(let[r,s]of Object.entries(e.patternProperties))s&&typeof s=="object"?i[r]=f(s,o):i[r]=s;n.patternProperties=i}return n}if("type"in e&&e.type==="array"){let t={...e};return"items"in e&&e.items&&(Array.isArray(e.items)?t.items=e.items.map(n=>f(n,o)):typeof e.items=="object"&&(t.items=f(e.items,o))),"additionalItems"in e&&e.additionalItems&&typeof e.additionalItems=="object"&&e.additionalItems!==!0&&(t.additionalItems=f(e.additionalItems,o)),t}if("anyOf"in e&&Array.isArray(e.anyOf)){let t=e.anyOf.map(n=>f(n,o));return{...e,anyOf:t}}if("oneOf"in e&&Array.isArray(e.oneOf)){let t=e.oneOf.map(n=>f(n,o));return{...e,oneOf:t}}if("allOf"in e&&Array.isArray(e.allOf)){let t=e.allOf.map(n=>f(n,o));return{...e,allOf:t}}if("not"in e&&e.not&&typeof e.not=="object"){let t=f(e.not,o);return{...e,not:t}}if("if"in e||"then"in e||"else"in e){let t={...e};return"if"in e&&e.if&&typeof e.if=="object"&&(t.if=f(e.if,o)),"then"in e&&e.then&&typeof e.then=="object"&&(t.then=f(e.then,o)),"else"in e&&e.else&&typeof e.else=="object"&&(t.else=f(e.else,o)),t}if("definitions"in e||"$defs"in e){let t={...e};if("definitions"in e&&e.definitions&&typeof e.definitions=="object"){let n={};for(let[i,r]of Object.entries(e.definitions))r&&typeof r=="object"?n[i]=f(r,o):n[i]=r;t.definitions=n}if("$defs"in e&&e.$defs&&typeof e.$defs=="object"){let n={};for(let[i,r]of Object.entries(e.$defs))r&&typeof r=="object"?n[i]=f(r,o):n[i]=r;t.$defs=n}return t}let a={...e};for(let[t,n]of Object.entries(e))n&&typeof n=="object"&&!Array.isArray(n)?("type"in n||"$ref"in n||"properties"in n||"items"in n)&&(a[t]=f(n,o)):Array.isArray(n)&&n.some(r=>r&&typeof r=="object"&&("type"in r||"$ref"in r||"properties"in r||"items"in r))&&(a[t]=n.map(r=>r&&typeof r=="object"?f(r,o):r));return a}export{c as a,S as b,T as c,b as d};
4
- //# sourceMappingURL=chunk-QGYZ7CG5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/utils/schema.ts"],"sourcesContent":["import { type TArray, type TObject, type TSchema, Kind } from \"@sinclair/typebox\";\nimport type { PageAttributes } from \"../attributes\";\nimport { ajv } from \"../ajv\";\n\nexport function normalizeSchemaEnum(schema: TSchema): Array<{ const: string; title: string }> {\n if (!(\"enum\" in schema)) {\n return schema.anyOf ?? schema.oneOf;\n }\n const {\n enum: enumValues,\n enumNames,\n \"ui:icons\": icons,\n } = schema as unknown as { enum: string[]; enumNames?: string[]; \"ui:icons\"?: string[] };\n // combine to key-value pairs\n return enumValues.map((value, index) => ({\n const: value,\n title: enumNames ? enumNames[index] : value,\n \"ui:icon\": icons ? icons[index] : undefined,\n }));\n}\n\nexport function getSchemaDefaults<T extends TObject | TArray>(\n schema: T,\n mode?: \"mobile\" | \"desktop\",\n): T extends TObject ? Record<string, unknown> : unknown[] {\n // Handle object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const defaults: Record<string, unknown> = {};\n\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n\n // Only include properties that have explicit defaults\n if (defaultValue !== undefined) {\n defaults[key] = defaultValue;\n }\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return defaults as any;\n }\n\n // Handle array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n const arraySchema = schema as TArray;\n\n if (mode && typeof arraySchema[`default:${mode}`] !== \"undefined\") {\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return arraySchema[`default:${mode}`] as any;\n }\n\n // If the array itself has an explicit default, return it\n if (arraySchema.default) {\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return arraySchema.default as any;\n }\n\n // Otherwise return empty array\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return [] as any;\n }\n\n throw new Error(\"Schema must be either TObject or TArray\");\n}\n\n// Helper function for nested schema processing\nfunction getNestedDefaults(schema: TSchema, mode?: \"mobile\" | \"desktop\"): unknown {\n if (mode && typeof schema[`default:${mode}`] !== \"undefined\") {\n return schema[`default:${mode}`];\n }\n // Handle schemas with explicit default values\n if (\"default\" in schema && schema.default !== undefined) {\n return schema.default;\n }\n\n // Handle nested object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const defaults: Record<string, unknown> = {};\n\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n\n // Only include properties that have explicit defaults\n if (defaultValue !== undefined) {\n defaults[key] = defaultValue;\n }\n }\n\n return Object.keys(defaults).length > 0 ? defaults : undefined;\n }\n\n // Handle nested array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n // Arrays only contribute defaults if explicitly set\n return undefined;\n }\n\n // No implicit defaults for any type\n return undefined;\n}\n\nexport type FieldFilter<\n T extends TSchema = TSchema,\n P extends Record<string, unknown> = Record<string, unknown>,\n> = (propsSchema: T, formData: P, pageAttributes: PageAttributes) => boolean;\n\nexport function filterSchemaProperties(schema: TObject, filter: (prop: TSchema) => boolean) {\n function extractProperties(schema: TObject): Record<string, TSchema> {\n const props: Record<string, TSchema> = {};\n for (const [key, prop] of Object.entries(schema.properties)) {\n if (filter(prop)) {\n props[key] = prop;\n } else if (prop.type === \"object\" && prop.properties) {\n const nestedContentProps = extractProperties(prop as TObject);\n if (Object.keys(nestedContentProps).length > 0) {\n Object.assign(props, nestedContentProps);\n }\n }\n }\n return props;\n }\n return extractProperties(schema);\n}\n\n/**\n * Resolves a JSON schema by following $ref references recursively.\n * Handles nested objects, arrays, and complex schema structures.\n */\nexport function resolveSchema<T extends TSchema = TSchema>(schema: T): T {\n return resolveSchemaRecursive(schema, new Set()) as T;\n}\n\n/**\n * Internal recursive function with circular reference detection\n */\nfunction resolveSchemaRecursive(schema: TSchema, visited: Set<string>): TSchema {\n // Handle primitive types and null\n if (!schema || typeof schema !== \"object\") {\n return schema;\n }\n\n // Handle $ref resolution\n if (\"$ref\" in schema && typeof schema.$ref === \"string\") {\n // Prevent infinite recursion with circular references\n if (visited.has(schema.$ref) || schema[Kind] === \"This\") {\n // console.warn(`Circular reference detected: ${schema.$ref}`);\n return schema; // Return original schema to avoid infinite loop\n }\n\n const resolved = ajv.getSchema(schema.$ref)?.schema as TSchema;\n if (!resolved) {\n console.error(\"Schema not found for reference:\", schema);\n return schema;\n }\n\n // Add to visited set and recursively resolve the referenced schema\n visited.add(schema.$ref);\n const { $ref, ...rest } = schema;\n const resolvedSchema = {\n ...resolveSchemaRecursive(resolved, visited),\n ...rest,\n };\n visited.delete(schema.$ref); // Remove from visited after processing\n\n return resolvedSchema as TSchema;\n }\n\n // Handle object schemas\n if (\"type\" in schema && schema.type === \"object\" && \"properties\" in schema) {\n const resolvedProperties: Record<string, TSchema> = {};\n\n if (schema.properties && typeof schema.properties === \"object\") {\n for (const [key, value] of Object.entries(schema.properties)) {\n if (value && typeof value === \"object\") {\n resolvedProperties[key] = resolveSchemaRecursive(value as TSchema, visited);\n } else {\n resolvedProperties[key] = value as TSchema;\n }\n }\n }\n\n const resolvedSchema = { ...schema };\n if (Object.keys(resolvedProperties).length > 0) {\n resolvedSchema.properties = resolvedProperties;\n }\n\n // Handle additionalProperties\n if (\n \"additionalProperties\" in schema &&\n schema.additionalProperties &&\n typeof schema.additionalProperties === \"object\" &&\n schema.additionalProperties !== true\n ) {\n resolvedSchema.additionalProperties = resolveSchemaRecursive(\n schema.additionalProperties as TSchema,\n visited,\n );\n }\n\n // Handle patternProperties\n if (\n \"patternProperties\" in schema &&\n schema.patternProperties &&\n typeof schema.patternProperties === \"object\"\n ) {\n const resolvedPatternProperties: Record<string, TSchema> = {};\n for (const [pattern, patternSchema] of Object.entries(schema.patternProperties)) {\n if (patternSchema && typeof patternSchema === \"object\") {\n resolvedPatternProperties[pattern] = resolveSchemaRecursive(patternSchema as TSchema, visited);\n } else {\n resolvedPatternProperties[pattern] = patternSchema as TSchema;\n }\n }\n resolvedSchema.patternProperties = resolvedPatternProperties;\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle array schemas\n if (\"type\" in schema && schema.type === \"array\") {\n const resolvedSchema = { ...schema };\n\n if (\"items\" in schema && schema.items) {\n if (Array.isArray(schema.items)) {\n resolvedSchema.items = schema.items.map((item) => resolveSchemaRecursive(item as TSchema, visited));\n } else if (typeof schema.items === \"object\") {\n resolvedSchema.items = resolveSchemaRecursive(schema.items as TSchema, visited);\n }\n }\n\n // Handle additionalItems\n if (\n \"additionalItems\" in schema &&\n schema.additionalItems &&\n typeof schema.additionalItems === \"object\" &&\n schema.additionalItems !== true\n ) {\n resolvedSchema.additionalItems = resolveSchemaRecursive(schema.additionalItems as TSchema, visited);\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle union schemas (anyOf)\n if (\"anyOf\" in schema && Array.isArray(schema.anyOf)) {\n const resolvedAnyOf = schema.anyOf.map((subSchema) => {\n return resolveSchemaRecursive(subSchema as TSchema, visited);\n });\n\n return { ...schema, anyOf: resolvedAnyOf } as TSchema;\n }\n\n // Handle union schemas (oneOf)\n if (\"oneOf\" in schema && Array.isArray(schema.oneOf)) {\n const resolvedOneOf = schema.oneOf.map((subSchema) =>\n resolveSchemaRecursive(subSchema as TSchema, visited),\n );\n\n return { ...schema, oneOf: resolvedOneOf } as TSchema;\n }\n\n // Handle intersection schemas (allOf)\n if (\"allOf\" in schema && Array.isArray(schema.allOf)) {\n const resolvedAllOf = schema.allOf.map((subSchema) =>\n resolveSchemaRecursive(subSchema as TSchema, visited),\n );\n\n return { ...schema, allOf: resolvedAllOf } as TSchema;\n }\n\n // Handle not schemas\n if (\"not\" in schema && schema.not && typeof schema.not === \"object\") {\n const resolvedNot = resolveSchemaRecursive(schema.not as TSchema, visited);\n\n return { ...schema, not: resolvedNot } as TSchema;\n }\n\n // Handle conditional schemas (if/then/else)\n if (\"if\" in schema || \"then\" in schema || \"else\" in schema) {\n const resolvedSchema = { ...schema };\n\n if (\"if\" in schema && schema.if && typeof schema.if === \"object\") {\n resolvedSchema.if = resolveSchemaRecursive(schema.if as TSchema, visited);\n }\n\n if (\"then\" in schema && schema.then && typeof schema.then === \"object\") {\n // biome-ignore lint/suspicious/noThenProperty: <explanation>\n resolvedSchema.then = resolveSchemaRecursive(schema.then as TSchema, visited);\n }\n\n if (\"else\" in schema && schema.else && typeof schema.else === \"object\") {\n resolvedSchema.else = resolveSchemaRecursive(schema.else as TSchema, visited);\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle schemas with definitions\n if (\"definitions\" in schema || \"$defs\" in schema) {\n const resolvedSchema = { ...schema };\n\n if (\"definitions\" in schema && schema.definitions && typeof schema.definitions === \"object\") {\n const resolvedDefinitions: Record<string, TSchema> = {};\n for (const [key, def] of Object.entries(schema.definitions)) {\n if (def && typeof def === \"object\") {\n resolvedDefinitions[key] = resolveSchemaRecursive(def as TSchema, visited);\n } else {\n resolvedDefinitions[key] = def as TSchema;\n }\n }\n resolvedSchema.definitions = resolvedDefinitions;\n }\n\n if (\"$defs\" in schema && schema.$defs && typeof schema.$defs === \"object\") {\n const resolved$Defs: Record<string, TSchema> = {};\n for (const [key, def] of Object.entries(schema.$defs)) {\n if (def && typeof def === \"object\") {\n resolved$Defs[key] = resolveSchemaRecursive(def as TSchema, visited);\n } else {\n resolved$Defs[key] = def as TSchema;\n }\n }\n resolvedSchema.$defs = resolved$Defs;\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle any other schema types that might contain nested schemas\n const resolvedSchema = { ...schema };\n\n for (const [key, value] of Object.entries(schema)) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n // Check if this looks like a schema object\n if (\"type\" in value || \"$ref\" in value || \"properties\" in value || \"items\" in value) {\n (resolvedSchema as Record<string, unknown>)[key] = resolveSchemaRecursive(value as TSchema, visited);\n }\n } else if (Array.isArray(value)) {\n // Check if array contains schemas\n const hasSchemas = value.some(\n (item) =>\n item &&\n typeof item === \"object\" &&\n (\"type\" in item || \"$ref\" in item || \"properties\" in item || \"items\" in item),\n );\n\n if (hasSchemas) {\n (resolvedSchema as Record<string, unknown>)[key] = value.map((item) =>\n item && typeof item === \"object\" ? resolveSchemaRecursive(item as TSchema, visited) : item,\n );\n }\n }\n }\n\n return resolvedSchema as TSchema;\n}\n"],"mappings":"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","names":["Kind","normalizeSchemaEnum","schema","enumValues","enumNames","icons","value","index","getSchemaDefaults","mode","objectSchema","defaults","key","propertySchema","defaultValue","getNestedDefaults","arraySchema","filterSchemaProperties","filter","extractProperties","props","prop","nestedContentProps","resolveSchema","resolveSchemaRecursive","visited","Kind","resolved","ajv","$ref","rest","resolvedSchema","resolvedProperties","resolvedPatternProperties","pattern","patternSchema","item","resolvedAnyOf","subSchema","resolvedOneOf","resolvedAllOf","resolvedNot","resolvedDefinitions","def","resolved$Defs"]}
@@ -1,4 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import{a as e}from"./chunk-KFM6KXSE.js";import{Type as r}from"@sinclair/typebox";function a(t){return r.Array(r.String({title:t?.title??"Tags",...t}),{"ui:field":"tags",title:t?.title??"Tags",metadata:{category:"content"},...t})}function g(t={}){return e("content:tags",{...t})}export{a,g as b};
4
- //# sourceMappingURL=chunk-QWGUMKZC.js.map