@upstart.gg/sdk 0.0.136 → 0.0.137

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/dist/shared/ai/schemas.d.ts.map +1 -1
  2. package/dist/shared/ai/schemas.js +24 -29
  3. package/dist/shared/ai/schemas.js.map +1 -1
  4. package/dist/shared/ai/types.d.ts +13 -61
  5. package/dist/shared/ai/types.d.ts.map +1 -1
  6. package/dist/shared/ajv.js +33 -32
  7. package/dist/shared/ajv.js.map +1 -1
  8. package/dist/shared/attributes.d.ts +83 -85
  9. package/dist/shared/attributes.d.ts.map +1 -1
  10. package/dist/shared/attributes.js +20 -23
  11. package/dist/shared/brick-manifest.d.ts +8 -5
  12. package/dist/shared/brick-manifest.d.ts.map +1 -1
  13. package/dist/shared/brick-manifest.js +3 -18
  14. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +2 -2
  15. package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
  16. package/dist/shared/bricks/manifests/accordion.manifest.js +13 -20
  17. package/dist/shared/bricks/manifests/all-manifests.js +44 -43
  18. package/dist/shared/bricks/manifests/all-props.d.ts +1501 -0
  19. package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -0
  20. package/dist/shared/bricks/manifests/all-props.js +243 -0
  21. package/dist/shared/bricks/manifests/all-props.js.map +1 -0
  22. package/dist/shared/bricks/manifests/box.manifest.d.ts +2 -2
  23. package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
  24. package/dist/shared/bricks/manifests/box.manifest.js +16 -20
  25. package/dist/shared/bricks/manifests/button.manifest.d.ts +3 -6
  26. package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
  27. package/dist/shared/bricks/manifests/button.manifest.js +13 -20
  28. package/dist/shared/bricks/manifests/card.manifest.d.ts +3 -3
  29. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  30. package/dist/shared/bricks/manifests/card.manifest.js +18 -20
  31. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +2 -2
  32. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  33. package/dist/shared/bricks/manifests/carousel.manifest.js +15 -20
  34. package/dist/shared/bricks/manifests/footer.manifest.d.ts +3 -3
  35. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  36. package/dist/shared/bricks/manifests/footer.manifest.js +13 -20
  37. package/dist/shared/bricks/manifests/form.manifest.d.ts +3 -3
  38. package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
  39. package/dist/shared/bricks/manifests/form.manifest.js +13 -20
  40. package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -2
  41. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  42. package/dist/shared/bricks/manifests/hero.manifest.js +13 -20
  43. package/dist/shared/bricks/manifests/html.manifest.d.ts +1 -1
  44. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  45. package/dist/shared/bricks/manifests/html.manifest.js +8 -20
  46. package/dist/shared/bricks/manifests/icon.manifest.d.ts +1 -1
  47. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  48. package/dist/shared/bricks/manifests/icon.manifest.js +13 -20
  49. package/dist/shared/bricks/manifests/image.manifest.d.ts +2 -2
  50. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  51. package/dist/shared/bricks/manifests/image.manifest.js +16 -20
  52. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -2
  53. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  54. package/dist/shared/bricks/manifests/images-gallery.manifest.js +15 -20
  55. package/dist/shared/bricks/manifests/map.manifest.d.ts +1 -1
  56. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  57. package/dist/shared/bricks/manifests/map.manifest.js +11 -20
  58. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +5 -5
  59. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  60. package/dist/shared/bricks/manifests/navbar.manifest.js +15 -20
  61. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +1 -1
  62. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  63. package/dist/shared/bricks/manifests/sidebar.manifest.js +13 -20
  64. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +2 -2
  65. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  66. package/dist/shared/bricks/manifests/social-links.manifest.js +14 -20
  67. package/dist/shared/bricks/manifests/spacer.manifest.d.ts +1 -1
  68. package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
  69. package/dist/shared/bricks/manifests/spacer.manifest.js +8 -20
  70. package/dist/shared/bricks/manifests/table.manifest.d.ts +4 -4
  71. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  72. package/dist/shared/bricks/manifests/table.manifest.js +15 -20
  73. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +4 -4
  74. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
  75. package/dist/shared/bricks/manifests/tabs.manifest.js +15 -20
  76. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +2 -2
  77. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  78. package/dist/shared/bricks/manifests/testimonials.manifest.js +18 -20
  79. package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -6
  80. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  81. package/dist/shared/bricks/manifests/text.manifest.js +13 -20
  82. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +7 -7
  83. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
  84. package/dist/shared/bricks/manifests/timeline.manifest.js +15 -20
  85. package/dist/shared/bricks/manifests/video.manifest.d.ts +1 -1
  86. package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
  87. package/dist/shared/bricks/manifests/video.manifest.js +11 -20
  88. package/dist/shared/bricks/props/align.d.ts +0 -3
  89. package/dist/shared/bricks/props/align.d.ts.map +1 -1
  90. package/dist/shared/bricks/props/align.js +4 -11
  91. package/dist/shared/bricks/props/background.d.ts +2 -8
  92. package/dist/shared/bricks/props/background.d.ts.map +1 -1
  93. package/dist/shared/bricks/props/background.js +4 -9
  94. package/dist/shared/bricks/props/border.d.ts +0 -7
  95. package/dist/shared/bricks/props/border.d.ts.map +1 -1
  96. package/dist/shared/bricks/props/border.js +5 -10
  97. package/dist/shared/bricks/props/color-preset.d.ts +316 -6
  98. package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
  99. package/dist/shared/bricks/props/color-preset.js +2 -5
  100. package/dist/shared/bricks/props/color.d.ts +3 -5
  101. package/dist/shared/bricks/props/color.d.ts.map +1 -1
  102. package/dist/shared/bricks/props/color.js +3 -8
  103. package/dist/shared/bricks/props/common.d.ts.map +1 -1
  104. package/dist/shared/bricks/props/common.js +4 -5
  105. package/dist/shared/bricks/props/css-length.d.ts +0 -1
  106. package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
  107. package/dist/shared/bricks/props/css-length.js +1 -4
  108. package/dist/shared/bricks/props/datasource.d.ts +3 -3
  109. package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
  110. package/dist/shared/bricks/props/datasource.js +74 -76
  111. package/dist/shared/bricks/props/datasource.js.map +1 -1
  112. package/dist/shared/bricks/props/date.js +21 -4
  113. package/dist/shared/bricks/props/date.js.map +1 -1
  114. package/dist/shared/bricks/props/direction.d.ts +1 -2
  115. package/dist/shared/bricks/props/direction.d.ts.map +1 -1
  116. package/dist/shared/bricks/props/direction.js +4 -7
  117. package/dist/shared/bricks/props/dynamic.d.ts +5 -67
  118. package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
  119. package/dist/shared/bricks/props/dynamic.js +6 -24
  120. package/dist/shared/bricks/props/effects.d.ts +1 -3
  121. package/dist/shared/bricks/props/effects.d.ts.map +1 -1
  122. package/dist/shared/bricks/props/effects.js +4 -9
  123. package/dist/shared/bricks/props/geolocation.d.ts.map +1 -1
  124. package/dist/shared/bricks/props/geolocation.js +3 -6
  125. package/dist/shared/bricks/props/geolocation.js.map +1 -1
  126. package/dist/shared/bricks/props/helpers.js +5 -6
  127. package/dist/shared/bricks/props/image.d.ts +2 -8
  128. package/dist/shared/bricks/props/image.d.ts.map +1 -1
  129. package/dist/shared/bricks/props/image.js +4 -7
  130. package/dist/shared/bricks/props/string.d.ts +2 -5
  131. package/dist/shared/bricks/props/string.d.ts.map +1 -1
  132. package/dist/shared/bricks/props/string.js +3 -10
  133. package/dist/shared/bricks/props/tags.d.ts +0 -1
  134. package/dist/shared/bricks/props/tags.d.ts.map +1 -1
  135. package/dist/shared/bricks/props/tags.js +3 -6
  136. package/dist/shared/bricks/props/text.d.ts +0 -3
  137. package/dist/shared/bricks/props/text.d.ts.map +1 -1
  138. package/dist/shared/bricks/props/text.js +4 -11
  139. package/dist/shared/bricks/props/types.d.ts +2 -2
  140. package/dist/shared/bricks/props/types.d.ts.map +1 -1
  141. package/dist/shared/bricks.d.ts +64 -154
  142. package/dist/shared/bricks.d.ts.map +1 -1
  143. package/dist/shared/bricks.js +47 -52
  144. package/dist/shared/chunk-2O5HVPID.js +41 -0
  145. package/dist/shared/chunk-2O5HVPID.js.map +1 -0
  146. package/dist/shared/{chunk-F22LDHEO.js → chunk-2U5U3CCJ.js} +3 -18
  147. package/dist/shared/chunk-2U5U3CCJ.js.map +1 -0
  148. package/dist/shared/{chunk-LTIJI7Y3.js → chunk-4KY7OZWD.js} +35 -35
  149. package/dist/shared/chunk-4KY7OZWD.js.map +1 -0
  150. package/dist/shared/{chunk-TNMNMYOB.js → chunk-5RCC2STG.js} +2 -13
  151. package/dist/shared/chunk-5RCC2STG.js.map +1 -0
  152. package/dist/shared/{chunk-KIDICX3Y.js → chunk-6AE7UD73.js} +27 -33
  153. package/dist/shared/chunk-6AE7UD73.js.map +1 -0
  154. package/dist/shared/{chunk-CRS7QCPZ.js → chunk-7U5WPHXB.js} +65 -27
  155. package/dist/shared/chunk-7U5WPHXB.js.map +1 -0
  156. package/dist/shared/{chunk-Q4NPPLEU.js → chunk-BHARJBEK.js} +2 -9
  157. package/dist/shared/chunk-BHARJBEK.js.map +1 -0
  158. package/dist/shared/{chunk-H5JM2M2T.js → chunk-BZTWZC77.js} +46 -31
  159. package/dist/shared/chunk-BZTWZC77.js.map +1 -0
  160. package/dist/shared/{chunk-LLNPH3XR.js → chunk-DCM4732T.js} +6 -8
  161. package/dist/shared/chunk-DCM4732T.js.map +1 -0
  162. package/dist/shared/{chunk-W6MRYRGJ.js → chunk-DRQKKPTX.js} +6 -20
  163. package/dist/shared/chunk-DRQKKPTX.js.map +1 -0
  164. package/dist/shared/{chunk-CSF2WQX2.js → chunk-EID5HPF3.js} +15 -12
  165. package/dist/shared/chunk-EID5HPF3.js.map +1 -0
  166. package/dist/shared/chunk-EMF5TCPX.js +389 -0
  167. package/dist/shared/chunk-EMF5TCPX.js.map +1 -0
  168. package/dist/shared/chunk-FD7YYFRI.js +225 -0
  169. package/dist/shared/chunk-FD7YYFRI.js.map +1 -0
  170. package/dist/shared/{chunk-36PLZKMW.js → chunk-FHA4DFIM.js} +26 -27
  171. package/dist/shared/chunk-FHA4DFIM.js.map +1 -0
  172. package/dist/shared/{chunk-L6C7HUSA.js → chunk-FUUSAMN3.js} +21 -24
  173. package/dist/shared/chunk-FUUSAMN3.js.map +1 -0
  174. package/dist/shared/chunk-GDYCCB3B.js +22 -0
  175. package/dist/shared/chunk-GDYCCB3B.js.map +1 -0
  176. package/dist/shared/chunk-GLV6QIIM.js +41 -0
  177. package/dist/shared/chunk-GLV6QIIM.js.map +1 -0
  178. package/dist/shared/chunk-H6TMBELF.js +374 -0
  179. package/dist/shared/chunk-H6TMBELF.js.map +1 -0
  180. package/dist/shared/{chunk-YWOTQWIQ.js → chunk-HUWMIXNN.js} +26 -28
  181. package/dist/shared/chunk-HUWMIXNN.js.map +1 -0
  182. package/dist/shared/chunk-HY7JOP3J.js +150 -0
  183. package/dist/shared/chunk-HY7JOP3J.js.map +1 -0
  184. package/dist/shared/{chunk-TFGGYU6Y.js → chunk-IEMCCHM4.js} +7 -12
  185. package/dist/shared/chunk-IEMCCHM4.js.map +1 -0
  186. package/dist/shared/{chunk-EVLRH6VG.js → chunk-J45LSQT6.js} +2 -2
  187. package/dist/shared/chunk-J45LSQT6.js.map +1 -0
  188. package/dist/shared/{chunk-DFAFDBYZ.js → chunk-JF52BBFD.js} +27 -28
  189. package/dist/shared/chunk-JF52BBFD.js.map +1 -0
  190. package/dist/shared/{chunk-ZR6R6Z6O.js → chunk-JLDAS3VE.js} +34 -32
  191. package/dist/shared/chunk-JLDAS3VE.js.map +1 -0
  192. package/dist/shared/{chunk-SE6O65HC.js → chunk-JSDKK5QN.js} +10 -23
  193. package/dist/shared/chunk-JSDKK5QN.js.map +1 -0
  194. package/dist/shared/{chunk-KILJYJFE.js → chunk-JW7MQAU4.js} +19 -19
  195. package/dist/shared/chunk-JW7MQAU4.js.map +1 -0
  196. package/dist/shared/{chunk-RV7AYVFV.js → chunk-KKWT3OXF.js} +4 -19
  197. package/dist/shared/chunk-KKWT3OXF.js.map +1 -0
  198. package/dist/shared/{chunk-N3BEBLWF.js → chunk-KQH6V22E.js} +34 -34
  199. package/dist/shared/{chunk-GFAQWQER.js → chunk-LGDDJJHK.js} +33 -35
  200. package/dist/shared/chunk-LGDDJJHK.js.map +1 -0
  201. package/dist/shared/{chunk-FOGAVJC2.js → chunk-LGGPCCCY.js} +3 -3
  202. package/dist/shared/{chunk-4MNWMEMM.js → chunk-LPAQ47C6.js} +23 -23
  203. package/dist/shared/chunk-LPAQ47C6.js.map +1 -0
  204. package/dist/shared/chunk-MO6CRLQA.js +73 -0
  205. package/dist/shared/chunk-MO6CRLQA.js.map +1 -0
  206. package/dist/shared/{chunk-GQTZPN5D.js → chunk-MYOLWTB2.js} +29 -32
  207. package/dist/shared/chunk-MYOLWTB2.js.map +1 -0
  208. package/dist/shared/{chunk-KEM5N6GJ.js → chunk-O24RDXZS.js} +34 -34
  209. package/dist/shared/chunk-O24RDXZS.js.map +1 -0
  210. package/dist/shared/{chunk-BPBKHEQ5.js → chunk-OJ6KL7FU.js} +1 -8
  211. package/dist/shared/chunk-OJ6KL7FU.js.map +1 -0
  212. package/dist/shared/{chunk-LCJ2VFPM.js → chunk-PF75LW33.js} +24 -27
  213. package/dist/shared/chunk-PF75LW33.js.map +1 -0
  214. package/dist/shared/{chunk-U5ZECCJM.js → chunk-QEJGPYTB.js} +32 -34
  215. package/dist/shared/chunk-QEJGPYTB.js.map +1 -0
  216. package/dist/shared/{chunk-2VDR4ZYY.js → chunk-SK2O7GFC.js} +17 -18
  217. package/dist/shared/chunk-SK2O7GFC.js.map +1 -0
  218. package/dist/shared/{chunk-N3ZTQD5I.js → chunk-SQXZNGQF.js} +8 -23
  219. package/dist/shared/chunk-SQXZNGQF.js.map +1 -0
  220. package/dist/shared/{chunk-NTLAKMMQ.js → chunk-SRYBJ6NQ.js} +6 -17
  221. package/dist/shared/chunk-SRYBJ6NQ.js.map +1 -0
  222. package/dist/shared/{chunk-UXTASZ23.js → chunk-T6C3NG2L.js} +66 -63
  223. package/dist/shared/chunk-T6C3NG2L.js.map +1 -0
  224. package/dist/shared/{chunk-ZRRAK5NS.js → chunk-TBT2PTGB.js} +41 -33
  225. package/dist/shared/chunk-TBT2PTGB.js.map +1 -0
  226. package/dist/shared/{chunk-2IHKVMKW.js → chunk-U4KZUX37.js} +18 -19
  227. package/dist/shared/chunk-U4KZUX37.js.map +1 -0
  228. package/dist/shared/{chunk-FQDR2BBZ.js → chunk-VSLRTXLF.js} +11 -4
  229. package/dist/shared/chunk-VSLRTXLF.js.map +1 -0
  230. package/dist/shared/{chunk-BHC2A43S.js → chunk-VTCHJT4O.js} +3 -3
  231. package/dist/shared/{chunk-BHC2A43S.js.map → chunk-VTCHJT4O.js.map} +1 -1
  232. package/dist/shared/{chunk-GIGFNQBO.js → chunk-W2RFDII5.js} +3 -3
  233. package/dist/shared/{chunk-Y74LZNND.js → chunk-WPZV3LYL.js} +4 -10
  234. package/dist/shared/chunk-WPZV3LYL.js.map +1 -0
  235. package/dist/shared/chunk-XFZQGRRL.js +101 -0
  236. package/dist/shared/chunk-XFZQGRRL.js.map +1 -0
  237. package/dist/shared/{chunk-42OUNI7C.js → chunk-XK2CERPB.js} +27 -29
  238. package/dist/shared/chunk-XK2CERPB.js.map +1 -0
  239. package/dist/shared/chunk-XNRSL6FL.js +78 -0
  240. package/dist/shared/chunk-XNRSL6FL.js.map +1 -0
  241. package/dist/shared/{chunk-2RK3CPYJ.js → chunk-XXPSM6UA.js} +9 -12
  242. package/dist/shared/chunk-XXPSM6UA.js.map +1 -0
  243. package/dist/shared/{chunk-ZLYIRH2B.js → chunk-ZRBTAC3G.js} +3 -18
  244. package/dist/shared/chunk-ZRBTAC3G.js.map +1 -0
  245. package/dist/shared/{chunk-F247VKAE.js → chunk-ZVJNRKT4.js} +18 -20
  246. package/dist/shared/chunk-ZVJNRKT4.js.map +1 -0
  247. package/dist/shared/context.d.ts +402 -23
  248. package/dist/shared/context.d.ts.map +1 -1
  249. package/dist/shared/context.js +93 -0
  250. package/dist/shared/context.js.map +1 -1
  251. package/dist/shared/datarecords/external/airtable/types.d.ts +1 -1
  252. package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
  253. package/dist/shared/datarecords/external/airtable/types.js +2 -1
  254. package/dist/shared/datarecords/types.d.ts +3 -3
  255. package/dist/shared/datarecords/types.d.ts.map +1 -1
  256. package/dist/shared/datarecords/types.js +3 -2
  257. package/dist/shared/datasources/external/instagram/feed/schema.d.ts +1 -1
  258. package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
  259. package/dist/shared/datasources/external/instagram/feed/schema.js +4 -1
  260. package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
  261. package/dist/shared/datasources/external/mastodon/status/schema.d.ts +6 -6
  262. package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
  263. package/dist/shared/datasources/external/mastodon/status/schema.js +6 -19
  264. package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
  265. package/dist/shared/datasources/external/meta/oauth/config.d.ts +2 -2
  266. package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
  267. package/dist/shared/datasources/external/meta/oauth/config.js +4 -1
  268. package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
  269. package/dist/shared/datasources/external/threads/media/schema.d.ts +1 -1
  270. package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
  271. package/dist/shared/datasources/external/threads/media/schema.js +4 -8
  272. package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
  273. package/dist/shared/datasources/internal/blog/schema.d.ts +1 -1
  274. package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
  275. package/dist/shared/datasources/internal/blog/schema.js +4 -1
  276. package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
  277. package/dist/shared/datasources/types.d.ts +25 -25
  278. package/dist/shared/datasources/types.d.ts.map +1 -1
  279. package/dist/shared/datasources/types.js +3 -16
  280. package/dist/shared/images.d.ts +1 -1
  281. package/dist/shared/images.d.ts.map +1 -1
  282. package/dist/shared/images.js +4 -38
  283. package/dist/shared/images.js.map +1 -1
  284. package/dist/shared/page.d.ts +139 -22
  285. package/dist/shared/page.d.ts.map +1 -1
  286. package/dist/shared/page.js +51 -49
  287. package/dist/shared/responsive.js +1 -1
  288. package/dist/shared/site.d.ts +74 -191
  289. package/dist/shared/site.d.ts.map +1 -1
  290. package/dist/shared/site.js +55 -114
  291. package/dist/shared/site.js.map +1 -1
  292. package/dist/shared/sitemap.d.ts +4 -326
  293. package/dist/shared/sitemap.d.ts.map +1 -1
  294. package/dist/shared/sitemap.js +50 -58
  295. package/dist/shared/theme.d.ts +0 -37
  296. package/dist/shared/theme.d.ts.map +1 -1
  297. package/dist/shared/theme.js +4 -21
  298. package/dist/shared/utils/llm.d.ts +1 -10
  299. package/dist/shared/utils/llm.d.ts.map +1 -1
  300. package/dist/shared/utils/llm.js +1 -18
  301. package/dist/shared/utils/schema.d.ts +3 -2
  302. package/dist/shared/utils/schema.d.ts.map +1 -1
  303. package/dist/shared/utils/schema.js +2 -17
  304. package/dist/shared/utils/string-enum.d.ts +9 -3
  305. package/dist/shared/utils/string-enum.d.ts.map +1 -1
  306. package/dist/shared/utils/string-enum.js +1 -1
  307. package/package.json +21 -5
  308. package/src/shared/ai/schemas.ts +24 -29
  309. package/src/shared/ai/types.ts +22 -88
  310. package/src/shared/attributes.ts +53 -51
  311. package/src/shared/brick-manifest.ts +5 -6
  312. package/src/shared/bricks/manifests/accordion.manifest.ts +11 -11
  313. package/src/shared/bricks/manifests/all-props.ts +165 -0
  314. package/src/shared/bricks/manifests/box.manifest.ts +19 -21
  315. package/src/shared/bricks/manifests/button.manifest.ts +54 -16
  316. package/src/shared/bricks/manifests/card.manifest.ts +32 -18
  317. package/src/shared/bricks/manifests/carousel.manifest.ts +11 -13
  318. package/src/shared/bricks/manifests/footer.manifest.ts +16 -15
  319. package/src/shared/bricks/manifests/form.manifest.ts +14 -15
  320. package/src/shared/bricks/manifests/hero.manifest.ts +18 -20
  321. package/src/shared/bricks/manifests/icon.manifest.ts +9 -10
  322. package/src/shared/bricks/manifests/image.manifest.ts +22 -19
  323. package/src/shared/bricks/manifests/images-gallery.manifest.ts +13 -15
  324. package/src/shared/bricks/manifests/map.manifest.ts +10 -10
  325. package/src/shared/bricks/manifests/navbar.manifest.ts +20 -21
  326. package/src/shared/bricks/manifests/sidebar.manifest.ts +9 -9
  327. package/src/shared/bricks/manifests/social-links.manifest.ts +17 -19
  328. package/src/shared/bricks/manifests/table.manifest.ts +15 -15
  329. package/src/shared/bricks/manifests/tabs.manifest.ts +14 -16
  330. package/src/shared/bricks/manifests/testimonials.manifest.ts +21 -20
  331. package/src/shared/bricks/manifests/text.manifest.ts +16 -19
  332. package/src/shared/bricks/manifests/timeline.manifest.ts +29 -24
  333. package/src/shared/bricks/manifests/video.manifest.ts +9 -10
  334. package/src/shared/bricks/props/align.ts +0 -13
  335. package/src/shared/bricks/props/background.ts +1 -14
  336. package/src/shared/bricks/props/border.ts +2 -13
  337. package/src/shared/bricks/props/color-preset.ts +9 -10
  338. package/src/shared/bricks/props/color.ts +7 -18
  339. package/src/shared/bricks/props/common.ts +6 -7
  340. package/src/shared/bricks/props/css-length.ts +0 -5
  341. package/src/shared/bricks/props/datasource.ts +72 -74
  342. package/src/shared/bricks/props/direction.ts +1 -5
  343. package/src/shared/bricks/props/dynamic.ts +0 -11
  344. package/src/shared/bricks/props/effects.ts +0 -9
  345. package/src/shared/bricks/props/geolocation.ts +3 -3
  346. package/src/shared/bricks/props/helpers.ts +1 -1
  347. package/src/shared/bricks/props/image.ts +4 -16
  348. package/src/shared/bricks/props/string.ts +5 -18
  349. package/src/shared/bricks/props/tags.ts +0 -5
  350. package/src/shared/bricks/props/tests/background.test.ts +1 -15
  351. package/src/shared/bricks/props/tests/image.test.ts +3 -9
  352. package/src/shared/bricks/props/tests/string.test.ts +2 -26
  353. package/src/shared/bricks/props/text.ts +0 -12
  354. package/src/shared/bricks/props/types.ts +4 -3
  355. package/src/shared/bricks.ts +156 -1020
  356. package/src/shared/context.ts +24 -24
  357. package/src/shared/datarecords/external/airtable/types.ts +12 -11
  358. package/src/shared/datarecords/types.ts +2 -34
  359. package/src/shared/datasources/external/instagram/feed/schema.ts +2 -1
  360. package/src/shared/datasources/external/mastodon/status/schema.ts +4 -19
  361. package/src/shared/datasources/external/meta/oauth/config.ts +2 -1
  362. package/src/shared/datasources/external/threads/media/schema.ts +2 -8
  363. package/src/shared/datasources/internal/blog/schema.ts +2 -1
  364. package/src/shared/datasources/types.ts +64 -79
  365. package/src/shared/images.ts +12 -18
  366. package/src/shared/page.ts +9 -1
  367. package/src/shared/sitemap.ts +3 -70
  368. package/src/shared/tests/attributes.test.ts +2 -0
  369. package/src/shared/theme.ts +81 -96
  370. package/src/shared/utils/llm.ts +5 -191
  371. package/src/shared/utils/schema.ts +71 -244
  372. package/src/shared/utils/string-enum.ts +25 -4
  373. package/src/shared/utils/tests/schema.test.ts +70 -313
  374. package/dist/shared/chunk-2IHKVMKW.js.map +0 -1
  375. package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
  376. package/dist/shared/chunk-2VDR4ZYY.js.map +0 -1
  377. package/dist/shared/chunk-36PLZKMW.js.map +0 -1
  378. package/dist/shared/chunk-42OUNI7C.js.map +0 -1
  379. package/dist/shared/chunk-4MNWMEMM.js.map +0 -1
  380. package/dist/shared/chunk-A2QPY54H.js +0 -13
  381. package/dist/shared/chunk-A2QPY54H.js.map +0 -1
  382. package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
  383. package/dist/shared/chunk-CRS7QCPZ.js.map +0 -1
  384. package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
  385. package/dist/shared/chunk-DFAFDBYZ.js.map +0 -1
  386. package/dist/shared/chunk-DV3G7X34.js +0 -244
  387. package/dist/shared/chunk-DV3G7X34.js.map +0 -1
  388. package/dist/shared/chunk-EVLRH6VG.js.map +0 -1
  389. package/dist/shared/chunk-F22LDHEO.js.map +0 -1
  390. package/dist/shared/chunk-F247VKAE.js.map +0 -1
  391. package/dist/shared/chunk-FQDR2BBZ.js.map +0 -1
  392. package/dist/shared/chunk-GFAQWQER.js.map +0 -1
  393. package/dist/shared/chunk-GQTZPN5D.js.map +0 -1
  394. package/dist/shared/chunk-H5JM2M2T.js.map +0 -1
  395. package/dist/shared/chunk-HTUSL2U7.js +0 -260
  396. package/dist/shared/chunk-HTUSL2U7.js.map +0 -1
  397. package/dist/shared/chunk-IQIISR22.js +0 -794
  398. package/dist/shared/chunk-IQIISR22.js.map +0 -1
  399. package/dist/shared/chunk-JK2FWFJU.js +0 -15
  400. package/dist/shared/chunk-JK2FWFJU.js.map +0 -1
  401. package/dist/shared/chunk-KEM5N6GJ.js.map +0 -1
  402. package/dist/shared/chunk-KIDICX3Y.js.map +0 -1
  403. package/dist/shared/chunk-KILJYJFE.js.map +0 -1
  404. package/dist/shared/chunk-L6C7HUSA.js.map +0 -1
  405. package/dist/shared/chunk-LCJ2VFPM.js.map +0 -1
  406. package/dist/shared/chunk-LLNPH3XR.js.map +0 -1
  407. package/dist/shared/chunk-LTIJI7Y3.js.map +0 -1
  408. package/dist/shared/chunk-MFNHFN2B.js +0 -103
  409. package/dist/shared/chunk-MFNHFN2B.js.map +0 -1
  410. package/dist/shared/chunk-N3ZTQD5I.js.map +0 -1
  411. package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
  412. package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
  413. package/dist/shared/chunk-RV7AYVFV.js.map +0 -1
  414. package/dist/shared/chunk-SE6O65HC.js.map +0 -1
  415. package/dist/shared/chunk-TFGGYU6Y.js.map +0 -1
  416. package/dist/shared/chunk-TNMNMYOB.js.map +0 -1
  417. package/dist/shared/chunk-TNTFKLCR.js +0 -1225
  418. package/dist/shared/chunk-TNTFKLCR.js.map +0 -1
  419. package/dist/shared/chunk-U5ZECCJM.js.map +0 -1
  420. package/dist/shared/chunk-UXTASZ23.js.map +0 -1
  421. package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
  422. package/dist/shared/chunk-WKN566LN.js +0 -29
  423. package/dist/shared/chunk-WKN566LN.js.map +0 -1
  424. package/dist/shared/chunk-Y74LZNND.js.map +0 -1
  425. package/dist/shared/chunk-YWOTQWIQ.js.map +0 -1
  426. package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
  427. package/dist/shared/chunk-ZR6R6Z6O.js.map +0 -1
  428. package/dist/shared/chunk-ZRRAK5NS.js.map +0 -1
  429. package/dist/shared/tests/schema-registry.test.d.ts +0 -2
  430. package/dist/shared/tests/schema-registry.test.d.ts.map +0 -1
  431. package/dist/shared/utils/schema-registry.d.ts +0 -5
  432. package/dist/shared/utils/schema-registry.d.ts.map +0 -1
  433. package/dist/shared/utils/schema-registry.js +0 -29
  434. package/dist/shared/utils/schema-registry.js.map +0 -1
  435. package/dist/shared/utils/tests/schema-registry.test.d.ts +0 -2
  436. package/dist/shared/utils/tests/schema-registry.test.d.ts.map +0 -1
  437. package/dist/shared/utils/typed-ref.d.ts +0 -43
  438. package/dist/shared/utils/typed-ref.d.ts.map +0 -1
  439. package/dist/shared/utils/typed-ref.js +0 -10
  440. package/dist/shared/utils/typed-ref.js.map +0 -1
  441. package/src/shared/tests/schema-registry.test.ts +0 -12
  442. package/src/shared/utils/schema-registry.ts +0 -82
  443. package/src/shared/utils/tests/schema-registry.test.ts +0 -13
  444. package/src/shared/utils/typed-ref.ts +0 -53
  445. /package/dist/shared/{chunk-N3BEBLWF.js.map → chunk-KQH6V22E.js.map} +0 -0
  446. /package/dist/shared/{chunk-FOGAVJC2.js.map → chunk-LGGPCCCY.js.map} +0 -0
  447. /package/dist/shared/{chunk-GIGFNQBO.js.map → chunk-W2RFDII5.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/theme.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport chroma from \"chroma-js\";\nimport { colorPalette } from \"@upstart.gg/style-system/colors\";\nimport { StringEnum } from \"./utils/string-enum\";\nimport { toLLMSchema } from \"./utils/llm\";\n\nexport const fontStacks = [\n { value: \"system-ui\", label: \"System UI\" },\n { value: \"transitional\", label: \"Transitional\" },\n { value: \"old-style\", label: \"Old style\" },\n { value: \"humanist\", label: \"Humanist\" },\n { value: \"geometric-humanist\", label: \"Geometric humanist\" },\n { value: \"classical-humanist\", label: \"Classical humanist\" },\n { value: \"neo-grotesque\", label: \"Neo-grotesque\" },\n { value: \"monospace-slab-serif\", label: \"Monospace slab serif\" },\n { value: \"monospace-code\", label: \"Monospace code\" },\n { value: \"industrial\", label: \"Industrial\" },\n { value: \"rounded-sans\", label: \"Rounded sans\" },\n { value: \"slab-serif\", label: \"Slab serif\" },\n { value: \"antique\", label: \"Antique\" },\n { value: \"didone\", label: \"Didone\" },\n { value: \"handwritten\", label: \"Handwritten\" },\n];\n\nconst headingFont = Type.Object(\n {\n type: StringEnum([\"stack\", \"theme\", \"google\"], {\n title: \"Type of font\",\n description: \"The type of font. Can be a font stack, a theme font or a Google font\",\n }),\n family: Type.String({\n title: \"Family\",\n description: \"The font family (eg. the name of the font)\",\n }),\n },\n {\n title: \"Headings font\",\n description: \"Used for titles and headings\",\n },\n);\n\nconst bodyFont = Type.Object(\n {\n type: StringEnum([\"stack\", \"theme\", \"google\"], {\n title: \"Type of font\",\n description: \"The type of font. Can be a font stack, a theme font or a Google font\",\n }),\n family: Type.String({\n title: \"Family\",\n description: \"The font family (eg. the name of the font)\",\n }),\n },\n {\n title: \"Body font\",\n description: \"Used for paragraphs and body text\",\n },\n);\n\nexport const themeSchema = Type.Object({\n id: Type.String({ title: \"ID\", description: \"The unique identifier of the theme\" }),\n name: Type.String({ title: \"Name\", description: \"The name of the theme\" }),\n description: Type.String({ title: \"Description\", description: \"The description of the theme\" }),\n tags: Type.Array(Type.String({ title: \"Tag\" }), { title: \"Tags\", description: \"The tags of the theme\" }),\n browserColorScheme: StringEnum([\"light\", \"dark\"], {\n title: \"Browser scheme\",\n description: \"Color of browser-provided UI. Either 'light' or 'dark'\",\n }),\n // Define the theme colors\n colors: Type.Object(\n {\n primary: Type.String({\n title: \"Primary\",\n description: \"The brand's primary color.\",\n \"ai:instructions\": \"Use oklch() css notation.\",\n examples: [\"oklch(0.62 0.241 354.308)\"],\n }),\n secondary: Type.String({\n title: \"Secondary\",\n description: \"The brand's second most used color\",\n \"ai:instructions\": \"Use oklch() css notation.\",\n examples: [\"oklch(0.65 0.22 185)\"],\n }),\n accent: Type.String({\n title: \"Accent\",\n description: \"The brand's least used color\",\n \"ai:instructions\": \"Use oklch() css notation.\",\n examples: [\"oklch(0.82 0.18 85)\"],\n }),\n neutral: Type.String({\n title: \"Neutral\",\n description: \"The base neutral color\",\n \"ai:instructions\": \"Use oklch() css notation.\",\n examples: [\"oklch(0.38 0.08 280)\"],\n }),\n base100: Type.String({\n title: \"Base\",\n description:\n \"Base surface color of page, used for blank backgrounds. Should be white or near-white for light color-schemes, and black or near-black for dark color-schemes.\",\n \"ai:instructions\": \"Use oklab() css notation.\",\n examples: [\"oklch(0.99 0.008 92)\"],\n }),\n base200: Type.String({\n title: \"Base 2\",\n description:\n \"Should be darker than base 100 but still light for light color-schemes, and lighter but still dark for dark color-schemes.\",\n \"ai:instructions\": \"Use oklab() css notation.\",\n examples: [\"oklch(0.97 0.01 85)\"],\n }),\n base300: Type.String({\n title: \"Base 3\",\n description:\n \"3rd base color, should be darker than base 200 for light color-schemes, and lighter than base 200 for dark color-schemes.\",\n \"ai:instructions\": \"Use oklab() css notation.\",\n examples: [\"oklch(0.95 0.02 80)\"],\n }),\n },\n {\n title: \"Theme base colors\",\n description: \"The base colors of the theme. Each theme must declare all these colors\",\n },\n ),\n\n // Define the theme typography\n typography: Type.Object({\n base: Type.Number({\n title: \"Base font size\",\n description: \"The base font size in pixels. It is safe to keep it as is.\",\n \"ai:instructions\": \"A safe value is 16.\",\n }),\n heading: headingFont,\n body: bodyFont,\n alternatives: Type.Array(\n Type.Object({\n body: bodyFont,\n heading: headingFont,\n }),\n {\n title: \"Alternative fonts\",\n description: \"Alternative fonts that can be suggested to the user. Takes the same shape\",\n },\n ),\n }),\n});\n\nexport type Theme = Static<typeof themeSchema>;\nexport const themesArray = Type.Array(themeSchema);\n\nexport type ThemesArray = Static<typeof themesArray>;\nexport type FontType = Theme[\"typography\"][\"body\"];\n\nexport const defaultTheme: Theme = {\n id: \"_default_\",\n name: \"default\",\n description: \"Default Upstart theme\",\n tags: [\"gradient\", \"vibrant\", \"modern\", \"creative\", \"dynamic\", \"artistic\", \"bold\"],\n browserColorScheme: \"light\",\n colors: {\n base100: \"#FFF\", // Warm white background\n base200: \"#F5F0E1\", // Soft cream in hex\n base300: \"#F0E3D2\", // Light warm gray in hex\n primary: \"#FF6F20\", // A vibrant orange in hex\n secondary: \"#00BFFF\", // A bright cyan in hex\n accent: \"#A4D65E\", // A lively lime green in hex\n neutral: \"#B0B0B0\", // A balanced gray in hex\n },\n typography: {\n base: 16,\n heading: { type: \"stack\", family: \"system-ui\" },\n body: { type: \"stack\", family: \"system-ui\" },\n alternatives: [],\n },\n};\n\nexport function isDefaultTheme(theme: Theme): boolean {\n return theme.id === defaultTheme.id;\n}\n\n/**\n * Process a theme, eventually fixing colors and translating them to oklch notations\n * @param theme\n */\nexport function processTheme(theme: Theme): Theme {\n return {\n ...theme,\n typography: {\n ...theme.typography,\n base: 16, // override any base size\n },\n colors: Object.entries(theme.colors).reduce(\n (acc, [key, value]) => {\n const fixedColor = fixOklchColor(value);\n return {\n // biome-ignore lint/performance/noAccumulatingSpread: <explanation>\n ...acc,\n [key]: fixedColor,\n };\n },\n {} as typeof theme.colors,\n ),\n };\n}\n\nfunction fixOklchColor(color: string) {\n const valid = chroma.valid(color);\n if (valid) {\n return color;\n }\n // Try to fix the color if it looks like oklch\n const oklchRegex = /ok(lch|lab)\\(([^)]+)\\)/;\n if (oklchRegex.test(color)) {\n const withoutComma = color.replace(/,/g, \" \");\n if (chroma.valid(withoutComma)) {\n return withoutComma;\n }\n }\n // tailwind colors\n if (/^([a-z]+)-([0-9]+)$/.test(color)) {\n const [name, shade] = color.split(\"-\");\n // @ts-ignore\n const twColor = colorPalette[name]?.[shade] as string | undefined;\n if (twColor) {\n return twColor;\n }\n }\n return color;\n}\n"],"mappings":"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","names":[]}
