@upstart.gg/sdk 0.0.136 → 0.0.138

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 (461) hide show
  1. package/dist/shared/ai/schemas.d.ts.map +1 -1
  2. package/dist/shared/ai/schemas.js +26 -31
  3. package/dist/shared/ai/schemas.js.map +1 -1
  4. package/dist/shared/ai/types.d.ts +14 -62
  5. package/dist/shared/ai/types.d.ts.map +1 -1
  6. package/dist/shared/ajv.js +33 -31
  7. package/dist/shared/ajv.js.map +1 -1
  8. package/dist/shared/attributes.d.ts +91 -85
  9. package/dist/shared/attributes.d.ts.map +1 -1
  10. package/dist/shared/attributes.js +21 -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 +14 -20
  17. package/dist/shared/bricks/manifests/all-manifests.js +45 -43
  18. package/dist/shared/bricks/manifests/all-props.d.ts +1511 -0
  19. package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -0
  20. package/dist/shared/bricks/manifests/all-props.js +244 -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 +17 -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 +14 -20
  28. package/dist/shared/bricks/manifests/card.manifest.d.ts +5 -3
  29. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  30. package/dist/shared/bricks/manifests/card.manifest.js +19 -20
  31. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +3 -2
  32. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  33. package/dist/shared/bricks/manifests/carousel.manifest.js +16 -20
  34. package/dist/shared/bricks/manifests/footer.manifest.d.ts +5 -3
  35. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  36. package/dist/shared/bricks/manifests/footer.manifest.js +14 -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 +14 -20
  40. package/dist/shared/bricks/manifests/hero.manifest.d.ts +3 -5
  41. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  42. package/dist/shared/bricks/manifests/hero.manifest.js +14 -20
  43. package/dist/shared/bricks/manifests/html.manifest.d.ts +2 -1
  44. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  45. package/dist/shared/bricks/manifests/html.manifest.js +9 -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 +14 -20
  49. package/dist/shared/bricks/manifests/image.manifest.d.ts +3 -2
  50. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  51. package/dist/shared/bricks/manifests/image.manifest.js +17 -20
  52. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +4 -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 +16 -20
  55. package/dist/shared/bricks/manifests/map.manifest.d.ts +2 -1
  56. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  57. package/dist/shared/bricks/manifests/map.manifest.js +12 -20
  58. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +7 -5
  59. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  60. package/dist/shared/bricks/manifests/navbar.manifest.js +16 -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 +14 -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 +15 -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 +9 -20
  70. package/dist/shared/bricks/manifests/table.manifest.d.ts +5 -4
  71. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  72. package/dist/shared/bricks/manifests/table.manifest.js +16 -20
  73. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +5 -5
  74. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
  75. package/dist/shared/bricks/manifests/tabs.manifest.js +16 -20
  76. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +5 -3
  77. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  78. package/dist/shared/bricks/manifests/testimonials.manifest.js +19 -20
  79. package/dist/shared/bricks/manifests/text.manifest.d.ts +3 -10
  80. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  81. package/dist/shared/bricks/manifests/text.manifest.js +14 -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 +16 -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 +12 -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 +5 -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/grow.d.ts +3 -0
  127. package/dist/shared/bricks/props/grow.d.ts.map +1 -0
  128. package/dist/shared/{utils/typed-ref.js → bricks/props/grow.js} +5 -5
  129. package/dist/shared/bricks/props/helpers.js +6 -6
  130. package/dist/shared/bricks/props/image.d.ts +3 -8
  131. package/dist/shared/bricks/props/image.d.ts.map +1 -1
  132. package/dist/shared/bricks/props/image.js +4 -7
  133. package/dist/shared/bricks/props/string.d.ts +2 -5
  134. package/dist/shared/bricks/props/string.d.ts.map +1 -1
  135. package/dist/shared/bricks/props/string.js +3 -10
  136. package/dist/shared/bricks/props/tags.d.ts +0 -1
  137. package/dist/shared/bricks/props/tags.d.ts.map +1 -1
  138. package/dist/shared/bricks/props/tags.js +3 -6
  139. package/dist/shared/bricks/props/text.d.ts +0 -3
  140. package/dist/shared/bricks/props/text.d.ts.map +1 -1
  141. package/dist/shared/bricks/props/text.js +4 -11
  142. package/dist/shared/bricks/props/types.d.ts +2 -2
  143. package/dist/shared/bricks/props/types.d.ts.map +1 -1
  144. package/dist/shared/bricks.d.ts +65 -154
  145. package/dist/shared/bricks.d.ts.map +1 -1
  146. package/dist/shared/bricks.js +48 -52
  147. package/dist/shared/chunk-2EOCK66Z.js +19 -0
  148. package/dist/shared/chunk-2EOCK66Z.js.map +1 -0
  149. package/dist/shared/{chunk-F22LDHEO.js → chunk-2U5U3CCJ.js} +3 -18
  150. package/dist/shared/chunk-2U5U3CCJ.js.map +1 -0
  151. package/dist/shared/{chunk-2RK3CPYJ.js → chunk-2UEPTT5J.js} +12 -19
  152. package/dist/shared/chunk-2UEPTT5J.js.map +1 -0
  153. package/dist/shared/{chunk-W6MRYRGJ.js → chunk-2Z5WOCFS.js} +46 -20
  154. package/dist/shared/chunk-2Z5WOCFS.js.map +1 -0
  155. package/dist/shared/{chunk-CRS7QCPZ.js → chunk-34IUWNRX.js} +65 -27
  156. package/dist/shared/chunk-34IUWNRX.js.map +1 -0
  157. package/dist/shared/chunk-57NRTXRA.js +309 -0
  158. package/dist/shared/chunk-57NRTXRA.js.map +1 -0
  159. package/dist/shared/{chunk-UXTASZ23.js → chunk-5HJT5NJ3.js} +66 -63
  160. package/dist/shared/chunk-5HJT5NJ3.js.map +1 -0
  161. package/dist/shared/{chunk-H5JM2M2T.js → chunk-5J4Y43RM.js} +58 -185
  162. package/dist/shared/chunk-5J4Y43RM.js.map +1 -0
  163. package/dist/shared/{chunk-RV7AYVFV.js → chunk-5OVOXUFX.js} +6 -20
  164. package/dist/shared/chunk-5OVOXUFX.js.map +1 -0
  165. package/dist/shared/{chunk-TNMNMYOB.js → chunk-5RCC2STG.js} +2 -13
  166. package/dist/shared/chunk-5RCC2STG.js.map +1 -0
  167. package/dist/shared/{chunk-42OUNI7C.js → chunk-5SNSUC6Q.js} +27 -29
  168. package/dist/shared/chunk-5SNSUC6Q.js.map +1 -0
  169. package/dist/shared/{chunk-ZR6R6Z6O.js → chunk-B5T2LFV2.js} +34 -36
  170. package/dist/shared/chunk-B5T2LFV2.js.map +1 -0
  171. package/dist/shared/{chunk-Q4NPPLEU.js → chunk-BHARJBEK.js} +2 -9
  172. package/dist/shared/chunk-BHARJBEK.js.map +1 -0
  173. package/dist/shared/{chunk-LLNPH3XR.js → chunk-DCM4732T.js} +6 -8
  174. package/dist/shared/chunk-DCM4732T.js.map +1 -0
  175. package/dist/shared/{chunk-LCJ2VFPM.js → chunk-E3ZW57HF.js} +32 -26
  176. package/dist/shared/chunk-E3ZW57HF.js.map +1 -0
  177. package/dist/shared/{chunk-CSF2WQX2.js → chunk-EID5HPF3.js} +15 -12
  178. package/dist/shared/chunk-EID5HPF3.js.map +1 -0
  179. package/dist/shared/chunk-EMF5TCPX.js +389 -0
  180. package/dist/shared/chunk-EMF5TCPX.js.map +1 -0
  181. package/dist/shared/chunk-EUFVTHAG.js +33 -0
  182. package/dist/shared/chunk-EUFVTHAG.js.map +1 -0
  183. package/dist/shared/{chunk-2IHKVMKW.js → chunk-FC52EHCC.js} +18 -19
  184. package/dist/shared/chunk-FC52EHCC.js.map +1 -0
  185. package/dist/shared/chunk-FD7YYFRI.js +225 -0
  186. package/dist/shared/chunk-FD7YYFRI.js.map +1 -0
  187. package/dist/shared/{chunk-KILJYJFE.js → chunk-FVV27R73.js} +20 -105
  188. package/dist/shared/chunk-FVV27R73.js.map +1 -0
  189. package/dist/shared/{chunk-N3ZTQD5I.js → chunk-FYGFB5U5.js} +10 -23
  190. package/dist/shared/chunk-FYGFB5U5.js.map +1 -0
  191. package/dist/shared/chunk-GDYCCB3B.js +22 -0
  192. package/dist/shared/chunk-GDYCCB3B.js.map +1 -0
  193. package/dist/shared/chunk-GLV6QIIM.js +41 -0
  194. package/dist/shared/chunk-GLV6QIIM.js.map +1 -0
  195. package/dist/shared/{chunk-EVLRH6VG.js → chunk-GNTJT7MR.js} +2 -2
  196. package/dist/shared/chunk-GNTJT7MR.js.map +1 -0
  197. package/dist/shared/chunk-HHUFGV7J.js +259 -0
  198. package/dist/shared/chunk-HHUFGV7J.js.map +1 -0
  199. package/dist/shared/{chunk-TFGGYU6Y.js → chunk-IEMCCHM4.js} +7 -12
  200. package/dist/shared/chunk-IEMCCHM4.js.map +1 -0
  201. package/dist/shared/{chunk-GIGFNQBO.js → chunk-IMDOF55E.js} +12 -4
  202. package/dist/shared/chunk-IMDOF55E.js.map +1 -0
  203. package/dist/shared/{chunk-N3BEBLWF.js → chunk-IPWYNE6Y.js} +34 -34
  204. package/dist/shared/chunk-J6R3GSKS.js +386 -0
  205. package/dist/shared/chunk-J6R3GSKS.js.map +1 -0
  206. package/dist/shared/{chunk-ZRRAK5NS.js → chunk-KRODRZNS.js} +41 -33
  207. package/dist/shared/chunk-KRODRZNS.js.map +1 -0
  208. package/dist/shared/chunk-KTA7XES3.js +168 -0
  209. package/dist/shared/chunk-KTA7XES3.js.map +1 -0
  210. package/dist/shared/{chunk-2VDR4ZYY.js → chunk-L4W4B2RQ.js} +26 -82
  211. package/dist/shared/chunk-L4W4B2RQ.js.map +1 -0
  212. package/dist/shared/chunk-MO6CRLQA.js +73 -0
  213. package/dist/shared/chunk-MO6CRLQA.js.map +1 -0
  214. package/dist/shared/{chunk-GQTZPN5D.js → chunk-NTP6BKRU.js} +29 -32
  215. package/dist/shared/chunk-NTP6BKRU.js.map +1 -0
  216. package/dist/shared/{chunk-DFAFDBYZ.js → chunk-O53V22BK.js} +34 -27
  217. package/dist/shared/chunk-O53V22BK.js.map +1 -0
  218. package/dist/shared/{chunk-BPBKHEQ5.js → chunk-OJ6KL7FU.js} +1 -8
  219. package/dist/shared/chunk-OJ6KL7FU.js.map +1 -0
  220. package/dist/shared/{chunk-F247VKAE.js → chunk-ORIUCOED.js} +18 -20
  221. package/dist/shared/chunk-ORIUCOED.js.map +1 -0
  222. package/dist/shared/{chunk-GFAQWQER.js → chunk-PFZMRSHJ.js} +33 -35
  223. package/dist/shared/chunk-PFZMRSHJ.js.map +1 -0
  224. package/dist/shared/{chunk-KIDICX3Y.js → chunk-QHKOAIOK.js} +43 -78
  225. package/dist/shared/chunk-QHKOAIOK.js.map +1 -0
  226. package/dist/shared/{chunk-4MNWMEMM.js → chunk-RDOCVLCF.js} +21 -21
  227. package/dist/shared/chunk-RDOCVLCF.js.map +1 -0
  228. package/dist/shared/{chunk-FQDR2BBZ.js → chunk-RFH7PEVS.js} +13 -5
  229. package/dist/shared/chunk-RFH7PEVS.js.map +1 -0
  230. package/dist/shared/chunk-T3UPW5OW.js +79 -0
  231. package/dist/shared/chunk-T3UPW5OW.js.map +1 -0
  232. package/dist/shared/{chunk-L6C7HUSA.js → chunk-TGKNA2JS.js} +21 -24
  233. package/dist/shared/chunk-TGKNA2JS.js.map +1 -0
  234. package/dist/shared/chunk-TZ6X7ZM5.js +158 -0
  235. package/dist/shared/chunk-TZ6X7ZM5.js.map +1 -0
  236. package/dist/shared/{chunk-BHC2A43S.js → chunk-UC75KRLX.js} +3 -3
  237. package/dist/shared/{chunk-BHC2A43S.js.map → chunk-UC75KRLX.js.map} +1 -1
  238. package/dist/shared/{chunk-LTIJI7Y3.js → chunk-VMIJ6MG5.js} +34 -34
  239. package/dist/shared/chunk-VMIJ6MG5.js.map +1 -0
  240. package/dist/shared/{chunk-NTLAKMMQ.js → chunk-VYA2FCTY.js} +6 -17
  241. package/dist/shared/chunk-VYA2FCTY.js.map +1 -0
  242. package/dist/shared/{chunk-Y74LZNND.js → chunk-WPZV3LYL.js} +4 -10
  243. package/dist/shared/chunk-WPZV3LYL.js.map +1 -0
  244. package/dist/shared/chunk-XFZQGRRL.js +101 -0
  245. package/dist/shared/chunk-XFZQGRRL.js.map +1 -0
  246. package/dist/shared/{chunk-FOGAVJC2.js → chunk-XYWSIMZ6.js} +3 -3
  247. package/dist/shared/chunk-XYWSIMZ6.js.map +1 -0
  248. package/dist/shared/{chunk-ZLYIRH2B.js → chunk-ZRBTAC3G.js} +3 -18
  249. package/dist/shared/chunk-ZRBTAC3G.js.map +1 -0
  250. package/dist/shared/{chunk-36PLZKMW.js → chunk-ZYQZUWF7.js} +26 -27
  251. package/dist/shared/chunk-ZYQZUWF7.js.map +1 -0
  252. package/dist/shared/chunk-ZZVYD4BG.js +41 -0
  253. package/dist/shared/chunk-ZZVYD4BG.js.map +1 -0
  254. package/dist/shared/context.d.ts +406 -23
  255. package/dist/shared/context.d.ts.map +1 -1
  256. package/dist/shared/context.js +94 -0
  257. package/dist/shared/context.js.map +1 -1
  258. package/dist/shared/datarecords/external/airtable/types.d.ts +1 -1
  259. package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
  260. package/dist/shared/datarecords/external/airtable/types.js +2 -1
  261. package/dist/shared/datarecords/types.d.ts +3 -3
  262. package/dist/shared/datarecords/types.d.ts.map +1 -1
  263. package/dist/shared/datarecords/types.js +3 -2
  264. package/dist/shared/datasources/external/instagram/feed/schema.d.ts +1 -1
  265. package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
  266. package/dist/shared/datasources/external/instagram/feed/schema.js +4 -1
  267. package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
  268. package/dist/shared/datasources/external/mastodon/status/schema.d.ts +6 -6
  269. package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
  270. package/dist/shared/datasources/external/mastodon/status/schema.js +6 -19
  271. package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
  272. package/dist/shared/datasources/external/meta/oauth/config.d.ts +2 -2
  273. package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
  274. package/dist/shared/datasources/external/meta/oauth/config.js +4 -1
  275. package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
  276. package/dist/shared/datasources/external/threads/media/schema.d.ts +1 -1
  277. package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
  278. package/dist/shared/datasources/external/threads/media/schema.js +4 -8
  279. package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
  280. package/dist/shared/datasources/internal/blog/schema.d.ts +1 -1
  281. package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
  282. package/dist/shared/datasources/internal/blog/schema.js +4 -1
  283. package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
  284. package/dist/shared/datasources/types.d.ts +25 -25
  285. package/dist/shared/datasources/types.d.ts.map +1 -1
  286. package/dist/shared/datasources/types.js +3 -16
  287. package/dist/shared/images.d.ts +1 -1
  288. package/dist/shared/images.d.ts.map +1 -1
  289. package/dist/shared/images.js +4 -38
  290. package/dist/shared/images.js.map +1 -1
  291. package/dist/shared/page.d.ts +141 -22
  292. package/dist/shared/page.d.ts.map +1 -1
  293. package/dist/shared/page.js +52 -49
  294. package/dist/shared/responsive.js +1 -1
  295. package/dist/shared/site.d.ts +81 -191
  296. package/dist/shared/site.d.ts.map +1 -1
  297. package/dist/shared/site.js +56 -114
  298. package/dist/shared/site.js.map +1 -1
  299. package/dist/shared/sitemap.d.ts +4 -326
  300. package/dist/shared/sitemap.d.ts.map +1 -1
  301. package/dist/shared/sitemap.js +51 -58
  302. package/dist/shared/theme.d.ts +0 -37
  303. package/dist/shared/theme.d.ts.map +1 -1
  304. package/dist/shared/theme.js +4 -21
  305. package/dist/shared/utils/llm.d.ts +1 -10
  306. package/dist/shared/utils/llm.d.ts.map +1 -1
  307. package/dist/shared/utils/llm.js +1 -18
  308. package/dist/shared/utils/schema.d.ts +3 -7
  309. package/dist/shared/utils/schema.d.ts.map +1 -1
  310. package/dist/shared/utils/schema.js +2 -19
  311. package/dist/shared/utils/string-enum.d.ts +9 -3
  312. package/dist/shared/utils/string-enum.d.ts.map +1 -1
  313. package/dist/shared/utils/string-enum.js +1 -1
  314. package/package.json +21 -5
  315. package/src/shared/ai/schemas.ts +25 -30
  316. package/src/shared/ai/types.ts +23 -89
  317. package/src/shared/attributes.ts +53 -51
  318. package/src/shared/brick-manifest.ts +5 -6
  319. package/src/shared/bricks/manifests/accordion.manifest.ts +11 -11
  320. package/src/shared/bricks/manifests/all-props.ts +165 -0
  321. package/src/shared/bricks/manifests/box.manifest.ts +19 -21
  322. package/src/shared/bricks/manifests/button.manifest.ts +54 -16
  323. package/src/shared/bricks/manifests/card.manifest.ts +45 -174
  324. package/src/shared/bricks/manifests/carousel.manifest.ts +11 -13
  325. package/src/shared/bricks/manifests/footer.manifest.ts +16 -15
  326. package/src/shared/bricks/manifests/form.manifest.ts +14 -15
  327. package/src/shared/bricks/manifests/hero.manifest.ts +58 -265
  328. package/src/shared/bricks/manifests/html.manifest.ts +6 -0
  329. package/src/shared/bricks/manifests/icon.manifest.ts +10 -99
  330. package/src/shared/bricks/manifests/image.manifest.ts +22 -23
  331. package/src/shared/bricks/manifests/images-gallery.manifest.ts +21 -15
  332. package/src/shared/bricks/manifests/map.manifest.ts +19 -75
  333. package/src/shared/bricks/manifests/navbar.manifest.ts +20 -21
  334. package/src/shared/bricks/manifests/sidebar.manifest.ts +9 -10
  335. package/src/shared/bricks/manifests/social-links.manifest.ts +17 -20
  336. package/src/shared/bricks/manifests/spacer.manifest.ts +0 -1
  337. package/src/shared/bricks/manifests/table.manifest.ts +21 -15
  338. package/src/shared/bricks/manifests/tabs.manifest.ts +26 -445
  339. package/src/shared/bricks/manifests/testimonials.manifest.ts +47 -244
  340. package/src/shared/bricks/manifests/text.manifest.ts +28 -59
  341. package/src/shared/bricks/manifests/timeline.manifest.ts +29 -24
  342. package/src/shared/bricks/manifests/video.manifest.ts +9 -10
  343. package/src/shared/bricks/props/align.ts +0 -13
  344. package/src/shared/bricks/props/background.ts +3 -15
  345. package/src/shared/bricks/props/border.ts +2 -13
  346. package/src/shared/bricks/props/color-preset.ts +9 -10
  347. package/src/shared/bricks/props/color.ts +12 -20
  348. package/src/shared/bricks/props/common.ts +8 -15
  349. package/src/shared/bricks/props/css-length.ts +0 -5
  350. package/src/shared/bricks/props/datasource.ts +72 -74
  351. package/src/shared/bricks/props/direction.ts +1 -5
  352. package/src/shared/bricks/props/dynamic.ts +0 -11
  353. package/src/shared/bricks/props/effects.ts +0 -9
  354. package/src/shared/bricks/props/geolocation.ts +3 -3
  355. package/src/shared/bricks/props/grow.ts +11 -0
  356. package/src/shared/bricks/props/helpers.ts +1 -1
  357. package/src/shared/bricks/props/image.ts +44 -16
  358. package/src/shared/bricks/props/string.ts +7 -18
  359. package/src/shared/bricks/props/tags.ts +0 -5
  360. package/src/shared/bricks/props/tests/background.test.ts +1 -15
  361. package/src/shared/bricks/props/tests/image.test.ts +3 -9
  362. package/src/shared/bricks/props/tests/string.test.ts +2 -26
  363. package/src/shared/bricks/props/text.ts +0 -12
  364. package/src/shared/bricks/props/types.ts +4 -3
  365. package/src/shared/bricks.ts +166 -1020
  366. package/src/shared/context.ts +24 -24
  367. package/src/shared/datarecords/external/airtable/types.ts +12 -11
  368. package/src/shared/datarecords/types.ts +2 -34
  369. package/src/shared/datasources/external/instagram/feed/schema.ts +2 -1
  370. package/src/shared/datasources/external/mastodon/status/schema.ts +4 -19
  371. package/src/shared/datasources/external/meta/oauth/config.ts +2 -1
  372. package/src/shared/datasources/external/threads/media/schema.ts +2 -8
  373. package/src/shared/datasources/internal/blog/schema.ts +2 -1
  374. package/src/shared/datasources/types.ts +64 -79
  375. package/src/shared/images.ts +12 -18
  376. package/src/shared/page.ts +10 -1
  377. package/src/shared/site.ts +1 -0
  378. package/src/shared/sitemap.ts +3 -70
  379. package/src/shared/tests/attributes.test.ts +2 -0
  380. package/src/shared/theme.ts +81 -96
  381. package/src/shared/utils/llm.ts +5 -191
  382. package/src/shared/utils/schema.ts +95 -258
  383. package/src/shared/utils/string-enum.ts +25 -4
  384. package/src/shared/utils/tests/schema.test.ts +278 -314
  385. package/dist/shared/chunk-2IHKVMKW.js.map +0 -1
  386. package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
  387. package/dist/shared/chunk-2VDR4ZYY.js.map +0 -1
  388. package/dist/shared/chunk-36PLZKMW.js.map +0 -1
  389. package/dist/shared/chunk-42OUNI7C.js.map +0 -1
  390. package/dist/shared/chunk-4MNWMEMM.js.map +0 -1
  391. package/dist/shared/chunk-A2QPY54H.js +0 -13
  392. package/dist/shared/chunk-A2QPY54H.js.map +0 -1
  393. package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
  394. package/dist/shared/chunk-CRS7QCPZ.js.map +0 -1
  395. package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
  396. package/dist/shared/chunk-DFAFDBYZ.js.map +0 -1
  397. package/dist/shared/chunk-DV3G7X34.js +0 -244
  398. package/dist/shared/chunk-DV3G7X34.js.map +0 -1
  399. package/dist/shared/chunk-EVLRH6VG.js.map +0 -1
  400. package/dist/shared/chunk-F22LDHEO.js.map +0 -1
  401. package/dist/shared/chunk-F247VKAE.js.map +0 -1
  402. package/dist/shared/chunk-FOGAVJC2.js.map +0 -1
  403. package/dist/shared/chunk-FQDR2BBZ.js.map +0 -1
  404. package/dist/shared/chunk-GFAQWQER.js.map +0 -1
  405. package/dist/shared/chunk-GIGFNQBO.js.map +0 -1
  406. package/dist/shared/chunk-GQTZPN5D.js.map +0 -1
  407. package/dist/shared/chunk-H5JM2M2T.js.map +0 -1
  408. package/dist/shared/chunk-HTUSL2U7.js +0 -260
  409. package/dist/shared/chunk-HTUSL2U7.js.map +0 -1
  410. package/dist/shared/chunk-IQIISR22.js +0 -794
  411. package/dist/shared/chunk-IQIISR22.js.map +0 -1
  412. package/dist/shared/chunk-JK2FWFJU.js +0 -15
  413. package/dist/shared/chunk-JK2FWFJU.js.map +0 -1
  414. package/dist/shared/chunk-KEM5N6GJ.js +0 -505
  415. package/dist/shared/chunk-KEM5N6GJ.js.map +0 -1
  416. package/dist/shared/chunk-KIDICX3Y.js.map +0 -1
  417. package/dist/shared/chunk-KILJYJFE.js.map +0 -1
  418. package/dist/shared/chunk-L6C7HUSA.js.map +0 -1
  419. package/dist/shared/chunk-LCJ2VFPM.js.map +0 -1
  420. package/dist/shared/chunk-LLNPH3XR.js.map +0 -1
  421. package/dist/shared/chunk-LTIJI7Y3.js.map +0 -1
  422. package/dist/shared/chunk-MFNHFN2B.js +0 -103
  423. package/dist/shared/chunk-MFNHFN2B.js.map +0 -1
  424. package/dist/shared/chunk-N3ZTQD5I.js.map +0 -1
  425. package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
  426. package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
  427. package/dist/shared/chunk-RV7AYVFV.js.map +0 -1
  428. package/dist/shared/chunk-SE6O65HC.js +0 -44
  429. package/dist/shared/chunk-SE6O65HC.js.map +0 -1
  430. package/dist/shared/chunk-TFGGYU6Y.js.map +0 -1
  431. package/dist/shared/chunk-TNMNMYOB.js.map +0 -1
  432. package/dist/shared/chunk-TNTFKLCR.js +0 -1225
  433. package/dist/shared/chunk-TNTFKLCR.js.map +0 -1
  434. package/dist/shared/chunk-U5ZECCJM.js +0 -464
  435. package/dist/shared/chunk-U5ZECCJM.js.map +0 -1
  436. package/dist/shared/chunk-UXTASZ23.js.map +0 -1
  437. package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
  438. package/dist/shared/chunk-WKN566LN.js +0 -29
  439. package/dist/shared/chunk-WKN566LN.js.map +0 -1
  440. package/dist/shared/chunk-Y74LZNND.js.map +0 -1
  441. package/dist/shared/chunk-YWOTQWIQ.js +0 -572
  442. package/dist/shared/chunk-YWOTQWIQ.js.map +0 -1
  443. package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
  444. package/dist/shared/chunk-ZR6R6Z6O.js.map +0 -1
  445. package/dist/shared/chunk-ZRRAK5NS.js.map +0 -1
  446. package/dist/shared/tests/schema-registry.test.d.ts +0 -2
  447. package/dist/shared/tests/schema-registry.test.d.ts.map +0 -1
  448. package/dist/shared/utils/schema-registry.d.ts +0 -5
  449. package/dist/shared/utils/schema-registry.d.ts.map +0 -1
  450. package/dist/shared/utils/schema-registry.js +0 -29
  451. package/dist/shared/utils/tests/schema-registry.test.d.ts +0 -2
  452. package/dist/shared/utils/tests/schema-registry.test.d.ts.map +0 -1
  453. package/dist/shared/utils/typed-ref.d.ts +0 -43
  454. package/dist/shared/utils/typed-ref.d.ts.map +0 -1
  455. package/dist/shared/utils/typed-ref.js.map +0 -1
  456. package/src/shared/tests/schema-registry.test.ts +0 -12
  457. package/src/shared/utils/schema-registry.ts +0 -82
  458. package/src/shared/utils/tests/schema-registry.test.ts +0 -13
  459. package/src/shared/utils/typed-ref.ts +0 -53
  460. /package/dist/shared/{utils/schema-registry.js.map → bricks/props/grow.js.map} +0 -0
  461. /package/dist/shared/{chunk-N3BEBLWF.js.map → chunk-IPWYNE6Y.js.map} +0 -0
