@upstart.gg/sdk 0.0.135 → 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 (473) hide show
  1. package/dist/shared/ai/schemas.d.ts +11 -2
  2. package/dist/shared/ai/schemas.d.ts.map +1 -1
  3. package/dist/shared/ai/schemas.js +38 -8
  4. package/dist/shared/ai/schemas.js.map +1 -1
  5. package/dist/shared/ai/types.d.ts +93 -81
  6. package/dist/shared/ai/types.d.ts.map +1 -1
  7. package/dist/shared/ajv.js +33 -32
  8. package/dist/shared/ajv.js.map +1 -1
  9. package/dist/shared/attributes.d.ts +86 -86
  10. package/dist/shared/attributes.d.ts.map +1 -1
  11. package/dist/shared/attributes.js +22 -25
  12. package/dist/shared/brick-manifest.d.ts +8 -5
  13. package/dist/shared/brick-manifest.d.ts.map +1 -1
  14. package/dist/shared/brick-manifest.js +3 -18
  15. package/dist/shared/bricks/manifests/_types.d.ts +9 -0
  16. package/dist/shared/bricks/manifests/_types.d.ts.map +1 -0
  17. package/dist/shared/bricks/manifests/_types.js +3 -0
  18. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +4 -8
  19. package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
  20. package/dist/shared/bricks/manifests/accordion.manifest.js +13 -20
  21. package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
  22. package/dist/shared/bricks/manifests/all-manifests.js +44 -43
  23. package/dist/shared/bricks/manifests/all-props.d.ts +1501 -0
  24. package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -0
  25. package/dist/shared/bricks/manifests/all-props.js +243 -0
  26. package/dist/shared/bricks/manifests/all-props.js.map +1 -0
  27. package/dist/shared/bricks/manifests/box.manifest.d.ts +4 -8
  28. package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
  29. package/dist/shared/bricks/manifests/box.manifest.js +16 -20
  30. package/dist/shared/bricks/manifests/button.manifest.d.ts +5 -12
  31. package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
  32. package/dist/shared/bricks/manifests/button.manifest.js +13 -20
  33. package/dist/shared/bricks/manifests/card.manifest.d.ts +10 -9
  34. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  35. package/dist/shared/bricks/manifests/card.manifest.js +18 -20
  36. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +4 -8
  37. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  38. package/dist/shared/bricks/manifests/carousel.manifest.js +15 -20
  39. package/dist/shared/bricks/manifests/footer.manifest.d.ts +5 -9
  40. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  41. package/dist/shared/bricks/manifests/footer.manifest.js +13 -20
  42. package/dist/shared/bricks/manifests/form.manifest.d.ts +5 -9
  43. package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
  44. package/dist/shared/bricks/manifests/form.manifest.js +13 -20
  45. package/dist/shared/bricks/manifests/hero.manifest.d.ts +4 -8
  46. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  47. package/dist/shared/bricks/manifests/hero.manifest.js +13 -20
  48. package/dist/shared/bricks/manifests/html.manifest.d.ts +3 -7
  49. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  50. package/dist/shared/bricks/manifests/html.manifest.js +8 -20
  51. package/dist/shared/bricks/manifests/icon.manifest.d.ts +3 -7
  52. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  53. package/dist/shared/bricks/manifests/icon.manifest.js +13 -20
  54. package/dist/shared/bricks/manifests/image.manifest.d.ts +3 -2
  55. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  56. package/dist/shared/bricks/manifests/image.manifest.js +16 -20
  57. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +4 -8
  58. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  59. package/dist/shared/bricks/manifests/images-gallery.manifest.js +15 -20
  60. package/dist/shared/bricks/manifests/map.manifest.d.ts +3 -7
  61. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  62. package/dist/shared/bricks/manifests/map.manifest.js +11 -20
  63. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +7 -11
  64. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  65. package/dist/shared/bricks/manifests/navbar.manifest.js +15 -20
  66. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +3 -7
  67. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  68. package/dist/shared/bricks/manifests/sidebar.manifest.js +13 -20
  69. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +4 -8
  70. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  71. package/dist/shared/bricks/manifests/social-links.manifest.js +14 -20
  72. package/dist/shared/bricks/manifests/spacer.manifest.d.ts +3 -7
  73. package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
  74. package/dist/shared/bricks/manifests/spacer.manifest.js +8 -20
  75. package/dist/shared/bricks/manifests/table.manifest.d.ts +6 -10
  76. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  77. package/dist/shared/bricks/manifests/table.manifest.js +15 -20
  78. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +6 -10
  79. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
  80. package/dist/shared/bricks/manifests/tabs.manifest.js +15 -20
  81. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +4 -8
  82. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  83. package/dist/shared/bricks/manifests/testimonials.manifest.js +18 -20
  84. package/dist/shared/bricks/manifests/text.manifest.d.ts +4 -12
  85. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  86. package/dist/shared/bricks/manifests/text.manifest.js +13 -20
  87. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +9 -13
  88. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
  89. package/dist/shared/bricks/manifests/timeline.manifest.js +15 -20
  90. package/dist/shared/bricks/manifests/video.manifest.d.ts +3 -7
  91. package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
  92. package/dist/shared/bricks/manifests/video.manifest.js +11 -20
  93. package/dist/shared/bricks/props/align.d.ts +0 -3
  94. package/dist/shared/bricks/props/align.d.ts.map +1 -1
  95. package/dist/shared/bricks/props/align.js +4 -11
  96. package/dist/shared/bricks/props/background.d.ts +2 -8
  97. package/dist/shared/bricks/props/background.d.ts.map +1 -1
  98. package/dist/shared/bricks/props/background.js +4 -9
  99. package/dist/shared/bricks/props/border.d.ts +0 -7
  100. package/dist/shared/bricks/props/border.d.ts.map +1 -1
  101. package/dist/shared/bricks/props/border.js +5 -10
  102. package/dist/shared/bricks/props/color-preset.d.ts +316 -6
  103. package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
  104. package/dist/shared/bricks/props/color-preset.js +2 -5
  105. package/dist/shared/bricks/props/color.d.ts +3 -5
  106. package/dist/shared/bricks/props/color.d.ts.map +1 -1
  107. package/dist/shared/bricks/props/color.js +3 -8
  108. package/dist/shared/bricks/props/common.d.ts.map +1 -1
  109. package/dist/shared/bricks/props/common.js +4 -5
  110. package/dist/shared/bricks/props/css-length.d.ts +0 -1
  111. package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
  112. package/dist/shared/bricks/props/css-length.js +1 -4
  113. package/dist/shared/bricks/props/datasource.d.ts +3 -3
  114. package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
  115. package/dist/shared/bricks/props/datasource.js +74 -76
  116. package/dist/shared/bricks/props/datasource.js.map +1 -1
  117. package/dist/shared/bricks/props/date.js +21 -4
  118. package/dist/shared/bricks/props/date.js.map +1 -1
  119. package/dist/shared/bricks/props/direction.d.ts +1 -2
  120. package/dist/shared/bricks/props/direction.d.ts.map +1 -1
  121. package/dist/shared/bricks/props/direction.js +4 -7
  122. package/dist/shared/bricks/props/dynamic.d.ts +5 -67
  123. package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
  124. package/dist/shared/bricks/props/dynamic.js +6 -24
  125. package/dist/shared/bricks/props/effects.d.ts +1 -3
  126. package/dist/shared/bricks/props/effects.d.ts.map +1 -1
  127. package/dist/shared/bricks/props/effects.js +4 -9
  128. package/dist/shared/bricks/props/geolocation.d.ts.map +1 -1
  129. package/dist/shared/bricks/props/geolocation.js +3 -6
  130. package/dist/shared/bricks/props/geolocation.js.map +1 -1
  131. package/dist/shared/bricks/props/helpers.js +5 -6
  132. package/dist/shared/bricks/props/image.d.ts +2 -8
  133. package/dist/shared/bricks/props/image.d.ts.map +1 -1
  134. package/dist/shared/bricks/props/image.js +4 -7
  135. package/dist/shared/bricks/props/string.d.ts +2 -5
  136. package/dist/shared/bricks/props/string.d.ts.map +1 -1
  137. package/dist/shared/bricks/props/string.js +3 -10
  138. package/dist/shared/bricks/props/tags.d.ts +0 -1
  139. package/dist/shared/bricks/props/tags.d.ts.map +1 -1
  140. package/dist/shared/bricks/props/tags.js +3 -6
  141. package/dist/shared/bricks/props/text.d.ts +0 -3
  142. package/dist/shared/bricks/props/text.d.ts.map +1 -1
  143. package/dist/shared/bricks/props/text.js +4 -11
  144. package/dist/shared/bricks/props/types.d.ts +2 -2
  145. package/dist/shared/bricks/props/types.d.ts.map +1 -1
  146. package/dist/shared/bricks.d.ts +64 -152
  147. package/dist/shared/bricks.d.ts.map +1 -1
  148. package/dist/shared/bricks.js +49 -52
  149. package/dist/shared/chunk-2O5HVPID.js +41 -0
  150. package/dist/shared/chunk-2O5HVPID.js.map +1 -0
  151. package/dist/shared/{chunk-F22LDHEO.js → chunk-2U5U3CCJ.js} +3 -18
  152. package/dist/shared/chunk-2U5U3CCJ.js.map +1 -0
  153. package/dist/shared/{chunk-LXAO3JA6.js → chunk-4KY7OZWD.js} +35 -35
  154. package/dist/shared/chunk-4KY7OZWD.js.map +1 -0
  155. package/dist/shared/{chunk-TNMNMYOB.js → chunk-5RCC2STG.js} +2 -13
  156. package/dist/shared/chunk-5RCC2STG.js.map +1 -0
  157. package/dist/shared/{chunk-V3UA3LRK.js → chunk-6AE7UD73.js} +56 -37
  158. package/dist/shared/chunk-6AE7UD73.js.map +1 -0
  159. package/dist/shared/chunk-7U5WPHXB.js +346 -0
  160. package/dist/shared/chunk-7U5WPHXB.js.map +1 -0
  161. package/dist/shared/{chunk-Q4NPPLEU.js → chunk-BHARJBEK.js} +2 -9
  162. package/dist/shared/chunk-BHARJBEK.js.map +1 -0
  163. package/dist/shared/chunk-BZTWZC77.js +530 -0
  164. package/dist/shared/chunk-BZTWZC77.js.map +1 -0
  165. package/dist/shared/{chunk-QSND5IWT.js → chunk-DCM4732T.js} +24 -43
  166. package/dist/shared/chunk-DCM4732T.js.map +1 -0
  167. package/dist/shared/{chunk-W6MRYRGJ.js → chunk-DRQKKPTX.js} +6 -20
  168. package/dist/shared/chunk-DRQKKPTX.js.map +1 -0
  169. package/dist/shared/{chunk-CSF2WQX2.js → chunk-EID5HPF3.js} +15 -12
  170. package/dist/shared/chunk-EID5HPF3.js.map +1 -0
  171. package/dist/shared/chunk-EMF5TCPX.js +389 -0
  172. package/dist/shared/chunk-EMF5TCPX.js.map +1 -0
  173. package/dist/shared/chunk-FD7YYFRI.js +225 -0
  174. package/dist/shared/chunk-FD7YYFRI.js.map +1 -0
  175. package/dist/shared/{chunk-MLZT7MRQ.js → chunk-FHA4DFIM.js} +26 -27
  176. package/dist/shared/chunk-FHA4DFIM.js.map +1 -0
  177. package/dist/shared/{chunk-GRMY35BU.js → chunk-FUUSAMN3.js} +165 -40
  178. package/dist/shared/chunk-FUUSAMN3.js.map +1 -0
  179. package/dist/shared/chunk-GDYCCB3B.js +22 -0
  180. package/dist/shared/chunk-GDYCCB3B.js.map +1 -0
  181. package/dist/shared/chunk-GLV6QIIM.js +41 -0
  182. package/dist/shared/chunk-GLV6QIIM.js.map +1 -0
  183. package/dist/shared/chunk-H6TMBELF.js +374 -0
  184. package/dist/shared/chunk-H6TMBELF.js.map +1 -0
  185. package/dist/shared/{chunk-BMWRR4DI.js → chunk-HUWMIXNN.js} +26 -28
  186. package/dist/shared/chunk-HUWMIXNN.js.map +1 -0
  187. package/dist/shared/chunk-HY7JOP3J.js +150 -0
  188. package/dist/shared/chunk-HY7JOP3J.js.map +1 -0
  189. package/dist/shared/{chunk-TFGGYU6Y.js → chunk-IEMCCHM4.js} +7 -12
  190. package/dist/shared/chunk-IEMCCHM4.js.map +1 -0
  191. package/dist/shared/{chunk-TB3X4LRQ.js → chunk-J45LSQT6.js} +2 -2
  192. package/dist/shared/chunk-J45LSQT6.js.map +1 -0
  193. package/dist/shared/{chunk-WGDUJSSS.js → chunk-JF52BBFD.js} +27 -28
  194. package/dist/shared/chunk-JF52BBFD.js.map +1 -0
  195. package/dist/shared/{chunk-GPCI2N2A.js → chunk-JLDAS3VE.js} +136 -33
  196. package/dist/shared/chunk-JLDAS3VE.js.map +1 -0
  197. package/dist/shared/{chunk-SE6O65HC.js → chunk-JSDKK5QN.js} +10 -23
  198. package/dist/shared/chunk-JSDKK5QN.js.map +1 -0
  199. package/dist/shared/chunk-JW7MQAU4.js +354 -0
  200. package/dist/shared/chunk-JW7MQAU4.js.map +1 -0
  201. package/dist/shared/{chunk-RV7AYVFV.js → chunk-KKWT3OXF.js} +4 -19
  202. package/dist/shared/chunk-KKWT3OXF.js.map +1 -0
  203. package/dist/shared/{chunk-TEO6TJOM.js → chunk-KQH6V22E.js} +36 -35
  204. package/dist/shared/{chunk-TEO6TJOM.js.map → chunk-KQH6V22E.js.map} +1 -1
  205. package/dist/shared/{chunk-3KLRW4I2.js → chunk-LGDDJJHK.js} +212 -156
  206. package/dist/shared/chunk-LGDDJJHK.js.map +1 -0
  207. package/dist/shared/{chunk-QL3T5HJQ.js → chunk-LGGPCCCY.js} +3 -3
  208. package/dist/shared/chunk-LGGPCCCY.js.map +1 -0
  209. package/dist/shared/{chunk-2HO4FHLM.js → chunk-LPAQ47C6.js} +137 -171
  210. package/dist/shared/chunk-LPAQ47C6.js.map +1 -0
  211. package/dist/shared/chunk-MO6CRLQA.js +73 -0
  212. package/dist/shared/chunk-MO6CRLQA.js.map +1 -0
  213. package/dist/shared/{chunk-SHUGHJ7V.js → chunk-MYOLWTB2.js} +29 -32
  214. package/dist/shared/chunk-MYOLWTB2.js.map +1 -0
  215. package/dist/shared/{chunk-Z2NTDFB4.js → chunk-O24RDXZS.js} +34 -34
  216. package/dist/shared/chunk-O24RDXZS.js.map +1 -0
  217. package/dist/shared/{chunk-BPBKHEQ5.js → chunk-OJ6KL7FU.js} +1 -8
  218. package/dist/shared/chunk-OJ6KL7FU.js.map +1 -0
  219. package/dist/shared/{chunk-GCQURRVB.js → chunk-PF75LW33.js} +24 -27
  220. package/dist/shared/chunk-PF75LW33.js.map +1 -0
  221. package/dist/shared/{chunk-EWSPTRDL.js → chunk-QEJGPYTB.js} +132 -48
  222. package/dist/shared/chunk-QEJGPYTB.js.map +1 -0
  223. package/dist/shared/{chunk-P3RH5URN.js → chunk-SK2O7GFC.js} +17 -18
  224. package/dist/shared/chunk-SK2O7GFC.js.map +1 -0
  225. package/dist/shared/{chunk-UQF52PWK.js → chunk-SQXZNGQF.js} +8 -23
  226. package/dist/shared/chunk-SQXZNGQF.js.map +1 -0
  227. package/dist/shared/{chunk-NTLAKMMQ.js → chunk-SRYBJ6NQ.js} +6 -17
  228. package/dist/shared/chunk-SRYBJ6NQ.js.map +1 -0
  229. package/dist/shared/{chunk-O5PLB3YB.js → chunk-T6C3NG2L.js} +68 -59
  230. package/dist/shared/chunk-T6C3NG2L.js.map +1 -0
  231. package/dist/shared/{chunk-U7TVEPKA.js → chunk-TBT2PTGB.js} +41 -33
  232. package/dist/shared/chunk-TBT2PTGB.js.map +1 -0
  233. package/dist/shared/{chunk-CKFRSHR2.js → chunk-U4KZUX37.js} +18 -19
  234. package/dist/shared/chunk-U4KZUX37.js.map +1 -0
  235. package/dist/shared/{chunk-4WI23M7W.js → chunk-VSLRTXLF.js} +11 -4
  236. package/dist/shared/chunk-VSLRTXLF.js.map +1 -0
  237. package/dist/shared/{chunk-BHC2A43S.js → chunk-VTCHJT4O.js} +3 -3
  238. package/dist/shared/{chunk-BHC2A43S.js.map → chunk-VTCHJT4O.js.map} +1 -1
  239. package/dist/shared/{chunk-DRTGM2UJ.js → chunk-W2RFDII5.js} +3 -3
  240. package/dist/shared/chunk-W2RFDII5.js.map +1 -0
  241. package/dist/shared/{chunk-Y74LZNND.js → chunk-WPZV3LYL.js} +4 -10
  242. package/dist/shared/chunk-WPZV3LYL.js.map +1 -0
  243. package/dist/shared/chunk-XFZQGRRL.js +101 -0
  244. package/dist/shared/chunk-XFZQGRRL.js.map +1 -0
  245. package/dist/shared/{chunk-QQQ3FYPG.js → chunk-XK2CERPB.js} +147 -31
  246. package/dist/shared/chunk-XK2CERPB.js.map +1 -0
  247. package/dist/shared/chunk-XNRSL6FL.js +78 -0
  248. package/dist/shared/chunk-XNRSL6FL.js.map +1 -0
  249. package/dist/shared/{chunk-2RK3CPYJ.js → chunk-XXPSM6UA.js} +9 -12
  250. package/dist/shared/chunk-XXPSM6UA.js.map +1 -0
  251. package/dist/shared/{chunk-ZLYIRH2B.js → chunk-ZRBTAC3G.js} +3 -18
  252. package/dist/shared/chunk-ZRBTAC3G.js.map +1 -0
  253. package/dist/shared/{chunk-Z35I5JM5.js → chunk-ZVJNRKT4.js} +18 -20
  254. package/dist/shared/chunk-ZVJNRKT4.js.map +1 -0
  255. package/dist/shared/context.d.ts +402 -22
  256. package/dist/shared/context.d.ts.map +1 -1
  257. package/dist/shared/context.js +93 -0
  258. package/dist/shared/context.js.map +1 -1
  259. package/dist/shared/datarecords/external/airtable/types.d.ts +1 -1
  260. package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
  261. package/dist/shared/datarecords/external/airtable/types.js +2 -1
  262. package/dist/shared/datarecords/types.d.ts +10 -63
  263. package/dist/shared/datarecords/types.d.ts.map +1 -1
  264. package/dist/shared/datarecords/types.js +5 -6
  265. package/dist/shared/datasources/external/instagram/feed/schema.d.ts +1 -1
  266. package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
  267. package/dist/shared/datasources/external/instagram/feed/schema.js +4 -1
  268. package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
  269. package/dist/shared/datasources/external/mastodon/status/schema.d.ts +6 -6
  270. package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
  271. package/dist/shared/datasources/external/mastodon/status/schema.js +6 -19
  272. package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
  273. package/dist/shared/datasources/external/meta/oauth/config.d.ts +2 -2
  274. package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
  275. package/dist/shared/datasources/external/meta/oauth/config.js +4 -1
  276. package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
  277. package/dist/shared/datasources/external/threads/media/fetcher.js +3 -3
  278. package/dist/shared/datasources/external/threads/media/schema.d.ts +1 -1
  279. package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
  280. package/dist/shared/datasources/external/threads/media/schema.js +4 -8
  281. package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
  282. package/dist/shared/datasources/internal/blog/schema.d.ts +1 -1
  283. package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
  284. package/dist/shared/datasources/internal/blog/schema.js +4 -1
  285. package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
  286. package/dist/shared/datasources/types.d.ts +25 -25
  287. package/dist/shared/datasources/types.d.ts.map +1 -1
  288. package/dist/shared/datasources/types.js +3 -16
  289. package/dist/shared/datasources.d.ts +1 -1
  290. package/dist/shared/datasources.d.ts.map +1 -1
  291. package/dist/shared/datasources.js +1 -3
  292. package/dist/shared/datasources.js.map +1 -1
  293. package/dist/shared/images.d.ts +1 -1
  294. package/dist/shared/images.d.ts.map +1 -1
  295. package/dist/shared/images.js +4 -38
  296. package/dist/shared/images.js.map +1 -1
  297. package/dist/shared/page.d.ts +139 -22
  298. package/dist/shared/page.d.ts.map +1 -1
  299. package/dist/shared/page.js +51 -49
  300. package/dist/shared/responsive.js +1 -1
  301. package/dist/shared/site.d.ts +80 -197
  302. package/dist/shared/site.d.ts.map +1 -1
  303. package/dist/shared/site.js +55 -114
  304. package/dist/shared/site.js.map +1 -1
  305. package/dist/shared/sitemap.d.ts +6 -327
  306. package/dist/shared/sitemap.d.ts.map +1 -1
  307. package/dist/shared/sitemap.js +50 -58
  308. package/dist/shared/theme.d.ts +0 -37
  309. package/dist/shared/theme.d.ts.map +1 -1
  310. package/dist/shared/theme.js +4 -21
  311. package/dist/shared/utils/llm.d.ts +1 -10
  312. package/dist/shared/utils/llm.d.ts.map +1 -1
  313. package/dist/shared/utils/llm.js +1 -18
  314. package/dist/shared/utils/schema.d.ts +3 -2
  315. package/dist/shared/utils/schema.d.ts.map +1 -1
  316. package/dist/shared/utils/schema.js +2 -17
  317. package/dist/shared/utils/string-enum.d.ts +9 -3
  318. package/dist/shared/utils/string-enum.d.ts.map +1 -1
  319. package/dist/shared/utils/string-enum.js +1 -1
  320. package/package.json +21 -5
  321. package/src/shared/ai/schemas.ts +41 -10
  322. package/src/shared/ai/types.ts +78 -76
  323. package/src/shared/attributes.ts +56 -46
  324. package/src/shared/brick-manifest.ts +5 -6
  325. package/src/shared/bricks/manifests/_types.ts +9 -0
  326. package/src/shared/bricks/manifests/accordion.manifest.ts +138 -171
  327. package/src/shared/bricks/manifests/all-manifests.ts +1 -0
  328. package/src/shared/bricks/manifests/all-props.ts +165 -0
  329. package/src/shared/bricks/manifests/box.manifest.ts +214 -150
  330. package/src/shared/bricks/manifests/button.manifest.ts +204 -79
  331. package/src/shared/bricks/manifests/card.manifest.ts +229 -43
  332. package/src/shared/bricks/manifests/carousel.manifest.ts +165 -35
  333. package/src/shared/bricks/manifests/footer.manifest.ts +18 -20
  334. package/src/shared/bricks/manifests/form.manifest.ts +136 -22
  335. package/src/shared/bricks/manifests/hero.manifest.ts +121 -38
  336. package/src/shared/bricks/manifests/html.manifest.ts +2 -5
  337. package/src/shared/bricks/manifests/icon.manifest.ts +225 -46
  338. package/src/shared/bricks/manifests/image.manifest.ts +125 -21
  339. package/src/shared/bricks/manifests/images-gallery.manifest.ts +15 -20
  340. package/src/shared/bricks/manifests/map.manifest.ts +12 -15
  341. package/src/shared/bricks/manifests/navbar.manifest.ts +22 -26
  342. package/src/shared/bricks/manifests/sidebar.manifest.ts +11 -14
  343. package/src/shared/bricks/manifests/social-links.manifest.ts +19 -24
  344. package/src/shared/bricks/manifests/spacer.manifest.ts +2 -5
  345. package/src/shared/bricks/manifests/table.manifest.ts +17 -20
  346. package/src/shared/bricks/manifests/tabs.manifest.ts +16 -21
  347. package/src/shared/bricks/manifests/testimonials.manifest.ts +23 -25
  348. package/src/shared/bricks/manifests/text.manifest.ts +47 -29
  349. package/src/shared/bricks/manifests/timeline.manifest.ts +31 -29
  350. package/src/shared/bricks/manifests/video.manifest.ts +11 -15
  351. package/src/shared/bricks/props/align.ts +0 -13
  352. package/src/shared/bricks/props/background.ts +1 -14
  353. package/src/shared/bricks/props/border.ts +2 -13
  354. package/src/shared/bricks/props/color-preset.ts +9 -10
  355. package/src/shared/bricks/props/color.ts +7 -18
  356. package/src/shared/bricks/props/common.ts +6 -7
  357. package/src/shared/bricks/props/css-length.ts +0 -5
  358. package/src/shared/bricks/props/datasource.ts +72 -74
  359. package/src/shared/bricks/props/direction.ts +1 -5
  360. package/src/shared/bricks/props/dynamic.ts +0 -11
  361. package/src/shared/bricks/props/effects.ts +0 -9
  362. package/src/shared/bricks/props/geolocation.ts +3 -3
  363. package/src/shared/bricks/props/helpers.ts +1 -1
  364. package/src/shared/bricks/props/image.ts +4 -16
  365. package/src/shared/bricks/props/string.ts +6 -19
  366. package/src/shared/bricks/props/tags.ts +0 -5
  367. package/src/shared/bricks/props/tests/background.test.ts +1 -15
  368. package/src/shared/bricks/props/tests/image.test.ts +3 -9
  369. package/src/shared/bricks/props/tests/string.test.ts +2 -26
  370. package/src/shared/bricks/props/text.ts +0 -12
  371. package/src/shared/bricks/props/types.ts +4 -3
  372. package/src/shared/bricks.ts +164 -1025
  373. package/src/shared/context.ts +24 -23
  374. package/src/shared/datarecords/external/airtable/types.ts +12 -11
  375. package/src/shared/datarecords/types.ts +22 -44
  376. package/src/shared/datasources/external/instagram/feed/schema.ts +2 -1
  377. package/src/shared/datasources/external/mastodon/status/schema.ts +4 -19
  378. package/src/shared/datasources/external/meta/oauth/config.ts +2 -1
  379. package/src/shared/datasources/external/threads/media/schema.ts +2 -8
  380. package/src/shared/datasources/internal/blog/schema.ts +2 -1
  381. package/src/shared/datasources/types.ts +64 -79
  382. package/src/shared/datasources.ts +2 -4
  383. package/src/shared/images.ts +12 -18
  384. package/src/shared/page.ts +9 -2
  385. package/src/shared/site.ts +3 -3
  386. package/src/shared/sitemap.ts +3 -68
  387. package/src/shared/tests/attributes.test.ts +2 -0
  388. package/src/shared/theme.ts +81 -96
  389. package/src/shared/utils/llm.ts +5 -191
  390. package/src/shared/utils/schema.ts +71 -244
  391. package/src/shared/utils/string-enum.ts +25 -4
  392. package/src/shared/utils/tests/schema.test.ts +112 -314
  393. package/dist/shared/chunk-2HO4FHLM.js.map +0 -1
  394. package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
  395. package/dist/shared/chunk-3KLRW4I2.js.map +0 -1
  396. package/dist/shared/chunk-4WI23M7W.js.map +0 -1
  397. package/dist/shared/chunk-6E42XWFH.js +0 -103
  398. package/dist/shared/chunk-6E42XWFH.js.map +0 -1
  399. package/dist/shared/chunk-A2QPY54H.js +0 -13
  400. package/dist/shared/chunk-A2QPY54H.js.map +0 -1
  401. package/dist/shared/chunk-BMWRR4DI.js.map +0 -1
  402. package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
  403. package/dist/shared/chunk-BW6EFRSF.js +0 -794
  404. package/dist/shared/chunk-BW6EFRSF.js.map +0 -1
  405. package/dist/shared/chunk-CKFRSHR2.js.map +0 -1
  406. package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
  407. package/dist/shared/chunk-D4YQ6ABM.js +0 -338
  408. package/dist/shared/chunk-D4YQ6ABM.js.map +0 -1
  409. package/dist/shared/chunk-DRTGM2UJ.js.map +0 -1
  410. package/dist/shared/chunk-EQMU6NIU.js +0 -1222
  411. package/dist/shared/chunk-EQMU6NIU.js.map +0 -1
  412. package/dist/shared/chunk-EWSPTRDL.js.map +0 -1
  413. package/dist/shared/chunk-F22LDHEO.js.map +0 -1
  414. package/dist/shared/chunk-FVU5PXRC.js +0 -244
  415. package/dist/shared/chunk-FVU5PXRC.js.map +0 -1
  416. package/dist/shared/chunk-GCQURRVB.js.map +0 -1
  417. package/dist/shared/chunk-GPCI2N2A.js.map +0 -1
  418. package/dist/shared/chunk-GRMY35BU.js.map +0 -1
  419. package/dist/shared/chunk-JK2FWFJU.js +0 -15
  420. package/dist/shared/chunk-JK2FWFJU.js.map +0 -1
  421. package/dist/shared/chunk-LXAO3JA6.js.map +0 -1
  422. package/dist/shared/chunk-MLZT7MRQ.js.map +0 -1
  423. package/dist/shared/chunk-NT3IW52F.js +0 -260
  424. package/dist/shared/chunk-NT3IW52F.js.map +0 -1
  425. package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
  426. package/dist/shared/chunk-O5PLB3YB.js.map +0 -1
  427. package/dist/shared/chunk-P3RH5URN.js.map +0 -1
  428. package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
  429. package/dist/shared/chunk-QL3T5HJQ.js.map +0 -1
  430. package/dist/shared/chunk-QQQ3FYPG.js.map +0 -1
  431. package/dist/shared/chunk-QSND5IWT.js.map +0 -1
  432. package/dist/shared/chunk-RV7AYVFV.js.map +0 -1
  433. package/dist/shared/chunk-SE6O65HC.js.map +0 -1
  434. package/dist/shared/chunk-SHUGHJ7V.js.map +0 -1
  435. package/dist/shared/chunk-TB3X4LRQ.js.map +0 -1
  436. package/dist/shared/chunk-TFGGYU6Y.js.map +0 -1
  437. package/dist/shared/chunk-TNMNMYOB.js.map +0 -1
  438. package/dist/shared/chunk-U7TVEPKA.js.map +0 -1
  439. package/dist/shared/chunk-UQF52PWK.js.map +0 -1
  440. package/dist/shared/chunk-V3UA3LRK.js.map +0 -1
  441. package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
  442. package/dist/shared/chunk-WGDUJSSS.js.map +0 -1
  443. package/dist/shared/chunk-WKN566LN.js +0 -29
  444. package/dist/shared/chunk-WKN566LN.js.map +0 -1
  445. package/dist/shared/chunk-X6N463D4.js +0 -222
  446. package/dist/shared/chunk-X6N463D4.js.map +0 -1
  447. package/dist/shared/chunk-X75YV73Q.js +0 -178
  448. package/dist/shared/chunk-X75YV73Q.js.map +0 -1
  449. package/dist/shared/chunk-Y74LZNND.js.map +0 -1
  450. package/dist/shared/chunk-Z2NTDFB4.js.map +0 -1
  451. package/dist/shared/chunk-Z35I5JM5.js.map +0 -1
  452. package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
  453. package/dist/shared/schema-registry.d.ts +0 -5
  454. package/dist/shared/schema-registry.d.ts.map +0 -1
  455. package/dist/shared/schema-registry.js +0 -119
  456. package/dist/shared/schema-registry.js.map +0 -1
  457. package/dist/shared/tests/schema-registry.test.d.ts +0 -2
  458. package/dist/shared/tests/schema-registry.test.d.ts.map +0 -1
  459. package/dist/shared/utils/schema-registry.d.ts +0 -5
  460. package/dist/shared/utils/schema-registry.d.ts.map +0 -1
  461. package/dist/shared/utils/schema-registry.js +0 -29
  462. package/dist/shared/utils/tests/schema-registry.test.d.ts +0 -2
  463. package/dist/shared/utils/tests/schema-registry.test.d.ts.map +0 -1
  464. package/dist/shared/utils/typed-ref.d.ts +0 -43
  465. package/dist/shared/utils/typed-ref.d.ts.map +0 -1
  466. package/dist/shared/utils/typed-ref.js +0 -10
  467. package/dist/shared/utils/typed-ref.js.map +0 -1
  468. package/src/shared/schema-registry.ts +0 -82
  469. package/src/shared/tests/schema-registry.test.ts +0 -14
  470. package/src/shared/utils/schema-registry.ts +0 -82
  471. package/src/shared/utils/tests/schema-registry.test.ts +0 -13
  472. package/src/shared/utils/typed-ref.ts +0 -53
  473. /package/dist/shared/{utils/schema-registry.js.map → bricks/manifests/_types.js.map} +0 -0