@@ -1,31 +1,29 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
3
  import {
4
- array,
5
4
  defineProps
6
- } from "./chunk-BHC2A43S.js";
5
+ } from "./chunk-VTCHJT4O.js";
7
6
  import {
8
- defineBrickManifest
9
- } from "./chunk-EVLRH6VG.js";
7
+ fontSize
8
+ } from "./chunk-2U5U3CCJ.js";
10
9
  import {
11
- toLLMSchema
12
- } from "./chunk-IQIISR22.js";
10
+ image
11
+ } from "./chunk-DRQKKPTX.js";
13
12
  import {
14
- fontSizeRef
15
- } from "./chunk-F22LDHEO.js";
13
+ urlOrPageId
14
+ } from "./chunk-SQXZNGQF.js";
16
15
  import {
17
- string,
18
- urlOrPageIdRef
19
- } from "./chunk-N3ZTQD5I.js";
16
+ cssLength
17
+ } from "./chunk-OJ6KL7FU.js";
20
18
  import {
21
- imageRef
22
- } from "./chunk-W6MRYRGJ.js";
19
+ colorPreset
20
+ } from "./chunk-IEMCCHM4.js";
23
21
  import {
24
- colorPresetRef
25
- } from "./chunk-TFGGYU6Y.js";
22
+ toLLMSchema
23
+ } from "./chunk-MO6CRLQA.js";
26
24
  import {
27
- cssLengthRef
28
- } from "./chunk-BPBKHEQ5.js";
25
+ defineBrickManifest
26
+ } from "./chunk-J45LSQT6.js";
29
27
 
