@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
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/attributes.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport type { JSONSchemaType } from \"ajv\";\nimport { getSchemaDefaults } from \"../shared/utils/schema\";\nimport { manifest as navbarManifest } from \"./bricks/manifests/navbar.manifest\";\nimport { manifest as footerManifest } from \"./bricks/manifests/footer.manifest\";\nimport { string } from \"./bricks/props/string\";\nimport { boolean } from \"./bricks/props/boolean\";\nimport { datetime } from \"./bricks/props/date\";\nimport { imageRef } from \"./bricks/props/image\";\nimport { colorPresetRef } from \"./bricks/props/color-preset\";\nimport { queryUseRef, type QueryUseSettings } from \"./bricks/props/dynamic\";\nimport { querySchema } from \"./datasources/types\";\nimport { StringEnum } from \"./utils/string-enum\";\nimport { backgroundRef } from \"./bricks/props/background\";\nimport { toLLMSchema } from \"./utils/llm\";\n\nexport type { JSONSchemaType };\n\n// Default attributes\nexport const pageAttributesSchema = Type.Object(\n {\n backgroundImage: Type.Optional(backgroundRef()),\n colorPreset: Type.Optional(\n colorPresetRef({\n examples: [\n { color: \"base-100\" },\n { color: \"primary-500\" },\n { color: \"accent-100\", gradientDirection: \"bg-gradient-to-r\" },\n ],\n }),\n ),\n tags: Type.Optional(\n Type.Array(string(\"Tag\"), {\n title: \"Tags\",\n description:\n \"Use tags to organize, group and filter pages in navigation elements and in the dashboard. By default, the navbar element display pages having the 'navbar' tag, while the sidebar displays the pages with the tag 'sidebar'.\",\n \"ui:field\": \"tags\",\n examples: [[\"navbar\", \"navbar\"], [\"navbar\", \"sidebar\"], [\"sidebar\"]],\n }),\n ),\n path: string(\"URL path\", {\n default: \"/\",\n description: \"The URL path of the page. Use placeholders like :id or :slug for dynamic paths.\",\n \"ai:instructions\": \"Never put language codes in the path.\",\n \"ui:field\": \"path\",\n pattern: \"^/[a-z0-9-:/]*$\",\n examples: [\"/\", \"/about\", \"/products/:id\"],\n }),\n queries: Type.Optional(\n Type.Array(queryUseRef(), {\n title: \"Page Queries\",\n description:\n \"List of queries to use in this page. All listed queries will be executed when the page loads.\",\n \"ai:instructions\": \"Reference Query IDs to use at the page level.\",\n \"ui:field\": \"page-queries\",\n maxItems: 5,\n }),\n ),\n title: string(\"Title\", {\n default: \"Untitled\",\n \"ui:group\": \"meta\",\n \"ui:group:title\": \"Meta tags\",\n description: \"The title of the page. Appears in the browser tab and search results\",\n \"ui:placeholder\": \"Page title\",\n }),\n description: string(\"Description\", {\n \"ui:widget\": \"textarea\",\n \"ui:group\": \"meta\",\n \"ui:group:title\": \"Meta tags\",\n description: \"A short description of the page. Used by search engines\",\n \"ui:multiline\": true,\n \"ui:textarea-class\": \"h-24\",\n default: \"\",\n \"ui:placeholder\": \"A brief description of the page\",\n }),\n keywords: string(\"Keywords\", {\n \"ui:group\": \"meta\",\n \"ui:group:title\": \"Meta tags\",\n description: \"Keywords related to the page. Used by search engines\",\n \"ui:multiline\": true,\n default: \"\",\n \"ui:placeholder\": \"keyword1, keyword2, keyword3\",\n }),\n\n ogImage: Type.Optional(\n imageRef({\n title: \"Social share image\",\n description: \"Image shown when this page is shared on social media\",\n \"ui:group\": \"meta\",\n \"ai:hidden\": true,\n \"ui:no-object-options\": true,\n \"ui:no-alt-text\": true,\n \"ui:show-img-search\": false,\n \"ui:no-dynamic\": true,\n \"ui:placeholder\": \"https://example.com/image.jpg\",\n }),\n ),\n robotsIndexing: Type.Optional(\n boolean(\"Allow search engines to index this page\", true, {\n description: \"Disabling this will prevent search engines from indexing this page\",\n \"ai:hidden\": true,\n \"ui:group\": \"meta\",\n }),\n ),\n language: Type.Optional(\n StringEnum(\n [\n \"ar\",\n \"zh\",\n \"cs\",\n \"nl\",\n \"en\",\n \"fr\",\n \"de\",\n \"he\",\n \"hi\",\n \"it\",\n \"ja\",\n \"ko\",\n \"fa\",\n \"pl\",\n \"pt\",\n \"ru\",\n \"es\",\n \"tr\",\n \"vi\",\n ],\n {\n \"ai:hidden\": true,\n \"ui:group\": \"meta\",\n title: \"Language\",\n default: \"en\",\n description:\n \"Overrides the site language for this page. Leave blank to use the site default language.\",\n enumNames: [\n \"Arabic\",\n \"Chinese\",\n \"Czech\",\n \"Dutch\",\n \"English\",\n \"French\",\n \"German\",\n \"Hebrew\",\n \"Hindi\",\n \"Italian\",\n \"Japanese\",\n \"Korean\",\n \"Persian\",\n \"Polish\",\n \"Portuguese\",\n \"Russian\",\n \"Spanish\",\n \"Turkish\",\n \"Vietnamese\",\n ],\n },\n ),\n ),\n additionalTags: Type.Optional(\n Type.Object(\n {\n headTags: Type.Optional(\n Type.String({\n title: \"Head script tags\",\n description:\n \"Add custom tags to the <head> of your site. Useful for analytics tags, custom scripts, etc.\",\n \"ai:instructions\": \"Don't include meta tags here, they are automatically generated.\",\n \"ui:multiline\": true,\n \"ui:textarea-class\": \"h-40 !font-mono\",\n \"ui:placeholder\": \"<script src='https://example.com/script.js'></script>\",\n \"ui:premium\": true,\n \"ui:textarea-font-size\": \"1\",\n \"ui:no-dynamic\": true,\n }),\n ),\n bodyTags: Type.Optional(\n Type.String({\n title: \"Body script tags\",\n description:\n \"Add custom tags to the <body> of your site. Useful for analytics tags, custom scripts, etc.\",\n \"ui:multiline\": true,\n \"ui:premium\": true,\n \"ui:textarea-class\": \"h-40 !font-mono\",\n \"ui:textarea-font-size\": \"1\",\n \"ui:placeholder\": \"<script src='https://example.com/script.js'></script>\",\n \"ui:no-dynamic\": true,\n }),\n ),\n },\n { \"ui:group\": \"meta\" },\n ),\n ),\n\n noNavbar: Type.Optional(boolean(\"Hide navbar\", false, { \"ui:group\": \"layout\" })),\n noFooter: Type.Optional(boolean(\"Hide footer\", false, { \"ui:group\": \"layout\" })),\n lastUpdated: Type.Optional(\n datetime(\"Last updated\", {\n \"ui:hidden\": true,\n \"ai:hidden\": true,\n }),\n ),\n },\n {\n \"ui:groups\": {\n meta: \"SEO & Meta tags\",\n layout: \"Layout\",\n },\n },\n);\n\nexport const pageQueriesSchema = Type.Array(queryUseRef(), {\n title: \"Page Queries\",\n description: `List of page queries in use in this page. All listed queries will be executed when the page loads. Aliases must be unique and camelCase'd.\nThe queryId must reference an existing site query ID.`,\n examples: [\n { queryId: \"get-latest-posts\", alias: \"latestPosts\" },\n {\n queryId: \"get-user-profile\",\n alias: \"userProfile\",\n params: [{ field: \"userId\", op: \"eq\", value: \":slug\" }],\n },\n {\n queryId: \"list-featured-products\",\n alias: \"featuredProducts\",\n },\n {\n queryId: \"get-event-by-slug\",\n alias: \"eventBySlug\",\n params: [{ field: \"$slug\", op: \"eq\", value: \":slug\" }],\n },\n ] satisfies QueryUseSettings[],\n});\n\nexport const siteAttributesSchema = Type.Object(\n {\n language: StringEnum(\n [\n \"ar\",\n \"zh\",\n \"cs\",\n \"nl\",\n \"en\",\n \"fr\",\n \"de\",\n \"he\",\n \"hi\",\n \"it\",\n \"ja\",\n \"ko\",\n \"fa\",\n \"pl\",\n \"pt\",\n \"ru\",\n \"es\",\n \"tr\",\n \"vi\",\n ],\n {\n title: \"Site language\",\n default: \"en\",\n enumNames: [\n \"Arabic\",\n \"Chinese\",\n \"Czech\",\n \"Dutch\",\n \"English\",\n \"French\",\n \"German\",\n \"Hebrew\",\n \"Hindi\",\n \"Italian\",\n \"Japanese\",\n \"Korean\",\n \"Persian\",\n \"Polish\",\n \"Portuguese\",\n \"Russian\",\n \"Spanish\",\n \"Turkish\",\n \"Vietnamese\",\n ],\n \"ai:instructions\":\n \"Choose a value based on the site description. If the site is in multiple languages, use 'en'.\",\n },\n ),\n backgroundImage: Type.Optional(backgroundRef()),\n colorPreset: Type.Optional(\n colorPresetRef({\n examples: [\n { color: \"base-100\" },\n { color: \"primary-500\" },\n { color: \"secondary-400\" },\n { color: \"neutral-400\" },\n { color: \"accent-200-gradient\", gradientDirection: \"bg-gradient-to-r\" },\n { color: \"neutral-800-gradient\", gradientDirection: \"bg-gradient-to-t\" },\n ],\n }),\n ),\n queries: Type.Optional(\n Type.Array(querySchema, {\n title: \"Site Queries\",\n \"ui:field\": \"site-queries\",\n description: \"List of all queries available in this site. These can be used in any page.\",\n \"ai:instructions\":\n \"This is where queries are first defined. They are then referenced in pages attributes (in the 'queries' field) to use them.\",\n }),\n ),\n navbar: Type.Optional(\n Type.Composite([navbarManifest.props], {\n title: \"Navbar\",\n \"ui:group\": \"navbar\",\n }),\n ),\n footer: Type.Optional(\n Type.Composite([footerManifest.props], {\n title: \"Footer\",\n \"ui:group\": \"footer\",\n // \"ui:hidden\": true, // Hidden in attributes panel. Users will have to click the brick to configure it, even if the configuration applies globally, so they have the same editing experience\n }),\n ),\n ogImage: Type.Optional(\n imageRef({\n title: \"Social share image\",\n description: \"Image shown when this site is shared on social media\",\n \"ai:hidden\": true,\n \"ui:group\": \"meta\",\n \"ui:no-object-options\": true,\n \"ui:no-alt-text\": true,\n \"ui:show-img-search\": false,\n \"ui:no-dynamic\": true,\n }),\n ),\n robotsIndexing: Type.Optional(\n boolean(\"Allow search engines to index this site\", true, {\n description: \"Disabling this will prevent search engines from indexing this site entirely\",\n \"ai:hidden\": true,\n \"ui:group\": \"meta\",\n }),\n ),\n headTags: Type.Optional(\n Type.String({\n title: \"Head script tags\",\n description:\n \"Add custom tags to the <head> of your site. Useful for analytics tags, custom scripts, etc.\",\n \"ai:hidden\": true,\n \"ui:multiline\": true,\n \"ui:textarea-class\": \"h-40 !font-mono\",\n \"ui:placeholder\": \"<script src='https://example.com/script.js'></script>\",\n \"ui:premium\": true,\n \"ui:textarea-font-size\": \"1\",\n \"ui:group\": \"external\",\n \"ui:no-dynamic\": true,\n }),\n ),\n bodyTags: Type.Optional(\n Type.String({\n title: \"Body script tags\",\n description:\n \"Add custom tags to the <body> of your site. Useful for analytics tags, custom scripts, etc.\",\n \"ai:hidden\": true,\n \"ui:multiline\": true,\n \"ui:premium\": true,\n \"ui:textarea-class\": \"h-40 !font-mono\",\n \"ui:textarea-font-size\": \"1\",\n \"ui:placeholder\": \"<script src='https://example.com/script.js'></script>\",\n \"ui:group\": \"external\",\n \"ui:no-dynamic\": true,\n }),\n ),\n },\n {\n \"ui:groups\": {\n meta: \"SEO & Meta tags\",\n layout: \"Layout\",\n navbar: \"Navbar\",\n footer: \"Footer\",\n external: \"External scripts\",\n },\n },\n);\n\nexport const siteAttributesNowQueriesSchema = Type.Omit(siteAttributesSchema, [\"queries\"]);\nexport const pageAttributesNoQueriesSchema = Type.Omit(pageAttributesSchema, [\"queries\"]);\nexport const siteQueriesSchema = Type.Array(querySchema);\nexport const siteQueriesSchemaLLM = toLLMSchema(siteQueriesSchema);\n\nexport type PageAttributes = Static<typeof pageAttributesSchema>;\nexport type SiteAttributes = Static<typeof siteAttributesSchema>;\n\nexport function resolvePageAttributes(data: Partial<PageAttributes> = {}) {\n const defaultAttrValues = getSchemaDefaults(pageAttributesSchema);\n return { ...defaultAttrValues, ...data } as PageAttributes;\n}\n\nexport function resolveSiteAttributes(data: Partial<SiteAttributes> = {}) {\n const defaultAttrValues = getSchemaDefaults(siteAttributesSchema);\n return { ...defaultAttrValues, ...data } as SiteAttributes;\n}\n"],"mappings":"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","names":["manifest"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/map.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { LiaMapMarkedAltSolid } from \"react-icons/lia\";\nimport { roundingRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { number } from \"../props/number\";\nimport { string } from \"../props/string\";\n\nexport const DEFAULTS = {\n lat: 48.8566, // Default latitude (Paris)\n lng: 2.3522, // Default longitude (Paris)\n zoom: 15, // Default zoom level\n};\n\nexport const manifest = defineBrickManifest({\n type: \"map\",\n name: \"Map\",\n description: \"A map element showing a location\",\n aiInstructions:\n \"This brick can be used to show a location on a map. Use the 'location' prop to set the coordinates and an optional tooltip.\",\n minWidth: {\n desktop: 280,\n mobile: 280,\n },\n minHeight: {\n desktop: 200,\n mobile: 120,\n },\n defaultHeight: {\n desktop: \"320px\",\n mobile: \"280px\",\n },\n defaultWidth: {\n desktop: \"380px\",\n mobile: \"100%\",\n },\n icon: LiaMapMarkedAltSolid,\n props: defineProps({\n // location: geolocation({ defaultZoom: DEFAULTS.zoom }),\n lat: string(\"Latitude\", { \"ui:field\": \"hidden\" }),\n lng: string(\"Longitude\", { \"ui:field\": \"hidden\" }),\n address: string(\"Address\", {\n \"ui:field\": \"geoaddress\",\n metadata: {\n category: \"content\",\n },\n }),\n tooltip: Type.Optional(\n string(\"Tooltip\", {\n metadata: {\n category: \"content\",\n },\n }),\n ),\n zoom: Type.Optional(\n number(\"Zoom\", {\n description: \"Zoom level for the map\",\n \"ui:instructions\": \"The zoom level should be between 0 (world view) and 21 (street view).\",\n \"ui:field\": \"slider\",\n minimum: 12,\n maximum: 18,\n default: DEFAULTS.zoom,\n metadata: {\n category: \"content\",\n },\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-xl\",\n }),\n ),\n shadow: Type.Optional(shadowRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Map showing a specific location\",\n type: \"map\",\n props: {\n lat: \"37.7749\",\n lng: \"-122.4194\",\n address: \"San Francisco, CA\",\n tooltip: \"San Francisco, CA\",\n shadow: \"shadow-md\",\n width: \"40%\",\n height: \"250px\",\n },\n },\n {\n description: \"Map with custom styles\",\n type: \"map\",\n props: {\n lat: \"40.7128\",\n lng: \"-74.0060\",\n address: \"New York, NY\",\n tooltip: \"New York, NY\",\n shadow: \"shadow-lg\",\n width: \"100%\",\n height: \"400px\",\n },\n },\n {\n description: \"Business location map with high zoom level and rounded corners\",\n type: \"map\",\n props: {\n lat: \"34.0522\",\n lng: \"-118.2437\",\n address: \"Los Angeles, CA\",\n tooltip: \"Our Los Angeles Office\",\n zoom: 18,\n rounding: \"rounded-2xl\",\n shadow: \"shadow-xl\",\n },\n },\n {\n description: \"Event venue map with medium zoom and subtle shadow\",\n type: \"map\",\n props: {\n lat: \"41.8781\",\n lng: \"-87.6298\",\n address: \"Chicago, IL\",\n tooltip: \"Conference Center - Chicago\",\n zoom: 16,\n rounding: \"rounded-lg\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Restaurant location with default zoom and sharp corners\",\n type: \"map\",\n props: {\n lat: \"25.7617\",\n lng: \"-80.1918\",\n address: \"Miami, FL\",\n tooltip: \"Oceanview Restaurant & Bar\",\n zoom: 15,\n rounding: \"rounded-none\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Hotel location with low zoom for area overview\",\n type: \"map\",\n props: {\n lat: \"36.1699\",\n lng: \"-115.1398\",\n address: \"Las Vegas, NV\",\n tooltip: \"Downtown Las Vegas Hotel\",\n zoom: 13,\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n {\n description: \"Store location with maximum zoom for street view detail\",\n type: \"map\",\n props: {\n lat: \"47.6062\",\n lng: \"-122.3321\",\n address: \"Seattle, WA\",\n tooltip: \"Seattle Flagship Store\",\n zoom: 18,\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Park location with moderate zoom and minimal styling\",\n type: \"map\",\n props: {\n lat: \"39.7392\",\n lng: \"-104.9903\",\n address: \"Denver, CO\",\n tooltip: \"City Park Recreation Area\",\n zoom: 14,\n rounding: \"rounded-sm\",\n },\n },\n {\n description: \"Dynamic business location using company query\",\n type: \"map\",\n props: {\n lat: \"{{company.latitude}}\",\n lng: \"{{company.longitude}}\",\n address: \"{{company.address}}\",\n tooltip: \"{{company.name}} - {{company.address}}\",\n zoom: 16,\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic event venue using event query\",\n type: \"map\",\n props: {\n lat: \"{{event.venueLatitude}}\",\n lng: \"{{event.venueLongitude}}\",\n address: \"{{event.venueAddress}}\",\n tooltip: \"{{event.title}} - {{event.venueName}}\",\n zoom: 17,\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/tags.ts"],"sourcesContent":["import { type Static, Type, type StringOptions } from \"@sinclair/typebox\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\nexport function tags(options?: StringOptions) {\n return Type.Array(\n Type.String({\n title: options?.title ?? \"Tags\",\n ...options,\n }),\n {\n // $id: \"content:tags\",\n \"ui:field\": \"tags\",\n title: options?.title ?? \"Tags\",\n metadata: {\n category: \"content\",\n },\n ...options,\n },\n );\n}\n\nexport type TagsSettings = Static<ReturnType<typeof tags>>;\n\nexport function tagsRef(options: StringOptions = {}) {\n return typedRef(\"content:tags\", { ...options });\n}\n"],"mappings":";;;;;;;AAAA,SAAsB,YAAgC;AAG/C,SAAS,KAAK,SAAyB;AAC5C,SAAO,KAAK;AAAA,IACV,KAAK,OAAO;AAAA,MACV,OAAO,SAAS,SAAS;AAAA,MACzB,GAAG;AAAA,IACL,CAAC;AAAA,IACD;AAAA;AAAA,MAEE,YAAY;AAAA,MACZ,OAAO,SAAS,SAAS;AAAA,MACzB,UAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,QAAQ,UAAyB,CAAC,GAAG;AACnD,SAAO,SAAS,gBAAgB,EAAE,GAAG,QAAQ,CAAC;AAChD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/spacer.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport type { BrickProps } from \"../props/types\";\nimport { CgSpaceBetween } from \"react-icons/cg\";\n\nexport const manifest = defineBrickManifest({\n type: \"spacer\",\n name: \"Spacer\",\n category: \"container\",\n description: \"A flexible element to create space between bricks.\",\n staticClasses: \"self-stretch\",\n minWidth: {\n desktop: 50,\n },\n defaultWidth: {\n mobile: \"auto\",\n desktop: \"50px\",\n },\n minHeight: {\n mobile: 30,\n },\n icon: CgSpaceBetween,\n props: defineProps({}),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Transparent spacer of 100px wide\",\n type: \"spacer\",\n props: {\n width: \"100px\",\n },\n },\n {\n description: \"Transparent spacer of 20px wide\",\n type: \"spacer\",\n props: {\n width: \"20px\",\n },\n },\n {\n description: \"Transparent spacer set in % (percentage)\",\n type: \"spacer\",\n props: {\n width: \"20%\",\n },\n },\n];\n"],"mappings":";;;;;;;;;;AAGA,SAAS,sBAAsB;AAExB,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AAAA,EACb,eAAe;AAAA,EACf,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,WAAW;AAAA,IACT,QAAQ;AAAA,EACV;AAAA,EACA,MAAM;AAAA,EACN,OAAO,YAAY,CAAC,CAAC;AACvB,CAAC;AAIM,IAAM,WAIP;AAAA,EACJ;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/form.manifest.ts"],"sourcesContent":["import { type Static, Type } from \"@sinclair/typebox\";\nimport { FaWpforms } from \"react-icons/fa6\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { datarecord } from \"../props/datarecord\";\nimport { defineProps, group } from \"../props/helpers\";\nimport { string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { fontSizeRef } from \"../props/text\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { directionRef } from \"../props/direction\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"form\",\n name: \"Form\",\n description: \"A form element.\",\n aiInstructions: `The form brick automatically renders form fields based on the datarecord id provided in the props.\nThere is no need to define the form fields manually and the form does not accept any children`,\n isContainer: false,\n icon: FaWpforms,\n minWidth: {\n desktop: 300,\n },\n props: defineProps({\n datarecordId: datarecord(\"Datarecord ID\", {\n description: \"The ID of the datarecord to use to generate the form fields. The datarecord must exist.\",\n \"ui:responsive\": \"desktop\",\n }),\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n default: \"base-200\",\n }),\n ),\n direction: Type.Optional(\n directionRef({\n title: \"Direction\",\n description: \"The direction of the form fields\",\n default: \"flex-col\",\n \"ui:responsive\": \"desktop\",\n \"ui:desktop-only\": true,\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"2rem\",\n description: \"Padding inside the form.\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef({})),\n fontSize: Type.Optional(fontSizeRef({ default: \"inherit\", \"ui:no-extra-large-sizes\": true })),\n button: group({\n title: \"Button\",\n children: {\n color: Type.Optional(\n StringEnum([\"btn-neutral\", \"btn-primary\", \"btn-secondary\", \"btn-accent\"], {\n enumNames: [\"Neutral\", \"Primary\", \"Secondary\", \"Accent\"],\n title: \"Color\",\n default: \"btn-primary\",\n }),\n ),\n size: Type.Optional(\n StringEnum([\"block\", \"wide\"], {\n title: \"Size\",\n description: \"Button sizes.\",\n enumNames: [\"Block\", \"Wide\"],\n default: \"block\",\n \"ui:responsive\": \"desktop\",\n }),\n ),\n position: Type.Optional(\n StringEnum([\"justify-start\", \"justify-center\", \"justify-end\"], {\n title: \"Button Position\",\n description: \"The position of the button in the form\",\n enumNames: [\"Left\", \"Center\", \"Right\"],\n default: \"justify-end\",\n \"ui:responsive\": \"desktop\",\n metadata: {\n filter: (manifestProps: Manifest[\"props\"], formData: Static<Manifest[\"props\"]>) => {\n return formData.button?.size !== \"wide\";\n },\n },\n }),\n ),\n rounding: Type.Optional(roundingRef({ default: \"rounded-md\" })),\n },\n }),\n\n title: Type.Optional(\n Type.String({\n title: \"Form title\",\n default: \"My form\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n intro: Type.Optional(\n Type.String({\n title: \"Intro\",\n description: \"The intro text of the form\",\n \"ui:multiline\": true,\n metadata: {\n category: \"content\",\n },\n }),\n ),\n buttonLabel: Type.Optional(\n string(\"Button Label\", {\n default: \"Submit\",\n metadata: { category: \"content\" },\n }),\n ),\n successMessage: Type.Optional(\n Type.String({\n title: \"Success Message\",\n description: \"The message to display when the form is successfully submitted\",\n default: \"Thank you for your submission!\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n errorMessage: Type.Optional(\n Type.String({\n title: \"Error Message\",\n description: \"The message to display when the form submission fails\",\n default: \"There was an error submitting the form. Please try again later.\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Basic contact form\",\n type: \"form\",\n props: {\n title: \"Contact Us\",\n intro: \"We'd love to hear from you. Send us a message and we'll respond as soon as possible.\",\n direction: \"flex-row\",\n datarecordId: \"contacts\",\n buttonLabel: \"Send Message\",\n button: {\n size: \"block\",\n },\n },\n },\n {\n description: \"User registration form with large button\",\n type: \"form\",\n props: {\n title: \"Create Account\",\n intro: \"Join our platform and start your journey today.\",\n direction: \"flex-row\",\n datarecordId: \"user-registration\",\n buttonLabel: \"Register\",\n button: {\n size: \"wide\",\n },\n },\n },\n {\n description: \"Newsletter subscription form (horizontal) with large padding\",\n type: \"form\",\n props: {\n title: \"Stay Updated\",\n intro: \"Subscribe to our newsletter for the latest updates and exclusive content.\",\n direction: \"flex-col\",\n datarecordId: \"newsletter-subscription\",\n padding: \"3rem\",\n buttonLabel: \"Subscribe\",\n button: {\n size: \"block\",\n },\n },\n },\n {\n description: \"Event registration form\",\n type: \"form\",\n props: {\n title: \"Conference Registration\",\n intro: \"Register for the Annual Tech Conference 2025. Early bird pricing ends soon!\",\n direction: \"flex-col\",\n datarecordId: \"event-registration\",\n buttonLabel: \"Register Now\",\n button: {\n size: \"block\",\n },\n },\n },\n {\n description: \"Job application form\",\n type: \"form\",\n props: {\n title: \"Apply for Position\",\n intro: \"We're excited to learn more about you! Please fill out this application form completely.\",\n direction: \"flex-col\",\n datarecordId: \"job-application\",\n buttonLabel: \"Submit Application\",\n button: {\n size: \"block\",\n },\n },\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAsB,YAAY;AAClC,SAAS,iBAAiB;AAanB,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,gBAAgB;AAAA;AAAA,EAEhB,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,OAAO,YAAY;AAAA,IACjB,cAAc,WAAW,iBAAiB;AAAA,MACxC,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB,CAAC;AAAA,IACD,aAAa,KAAK;AAAA,MAChB,eAAe;AAAA,QACb,OAAO;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,WAAW,KAAK;AAAA,MACd,aAAa;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,IACA,SAAS,KAAK;AAAA,MACZ,aAAa;AAAA,QACX,SAAS;AAAA,QACT,aAAa;AAAA,QACb,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,cAAc;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,IACA,UAAU,KAAK;AAAA,MACb,YAAY;AAAA,QACV,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC;AAAA,IACnC,UAAU,KAAK,SAAS,YAAY,EAAE,SAAS,WAAW,2BAA2B,KAAK,CAAC,CAAC;AAAA,IAC5F,QAAQ,MAAM;AAAA,MACZ,OAAO;AAAA,MACP,UAAU;AAAA,QACR,OAAO,KAAK;AAAA,UACV,WAAW,CAAC,eAAe,eAAe,iBAAiB,YAAY,GAAG;AAAA,YACxE,WAAW,CAAC,WAAW,WAAW,aAAa,QAAQ;AAAA,YACvD,OAAO;AAAA,YACP,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,QACA,MAAM,KAAK;AAAA,UACT,WAAW,CAAC,SAAS,MAAM,GAAG;AAAA,YAC5B,OAAO;AAAA,YACP,aAAa;AAAA,YACb,WAAW,CAAC,SAAS,MAAM;AAAA,YAC3B,SAAS;AAAA,YACT,iBAAiB;AAAA,UACnB,CAAC;AAAA,QACH;AAAA,QACA,UAAU,KAAK;AAAA,UACb,WAAW,CAAC,iBAAiB,kBAAkB,aAAa,GAAG;AAAA,YAC7D,OAAO;AAAA,YACP,aAAa;AAAA,YACb,WAAW,CAAC,QAAQ,UAAU,OAAO;AAAA,YACrC,SAAS;AAAA,YACT,iBAAiB;AAAA,YACjB,UAAU;AAAA,cACR,QAAQ,CAAC,eAAkC,aAAwC;AACjF,uBAAO,SAAS,QAAQ,SAAS;AAAA,cACnC;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,UAAU,KAAK,SAAS,YAAY,EAAE,SAAS,aAAa,CAAC,CAAC;AAAA,MAChE;AAAA,IACF,CAAC;AAAA,IAED,OAAO,KAAK;AAAA,MACV,KAAK,OAAO;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,QACT,UAAU;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,OAAO,KAAK;AAAA,MACV,KAAK,OAAO;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,QACb,gBAAgB;AAAA,QAChB,UAAU;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,aAAa,KAAK;AAAA,MAChB,OAAO,gBAAgB;AAAA,QACrB,SAAS;AAAA,QACT,UAAU,EAAE,UAAU,UAAU;AAAA,MAClC,CAAC;AAAA,IACH;AAAA,IACA,gBAAgB,KAAK;AAAA,MACnB,KAAK,OAAO;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,QACT,UAAU;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,cAAc,KAAK;AAAA,MACjB,KAAK,OAAO;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,QACT,UAAU;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAIM,IAAM,WAIP;AAAA,EACJ;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,cAAc;AAAA,MACd,aAAa;AAAA,MACb,QAAQ;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,cAAc;AAAA,MACd,aAAa;AAAA,MACb,QAAQ;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,cAAc;AAAA,MACd,SAAS;AAAA,MACT,aAAa;AAAA,MACb,QAAQ;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,cAAc;AAAA,MACd,aAAa;AAAA,MACb,QAAQ;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,cAAc;AAAA,MACd,aAAa;AAAA,MACb,QAAQ;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/datarecords/types.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { airtableOptions } from \"./external/airtable/types\";\nimport { genericWebhookOptions } from \"./external/generic-webhook/options\";\nimport { googleSheetsOptions } from \"./external/google/sheets/types\";\nimport { notionOptions } from \"./external/notion/types\";\n\nexport const connectorSchema = Type.Union([\n Type.Literal(\"airtable\"),\n Type.Literal(\"google-sheets\"),\n Type.Literal(\"notion\"),\n // Type.Literal(\"generic-webhook\"),\n // saved to Upstart platform\n Type.Literal(\"internal\"),\n]);\n\nexport type DatarecordConnector = Static<typeof connectorSchema>;\n\nconst internalDatarecord = Type.Object(\n {\n provider: Type.Literal(\"internal\"),\n // options: Type.Optional(Type.Any()),\n schema: Type.Any({\n title: \"Schema\",\n description:\n \"JSON Schema of the datarecord. Always of type 'object' and representing a row that will be saved in the database.\",\n examples: [\n {\n type: \"object\",\n properties: {\n firstname: { type: \"string\", title: \"Firstname\" },\n lastname: { type: \"string\", title: \"Lastname\" },\n email: { type: \"string\", format: \"email\", title: \"Email\" },\n },\n required: [\"email\"],\n title: \"Newsletter Subscription\",\n },\n ],\n }),\n indexes: Type.Array(\n Type.Object(\n {\n name: Type.String({ title: \"Index name\" }),\n fields: Type.Array(Type.String(), { title: \"Fields to index\" }),\n unique: Type.Optional(Type.Boolean({ title: \"Unique index\", default: false })),\n },\n {\n examples: [\n {\n name: \"unique_email_index\",\n fields: [\"email\"],\n unique: true,\n },\n {\n name: \"lastname_index\",\n fields: [\"lastname\"],\n },\n ],\n },\n ),\n {\n title: \"Indexes\",\n description:\n \"IMPORTANT: Indexes to create on the datarecord. use it to enforce uniqueness or improve query performance.\",\n },\n ),\n },\n {\n examples: [\n {\n provider: \"internal\",\n schema: {\n type: \"object\",\n properties: {\n firstname: { type: \"string\", title: \"Firstname\" },\n lastname: { type: \"string\", title: \"Lastname\" },\n email: { type: \"string\", format: \"email\", title: \"Email\" },\n },\n required: [\"email\"],\n title: \"Newsletter Subscription\",\n },\n indexes: [\n {\n name: \"email_index\",\n fields: [\"email\"],\n unique: true,\n },\n ],\n },\n ],\n },\n);\n\n// Schema commun à tous les datarecords\nconst commonDatarecordSchema = Type.Object({\n schema: Type.Any({\n title: \"Schema\",\n description:\n \"JSON Schema of the datarecord. Always of type 'object' and representing a row that will be saved.\",\n examples: [\n {\n type: \"object\",\n properties: {\n firstname: { type: \"string\", title: \"Firstname\" },\n lastname: { type: \"string\", title: \"Lastname\" },\n email: { type: \"string\", format: \"email\", title: \"Email\" },\n },\n required: [\"email\"],\n title: \"Newsletter Subscription\",\n },\n ],\n }),\n});\n\nexport const datarecordsConnectors = Type.Union([\n Type.Composite([\n Type.Object({\n provider: Type.Literal(\"airtable\"),\n options: airtableOptions,\n }),\n commonDatarecordSchema,\n ]),\n Type.Composite([\n Type.Object({\n provider: Type.Literal(\"google-sheets\"),\n options: googleSheetsOptions,\n }),\n commonDatarecordSchema,\n ]),\n Type.Composite([\n Type.Object({\n provider: Type.Literal(\"notion\"),\n options: notionOptions,\n }),\n commonDatarecordSchema,\n ]),\n // Type.Composite([\n // Type.Object({\n // provider: Type.Literal(\"generic-webhook\"),\n // options: genericWebhookOptions,\n // }),\n // commonDatarecordSchema,\n // ]),\n internalDatarecord,\n]);\n\nconst datarecordMetadata = Type.Object({\n id: Type.String({\n title: \"Datarecord ID\",\n comment: \"A unique identifier for the datarecord, e.g., 'newsletter_subscriptions'\",\n }),\n label: Type.String({\n title: \"Name of the datarecord\",\n comment: \"For example, 'Newsletter Subscriptions'\",\n }),\n description: Type.Optional(Type.String({ title: \"Description of the datarecord\" })),\n});\n\nconst datarecordManifest = Type.Composite([datarecordsConnectors, datarecordMetadata]);\n\nexport const internalDatarecordManifest = Type.Composite([datarecordMetadata, internalDatarecord]);\nexport type InternalDatarecord = Static<typeof internalDatarecordManifest>;\nexport type Datarecord = Static<typeof datarecordManifest>;\n\nexport const datarecordsList = Type.Array(datarecordManifest);\nexport type DatarecordsList = Static<typeof datarecordsList>;\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/background.ts"],"sourcesContent":["import { type SchemaOptions, Type, type Static } from \"@sinclair/typebox\";\nimport type { ElementColorType } from \"~/shared/themes/color-system\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\ntype BackgroundOptions = {\n title?: string;\n default?: {\n image?: string;\n size?: string;\n repeat?: string;\n };\n colorType?: ElementColorType;\n};\n\nexport function background(opts: BackgroundOptions = {}) {\n const { default: defValue, ...restOpts } = opts;\n return Type.Object(\n {\n image: Type.String({\n title: \"Image\",\n description: \"The background image. Can be a URL or a data URI\",\n format: \"image\",\n examples: [\"https://example.com/image.png\"],\n }),\n size: Type.Optional(\n StringEnum([\"auto\", \"cover\", \"contain\"], {\n enumNames: [\"Auto\", \"Cover\", \"Contain\"],\n default: defValue?.size ?? \"auto\",\n \"ai:instructions\": \"Only use this when the image is set.\",\n }),\n ),\n repeat: Type.Optional(\n StringEnum([\"no-repeat\", \"repeat\", \"repeat-x\", \"repeat-y\", \"space\", \"round\"], {\n enumNames: [\"No repeat\", \"Repeat\", \"Repeat horizontally\", \"Repeat vertically\", \"Space\", \"Round\"],\n default: defValue?.repeat ?? \"no-repeat\",\n \"ai:instructions\": \"Only use this when the image is set.\",\n }),\n ),\n },\n {\n // $id: \"styles:background\",\n \"ui:styleId\": \"styles:background\",\n \"ui:field\": \"background\",\n title: \"Background image\",\n // disable for now\n // \"ui:show-img-search\": true,\n default: defValue,\n ...restOpts,\n },\n );\n}\n\nexport type BackgroundSettings = Static<ReturnType<typeof background>>;\n\nexport function backgroundRef(options: SchemaOptions = {}) {\n return typedRef(\"styles:background\", options);\n}\n\nexport function backgroundColor(options: SchemaOptions = {}) {\n return Type.String({\n title: \"Background color\",\n // $id: \"styles:backgroundColor\",\n \"ai:instructions\":\n \"Can be set to transparent, hex/rgb/rgba color, or classes like `bg-<variant>-<shade>`, variants being primary, secondary, accent and neutral, and shades between 100 and 900. Use bg-<variant>-<shade> classes as much as possible.\",\n \"ui:field\": \"color\",\n \"ui:color-type\": \"background\",\n // \"ui:advanced\": true,\n \"ui:styleId\": \"styles:backgroundColor\",\n \"ui:responsive\": \"desktop\",\n ...options,\n });\n}\n\nexport type BackgroundColorSettings = Static<ReturnType<typeof backgroundColor>>;\n\nexport function backgroundColorRef(options: SchemaOptions = {}) {\n return typedRef(\"styles:backgroundColor\", options);\n}\n"],"mappings":";;;;;;;;;;AAAA,SAA6B,YAAyB;AAe/C,SAAS,WAAW,OAA0B,CAAC,GAAG;AACvD,QAAM,EAAE,SAAS,UAAU,GAAG,SAAS,IAAI;AAC3C,SAAO,KAAK;AAAA,IACV;AAAA,MACE,OAAO,KAAK,OAAO;AAAA,QACjB,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,UAAU,CAAC,+BAA+B;AAAA,MAC5C,CAAC;AAAA,MACD,MAAM,KAAK;AAAA,QACT,WAAW,CAAC,QAAQ,SAAS,SAAS,GAAG;AAAA,UACvC,WAAW,CAAC,QAAQ,SAAS,SAAS;AAAA,UACtC,SAAS,UAAU,QAAQ;AAAA,UAC3B,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,MACA,QAAQ,KAAK;AAAA,QACX,WAAW,CAAC,aAAa,UAAU,YAAY,YAAY,SAAS,OAAO,GAAG;AAAA,UAC5E,WAAW,CAAC,aAAa,UAAU,uBAAuB,qBAAqB,SAAS,OAAO;AAAA,UAC/F,SAAS,UAAU,UAAU;AAAA,UAC7B,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA;AAAA,MAEE,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,OAAO;AAAA;AAAA;AAAA,MAGP,SAAS;AAAA,MACT,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,cAAc,UAAyB,CAAC,GAAG;AACzD,SAAO,SAAS,qBAAqB,OAAO;AAC9C;AAEO,SAAS,gBAAgB,UAAyB,CAAC,GAAG;AAC3D,SAAO,KAAK,OAAO;AAAA,IACjB,OAAO;AAAA;AAAA,IAEP,mBACE;AAAA,IACF,YAAY;AAAA,IACZ,iBAAiB;AAAA;AAAA,IAEjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,GAAG;AAAA,EACL,CAAC;AACH;AAIO,SAAS,mBAAmB,UAAyB,CAAC,GAAG;AAC9D,SAAO,SAAS,0BAA0B,OAAO;AACnD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/color.ts"],"sourcesContent":["import { type SchemaOptions, type Static, type StringOptions, type TObject, Type } from \"@sinclair/typebox\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\nexport function color(defaultValue?: string, title = \"Text color\") {\n return Type.String({\n title,\n // $id: \"styles:color\",\n \"ai:instructions\":\n \"hex/rgb/rgba color or classes like `text-<variant>-<shade>`, variants being `primary`, `secondary`, `accent` and `neutral`, and shades between 50 and 900\",\n default: defaultValue,\n \"ui:styleId\": \"styles:color\",\n \"ui:field\": \"color\",\n \"ui:color-type\": \"text\",\n });\n}\n\nexport type ColorSettings = Static<ReturnType<typeof color>>;\n\nexport function colorRef(options: SchemaOptions = {}) {\n return typedRef(\"styles:color\", { ...options, \"ui:styleId\": \"styles:color\" });\n}\n\nexport function borderColor(defaultValue?: string, title = \"Border color\") {\n return Type.String({\n title,\n // $id: \"styles:borderColor\",\n \"ai:instructions\":\n \"hex/rgb/rgba color or classes like `border-<variant>-<shade>`, variants being `primary`, `secondary`, `accent` and `neutral`, and shades between 50 and 900\",\n default: defaultValue,\n \"ui:styleId\": \"styles:borderColor\",\n \"ui:field\": \"color\",\n \"ui:color-type\": \"border\",\n });\n}\n\nexport type BorderColorSettings = Static<ReturnType<typeof borderColor>>;\n\nexport function borderColorRef(options: SchemaOptions = {}) {\n return typedRef(\"styles:borderColor\", { ...options, \"ui:styleId\": \"styles:borderColor\" });\n}\n"],"mappings":";;;;;;;AAAA,SAA4E,YAAY;AAGjF,SAAS,MAAM,cAAuB,QAAQ,cAAc;AACjE,SAAO,KAAK,OAAO;AAAA,IACjB;AAAA;AAAA,IAEA,mBACE;AAAA,IACF,SAAS;AAAA,IACT,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,iBAAiB;AAAA,EACnB,CAAC;AACH;AAIO,SAAS,SAAS,UAAyB,CAAC,GAAG;AACpD,SAAO,SAAS,gBAAgB,EAAE,GAAG,SAAS,cAAc,eAAe,CAAC;AAC9E;AAEO,SAAS,YAAY,cAAuB,QAAQ,gBAAgB;AACzE,SAAO,KAAK,OAAO;AAAA,IACjB;AAAA;AAAA,IAEA,mBACE;AAAA,IACF,SAAS;AAAA,IACT,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,iBAAiB;AAAA,EACnB,CAAC;AACH;AAIO,SAAS,eAAe,UAAyB,CAAC,GAAG;AAC1D,SAAO,SAAS,sBAAsB,EAAE,GAAG,SAAS,cAAc,qBAAqB,CAAC;AAC1F;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/social-links.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TiSocialFlickr } from \"react-icons/ti\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { iconRef, string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { fontSizeRef } from \"../props/text\";\nimport { directionRef } from \"../props/direction\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"social-links\",\n name: \"Social links\",\n description: \"A list of social media links\",\n icon: TiSocialFlickr,\n defaultWidth: {\n mobile: \"100%\",\n },\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n links: Type.Array(\n Type.Object({\n icon: Type.Optional(\n iconRef({\n \"ui:default-icon-collection\": \"cib\",\n }),\n ),\n label: Type.Optional(string(\"Label\")),\n href: string(\"Link\"),\n }),\n {\n title: \"Social Links\",\n description: \"List of social media links\",\n default: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n \"ui:widget\": \"array\",\n \"ui:displayField\": \"label\",\n \"ui:options\": {\n orderable: true, // Enable drag & drop reordering\n removable: true, // Enable delete button\n addable: true, // Enable add button\n },\n metadata: {\n category: \"content\",\n },\n },\n ),\n direction: Type.Optional(\n directionRef({\n default: \"flex-row\",\n }),\n ),\n fontSize: Type.Optional(fontSizeRef()),\n padding: Type.Optional(\n cssLengthRef({\n default: \"2rem\",\n description: \"Padding.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n iconOnly: Type.Optional(\n Type.Boolean({\n title: \"Only icons\",\n description: \"If set, the brick will only display the icons without labels.\",\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Social icons displayed horizontally, without labels\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed vertically, without labels\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed horizontally, with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed vertically, with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n ],\n },\n },\n {\n description: \"Professional social links with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://linkedin.com/in/johndoe\",\n label: \"Connect on LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n {\n href: \"https://github.com/johndoe\",\n label: \"View GitHub Profile\",\n icon: \"mdi:github\",\n },\n {\n href: \"https://twitter.com/johndoe\",\n label: \"Follow on Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"mailto:john@example.com\",\n label: \"Send Email\",\n icon: \"mdi:email\",\n },\n ],\n },\n },\n {\n description: \"Creative portfolio social links (icon-only inline)\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"https://dribbble.com/designer\",\n label: \"Dribbble\",\n icon: \"mdi:dribbble\",\n },\n {\n href: \"https://behance.net/designer\",\n label: \"Behance\",\n icon: \"mdi:behance\",\n },\n {\n href: \"https://instagram.com/designer\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://pinterest.com/designer\",\n label: \"Pinterest\",\n icon: \"mdi:pinterest\",\n },\n {\n href: \"https://youtube.com/designer\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n ],\n },\n },\n {\n description: \"Developer/tech social links with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://github.com/developer\",\n label: \"GitHub\",\n icon: \"mdi:github\",\n },\n {\n href: \"https://stackoverflow.com/users/developer\",\n label: \"Stack Overflow\",\n icon: \"mdi:stack-overflow\",\n },\n {\n href: \"https://dev.to/developer\",\n label: \"Dev.to\",\n icon: \"mdi:dev-to\",\n },\n {\n href: \"https://codepen.io/developer\",\n label: \"CodePen\",\n icon: \"mdi:codepen\",\n },\n ],\n },\n },\n {\n description: \"Music artist social platforms (block layout)\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://spotify.com/artist/musician\",\n label: \"Listen on Spotify\",\n icon: \"mdi:spotify\",\n },\n {\n href: \"https://music.apple.com/artist/musician\",\n label: \"Apple Music\",\n icon: \"mdi:apple\",\n },\n {\n href: \"https://soundcloud.com/musician\",\n label: \"SoundCloud\",\n icon: \"mdi:soundcloud\",\n },\n {\n href: \"https://youtube.com/musician\",\n label: \"YouTube Channel\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://bandcamp.com/musician\",\n label: \"Bandcamp\",\n icon: \"mdi:bandcamp\",\n },\n ],\n },\n },\n {\n description: \"Business contact icons only\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"tel:+1234567890\",\n label: \"Phone\",\n icon: \"mdi:phone\",\n },\n {\n href: \"mailto:contact@business.com\",\n label: \"Email\",\n icon: \"mdi:email\",\n },\n {\n href: \"https://maps.google.com/business\",\n label: \"Location\",\n icon: \"mdi:map-marker\",\n },\n {\n href: \"https://business.com\",\n label: \"Website\",\n icon: \"mdi:web\",\n },\n ],\n },\n },\n {\n description: \"Gaming content creator links (inline with labels)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://twitch.tv/gamer\",\n label: \"Twitch\",\n icon: \"mdi:twitch\",\n },\n {\n href: \"https://youtube.com/gamer\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://discord.gg/gamer\",\n label: \"Discord\",\n icon: \"mdi:discord\",\n },\n {\n href: \"https://tiktok.com/@gamer\",\n label: \"TikTok\",\n icon: \"mdi:tiktok\",\n },\n ],\n },\n },\n {\n description: \"Restaurant social presence (block layout)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/restaurant\",\n label: \"Follow us on Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://instagram.com/restaurant\",\n label: \"See photos on Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://yelp.com/restaurant\",\n label: \"Review us on Yelp\",\n icon: \"mdi:yelp\",\n },\n {\n href: \"https://tripadvisor.com/restaurant\",\n label: \"TripAdvisor Reviews\",\n icon: \"mdi:tripadvisor\",\n },\n {\n href: \"tel:+1234567890\",\n label: \"Call for Reservations\",\n icon: \"mdi:phone\",\n },\n ],\n },\n },\n {\n description: \"Minimal footer social icons\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-row\",\n links: [\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n {\n href: \"mailto:hello@company.com\",\n label: \"Email\",\n icon: \"mdi:email\",\n },\n ],\n },\n },\n {\n description: \"E-commerce store social channels (inline with labels)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-row\",\n links: [\n {\n href: \"https://facebook.com/store\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://instagram.com/store\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://pinterest.com/store\",\n label: \"Pinterest\",\n icon: \"mdi:pinterest\",\n },\n {\n href: \"https://youtube.com/store\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://tiktok.com/@store\",\n label: \"TikTok\",\n icon: \"mdi:tiktok\",\n },\n ],\n },\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,sBAAsB;AAWxB,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,cAAc;AAAA,IACZ,QAAQ;AAAA,EACV;AAAA,EACA,OAAO,YAAY;AAAA,IACjB,aAAa,KAAK;AAAA,MAChB,eAAe;AAAA,QACb,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,OAAO,KAAK;AAAA,MACV,KAAK,OAAO;AAAA,QACV,MAAM,KAAK;AAAA,UACT,QAAQ;AAAA,YACN,8BAA8B;AAAA,UAChC,CAAC;AAAA,QACH;AAAA,QACA,OAAO,KAAK,SAAS,OAAO,OAAO,CAAC;AAAA,QACpC,MAAM,OAAO,MAAM;AAAA,MACrB,CAAC;AAAA,MACD;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM;AAAA,UACR;AAAA,QACF;AAAA,QACA,aAAa;AAAA,QACb,mBAAmB;AAAA,QACnB,cAAc;AAAA,UACZ,WAAW;AAAA;AAAA,UACX,WAAW;AAAA;AAAA,UACX,SAAS;AAAA;AAAA,QACX;AAAA,QACA,UAAU;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,IACA,WAAW,KAAK;AAAA,MACd,aAAa;AAAA,QACX,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,UAAU,KAAK,SAAS,YAAY,CAAC;AAAA,IACrC,SAAS,KAAK;AAAA,MACZ,aAAa;AAAA,QACX,SAAS;AAAA,QACT,aAAa;AAAA,QACb,mBAAmB;AAAA,QACnB,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,cAAc;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,IACA,UAAU,KAAK;AAAA,MACb,YAAY;AAAA,QACV,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,KAAK,SAAS,UAAU,CAAC;AAAA,IACjC,UAAU,KAAK;AAAA,MACb,KAAK,QAAQ;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAIM,IAAM,WAIP;AAAA,EACJ;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/brick-manifest.ts"],"sourcesContent":["import type { TObject, TProperties, TArray } from \"@sinclair/typebox\";\nimport type { IconBase, IconType } from \"react-icons/lib\";\nimport { getSchemaDefaults } from \"./utils/schema\";\nimport type { ReactNode } from \"react\";\n\nexport type BrickCategory = \"layout\" | \"basic\" | \"media\" | \"widgets\" | \"container\";\n\ntype BrickManifestProps<BProps extends TProperties, DSSchema extends TObject | TArray<TObject>> = {\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, DSSchema extends TObject | TArray<TObject>>({\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, DSSchema>) {\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":";;;;;;;AAkEO,SAAS,oBAA4F;AAAA,EAC1G;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,GAAyC;AACvC,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 +0,0 @@
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\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\ntype ColorPresetOptions = ObjectOptions & {\n \"ui:presets\"?: Record<string, { className: string; label: string }>;\n \"ui:default-gradient-direction\"?: string;\n};\n\nexport const colorPresets: NonNullable<ColorPresetOptions[\"ui:presets\"]> = {\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};\n\nexport function colorPreset(options: ColorPresetOptions = {}) {\n return Type.Object(\n {\n color: StringEnum(Object.keys(colorPresets), {\n title: \"Color preset\",\n description: \"Color preset to apply to background and text\",\n enumNames: Object.keys(colorPresets).map((key) => colorPresets[key].label),\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,\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\nexport function colorPresetRef(options: ColorPresetOptions = {}) {\n return typedRef(\"presets:color\", options);\n}\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":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/effects.ts"],"sourcesContent":["import { type SchemaOptions, Type, type Static } from \"@sinclair/typebox\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\nimport { StringEnum, type StringEnumOptions } from \"~/shared/utils/string-enum\";\n\nexport function shadow(options: StringEnumOptions = {}) {\n return StringEnum([\"shadow-none\", \"shadow-sm\", \"shadow-md\", \"shadow-lg\", \"shadow-xl\", \"shadow-2xl\"], {\n // $id: \"styles:shadow\",\n title: \"Shadow\",\n description: \"Box shadow around the brick\",\n enumNames: [\"None\", \"Small\", \"Medium\", \"Large\", \"XL\", \"2XL\"],\n \"ui:placeholder\": \"Not specified\",\n \"ui:field\": \"enum\",\n \"ui:display\": \"select\",\n \"ui:responsive\": \"desktop\",\n \"ui:styleId\": \"styles:shadow\",\n ...options,\n });\n}\n\nexport type ShadowSettings = Static<ReturnType<typeof shadow>>;\n\nexport function shadowRef(options: StringEnumOptions = {}) {\n return typedRef(\"styles:shadow\", options);\n}\n\n/**\n * This function is used in ajv and type ref translations, but should not be used directly in bricks\n */\nexport function textShadow(options: StringEnumOptions = {}) {\n return StringEnum(\n [\"text-shadow-none\", \"text-shadow-sm\", \"text-shadow-md\", \"text-shadow-lg\", \"text-shadow-xl\"],\n {\n // $id: \"styles:textShadow\",\n title: \"Text shadow\",\n enumNames: [\"None\", \"S\", \"M\", \"L\", \"XL\"],\n \"ui:display\": \"button-group\",\n \"ui:placeholder\": \"Not specified\",\n \"ui:field\": \"enum\",\n \"ui:styleId\": \"styles:textShadow\",\n examples: [\"text-shadow-sm\", \"text-shadow-md\", \"text-shadow-lg\"],\n ...options,\n },\n );\n}\n\nexport function textShadowRef(options: SchemaOptions = {}) {\n return typedRef(\"styles:textShadow\", options);\n}\n\nexport type TextShadowSettings = Static<ReturnType<typeof textShadow>>;\n\ntype OpacityOptions = {\n title?: string;\n defaultValue?: number;\n};\n\nexport function opacity({ defaultValue = 1, title = \"Opacity\" }: OpacityOptions = {}) {\n return Type.Number({\n title,\n minimum: 0.1,\n maximum: 1,\n default: defaultValue,\n multipleOf: 0.1,\n \"ui:field\": \"slider\",\n \"ui:unit\": \"%\",\n \"ui:multiplier\": 100,\n examples: [0.5, 0.75, 1],\n });\n}\n\nexport type OpacitySettings = Static<ReturnType<typeof opacity>>;\n"],"mappings":";;;;;;;;;;AAAA,SAA6B,YAAyB;AAI/C,SAAS,OAAO,UAA6B,CAAC,GAAG;AACtD,SAAO,WAAW,CAAC,eAAe,aAAa,aAAa,aAAa,aAAa,YAAY,GAAG;AAAA;AAAA,IAEnG,OAAO;AAAA,IACP,aAAa;AAAA,IACb,WAAW,CAAC,QAAQ,SAAS,UAAU,SAAS,MAAM,KAAK;AAAA,IAC3D,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,GAAG;AAAA,EACL,CAAC;AACH;AAIO,SAAS,UAAU,UAA6B,CAAC,GAAG;AACzD,SAAO,SAAS,iBAAiB,OAAO;AAC1C;AAKO,SAAS,WAAW,UAA6B,CAAC,GAAG;AAC1D,SAAO;AAAA,IACL,CAAC,oBAAoB,kBAAkB,kBAAkB,kBAAkB,gBAAgB;AAAA,IAC3F;AAAA;AAAA,MAEE,OAAO;AAAA,MACP,WAAW,CAAC,QAAQ,KAAK,KAAK,KAAK,IAAI;AAAA,MACvC,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU,CAAC,kBAAkB,kBAAkB,gBAAgB;AAAA,MAC/D,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAEO,SAAS,cAAc,UAAyB,CAAC,GAAG;AACzD,SAAO,SAAS,qBAAqB,OAAO;AAC9C;AASO,SAAS,QAAQ,EAAE,eAAe,GAAG,QAAQ,UAAU,IAAoB,CAAC,GAAG;AACpF,SAAO,KAAK,OAAO;AAAA,IACjB;AAAA,IACA,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,UAAU,CAAC,KAAK,MAAM,CAAC;AAAA,EACzB,CAAC;AACH;","names":[]}
@@ -1 +0,0 @@
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 { colorPresetRef } from \"../props/color-preset\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport { BsListCheck } from \"react-icons/bs\";\nimport { loopRef } from \"../props/dynamic\";\nimport type { BrickProps } from \"../props/types\";\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 Type.Union([Type.Literal(\"completed\"), Type.Literal(\"current\"), Type.Literal(\"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 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 Type.Union([Type.Literal(\"left\"), Type.Literal(\"right\"), Type.Literal(\"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 colorPresetRef({\n title: \"Connector Color\",\n description: \"Color of the timeline connector line\",\n }),\n ),\n\n // Timeline item styling\n itemSpacing: Type.Optional(\n cssLengthRef({\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\n iconSize: Type.Optional(\n Type.Union([Type.Literal(\"sm\"), Type.Literal(\"md\"), Type.Literal(\"lg\")], {\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 Type.Union([Type.Literal(\"top\"), Type.Literal(\"bottom\"), Type.Literal(\"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 colorPresetRef({\n title: \"Color Preset\",\n description: \"Color theme for the timeline\",\n }),\n ),\n\n padding: Type.Optional(\n cssLengthRef({\n title: \"Padding\",\n description: \"Internal padding for the timeline container\",\n }),\n ),\n\n border: Type.Optional(\n borderRef({\n title: \"Border\",\n description: \"Border styling for the timeline container\",\n }),\n ),\n\n shadow: Type.Optional(\n shadowRef({\n title: \"Shadow\",\n description: \"Shadow effect for the timeline container\",\n }),\n ),\n\n rounding: Type.Optional(\n roundingRef({\n title: \"Rounding\",\n description: \"Corner rounding for the timeline container\",\n }),\n ),\n\n // Content loop support\n loop: Type.Optional(loopRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Basic 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: \"blue-500\" },\n connectorColor: { color: \"blue-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: \"green-500\" },\n border: { width: \"border\", color: \"gray-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: \"purple-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: \"purple-300\" },\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/string.ts"],"sourcesContent":["import { type Static, Type, type StringOptions } from \"@sinclair/typebox\";\nimport type { FieldMetadata } from \"./types\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\ntype StrFieldOptions = StringOptions &\n FieldMetadata & {\n \"ui:multiline\"?: boolean;\n };\n\nexport function string(title: string, options: StrFieldOptions = {}) {\n return Type.String({ title, ...options });\n}\n\nexport function url(title = \"URL\", defaultValue?: string) {\n return Type.String({\n title,\n format: \"url\",\n \"ui:field\": \"url\",\n default: defaultValue,\n });\n}\n\nconst pageIdSchema = Type.String({\n \"ui:field\": \"page-id\",\n});\n\nexport function urlOrPageId(title = \"URL\", defaultValue?: string) {\n return Type.Union(\n [\n Type.String({\n format: \"url\",\n }),\n pageIdSchema,\n ],\n {\n // $id: \"content:urlOrPageId\",\n default: defaultValue,\n title,\n metadata: {\n category: \"content\",\n },\n \"ui:field\": \"url-page-id\",\n \"ai:instructions\":\n \"This field can be a URL or a page ID. Use the page ID when linking to a internal page, and a URL for external links.\",\n },\n );\n}\n\nexport type UrlOrPageIdSettings = Static<ReturnType<typeof urlOrPageId>>;\n\nexport function urlOrPageIdRef(options: StrFieldOptions = {}) {\n return typedRef(\"content:urlOrPageId\", { ...options });\n}\n\ntype IconOptions = StrFieldOptions & { \"ui:default-icon-collection\"?: string };\n\nexport function icon(title?: string, options: IconOptions = {}) {\n return Type.String({\n title: title ?? \"Icon\",\n \"ai:instructions\": \"Use a iconify reference like 'mdi:heart' or 'fa-solid:coffee'.\",\n \"ui:field\": \"iconify\",\n // $id: \"assets:icon\",\n metadata: {\n category: \"content\",\n },\n ...options,\n });\n}\n\nexport function iconRef(options: IconOptions = {}) {\n return typedRef(\"assets:icon\", options);\n}\n"],"mappings":";;;;;;;AAAA,SAAsB,YAAgC;AAS/C,SAAS,OAAO,OAAe,UAA2B,CAAC,GAAG;AACnE,SAAO,KAAK,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;AAC1C;AAEO,SAAS,IAAI,QAAQ,OAAO,cAAuB;AACxD,SAAO,KAAK,OAAO;AAAA,IACjB;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,EACX,CAAC;AACH;AAEA,IAAM,eAAe,KAAK,OAAO;AAAA,EAC/B,YAAY;AACd,CAAC;AAEM,SAAS,YAAY,QAAQ,OAAO,cAAuB;AAChE,SAAO,KAAK;AAAA,IACV;AAAA,MACE,KAAK,OAAO;AAAA,QACV,QAAQ;AAAA,MACV,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA;AAAA;AAAA,MAEE,SAAS;AAAA,MACT;AAAA,MACA,UAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,MACZ,mBACE;AAAA,IACJ;AAAA,EACF;AACF;AAIO,SAAS,eAAe,UAA2B,CAAC,GAAG;AAC5D,SAAO,SAAS,uBAAuB,EAAE,GAAG,QAAQ,CAAC;AACvD;AAIO,SAAS,KAAK,OAAgB,UAAuB,CAAC,GAAG;AAC9D,SAAO,KAAK,OAAO;AAAA,IACjB,OAAO,SAAS;AAAA,IAChB,mBAAmB;AAAA,IACnB,YAAY;AAAA;AAAA,IAEZ,UAAU;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,QAAQ,UAAuB,CAAC,GAAG;AACjD,SAAO,SAAS,eAAe,OAAO;AACxC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/manifests/text.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { textContentRef } from \"../props/text\";\nimport { defineProps } from \"../props/helpers\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { RxTextAlignLeft } from \"react-icons/rx\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { alignItemsRef } from \"../props/align\";\nimport { shadowRef } from \"../props/effects\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"text\",\n category: \"basic\",\n name: \"Text\",\n description: \"Text with formatting options\",\n aiInstructions: `Text \"content\" can contain minimal HTML tags like <strong>, <em>, <br> and <a> as well as <h1>, <h2>, <h3>, <h4>, <p> and <span> and lists.\nOnly 'align' is supported as an inline style, so don't use other inline styles like 'font-size' or 'color' in the content prop.\nYou may simply omit the \"colorPreset\" property so that the brick will inherit the default color from its parent container.\n`,\n defaultWidth: {\n mobile: \"100%\",\n },\n defaultHeight: {\n desktop: \"auto\",\n mobile: \"auto\",\n },\n staticClasses: \"prose lg:prose-lg\",\n icon: RxTextAlignLeft,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n content: textContentRef({\n title: \"Content\",\n // metadata: {\n // category: \"content\",\n // },\n }),\n verticalAlign: Type.Optional(\n alignItemsRef({\n default: \"items-center\",\n title: \"Align\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"2rem\",\n description: \"Padding inside the text.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n shadow: Type.Optional(shadowRef()),\n loop: Type.Optional(loopRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Welcome paragraph with emphasis and padding\",\n type: \"text\",\n props: {\n content:\n \"Welcome to our platform! We're <strong>excited</strong> to have you here. Our mission is to <em>transform</em> the way you work with cutting-edge technology and <a href='/features'>innovative features</a>.\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Feature list with HTML formatting and smaller padding\",\n type: \"text\",\n props: {\n content:\n \"<h3>Key Features</h3><ul><li><strong>Advanced Analytics</strong> - Real-time data insights</li><li><strong>Cloud Integration</strong> - Seamless connectivity</li><li><strong>24/7 Support</strong> - Always here to help</li></ul>\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Quote block with text styling but no background\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'><em>\\\"Innovation distinguishes between a leader and a follower.\\\"</em><br><strong>- Steve Jobs</strong></p>\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Simple heading with subtle background\",\n type: \"text\",\n props: {\n content:\n \"<h2>About Our Company</h2><p>We've been serving customers since 2010, building trust through quality products and exceptional service.</p>\",\n colorPreset: {\n color: \"primary-100\",\n },\n },\n },\n {\n description: \"Team introduction with formatting, no background color\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'><strong>Meet Our Team</strong></p><p>Our diverse team of experts brings together decades of experience in technology, design, and business strategy. We're passionate about <em>creating solutions</em> that make a real difference.</p><p><a href='/team'>Learn more about our team</a> and the values that drive us forward.</p>\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Maintenance notice with neutral background and border\",\n type: \"text\",\n props: {\n content:\n \"<p>Scheduled maintenance will occur on <em>Sunday, March 15th</em> from 2:00 AM to 6:00 AM UTC.</p><p>During this time, some features may be temporarily unavailable. We apologize for any inconvenience.</p>\",\n padding: \"1rem\",\n colorPreset: {\n color: \"neutral-700\",\n },\n border: {\n width: \"border\",\n color: \"border-neutral-400\",\n },\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Minimal text with no padding or background\",\n type: \"text\",\n props: {\n content: \"This is some minimal text.\",\n padding: \"0rem\",\n },\n },\n {\n description: \"Call-to-action text with secondary background and shadow\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='text-align: center'>Ready to Get Started?</h3><p style='text-align: center'>Join thousands of satisfied customers who trust our platform. <strong>Sign up today</strong> and experience the difference!</p><p style='text-align: center'><a href='/signup'>Create Your Free Account</a></p>\",\n colorPreset: {\n color: \"secondary-200\",\n },\n padding: \"2.5rem\",\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n verticalAlign: \"items-center\",\n },\n },\n {\n description: \"Technical documentation with accent colors and code-like formatting\",\n type: \"text\",\n props: {\n content:\n \"<h4>API Authentication</h4><p>To authenticate your requests, include your API key in the header:</p><p><strong>Authorization: Bearer YOUR_API_KEY</strong></p><p>All API endpoints require authentication. You can find your API key in the <a href='/dashboard'>dashboard settings</a>.</p>\",\n colorPreset: {\n color: \"accent-100\",\n },\n padding: \"1.5rem\",\n rounding: \"rounded-md\",\n border: {\n width: \"border-4\",\n color: \"border-accent-500\",\n },\n },\n },\n {\n description: \"Success message with primary background and top alignment\",\n type: \"text\",\n props: {\n content:\n \"<h3>✅ Payment Successful!</h3><p>Thank you for your purchase. Your order <strong>#12345</strong> has been confirmed.</p><p>You will receive an email confirmation shortly at your registered email address.</p>\",\n colorPreset: {\n color: \"primary-200\",\n },\n padding: \"2rem\",\n rounding: \"rounded-lg\",\n shadow: \"shadow-sm\",\n verticalAlign: \"items-start\",\n },\n },\n {\n description: \"Footer information with neutral dark theme and multiple links\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'>© 2024 Company Name. All rights reserved.</p><p style='text-align: center'><a href='/privacy'>Privacy Policy</a> | <a href='/terms'>Terms of Service</a> | <a href='/contact'>Contact Us</a></p><p style='text-align: center'><em>Follow us on social media for the latest updates</em></p>\",\n colorPreset: {\n color: \"neutral-800\",\n },\n padding: \"1.5rem\",\n verticalAlign: \"items-end\",\n },\n },\n {\n description: \"Product description with large padding and rounded corners\",\n type: \"text\",\n props: {\n content:\n \"<h2>Premium Wireless Headphones</h2><p>Experience <strong>crystal-clear audio</strong> with our latest wireless headphones featuring:</p><ul><li>Active noise cancellation</li><li>30-hour battery life</li><li>Premium leather comfort</li><li>Hi-res audio certification</li></ul><p>Perfect for <em>music lovers</em> and <em>professionals</em> alike.</p>\",\n padding: \"3rem\",\n rounding: \"rounded-2xl\",\n shadow: \"shadow-lg\",\n border: {\n width: \"border\",\n color: \"border-neutral-300\",\n },\n },\n },\n {\n description: \"Emergency alert with accent background and extra bold formatting\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='text-align: center'>⚠️ URGENT NOTICE</h3><p style='text-align: center'><strong>System maintenance is currently in progress.</strong></p><p style='text-align: center'>Some services may be <em>temporarily unavailable</em>. We expect full restoration by 4:00 PM EST.</p><p style='text-align: center'>For urgent support, please <a href='/emergency-contact'>contact our emergency line</a>.</p>\",\n colorPreset: {\n color: \"accent-400\",\n },\n padding: \"2rem\",\n rounding: \"rounded-md\",\n border: {\n width: \"border-2\",\n color: \"border-accent-600\",\n },\n shadow: \"shadow-xl\",\n verticalAlign: \"items-center\",\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/image.ts"],"sourcesContent":["import { type SchemaOptions, Type, type Static, type ObjectOptions } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\ntype PropImageOptions = {\n defaultImageUrl?: string;\n showImgSearch?: boolean;\n noObjectOptions?: boolean;\n} & ObjectOptions;\n\nexport function image(title = \"Image\", options: PropImageOptions = {}) {\n const { defaultImageUrl, showImgSearch = false, noObjectOptions = false } = options;\n const schema = Type.Object(\n {\n src: Type.String({\n default: defaultImageUrl,\n title,\n description: \"Image URL. Can be a link to an image or a data URI\",\n }),\n alt: Type.Optional(\n Type.String({\n title: \"Alternate Text\",\n description: \"Alternative text for the image. Recommended for screen readers and SEO\",\n \"ui:placeholder\": \"Your image description\",\n }),\n ),\n fit: Type.Optional(\n StringEnum([\"object-none\", \"object-contain\", \"object-cover\", \"object-fill\", \"object-scale-down\"], {\n enumNames: [\"None\", \"Contain\", \"Cover\", \"Fill\", \"Scale down\"],\n title: \"Fit\",\n description: \"How the image should be resized to fit its container\",\n default: \"object-cover\",\n \"ui:field\": \"enum\",\n \"ui:styleId\": \"styles:objectFit\",\n }),\n ),\n position: Type.Optional(\n StringEnum(\n [\n \"object-top\",\n \"object-center\",\n \"object-bottom\",\n \"object-left\",\n \"object-right\",\n \"object-top-left\",\n \"object-top-right\",\n \"object-bottom-left\",\n \"object-bottom-right\",\n ],\n {\n enumNames: [\n \"Top\",\n \"Center\",\n \"Bottom\",\n \"Left\",\n \"Right\",\n \"Top left\",\n \"Top right\",\n \"Bottom left\",\n \"Bottom right\",\n ],\n \"ui:styleId\": \"styles:objectPosition\",\n title: \"Position\",\n description: \"The position of the image inside its container\",\n \"ui:field\": \"enum\",\n },\n ),\n ),\n },\n {\n // $id: \"assets:image\",\n title,\n \"ui:field\": \"image\",\n \"ui:accept\": \"image/*\",\n \"ui:show-img-search\": showImgSearch,\n \"ui:no-object-options\": noObjectOptions,\n default: {\n alt: \"Image\",\n fit: \"object-cover\",\n position: \"object-center\",\n },\n // \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n },\n ...options,\n },\n );\n return schema;\n}\n\nexport function imageRef(options: PropImageOptions & SchemaOptions = {}) {\n return typedRef(\"assets:image\", options);\n}\n\nexport type ImageProps = Static<ReturnType<typeof image>>;\n"],"mappings":";;;;;;;;;;AAAA,SAA6B,YAA6C;AAUnE,SAAS,MAAM,QAAQ,SAAS,UAA4B,CAAC,GAAG;AACrE,QAAM,EAAE,iBAAiB,gBAAgB,OAAO,kBAAkB,MAAM,IAAI;AAC5E,QAAM,SAAS,KAAK;AAAA,IAClB;AAAA,MACE,KAAK,KAAK,OAAO;AAAA,QACf,SAAS;AAAA,QACT;AAAA,QACA,aAAa;AAAA,MACf,CAAC;AAAA,MACD,KAAK,KAAK;AAAA,QACR,KAAK,OAAO;AAAA,UACV,OAAO;AAAA,UACP,aAAa;AAAA,UACb,kBAAkB;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,MACA,KAAK,KAAK;AAAA,QACR,WAAW,CAAC,eAAe,kBAAkB,gBAAgB,eAAe,mBAAmB,GAAG;AAAA,UAChG,WAAW,CAAC,QAAQ,WAAW,SAAS,QAAQ,YAAY;AAAA,UAC5D,OAAO;AAAA,UACP,aAAa;AAAA,UACb,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,cAAc;AAAA,QAChB,CAAC;AAAA,MACH;AAAA,MACA,UAAU,KAAK;AAAA,QACb;AAAA,UACE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA;AAAA,YACE,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,cAAc;AAAA,YACd,OAAO;AAAA,YACP,aAAa;AAAA,YACb,YAAY;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA;AAAA,MAEE;AAAA,MACA,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,sBAAsB;AAAA,MACtB,wBAAwB;AAAA,MACxB,SAAS;AAAA,QACP,KAAK;AAAA,QACL,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA;AAAA,MAEA,UAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,SAAS,UAA4C,CAAC,GAAG;AACvE,SAAO,SAAS,gBAAgB,OAAO;AACzC;","names":[]}
@@ -1 +0,0 @@
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 { string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { loopRef } from \"../props/dynamic\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { fontSizeRef } from \"../props/text\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\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 colorPresetRef({\n title: \"Color\",\n }),\n ),\n loop: Type.Optional(loopRef()),\n columns: Type.Array(\n Type.Object({\n header: string(\"Header\", {\n default: \"Column Header\",\n metadata: { category: \"content\" },\n }),\n field: string(\"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 fontSizeRef({\n title: \"Font Size\",\n description: \"Text size for table content\",\n default: \"text-sm\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\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 roundingRef({\n default: \"rounded-lg\",\n }),\n ),\n border: Type.Optional(\n borderRef({\n default: { width: \"border\", color: \"border-gray-200\" },\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,gBAAgB;AAYlB,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AAAA,EACb,gBACE;AAAA,EACF,2BAA2B;AAAA,EAC3B,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,WAAW;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,cAAc;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,EACV;AAAA,EACA,MAAM;AAAA,EACN,OAAO,YAAY;AAAA,IACjB,aAAa,KAAK;AAAA,MAChB,eAAe;AAAA,QACb,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,MAAM,KAAK,SAAS,QAAQ,CAAC;AAAA,IAC7B,SAAS,KAAK;AAAA,MACZ,KAAK,OAAO;AAAA,QACV,QAAQ,OAAO,UAAU;AAAA,UACvB,SAAS;AAAA,UACT,UAAU,EAAE,UAAU,UAAU;AAAA,QAClC,CAAC;AAAA,QACD,OAAO,OAAO,SAAS;AAAA,UACrB,SAAS;AAAA,UACT,aAAa;AAAA,UACb,UAAU,EAAE,UAAU,UAAU;AAAA,QAClC,CAAC;AAAA,QACD,OAAO,KAAK;AAAA,UACV,WAAW,CAAC,QAAQ,OAAO,OAAO,OAAO,KAAK,GAAG;AAAA,YAC/C,OAAO;AAAA,YACP,aAAa;AAAA,YACb,WAAW,CAAC,QAAQ,WAAW,cAAc,eAAe,aAAa;AAAA,YACzE,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,QACA,OAAO,KAAK;AAAA,UACV,WAAW,CAAC,QAAQ,UAAU,OAAO,GAAG;AAAA,YACtC,OAAO;AAAA,YACP,aAAa;AAAA,YACb,WAAW,CAAC,QAAQ,UAAU,OAAO;AAAA,YACrC,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,QACA,MAAM,KAAK;AAAA,UACT,WAAW,CAAC,QAAQ,SAAS,QAAQ,YAAY,MAAM,GAAG;AAAA,YACxD,OAAO;AAAA,YACP,aAAa;AAAA,YACb,WAAW,CAAC,QAAQ,SAAS,QAAQ,YAAY,MAAM;AAAA,YACvD,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,MACD;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,QAAQ,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,UAC3E,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,UAC7E,EAAE,QAAQ,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QAC7E;AAAA,QACA,UAAU;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM,KAAK;AAAA,MACT,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG;AAAA,QACjD,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,UACP,EAAE,MAAM,YAAY,OAAO,oBAAoB,MAAM,UAAU;AAAA,UAC/D,EAAE,MAAM,cAAc,OAAO,oBAAoB,MAAM,YAAY;AAAA,UACnE,EAAE,MAAM,gBAAgB,OAAO,oBAAoB,MAAM,WAAW;AAAA,QACtE;AAAA,QACA,UAAU;AAAA,UACR,UAAU;AAAA,UACV,cAAc;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,YAAY,KAAK;AAAA,MACf,KAAK,QAAQ;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,SAAS,KAAK;AAAA,MACZ,KAAK,QAAQ;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,OAAO,KAAK;AAAA,MACV,KAAK,QAAQ;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,UAAU,KAAK;AAAA,MACb,YAAY;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,SAAS,KAAK;AAAA,MACZ,aAAa;AAAA,QACX,SAAS;AAAA,QACT,aAAa;AAAA,QACb,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,cAAc;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,IACA,UAAU,KAAK;AAAA,MACb,YAAY;AAAA,QACV,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,KAAK;AAAA,MACX,UAAU;AAAA,QACR,SAAS,EAAE,OAAO,UAAU,OAAO,kBAAkB;AAAA,MACvD,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAIM,IAAM,WAIP;AAAA,EACJ;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QAC3E,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QAC7E,EAAE,QAAQ,cAAc,OAAO,cAAc,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACvF,EAAE,QAAQ,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,MAC7E;AAAA,MACA,MAAM;AAAA,QACJ;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,MAAM;AAAA,QACR;AAAA,QACA,EAAE,MAAM,aAAa,OAAO,oBAAoB,YAAY,UAAU,MAAM,cAAc;AAAA,QAC1F;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,MAAM;AAAA,QACR;AAAA,QACA,EAAE,MAAM,cAAc,OAAO,qBAAqB,YAAY,SAAS,MAAM,oBAAoB;AAAA,MACnG;AAAA,MACA,aAAa,EAAE,OAAO,aAAa;AAAA,MACnC,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,WAAW,OAAO,WAAW,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACjF,EAAE,QAAQ,YAAY,OAAO,YAAY,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QACrF,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,SAAS,MAAM,WAAW;AAAA,QAClF,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,MACjF;AAAA,MACA,MAAM;AAAA,QACJ,EAAE,SAAS,uBAAuB,UAAU,SAAS,OAAO,UAAU,OAAO,WAAW;AAAA,QACxF,EAAE,SAAS,qBAAqB,UAAU,SAAS,OAAO,UAAU,OAAO,YAAY;AAAA,QACvF,EAAE,SAAS,cAAc,UAAU,UAAU,OAAO,UAAU,OAAO,WAAW;AAAA,QAChF,EAAE,SAAS,gBAAgB,UAAU,eAAe,OAAO,SAAS,OAAO,eAAe;AAAA,MAC5F;AAAA,MACA,aAAa,EAAE,OAAO,aAAa;AAAA,MACnC,UAAU;AAAA,MACV,QAAQ,EAAE,OAAO,YAAY,OAAO,qBAAqB;AAAA,MACzD,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QAC7E,EAAE,QAAQ,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QAC7E,EAAE,QAAQ,YAAY,OAAO,YAAY,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QACrF,EAAE,QAAQ,YAAY,OAAO,QAAQ,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,MACnF;AAAA,MACA,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,UACV,MAAM;AAAA,QACR;AAAA,QACA,EAAE,OAAO,2BAA2B,MAAM,cAAc,UAAU,UAAU,MAAM,kBAAkB;AAAA,QACpG,EAAE,OAAO,oBAAoB,MAAM,cAAc,UAAU,aAAa,MAAM,qBAAqB;AAAA,MACrG;AAAA,MACA,aAAa,EAAE,OAAO,gBAAgB;AAAA,MACtC,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,WAAW,OAAO,WAAW,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACjF,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QAC/E,EAAE,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QAC3E,EAAE,QAAQ,cAAc,OAAO,cAAc,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,MAC3F;AAAA,MACA,MAAM;AAAA,QACJ,EAAE,SAAS,iBAAiB,OAAO,QAAQ,KAAK,SAAS,YAAY,YAAY;AAAA,QACjF,EAAE,SAAS,SAAS,OAAO,KAAK,KAAK,MAAM,YAAY,YAAY;AAAA,QACnE,EAAE,SAAS,WAAW,OAAO,SAAS,KAAK,YAAY,YAAY,YAAY;AAAA,QAC/E,EAAE,SAAS,cAAc,OAAO,UAAK,KAAK,UAAK,YAAY,SAAI;AAAA,MACjE;AAAA,MACA,aAAa,EAAE,OAAO,YAAY;AAAA,MAClC,QAAQ,EAAE,OAAO,UAAU,OAAO,oBAAoB;AAAA,MACtD,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,IAAI,OAAO,SAAS,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACxE,EAAE,QAAQ,IAAI,OAAO,SAAS,OAAO,OAAO,OAAO,SAAS,MAAM,OAAO;AAAA,MAC3E;AAAA,MACA,MAAM;AAAA,QACJ,EAAE,OAAO,WAAW,OAAO,OAAO;AAAA,QAClC,EAAE,OAAO,aAAa,OAAO,OAAO;AAAA,QACpC,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,QACzC,EAAE,OAAO,WAAW,OAAO,QAAQ;AAAA,MACrC;AAAA,MACA,aAAa,EAAE,OAAO,cAAc;AAAA,MACpC,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ,EAAE,OAAO,YAAY,OAAO,GAAG;AAAA,IACzC;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,aAAa,OAAO,YAAY,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACpF,EAAE,QAAQ,YAAY,OAAO,YAAY,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACnF,EAAE,QAAQ,cAAc,OAAO,cAAc,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QACzF,EAAE,QAAQ,cAAc,OAAO,aAAa,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,MAC1F;AAAA,MACA,MAAM;AAAA,QACJ;AAAA,UACE,UAAU;AAAA,UACV,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA,MAAM,EAAE,MAAM,YAAY;AAAA,MAC1B,aAAa,EAAE,OAAO,aAAa;AAAA,MACnC,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,WAAW,OAAO,QAAQ,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QAC9E,EAAE,QAAQ,YAAY,OAAO,YAAY,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QACrF,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,SAAS,MAAM,WAAW;AAAA,QAClF,EAAE,QAAQ,UAAU,OAAO,UAAU,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,MACnF;AAAA,MACA,MAAM;AAAA,QACJ;AAAA,UACE,MAAM;AAAA,UACN,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,MAAM,EAAE,MAAM,WAAW;AAAA,MACzB,aAAa,EAAE,OAAO,gBAAgB;AAAA,MACtC,QAAQ,EAAE,OAAO,YAAY,OAAO,uBAAuB;AAAA,MAC3D,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,YAAY,OAAO,WAAW,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QAClF,EAAE,QAAQ,YAAY,OAAO,gBAAgB,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACvF,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,SAAS,MAAM,WAAW;AAAA,QAClF,EAAE,QAAQ,UAAU,OAAO,UAAU,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QACjF,EAAE,QAAQ,QAAQ,OAAO,YAAY,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,MACnF;AAAA,MACA,MAAM;AAAA,QACJ;AAAA,UACE,SAAS;AAAA,UACT,cAAc;AAAA,UACd,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,MACA,MAAM,EAAE,MAAM,SAAS;AAAA,MACvB,aAAa,EAAE,OAAO,YAAY;AAAA,MAClC,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QAC3E,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QAC7E,EAAE,QAAQ,WAAW,OAAO,WAAW,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACjF;AAAA,UACE,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,OAAO;AAAA,UACP,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA,MACF;AAAA,MACA,MAAM;AAAA,QACJ;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,UACT,kBAAkB;AAAA,QACpB;AAAA,MACF;AAAA,MACA,MAAM,EAAE,MAAM,YAAY;AAAA,MAC1B,aAAa,EAAE,OAAO,cAAc;AAAA,MACpC,QAAQ,EAAE,OAAO,UAAU,OAAO,qBAAqB;AAAA,MACvD,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,QAAQ,eAAe,OAAO,eAAe,OAAO,OAAO,OAAO,QAAQ,MAAM,OAAO;AAAA,QACzF,EAAE,QAAQ,YAAY,OAAO,YAAY,OAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAAA,QACrF,EAAE,QAAQ,cAAc,OAAO,aAAa,OAAO,OAAO,OAAO,SAAS,MAAM,WAAW;AAAA,QAC3F,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,SAAS,MAAM,WAAW;AAAA,MACpF;AAAA,MACA,MAAM;AAAA,QACJ;AAAA,UACE,aAAa;AAAA,UACb,UAAU;AAAA,UACV,WAAW;AAAA,UACX,OAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,MAAM,EAAE,MAAM,eAAe;AAAA,MAC7B,aAAa,EAAE,OAAO,cAAc;AAAA,MACpC,QAAQ,EAAE,OAAO,YAAY,OAAO,qBAAqB;AAAA,MACzD,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,EACF;AACF;","names":[]}
@@ -1,29 +0,0 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
-
4
- // src/shared/bricks/props/date.ts
5
- import { Type } from "@sinclair/typebox";
6
- function date(title = "Date", options) {
7
- return Type.String({
8
- title,
9
- format: "date",
10
- "ui:field": "date",
11
- examples: ["2023-03-15"],
12
- ...options
13
- });
14
- }
15
- function datetime(title = "Date and Time", options) {
16
- return Type.String({
17
- title,
18
- format: "date-time",
19
- "ui:field": "datetime",
20
- examples: ["2023-03-15T12:00:00Z"],
21
- ...options
22
- });
23
- }
24
-
25
- export {
26
- date,
27
- datetime
28
- };
29
- //# sourceMappingURL=chunk-WKN566LN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/bricks/props/date.ts"],"sourcesContent":["import { Type, type StringOptions } from \"@sinclair/typebox\";\n\nexport function date(title = \"Date\", options?: StringOptions) {\n return Type.String({\n title,\n format: \"date\",\n \"ui:field\": \"date\",\n examples: [\"2023-03-15\"],\n ...options,\n });\n}\n\nexport function datetime(title = \"Date and Time\", options?: StringOptions) {\n return Type.String({\n title,\n format: \"date-time\",\n \"ui:field\": \"datetime\",\n examples: [\"2023-03-15T12:00:00Z\"],\n ...options,\n });\n}\n"],"mappings":";;;;AAAA,SAAS,YAAgC;AAElC,SAAS,KAAK,QAAQ,QAAQ,SAAyB;AAC5D,SAAO,KAAK,OAAO;AAAA,IACjB;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU,CAAC,YAAY;AAAA,IACvB,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,SAAS,QAAQ,iBAAiB,SAAyB;AACzE,SAAO,KAAK,OAAO;AAAA,IACjB;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU,CAAC,sBAAsB;AAAA,IACjC,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}