@@ -0,0 +1,150 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
+
3
+
4
+ // src/shared/utils/schema.ts
5
+ import { Value } from "@sinclair/typebox/value";
6
+ import { defaultsDeep as applyDefaultsDeep } from "lodash-es";
7
+ import { FormatRegistry } from "@sinclair/typebox";
8
+ import { DefaultErrorFunction, SetErrorFunction, ValueErrorType } from "@sinclair/typebox/errors";
9
+ var urlValidator = (value) => {
10
+ try {
11
+ const url = new URL(value);
12
+ return url.protocol === "http:" || url.protocol === "https:";
13
+ } catch {
14
+ return false;
15
+ }
16
+ };
17
+ var noCheck = (value) => true;
18
+ FormatRegistry.Set(
19
+ "uuid",
20
+ (value) => /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value)
21
+ );
22
+ FormatRegistry.Set("nanoid", (value) => /^[A-Za-z0-9_-]{7,32}$/.test(value));
23
+ FormatRegistry.Set("slug", (value) => /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value));
24
+ FormatRegistry.Set("richtext", noCheck);
25
+ FormatRegistry.Set("markdown", noCheck);
26
+ FormatRegistry.Set("multiline", noCheck);
27
+ FormatRegistry.Set("password", noCheck);
28
+ FormatRegistry.Set("image", urlValidator);
29
+ FormatRegistry.Set("file", urlValidator);
30
+ SetErrorFunction((error) => {
31
+ if (error.errorType === ValueErrorType.Kind) {
32
+ if (error.schema.type === "string" && typeof error.value === "string" && error.schema.enum && !error.schema.enum.includes(error.value)) {
33
+ return `Must include valid value: [${error.schema.enum.join(", ")}]`;
34
+ }
35
+ }
36
+ return DefaultErrorFunction(error);
37
+ });
38
+ function normalizeSchemaEnum(schema) {
39
+ if (!("enum" in schema)) {
40
+ return schema.anyOf ?? schema.oneOf;
41
+ }
42
+ const {
43
+ enum: enumValues,
44
+ enumNames,
45
+ "ui:icons": icons
46
+ } = schema;
47
+ return enumValues.map((value, index) => ({
48
+ const: value,
49
+ title: enumNames ? enumNames[index] : value,
50
+ "ui:icon": icons ? icons[index] : void 0
51
+ }));
52
+ }
53
+ function getSchemaDefaults(schema, mode) {
54
+ if (schema.type === "object" && "properties" in schema) {
55
+ const objectSchema = schema;
56
+ const defaults = {};
57
+ for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {
58
+ const defaultValue = getNestedDefaults(propertySchema, mode);
59
+ if (defaultValue !== void 0) {
60
+ defaults[key] = defaultValue;
61
+ }
62
+ }
63
+ return defaults;
64
+ }
65
+ if (schema.type === "array" && "items" in schema) {
66
+ const arraySchema = schema;
67
+ if (mode && typeof arraySchema[`default:${mode}`] !== "undefined") {
68
+ return arraySchema[`default:${mode}`];
69
+ }
70
+ if (arraySchema.default) {
71
+ return arraySchema.default;
72
+ }
73
+ return [];
74
+ }
75
+ throw new Error("Schema must be either TObject or TArray");
76
+ }
77
+ function getNestedDefaults(schema, mode) {
78
+ if (mode && typeof schema[`default:${mode}`] !== "undefined") {
79
+ return schema[`default:${mode}`];
80
+ }
81
+ if ("default" in schema && schema.default !== void 0) {
82
+ return schema.default;
83
+ }
84
+ if (schema.type === "object" && "properties" in schema) {
85
+ const objectSchema = schema;
86
+ const defaults = {};
87
+ for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {
88
+ const defaultValue = getNestedDefaults(propertySchema, mode);
89
+ if (defaultValue !== void 0) {
90
+ defaults[key] = defaultValue;
91
+ }
92
+ }
93
+ return Object.keys(defaults).length > 0 ? defaults : void 0;
94
+ }
95
+ if (schema.type === "array" && "items" in schema) {
96
+ return void 0;
97
+ }
98
+ return void 0;
99
+ }
100
+ function filterSchemaProperties(schema, filter) {
101
+ function extractProperties(schema2) {
102
+ const props = {};
103
+ for (const [key, prop] of Object.entries(schema2.properties)) {
104
+ if (filter(prop)) {
105
+ props[key] = prop;
106
+ } else if (prop.type === "object" && prop.properties) {
107
+ const nestedContentProps = extractProperties(prop);
108
+ if (Object.keys(nestedContentProps).length > 0) {
109
+ Object.assign(props, nestedContentProps);
110
+ }
111
+ }
112
+ }
113
+ return props;
114
+ }
115
+ return extractProperties(schema);
116
+ }
117
+ function resolveSchema(schema) {
118
+ console.warn("resolveSchema is deprecated, use resolveSchemaRecursive instead");
119
+ return schema;
120
+ }
121
+ function validate(schema, data) {
122
+ try {
123
+ const valid = Value.Check(schema, data);
124
+ if (!valid) {
125
+ let finalError = "";
126
+ for (const error of Value.Errors(schema, data)) {
127
+ finalError += `Error at ${error.path} with value ${error.value}: ${error.message}
128
+ `;
129
+ }
130
+ console.error("Validation errors:\n", finalError);
131
+ throw new Error(finalError);
132
+ }
133
+ } catch (e) {
134
+ console.error("Validation exception:", e);
135
+ console.dir(e, { depth: null });
136
+ throw e;
137
+ }
138
+ const defaults = getSchemaDefaults(schema);
139
+ const finalObject = applyDefaultsDeep({}, data, defaults);
140
+ return finalObject;
141
+ }
142
+
143
+ export {
144
+ normalizeSchemaEnum,
145
+ getSchemaDefaults,
146
+ filterSchemaProperties,
147
+ resolveSchema,
148
+ validate
149
+ };
150
+ //# sourceMappingURL=chunk-HY7JOP3J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/utils/schema.ts"],"sourcesContent":["import { type TArray, type TObject, type TSchema, Kind, type Static } from \"@sinclair/typebox\";\nimport { Value } from \"@sinclair/typebox/value\";\nimport type { PageAttributes } from \"../attributes\";\nimport { defaultsDeep as applyDefaultsDeep, merge } from \"lodash-es\";\nimport { FormatRegistry } from \"@sinclair/typebox\";\nimport { DefaultErrorFunction, SetErrorFunction, ValueErrorType } from \"@sinclair/typebox/errors\";\n// export const jsonStringsSupportedFormats = [\"date-time\", \"date\", \"email\", \"url\"] as const;\n\n// import string enum for its side effects\nimport \"./string-enum\";\n\nconst urlValidator = (value: string) => {\n try {\n const url = new URL(value);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n};\n\nconst noCheck = (value: string) => true;\n\nFormatRegistry.Set(\"uuid\", (value) =>\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value),\n);\n// Allow different lengths for nanoid\nFormatRegistry.Set(\"nanoid\", (value) => /^[A-Za-z0-9_-]{7,32}$/.test(value));\nFormatRegistry.Set(\"slug\", (value) => /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value));\n// Simple format checks for richtext, markdown, multiline, password, image, file\nFormatRegistry.Set(\"richtext\", noCheck);\nFormatRegistry.Set(\"markdown\", noCheck);\nFormatRegistry.Set(\"multiline\", noCheck);\nFormatRegistry.Set(\"password\", noCheck);\nFormatRegistry.Set(\"image\", urlValidator);\nFormatRegistry.Set(\"file\", urlValidator);\n\nSetErrorFunction((error) => {\n if (error.errorType === ValueErrorType.Kind) {\n if (\n error.schema.type === \"string\" &&\n typeof error.value === \"string\" &&\n error.schema.enum &&\n !error.schema.enum.includes(error.value)\n ) {\n return `Must include valid value: [${error.schema.enum.join(\", \")}]`;\n }\n }\n\n return DefaultErrorFunction(error);\n});\n\nexport function normalizeSchemaEnum(schema: TSchema): Array<{ const: string; title: string }> {\n if (!(\"enum\" in schema)) {\n return schema.anyOf ?? schema.oneOf;\n }\n const {\n enum: enumValues,\n enumNames,\n \"ui:icons\": icons,\n } = schema as unknown as { enum: string[]; enumNames?: string[]; \"ui:icons\"?: string[] };\n // combine to key-value pairs\n return enumValues.map((value, index) => ({\n const: value,\n title: enumNames ? enumNames[index] : value,\n \"ui:icon\": icons ? icons[index] : undefined,\n }));\n}\n\nexport function getSchemaDefaults<T extends TObject | TArray>(\n schema: T,\n mode?: \"mobile\" | \"desktop\",\n): Static<T> {\n // Handle object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const defaults: Static<T> = {};\n\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n\n // Only include properties that have explicit defaults\n if (defaultValue !== undefined) {\n defaults[key] = defaultValue;\n }\n }\n\n return defaults as Static<T>;\n }\n\n // Handle array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n const arraySchema = schema as TArray;\n\n if (mode && typeof arraySchema[`default:${mode}`] !== \"undefined\") {\n return arraySchema[`default:${mode}`];\n }\n\n // If the array itself has an explicit default, return it\n if (arraySchema.default) {\n return arraySchema.default;\n }\n\n // Otherwise return empty array\n return [];\n }\n\n throw new Error(\"Schema must be either TObject or TArray\");\n}\n\n// Helper function for nested schema processing\nfunction getNestedDefaults(schema: TSchema, mode?: \"mobile\" | \"desktop\"): unknown {\n if (mode && typeof schema[`default:${mode}`] !== \"undefined\") {\n return schema[`default:${mode}`];\n }\n // Handle schemas with explicit default values\n if (\"default\" in schema && schema.default !== undefined) {\n return schema.default;\n }\n\n // Handle nested object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const defaults: Record<string, unknown> = {};\n\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n\n // Only include properties that have explicit defaults\n if (defaultValue !== undefined) {\n defaults[key] = defaultValue;\n }\n }\n\n return Object.keys(defaults).length > 0 ? defaults : undefined;\n }\n\n // Handle nested array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n // Arrays only contribute defaults if explicitly set\n return undefined;\n }\n\n // No implicit defaults for any type\n return undefined;\n}\n\nexport type FieldFilter<\n T extends TSchema = TSchema,\n P extends Record<string, unknown> = Record<string, unknown>,\n> = (propsSchema: T, formData: P, pageAttributes: PageAttributes) => boolean;\n\nexport function filterSchemaProperties(schema: TObject, filter: (prop: TSchema) => boolean) {\n function extractProperties(schema: TObject): Record<string, TSchema> {\n const props: Record<string, TSchema> = {};\n for (const [key, prop] of Object.entries(schema.properties)) {\n if (filter(prop)) {\n props[key] = prop;\n } else if (prop.type === \"object\" && prop.properties) {\n const nestedContentProps = extractProperties(prop as TObject);\n if (Object.keys(nestedContentProps).length > 0) {\n Object.assign(props, nestedContentProps);\n }\n }\n }\n return props;\n }\n return extractProperties(schema);\n}\n\n/**\n * Resolves a JSON schema by following $ref references recursively.\n * Handles nested objects, arrays, and complex schema structures.\n */\nexport function resolveSchema<T extends TSchema = TSchema>(schema: T): T {\n console.warn(\"resolveSchema is deprecated, use resolveSchemaRecursive instead\");\n return schema;\n}\n\nexport function validate<T extends TSchema>(schema: TSchema, data: unknown): Static<T> {\n try {\n const valid = Value.Check(schema, data);\n if (!valid) {\n let finalError = \"\";\n for (const error of Value.Errors(schema, data)) {\n finalError += `Error at ${error.path} with value ${error.value}: ${error.message}\\n`;\n }\n console.error(\"Validation errors:\\n\", finalError);\n throw new Error(finalError);\n }\n } catch (e) {\n console.error(\"Validation exception:\", e);\n console.dir(e, { depth: null });\n throw e;\n }\n\n // Mutate data with defaults\n const defaults = getSchemaDefaults(schema as TObject | TArray);\n const finalObject = applyDefaultsDeep({}, data, defaults);\n\n return finalObject as Static<T>;\n}\n"],"mappings":"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","names":["schema"]}
@@ -1,11 +1,8 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
- import {
4
- typedRef
5
- } from "./chunk-A2QPY54H.js";
6
3
  import {
7
4
  StringEnum
8
- } from "./chunk-JK2FWFJU.js";
5
+ } from "./chunk-GDYCCB3B.js";
9
6
 