30
28
  // src/shared/bricks/manifests/footer.manifest.ts
31
29
  import { Type } from "@sinclair/typebox";
@@ -49,13 +47,13 @@ var manifest = defineBrickManifest({
49
47
  props: defineProps(
50
48
  {
51
49
  colorPreset: Type.Optional(
52
- colorPresetRef({
50
+ colorPreset({
53
51
  title: "Color preset",
54
52
  default: { color: "neutral-600" }
55
53
  })
56
54
  ),
57
55
  padding: Type.Optional(
58
- cssLengthRef({
56
+ cssLength({
59
57
  default: "4rem",
60
58
  description: "Padding inside the footer.",
61
59
  title: "Padding",
@@ -64,17 +62,17 @@ var manifest = defineBrickManifest({
64
62
  "ui:styleId": "styles:padding"
65
63
  })
66
64
  ),
67
- logo: Type.Optional(imageRef({ title: "Logo", "ui:no-object-options": true, "ui:no-alt-text": true })),
68
- fontSize: Type.Optional(fontSizeRef({ default: "text-sm", "ui:no-extra-large-sizes": true })),
65
+ logo: Type.Optional(image({ title: "Logo", "ui:no-object-options": true, "ui:no-alt-text": true })),
66
+ fontSize: Type.Optional(fontSize({ default: "text-sm", "ui:no-extra-large-sizes": true })),
69
67
  // rows:Type.Optional(number("Rows", { default: 1, "ui:field": "slider", minimum: 1, maximum: 5 })),
70
- linksSections: array(
68
+ linksSections: Type.Array(
71
69
  Type.Object(
72
70
  {
73
- sectionTitle: string("Title"),
74
- links: array(
71
+ sectionTitle: Type.String({ title: "Title" }),
72
+ links: Type.Array(
75
73
  Type.Object({
76
- title: string("Title"),
77
- url: urlOrPageIdRef()
74
+ title: Type.String({ title: "Title" }),
75
+ url: urlOrPageId()
78
76
  }),
79
77
  {
80
78
  title: "Links"
@@ -113,6 +111,7 @@ var manifest = defineBrickManifest({
113
111
  addable: true
114
112
  // Enable add button
115
113
  },
114
+ default: [],
116
115
  description: "List of Links Sections. Each section contains a title and a list of links.",
117
116
  metadata: {
118
117
  category: "content"
@@ -535,4 +534,4 @@ export {
535
534
  footerSchemaPropsLLM,
536
535
  examples
537
536
  };
538
- //# sourceMappingURL=chunk-36PLZKMW.js.map
537
+ //# sourceMappingURL=chunk-FHA4DFIM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/footer.manifest.ts"],"sourcesContent":["import { type Static, Type } from \"@sinclair/typebox\";\nimport { VscLayoutPanelOff } from \"react-icons/vsc\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { image } from \"../props/image\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { urlOrPageId } from \"../props/string\";\nimport { fontSize } from \"../props/text\";\nimport type { BrickProps } from \"../props/types\";\nimport { toLLMSchema } from \"~/shared/utils/llm\";\nimport { cssLength } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"footer\",\n name: \"Footer\",\n category: \"layout\",\n description: \"A footer with links and an optional logo.\",\n aiInstructions: \"This brick should be used on most sites/pages. It must be placed on its own section.\",\n icon: VscLayoutPanelOff,\n staticClasses: \"flex-1\",\n isGlobalBrick: true,\n hideInLibrary: true,\n resizable: false,\n movable: false,\n defaultWidth: {\n desktop: \"100%\",\n mobile: \"100%\",\n },\n props: defineProps(\n {\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color preset\",\n default: { color: \"neutral-600\" },\n }),\n ),\n padding: Type.Optional(\n cssLength({\n default: \"4rem\",\n description: \"Padding inside the footer.\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n logo: Type.Optional(image({ title: \"Logo\", \"ui:no-object-options\": true, \"ui:no-alt-text\": true })),\n fontSize: Type.Optional(fontSize({ default: \"text-sm\", \"ui:no-extra-large-sizes\": true })),\n // rows:Type.Optional(number(\"Rows\", { default: 1, \"ui:field\": \"slider\", minimum: 1, maximum: 5 })),\n linksSections: Type.Array(\n Type.Object(\n {\n sectionTitle: Type.String({ title: \"Title\" }),\n links: Type.Array(\n Type.Object({\n title: Type.String({ title: \"Title\" }),\n url: urlOrPageId(),\n }),\n {\n title: \"Links\",\n },\n ),\n },\n {\n examples: [\n {\n sectionTitle: \"Quick Links\",\n links: [\n { title: \"Home\", url: \"/\" },\n { title: \"About\", url: \"page-id-of-about-page\" },\n { title: \"Our Services\", url: \"page-id-of-services-page\" },\n ],\n },\n {\n sectionTitle: \"Legal\",\n links: [\n { title: \"Privacy Policy\", url: \"page-id-of-privacy-policy\" },\n { title: \"Terms of Service\", url: \"page-id-of-terms\" },\n { title: \"Our law firm\", url: \"https://my.external.lawfirm.com\" },\n ],\n },\n ],\n },\n ),\n {\n title: \"Links\",\n \"ui:displayField\": \"sectionTitle\",\n \"ui:options\": {\n orderable: true, // Enable drag & drop reordering\n removable: true, // Enable delete button\n addable: true, // Enable add button\n },\n default: [],\n description: \"List of Links Sections. Each section contains a title and a list of links.\",\n metadata: {\n category: \"content\",\n },\n },\n ),\n },\n { noGrow: true, noAlignSelf: true },\n ),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const footerSchemaPropsLLM = toLLMSchema(manifest.props);\n\nexport type FooterProps = Static<Manifest[\"props\"]>;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Simple footer with logo on the left\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#f8f9fa\",\n logo: {\n src: \"https://via.placeholder.com/120x40.png?text=Logo\",\n alt: \"Company logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Quick Links\",\n links: [\n { title: \"Home\", url: \"/\" },\n { title: \"About\", url: \"/about\" },\n { title: \"Contact\", url: \"/contact\" },\n ],\n },\n {\n sectionTitle: \"Legal\",\n links: [\n { title: \"Privacy Policy\", url: \"/privacy\" },\n { title: \"Terms of Service\", url: \"/terms\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Corporate footer with centered logo\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#2c3e50\",\n logo: {\n src: \"https://via.placeholder.com/150x50.png?text=Corporate\",\n alt: \"Corporate logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Products\",\n links: [\n { title: \"Software Solutions\", url: \"/products/software\" },\n { title: \"Consulting\", url: \"/products/consulting\" },\n { title: \"Support\", url: \"/products/support\" },\n { title: \"Training\", url: \"/products/training\" },\n ],\n },\n {\n sectionTitle: \"Company\",\n links: [\n { title: \"About Us\", url: \"/about\" },\n { title: \"Careers\", url: \"/careers\" },\n { title: \"News\", url: \"/news\" },\n { title: \"Investors\", url: \"/investors\" },\n ],\n },\n {\n sectionTitle: \"Resources\",\n links: [\n { title: \"Documentation\", url: \"/docs\" },\n { title: \"API Reference\", url: \"/api\" },\n { title: \"Community\", url: \"/community\" },\n { title: \"Blog\", url: \"/blog\" },\n ],\n },\n ],\n },\n },\n {\n description: \"E-commerce footer with logo on the right\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#ffffff\",\n logo: {\n src: \"https://via.placeholder.com/140x45.png?text=Shop\",\n alt: \"Shop logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Shop\",\n links: [\n { title: \"All Products\", url: \"/products\" },\n { title: \"New Arrivals\", url: \"/new\" },\n { title: \"Sale\", url: \"/sale\" },\n { title: \"Gift Cards\", url: \"/gift-cards\" },\n ],\n },\n {\n sectionTitle: \"Customer Service\",\n links: [\n { title: \"Help Center\", url: \"/help\" },\n { title: \"Returns\", url: \"/returns\" },\n { title: \"Shipping Info\", url: \"/shipping\" },\n { title: \"Size Guide\", url: \"/size-guide\" },\n ],\n },\n {\n sectionTitle: \"Account\",\n links: [\n { title: \"My Account\", url: \"/account\" },\n { title: \"Order History\", url: \"/orders\" },\n { title: \"Wishlist\", url: \"/wishlist\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Large organization footer with multiple rows\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#1a1a1a\",\n logo: {\n src: \"https://via.placeholder.com/180x60.png?text=Enterprise\",\n alt: \"Enterprise logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Products & Services\",\n links: [\n { title: \"Cloud Solutions\", url: \"/cloud\" },\n { title: \"Data Analytics\", url: \"/analytics\" },\n { title: \"AI & Machine Learning\", url: \"/ai\" },\n { title: \"Cybersecurity\", url: \"/security\" },\n { title: \"DevOps Tools\", url: \"/devops\" },\n { title: \"IoT Platform\", url: \"/iot\" },\n ],\n },\n {\n sectionTitle: \"Industries\",\n links: [\n { title: \"Healthcare\", url: \"/industries/healthcare\" },\n { title: \"Finance\", url: \"/industries/finance\" },\n { title: \"Retail\", url: \"/industries/retail\" },\n { title: \"Manufacturing\", url: \"/industries/manufacturing\" },\n { title: \"Education\", url: \"/industries/education\" },\n { title: \"Government\", url: \"/industries/government\" },\n ],\n },\n {\n sectionTitle: \"Resources\",\n links: [\n { title: \"Documentation\", url: \"/docs\" },\n { title: \"API Reference\", url: \"/api\" },\n { title: \"Tutorials\", url: \"/tutorials\" },\n { title: \"Webinars\", url: \"/webinars\" },\n { title: \"White Papers\", url: \"/whitepapers\" },\n { title: \"Case Studies\", url: \"/case-studies\" },\n ],\n },\n {\n sectionTitle: \"Support & Community\",\n links: [\n { title: \"Help Center\", url: \"/help\" },\n { title: \"Community Forum\", url: \"/forum\" },\n { title: \"Contact Support\", url: \"/support\" },\n { title: \"Service Status\", url: \"/status\" },\n { title: \"Partner Portal\", url: \"/partners\" },\n { title: \"Developer Hub\", url: \"/developers\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Startup footer with minimal links and left logo\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#f5f5f5\",\n logo: {\n src: \"https://via.placeholder.com/100x35.png?text=Startup\",\n alt: \"Startup logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Company\",\n links: [\n { title: \"About\", url: \"/about\" },\n { title: \"Team\", url: \"/team\" },\n { title: \"Jobs\", url: \"/jobs\" },\n ],\n },\n {\n sectionTitle: \"Product\",\n links: [\n { title: \"Features\", url: \"/features\" },\n { title: \"Pricing\", url: \"/pricing\" },\n { title: \"Demo\", url: \"/demo\" },\n ],\n },\n {\n sectionTitle: \"Support\",\n links: [\n { title: \"Help\", url: \"/help\" },\n { title: \"Contact\", url: \"/contact\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Agency footer with centered logo and creative sections\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#6366f1\",\n logo: {\n src: \"https://via.placeholder.com/130x45.png?text=Agency\",\n alt: \"Creative agency logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Services\",\n links: [\n { title: \"Web Design\", url: \"/services/web-design\" },\n { title: \"Branding\", url: \"/services/branding\" },\n { title: \"Digital Marketing\", url: \"/services/marketing\" },\n { title: \"Photography\", url: \"/services/photography\" },\n ],\n },\n {\n sectionTitle: \"Portfolio\",\n links: [\n { title: \"Recent Work\", url: \"/portfolio\" },\n { title: \"Case Studies\", url: \"/case-studies\" },\n { title: \"Client Reviews\", url: \"/reviews\" },\n ],\n },\n {\n sectionTitle: \"Connect\",\n links: [\n { title: \"Contact Us\", url: \"/contact\" },\n { title: \"Get Quote\", url: \"/quote\" },\n { title: \"Newsletter\", url: \"/newsletter\" },\n ],\n },\n ],\n },\n },\n {\n description: \"SaaS platform footer with comprehensive links\",\n type: \"footer\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/160x50.png?text=SaaS+Platform\",\n alt: \"SaaS platform logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Platform\",\n links: [\n { title: \"Dashboard\", url: \"/dashboard\" },\n { title: \"Analytics\", url: \"/analytics\" },\n { title: \"Integrations\", url: \"/integrations\" },\n { title: \"API\", url: \"/api\" },\n ],\n },\n {\n sectionTitle: \"Solutions\",\n links: [\n { title: \"For Startups\", url: \"/solutions/startups\" },\n { title: \"For Enterprise\", url: \"/solutions/enterprise\" },\n { title: \"For Agencies\", url: \"/solutions/agencies\" },\n { title: \"For Developers\", url: \"/solutions/developers\" },\n ],\n },\n {\n sectionTitle: \"Resources\",\n links: [\n { title: \"Blog\", url: \"/blog\" },\n { title: \"Documentation\", url: \"/docs\" },\n { title: \"Help Center\", url: \"/help\" },\n { title: \"Community\", url: \"/community\" },\n ],\n },\n {\n sectionTitle: \"Company\",\n links: [\n { title: \"About Us\", url: \"/about\" },\n { title: \"Careers\", url: \"/careers\" },\n { title: \"Press\", url: \"/press\" },\n { title: \"Legal\", url: \"/legal\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Non-profit footer with mission-focused links\",\n type: \"footer\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/140x50.png?text=Non+Profit\",\n alt: \"Non-profit organization logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Our Work\",\n links: [\n { title: \"Programs\", url: \"/programs\" },\n { title: \"Impact\", url: \"/impact\" },\n { title: \"Success Stories\", url: \"/stories\" },\n { title: \"Research\", url: \"/research\" },\n ],\n },\n {\n sectionTitle: \"Get Involved\",\n links: [\n { title: \"Donate\", url: \"/donate\" },\n { title: \"Volunteer\", url: \"/volunteer\" },\n { title: \"Events\", url: \"/events\" },\n { title: \"Partner with Us\", url: \"/partnerships\" },\n ],\n },\n {\n sectionTitle: \"About\",\n links: [\n { title: \"Our Mission\", url: \"/mission\" },\n { title: \"Leadership\", url: \"/leadership\" },\n { title: \"Annual Reports\", url: \"/reports\" },\n { title: \"Contact\", url: \"/contact\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Tech blog footer with right-aligned logo\",\n type: \"footer\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/120x40.png?text=Tech+Blog\",\n alt: \"Tech blog logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Categories\",\n links: [\n { title: \"Web Development\", url: \"/category/web-dev\" },\n { title: \"AI & ML\", url: \"/category/ai-ml\" },\n { title: \"DevOps\", url: \"/category/devops\" },\n { title: \"Mobile\", url: \"/category/mobile\" },\n ],\n },\n {\n sectionTitle: \"Popular\",\n links: [\n { title: \"Latest Posts\", url: \"/latest\" },\n { title: \"Trending\", url: \"/trending\" },\n { title: \"Best of 2024\", url: \"/best-2024\" },\n { title: \"Tutorials\", url: \"/tutorials\" },\n ],\n },\n {\n sectionTitle: \"Community\",\n links: [\n { title: \"Newsletter\", url: \"/newsletter\" },\n { title: \"Discord\", url: \"/discord\" },\n { title: \"Contributors\", url: \"/contributors\" },\n { title: \"Write for Us\", url: \"/write\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Restaurant footer with location and menu links\",\n type: \"footer\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/150x60.png?text=Restaurant\",\n alt: \"Restaurant logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Menu\",\n links: [\n { title: \"Appetizers\", url: \"/menu/appetizers\" },\n { title: \"Main Courses\", url: \"/menu/mains\" },\n { title: \"Desserts\", url: \"/menu/desserts\" },\n { title: \"Beverages\", url: \"/menu/drinks\" },\n ],\n },\n {\n sectionTitle: \"Services\",\n links: [\n { title: \"Reservations\", url: \"/reservations\" },\n { title: \"Catering\", url: \"/catering\" },\n { title: \"Private Events\", url: \"/events\" },\n { title: \"Gift Cards\", url: \"/gift-cards\" },\n ],\n },\n {\n sectionTitle: \"Info\",\n links: [\n { title: \"About Us\", url: \"/about\" },\n { title: \"Location\", url: \"/location\" },\n { title: \"Hours\", url: \"/hours\" },\n { title: \"Contact\", url: \"/contact\" },\n ],\n },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -1,29 +1,26 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
3
  import {
4
- defineProps
5
- } from "./chunk-BHC2A43S.js";
6
- import {
7
- defineBrickManifest
8
- } from "./chunk-EVLRH6VG.js";
4
+ rounding
5
+ } from "./chunk-SRYBJ6NQ.js";
9
6
  import {
10
- loopRef
11
- } from "./chunk-IQIISR22.js";
7
+ defineProps
8
+ } from "./chunk-VTCHJT4O.js";
12
9
  import {
13
- string
14
- } from "./chunk-N3ZTQD5I.js";
10
+ image
11
+ } from "./chunk-DRQKKPTX.js";
15
12
  import {
16
- imageRef
17
- } from "./chunk-W6MRYRGJ.js";
13
+ cssLength
14
+ } from "./chunk-OJ6KL7FU.js";
18
15
  import {
19
- roundingRef
20
- } from "./chunk-NTLAKMMQ.js";
16
+ loop
17
+ } from "./chunk-XFZQGRRL.js";
21
18
  import {
22
- colorPresetRef
23
- } from "./chunk-TFGGYU6Y.js";
19
+ colorPreset
20
+ } from "./chunk-IEMCCHM4.js";
24
21
  import {
25
- cssLengthRef
26
- } from "./chunk-BPBKHEQ5.js";
22
+ defineBrickManifest
23
+ } from "./chunk-J45LSQT6.js";
27
24
 
28
25
  // src/shared/bricks/manifests/carousel.manifest.ts
29
26
  import { Type } from "@sinclair/typebox";
@@ -86,12 +83,12 @@ AVOID:
86
83
  icon: TbCarouselHorizontal,
87
84
  props: defineProps({
88
85
  colorPreset: Type.Optional(
89
- colorPresetRef({
86
+ colorPreset({
90
87
  title: "Color"
91
88
  })
92
89
  ),
93
90
  padding: Type.Optional(
94
- cssLengthRef({
91
+ cssLength({
95
92
  default: "1rem",
96
93
  description: "Padding inside the carousel.",
97
94
  "ai:instructions": "Use only a single value like '1rem' or '10px'",
@@ -104,12 +101,12 @@ AVOID:
104
101
  images: Type.Optional(
105
102
  Type.Array(
106
103
  Type.Object({
107
- src: imageRef({
104
+ src: image({
108
105
  "ui:responsive": "desktop",
109
106
  "ui:no-alt-text": true,
110
107
  "ui:no-object-options": true
111
108
  }),
112
- legend: string("Legend")
109
+ legend: Type.String({ title: "Legend" })
113
110
  }),
114
111
  {
115
112
  title: "Images",
@@ -122,11 +119,11 @@ AVOID:
122
119
  )
123
120
  ),
124
121
  borderRadius: Type.Optional(
125
- roundingRef({
122
+ rounding({
126
123
  default: "rounded-md"
127
124
  })
128
125
  ),
129
- loop: Type.Optional(loopRef())
126
+ loop: Type.Optional(loop())
130
127
  })
131
128
  });
132
129
  var examples = [
@@ -847,4 +844,4 @@ export {
847
844
  manifest,
848
845
  examples
849
846
  };
850
- //# sourceMappingURL=chunk-L6C7HUSA.js.map
847
+ //# sourceMappingURL=chunk-FUUSAMN3.js.map
@@ -0,0 +1 @@
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 { image } from \"../props/image\";\nimport { rounding } from \"../props/border\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { loop } from \"../props/dynamic\";\nimport { cssLength } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\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: `Use the carousel component for showcasing sequential visual content with smooth navigation between images.\n\nWHEN TO USE:\n- Product galleries with multiple angles or variations\n- Portfolio showcases with project images\n- Step-by-step tutorials or processes (recipes, instructions)\n- Before/after comparisons or transformations\n- Team member profiles with photos\n- Event photo galleries or highlights\n- Feature demonstrations or software screenshots\n- Travel destinations or location showcases\n\nCONTENT GUIDELINES:\n- Optimal range: 2-8 images for best user engagement (max 12 supported)\n- Single image allowed only as placeholder for future expansion\n- Each image needs: { src: { src, alt }, legend }\n- Alt text MUST be descriptive and never empty\n- Legend text should be concise (≤90 characters) and informative\n- Use empty string (\"\") for legend only when no caption is intentionally desired\n\nIMAGE CONSISTENCY:\n- Keep aspect ratios similar across slides to prevent layout jumps\n- Avoid mixing very tall portrait with very wide landscape images\n- Use consistent image quality and style throughout carousel\n- Consider loading performance with image optimization\n\nSTYLING OPTIONS:\n- padding: \"0\" for edge-to-edge, \"1rem\" for standard, \"2rem+\" for generous spacing\n- borderRadius: \"rounded-none\" for sharp/modern, \"rounded-md\" for standard, \"rounded-xl\" for friendly, \"rounded-full\" for circular (avatars)\n- colorPreset: Use sparingly - \"neutral-50\"/\"primary-50\" for subtle framing, gradients for premium feel\n\nDYNAMIC CONTENT:\n- Use loop property with single template object for data-driven carousels\n- Template variables in src and legend: \"{{product.image}}\", \"{{team.name}} - {{team.role}}\"\n- Perfect for: product catalogs, team directories, portfolio projects, event galleries\n\nAVOID:\n- Including unrelated properties (buttons, titles outside legend)\n- Heavy background colors that distract from images\n- Inconsistent aspect ratios that cause jarring transitions\n- More than 12 images (reduces focus and performance)\n- Empty or placeholder alt text (accessibility requirement)`,\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 colorPreset({\n title: \"Color\",\n }),\n ),\n padding: Type.Optional(\n cssLength({\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: image({\n \"ui:responsive\": \"desktop\",\n \"ui:no-alt-text\": true,\n \"ui:no-object-options\": true,\n }),\n legend: Type.String({ title: \"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 rounding({\n default: \"rounded-md\",\n }),\n ),\n loop: Type.Optional(loop()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n // BASIC CAROUSEL EXAMPLES\n {\n description: \"Basic image carousel with legends - Simple content showcase\",\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 // PRODUCT & COMMERCIAL\n {\n description: \"Product showcase carousel with rounded corners and padding - E-commerce gallery style\",\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: \"neutral-50\" },\n },\n },\n\n // PORTFOLIO & CREATIVE\n {\n description: \"Portfolio carousel with minimal styling - Clean professional presentation\",\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 // EVENTS & EXPERIENCES\n {\n description: \"Event photos carousel with primary color theme - Conference or gathering highlights\",\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 // TEAM & PEOPLE\n {\n description: \"Team members carousel with circular images - Professional team showcase\",\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: \"primary-50\" },\n borderRadius: \"rounded-full\",\n padding: \"2rem\",\n },\n },\n\n // TUTORIALS & PROCESSES\n {\n description: \"Recipe steps carousel with detailed descriptions - Step-by-step instructional content\",\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: \"accent-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: \"accent-100\" },\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: \"neutral-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: \"secondary-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: \"accent-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: \"primary-50\" },\n borderRadius: \"rounded-2xl\",\n padding: \"4rem\",\n },\n },\n {\n description: \"Dynamic product gallery using products query - Data-driven product showcase\",\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 // DYNAMIC CONTENT EXAMPLES\n {\n description: \"Loop template for portfolioProjects query (one object will repeat per row)\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{portfolioProjects.featuredImage}}\",\n alt: \"{{portfolioProjects.projectName}} featured image\",\n },\n legend:\n \"{{portfolioProjects.projectName}} – {{portfolioProjects.clientName}} ({{portfolioProjects.year}})\",\n },\n ],\n colorPreset: { color: \"neutral-50\" },\n borderRadius: \"rounded-md\",\n padding: \"1rem\",\n loop: {\n over: \"portfolioProjects\",\n },\n },\n },\n\n // SPECIAL STYLING VARIATIONS\n {\n description: \"Showcase carousel with subtle gradient background frame\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: { src: \"https://via.placeholder.com/900x500.png?text=Showcase+1\", alt: \"Showcase slide 1\" },\n legend: \"Launch Dashboard\",\n },\n {\n src: { src: \"https://via.placeholder.com/900x500.png?text=Showcase+2\", alt: \"Showcase slide 2\" },\n legend: \"Collaboration Tools\",\n },\n {\n src: { src: \"https://via.placeholder.com/900x500.png?text=Showcase+3\", alt: \"Showcase slide 3\" },\n legend: \"Usage Analytics\",\n },\n ],\n colorPreset: { color: \"primary-gradient-300\", gradientDirection: \"bg-gradient-to-br\" },\n borderRadius: \"rounded-xl\",\n padding: \"2rem\",\n },\n },\n // MINIMAL EDGE (no padding, square corners)\n {\n description: \"Minimal edge-to-edge carousel (no padding, no rounding)\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: { src: \"https://via.placeholder.com/800x400.png?text=Edge+1\", alt: \"Edge slide 1\" },\n legend: \"\",\n },\n {\n src: { src: \"https://via.placeholder.com/800x400.png?text=Edge+2\", alt: \"Edge slide 2\" },\n legend: \"\",\n },\n ],\n borderRadius: \"rounded-none\",\n padding: \"0\",\n },\n },\n // SINGLE IMAGE (acts as prepared placeholder carousel)\n {\n description: \"Single-image carousel (placeholder for future expansion)\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: { src: \"https://via.placeholder.com/1000x420.png?text=Banner\", alt: \"Promotional banner\" },\n legend: \"Early Access Program\",\n },\n ],\n colorPreset: { color: \"secondary-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"1.25rem\",\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":"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","names":[]}
@@ -0,0 +1,22 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+
4
+ // src/shared/utils/string-enum.ts
5
+ import { TypeRegistry, Kind, Type } from "@sinclair/typebox";
6
+ function StringEnumCheck(schema, value) {
7
+ return typeof value === "string" && schema.enum.includes(value);
8
+ }
9
+ TypeRegistry.Set("StringEnum", StringEnumCheck);
10
+ function StringEnum(values, options = {}) {
11
+ return Type.Unsafe({
12
+ [Kind]: "StringEnum",
13
+ type: "string",
14
+ enum: values,
15
+ ...options
16
+ });
17
+ }
18
+
19
+ export {
20
+ StringEnum
21
+ };
22
+ //# sourceMappingURL=chunk-GDYCCB3B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/utils/string-enum.ts"],"sourcesContent":["import { TypeRegistry, Kind, type TSchema, type SchemaOptions, Type } from \"@sinclair/typebox\";\n\nexport type StringEnumOptions = Partial<SchemaOptions> & {\n enumNames?: string[];\n};\n\n// -------------------------------------------------------------------------------------\n// TStringEnum\n// -------------------------------------------------------------------------------------\nexport interface TStringEnum<T extends string[]> extends TSchema {\n [Kind]: \"StringEnum\";\n static: T[number];\n enum: T;\n}\n\nfunction StringEnumCheck(schema: TStringEnum<string[]>, value: unknown) {\n return typeof value === \"string\" && schema.enum.includes(value);\n}\n\nTypeRegistry.Set(\"StringEnum\", StringEnumCheck);\n\n// -------------------------------------------------------------------------------------\n// UnionEnum\n// -------------------------------------------------------------------------------------\n/** `[Experimental]` Creates a Union type with a `enum` schema representation */\nexport function StringEnum<T extends string[]>(values: [...T], options: StringEnumOptions = {}) {\n return Type.Unsafe<T[number]>({\n [Kind]: \"StringEnum\",\n type: \"string\",\n enum: values,\n ...options,\n });\n}\n"],"mappings":";;;;AAAA,SAAS,cAAc,MAAwC,YAAY;AAe3E,SAAS,gBAAgB,QAA+B,OAAgB;AACtE,SAAO,OAAO,UAAU,YAAY,OAAO,KAAK,SAAS,KAAK;AAChE;AAEA,aAAa,IAAI,cAAc,eAAe;AAMvC,SAAS,WAA+B,QAAgB,UAA6B,CAAC,GAAG;AAC9F,SAAO,KAAK,OAAkB;AAAA,IAC5B,CAAC,IAAI,GAAG;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -0,0 +1,41 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+ import {
4
+ StringEnum
5
+ } from "./chunk-GDYCCB3B.js";
6
+
7
+ // src/shared/images.ts
8
+ import { Type } from "@sinclair/typebox";
9
+ var imageSearchSchema = Type.Object({
10
+ query: Type.String({
11
+ description: 'The search query for finding images (e.g. "mountain landscape", "coffee shop")'
12
+ }),
13
+ orientation: Type.Optional(
14
+ StringEnum(["landscape", "portrait", "squarish"], {
15
+ description: "Filter by photo orientation"
16
+ })
17
+ )
18
+ });
19
+ var imageResultsSchema = Type.Array(
20
+ Type.Object({
21
+ provider: Type.String({ description: "The image provider (e.g. unsplash, pexels)" }),
22
+ description: Type.String({ description: "A brief description of the image" }),
23
+ url: Type.String({ description: "The URL of the image" }),
24
+ blurHash: Type.Optional(Type.String({ description: "The blur hash of the image" })),
25
+ author: Type.Optional(
26
+ Type.Object({
27
+ name: Type.String({ description: "The name of the user who uploaded the image" }),
28
+ profileUrl: Type.String({ description: "The profile URL of the user who uploaded the image" })
29
+ })
30
+ )
31
+ }),
32
+ {
33
+ title: "Array of image search results"
34
+ }
35
+ );
36
+
37
+ export {
38
+ imageSearchSchema,
39
+ imageResultsSchema
40
+ };
41
+ //# sourceMappingURL=chunk-GLV6QIIM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/images.ts"],"sourcesContent":["import { type Static, Type } from \"@sinclair/typebox\";\nimport { StringEnum } from \"./utils/string-enum\";\n\nexport const imageSearchSchema = Type.Object({\n query: Type.String({\n description: 'The search query for finding images (e.g. \"mountain landscape\", \"coffee shop\")',\n }),\n orientation: Type.Optional(\n StringEnum([\"landscape\", \"portrait\", \"squarish\"], {\n description: \"Filter by photo orientation\",\n }),\n ),\n});\n\n// Derive TypeScript type from the schema\nexport type ImageSearchParams = Static<typeof imageSearchSchema>;\n\nexport const imageResultsSchema = Type.Array(\n Type.Object({\n provider: Type.String({ description: \"The image provider (e.g. unsplash, pexels)\" }),\n description: Type.String({ description: \"A brief description of the image\" }),\n url: Type.String({ description: \"The URL of the image\" }),\n blurHash: Type.Optional(Type.String({ description: \"The blur hash of the image\" })),\n author: Type.Optional(\n Type.Object({\n name: Type.String({ description: \"The name of the user who uploaded the image\" }),\n profileUrl: Type.String({ description: \"The profile URL of the user who uploaded the image\" }),\n }),\n ),\n }),\n {\n title: \"Array of image search results\",\n },\n);\n\nexport type ImageSearchResultsType = Static<typeof imageResultsSchema>;\nexport type SimpleImageMetadata = Pick<\n ImageSearchResultsType[number],\n \"description\" | \"blurHash\" | \"author\" | \"url\" | \"provider\"\n>;\n"],"mappings":";;;;;;;AAAA,SAAsB,YAAY;AAG3B,IAAM,oBAAoB,KAAK,OAAO;AAAA,EAC3C,OAAO,KAAK,OAAO;AAAA,IACjB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,aAAa,KAAK;AAAA,IAChB,WAAW,CAAC,aAAa,YAAY,UAAU,GAAG;AAAA,MAChD,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACF,CAAC;AAKM,IAAM,qBAAqB,KAAK;AAAA,EACrC,KAAK,OAAO;AAAA,IACV,UAAU,KAAK,OAAO,EAAE,aAAa,6CAA6C,CAAC;AAAA,IACnF,aAAa,KAAK,OAAO,EAAE,aAAa,mCAAmC,CAAC;AAAA,IAC5E,KAAK,KAAK,OAAO,EAAE,aAAa,uBAAuB,CAAC;AAAA,IACxD,UAAU,KAAK,SAAS,KAAK,OAAO,EAAE,aAAa,6BAA6B,CAAC,CAAC;AAAA,IAClF,QAAQ,KAAK;AAAA,MACX,KAAK,OAAO;AAAA,QACV,MAAM,KAAK,OAAO,EAAE,aAAa,8CAA8C,CAAC;AAAA,QAChF,YAAY,KAAK,OAAO,EAAE,aAAa,qDAAqD,CAAC;AAAA,MAC/F,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAAA,EACD;AAAA,IACE,OAAO;AAAA,EACT;AACF;","names":[]}