@@ -0,0 +1,386 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+ import {
4
+ defaultProps,
5
+ manifests
6
+ } from "./chunk-IPWYNE6Y.js";
7
+ import {
8
+ mergeIgnoringArrays
9
+ } from "./chunk-3ZDN5BWN.js";
10
+ import {
11
+ direction
12
+ } from "./chunk-WPZV3LYL.js";
13
+ import {
14
+ background
15
+ } from "./chunk-5OVOXUFX.js";
16
+ import {
17
+ colorPreset
18
+ } from "./chunk-IEMCCHM4.js";
19
+ import {
20
+ cssLength
21
+ } from "./chunk-OJ6KL7FU.js";
22
+ import {
23
+ alignItems,
24
+ justifyContent
25
+ } from "./chunk-ZRBTAC3G.js";
26
+ import {
27
+ toLLMSchema
28
+ } from "./chunk-MO6CRLQA.js";
29
+ import {
30
+ getSchemaDefaults
31
+ } from "./chunk-TZ6X7ZM5.js";
32
+ import {
33
+ StringEnum
34
+ } from "./chunk-GDYCCB3B.js";
35
+
36
+ // src/shared/bricks.ts
37
+ import { Type } from "@sinclair/typebox";
38
+ import { customAlphabet } from "nanoid";
39
+ var generateId = customAlphabet("azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN", 7);
40
+ var brickAbsolutePositionSchema = Type.Object({
41
+ left: Type.Optional(
42
+ Type.String({
43
+ title: "top",
44
+ description: "The left position in css unit."
45
+ })
46
+ ),
47
+ top: Type.Optional(
48
+ Type.String({
49
+ title: "top",
50
+ description: "The top position in css unit."
51
+ })
52
+ ),
53
+ right: Type.Optional(
54
+ Type.String({
55
+ title: "right",
56
+ description: "The right position in css unit."
57
+ })
58
+ ),
59
+ bottom: Type.Optional(
60
+ Type.String({
61
+ title: "bottom",
62
+ description: "The bottom position in css unit."
63
+ })
64
+ ),
65
+ inset: Type.Optional(
66
+ Type.String({
67
+ title: "inset",
68
+ description: "The inset position in css unit."
69
+ })
70
+ ),
71
+ translateX: Type.Optional(
72
+ Type.String({
73
+ title: "translateX",
74
+ description: "The translateX position in css unit."
75
+ })
76
+ ),
77
+ translateY: Type.Optional(
78
+ Type.String({
79
+ title: "translateY",
80
+ description: "The translateY position in css unit."
81
+ })
82
+ ),
83
+ rotate: Type.Optional(
84
+ Type.String({
85
+ title: "rotate",
86
+ description: "The rotate position in css unit."
87
+ })
88
+ )
89
+ });
90
+ var brickTypeSchema = StringEnum(Object.keys(defaultProps), {
91
+ title: "Brick type"
92
+ });
93
+ var brickSchema = Type.Object({
94
+ id: Type.String({
95
+ title: "ID",
96
+ description: "A unique identifier for the brick."
97
+ }),
98
+ type: brickTypeSchema,
99
+ label: Type.Optional(
100
+ Type.String({
101
+ title: "Label",
102
+ description: "A human-readable label for the brick. Used for organization and identification."
103
+ })
104
+ ),
105
+ props: Type.Any({
106
+ title: "Props",
107
+ description: "The static props of the brick. The available props depends on the brick type."
108
+ }),
109
+ mobileProps: Type.Optional(
110
+ Type.Any({
111
+ title: "Props",
112
+ description: "The overriden props for mobile, merged with desktop props. Same type as props but partial."
113
+ })
114
+ )
115
+ });
116
+ function makeFullBrickSchemaForLLM(type, otherTypes) {
117
+ if (!otherTypes || !otherTypes.length) {
118
+ return toLLMSchema(
119
+ Type.Object(
120
+ {
121
+ id: Type.String({
122
+ title: "ID",
123
+ description: "A unique identifier for the brick."
124
+ }),
125
+ type: Type.Literal(type),
126
+ props: manifests[type].props,
127
+ mobileProps: Type.Optional(Type.Partial(manifests[type].props))
128
+ }
129
+ // IMPORTANT: DO NOT set "additionalProperties" to `false` because it would break validation with Cabidela library
130
+ // { additionalProperties: false },
131
+ )
132
+ );
133
+ }
134
+ return toLLMSchema(
135
+ Type.Object(
136
+ {
137
+ id: Type.String({
138
+ title: "ID",
139
+ description: "A unique identifier for the brick."
140
+ }),
141
+ type: Type.Literal(type),
142
+ props: Type.Composite([
143
+ brickSchema.properties.props,
144
+ Type.Object({
145
+ $children: Type.Array(
146
+ Type.Union(
147
+ otherTypes.map(
148
+ (t) => Type.Object({
149
+ id: Type.String({
150
+ title: "ID",
151
+ description: "A unique identifier for the brick."
152
+ }),
153
+ type: Type.Literal(t),
154
+ props: manifests[t].props,
155
+ mobileProps: Type.Optional(Type.Partial(manifests[t].props))
156
+ })
157
+ )
158
+ )
159
+ )
160
+ })
161
+ ]),
162
+ mobileProps: Type.Optional(Type.Partial(manifests[type].props))
163
+ }
164
+ // IMPORTANT: DO NOT set "additionalProperties" to `false` because it would break validation with Cabidela library
165
+ // { additionalProperties: false },
166
+ )
167
+ );
168
+ }
169
+ var sectionProps = Type.Object({
170
+ colorPreset: Type.Optional(
171
+ colorPreset({
172
+ title: "Color"
173
+ })
174
+ ),
175
+ backgroundImage: Type.Optional(
176
+ background({
177
+ title: "Background"
178
+ })
179
+ ),
180
+ direction: Type.Optional(
181
+ direction({
182
+ default: "flex-row",
183
+ title: "Direction",
184
+ description: "The direction of the section. Only apply to desktop. On mobile, it is always vertical. By default, horizontal (row), which is the most common.",
185
+ "ui:responsive": "desktop"
186
+ })
187
+ ),
188
+ minHeight: Type.Optional(
189
+ cssLength({
190
+ title: "Min height",
191
+ default: "fit-content",
192
+ description: "The min height of the section. default is 'fit-content'. You can also use the keyword 'full' to make it full viewport height. Lastly, you can use any valid CSS length unit.",
193
+ "ui:field": "hidden"
194
+ })
195
+ ),
196
+ variant: Type.Optional(
197
+ StringEnum(["navbar", "footer", "sidebar"], {
198
+ title: "Custom section variant",
199
+ description: "Used for custom styling and layout.",
200
+ enumNames: ["Navbar", "Footer", "Sidebar"],
201
+ "ui:field": "hidden",
202
+ "ai:hidden": true
203
+ })
204
+ ),
205
+ maxWidth: Type.Optional(
206
+ StringEnum(["max-w-screen-lg", "max-w-screen-xl", "max-w-screen-2xl", "max-w-full"], {
207
+ title: "Max width",
208
+ default: "max-w-full",
209
+ enumNames: ["M", "L", "XL", "Full"],
210
+ description: "The maximum width of the section. Desktop only",
211
+ "ai:instructions": "Choose the most appropriate max width for the section. The value 'max-w-full' is the most common and the default. Use the same value for all sections on the same page unless there is a good reason to do otherwise.",
212
+ displayAs: "button-group",
213
+ "ui:responsive": "desktop"
214
+ })
215
+ ),
216
+ verticalMargin: Type.Optional(
217
+ cssLength({
218
+ title: "Vertical Margin",
219
+ description: "The vertical margin of the section. By default, all sections touch each other with no space in between. If you want to add space between sections, set this value to e.g. '2rem' or '32px'. Adding a vertical margin will reveal the background color of the page.",
220
+ default: "0",
221
+ "ui:styleId": "styles:verticalMargin"
222
+ })
223
+ ),
224
+ justifyContent: Type.Optional(
225
+ justifyContent({
226
+ default: "justify-center"
227
+ })
228
+ ),
229
+ alignItems: Type.Optional(
230
+ alignItems({
231
+ default: "items-center"
232
+ })
233
+ ),
234
+ padding: Type.Optional(
235
+ cssLength({
236
+ default: "2rem",
237
+ description: "Padding inside the section.",
238
+ title: "Padding",
239
+ "ui:responsive": true,
240
+ "ui:placeholder": "Not specified",
241
+ "ui:styleId": "styles:padding"
242
+ })
243
+ ),
244
+ gap: Type.Optional(
245
+ cssLength({
246
+ title: "Gap",
247
+ description: "The gap between the bricks in the section.",
248
+ default: "2rem",
249
+ "ui:styleId": "styles:gap"
250
+ })
251
+ ),
252
+ wrap: Type.Optional(
253
+ Type.Boolean({
254
+ title: "Wrap",
255
+ description: "Wrap bricks if they overflow the section.",
256
+ default: true,
257
+ "ui:styleId": "styles:wrap"
258
+ })
259
+ ),
260
+ lastTouched: Type.Optional(
261
+ Type.Number({
262
+ description: "Do not use this field. It is used internally by the editor.",
263
+ "ui:field": "hidden",
264
+ "ai:hidden": true
265
+ })
266
+ )
267
+ });
268
+ var sectionSchema = Type.Object(
269
+ {
270
+ id: Type.String({
271
+ description: "The unique ID of the section. Use a human readable url-safe slug",
272
+ examples: ["content-section", "contact-section"]
273
+ }),
274
+ label: Type.String({
275
+ description: "The label of the section. Shown only to the website owner, not public.",
276
+ examples: ["Content", "Contact"]
277
+ }),
278
+ order: Type.Number({
279
+ description: "Determines section order in the page (lower numbers appear first). 0-based"
280
+ }),
281
+ props: sectionProps,
282
+ mobileProps: Type.Optional(Type.Partial(sectionProps)),
283
+ bricks: Type.Array(brickSchema)
284
+ },
285
+ {
286
+ description: "Sections are direct children of the page that are stacked vertically."
287
+ }
288
+ );
289
+ var sectionSchemaNoBricks = Type.Omit(sectionSchema, ["bricks"]);
290
+ var sectionDefaultprops = getSchemaDefaults(sectionSchema.properties.props, "desktop");
291
+ var sectionMobileDefaultprops = getSchemaDefaults(
292
+ sectionSchema.properties.mobileProps,
293
+ "mobile"
294
+ );
295
+ function processSections(sections, siteAttributes, pageAttributes) {
296
+ const processSection = (section) => {
297
+ return {
298
+ ...section,
299
+ props: mergeIgnoringArrays({}, sectionDefaultprops, section.props),
300
+ mobileProps: mergeIgnoringArrays({}, sectionMobileDefaultprops, section.mobileProps || {}),
301
+ bricks: section.bricks.map(processBrick).filter(Boolean)
302
+ };
303
+ };
304
+ const finalSections = sections.map(processSection);
305
+ if (siteAttributes.navbar && !pageAttributes.noNavbar) {
306
+ finalSections.unshift(
307
+ processSection({
308
+ order: -1,
309
+ id: "navbar-section",
310
+ label: "Navbar",
311
+ props: {
312
+ variant: "navbar",
313
+ direction: "flex-row"
314
+ },
315
+ mobileProps: {},
316
+ bricks: [
317
+ {
318
+ id: "navbar",
319
+ type: "navbar",
320
+ props: siteAttributes.navbar
321
+ }
322
+ ]
323
+ })
324
+ );
325
+ }
326
+ if (siteAttributes.footer && !pageAttributes.noFooter) {
327
+ finalSections.push(
328
+ processSection({
329
+ order: 1e3,
330
+ id: "footer-section",
331
+ label: "Footer",
332
+ props: {
333
+ variant: "footer",
334
+ direction: "flex-row"
335
+ },
336
+ mobileProps: {},
337
+ bricks: [
338
+ {
339
+ id: "footer",
340
+ type: "footer",
341
+ props: siteAttributes.footer
342
+ }
343
+ ]
344
+ })
345
+ );
346
+ }
347
+ return finalSections;
348
+ }
349
+ function processBrick(brick) {
350
+ const defProps = defaultProps[brick.type];
351
+ const result = {
352
+ ...brick,
353
+ props: mergeIgnoringArrays({}, defProps.props, {
354
+ ...brick.props,
355
+ ...brick.props.$children ? { $children: brick.props.$children.map(processBrick).filter(Boolean) } : {}
356
+ })
357
+ };
358
+ return result;
359
+ }
360
+ function getDefaultPropsForBrick(type) {
361
+ return defaultProps[type].props;
362
+ }
363
+ function createEmptyBrick(type, ghost = false) {
364
+ const props = { ...defaultProps[type].props, ghost };
365
+ const newBrick = {
366
+ id: `b-${generateId()}`,
367
+ type,
368
+ props
369
+ };
370
+ return newBrick;
371
+ }
372
+
373
+ export {
374
+ generateId,
375
+ brickTypeSchema,
376
+ brickSchema,
377
+ makeFullBrickSchemaForLLM,
378
+ sectionProps,
379
+ sectionSchema,
380
+ sectionSchemaNoBricks,
381
+ processSections,
382
+ processBrick,
383
+ getDefaultPropsForBrick,
384
+ createEmptyBrick
385
+ };
386
+ //# sourceMappingURL=chunk-J6R3GSKS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { customAlphabet } from \"nanoid\";\nimport { defaultProps, manifests } from \"./bricks/manifests/all-manifests\";\nimport { cssLength } from \"./bricks/props/css-length\";\nimport { colorPreset } from \"./bricks/props/color-preset\";\nimport { mergeIgnoringArrays } from \"./utils/merge\";\nimport { getSchemaDefaults } from \"./utils/schema\";\nimport { StringEnum } from \"./utils/string-enum\";\nimport { alignItems, justifyContent } from \"./bricks/props/align\";\nimport type { CommonBrickProps } from \"./bricks/props/common\";\nimport { direction } from \"./bricks/props/direction\";\nimport type { PageAttributes, SiteAttributes } from \"./attributes\";\nimport { toLLMSchema } from \"./utils/llm\";\nimport { background } from \"./bricks/props/background\";\n\n/**\n * Generates a unique identifier for bricks.\n */\nexport const generateId = customAlphabet(\"azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN\", 7);\n\nconst brickAbsolutePositionSchema = Type.Object({\n left: Type.Optional(\n Type.String({\n title: \"top\",\n description: \"The left position in css unit.\",\n }),\n ),\n top: Type.Optional(\n Type.String({\n title: \"top\",\n description: \"The top position in css unit.\",\n }),\n ),\n right: Type.Optional(\n Type.String({\n title: \"right\",\n description: \"The right position in css unit.\",\n }),\n ),\n bottom: Type.Optional(\n Type.String({\n title: \"bottom\",\n description: \"The bottom position in css unit.\",\n }),\n ),\n inset: Type.Optional(\n Type.String({\n title: \"inset\",\n description: \"The inset position in css unit.\",\n }),\n ),\n translateX: Type.Optional(\n Type.String({\n title: \"translateX\",\n description: \"The translateX position in css unit.\",\n }),\n ),\n translateY: Type.Optional(\n Type.String({\n title: \"translateY\",\n description: \"The translateY position in css unit.\",\n }),\n ),\n rotate: Type.Optional(\n Type.String({\n title: \"rotate\",\n description: \"The rotate position in css unit.\",\n }),\n ),\n});\n\nexport type BrickAbsolutePosition = Static<typeof brickAbsolutePositionSchema>;\n\nexport const brickTypeSchema = StringEnum(Object.keys(defaultProps), {\n title: \"Brick type\",\n});\n\nexport const brickSchema = Type.Object({\n id: Type.String({\n title: \"ID\",\n description: \"A unique identifier for the brick.\",\n }),\n type: brickTypeSchema,\n label: Type.Optional(\n Type.String({\n title: \"Label\",\n description: \"A human-readable label for the brick. Used for organization and identification.\",\n }),\n ),\n props: Type.Any({\n title: \"Props\",\n description: \"The static props of the brick. The available props depends on the brick type.\",\n }),\n mobileProps: Type.Optional(\n Type.Any({\n title: \"Props\",\n description:\n \"The overriden props for mobile, merged with desktop props. Same type as props but partial.\",\n }),\n ),\n});\n\nexport function makeFullBrickSchemaForLLM(type: string, otherTypes?: string[]) {\n if (!otherTypes || !otherTypes.length) {\n return toLLMSchema(\n Type.Object(\n {\n id: Type.String({\n title: \"ID\",\n description: \"A unique identifier for the brick.\",\n }),\n type: Type.Literal(type),\n props: manifests[type].props,\n mobileProps: Type.Optional(Type.Partial(manifests[type].props)),\n },\n // IMPORTANT: DO NOT set \"additionalProperties\" to `false` because it would break validation with Cabidela library\n // { additionalProperties: false },\n ),\n );\n }\n return toLLMSchema(\n Type.Object(\n {\n id: Type.String({\n title: \"ID\",\n description: \"A unique identifier for the brick.\",\n }),\n type: Type.Literal(type),\n props: Type.Composite([\n brickSchema.properties.props,\n Type.Object({\n $children: Type.Array(\n Type.Union(\n otherTypes.map((t) =>\n Type.Object({\n id: Type.String({\n title: \"ID\",\n description: \"A unique identifier for the brick.\",\n }),\n type: Type.Literal(t),\n props: manifests[t].props,\n mobileProps: Type.Optional(Type.Partial(manifests[t].props)),\n }),\n ),\n ),\n ),\n }),\n ]),\n mobileProps: Type.Optional(Type.Partial(manifests[type].props)),\n },\n // IMPORTANT: DO NOT set \"additionalProperties\" to `false` because it would break validation with Cabidela library\n // { additionalProperties: false },\n ),\n );\n}\n\nexport type Brick = Omit<Static<typeof brickSchema>, \"props\" | \"mobileProps\"> & {\n props: CommonBrickProps & Record<string, unknown>;\n mobileProps?: Partial<CommonBrickProps & Record<string, unknown>>;\n};\n\nexport const sectionProps = Type.Object({\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color\",\n }),\n ),\n backgroundImage: Type.Optional(\n background({\n title: \"Background\",\n }),\n ),\n direction: Type.Optional(\n direction({\n default: \"flex-row\",\n title: \"Direction\",\n description:\n \"The direction of the section. Only apply to desktop. On mobile, it is always vertical. By default, horizontal (row), which is the most common.\",\n \"ui:responsive\": \"desktop\",\n }),\n ),\n minHeight: Type.Optional(\n cssLength({\n title: \"Min height\",\n default: \"fit-content\",\n description:\n \"The min height of the section. default is 'fit-content'. You can also use the keyword 'full' to make it full viewport height. Lastly, you can use any valid CSS length unit.\",\n \"ui:field\": \"hidden\",\n }),\n ),\n variant: Type.Optional(\n StringEnum([\"navbar\", \"footer\", \"sidebar\"], {\n title: \"Custom section variant\",\n description: \"Used for custom styling and layout.\",\n enumNames: [\"Navbar\", \"Footer\", \"Sidebar\"],\n \"ui:field\": \"hidden\",\n \"ai:hidden\": true,\n }),\n ),\n maxWidth: Type.Optional(\n StringEnum([\"max-w-screen-lg\", \"max-w-screen-xl\", \"max-w-screen-2xl\", \"max-w-full\"], {\n title: \"Max width\",\n default: \"max-w-full\",\n enumNames: [\"M\", \"L\", \"XL\", \"Full\"],\n description: \"The maximum width of the section. Desktop only\",\n \"ai:instructions\":\n \"Choose the most appropriate max width for the section. The value 'max-w-full' is the most common and the default. Use the same value for all sections on the same page unless there is a good reason to do otherwise.\",\n displayAs: \"button-group\",\n \"ui:responsive\": \"desktop\",\n }),\n ),\n verticalMargin: Type.Optional(\n cssLength({\n title: \"Vertical Margin\",\n description:\n \"The vertical margin of the section. By default, all sections touch each other with no space in between. If you want to add space between sections, set this value to e.g. '2rem' or '32px'. Adding a vertical margin will reveal the background color of the page.\",\n default: \"0\",\n \"ui:styleId\": \"styles:verticalMargin\",\n }),\n ),\n justifyContent: Type.Optional(\n justifyContent({\n default: \"justify-center\",\n }),\n ),\n alignItems: Type.Optional(\n alignItems({\n default: \"items-center\",\n }),\n ),\n padding: Type.Optional(\n cssLength({\n default: \"2rem\",\n description: \"Padding inside the section.\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n gap: Type.Optional(\n cssLength({\n title: \"Gap\",\n description: \"The gap between the bricks in the section.\",\n default: \"2rem\",\n \"ui:styleId\": \"styles:gap\",\n }),\n ),\n wrap: Type.Optional(\n Type.Boolean({\n title: \"Wrap\",\n description: \"Wrap bricks if they overflow the section.\",\n default: true,\n \"ui:styleId\": \"styles:wrap\",\n }),\n ),\n lastTouched: Type.Optional(\n Type.Number({\n description: \"Do not use this field. It is used internally by the editor.\",\n \"ui:field\": \"hidden\",\n \"ai:hidden\": true,\n }),\n ),\n});\n\nexport const sectionSchema = Type.Object(\n {\n id: Type.String({\n description: \"The unique ID of the section. Use a human readable url-safe slug\",\n examples: [\"content-section\", \"contact-section\"],\n }),\n label: Type.String({\n description: \"The label of the section. Shown only to the website owner, not public.\",\n examples: [\"Content\", \"Contact\"],\n }),\n order: Type.Number({\n description: \"Determines section order in the page (lower numbers appear first). 0-based\",\n }),\n props: sectionProps,\n mobileProps: Type.Optional(Type.Partial(sectionProps)),\n bricks: Type.Array(brickSchema),\n },\n {\n description: \"Sections are direct children of the page that are stacked vertically.\",\n },\n);\n\nexport const sectionSchemaNoBricks = Type.Omit(sectionSchema, [\"bricks\"]);\nexport type SectionSchemaNoBricks = Static<typeof sectionSchemaNoBricks>;\n\nconst sectionDefaultprops = getSchemaDefaults(sectionSchema.properties.props, \"desktop\") as Section[\"props\"];\nconst sectionMobileDefaultprops = getSchemaDefaults(\n sectionSchema.properties.mobileProps,\n \"mobile\",\n) as Section[\"mobileProps\"];\n\nexport type Section = Static<typeof sectionSchema>;\n\nexport function processSections(\n sections: Section[],\n siteAttributes: SiteAttributes,\n pageAttributes: PageAttributes,\n): Section[] {\n const processSection = (section: Section) => {\n return {\n ...section,\n props: mergeIgnoringArrays({} as Section[\"props\"], sectionDefaultprops, section.props),\n mobileProps: mergeIgnoringArrays({}, sectionMobileDefaultprops, section.mobileProps || {}),\n bricks: section.bricks.map(processBrick).filter(Boolean) as Brick[],\n } as const;\n };\n\n const finalSections = sections.map(processSection);\n\n if (siteAttributes.navbar && !pageAttributes.noNavbar) {\n finalSections.unshift(\n processSection({\n order: -1,\n id: \"navbar-section\",\n label: \"Navbar\",\n props: {\n variant: \"navbar\",\n direction: \"flex-row\",\n },\n mobileProps: {},\n bricks: [\n {\n id: \"navbar\",\n type: \"navbar\",\n props: siteAttributes.navbar,\n },\n ],\n }),\n );\n }\n if (siteAttributes.footer && !pageAttributes.noFooter) {\n finalSections.push(\n processSection({\n order: 1000,\n id: \"footer-section\",\n label: \"Footer\",\n props: {\n variant: \"footer\",\n direction: \"flex-row\",\n },\n mobileProps: {},\n bricks: [\n {\n id: \"footer\",\n type: \"footer\",\n props: siteAttributes.footer,\n },\n ],\n }),\n );\n }\n\n return finalSections satisfies Section[];\n}\n\n/**\n * process a brick and add default props\n */\nexport function processBrick<T extends Brick>(brick: T): T {\n const defProps = defaultProps[brick.type];\n // if (!defProps) {\n // console.warn(`No default props found for brick type: ${brick.type}`);\n // return false; // or throw an error if you prefer\n // }\n const result = {\n ...brick,\n props: mergeIgnoringArrays({} as Brick[\"props\"], defProps.props, {\n ...brick.props,\n ...(brick.props.$children\n ? { $children: (brick.props.$children as T[]).map(processBrick).filter(Boolean) }\n : {}),\n }),\n };\n\n return result;\n}\n\nexport function getDefaultPropsForBrick(type: string) {\n return defaultProps[type].props;\n}\n\nexport function createEmptyBrick(type: string, ghost = false): Brick {\n const props = { ...defaultProps[type].props, ghost };\n const newBrick = {\n id: `b-${generateId()}`,\n type,\n props,\n };\n return newBrick;\n}\n"],"mappings":"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","names":[]}
@@ -1,27 +1,30 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
+ import {
4
+ border,
5
+ rounding
6
+ } from "./chunk-VYA2FCTY.js";
3
7
  import {
4
8
  defineProps
5
- } from "./chunk-BHC2A43S.js";
9
+ } from "./chunk-UC75KRLX.js";
6
10
  import {
7
- defineBrickManifest
8
- } from "./chunk-EVLRH6VG.js";
11
+ shadow
12
+ } from "./chunk-5RCC2STG.js";
9
13
  import {
10
- loopRef
11
- } from "./chunk-IQIISR22.js";
14
+ loop
15
+ } from "./chunk-XFZQGRRL.js";
12
16
  import {
13
- shadowRef
14
- } from "./chunk-TNMNMYOB.js";
17
+ colorPreset
18
+ } from "./chunk-IEMCCHM4.js";
15
19
  import {
16
- borderRef,
17
- roundingRef
18
- } from "./chunk-NTLAKMMQ.js";
20
+ cssLength
21
+ } from "./chunk-OJ6KL7FU.js";
19
22
  import {
20
- colorPresetRef
21
- } from "./chunk-TFGGYU6Y.js";
23
+ defineBrickManifest
24
+ } from "./chunk-GNTJT7MR.js";
22
25
  import {
23
- cssLengthRef
24
- } from "./chunk-BPBKHEQ5.js";
26
+ StringEnum
27
+ } from "./chunk-GDYCCB3B.js";
25
28
 