10
7
  // src/shared/bricks/props/color-preset.ts
11
8
  import { Type } from "@sinclair/typebox";
@@ -329,13 +326,15 @@ function colorPreset(options = {}) {
329
326
  color: StringEnum(Object.keys(colorPresets), {
330
327
  title: "Color preset",
331
328
  description: "Color preset to apply to background and text",
332
- enumNames: Object.keys(colorPresets).map((key) => colorPresets[key].label),
329
+ enumNames: Object.keys(colorPresets).map(
330
+ (key) => colorPresets[key].label
331
+ ),
333
332
  "ai:instructions": `Presets are predefined color combinations of background and text colors that can be applied to elements.
334
333
  The possible semantic colors are primary, secondary, accent, neutral, and base, each declined in various shades from 50 to 900. (except base which has only 100, 200, and 300).
335
334
  You can use gradients using color gradient variations (e.g. primary-gradient-100, secondary-gradient-200, etc.). In this case, you will also need to set the gradient direction.`,
336
335
  "ui:styleId": "presets:color",
337
336
  "ui:responsive": true,
338
- default: options.default?.color
337
+ default: options.default?.color ?? "none"
339
338
  }),
340
339
  gradientDirection: Type.Optional(gradientDirection(options))
341
340
  },
@@ -354,9 +353,6 @@ You can use gradients using color gradient variations (e.g. primary-gradient-100
354
353
  }
355
354
  );
356
355
  }
357
- function colorPresetRef(options = {}) {
358
- return typedRef("presets:color", options);
359
- }
360
356
  function gradientDirection(options = {}) {
361
357
  return StringEnum(
362
358
  [
@@ -388,7 +384,6 @@ function gradientDirection(options = {}) {
388
384
 
389
385
  export {
390
386
  colorPresets,
391
- colorPreset,
392
- colorPresetRef
387
+ colorPreset
393
388
  };
394
- //# sourceMappingURL=chunk-TFGGYU6Y.js.map
389
+ //# sourceMappingURL=chunk-IEMCCHM4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/props/color-preset.ts"],"sourcesContent":["import { type Static, type ObjectOptions, Type, type StringOptions, TObject } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\ntype ColorPresetOptions = ObjectOptions & {\n \"ui:presets\"?: Record<string, { className: string; label: string }>;\n \"ui:default-gradient-direction\"?: string;\n};\n\nexport const colorPresets = {\n \"primary-50\": {\n className: \"bg-primary-50 text-primary-50-content\",\n label: \"Primary 50\",\n },\n \"primary-100\": {\n className: \"bg-primary-100 text-primary-100-content\",\n label: \"Primary 100\",\n },\n \"primary-200\": {\n className: \"bg-primary-200 text-primary-200-content\",\n label: \"Primary 200\",\n },\n \"primary-300\": {\n className: \"bg-primary-300 text-primary-300-content\",\n label: \"Primary 300\",\n },\n \"primary-400\": {\n className: \"bg-primary-400 text-primary-400-content\",\n label: \"Primary 400\",\n },\n \"primary-500\": {\n className: \"bg-primary-500 text-primary-500-content\",\n label: \"Primary 500\",\n },\n \"primary-600\": {\n className: \"bg-primary-600 text-primary-600-content\",\n label: \"Primary 600\",\n },\n \"primary-700\": {\n className: \"bg-primary-700 text-primary-700-content\",\n label: \"Primary 700\",\n },\n \"primary-800\": {\n className: \"bg-primary-800 text-primary-800-content\",\n label: \"Primary 800\",\n },\n \"primary-900\": {\n className: \"bg-primary-900 text-primary-900-content\",\n label: \"Primary 900\",\n },\n \"secondary-50\": {\n className: \"bg-secondary-50 text-secondary-50-content\",\n label: \"Secondary 50\",\n },\n \"secondary-100\": {\n className: \"bg-secondary-100 text-secondary-100-content\",\n label: \"Secondary 100\",\n },\n \"secondary-200\": {\n className: \"bg-secondary-200 text-secondary-200-content\",\n label: \"Secondary 200\",\n },\n \"secondary-300\": {\n className: \"bg-secondary-300 text-secondary-300-content\",\n label: \"Secondary 300\",\n },\n \"secondary-400\": {\n className: \"bg-secondary-400 text-secondary-400-content\",\n label: \"Secondary 400\",\n },\n \"secondary-500\": {\n className: \"bg-secondary-500 text-secondary-500-content\",\n label: \"Secondary 500\",\n },\n \"secondary-600\": {\n className: \"bg-secondary-600 text-secondary-600-content\",\n label: \"Secondary 600\",\n },\n \"secondary-700\": {\n className: \"bg-secondary-700 text-secondary-700-content\",\n label: \"Secondary 700\",\n },\n \"secondary-800\": {\n className: \"bg-secondary-800 text-secondary-800-content\",\n label: \"Secondary 800\",\n },\n \"secondary-900\": {\n className: \"bg-secondary-900 text-secondary-900-content\",\n label: \"Secondary 900\",\n },\n \"accent-50\": {\n className: \"bg-accent-50 text-accent-50-content\",\n label: \"Accent 50\",\n },\n \"accent-100\": {\n className: \"bg-accent-100 text-accent-100-content\",\n label: \"Accent 100\",\n },\n \"accent-200\": {\n className: \"bg-accent-200 text-accent-200-content\",\n label: \"Accent 200\",\n },\n \"accent-300\": {\n className: \"bg-accent-300 text-accent-300-content\",\n label: \"Accent 300\",\n },\n \"accent-400\": {\n className: \"bg-accent-400 text-accent-400-content\",\n label: \"Accent 400\",\n },\n \"accent-500\": {\n className: \"bg-accent-500 text-accent-500-content\",\n label: \"Accent 500\",\n },\n \"accent-600\": {\n className: \"bg-accent-600 text-accent-600-content\",\n label: \"Accent 600\",\n },\n \"accent-700\": {\n className: \"bg-accent-700 text-accent-700-content\",\n label: \"Accent 700\",\n },\n \"accent-800\": {\n className: \"bg-accent-800 text-accent-800-content\",\n label: \"Accent 800\",\n },\n \"accent-900\": {\n className: \"bg-accent-900 text-accent-900-content\",\n label: \"Accent 900\",\n },\n \"neutral-50\": {\n className: \"bg-neutral-50 text-neutral-50-content\",\n label: \"Neutral 50\",\n },\n \"neutral-100\": {\n className: \"bg-neutral-100 text-neutral-100-content\",\n label: \"Neutral 100\",\n },\n \"neutral-200\": {\n className: \"bg-neutral-200 text-neutral-200-content\",\n label: \"Neutral 200\",\n },\n \"neutral-300\": {\n className: \"bg-neutral-300 text-neutral-300-content\",\n label: \"Neutral 300\",\n },\n \"neutral-400\": {\n className: \"bg-neutral-400 text-neutral-400-content\",\n label: \"Neutral 400\",\n },\n \"neutral-500\": {\n className: \"bg-neutral-500 text-neutral-500-content\",\n label: \"Neutral 500\",\n },\n \"neutral-600\": {\n className: \"bg-neutral-600 text-neutral-600-content\",\n label: \"Neutral 600\",\n },\n \"neutral-700\": {\n className: \"bg-neutral-700 text-neutral-700-content\",\n label: \"Neutral 700\",\n },\n \"neutral-800\": {\n className: \"bg-neutral-800 text-neutral-800-content\",\n label: \"Neutral 800\",\n },\n \"neutral-900\": {\n className: \"bg-neutral-900 text-neutral-900-content\",\n label: \"Neutral 900\",\n },\n \"base-100\": {\n className: \"bg-base-100 text-base-100-content\",\n label: \"Base 100\",\n },\n \"base-200\": {\n className: \"bg-base-200 text-base-200-content\",\n label: \"Base 200\",\n },\n \"base-300\": {\n className: \"bg-base-300 text-base-300-content\",\n label: \"Base 300\",\n },\n \"primary-gradient-100\": {\n className: \"from-primary-100 to-primary-200 text-primary-100-content\",\n label: \"Primary gradient 1\",\n },\n \"primary-gradient-200\": {\n className: \"from-primary-200 to-primary-300 text-primary-200-content\",\n label: \"Primary gradient 2\",\n },\n \"primary-gradient-300\": {\n className: \"from-primary-300 to-primary-400 text-primary-300-content\",\n label: \"Primary gradient 3\",\n },\n \"primary-gradient-400\": {\n className: \"from-primary-400 to-primary-500 text-primary-400-content\",\n label: \"Primary gradient 4\",\n },\n \"primary-gradient-500\": {\n className: \"from-primary-500 to-primary-600 text-primary-500-content\",\n label: \"Primary gradient 5\",\n },\n \"primary-gradient-600\": {\n className: \"from-primary-600 to-primary-700 text-primary-600-content\",\n label: \"Primary gradient 6\",\n },\n \"primary-gradient-700\": {\n className: \"from-primary-700 to-primary-800 text-primary-700-content\",\n label: \"Primary gradient 7\",\n },\n \"primary-gradient-800\": {\n className: \"from-primary-800 to-primary-900 text-primary-800-content\",\n label: \"Primary gradient 8\",\n },\n \"secondary-gradient-100\": {\n className: \"from-secondary-100 to-secondary-200 text-secondary-100-content\",\n label: \"Secondary gradient 1\",\n },\n \"secondary-gradient-200\": {\n className: \"from-secondary-200 to-secondary-300 text-secondary-200-content\",\n label: \"Secondary gradient 2\",\n },\n \"secondary-gradient-300\": {\n className: \"from-secondary-300 to-secondary-400 text-secondary-300-content\",\n label: \"Secondary gradient 3\",\n },\n \"secondary-gradient-400\": {\n className: \"from-secondary-400 to-secondary-500 text-secondary-400-content\",\n label: \"Secondary gradient 4\",\n },\n \"secondary-gradient-500\": {\n className: \"from-secondary-500 to-secondary-600 text-secondary-500-content\",\n label: \"Secondary gradient 5\",\n },\n \"secondary-gradient-600\": {\n className: \"from-secondary-600 to-secondary-700 text-secondary-600-content\",\n label: \"Secondary gradient 6\",\n },\n \"secondary-gradient-700\": {\n className: \"from-secondary-700 to-secondary-800 text-secondary-700-content\",\n label: \"Secondary gradient 7\",\n },\n \"secondary-gradient-800\": {\n className: \"from-secondary-800 to-secondary-900 text-secondary-800-content\",\n label: \"Secondary gradient 8\",\n },\n \"accent-gradient-100\": {\n className: \"from-accent-100 to-accent-200 text-accent-100-content\",\n label: \"Accent gradient 1\",\n },\n \"accent-gradient-200\": {\n className: \"from-accent-200 to-accent-300 text-accent-200-content\",\n label: \"Accent gradient 2\",\n },\n \"accent-gradient-300\": {\n className: \"from-accent-300 to-accent-400 text-accent-300-content\",\n label: \"Accent gradient 3\",\n },\n \"accent-gradient-400\": {\n className: \"from-accent-400 to-accent-500 text-accent-400-content\",\n label: \"Accent gradient 4\",\n },\n \"accent-gradient-500\": {\n className: \"from-accent-500 to-accent-600 text-accent-500-content\",\n label: \"Accent gradient 5\",\n },\n \"accent-gradient-600\": {\n className: \"from-accent-600 to-accent-700 text-accent-600-content\",\n label: \"Accent gradient 6\",\n },\n \"accent-gradient-700\": {\n className: \"from-accent-700 to-accent-800 text-accent-700-content\",\n label: \"Accent gradient 7\",\n },\n \"accent-gradient-800\": {\n className: \"from-accent-800 to-accent-900 text-accent-800-content\",\n label: \"Accent gradient 8\",\n },\n \"neutral-gradient-100\": {\n className: \"from-neutral-100 to-neutral-200 text-neutral-100-content\",\n label: \"Neutral gradient 1\",\n },\n \"neutral-gradient-200\": {\n className: \"from-neutral-200 to-neutral-300 text-neutral-200-content\",\n label: \"Neutral gradient 2\",\n },\n \"neutral-gradient-300\": {\n className: \"from-neutral-300 to-neutral-400 text-neutral-300-content\",\n label: \"Neutral gradient 3\",\n },\n \"neutral-gradient-400\": {\n className: \"from-neutral-400 to-neutral-500 text-neutral-400-content\",\n label: \"Neutral gradient 4\",\n },\n \"neutral-gradient-500\": {\n className: \"from-neutral-500 to-neutral-600 text-neutral-500-content\",\n label: \"Neutral gradient 5\",\n },\n \"neutral-gradient-600\": {\n className: \"from-neutral-600 to-neutral-700 text-neutral-600-content\",\n label: \"Neutral gradient 6\",\n },\n \"neutral-gradient-700\": {\n className: \"from-neutral-700 to-neutral-800 text-neutral-700-content\",\n label: \"Neutral gradient 7\",\n },\n \"neutral-gradient-800\": {\n className: \"from-neutral-800 to-neutral-900 text-neutral-800-content\",\n label: \"Neutral gradient 8\",\n },\n \"base-gradient-100\": {\n className: \"from-base-100 to-base-200 text-base-100-content\",\n label: \"Base gradient 1\",\n },\n \"base-gradient-200\": {\n className: \"from-base-200 to-base-300 text-base-200-content\",\n label: \"Base gradient 2\",\n },\n none: {\n className: \"\",\n label: \"None\",\n },\n} as const;\n\nexport type ColorPreset = keyof typeof colorPresets;\n\nexport function colorPreset(options: ColorPresetOptions = {}) {\n return Type.Object(\n {\n color: StringEnum(Object.keys(colorPresets) as Array<ColorPreset>, {\n title: \"Color preset\",\n description: \"Color preset to apply to background and text\",\n enumNames: Object.keys(colorPresets).map(\n (key) => colorPresets[key as keyof typeof colorPresets].label,\n ),\n \"ai:instructions\": `Presets are predefined color combinations of background and text colors that can be applied to elements.\nThe possible semantic colors are primary, secondary, accent, neutral, and base, each declined in various shades from 50 to 900. (except base which has only 100, 200, and 300).\nYou can use gradients using color gradient variations (e.g. primary-gradient-100, secondary-gradient-200, etc.). In this case, you will also need to set the gradient direction.`,\n \"ui:styleId\": \"presets:color\",\n \"ui:responsive\": true,\n default: options.default?.color ?? \"none\",\n }),\n gradientDirection: Type.Optional(gradientDirection(options)),\n },\n {\n \"ui:field\": \"color-preset\",\n // $id: \"presets:color\",\n title: \"Color preset\",\n \"ui:presets\": colorPresets,\n default: options.default,\n examples: [\n { color: \"primary-500\" },\n { color: \"secondary-500\" },\n { color: \"accent-800\", gradientDirection: \"bg-gradient-to-t\" },\n ],\n \"ui:default-gradient-direction\": options[\"ui:default-gradient-direction\"] ?? \"bg-gradient-to-br\",\n },\n );\n}\n\nexport type ColorPresetSettings = Static<ReturnType<typeof colorPreset>>;\n\nfunction gradientDirection(options: StringOptions = {}) {\n return StringEnum(\n [\n \"bg-gradient-to-t\",\n \"bg-gradient-to-r\",\n \"bg-gradient-to-b\",\n \"bg-gradient-to-l\",\n \"bg-gradient-to-tl\",\n \"bg-gradient-to-tr\",\n \"bg-gradient-to-br\",\n \"bg-gradient-to-bl\",\n ],\n {\n title: \"Gradient direction\",\n description: \"The direction of the gradient. Only applies when color preset is a gradient.\",\n enumNames: [\"Top\", \"Right\", \"Bottom\", \"Left\", \"Top left\", \"Top right\", \"Bottom right\", \"Bottom left\"],\n default: \"bg-gradient-to-br\",\n \"ui:responsive\": \"desktop\",\n \"ui:styleId\": \"styles:gradientDirection\",\n // metadata: {\n // filter: (manifestProps: TObject, formData: Static<BrickManifest[\"props\"]>) => {\n // return (formData[colorPropKey] as string)?.includes(\"gradient\") === true;\n // },\n // },\n ...options,\n },\n );\n}\n\nexport type GradientDirectionSettings = Static<ReturnType<typeof gradientDirection>>;\n"],"mappings":"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","names":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  getSchemaDefaults
5
- } from "./chunk-NT3IW52F.js";
5
+ } from "./chunk-HY7JOP3J.js";
6
6
 
7
7
  // src/shared/brick-manifest.ts
8
8
  function defineBrickManifest({
@@ -53,4 +53,4 @@ export {
53
53
  defineBrickManifest,
54
54
  getBrickManifestDefaults
55
55
  };
56
- //# sourceMappingURL=chunk-TB3X4LRQ.js.map
56
+ //# sourceMappingURL=chunk-J45LSQT6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/brick-manifest.ts"],"sourcesContent":["import type { TObject, TProperties } from \"@sinclair/typebox\";\nimport type { IconType } from \"react-icons/lib\";\nimport { getSchemaDefaults } from \"./utils/schema\";\n\nexport type BrickCategory = \"layout\" | \"basic\" | \"media\" | \"widgets\" | \"container\";\n\ntype BrickManifestProps<BProps extends TProperties> = {\n type: string;\n category?: BrickCategory;\n name: string;\n icon: IconType;\n iconClassName?: string;\n staticClasses?: string;\n description?: string;\n // Min width in pixels\n minWidth?: {\n mobile?: number;\n desktop?: number;\n };\n // Max width in pixels\n maxWidth?: {\n mobile?: number;\n desktop?: number;\n };\n // Min height in pixels\n minHeight?: {\n mobile?: number;\n desktop?: number;\n };\n // Max height in pixels\n maxHeight?: {\n mobile?: number;\n desktop?: number;\n };\n // default width can be in various css units, but should be a number\n defaultWidth?: {\n mobile?: string;\n desktop?: string;\n };\n defaultHeight?: {\n mobile?: string;\n desktop?: string;\n };\n props: TObject<BProps>;\n hideInLibrary?: boolean;\n\n isGlobalBrick?: boolean;\n /**\n * If true, the brick can consume multiple rows of data from a data source.\n * This is useful for bricks that display lists or collections of items.\n */\n consumesMultipleQueryRows?: boolean;\n defaultInspectorTab?: \"preset\" | \"style\" | \"content\";\n deletable?: boolean;\n movable?: boolean;\n resizable?: boolean | \"horizontal\" | \"vertical\";\n duplicatable?: boolean;\n /**\n * Some specific bricks like sidebar or header may not be draggable inline, as we want to place them manually in the layout.\n */\n inlineDragDisabled?: boolean;\n isContainer?: boolean;\n aiInstructions?: string;\n};\n\nexport function defineBrickManifest<BProps extends TProperties>({\n props,\n defaultHeight,\n defaultWidth,\n category = \"widgets\",\n isContainer = false,\n hideInLibrary = false,\n isGlobalBrick = false,\n deletable = true,\n movable = true,\n resizable = true,\n duplicatable = true,\n defaultInspectorTab = \"preset\",\n icon,\n ...rest\n}: BrickManifestProps<BProps>) {\n return {\n ...rest,\n icon,\n props,\n category,\n defaultInspectorTab,\n hideInLibrary,\n deletable,\n movable,\n resizable,\n duplicatable,\n isContainer,\n isGlobalBrick,\n defaultWidth: { mobile: defaultWidth?.mobile ?? \"auto\", desktop: defaultWidth?.desktop ?? \"auto\" },\n defaultHeight: {\n mobile: defaultHeight?.mobile ?? \"auto\",\n desktop: defaultHeight?.desktop ?? \"auto\",\n },\n } as const;\n}\n\nexport type BrickManifest = ReturnType<typeof defineBrickManifest>;\n\nexport function getBrickManifestDefaults<M extends BrickManifest>(manifest: M) {\n return {\n manifest,\n props: getSchemaDefaults(manifest.props),\n mobileProps: {},\n };\n}\n\nexport type BrickDefaults = ReturnType<typeof getBrickManifestDefaults>;\n\nexport type BrickConstraints = Pick<\n BrickManifest,\n \"defaultWidth\" | \"defaultHeight\" | \"minWidth\" | \"minHeight\" | \"maxWidth\" | \"resizable\" | \"movable\"\n>;\n"],"mappings":";;;;;;;AAiEO,SAAS,oBAAgD;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB;AAAA,EACA,GAAG;AACL,GAA+B;AAC7B,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc,EAAE,QAAQ,cAAc,UAAU,QAAQ,SAAS,cAAc,WAAW,OAAO;AAAA,IACjG,eAAe;AAAA,MACb,QAAQ,eAAe,UAAU;AAAA,MACjC,SAAS,eAAe,WAAW;AAAA,IACrC;AAAA,EACF;AACF;AAIO,SAAS,yBAAkD,UAAa;AAC7E,SAAO;AAAA,IACL;AAAA,IACA,OAAO,kBAAkB,SAAS,KAAK;AAAA,IACvC,aAAa,CAAC;AAAA,EAChB;AACF;","names":[]}
@@ -1,33 +1,30 @@
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-TB3X4LRQ.js";
4
+ border,
5
+ rounding
6
+ } from "./chunk-SRYBJ6NQ.js";
9
7
  import {
10
- loopRef
11
- } from "./chunk-BW6EFRSF.js";
8
+ defineProps
9
+ } from "./chunk-VTCHJT4O.js";
12
10
  import {
13
- fontSizeRef
14
- } from "./chunk-F22LDHEO.js";
11
+ fontSize
12
+ } from "./chunk-2U5U3CCJ.js";
15
13
  import {
16
- string
17
- } from "./chunk-UQF52PWK.js";
14
+ cssLength
15
+ } from "./chunk-OJ6KL7FU.js";
18
16
  import {
19
- borderRef,
20
- roundingRef
21
- } from "./chunk-NTLAKMMQ.js";
17
+ loop
18
+ } from "./chunk-XFZQGRRL.js";
22
19
  import {
23
- colorPresetRef
24
- } from "./chunk-TFGGYU6Y.js";
20
+ colorPreset
21
+ } from "./chunk-IEMCCHM4.js";
25
22
  import {
26
- cssLengthRef
27
- } from "./chunk-BPBKHEQ5.js";
23
+ defineBrickManifest
24
+ } from "./chunk-J45LSQT6.js";
28
25
  import {
29
26
  StringEnum
30
- } from "./chunk-JK2FWFJU.js";
27
+ } from "./chunk-GDYCCB3B.js";
31
28
 