26
29
  // src/shared/bricks/manifests/timeline.manifest.ts
27
30
  import { Type } from "@sinclair/typebox";
@@ -57,7 +60,8 @@ var timelineItemSchema = Type.Object({
57
60
  })
58
61
  ),
59
62
  status: Type.Optional(
60
- Type.Union([Type.Literal("completed"), Type.Literal("current"), Type.Literal("upcoming")], {
63
+ StringEnum(["completed", "current", "upcoming"], {
64
+ enumNames: ["Completed", "Current", "Upcoming"],
61
65
  title: "Status",
62
66
  description: "Timeline item status for visual styling"
63
67
  })
@@ -69,6 +73,7 @@ var manifest = defineBrickManifest({
69
73
  name: "Timeline",
70
74
  description: "A vertical timeline component to display chronological events, milestones, or processes with optional content for each item",
71
75
  icon: BsListCheck,
76
+ consumesMultipleQueryRows: true,
72
77
  props: defineProps({
73
78
  items: Type.Array(timelineItemSchema, {
74
79
  title: "Timeline Items",
@@ -86,7 +91,8 @@ var manifest = defineBrickManifest({
86
91
  ),
87
92
  // Layout options
88
93
  layout: Type.Optional(
89
- Type.Union([Type.Literal("left"), Type.Literal("right"), Type.Literal("alternating")], {
94
+ StringEnum(["left", "right", "alternating"], {
95
+ enumNames: ["Left", "Right", "Alternating"],
90
96
  title: "Layout",
91
97
  description: "Timeline layout style",
92
98
  default: "left"
@@ -100,14 +106,14 @@ var manifest = defineBrickManifest({
100
106
  })
101
107
  ),
102
108
  connectorColor: Type.Optional(
103
- colorPresetRef({
109
+ colorPreset({
104
110
  title: "Connector Color",
105
111
  description: "Color of the timeline connector line"
106
112
  })
107
113
  ),
108
114
  // Timeline item styling
109
115
  itemSpacing: Type.Optional(
110
- cssLengthRef({
116
+ cssLength({
111
117
  title: "Item Spacing",
112
118
  description: "Vertical spacing between timeline items",
113
119
  default: "2rem"
@@ -121,7 +127,8 @@ var manifest = defineBrickManifest({
121
127
  })
122
128
  ),
123
129
  iconSize: Type.Optional(
124
- Type.Union([Type.Literal("sm"), Type.Literal("md"), Type.Literal("lg")], {
130
+ StringEnum(["sm", "md", "lg"], {
131
+ enumNames: ["Small", "Medium", "Large"],
125
132
  title: "Icon Size",
126
133
  description: "Size of timeline item icons",
127
134
  default: "md"
@@ -135,7 +142,8 @@ var manifest = defineBrickManifest({
135
142
  })
136
143
  ),
137
144
  datePosition: Type.Optional(
138
- Type.Union([Type.Literal("top"), Type.Literal("bottom"), Type.Literal("inline")], {
145
+ StringEnum(["top", "bottom", "inline"], {
146
+ enumNames: ["Top", "Bottom", "Inline"],
139
147
  title: "Date Position",
140
148
  description: "Position of dates relative to content",
141
149
  default: "top"
@@ -143,37 +151,37 @@ var manifest = defineBrickManifest({
143
151
  ),
144
152
  // Styling
145
153
  colorPreset: Type.Optional(
146
- colorPresetRef({
154
+ colorPreset({
147
155
  title: "Color Preset",
148
156
  description: "Color theme for the timeline"
149
157
  })
150
158
  ),
151
159
  padding: Type.Optional(
152
- cssLengthRef({
160
+ cssLength({
153
161
  title: "Padding",
154
162
  description: "Internal padding for the timeline container"
155
163
  })
156
164
  ),
157
165
  border: Type.Optional(
158
- borderRef({
166
+ border({
159
167
  title: "Border",
160
168
  description: "Border styling for the timeline container"
161
169
  })
162
170
  ),
163
171
  shadow: Type.Optional(
164
- shadowRef({
172
+ shadow({
165
173
  title: "Shadow",
166
174
  description: "Shadow effect for the timeline container"
167
175
  })
168
176
  ),
169
177
  rounding: Type.Optional(
170
- roundingRef({
178
+ rounding({
171
179
  title: "Rounding",
172
180
  description: "Corner rounding for the timeline container"
173
181
  })
174
182
  ),
175
183
  // Content loop support
176
- loop: Type.Optional(loopRef())
184
+ loop: Type.Optional(loop())
177
185
  })
178
186
  });
179
187
  var examples = [
@@ -248,8 +256,8 @@ var examples = [
248
256
  }
249
257
  ],
250
258
  layout: "alternating",
251
- colorPreset: { color: "blue-500" },
252
- connectorColor: { color: "blue-300" },
259
+ colorPreset: { color: "primary-500" },
260
+ connectorColor: { color: "primary-300" },
253
261
  itemSpacing: "3rem"
254
262
  }
255
263
  },
@@ -372,8 +380,8 @@ var examples = [
372
380
  }
373
381
  ],
374
382
  layout: "right",
375
- colorPreset: { color: "green-500" },
376
- border: { width: "border", color: "gray-200" },
383
+ colorPreset: { color: "secondary-500" },
384
+ border: { width: "border", color: "secondary-200" },
377
385
  rounding: "rounded-lg",
378
386
  padding: "2rem"
379
387
  }
@@ -414,13 +422,13 @@ var examples = [
414
422
  description: "Create comprehensive usage documentation"
415
423
  }
416
424
  ],
417
- colorPreset: { color: "purple-500" },
425
+ colorPreset: { color: "secondary-500" },
418
426
  shadow: "shadow-lg",
419
427
  border: { width: "border", color: "purple-200" },
420
428
  rounding: "rounded-xl",
421
429
  padding: "2.5rem",
422
430
  itemSpacing: "2.5rem",
423
- connectorColor: { color: "purple-300" }
431
+ connectorColor: { color: "secondary-300" }
424
432
  }
425
433
  }
426
434
  ];
@@ -429,4 +437,4 @@ export {
429
437
  manifest,
430
438
  examples
431
439
  };
432
- //# sourceMappingURL=chunk-ZRRAK5NS.js.map
440
+ //# sourceMappingURL=chunk-KRODRZNS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/timeline.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { cssLength } from \"../props/css-length\";\nimport { border, rounding } from \"../props/border\";\nimport { shadow } from \"../props/effects\";\nimport { BsListCheck } from \"react-icons/bs\";\nimport { loop } from \"../props/dynamic\";\nimport type { BrickProps } from \"../props/types\";\nimport type { BrickExample } from \"./_types\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\nconst timelineItemSchema = Type.Object({\n id: Type.Optional(Type.String({ title: \"ID\" })),\n title: Type.String({\n title: \"Title\",\n description: \"The main title or headline for this timeline item\",\n }),\n subtitle: Type.Optional(\n Type.String({\n title: \"Subtitle\",\n description: \"Optional subtitle or date for this timeline item\",\n }),\n ),\n description: Type.Optional(\n Type.String({\n title: \"Description\",\n description: \"Optional detailed description for this timeline item\",\n }),\n ),\n date: Type.Optional(\n Type.String({\n title: \"Date\",\n description: \"Date or time period for this timeline item\",\n }),\n ),\n icon: Type.Optional(\n Type.String({\n title: \"Icon\",\n description: \"Optional icon name from Iconify for this timeline item\",\n }),\n ),\n status: Type.Optional(\n StringEnum([\"completed\", \"current\", \"upcoming\"], {\n enumNames: [\"Completed\", \"Current\", \"Upcoming\"],\n title: \"Status\",\n description: \"Timeline item status for visual styling\",\n }),\n ),\n});\n\nexport const manifest = defineBrickManifest({\n type: \"timeline\",\n category: \"widgets\",\n name: \"Timeline\",\n description:\n \"A vertical timeline component to display chronological events, milestones, or processes with optional content for each item\",\n icon: BsListCheck,\n consumesMultipleQueryRows: true,\n props: defineProps({\n items: Type.Array(timelineItemSchema, {\n title: \"Timeline Items\",\n description: \"List of timeline items to display\",\n \"ui:field\": \"array\",\n default: [],\n }),\n\n $children: Type.Optional(\n Type.Array(Type.Array(Type.Any()), {\n title: \"Content\",\n description:\n \"Optional content blocks for each timeline item. Each array corresponds to content for the timeline item at the same index.\",\n \"ui:field\": \"hidden\",\n default: [],\n }),\n ),\n\n // Layout options\n layout: Type.Optional(\n StringEnum([\"left\", \"right\", \"alternating\"], {\n enumNames: [\"Left\", \"Right\", \"Alternating\"],\n title: \"Layout\",\n description: \"Timeline layout style\",\n default: \"left\",\n }),\n ),\n\n showConnector: Type.Optional(\n Type.Boolean({\n title: \"Show Connector Line\",\n description: \"Whether to show the connecting line between timeline items\",\n default: true,\n }),\n ),\n\n connectorColor: Type.Optional(\n colorPreset({\n title: \"Connector Color\",\n description: \"Color of the timeline connector line\",\n }),\n ),\n\n // Timeline item styling\n itemSpacing: Type.Optional(\n cssLength({\n title: \"Item Spacing\",\n description: \"Vertical spacing between timeline items\",\n default: \"2rem\",\n }),\n ),\n\n showIcons: Type.Optional(\n Type.Boolean({\n title: \"Show Icons\",\n description: \"Whether to display icons for timeline items\",\n default: true,\n }),\n ),\n iconSize: Type.Optional(\n StringEnum([\"sm\", \"md\", \"lg\"], {\n enumNames: [\"Small\", \"Medium\", \"Large\"],\n title: \"Icon Size\",\n description: \"Size of timeline item icons\",\n default: \"md\",\n }),\n ),\n\n showDates: Type.Optional(\n Type.Boolean({\n title: \"Show Dates\",\n description: \"Whether to display dates for timeline items\",\n default: true,\n }),\n ),\n\n datePosition: Type.Optional(\n StringEnum([\"top\", \"bottom\", \"inline\"], {\n enumNames: [\"Top\", \"Bottom\", \"Inline\"],\n title: \"Date Position\",\n description: \"Position of dates relative to content\",\n default: \"top\",\n }),\n ),\n\n // Styling\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color Preset\",\n description: \"Color theme for the timeline\",\n }),\n ),\n\n padding: Type.Optional(\n cssLength({\n title: \"Padding\",\n description: \"Internal padding for the timeline container\",\n }),\n ),\n\n border: Type.Optional(\n border({\n title: \"Border\",\n description: \"Border styling for the timeline container\",\n }),\n ),\n\n shadow: Type.Optional(\n shadow({\n title: \"Shadow\",\n description: \"Shadow effect for the timeline container\",\n }),\n ),\n\n rounding: Type.Optional(\n rounding({\n title: \"Rounding\",\n description: \"Corner rounding for the timeline container\",\n }),\n ),\n\n // Content loop support\n loop: Type.Optional(loop()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Basic timeline with milestones\",\n type: \"timeline\",\n props: {\n items: [\n {\n id: \"start\",\n title: \"Project Kickoff\",\n subtitle: \"Planning Phase\",\n date: \"January 2024\",\n description: \"Initial project planning and team assembly\",\n status: \"completed\",\n },\n {\n id: \"development\",\n title: \"Development Phase\",\n subtitle: \"Building the Product\",\n date: \"February - April 2024\",\n description: \"Core development and feature implementation\",\n status: \"completed\",\n },\n {\n id: \"testing\",\n title: \"Testing & QA\",\n subtitle: \"Quality Assurance\",\n date: \"May 2024\",\n description: \"Comprehensive testing and bug fixes\",\n status: \"current\",\n },\n {\n id: \"launch\",\n title: \"Product Launch\",\n subtitle: \"Go Live\",\n date: \"June 2024\",\n description: \"Official product release and marketing campaign\",\n status: \"upcoming\",\n },\n ],\n layout: \"left\",\n showConnector: true,\n showIcons: true,\n showDates: true,\n },\n },\n\n {\n description: \"Alternating timeline with custom colors\",\n type: \"timeline\",\n props: {\n items: [\n {\n title: \"Company Founded\",\n date: \"2020\",\n description: \"Started with a vision to change the industry\",\n },\n {\n title: \"First Product Launch\",\n date: \"2021\",\n description: \"Released our flagship product to market\",\n },\n {\n title: \"Series A Funding\",\n date: \"2022\",\n description: \"Raised $10M to accelerate growth\",\n },\n {\n title: \"International Expansion\",\n date: \"2023\",\n description: \"Opened offices in Europe and Asia\",\n },\n ],\n layout: \"alternating\",\n colorPreset: { color: \"primary-500\" },\n connectorColor: { color: \"primary-300\" },\n itemSpacing: \"3rem\",\n },\n },\n\n {\n description: \"Timeline with content blocks\",\n type: \"timeline\",\n props: {\n items: [\n {\n title: \"Research Phase\",\n date: \"Q1 2024\",\n description: \"Market research and user interviews\",\n },\n {\n title: \"Design Phase\",\n date: \"Q2 2024\",\n description: \"UI/UX design and prototyping\",\n },\n ],\n $children: [\n [\n {\n id: \"research-chart\",\n type: \"text\",\n props: { content: \"Research findings and insights will be displayed here.\" },\n },\n ],\n [\n {\n id: \"design-mockups\",\n type: \"text\",\n props: { content: \"Design mockups and prototypes will be shown here.\" },\n },\n ],\n ],\n },\n },\n\n {\n description: \"Compact timeline without dates\",\n type: \"timeline\",\n props: {\n items: [\n {\n title: \"Initialize Project\",\n description: \"Set up repository and development environment\",\n },\n {\n title: \"Implement Core Features\",\n description: \"Build the main functionality\",\n },\n {\n title: \"Add Tests\",\n description: \"Write unit and integration tests\",\n },\n {\n title: \"Deploy to Production\",\n description: \"Release to production environment\",\n },\n ],\n layout: \"left\",\n showDates: false,\n showIcons: false,\n itemSpacing: \"1.5rem\",\n padding: \"1rem\",\n },\n },\n\n {\n description: \"Timeline with custom icons\",\n type: \"timeline\",\n props: {\n items: [\n {\n title: \"Planning\",\n icon: \"mdi:calendar-check\",\n date: \"Week 1\",\n status: \"completed\",\n },\n {\n title: \"Development\",\n icon: \"mdi:code-braces\",\n date: \"Week 2-4\",\n status: \"completed\",\n },\n {\n title: \"Testing\",\n icon: \"mdi:test-tube\",\n date: \"Week 5\",\n status: \"current\",\n },\n {\n title: \"Deployment\",\n icon: \"mdi:rocket-launch\",\n date: \"Week 6\",\n status: \"upcoming\",\n },\n ],\n iconSize: \"lg\",\n datePosition: \"bottom\",\n },\n },\n\n {\n description: \"Right-aligned timeline\",\n type: \"timeline\",\n props: {\n items: [\n {\n title: \"User Registration Opens\",\n date: \"March 1st\",\n description: \"Early bird registration begins\",\n },\n {\n title: \"Speaker Announcements\",\n date: \"March 15th\",\n description: \"Keynote speakers revealed\",\n },\n {\n title: \"Conference Day\",\n date: \"April 1st\",\n description: \"The main event begins\",\n },\n ],\n layout: \"right\",\n colorPreset: { color: \"secondary-500\" },\n border: { width: \"border\", color: \"secondary-200\" },\n rounding: \"rounded-lg\",\n padding: \"2rem\",\n },\n },\n\n {\n description: \"Timeline with loop data\",\n type: \"timeline\",\n props: {\n items: [],\n loop: {\n over: \"milestones\",\n },\n layout: \"alternating\",\n showConnector: true,\n },\n },\n\n {\n description: \"Styled timeline with shadows\",\n type: \"timeline\",\n props: {\n items: [\n {\n title: \"Design System\",\n subtitle: \"Foundation\",\n date: \"Phase 1\",\n description: \"Establish design tokens and component library\",\n },\n {\n title: \"Component Development\",\n subtitle: \"Implementation\",\n date: \"Phase 2\",\n description: \"Build reusable React components\",\n },\n {\n title: \"Documentation\",\n subtitle: \"Guidelines\",\n date: \"Phase 3\",\n description: \"Create comprehensive usage documentation\",\n },\n ],\n colorPreset: { color: \"secondary-500\" },\n shadow: \"shadow-lg\",\n border: { width: \"border\", color: \"purple-200\" },\n rounding: \"rounded-xl\",\n padding: \"2.5rem\",\n itemSpacing: \"2.5rem\",\n connectorColor: { color: \"secondary-300\" },\n },\n },\n];\n"],"mappings":"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","names":[]}