32
29
  // src/shared/bricks/manifests/table.manifest.ts
33
30
  import { Type } from "@sinclair/typebox";
@@ -54,18 +51,20 @@ var manifest = defineBrickManifest({
54
51
  icon: RiTable2,
55
52
  props: defineProps({
56
53
  colorPreset: Type.Optional(
57
- colorPresetRef({
54
+ colorPreset({
58
55
  title: "Color"
59
56
  })
60
57
  ),
61
- loop: Type.Optional(loopRef()),
58
+ loop: Type.Optional(loop()),
62
59
  columns: Type.Array(
63
60
  Type.Object({
64
- header: string("Header", {
61
+ header: Type.String({
62
+ title: "Header",
65
63
  default: "Column Header",
66
64
  metadata: { category: "content" }
67
65
  }),
68
- field: string("Field", {
66
+ field: Type.String({
67
+ title: "Field",
69
68
  default: "fieldName",
70
69
  description: "The field name from the data source or static content",
71
70
  metadata: { category: "content" }
@@ -144,14 +143,14 @@ var manifest = defineBrickManifest({
144
143
  })
145
144
  ),
146
145
  fontSize: Type.Optional(
147
- fontSizeRef({
146
+ fontSize({
148
147
  title: "Font Size",
149
148
  description: "Text size for table content",
150
149
  default: "text-sm"
151
150
  })
152
151
  ),
153
152
  padding: Type.Optional(
154
- cssLengthRef({
153
+ cssLength({
155
154
  default: "1rem",
156
155
  description: "Padding inside table cells",
157
156
  title: "Cell Padding",
@@ -161,12 +160,12 @@ var manifest = defineBrickManifest({
161
160
  })
162
161
  ),
163
162
  rounding: Type.Optional(
164
- roundingRef({
163
+ rounding({
165
164
  default: "rounded-lg"
166
165
  })
167
166
  ),
168
167
  border: Type.Optional(
169
- borderRef({
168
+ border({
170
169
  default: { width: "border", color: "border-gray-200" }
171
170
  })
172
171
  )
@@ -459,4 +458,4 @@ export {
459
458
  manifest,
460
459
  examples
461
460
  };
462
- //# sourceMappingURL=chunk-WGDUJSSS.js.map
461
+ //# sourceMappingURL=chunk-JF52BBFD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/table.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { RiTable2 } from \"react-icons/ri\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { border, rounding } from \"../props/border\";\nimport { loop } from \"../props/dynamic\";\nimport { cssLength } from \"../props/css-length\";\nimport { fontSize } from \"../props/text\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"table\",\n name: \"Table\",\n category: \"widgets\",\n description: \"Displays data in a structured table format with customizable columns and rows.\",\n aiInstructions:\n \"Use this brick to display structured data like product listings, pricing tables, user lists, or any tabular data. Can consume dynamic data from queries or use static data. Each column can be customized for content type and alignment.\",\n consumesMultipleQueryRows: true,\n defaultInspectorTab: \"content\",\n isContainer: false,\n minHeight: {\n desktop: 200,\n },\n minWidth: {\n desktop: 400,\n },\n defaultWidth: {\n desktop: \"100%\",\n mobile: \"100%\",\n },\n icon: RiTable2,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color\",\n }),\n ),\n loop: Type.Optional(loop()),\n columns: Type.Array(\n Type.Object({\n header: Type.String({\n title: \"Header\",\n default: \"Column Header\",\n metadata: { category: \"content\" },\n }),\n field: Type.String({\n title: \"Field\",\n default: \"fieldName\",\n description: \"The field name from the data source or static content\",\n metadata: { category: \"content\" },\n }),\n width: Type.Optional(\n StringEnum([\"auto\", \"min\", \"1fr\", \"2fr\", \"3fr\"], {\n title: \"Width\",\n description: \"Column width behavior\",\n enumNames: [\"Auto\", \"Minimum\", \"1 fraction\", \"2 fractions\", \"3 fractions\"],\n default: \"auto\",\n }),\n ),\n align: Type.Optional(\n StringEnum([\"left\", \"center\", \"right\"], {\n title: \"Alignment\",\n description: \"Text alignment in this column\",\n enumNames: [\"Left\", \"Center\", \"Right\"],\n default: \"left\",\n }),\n ),\n type: Type.Optional(\n StringEnum([\"text\", \"image\", \"link\", \"currency\", \"date\"], {\n title: \"Content Type\",\n description: \"How to render the content in this column\",\n enumNames: [\"Text\", \"Image\", \"Link\", \"Currency\", \"Date\"],\n default: \"text\",\n }),\n ),\n }),\n {\n title: \"Columns\",\n default: [\n { header: \"Name\", field: \"name\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Email\", field: \"email\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Role\", field: \"role\", width: \"1fr\", align: \"left\", type: \"text\" },\n ],\n metadata: {\n category: \"content\",\n },\n },\n ),\n rows: Type.Optional(\n Type.Array(Type.Record(Type.String(), Type.Any()), {\n title: \"Static Data\",\n description: \"Static table data when not using dynamic queries\",\n default: [\n { name: \"John Doe\", email: \"john@example.com\", role: \"Manager\" },\n { name: \"Jane Smith\", email: \"jane@example.com\", role: \"Developer\" },\n { name: \"Mike Johnson\", email: \"mike@example.com\", role: \"Designer\" },\n ],\n metadata: {\n category: \"content\",\n consumeQuery: true,\n },\n }),\n ),\n showHeader: Type.Optional(\n Type.Boolean({\n title: \"Show Header\",\n description: \"Display the table header row\",\n default: true,\n }),\n ),\n striped: Type.Optional(\n Type.Boolean({\n title: \"Striped Rows\",\n description: \"Alternate row colors for better readability\",\n default: true,\n }),\n ),\n hover: Type.Optional(\n Type.Boolean({\n title: \"Hover Effect\",\n description: \"Highlight rows on hover\",\n default: true,\n }),\n ),\n fontSize: Type.Optional(\n fontSize({\n title: \"Font Size\",\n description: \"Text size for table content\",\n default: \"text-sm\",\n }),\n ),\n padding: Type.Optional(\n cssLength({\n default: \"1rem\",\n description: \"Padding inside table cells\",\n title: \"Cell Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n rounding({\n default: \"rounded-lg\",\n }),\n ),\n border: Type.Optional(\n border({\n default: { width: \"border\", color: \"border-gray-200\" },\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Team members table with basic information\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: true,\n hover: true,\n columns: [\n { header: \"Name\", field: \"name\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Email\", field: \"email\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Department\", field: \"department\", width: \"1fr\", align: \"left\", type: \"text\" },\n { header: \"Role\", field: \"role\", width: \"1fr\", align: \"left\", type: \"text\" },\n ],\n rows: [\n {\n name: \"Sarah Johnson\",\n email: \"sarah@company.com\",\n department: \"Engineering\",\n role: \"Senior Developer\",\n },\n { name: \"Mike Chen\", email: \"mike@company.com\", department: \"Design\", role: \"UX Designer\" },\n {\n name: \"Emily Rodriguez\",\n email: \"emily@company.com\",\n department: \"Marketing\",\n role: \"Content Manager\",\n },\n { name: \"David Park\", email: \"david@company.com\", department: \"Sales\", role: \"Account Executive\" },\n ],\n colorPreset: { color: \"neutral-50\" },\n fontSize: \"text-sm\",\n padding: \"0.75rem\",\n },\n },\n {\n description: \"Product pricing table with currency formatting\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: false,\n hover: true,\n columns: [\n { header: \"Product\", field: \"product\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Category\", field: \"category\", width: \"1fr\", align: \"center\", type: \"text\" },\n { header: \"Price\", field: \"price\", width: \"1fr\", align: \"right\", type: \"currency\" },\n { header: \"Stock\", field: \"stock\", width: \"1fr\", align: \"center\", type: \"text\" },\n ],\n rows: [\n { product: \"Wireless Headphones\", category: \"Audio\", price: \"299.99\", stock: \"In Stock\" },\n { product: \"Bluetooth Speaker\", category: \"Audio\", price: \"149.99\", stock: \"Low Stock\" },\n { product: \"Smartphone\", category: \"Mobile\", price: \"699.99\", stock: \"In Stock\" },\n { product: \"Laptop Stand\", category: \"Accessories\", price: \"79.99\", stock: \"Out of Stock\" },\n ],\n colorPreset: { color: \"primary-50\" },\n fontSize: \"text-base\",\n border: { width: \"border-2\", color: \"border-primary-300\" },\n rounding: \"rounded-xl\",\n },\n },\n {\n description: \"Event schedule table with dates and links\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: true,\n hover: false,\n columns: [\n { header: \"Event\", field: \"event\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Date\", field: \"date\", width: \"1fr\", align: \"center\", type: \"date\" },\n { header: \"Location\", field: \"location\", width: \"1fr\", align: \"center\", type: \"text\" },\n { header: \"Register\", field: \"link\", width: \"1fr\", align: \"center\", type: \"link\" },\n ],\n rows: [\n {\n event: \"Web Development Workshop\",\n date: \"2024-03-15\",\n location: \"Room A\",\n link: \"/events/workshop\",\n },\n { event: \"Design Thinking Seminar\", date: \"2024-03-22\", location: \"Room B\", link: \"/events/seminar\" },\n { event: \"Networking Event\", date: \"2024-03-29\", location: \"Main Hall\", link: \"/events/networking\" },\n ],\n colorPreset: { color: \"secondary-100\" },\n fontSize: \"text-sm\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Comparison table with centered alignment\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: false,\n hover: false,\n columns: [\n { header: \"Feature\", field: \"feature\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Basic\", field: \"basic\", width: \"1fr\", align: \"center\", type: \"text\" },\n { header: \"Pro\", field: \"pro\", width: \"1fr\", align: \"center\", type: \"text\" },\n { header: \"Enterprise\", field: \"enterprise\", width: \"1fr\", align: \"center\", type: \"text\" },\n ],\n rows: [\n { feature: \"Storage Space\", basic: \"10GB\", pro: \"100GB\", enterprise: \"Unlimited\" },\n { feature: \"Users\", basic: \"5\", pro: \"25\", enterprise: \"Unlimited\" },\n { feature: \"Support\", basic: \"Email\", pro: \"Priority\", enterprise: \"Dedicated\" },\n { feature: \"API Access\", basic: \"❌\", pro: \"✅\", enterprise: \"✅\" },\n ],\n colorPreset: { color: \"accent-50\" },\n border: { width: \"border\", color: \"border-accent-300\" },\n fontSize: \"text-base\",\n padding: \"1.25rem\",\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Simple data table without header\",\n type: \"table\",\n props: {\n showHeader: false,\n striped: true,\n hover: true,\n columns: [\n { header: \"\", field: \"label\", width: \"1fr\", align: \"left\", type: \"text\" },\n { header: \"\", field: \"value\", width: \"1fr\", align: \"right\", type: \"text\" },\n ],\n rows: [\n { label: \"Founded\", value: \"2010\" },\n { label: \"Employees\", value: \"250+\" },\n { label: \"Locations\", value: \"15 cities\" },\n { label: \"Revenue\", value: \"$50M+\" },\n ],\n colorPreset: { color: \"neutral-100\" },\n fontSize: \"text-sm\",\n padding: \"0.5rem\",\n border: { width: \"border-0\", color: \"\" },\n },\n },\n {\n description: \"Dynamic employee table using employees query\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: true,\n hover: true,\n columns: [\n { header: \"Full Name\", field: \"fullName\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Position\", field: \"position\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Department\", field: \"department\", width: \"1fr\", align: \"center\", type: \"text\" },\n { header: \"Start Date\", field: \"startDate\", width: \"1fr\", align: \"center\", type: \"date\" },\n ],\n rows: [\n {\n fullName: \"{{employees.fullName}}\",\n position: \"{{employees.position}}\",\n department: \"{{employees.department}}\",\n startDate: \"{{employees.startDate}}\",\n },\n ],\n loop: { over: \"employees\" },\n colorPreset: { color: \"primary-50\" },\n fontSize: \"text-sm\",\n padding: \"0.75rem\",\n },\n },\n {\n description: \"Product catalog using products query with pricing\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: false,\n hover: true,\n columns: [\n { header: \"Product\", field: \"name\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Category\", field: \"category\", width: \"1fr\", align: \"center\", type: \"text\" },\n { header: \"Price\", field: \"price\", width: \"1fr\", align: \"right\", type: \"currency\" },\n { header: \"Status\", field: \"status\", width: \"1fr\", align: \"center\", type: \"text\" },\n ],\n rows: [\n {\n name: \"{{products.name}}\",\n category: \"{{products.category}}\",\n price: \"{{products.price}}\",\n status: \"{{products.availability}}\",\n },\n ],\n loop: { over: \"products\" },\n colorPreset: { color: \"secondary-100\" },\n border: { width: \"border-2\", color: \"border-secondary-300\" },\n rounding: \"rounded-xl\",\n },\n },\n {\n description: \"Orders dashboard using orders query with links\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: true,\n hover: true,\n columns: [\n { header: \"Order ID\", field: \"orderId\", width: \"1fr\", align: \"left\", type: \"text\" },\n { header: \"Customer\", field: \"customerName\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Total\", field: \"total\", width: \"1fr\", align: \"right\", type: \"currency\" },\n { header: \"Status\", field: \"status\", width: \"1fr\", align: \"center\", type: \"text\" },\n { header: \"View\", field: \"viewLink\", width: \"1fr\", align: \"center\", type: \"link\" },\n ],\n rows: [\n {\n orderId: \"{{orders.id}}\",\n customerName: \"{{orders.customerName}}\",\n total: \"{{orders.total}}\",\n status: \"{{orders.status}}\",\n viewLink: \"/orders/{{orders.id}}\",\n },\n ],\n loop: { over: \"orders\" },\n colorPreset: { color: \"accent-50\" },\n fontSize: \"text-sm\",\n },\n },\n {\n description: \"Event attendees using attendees query\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: true,\n hover: false,\n columns: [\n { header: \"Name\", field: \"name\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Email\", field: \"email\", width: \"2fr\", align: \"left\", type: \"text\" },\n { header: \"Company\", field: \"company\", width: \"1fr\", align: \"left\", type: \"text\" },\n {\n header: \"Registration Date\",\n field: \"registrationDate\",\n width: \"1fr\",\n align: \"center\",\n type: \"date\",\n },\n ],\n rows: [\n {\n name: \"{{attendees.fullName}}\",\n email: \"{{attendees.email}}\",\n company: \"{{attendees.company}}\",\n registrationDate: \"{{attendees.registrationDate}}\",\n },\n ],\n loop: { over: \"attendees\" },\n colorPreset: { color: \"neutral-100\" },\n border: { width: \"border\", color: \"border-neutral-300\" },\n padding: \"1rem\",\n },\n },\n {\n description: \"Invoice items using invoiceItems query with detailed pricing\",\n type: \"table\",\n props: {\n showHeader: true,\n striped: false,\n hover: false,\n columns: [\n { header: \"Description\", field: \"description\", width: \"3fr\", align: \"left\", type: \"text\" },\n { header: \"Quantity\", field: \"quantity\", width: \"1fr\", align: \"center\", type: \"text\" },\n { header: \"Unit Price\", field: \"unitPrice\", width: \"1fr\", align: \"right\", type: \"currency\" },\n { header: \"Total\", field: \"total\", width: \"1fr\", align: \"right\", type: \"currency\" },\n ],\n rows: [\n {\n description: \"{{invoiceItems.description}}\",\n quantity: \"{{invoiceItems.quantity}}\",\n unitPrice: \"{{invoiceItems.unitPrice}}\",\n total: \"{{invoiceItems.lineTotal}}\",\n },\n ],\n loop: { over: \"invoiceItems\" },\n colorPreset: { color: \"primary-100\" },\n border: { width: \"border-2\", color: \"border-primary-400\" },\n fontSize: \"text-base\",\n padding: \"1rem\",\n rounding: \"rounded-lg\",\n },\n },\n];\n"],"mappings":"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","names":[]}