@upstart.gg/sdk 0.0.136 → 0.0.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/ai/schemas.d.ts.map +1 -1
- package/dist/shared/ai/schemas.js +24 -29
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +13 -61
- package/dist/shared/ai/types.d.ts.map +1 -1
- package/dist/shared/ajv.js +33 -32
- package/dist/shared/ajv.js.map +1 -1
- package/dist/shared/attributes.d.ts +83 -85
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +20 -23
- package/dist/shared/brick-manifest.d.ts +8 -5
- package/dist/shared/brick-manifest.d.ts.map +1 -1
- package/dist/shared/brick-manifest.js +3 -18
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/accordion.manifest.js +13 -20
- package/dist/shared/bricks/manifests/all-manifests.js +44 -43
- package/dist/shared/bricks/manifests/all-props.d.ts +1501 -0
- package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -0
- package/dist/shared/bricks/manifests/all-props.js +243 -0
- package/dist/shared/bricks/manifests/all-props.js.map +1 -0
- package/dist/shared/bricks/manifests/box.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +16 -20
- package/dist/shared/bricks/manifests/button.manifest.d.ts +3 -6
- package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/button.manifest.js +13 -20
- package/dist/shared/bricks/manifests/card.manifest.d.ts +3 -3
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +18 -20
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +15 -20
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +3 -3
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +13 -20
- package/dist/shared/bricks/manifests/form.manifest.d.ts +3 -3
- package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/form.manifest.js +13 -20
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +13 -20
- package/dist/shared/bricks/manifests/html.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +8 -20
- package/dist/shared/bricks/manifests/icon.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +13 -20
- package/dist/shared/bricks/manifests/image.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/image.manifest.js +16 -20
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +15 -20
- package/dist/shared/bricks/manifests/map.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +11 -20
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +5 -5
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +15 -20
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +13 -20
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +14 -20
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +8 -20
- package/dist/shared/bricks/manifests/table.manifest.d.ts +4 -4
- package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/table.manifest.js +15 -20
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts +4 -4
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.js +15 -20
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +18 -20
- package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +13 -20
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts +7 -7
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/timeline.manifest.js +15 -20
- package/dist/shared/bricks/manifests/video.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/video.manifest.js +11 -20
- package/dist/shared/bricks/props/align.d.ts +0 -3
- package/dist/shared/bricks/props/align.d.ts.map +1 -1
- package/dist/shared/bricks/props/align.js +4 -11
- package/dist/shared/bricks/props/background.d.ts +2 -8
- package/dist/shared/bricks/props/background.d.ts.map +1 -1
- package/dist/shared/bricks/props/background.js +4 -9
- package/dist/shared/bricks/props/border.d.ts +0 -7
- package/dist/shared/bricks/props/border.d.ts.map +1 -1
- package/dist/shared/bricks/props/border.js +5 -10
- package/dist/shared/bricks/props/color-preset.d.ts +316 -6
- package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
- package/dist/shared/bricks/props/color-preset.js +2 -5
- package/dist/shared/bricks/props/color.d.ts +3 -5
- package/dist/shared/bricks/props/color.d.ts.map +1 -1
- package/dist/shared/bricks/props/color.js +3 -8
- package/dist/shared/bricks/props/common.d.ts.map +1 -1
- package/dist/shared/bricks/props/common.js +4 -5
- package/dist/shared/bricks/props/css-length.d.ts +0 -1
- package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
- package/dist/shared/bricks/props/css-length.js +1 -4
- package/dist/shared/bricks/props/datasource.d.ts +3 -3
- package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
- package/dist/shared/bricks/props/datasource.js +74 -76
- package/dist/shared/bricks/props/datasource.js.map +1 -1
- package/dist/shared/bricks/props/date.js +21 -4
- package/dist/shared/bricks/props/date.js.map +1 -1
- package/dist/shared/bricks/props/direction.d.ts +1 -2
- package/dist/shared/bricks/props/direction.d.ts.map +1 -1
- package/dist/shared/bricks/props/direction.js +4 -7
- package/dist/shared/bricks/props/dynamic.d.ts +5 -67
- package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
- package/dist/shared/bricks/props/dynamic.js +6 -24
- package/dist/shared/bricks/props/effects.d.ts +1 -3
- package/dist/shared/bricks/props/effects.d.ts.map +1 -1
- package/dist/shared/bricks/props/effects.js +4 -9
- package/dist/shared/bricks/props/geolocation.d.ts.map +1 -1
- package/dist/shared/bricks/props/geolocation.js +3 -6
- package/dist/shared/bricks/props/geolocation.js.map +1 -1
- package/dist/shared/bricks/props/helpers.js +5 -6
- package/dist/shared/bricks/props/image.d.ts +2 -8
- package/dist/shared/bricks/props/image.d.ts.map +1 -1
- package/dist/shared/bricks/props/image.js +4 -7
- package/dist/shared/bricks/props/string.d.ts +2 -5
- package/dist/shared/bricks/props/string.d.ts.map +1 -1
- package/dist/shared/bricks/props/string.js +3 -10
- package/dist/shared/bricks/props/tags.d.ts +0 -1
- package/dist/shared/bricks/props/tags.d.ts.map +1 -1
- package/dist/shared/bricks/props/tags.js +3 -6
- package/dist/shared/bricks/props/text.d.ts +0 -3
- package/dist/shared/bricks/props/text.d.ts.map +1 -1
- package/dist/shared/bricks/props/text.js +4 -11
- package/dist/shared/bricks/props/types.d.ts +2 -2
- package/dist/shared/bricks/props/types.d.ts.map +1 -1
- package/dist/shared/bricks.d.ts +64 -154
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +47 -52
- package/dist/shared/chunk-2O5HVPID.js +41 -0
- package/dist/shared/chunk-2O5HVPID.js.map +1 -0
- package/dist/shared/{chunk-F22LDHEO.js → chunk-2U5U3CCJ.js} +3 -18
- package/dist/shared/chunk-2U5U3CCJ.js.map +1 -0
- package/dist/shared/{chunk-LTIJI7Y3.js → chunk-4KY7OZWD.js} +35 -35
- package/dist/shared/chunk-4KY7OZWD.js.map +1 -0
- package/dist/shared/{chunk-TNMNMYOB.js → chunk-5RCC2STG.js} +2 -13
- package/dist/shared/chunk-5RCC2STG.js.map +1 -0
- package/dist/shared/{chunk-KIDICX3Y.js → chunk-6AE7UD73.js} +27 -33
- package/dist/shared/chunk-6AE7UD73.js.map +1 -0
- package/dist/shared/{chunk-CRS7QCPZ.js → chunk-7U5WPHXB.js} +65 -27
- package/dist/shared/chunk-7U5WPHXB.js.map +1 -0
- package/dist/shared/{chunk-Q4NPPLEU.js → chunk-BHARJBEK.js} +2 -9
- package/dist/shared/chunk-BHARJBEK.js.map +1 -0
- package/dist/shared/{chunk-H5JM2M2T.js → chunk-BZTWZC77.js} +46 -31
- package/dist/shared/chunk-BZTWZC77.js.map +1 -0
- package/dist/shared/{chunk-LLNPH3XR.js → chunk-DCM4732T.js} +6 -8
- package/dist/shared/chunk-DCM4732T.js.map +1 -0
- package/dist/shared/{chunk-W6MRYRGJ.js → chunk-DRQKKPTX.js} +6 -20
- package/dist/shared/chunk-DRQKKPTX.js.map +1 -0
- package/dist/shared/{chunk-CSF2WQX2.js → chunk-EID5HPF3.js} +15 -12
- package/dist/shared/chunk-EID5HPF3.js.map +1 -0
- package/dist/shared/chunk-EMF5TCPX.js +389 -0
- package/dist/shared/chunk-EMF5TCPX.js.map +1 -0
- package/dist/shared/chunk-FD7YYFRI.js +225 -0
- package/dist/shared/chunk-FD7YYFRI.js.map +1 -0
- package/dist/shared/{chunk-36PLZKMW.js → chunk-FHA4DFIM.js} +26 -27
- package/dist/shared/chunk-FHA4DFIM.js.map +1 -0
- package/dist/shared/{chunk-L6C7HUSA.js → chunk-FUUSAMN3.js} +21 -24
- package/dist/shared/chunk-FUUSAMN3.js.map +1 -0
- package/dist/shared/chunk-GDYCCB3B.js +22 -0
- package/dist/shared/chunk-GDYCCB3B.js.map +1 -0
- package/dist/shared/chunk-GLV6QIIM.js +41 -0
- package/dist/shared/chunk-GLV6QIIM.js.map +1 -0
- package/dist/shared/chunk-H6TMBELF.js +374 -0
- package/dist/shared/chunk-H6TMBELF.js.map +1 -0
- package/dist/shared/{chunk-YWOTQWIQ.js → chunk-HUWMIXNN.js} +26 -28
- package/dist/shared/chunk-HUWMIXNN.js.map +1 -0
- package/dist/shared/chunk-HY7JOP3J.js +150 -0
- package/dist/shared/chunk-HY7JOP3J.js.map +1 -0
- package/dist/shared/{chunk-TFGGYU6Y.js → chunk-IEMCCHM4.js} +7 -12
- package/dist/shared/chunk-IEMCCHM4.js.map +1 -0
- package/dist/shared/{chunk-EVLRH6VG.js → chunk-J45LSQT6.js} +2 -2
- package/dist/shared/chunk-J45LSQT6.js.map +1 -0
- package/dist/shared/{chunk-DFAFDBYZ.js → chunk-JF52BBFD.js} +27 -28
- package/dist/shared/chunk-JF52BBFD.js.map +1 -0
- package/dist/shared/{chunk-ZR6R6Z6O.js → chunk-JLDAS3VE.js} +34 -32
- package/dist/shared/chunk-JLDAS3VE.js.map +1 -0
- package/dist/shared/{chunk-SE6O65HC.js → chunk-JSDKK5QN.js} +10 -23
- package/dist/shared/chunk-JSDKK5QN.js.map +1 -0
- package/dist/shared/{chunk-KILJYJFE.js → chunk-JW7MQAU4.js} +19 -19
- package/dist/shared/chunk-JW7MQAU4.js.map +1 -0
- package/dist/shared/{chunk-RV7AYVFV.js → chunk-KKWT3OXF.js} +4 -19
- package/dist/shared/chunk-KKWT3OXF.js.map +1 -0
- package/dist/shared/{chunk-N3BEBLWF.js → chunk-KQH6V22E.js} +34 -34
- package/dist/shared/{chunk-GFAQWQER.js → chunk-LGDDJJHK.js} +33 -35
- package/dist/shared/chunk-LGDDJJHK.js.map +1 -0
- package/dist/shared/{chunk-FOGAVJC2.js → chunk-LGGPCCCY.js} +3 -3
- package/dist/shared/{chunk-4MNWMEMM.js → chunk-LPAQ47C6.js} +23 -23
- package/dist/shared/chunk-LPAQ47C6.js.map +1 -0
- package/dist/shared/chunk-MO6CRLQA.js +73 -0
- package/dist/shared/chunk-MO6CRLQA.js.map +1 -0
- package/dist/shared/{chunk-GQTZPN5D.js → chunk-MYOLWTB2.js} +29 -32
- package/dist/shared/chunk-MYOLWTB2.js.map +1 -0
- package/dist/shared/{chunk-KEM5N6GJ.js → chunk-O24RDXZS.js} +34 -34
- package/dist/shared/chunk-O24RDXZS.js.map +1 -0
- package/dist/shared/{chunk-BPBKHEQ5.js → chunk-OJ6KL7FU.js} +1 -8
- package/dist/shared/chunk-OJ6KL7FU.js.map +1 -0
- package/dist/shared/{chunk-LCJ2VFPM.js → chunk-PF75LW33.js} +24 -27
- package/dist/shared/chunk-PF75LW33.js.map +1 -0
- package/dist/shared/{chunk-U5ZECCJM.js → chunk-QEJGPYTB.js} +32 -34
- package/dist/shared/chunk-QEJGPYTB.js.map +1 -0
- package/dist/shared/{chunk-2VDR4ZYY.js → chunk-SK2O7GFC.js} +17 -18
- package/dist/shared/chunk-SK2O7GFC.js.map +1 -0
- package/dist/shared/{chunk-N3ZTQD5I.js → chunk-SQXZNGQF.js} +8 -23
- package/dist/shared/chunk-SQXZNGQF.js.map +1 -0
- package/dist/shared/{chunk-NTLAKMMQ.js → chunk-SRYBJ6NQ.js} +6 -17
- package/dist/shared/chunk-SRYBJ6NQ.js.map +1 -0
- package/dist/shared/{chunk-UXTASZ23.js → chunk-T6C3NG2L.js} +66 -63
- package/dist/shared/chunk-T6C3NG2L.js.map +1 -0
- package/dist/shared/{chunk-ZRRAK5NS.js → chunk-TBT2PTGB.js} +41 -33
- package/dist/shared/chunk-TBT2PTGB.js.map +1 -0
- package/dist/shared/{chunk-2IHKVMKW.js → chunk-U4KZUX37.js} +18 -19
- package/dist/shared/chunk-U4KZUX37.js.map +1 -0
- package/dist/shared/{chunk-FQDR2BBZ.js → chunk-VSLRTXLF.js} +11 -4
- package/dist/shared/chunk-VSLRTXLF.js.map +1 -0
- package/dist/shared/{chunk-BHC2A43S.js → chunk-VTCHJT4O.js} +3 -3
- package/dist/shared/{chunk-BHC2A43S.js.map → chunk-VTCHJT4O.js.map} +1 -1
- package/dist/shared/{chunk-GIGFNQBO.js → chunk-W2RFDII5.js} +3 -3
- package/dist/shared/{chunk-Y74LZNND.js → chunk-WPZV3LYL.js} +4 -10
- package/dist/shared/chunk-WPZV3LYL.js.map +1 -0
- package/dist/shared/chunk-XFZQGRRL.js +101 -0
- package/dist/shared/chunk-XFZQGRRL.js.map +1 -0
- package/dist/shared/{chunk-42OUNI7C.js → chunk-XK2CERPB.js} +27 -29
- package/dist/shared/chunk-XK2CERPB.js.map +1 -0
- package/dist/shared/chunk-XNRSL6FL.js +78 -0
- package/dist/shared/chunk-XNRSL6FL.js.map +1 -0
- package/dist/shared/{chunk-2RK3CPYJ.js → chunk-XXPSM6UA.js} +9 -12
- package/dist/shared/chunk-XXPSM6UA.js.map +1 -0
- package/dist/shared/{chunk-ZLYIRH2B.js → chunk-ZRBTAC3G.js} +3 -18
- package/dist/shared/chunk-ZRBTAC3G.js.map +1 -0
- package/dist/shared/{chunk-F247VKAE.js → chunk-ZVJNRKT4.js} +18 -20
- package/dist/shared/chunk-ZVJNRKT4.js.map +1 -0
- package/dist/shared/context.d.ts +402 -23
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/context.js +93 -0
- package/dist/shared/context.js.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.d.ts +1 -1
- package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.js +2 -1
- package/dist/shared/datarecords/types.d.ts +3 -3
- package/dist/shared/datarecords/types.d.ts.map +1 -1
- package/dist/shared/datarecords/types.js +3 -2
- package/dist/shared/datasources/external/instagram/feed/schema.d.ts +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js +4 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts +6 -6
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.js +6 -19
- package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.d.ts +2 -2
- package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.js +4 -1
- package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.d.ts +1 -1
- package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.js +4 -8
- package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
- package/dist/shared/datasources/internal/blog/schema.d.ts +1 -1
- package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/blog/schema.js +4 -1
- package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
- package/dist/shared/datasources/types.d.ts +25 -25
- package/dist/shared/datasources/types.d.ts.map +1 -1
- package/dist/shared/datasources/types.js +3 -16
- package/dist/shared/images.d.ts +1 -1
- package/dist/shared/images.d.ts.map +1 -1
- package/dist/shared/images.js +4 -38
- package/dist/shared/images.js.map +1 -1
- package/dist/shared/page.d.ts +139 -22
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +51 -49
- package/dist/shared/responsive.js +1 -1
- package/dist/shared/site.d.ts +74 -191
- package/dist/shared/site.d.ts.map +1 -1
- package/dist/shared/site.js +55 -114
- package/dist/shared/site.js.map +1 -1
- package/dist/shared/sitemap.d.ts +4 -326
- package/dist/shared/sitemap.d.ts.map +1 -1
- package/dist/shared/sitemap.js +50 -58
- package/dist/shared/theme.d.ts +0 -37
- package/dist/shared/theme.d.ts.map +1 -1
- package/dist/shared/theme.js +4 -21
- package/dist/shared/utils/llm.d.ts +1 -10
- package/dist/shared/utils/llm.d.ts.map +1 -1
- package/dist/shared/utils/llm.js +1 -18
- package/dist/shared/utils/schema.d.ts +3 -2
- package/dist/shared/utils/schema.d.ts.map +1 -1
- package/dist/shared/utils/schema.js +2 -17
- package/dist/shared/utils/string-enum.d.ts +9 -3
- package/dist/shared/utils/string-enum.d.ts.map +1 -1
- package/dist/shared/utils/string-enum.js +1 -1
- package/package.json +21 -5
- package/src/shared/ai/schemas.ts +24 -29
- package/src/shared/ai/types.ts +22 -88
- package/src/shared/attributes.ts +53 -51
- package/src/shared/brick-manifest.ts +5 -6
- package/src/shared/bricks/manifests/accordion.manifest.ts +11 -11
- package/src/shared/bricks/manifests/all-props.ts +165 -0
- package/src/shared/bricks/manifests/box.manifest.ts +19 -21
- package/src/shared/bricks/manifests/button.manifest.ts +54 -16
- package/src/shared/bricks/manifests/card.manifest.ts +32 -18
- package/src/shared/bricks/manifests/carousel.manifest.ts +11 -13
- package/src/shared/bricks/manifests/footer.manifest.ts +16 -15
- package/src/shared/bricks/manifests/form.manifest.ts +14 -15
- package/src/shared/bricks/manifests/hero.manifest.ts +18 -20
- package/src/shared/bricks/manifests/icon.manifest.ts +9 -10
- package/src/shared/bricks/manifests/image.manifest.ts +22 -19
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +13 -15
- package/src/shared/bricks/manifests/map.manifest.ts +10 -10
- package/src/shared/bricks/manifests/navbar.manifest.ts +20 -21
- package/src/shared/bricks/manifests/sidebar.manifest.ts +9 -9
- package/src/shared/bricks/manifests/social-links.manifest.ts +17 -19
- package/src/shared/bricks/manifests/table.manifest.ts +15 -15
- package/src/shared/bricks/manifests/tabs.manifest.ts +14 -16
- package/src/shared/bricks/manifests/testimonials.manifest.ts +21 -20
- package/src/shared/bricks/manifests/text.manifest.ts +16 -19
- package/src/shared/bricks/manifests/timeline.manifest.ts +29 -24
- package/src/shared/bricks/manifests/video.manifest.ts +9 -10
- package/src/shared/bricks/props/align.ts +0 -13
- package/src/shared/bricks/props/background.ts +1 -14
- package/src/shared/bricks/props/border.ts +2 -13
- package/src/shared/bricks/props/color-preset.ts +9 -10
- package/src/shared/bricks/props/color.ts +7 -18
- package/src/shared/bricks/props/common.ts +6 -7
- package/src/shared/bricks/props/css-length.ts +0 -5
- package/src/shared/bricks/props/datasource.ts +72 -74
- package/src/shared/bricks/props/direction.ts +1 -5
- package/src/shared/bricks/props/dynamic.ts +0 -11
- package/src/shared/bricks/props/effects.ts +0 -9
- package/src/shared/bricks/props/geolocation.ts +3 -3
- package/src/shared/bricks/props/helpers.ts +1 -1
- package/src/shared/bricks/props/image.ts +4 -16
- package/src/shared/bricks/props/string.ts +5 -18
- package/src/shared/bricks/props/tags.ts +0 -5
- package/src/shared/bricks/props/tests/background.test.ts +1 -15
- package/src/shared/bricks/props/tests/image.test.ts +3 -9
- package/src/shared/bricks/props/tests/string.test.ts +2 -26
- package/src/shared/bricks/props/text.ts +0 -12
- package/src/shared/bricks/props/types.ts +4 -3
- package/src/shared/bricks.ts +156 -1020
- package/src/shared/context.ts +24 -24
- package/src/shared/datarecords/external/airtable/types.ts +12 -11
- package/src/shared/datarecords/types.ts +2 -34
- package/src/shared/datasources/external/instagram/feed/schema.ts +2 -1
- package/src/shared/datasources/external/mastodon/status/schema.ts +4 -19
- package/src/shared/datasources/external/meta/oauth/config.ts +2 -1
- package/src/shared/datasources/external/threads/media/schema.ts +2 -8
- package/src/shared/datasources/internal/blog/schema.ts +2 -1
- package/src/shared/datasources/types.ts +64 -79
- package/src/shared/images.ts +12 -18
- package/src/shared/page.ts +9 -1
- package/src/shared/sitemap.ts +3 -70
- package/src/shared/tests/attributes.test.ts +2 -0
- package/src/shared/theme.ts +81 -96
- package/src/shared/utils/llm.ts +5 -191
- package/src/shared/utils/schema.ts +71 -244
- package/src/shared/utils/string-enum.ts +25 -4
- package/src/shared/utils/tests/schema.test.ts +70 -313
- package/dist/shared/chunk-2IHKVMKW.js.map +0 -1
- package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
- package/dist/shared/chunk-2VDR4ZYY.js.map +0 -1
- package/dist/shared/chunk-36PLZKMW.js.map +0 -1
- package/dist/shared/chunk-42OUNI7C.js.map +0 -1
- package/dist/shared/chunk-4MNWMEMM.js.map +0 -1
- package/dist/shared/chunk-A2QPY54H.js +0 -13
- package/dist/shared/chunk-A2QPY54H.js.map +0 -1
- package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
- package/dist/shared/chunk-CRS7QCPZ.js.map +0 -1
- package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
- package/dist/shared/chunk-DFAFDBYZ.js.map +0 -1
- package/dist/shared/chunk-DV3G7X34.js +0 -244
- package/dist/shared/chunk-DV3G7X34.js.map +0 -1
- package/dist/shared/chunk-EVLRH6VG.js.map +0 -1
- package/dist/shared/chunk-F22LDHEO.js.map +0 -1
- package/dist/shared/chunk-F247VKAE.js.map +0 -1
- package/dist/shared/chunk-FQDR2BBZ.js.map +0 -1
- package/dist/shared/chunk-GFAQWQER.js.map +0 -1
- package/dist/shared/chunk-GQTZPN5D.js.map +0 -1
- package/dist/shared/chunk-H5JM2M2T.js.map +0 -1
- package/dist/shared/chunk-HTUSL2U7.js +0 -260
- package/dist/shared/chunk-HTUSL2U7.js.map +0 -1
- package/dist/shared/chunk-IQIISR22.js +0 -794
- package/dist/shared/chunk-IQIISR22.js.map +0 -1
- package/dist/shared/chunk-JK2FWFJU.js +0 -15
- package/dist/shared/chunk-JK2FWFJU.js.map +0 -1
- package/dist/shared/chunk-KEM5N6GJ.js.map +0 -1
- package/dist/shared/chunk-KIDICX3Y.js.map +0 -1
- package/dist/shared/chunk-KILJYJFE.js.map +0 -1
- package/dist/shared/chunk-L6C7HUSA.js.map +0 -1
- package/dist/shared/chunk-LCJ2VFPM.js.map +0 -1
- package/dist/shared/chunk-LLNPH3XR.js.map +0 -1
- package/dist/shared/chunk-LTIJI7Y3.js.map +0 -1
- package/dist/shared/chunk-MFNHFN2B.js +0 -103
- package/dist/shared/chunk-MFNHFN2B.js.map +0 -1
- package/dist/shared/chunk-N3ZTQD5I.js.map +0 -1
- package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
- package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
- package/dist/shared/chunk-RV7AYVFV.js.map +0 -1
- package/dist/shared/chunk-SE6O65HC.js.map +0 -1
- package/dist/shared/chunk-TFGGYU6Y.js.map +0 -1
- package/dist/shared/chunk-TNMNMYOB.js.map +0 -1
- package/dist/shared/chunk-TNTFKLCR.js +0 -1225
- package/dist/shared/chunk-TNTFKLCR.js.map +0 -1
- package/dist/shared/chunk-U5ZECCJM.js.map +0 -1
- package/dist/shared/chunk-UXTASZ23.js.map +0 -1
- package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
- package/dist/shared/chunk-WKN566LN.js +0 -29
- package/dist/shared/chunk-WKN566LN.js.map +0 -1
- package/dist/shared/chunk-Y74LZNND.js.map +0 -1
- package/dist/shared/chunk-YWOTQWIQ.js.map +0 -1
- package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
- package/dist/shared/chunk-ZR6R6Z6O.js.map +0 -1
- package/dist/shared/chunk-ZRRAK5NS.js.map +0 -1
- package/dist/shared/tests/schema-registry.test.d.ts +0 -2
- package/dist/shared/tests/schema-registry.test.d.ts.map +0 -1
- package/dist/shared/utils/schema-registry.d.ts +0 -5
- package/dist/shared/utils/schema-registry.d.ts.map +0 -1
- package/dist/shared/utils/schema-registry.js +0 -29
- package/dist/shared/utils/schema-registry.js.map +0 -1
- package/dist/shared/utils/tests/schema-registry.test.d.ts +0 -2
- package/dist/shared/utils/tests/schema-registry.test.d.ts.map +0 -1
- package/dist/shared/utils/typed-ref.d.ts +0 -43
- package/dist/shared/utils/typed-ref.d.ts.map +0 -1
- package/dist/shared/utils/typed-ref.js +0 -10
- package/dist/shared/utils/typed-ref.js.map +0 -1
- package/src/shared/tests/schema-registry.test.ts +0 -12
- package/src/shared/utils/schema-registry.ts +0 -82
- package/src/shared/utils/tests/schema-registry.test.ts +0 -13
- package/src/shared/utils/typed-ref.ts +0 -53
- /package/dist/shared/{chunk-N3BEBLWF.js.map → chunk-KQH6V22E.js.map} +0 -0
- /package/dist/shared/{chunk-FOGAVJC2.js.map → chunk-LGGPCCCY.js.map} +0 -0
- /package/dist/shared/{chunk-GIGFNQBO.js.map → chunk-W2RFDII5.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks.ts"],"sourcesContent":["import { Type, type Static, type TObject } from \"@sinclair/typebox\";\nimport { customAlphabet } from \"nanoid\";\nimport { brickTypes, defaultProps, manifests } from \"./bricks/manifests/all-manifests\";\nimport { cssLengthRef } from \"./bricks/props/css-length\";\nimport { colorPresetRef } from \"./bricks/props/color-preset\";\nimport { mergeIgnoringArrays } from \"./utils/merge\";\nimport { getSchemaDefaults } from \"./utils/schema\";\nimport { StringEnum } from \"./utils/string-enum\";\nimport { alignItemsRef, justifyContentRef } from \"./bricks/props/align\";\nimport type { CommonBrickProps } from \"./bricks/props/common\";\nimport { directionRef } from \"./bricks/props/direction\";\nimport type { PageAttributes, SiteAttributes } from \"./attributes\";\nimport { toLLMSchema } from \"./utils/llm\";\nimport { backgroundRef } from \"./bricks/props/background\";\n\n/**\n * Generates a unique identifier for bricks.\n */\nexport const generateId = customAlphabet(\"azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN\", 7);\n\nconst brickAbsolutePositionSchema = Type.Object({\n left: Type.Optional(\n Type.String({\n title: \"top\",\n description: \"The left position in css unit.\",\n }),\n ),\n top: Type.Optional(\n Type.String({\n title: \"top\",\n description: \"The top position in css unit.\",\n }),\n ),\n right: Type.Optional(\n Type.String({\n title: \"right\",\n description: \"The right position in css unit.\",\n }),\n ),\n bottom: Type.Optional(\n Type.String({\n title: \"bottom\",\n description: \"The bottom position in css unit.\",\n }),\n ),\n inset: Type.Optional(\n Type.String({\n title: \"inset\",\n description: \"The inset position in css unit.\",\n }),\n ),\n translateX: Type.Optional(\n Type.String({\n title: \"translateX\",\n description: \"The translateX position in css unit.\",\n }),\n ),\n translateY: Type.Optional(\n Type.String({\n title: \"translateY\",\n description: \"The translateY position in css unit.\",\n }),\n ),\n rotate: Type.Optional(\n Type.String({\n title: \"rotate\",\n description: \"The rotate position in css unit.\",\n }),\n ),\n});\n\nexport type BrickAbsolutePosition = Static<typeof brickAbsolutePositionSchema>;\n\nexport const brickTypeSchema = StringEnum(Object.keys(defaultProps), {\n title: \"Brick type\",\n});\n\nexport const brickSchema = Type.Object(\n {\n id: Type.String({\n title: \"ID\",\n description: \"A unique identifier for the brick.\",\n }),\n type: brickTypeSchema,\n label: Type.Optional(\n Type.String({\n title: \"Label\",\n description: \"A human-readable label for the brick. Used for organization and identification.\",\n }),\n ),\n props: Type.Any({\n title: \"Props\",\n description: \"The static props of the brick. The available props depends on the brick type.\",\n }),\n mobileProps: Type.Optional(\n Type.Any({\n title: \"Props\",\n description:\n \"The overriden props for mobile, merged with desktop props. Same type as props but partial.\",\n }),\n ),\n },\n { additionalProperties: true },\n);\n\nexport function makeFullBrickSchemaForLLM(type: string, otherTypes?: string[]) {\n return toLLMSchema(\n Type.Object(\n {\n id: Type.String({\n title: \"ID\",\n description: \"A unique identifier for the brick.\",\n }),\n type: Type.Literal(type),\n props: manifests[type].props,\n mobileProps: Type.Optional(Type.Partial(manifests[type].props)),\n },\n // IMPORTANT: DO NOT set \"additionalProperties\" to `false` because it would break validation with Cabidela library\n // { additionalProperties: false },\n ),\n );\n}\n\nexport type Brick = Omit<Static<typeof brickSchema>, \"props\" | \"mobileProps\"> & {\n props: CommonBrickProps & Record<string, unknown>;\n mobileProps?: CommonBrickProps & Record<string, unknown>;\n};\n\nexport const sectionProps = Type.Object(\n {\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n backgroundImage: Type.Optional(\n backgroundRef({\n title: \"Background\",\n description:\n \"The background image of the section. Prefer to set background images on sections rather than on individual bricks.\",\n }),\n ),\n direction: directionRef({\n default: \"flex-row\",\n title: \"Direction\",\n description: \"The direction of the section. Only apply to desktop. On mobile, it is always vertical.\",\n \"ui:responsive\": \"desktop\",\n }),\n minHeight: Type.Optional(\n cssLengthRef({\n title: \"Min height\",\n default: \"fit-content\",\n description:\n \"The min height of the section. default is 'fit-content'. You can also use the keyword 'full' to make it full viewport height. Lastly, you can use any valid CSS length unit.\",\n \"ui:field\": \"hidden\",\n }),\n ),\n variant: Type.Optional(\n StringEnum([\"navbar\", \"footer\", \"sidebar\"], {\n title: \"Custom section variant\",\n description: \"Used for custom styling and layout.\",\n enumNames: [\"Navbar\", \"Footer\", \"Sidebar\"],\n \"ui:field\": \"hidden\",\n \"ai:hidden\": true,\n }),\n ),\n maxWidth: Type.Optional(\n StringEnum([\"max-w-screen-lg\", \"max-w-screen-xl\", \"max-w-screen-2xl\", \"max-w-full\"], {\n title: \"Max width\",\n default: \"max-w-full\",\n enumNames: [\"M\", \"L\", \"XL\", \"Full\"],\n description: \"The maximum width of the section. Desktop only\",\n \"ai:instructions\":\n \"Choose the most appropriate max width for the section. The value 'max-w-full' is the most common and the default. Use the same value for all sections on the same page unless there is a good reason to do otherwise.\",\n displayAs: \"button-group\",\n \"ui:responsive\": \"desktop\",\n }),\n ),\n verticalMargin: Type.Optional(\n cssLengthRef({\n title: \"Vertical Margin\",\n description:\n \"The vertical margin of the section. By default, all sections touch each other with no space in between. If you want to add space between sections, set this value to e.g. '2rem' or '32px'. Adding a vertical margin will reveal the background color of the page.\",\n default: \"0\",\n \"ui:styleId\": \"styles:verticalMargin\",\n }),\n ),\n justifyContent: Type.Optional(\n justifyContentRef({\n default: \"justify-center\",\n }),\n ),\n alignItems: Type.Optional(\n alignItemsRef({\n default: \"items-center\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"2rem\",\n description: \"Padding inside the section.\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n gap: Type.Optional(\n cssLengthRef({\n title: \"Gap\",\n description: \"The gap between the bricks in the section.\",\n default: \"20px\",\n \"ui:styleId\": \"styles:gap\",\n }),\n ),\n wrap: Type.Optional(\n Type.Boolean({\n title: \"Wrap\",\n description: \"Wrap bricks if they overflow the section.\",\n default: true,\n \"ui:styleId\": \"styles:wrap\",\n }),\n ),\n lastTouched: Type.Optional(\n Type.Number({\n description: \"Do not use this field. It is used internally by the editor.\",\n \"ui:field\": \"hidden\",\n \"ai:hidden\": true,\n }),\n ),\n },\n {\n additionalProperties: false,\n },\n);\n\nexport const sectionSchema = Type.Object(\n {\n id: Type.String({\n description: \"The unique ID of the section. Use a human readable url-safe slug\",\n examples: [\"content-section\", \"contact-section\"],\n }),\n label: Type.String({\n description: \"The label of the section. Shown only to the website owner, not public.\",\n examples: [\"Content\", \"Contact\"],\n }),\n order: Type.Number({\n description: \"Determines section order in the page (lower numbers appear first). 0-based\",\n }),\n props: sectionProps,\n mobileProps: Type.Optional(Type.Partial(sectionProps, { additionalProperties: false })),\n bricks: Type.Array(brickSchema),\n },\n {\n description: \"Sections are direct children of the page that are stacked vertically.\",\n },\n);\n\nexport const sectionSchemaLLM = toLLMSchema(sectionSchema);\nexport const sectionSchemaNoBricks = Type.Omit(sectionSchema, [\"bricks\"]);\nexport type SectionSchemaNoBricks = Static<typeof sectionSchemaNoBricks>;\n\nexport const sectionSchemaNoBricksLLM = toLLMSchema(sectionSchemaNoBricks);\n\nconst sectionDefaultprops = getSchemaDefaults(sectionSchema.properties.props, \"desktop\") as Section[\"props\"];\nconst sectionMobileDefaultprops = getSchemaDefaults(\n sectionSchema.properties.mobileProps,\n \"mobile\",\n) as Section[\"mobileProps\"];\n\nexport type Section = Static<typeof sectionSchema>;\n\nexport function processSections(\n sections: Section[],\n siteAttributes: SiteAttributes,\n pageAttributes: PageAttributes,\n): Section[] {\n const processSection = (section: Section) => {\n return {\n ...section,\n props: mergeIgnoringArrays({} as Section[\"props\"], sectionDefaultprops, section.props),\n mobileProps: mergeIgnoringArrays({}, sectionMobileDefaultprops, section.mobileProps || {}),\n bricks: section.bricks.map(processBrick).filter(Boolean) as Brick[],\n } as const;\n };\n\n const finalSections = sections.map(processSection);\n\n if (siteAttributes.navbar && !pageAttributes.noNavbar) {\n finalSections.unshift(\n processSection({\n order: -1,\n id: \"navbar-section\",\n label: \"Navbar\",\n props: {\n variant: \"navbar\",\n direction: \"flex-row\",\n },\n mobileProps: {},\n bricks: [\n {\n id: \"navbar\",\n type: \"navbar\",\n props: siteAttributes.navbar,\n },\n ],\n }),\n );\n }\n if (siteAttributes.footer && !pageAttributes.noFooter) {\n finalSections.push(\n processSection({\n order: 1000,\n id: \"footer-section\",\n label: \"Footer\",\n props: {\n variant: \"footer\",\n direction: \"flex-row\",\n },\n mobileProps: {},\n bricks: [\n {\n id: \"footer\",\n type: \"footer\",\n props: siteAttributes.footer,\n },\n ],\n }),\n );\n }\n\n return finalSections satisfies Section[];\n}\n\n/**\n * process a brick and add default props\n */\nexport function processBrick<T extends Brick>(brick: T): T {\n const defProps = defaultProps[brick.type];\n // if (!defProps) {\n // console.warn(`No default props found for brick type: ${brick.type}`);\n // return false; // or throw an error if you prefer\n // }\n const result = {\n ...brick,\n props: mergeIgnoringArrays({} as Brick[\"props\"], defProps.props, {\n ...brick.props,\n ...(brick.props.$children\n ? { $children: (brick.props.$children as T[]).map(processBrick).filter(Boolean) }\n : {}),\n }),\n };\n\n return result;\n}\n\nexport function getDefaultPropsForBrick(type: string) {\n return defaultProps[type].props;\n}\n\nexport function createEmptyBrick(type: string, ghost = false): Brick {\n const props = { ...defaultProps[type].props, ghost };\n const newBrick = {\n id: `b-${generateId()}`,\n type,\n props,\n };\n return newBrick;\n}\n\nexport const sectionsExamples: { label: string; description: string; example: Section }[] = [\n {\n label: \"Hero section with centered 'hero' and 'button' bricks\",\n description: `A simple hero section with a title and a light primary background.\nThe \"hero\" brick does not have a colorPreset so it is transparent and inherits the background/text-color settings from the section.\nBricks are centered both vertically and horizontally using justifyContent and alignItems.\nBricks are stacked vertically using the \"direction\" set to \"flex-col\".\n`,\n example: {\n id: \"hero-section\",\n label: \"Hero\",\n order: 0,\n props: {\n colorPreset: { color: \"primary-100\" },\n direction: \"flex-col\",\n padding: \"6rem\",\n gap: \"3rem\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n bricks: [\n {\n id: \"hero\",\n type: \"hero\",\n label: \"Main hero title\",\n props: {\n content: \"<h1 style='text-align:center'>Welcome to my SaaS</h1>\",\n tagline: \"The future of productivity starts here\",\n },\n },\n {\n id: \"cta-button\",\n type: \"button\",\n label: \"Call to action button\",\n props: {\n label: \"Get Started\",\n href: \"/signup\",\n colorPreset: { color: \"primary-500\", variant: \"solid\" },\n },\n },\n ],\n },\n },\n {\n label: \"Contact section with a text and a form\",\n description: `A contact section with a title and a form.\nThe section has a light gray background using a colorPreset.\nBricks are stacked vertically using the \"direction\" set to \"flex-col\".\n`,\n example: {\n id: \"contact-section\",\n label: \"Contact\",\n order: 1,\n props: {\n colorPreset: { color: \"gray-100\" },\n direction: \"flex-col\",\n padding: \"4rem\",\n gap: \"2rem\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n bricks: [\n {\n id: \"contact-title\",\n type: \"text\",\n props: {\n content: \"<h2>Get in Touch</h2>\",\n },\n },\n {\n id: \"contact-form\",\n type: \"form\",\n props: {\n title: \"Contact Us\",\n fields: [\n { name: \"name\", label: \"Name\", type: \"text\", required: true },\n { name: \"email\", label: \"Email\", type: \"email\", required: true },\n { name: \"message\", label: \"Message\", type: \"textarea\", required: true },\n ],\n },\n },\n ],\n },\n },\n {\n label: \"Feature showcase with horizontal layout and container brick\",\n description: `A features section using horizontal layout with a container \"box\" brick that holds multiple feature items.\nThe box brick is the only container type that can hold $children (other bricks).\nThis demonstrates nested brick structure where the box contains multiple feature bricks.`,\n example: {\n id: \"features-section\",\n label: \"Features\",\n order: 2,\n props: {\n direction: \"flex-col\",\n padding: \"5rem\",\n gap: \"3rem\",\n maxWidth: \"max-w-screen-xl\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n bricks: [\n {\n id: \"features-title\",\n type: \"text\",\n props: {\n content: \"<h2 style='text-align:center'>Our Features</h2>\",\n },\n },\n {\n id: \"features-container\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"2rem\",\n padding: \"2rem\",\n $children: [\n {\n id: \"feature-1\",\n type: \"text\",\n props: {\n content: \"<h3>Fast</h3><p>Lightning-fast performance for your needs.</p>\",\n colorPreset: { color: \"blue-500\" },\n },\n },\n {\n id: \"feature-2\",\n type: \"text\",\n props: {\n content: \"<h3>Secure</h3><p>Enterprise-grade security built-in.</p>\",\n colorPreset: { color: \"green-500\" },\n },\n },\n {\n id: \"feature-3\",\n type: \"text\",\n props: {\n content: \"<h3>Scalable</h3><p>Grows with your business seamlessly.</p>\",\n colorPreset: { color: \"purple-500\" },\n },\n },\n ],\n },\n },\n ],\n },\n },\n {\n label: \"Media-rich section with image and text side by side\",\n description: `A content section using horizontal layout to place an image next to text content.\nDemonstrates how direction \"flex-row\" arranges bricks horizontally.\nThe section uses responsive mobile overrides to stack vertically on mobile.`,\n example: {\n id: \"about-section\",\n label: \"About\",\n order: 3,\n props: {\n direction: \"flex-row\",\n padding: \"4rem\",\n gap: \"3rem\",\n alignItems: \"items-center\",\n maxWidth: \"max-w-screen-xl\",\n },\n mobileProps: {\n direction: \"flex-col\",\n padding: \"2rem\",\n },\n bricks: [\n {\n id: \"about-image\",\n type: \"image\",\n props: {\n src: \"https://example.com/about-image.jpg\",\n alt: \"About our company\",\n width: \"400px\",\n height: \"300px\",\n },\n },\n {\n id: \"about-text\",\n type: \"text\",\n props: {\n content:\n \"<h2>About Us</h2><p>We are a leading company in innovative solutions, dedicated to transforming how businesses operate in the digital age.</p>\",\n },\n },\n ],\n },\n },\n {\n label: \"Complex nested layout with multiple container levels\",\n description: `Advanced example showing deeply nested brick structure using multiple box containers.\nDemonstrates how box bricks can contain other box bricks, creating sophisticated layouts.\nShows responsive design with different mobile arrangements.`,\n example: {\n id: \"complex-layout-section\",\n label: \"Complex layout\",\n order: 4,\n props: {\n direction: \"flex-col\",\n padding: \"4rem\",\n gap: \"2rem\",\n backgroundImage: { image: \"https://example.com/bg.jpg\" },\n },\n bricks: [\n {\n id: \"main-container\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"2rem\",\n padding: \"2rem\",\n $children: [\n {\n id: \"left-column\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n colorPreset: { color: \"gray-50\" },\n padding: \"1.5rem\",\n $children: [\n {\n id: \"left-title\",\n type: \"text\",\n props: {\n content: \"<h3>Left Column</h3>\",\n },\n },\n {\n id: \"left-button\",\n type: \"button\",\n props: {\n label: \"Learn More\",\n href: \"/learn\",\n colorPreset: { color: \"blue-500\", variant: \"outline\" },\n },\n },\n ],\n },\n },\n {\n id: \"right-column\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n colorPreset: { color: \"blue-50\" },\n padding: \"1.5rem\",\n $children: [\n {\n id: \"right-image\",\n type: \"image\",\n props: {\n src: \"https://example.com/feature.jpg\",\n alt: \"Feature showcase\",\n width: \"100%\",\n },\n },\n {\n id: \"right-text\",\n type: \"text\",\n props: {\n content: \"<p>Detailed description of our amazing features and capabilities.</p>\",\n },\n },\n ],\n },\n },\n ],\n mobileProps: {\n direction: \"flex-col\",\n },\n },\n },\n ],\n },\n },\n {\n label: \"Footer-style section with multiple columns\",\n description: `A footer-like section demonstrating horizontal layout with multiple informational columns.\nUses the footer variant for special styling and contains multiple text bricks arranged horizontally.\nShows how to create multi-column layouts using direction and gap properties.`,\n example: {\n id: \"info-footer-section\",\n label: \"Info footer\",\n order: 5,\n props: {\n variant: \"footer\",\n direction: \"flex-row\",\n padding: \"3rem\",\n gap: \"4rem\",\n colorPreset: { color: \"gray-800\" },\n justifyContent: \"justify-center\",\n },\n mobileProps: {\n direction: \"flex-col\",\n gap: \"2rem\",\n },\n bricks: [\n {\n id: \"company-info\",\n type: \"text\",\n props: {\n content:\n \"<h4 style='color:white'>Company</h4><p style='color:gray'>About Us<br>Careers<br>Contact</p>\",\n },\n },\n {\n id: \"product-info\",\n type: \"text\",\n props: {\n content:\n \"<h4 style='color:white'>Product</h4><p style='color:gray'>Features<br>Pricing<br>Documentation</p>\",\n },\n },\n {\n id: \"support-info\",\n type: \"text\",\n props: {\n content:\n \"<h4 style='color:white'>Support</h4><p style='color:gray'>Help Center<br>Community<br>Status</p>\",\n },\n },\n ],\n },\n },\n {\n label: \"Video showcase section with title and description\",\n description: `A media section featuring a YouTube video with accompanying text.\nShows how to use video bricks for multimedia content.\nThe section uses a light background to make the video stand out.`,\n example: {\n id: \"video-showcase-section\",\n label: \"Video showcase\",\n order: 6,\n props: {\n direction: \"flex-col\",\n padding: \"4rem\",\n gap: \"2rem\",\n colorPreset: { color: \"gray-50\" },\n alignItems: \"items-center\",\n maxWidth: \"max-w-screen-lg\",\n },\n bricks: [\n {\n id: \"video-title\",\n type: \"text\",\n props: {\n content: \"<h2 style='text-align:center'>Watch Our Demo</h2>\",\n },\n },\n {\n id: \"demo-video\",\n type: \"video\",\n props: {\n url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n title: \"Product Demo Video\",\n },\n },\n {\n id: \"video-description\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align:center'>See how our platform can transform your workflow in just 2 minutes.</p>\",\n },\n },\n ],\n },\n },\n {\n label: \"Image gallery section with carousel\",\n description: `A media-rich section showcasing an image carousel.\nDemonstrates how to use carousel bricks for displaying multiple images.\nPerfect for portfolios, product showcases, or photo galleries.`,\n example: {\n id: \"gallery-section\",\n label: \"Gallery\",\n order: 7,\n props: {\n direction: \"flex-col\",\n padding: \"4rem\",\n gap: \"2rem\",\n alignItems: \"items-center\",\n },\n bricks: [\n {\n id: \"gallery-title\",\n type: \"text\",\n props: {\n content: \"<h2 style='text-align:center'>Our Portfolio</h2>\",\n },\n },\n {\n id: \"portfolio-carousel\",\n type: \"carousel\",\n props: {\n images: [\n { src: \"https://example.com/project1.jpg\", alt: \"Project 1\" },\n { src: \"https://example.com/project2.jpg\", alt: \"Project 2\" },\n { src: \"https://example.com/project3.jpg\", alt: \"Project 3\" },\n ],\n autoplay: true,\n showDots: true,\n },\n },\n ],\n },\n },\n {\n label: \"Interactive form section with styled inputs\",\n description: `A comprehensive form section for user registration or contact.\nShows how to create forms with various field types and validation.\nUses a card-like appearance with rounded corners and shadow.`,\n example: {\n id: \"signup-form-section\",\n label: \"Signup form\",\n order: 8,\n props: {\n direction: \"flex-col\",\n padding: \"4rem\",\n gap: \"2rem\",\n colorPreset: { color: \"blue-50\" },\n alignItems: \"items-center\",\n },\n bricks: [\n {\n id: \"form-header\",\n type: \"text\",\n props: {\n content:\n \"<h2 style='text-align:center'>Join Our Platform</h2><p style='text-align:center'>Create your account and start building today.</p>\",\n },\n },\n {\n id: \"registration-form\",\n type: \"form\",\n props: {\n title: \"Sign Up\",\n submitLabel: \"Create Account\",\n fields: [\n { name: \"firstName\", label: \"First Name\", type: \"text\", required: true },\n { name: \"lastName\", label: \"Last Name\", type: \"text\", required: true },\n { name: \"email\", label: \"Email Address\", type: \"email\", required: true },\n { name: \"password\", label: \"Password\", type: \"password\", required: true },\n { name: \"company\", label: \"Company\", type: \"text\", required: false },\n { name: \"newsletter\", label: \"Subscribe to newsletter\", type: \"checkbox\", required: false },\n ],\n colorPreset: { color: \"white\" },\n shadow: \"shadow-lg\",\n rounding: \"rounded-lg\",\n padding: \"2rem\",\n },\n },\n ],\n },\n },\n {\n label: \"Testimonials section with customer feedback\",\n description: `A social proof section using the testimonials brick to display customer feedback.\nShows how to structure testimonials with avatars, company information, and social icons.\nPerfect for building trust and credibility with potential customers.`,\n example: {\n id: \"testimonials-section\",\n label: \"Testimonials\",\n order: 9,\n props: {\n direction: \"flex-col\",\n padding: \"5rem\",\n gap: \"3rem\",\n colorPreset: { color: \"purple-50\" },\n alignItems: \"items-center\",\n },\n bricks: [\n {\n id: \"testimonials-title\",\n type: \"text\",\n props: {\n content: \"<h2 style='text-align:center'>What Our Customers Say</h2>\",\n },\n },\n {\n id: \"customer-testimonials\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n text: \"This platform has completely transformed how we handle our projects. The automation features and intuitive interface have saved us countless hours every week.\",\n author: \"Sarah Johnson\",\n company: \"TechCorp Solutions\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=SJ\",\n alt: \"Sarah Johnson profile photo\",\n },\n socialIcon: \"mdi:linkedin\",\n },\n {\n text: \"Outstanding customer support and regular feature updates. We've been using this for over a year and it keeps getting better. Highly recommend!\",\n author: \"Mike Chen\",\n company: \"StartupFlow\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=MC\",\n alt: \"Mike Chen profile photo\",\n },\n socialIcon: \"mdi:twitter\",\n },\n {\n text: \"The results speak for themselves - our productivity increased by 40% after implementing this solution. It's like having an extra team member.\",\n author: \"Emily Rodriguez\",\n company: \"Digital Agency Pro\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=ER\",\n alt: \"Emily Rodriguez profile photo\",\n },\n socialIcon: \"mdi:briefcase\",\n },\n ],\n colorPreset: { color: \"white\" },\n shadow: \"shadow-lg\",\n padding: \"2rem\",\n gap: \"2rem\",\n },\n },\n ],\n },\n },\n {\n label: \"Location and contact information with map\",\n description: `A contact section featuring an interactive map alongside contact details.\nShows how to combine map bricks with text and contact information.\nPerfect for businesses with physical locations.`,\n example: {\n id: \"location-section\",\n label: \"Location\",\n order: 10,\n props: {\n direction: \"flex-row\",\n padding: \"4rem\",\n gap: \"3rem\",\n alignItems: \"items-start\",\n },\n mobileProps: {\n direction: \"flex-col\",\n },\n bricks: [\n {\n id: \"contact-details\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"2rem\",\n padding: \"2rem\",\n colorPreset: { color: \"gray-50\" },\n rounding: \"rounded-lg\",\n $children: [\n {\n id: \"office-title\",\n type: \"text\",\n props: {\n content: \"<h3>Visit Our Office</h3>\",\n },\n },\n {\n id: \"address\",\n type: \"text\",\n props: {\n content:\n \"<p><strong>Address:</strong><br>123 Business Street<br>Suite 100<br>San Francisco, CA 94105</p>\",\n },\n },\n {\n id: \"contact-info\",\n type: \"text\",\n props: {\n content:\n \"<p><strong>Phone:</strong> +1 (555) 123-4567<br><strong>Email:</strong> hello@company.com</p>\",\n },\n },\n {\n id: \"hours\",\n type: \"text\",\n props: {\n content:\n \"<p><strong>Business Hours:</strong><br>Monday - Friday: 9:00 AM - 6:00 PM<br>Saturday: 10:00 AM - 4:00 PM</p>\",\n },\n },\n ],\n },\n },\n {\n id: \"office-map\",\n type: \"map\",\n props: {\n address: \"123 Business Street, San Francisco, CA 94105\",\n zoom: 15,\n height: \"400px\",\n },\n },\n ],\n },\n },\n {\n label: \"Statistics showcase with icons and numbers\",\n description: `A metrics section displaying key statistics using icon and text bricks.\nDemonstrates how to create compelling data visualizations.\nUses horizontal layout with consistent spacing and visual hierarchy.`,\n example: {\n id: \"stats-section\",\n label: \"Stats\",\n order: 11,\n props: {\n direction: \"flex-col\",\n padding: \"5rem\",\n gap: \"3rem\",\n colorPreset: { color: \"gradient\", gradientDirection: \"bg-gradient-to-r\" },\n alignItems: \"items-center\",\n },\n bricks: [\n {\n id: \"stats-title\",\n type: \"text\",\n props: {\n content: \"<h2 style='text-align:center; color:white'>Our Impact</h2>\",\n },\n },\n {\n id: \"stats-container\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"4rem\",\n justifyContent: \"justify-center\",\n $children: [\n {\n id: \"users-stat\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n alignItems: \"items-center\",\n $children: [\n {\n id: \"users-icon\",\n type: \"icon\",\n props: {\n icon: \"users\",\n size: \"3rem\",\n color: \"white\",\n },\n },\n {\n id: \"users-number\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='color:white; text-align:center'>50K+</h3><p style='color:white; text-align:center'>Active Users</p>\",\n },\n },\n ],\n },\n },\n {\n id: \"projects-stat\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n alignItems: \"items-center\",\n $children: [\n {\n id: \"projects-icon\",\n type: \"icon\",\n props: {\n icon: \"briefcase\",\n size: \"3rem\",\n color: \"white\",\n },\n },\n {\n id: \"projects-number\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='color:white; text-align:center'>100K+</h3><p style='color:white; text-align:center'>Projects Created</p>\",\n },\n },\n ],\n },\n },\n {\n id: \"satisfaction-stat\",\n type: \"box\",\n props: {\n direction: \"flex-col\",\n gap: \"1rem\",\n alignItems: \"items-center\",\n $children: [\n {\n id: \"satisfaction-icon\",\n type: \"icon\",\n props: {\n icon: \"star\",\n size: \"3rem\",\n color: \"white\",\n },\n },\n {\n id: \"satisfaction-number\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='color:white; text-align:center'>98%</h3><p style='color:white; text-align:center'>Satisfaction Rate</p>\",\n },\n },\n ],\n },\n },\n ],\n mobileProps: {\n direction: \"flex-col\",\n gap: \"2rem\",\n },\n },\n },\n ],\n },\n },\n {\n label: \"Social links and newsletter signup\",\n description: `A community engagement section combining social media links with newsletter signup.\nShows how to use social-links bricks and forms together.\nCreates a cohesive call-to-action for community building.`,\n example: {\n id: \"community-section\",\n label: \"Community\",\n order: 12,\n props: {\n direction: \"flex-col\",\n padding: \"4rem\",\n gap: \"3rem\",\n colorPreset: { color: \"indigo-100\" },\n alignItems: \"items-center\",\n maxWidth: \"max-w-full\",\n },\n bricks: [\n {\n id: \"community-title\",\n type: \"text\",\n props: {\n content:\n \"<h2 style='text-align:center'>Stay Connected</h2><p style='text-align:center'>Join our community and never miss an update.</p>\",\n },\n },\n {\n id: \"social-links\",\n type: \"social-links\",\n props: {\n links: [\n { platform: \"twitter\", url: \"https://twitter.com/company\" },\n { platform: \"linkedin\", url: \"https://linkedin.com/company/company\" },\n { platform: \"github\", url: \"https://github.com/company\" },\n { platform: \"youtube\", url: \"https://youtube.com/company\" },\n ],\n size: \"large\",\n style: \"filled\",\n },\n },\n {\n id: \"newsletter-form\",\n type: \"form\",\n props: {\n title: \"Subscribe to Our Newsletter\",\n subtitle: \"Get weekly updates and exclusive content delivered to your inbox.\",\n submitLabel: \"Subscribe\",\n fields: [\n {\n name: \"email\",\n label: \"Email Address\",\n type: \"email\",\n required: true,\n placeholder: \"your@email.com\",\n },\n ],\n colorPreset: { color: \"white\" },\n rounding: \"rounded-lg\",\n padding: \"2rem\",\n shadow: \"shadow-md\",\n },\n },\n ],\n },\n },\n {\n label: \"Pricing table with multiple options\",\n description: `A pricing section using card bricks to create a comparison table.\nDemonstrates how to structure pricing tiers with different features.\nUses consistent styling with highlighted premium option.`,\n example: {\n id: \"pricing-section\",\n label: \"Pricing\",\n order: 13,\n props: {\n direction: \"flex-col\",\n padding: \"5rem\",\n gap: \"3rem\",\n alignItems: \"items-center\",\n },\n bricks: [\n {\n id: \"pricing-header\",\n type: \"text\",\n props: {\n content:\n \"<h2 style='text-align:center'>Choose Your Plan</h2><p style='text-align:center'>Select the perfect plan for your needs.</p>\",\n },\n },\n {\n id: \"pricing-cards\",\n type: \"box\",\n props: {\n direction: \"flex-row\",\n gap: \"2rem\",\n justifyContent: \"justify-center\",\n $children: [\n {\n id: \"basic-plan\",\n type: \"card\",\n props: {\n title: \"Basic\",\n subtitle: \"$9/month\",\n content: \"• 5 Projects<br>• 10GB Storage<br>• Email Support<br>• Basic Templates\",\n colorPreset: { color: \"white\" },\n border: { width: \"border-2\", color: \"border-gray-200\" },\n rounding: \"rounded-lg\",\n padding: \"2rem\",\n shadow: \"shadow-md\",\n },\n },\n {\n id: \"pro-plan\",\n type: \"card\",\n props: {\n title: \"Pro\",\n subtitle: \"$29/month\",\n content:\n \"• Unlimited Projects<br>• 100GB Storage<br>• Priority Support<br>• Premium Templates<br>• Advanced Analytics\",\n colorPreset: { color: \"blue-500\" },\n rounding: \"rounded-lg\",\n padding: \"2rem\",\n shadow: \"shadow-lg\",\n border: { width: \"border-2\", color: \"border-blue-400\" },\n },\n },\n {\n id: \"enterprise-plan\",\n type: \"card\",\n props: {\n title: \"Enterprise\",\n subtitle: \"Custom\",\n content:\n \"• Everything in Pro<br>• Unlimited Storage<br>• 24/7 Phone Support<br>• Custom Integrations<br>• Dedicated Account Manager\",\n colorPreset: { color: \"white\" },\n border: { width: \"border-2\", color: \"border-gray-200\" },\n rounding: \"rounded-lg\",\n padding: \"2rem\",\n shadow: \"shadow-md\",\n },\n },\n ],\n mobileProps: {\n direction: \"flex-col\",\n },\n },\n },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/hero.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { textContentRef } from \"../props/text\";\nimport { BsAlphabetUppercase } from \"react-icons/bs\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { shadowRef, textShadowRef } from \"../props/effects\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { alignItemsRef, justifyContentRef } from \"../props/align\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"hero\",\n category: \"basic\",\n name: \"Hero\",\n description: \"A big textual element for home pages.\",\n aiInstructions: `PURPOSE\nA prominent textual block (main heading + optional tagline) used to introduce a page, product, event, company, or dynamic entity.\n\nSTRUCTURE\n1. Always supply 'content' (can be plain text or simple HTML like <h1>, <strong>, <br/>).\n2. 'tagline' is optional. Prefer concise value (1 short sentence). Omit if not needed.\n3. Do NOT add buttons, images, forms, lists, or unrelated HTML here (use dedicated bricks for that).\n\nCOLOR & BACKGROUND\n• Prefer omitting colorPreset so the hero inherits its parent layout background.\n• When you need emphasis use semantic presets: primary-, secondary-, accent-, neutral-, base-*** or gradient variants like primary-gradient-400 (then add gradientDirection).\n• NEVER invent tokens like success-, warning-, danger-, blue-, orange- (they don't exist). Map them to semantic sets (e.g. success -> secondary, warning -> accent, danger -> accent or primary, blue -> primary, orange -> accent).\n\nLAYOUT & SPACING\n• Use padding suited to visual weight: landing hero: 5–8rem desktop; simple page intro: 2–4rem.\n• You may provide a mobile override via mobileProps (e.g. smaller padding such as 2rem).\n• Keep justifyContent + alignItems consistent (usually center/center or start/start). Avoid mixing center with start.\n\nTYPOGRAPHY\n• 'content' should typically render ONE main heading concept (avoid stacking multiple unrelated headings). Use <br/> to split lines when stylistic.\n• Avoid overly long taglines (>140 chars).\n\nDYNAMIC DATA\n• You may interpolate page queries fields fields: {{company.name}}, {{product.name}}, etc.\n• Ensure dynamic tokens exist in the referenced query context. Don't fabricate field names.\n\nRESPONSIVE\n• Use mobileProps only for necessary reductions (padding, alignment). Do not duplicate unchanged properties.\n\nDON'TS\n✗ Don't add properties that are not in the schema.\n✗ Don't wrap everything with extraneous HTML containers.\n✗ Don't use colorPreset plus a conflicting parent background rationale—choose one.\n\nDO\n✓ Keep content focused.\n✓ Use semantic colors thoughtfully.\n✓ Use gradientDirection ONLY with gradient presets.\n✓ Provide accessible plain text when not using HTML tags.\n`,\n icon: BsAlphabetUppercase,\n\n defaultWidth: { desktop: \"60dvw\", mobile: \"auto\" },\n\n // Force the wrapper direction to be the same as the text direction\n staticClasses: \"flex-col\",\n\n props: defineProps({\n content: textContentRef({\n title: \"Hero title\",\n default: \"<h1 style='text-align:center'>Lorem Ipsum<br />dolor sit amet</h1>\",\n }),\n tagline: Type.Optional(\n textContentRef({\n title: \"Hero tagline\",\n // default: \"<p style='text-align:center'>Use our platform to build your business with confidence.</p>\",\n }),\n ),\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n\n textShadow: Type.Optional(\n textShadowRef({\n default: \"text-shadow-sm\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"6rem\",\n description: \"Padding inside the hero.\",\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 justifyContent: Type.Optional(\n justifyContentRef({\n default: \"justify-center\",\n }),\n ),\n alignItems: Type.Optional(\n alignItemsRef({\n default: \"items-center\",\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Simple welcome hero with primary background\",\n type: \"hero\",\n props: {\n content: \"Welcome to Our Platform\",\n tagline: \"The future of productivity starts here\",\n padding: \"3rem\",\n colorPreset: {\n color: \"primary-400\",\n },\n },\n },\n {\n description: \"Startup hero with primary gradient background to bottom-right\",\n type: \"hero\",\n props: {\n content: \"Build Something Amazing\",\n tagline: \"Turn your ideas into reality with our cutting-edge tools\",\n padding: \"3rem\",\n colorPreset: {\n color: \"primary-500\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n },\n },\n {\n description: \"Construction company hero with bold presence\",\n type: \"hero\",\n props: {\n content: \"Building Tomorrow Today\",\n tagline: \"Quality construction services for residential and commercial projects\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Fashion brand hero with modern appeal\",\n type: \"hero\",\n props: {\n content: \"Express Your Style\",\n tagline: \"Contemporary fashion that speaks to your individuality\",\n padding: \"6rem\",\n },\n },\n {\n description: \"Law firm hero with authoritative tone\",\n type: \"hero\",\n props: {\n content: \"Justice You Can Trust\",\n tagline: \"Experienced legal representation for individuals and businesses\",\n padding: \"6rem\",\n colorPreset: {\n color: \"neutral-800\",\n },\n },\n },\n {\n description: \"Photography studio hero with artistic flair\",\n type: \"hero\",\n props: {\n content: \"Capturing Life's Moments\",\n tagline: \"Professional photography services for weddings, portraits, and events\",\n },\n },\n {\n description: \"Restaurant hero with warm colors and rounded design (accent mapping for former 'orange')\",\n type: \"hero\",\n props: {\n content: \"Authentic Italian Cuisine\",\n tagline: \"Fresh ingredients, traditional recipes, unforgettable flavors\",\n padding: \"4rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n {\n description:\n \"Tech company hero with secondary gradient (mapped from former 'success') and modern styling\",\n type: \"hero\",\n props: {\n content: \"Innovation Redefined\",\n tagline: \"Pushing the boundaries of what's possible with AI technology\",\n padding: \"5rem\",\n colorPreset: {\n color: \"secondary-gradient-400\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n textShadow: \"text-shadow-lg\",\n border: {\n width: \"border-2\",\n color: \"border-success-300\",\n },\n },\n },\n {\n description: \"Medical practice hero with trust-inspiring design (primary mapping for former 'blue')\",\n type: \"hero\",\n props: {\n content: \"Your Health, Our Priority\",\n tagline: \"Comprehensive healthcare services with compassionate care\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-500\",\n },\n rounding: \"rounded-lg\",\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description:\n \"Creative agency hero with accent gradient (mapped from former 'warning') and diagonal gradient\",\n type: \"hero\",\n props: {\n content: \"Creative Solutions\",\n tagline: \"Bold designs that make your brand unforgettable\",\n padding: \"3rem\",\n colorPreset: {\n color: \"accent-gradient-300\",\n gradientDirection: \"bg-gradient-to-tl\",\n },\n shadow: \"shadow-xl\",\n border: {\n width: \"border\",\n color: \"border-warning-200\",\n },\n },\n },\n {\n description: \"Fitness studio hero with accent strong presence (mapping former 'danger')\",\n type: \"hero\",\n props: {\n content: \"Transform Your Body\",\n tagline: \"High-intensity training programs that deliver real results\",\n padding: \"5rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n textShadow: \"text-shadow-md\",\n rounding: \"rounded-2xl\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n },\n {\n description: \"Minimalist hero with neutral tones and subtle effects\",\n type: \"hero\",\n props: {\n content: \"Simplicity Perfected\",\n tagline: \"Clean design solutions for modern businesses\",\n padding: \"8rem\",\n colorPreset: {\n color: \"neutral-100\",\n },\n shadow: \"shadow-sm\",\n border: {\n width: \"border\",\n color: \"border-neutral-300\",\n },\n rounding: \"rounded-md\",\n },\n },\n {\n description: \"Inverted dark hero using neutral-800 background and left alignment\",\n type: \"hero\",\n props: {\n content: \"Experience Powerful Automation\",\n tagline: \"Scale operations with intelligent workflows\",\n padding: \"5rem\",\n colorPreset: { color: \"neutral-800\" },\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n textShadow: \"text-shadow-sm\",\n },\n },\n {\n description: \"Compact hero without tagline (no colorPreset to inherit parent)\",\n type: \"hero\",\n props: {\n content: \"Documentation\",\n padding: \"2rem\",\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description: \"Responsive hero with large desktop padding and reduced mobile padding\",\n type: \"hero\",\n props: {\n content: \"All-In-One Platform\",\n tagline: \"Design • Launch • Grow\",\n padding: \"8rem\",\n colorPreset: { color: \"primary-gradient-500\", gradientDirection: \"bg-gradient-to-br\" },\n },\n mobileProps: {\n content: \"All-In-One Platform\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Hero using dynamic product dataset with gradient emphasis\",\n type: \"hero\",\n props: {\n content: \"Introducing {{product.name}}\",\n tagline: \"{{product.shortTagline}}\",\n padding: \"5rem\",\n colorPreset: { color: \"accent-gradient-400\", gradientDirection: \"bg-gradient-to-r\" },\n textShadow: \"text-shadow-md\",\n },\n },\n {\n description: \"Dynamic company hero using business query data\",\n type: \"hero\",\n props: {\n content: \"Welcome to {{company.name}}\",\n tagline: \"{{company.tagline}} - Serving {{company.location}} since {{company.foundedYear}}\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-500\",\n },\n },\n },\n {\n description: \"Dynamic employee spotlight using employee query\",\n type: \"hero\",\n props: {\n content: \"Meet {{employee.fullName}}\",\n tagline:\n \"{{employee.position}} at {{employee.department}} - {{employee.yearsExperience}} years of experience\",\n padding: \"3rem\",\n colorPreset: {\n color: \"secondary-400\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n },\n },\n {\n description: \"Dynamic product launch hero using product query\",\n type: \"hero\",\n props: {\n content: \"Introducing {{product.name}}\",\n tagline: \"{{product.description}} - Starting at ${{product.price}}\",\n padding: \"5rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n shadow: \"shadow-lg\",\n rounding: \"rounded-xl\",\n },\n },\n {\n description: \"Dynamic event announcement using event query\",\n type: \"hero\",\n props: {\n content: \"{{event.title}}\",\n tagline: \"Join us on {{event.date}} at {{event.venue}} - {{event.city}}\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-400\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n textShadow: \"text-shadow-md\",\n },\n },\n {\n description: \"Dynamic blog post hero using article query\",\n type: \"hero\",\n props: {\n content: \"{{article.title}}\",\n tagline: \"By {{article.author}} • Published {{article.publishDate}} • {{article.readTime}} min read\",\n padding: \"3rem\",\n colorPreset: {\n color: \"neutral-700\",\n },\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description: \"Dynamic service promotion using service query\",\n type: \"hero\",\n props: {\n content: \"{{service.name}}\",\n tagline: \"{{service.description}} - {{service.duration}} • Starting at ${{service.price}}\",\n padding: \"6rem\",\n colorPreset: {\n color: \"secondary-500\",\n gradientDirection: \"bg-gradient-to-tl\",\n },\n border: {\n width: \"border-2\",\n color: \"border-secondary-300\",\n },\n },\n },\n {\n description: \"Dynamic property showcase using property query\",\n type: \"hero\",\n props: {\n content: \"{{property.address}}\",\n tagline:\n \"${{property.price}} • {{property.bedrooms}} bed, {{property.bathrooms}} bath • {{property.squareFootage}} sq ft\",\n padding: \"4rem\",\n colorPreset: {\n color: \"accent-500\",\n },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic course announcement using course query\",\n type: \"hero\",\n props: {\n content: \"{{course.title}}\",\n tagline:\n \"Learn {{course.subject}} with {{course.instructor}} • {{course.duration}} • {{course.skillLevel}} level\",\n padding: \"5rem\",\n colorPreset: {\n color: \"primary-600\",\n },\n textShadow: \"text-shadow-lg\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -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(Type.String({ description: \"A tag for the page. Should be url-safe.\" }), {\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: [\n [\"navbar\", \"important\"],\n [\"navbar\", \"sidebar\"],\n [\"sidebar\"],\n [\"campaign-landing-20250610\"],\n ],\n maxItems: 8,\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 siteAttributesNoQueriesSchema = 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>;\nexport type SiteAttributesNoQueries = Static<typeof siteAttributesNoQueriesSchema>;\nexport type PageAttributesNoQueries = Static<typeof pageAttributesNoQueriesSchema>;\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/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,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":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/direction.ts"],"sourcesContent":["import { type SchemaOptions, type Static, type StringOptions, Type } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\nexport function direction(options: StringOptions = {}) {\n return StringEnum([\"flex-row\", \"flex-col\"], {\n title: \"Direction\",\n description: \"The direction of the layout\",\n enumNames: [\"Horizontal\", \"Vertical\"],\n // $id: \"styles:direction\",\n \"ui:styleId\": \"styles:direction\",\n examples: [\"flex-row\", \"flex-col\"],\n ...options,\n });\n}\n\nexport type DirectionSettings = Static<ReturnType<typeof direction>>;\n\nexport function directionRef(options: SchemaOptions = {}) {\n return typedRef(\"styles:direction\", options);\n}\n"],"mappings":";;;;;;;;;;AAIO,SAAS,UAAU,UAAyB,CAAC,GAAG;AACrD,SAAO,WAAW,CAAC,YAAY,UAAU,GAAG;AAAA,IAC1C,OAAO;AAAA,IACP,aAAa;AAAA,IACb,WAAW,CAAC,cAAc,UAAU;AAAA;AAAA,IAEpC,cAAc;AAAA,IACd,UAAU,CAAC,YAAY,UAAU;AAAA,IACjC,GAAG;AAAA,EACL,CAAC;AACH;AAIO,SAAS,aAAa,UAAyB,CAAC,GAAG;AACxD,SAAO,SAAS,oBAAoB,OAAO;AAC7C;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/tabs.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { Type } from \"@sinclair/typebox\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport type { BrickProps } from \"../props/types\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { HiOutlineViewColumns } from \"react-icons/hi2\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport type { BrickExample } from \"./_types\";\n\n// Tab configuration schema\nconst tabRef = Type.Object({\n label: Type.String({\n title: \"Tab Label\",\n description: \"The text shown on the tab button\",\n \"ai:instructions\": \"Use a short, descriptive label for the tab\",\n }),\n id: Type.Optional(\n Type.String({\n title: \"Tab ID\",\n description: \"Unique identifier for the tab (auto-generated if not provided)\",\n }),\n ),\n});\n\nexport const manifest = defineBrickManifest({\n type: \"tabs\",\n category: \"container\",\n name: \"Tabs\",\n description: \"A tabbed container that displays different content panels based on the selected tab.\",\n aiInstructions:\n \"Tabs are containers for organizing content into multiple panels. Each tab has a label and contains child bricks. Users can click tab buttons to switch between different content panels. Ideal for organizing related content, settings panels, or product information.\",\n isContainer: true,\n defaultWidth: {\n desktop: \"100%\",\n mobile: \"100%\",\n },\n defaultHeight: {\n desktop: \"auto\",\n },\n icon: HiOutlineViewColumns,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n tabs: Type.Array(tabRef, {\n title: \"Tabs\",\n description: \"List of tab configurations\",\n default: [{ label: \"Tab 1\" }, { label: \"Tab 2\" }],\n \"ai:instructions\":\n \"Each tab should have a descriptive label. Content for each tab is defined in the $children array.\",\n examples: [\n [{ label: \"Overview\" }, { label: \"Features\" }, { label: \"Pricing\" }],\n [{ label: \"About\" }, { label: \"Services\" }, { label: \"Contact\" }],\n ],\n }),\n defaultTab: Type.Optional(\n Type.Number({\n title: \"Default Tab\",\n description: \"Index of the tab to show by default (0-based)\",\n default: 0,\n minimum: 0,\n \"ai:instructions\": \"Use 0 for the first tab, 1 for the second tab, etc.\",\n }),\n ),\n tabPosition: Type.Optional(\n StringEnum([\"top\", \"bottom\"], {\n title: \"Tab Position\",\n description: \"Position of the tab buttons relative to content\",\n default: \"top\",\n \"ai:instructions\":\n \"Use 'top' for tabs above content (most common) or 'bottom' for tabs below content\",\n }),\n ),\n tabStyle: Type.Optional(\n StringEnum([\"pills\", \"underline\", \"bordered\"], {\n title: \"Tab Style\",\n description: \"Visual style of the tab buttons\",\n default: \"underline\",\n \"ai:instructions\":\n \"Pills are rounded buttons, underline shows a line under active tab, bordered shows tabs with borders\",\n }),\n ),\n fullWidth: Type.Optional(\n Type.Boolean({\n title: \"Full Width Tabs\",\n description: \"Make tab buttons span the full width of the container\",\n default: false,\n \"ai:instructions\": \"Enable this to make tab buttons evenly distribute across the full width\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"1.5rem\",\n description: \"Padding inside each tab panel.\",\n \"ai:instructions\": \"Use values like '1rem', '1.5rem', or '2rem' for tab content padding\",\n title: \"Content Padding\",\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n gap: Type.Optional(\n cssLengthRef({\n title: \"Tab Gap\",\n default: \"0.5rem\",\n description: \"Gap between tab buttons.\",\n \"ai:instructions\": \"Small values like '0.25rem' or '0.5rem' work best for tab spacing\",\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:gap\",\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 $children: Type.Array(Type.Array(Type.Any()), {\n \"ui:field\": \"hidden\",\n description: \"Array of child brick arrays - each sub-array represents the content for one tab\",\n default: [[], []],\n examples: [\n [\n // Tab 1 content\n [\n {\n type: \"text\",\n props: {\n content: \"<h3>Overview</h3><p>This is the overview tab content.</p>\",\n },\n },\n ],\n // Tab 2 content\n [\n {\n type: \"text\",\n props: {\n content: \"<h3>Features</h3><p>Here are our key features.</p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Learn More\",\n link: \"/features\",\n },\n },\n ],\n ],\n ],\n }),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Simple tabs with basic content in each panel\",\n type: \"tabs\",\n props: {\n tabs: [{ label: \"About\" }, { label: \"Services\" }, { label: \"Contact\" }],\n defaultTab: 0,\n tabStyle: \"underline\",\n $children: [\n [\n {\n type: \"text\",\n props: {\n content: \"<h3>About Us</h3><p>We are a company focused on delivering exceptional results.</p>\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content: \"<h3>Our Services</h3><p>We offer a wide range of professional services.</p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"View All Services\",\n link: \"/services\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Contact Information</h3><p>Email: hello@company.com</p><p>Phone: (555) 123-4567</p>\",\n },\n },\n ],\n ],\n },\n },\n {\n description: \"Product information tabs with pills style and custom styling\",\n type: \"tabs\",\n props: {\n tabs: [{ label: \"Overview\" }, { label: \"Specifications\" }, { label: \"Reviews\" }, { label: \"Support\" }],\n defaultTab: 0,\n tabStyle: \"pills\",\n fullWidth: true,\n colorPreset: {\n color: \"primary-50\",\n },\n border: {\n width: \"border\",\n color: \"border-primary-200\",\n },\n rounding: \"rounded-lg\",\n padding: \"2rem\",\n $children: [\n [\n {\n type: \"text\",\n props: {\n content: \"<h3>Product Overview</h3><p>This product revolutionizes the way you work.</p>\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/400x200\",\n alt: \"Product image\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n '<h3>Technical Specifications</h3><ul><li>Weight: 2.5 lbs</li><li>Dimensions: 12\" x 8\" x 2\"</li><li>Battery: 8 hours</li></ul>',\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n '<h3>Customer Reviews</h3><p>★★★★★ \"Amazing product, highly recommend!\"</p><p>★★★★☆ \"Great value for money.\"</p>',\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content: \"<h3>Support</h3><p>Need help? Contact our support team.</p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Contact Support\",\n link: \"/support\",\n },\n },\n ],\n ],\n },\n },\n {\n description: \"Portfolio sections with bordered tabs\",\n type: \"tabs\",\n props: {\n tabs: [{ label: \"Web Design\" }, { label: \"Mobile Apps\" }, { label: \"Branding\" }],\n defaultTab: 0,\n tabStyle: \"bordered\",\n shadow: \"shadow-md\",\n rounding: \"rounded-xl\",\n $children: [\n [\n {\n type: \"text\",\n props: {\n content: \"<h3>Web Design Projects</h3><p>Beautiful, responsive websites that convert.</p>\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/600x300\",\n alt: \"Web design portfolio\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content: \"<h3>Mobile Applications</h3><p>Native and cross-platform mobile solutions.</p>\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/300x500\",\n alt: \"Mobile app portfolio\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Brand Identity</h3><p>Comprehensive branding solutions for modern businesses.</p>\",\n },\n },\n {\n type: \"image\",\n props: {\n src: \"https://via.placeholder.com/500x400\",\n alt: \"Branding portfolio\",\n },\n },\n ],\n ],\n },\n },\n {\n description: \"FAQ sections with bottom-positioned tabs\",\n type: \"tabs\",\n props: {\n tabs: [{ label: \"General\" }, { label: \"Billing\" }, { label: \"Technical\" }],\n defaultTab: 0,\n tabPosition: \"bottom\",\n tabStyle: \"underline\",\n padding: \"1.5rem\",\n $children: [\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>General Questions</h3><p><strong>What is your company about?</strong></p><p>We provide excellent services to our customers.</p><p><strong>Where are you located?</strong></p><p>We have offices worldwide.</p>\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Billing Questions</h3><p><strong>How does billing work?</strong></p><p>We bill monthly based on usage.</p><p><strong>Can I change my plan?</strong></p><p>Yes, you can upgrade or downgrade anytime.</p>\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Technical Support</h3><p><strong>How do I reset my password?</strong></p><p>Use the forgot password link on the login page.</p><p><strong>Is there an API?</strong></p><p>Yes, we have a comprehensive REST API.</p>\",\n },\n },\n ],\n ],\n },\n },\n {\n description: \"Team member profiles using teamMembers query with dynamic tabs\",\n type: \"tabs\",\n props: {\n loop: {\n over: \"teamMembers\",\n },\n tabs: [{ label: \"{{teamMembers.name}}\" }],\n tabStyle: \"pills\",\n fullWidth: false,\n colorPreset: {\n color: \"secondary-100\",\n },\n padding: \"2rem\",\n $children: [\n [\n {\n type: \"image\",\n props: {\n src: \"{{teamMembers.photo}}\",\n alt: \"{{teamMembers.name}}\",\n },\n },\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{teamMembers.name}}</h3><p><strong>{{teamMembers.position}}</strong></p><p>{{teamMembers.bio}}</p><p>Email: {{teamMembers.email}}</p>\",\n },\n },\n ],\n ],\n },\n },\n {\n description: \"Product categories using productCategories query\",\n type: \"tabs\",\n props: {\n loop: {\n over: \"productCategories\",\n },\n tabs: [{ label: \"{{productCategories.categoryName}}\" }],\n tabStyle: \"bordered\",\n fullWidth: true,\n border: {\n width: \"border-2\",\n color: \"border-primary-300\",\n },\n rounding: \"rounded-lg\",\n shadow: \"shadow-lg\",\n $children: [\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>{{productCategories.categoryName}}</h3><p>{{productCategories.description}}</p><p>{{productCategories.productCount}} products available</p>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Browse {{productCategories.categoryName}}\",\n link: \"/products/{{productCategories.slug}}\",\n },\n },\n ],\n ],\n },\n },\n {\n description: \"Service packages with pricing information\",\n type: \"tabs\",\n props: {\n tabs: [{ label: \"Basic\" }, { label: \"Professional\" }, { label: \"Enterprise\" }],\n defaultTab: 1,\n tabStyle: \"pills\",\n fullWidth: true,\n colorPreset: {\n color: \"accent-50\",\n },\n border: {\n width: \"border\",\n color: \"border-accent-200\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n padding: \"2.5rem\",\n $children: [\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Basic Package</h3><p><strong>$99/month</strong></p><ul><li>5 Projects</li><li>10GB Storage</li><li>Email Support</li></ul>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Choose Basic\",\n link: \"/pricing/basic\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Professional Package</h3><p><strong>$199/month</strong></p><ul><li>25 Projects</li><li>100GB Storage</li><li>Priority Support</li><li>Advanced Analytics</li></ul>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Choose Professional\",\n link: \"/pricing/professional\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Enterprise Package</h3><p><strong>$499/month</strong></p><ul><li>Unlimited Projects</li><li>1TB Storage</li><li>24/7 Phone Support</li><li>Custom Integrations</li><li>Dedicated Account Manager</li></ul>\",\n },\n },\n {\n type: \"button\",\n props: {\n text: \"Contact Sales\",\n link: \"/contact/enterprise\",\n },\n },\n ],\n ],\n },\n },\n {\n description: \"Documentation sections with technical content\",\n type: \"tabs\",\n props: {\n tabs: [\n { label: \"Getting Started\" },\n { label: \"API Reference\" },\n { label: \"Examples\" },\n { label: \"Troubleshooting\" },\n ],\n defaultTab: 0,\n tabStyle: \"underline\",\n tabPosition: \"top\",\n padding: \"1.5rem\",\n colorPreset: {\n color: \"neutral-50\",\n },\n $children: [\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Getting Started</h3><p>Welcome to our platform! Here's how to get started:</p><ol><li>Create an account</li><li>Set up your first project</li><li>Invite team members</li></ol>\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>API Reference</h3><p>Our REST API provides programmatic access to all features:</p><pre>GET /api/v1/projects</pre><pre>POST /api/v1/projects</pre>\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Code Examples</h3><p>Here are some common use cases:</p><pre>curl -X GET https://api.example.com/projects</pre>\",\n },\n },\n ],\n [\n {\n type: \"text\",\n props: {\n content:\n \"<h3>Troubleshooting</h3><p><strong>Issue:</strong> Cannot connect to API</p><p><strong>Solution:</strong> Check your API key and network connection.</p>\",\n },\n },\n ],\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/align.ts"],"sourcesContent":["import type { Static, StringOptions } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\nexport function justifyContent(options: StringOptions = {}) {\n return StringEnum(\n [\"justify-start\", \"justify-center\", \"justify-end\", \"justify-between\", \"justify-around\", \"justify-evenly\"],\n {\n enumNames: [\"Start\", \"Center\", \"End\", \"Between\", \"Around\", \"Evenly\"],\n // $id: \"styles:justifyContent\",\n title: \"Justify bricks\",\n \"ui:field\": \"justify-content\",\n \"ui:responsive\": true,\n \"ui:styleId\": \"styles:justifyContent\",\n examples: [\"justify-center\", \"justify-evenly\"],\n ...options,\n },\n );\n}\n\nexport type JustifyContentSettings = Static<ReturnType<typeof justifyContent>>;\n\nexport function justifyContentRef(options: StringOptions = {}) {\n return typedRef(\"styles:justifyContent\", options);\n}\n\nexport function alignItems(options: StringOptions = {}) {\n return StringEnum([\"items-start\", \"items-center\", \"items-end\", \"items-stretch\"], {\n enumNames: [\"Start\", \"Center\", \"End\", \"Stretch\"],\n // $id: \"styles:alignItems\",\n title: \"Align bricks\",\n \"ui:field\": \"align-items\",\n \"ui:responsive\": true,\n \"ui:styleId\": \"styles:alignItems\",\n examples: [\"items-center\", \"items-stretch\"],\n ...options,\n });\n}\n\nexport type AlignItemsSettings = Static<ReturnType<typeof alignItems>>;\n\nexport function alignItemsRef(options: StringOptions = {}) {\n return typedRef(\"styles:alignItems\", options);\n}\n\nexport function alignSelf(options: StringOptions = {}) {\n return StringEnum([\"self-auto\", \"self-start\", \"self-center\", \"self-end\", \"self-stretch\"], {\n enumNames: [\"Auto\", \"Start\", \"Center\", \"End\", \"Stretch\"],\n default: \"self-auto\",\n // $id: \"styles:alignSelf\",\n title: \"Align self\",\n \"ui:field\": \"align-self\",\n \"ui:responsive\": true,\n \"ui:styleId\": \"styles:alignSelf\",\n ...options,\n });\n}\n\nexport type AlignSelfSettings = Static<ReturnType<typeof alignSelf>>;\n\nexport function alignSelfRef(options: StringOptions = {}) {\n return typedRef(\"styles:alignSelf\", options);\n}\n"],"mappings":";;;;;;;;;;AAIO,SAAS,eAAe,UAAyB,CAAC,GAAG;AAC1D,SAAO;AAAA,IACL,CAAC,iBAAiB,kBAAkB,eAAe,mBAAmB,kBAAkB,gBAAgB;AAAA,IACxG;AAAA,MACE,WAAW,CAAC,SAAS,UAAU,OAAO,WAAW,UAAU,QAAQ;AAAA;AAAA,MAEnE,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,UAAU,CAAC,kBAAkB,gBAAgB;AAAA,MAC7C,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,kBAAkB,UAAyB,CAAC,GAAG;AAC7D,SAAO,SAAS,yBAAyB,OAAO;AAClD;AAEO,SAAS,WAAW,UAAyB,CAAC,GAAG;AACtD,SAAO,WAAW,CAAC,eAAe,gBAAgB,aAAa,eAAe,GAAG;AAAA,IAC/E,WAAW,CAAC,SAAS,UAAU,OAAO,SAAS;AAAA;AAAA,IAE/C,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,UAAU,CAAC,gBAAgB,eAAe;AAAA,IAC1C,GAAG;AAAA,EACL,CAAC;AACH;AAIO,SAAS,cAAc,UAAyB,CAAC,GAAG;AACzD,SAAO,SAAS,qBAAqB,OAAO;AAC9C;AAEO,SAAS,UAAU,UAAyB,CAAC,GAAG;AACrD,SAAO,WAAW,CAAC,aAAa,cAAc,eAAe,YAAY,cAAc,GAAG;AAAA,IACxF,WAAW,CAAC,QAAQ,SAAS,UAAU,OAAO,SAAS;AAAA,IACvD,SAAS;AAAA;AAAA,IAET,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,GAAG;AAAA,EACL,CAAC;AACH;AAIO,SAAS,aAAa,UAAyB,CAAC,GAAG;AACxD,SAAO,SAAS,oBAAoB,OAAO;AAC7C;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/image.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { imageRef } from \"../props/image\";\nimport { shadowRef } from \"../props/effects\";\nimport { RxImage } from \"react-icons/rx\";\nimport { string } from \"../props/string\";\nimport { Type } from \"@sinclair/typebox\";\nimport type { BrickProps } from \"../props/types\";\nimport { backgroundColorRef } from \"../props/background\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { loopRef } from \"../props/dynamic\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"image\",\n name: \"Image\",\n category: \"media\",\n description: \"An image brick\",\n aiInstructions: `PURPOSE\nDisplay a single image with optional framing (padding, rounding, border, shadow, colorPreset) and attribution (author/provider). Can also loop over a dataset showing one image per item.\n\nREQUIRED\n• 'image.src' and 'image.alt' (alt must be meaningful, not empty; may interpolate page queries fields).\n\nCOLOR & BACKGROUND\n• colorPreset is optional – use when you need a frame or tone behind the image (neutral / accent / primary / secondary / base or gradient variants). Omit to keep a transparent/inherited background.\n• Only use gradientDirection when the preset is a gradient token (e.g. primary-gradient-400).\n\nSTYLING\n• padding should be a single css length value (like '1rem' or '0.75rem').\n• rounding defaults to a modest radius; override for circular avatars (rounded-full) or strong accent (rounded-xl).\n• border optional: keep subtle (border / border-2) unless emphasis required.\n• Use shadow sparingly (shadow-sm / shadow-md); large (shadow-xl) for hero or banner impact.\n\nATTRIBUTION\n• If using external photography include author { name, url } and provider (e.g. 'unsplash'). Omit provider if internal asset.\n\nDYNAMIC DATA\n• Interpolate dataset fields with {{dataset.field}} in src and alt.\n• For lists: use loop.over = \"datasetName\". Provide exactly one example object (this component itself) when looping (do not replicate multiple objects).\n\nRESPONSIVE\n• mobileProps may reduce padding or alter rounding only if it materially improves mobile layout. Always repeat required fields (image.src, image.alt) if providing mobileProps.\n\nDON'TS\n✗ Don't add unrelated props.\n✗ Don't fabricate color tokens (no success-, warning-, danger- etc.).\n✗ Don't use HTML markup inside alt.\n\nDO\n✓ Provide descriptive alt text (<125 chars) describing content or function.\n✓ Use semantic color presets consistently.\n✓ Add author/provider when you have them.\n`,\n defaultWidth: { desktop: \"auto\", mobile: \"100%\" },\n icon: RxImage,\n props: defineProps({\n image: imageRef({\n metadata: {\n category: \"content\",\n },\n }),\n colorPreset: Type.Optional(colorPresetRef()),\n padding: Type.Optional(\n cssLengthRef({\n description: \"Padding inside the image.\",\n title: \"Padding\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\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 blurHash: Type.Optional(\n string(\"Blur Hash\", {\n \"ui:field\": \"hidden\",\n description: \"A placeholder for the image while it is loading. Use a blur hash string.\",\n }),\n ),\n author: Type.Optional(\n Type.Object(\n {\n name: string(\"Image Author\", {\n description: \"Image author. Use this to give credit to the author\",\n }),\n url: string(\"Image Author URL\", {\n description: \"Image author URL. Use this to give credit to the author\",\n }),\n },\n {\n \"ui:field\": \"hidden\",\n },\n ),\n ),\n provider: Type.Optional(\n string(\"Image Provider\", {\n \"ui:field\": \"hidden\",\n \"ai:instructions\": \"The provider of the image, e.g. 'unsplash', 'pexels', etc.\",\n }),\n ),\n loop: Type.Optional(loopRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n mobileProps?: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Hero landscape image with large shadow\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/800x400.png?text=Hero+Landscape\",\n alt: \"Beautiful landscape view for hero section\",\n },\n shadow: \"shadow-lg\",\n },\n },\n {\n description: \"Framed image with accent gradient background and padding\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/640x360.png?text=Showcase\",\n alt: \"Showcase screenshot inside accent gradient frame\",\n },\n colorPreset: { color: \"accent-gradient-400\", gradientDirection: \"bg-gradient-to-br\" },\n padding: \"1rem\",\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Team member profile photo, full rounded\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Profile+Photo\",\n alt: \"Team member profile photo\",\n },\n shadow: \"shadow-md\",\n rounding: \"rounded-full\",\n },\n },\n {\n description: \"Product showcase image\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Product+Image\",\n alt: \"Premium product showcase\",\n },\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Blog article featured image with medium shadow and full author info\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/600x300.png?text=Article+Featured\",\n alt: \"Featured image for blog article\",\n },\n author: {\n name: \"John Photographer\",\n url: \"https://example.com/john\",\n },\n provider: \"unsplash\",\n shadow: \"shadow-md\",\n },\n },\n\n {\n description: \"Logo image with padding and small shadow\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/200x80.png?text=Company+Logo\",\n alt: \"Company logo\",\n },\n padding: \"p-8\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Dark framed image with neutral-800 background and subtle border\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/500x300.png?text=Dark+Mode\",\n alt: \"Interface preview in dark mode\",\n },\n colorPreset: { color: \"neutral-800\" },\n padding: \"1rem\",\n border: { width: \"border\", color: \"border-neutral-700\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Testimonial customer photo with large shadow and small padding\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/120x120.png?text=Customer\",\n alt: \"Happy customer testimonial photo\",\n },\n shadow: \"shadow-lg\",\n padding: \"p-2\",\n },\n },\n {\n description: \"Event banner image with neutral-500 background\",\n type: \"image\",\n props: {\n colorPreset: { color: \"neutral-500\" },\n image: {\n src: \"https://via.placeholder.com/800x200.png?text=Event+Banner\",\n alt: \"Annual conference event banner\",\n },\n shadow: \"shadow-xl\",\n author: {\n name: \"Event Photographer\",\n url: \"https://example.com/photographer\",\n },\n provider: \"pexels\",\n },\n },\n {\n description: \"Illustration with background and padding\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/150x150.png?text=Blabla+Feature\",\n alt: \"Feature illustration\",\n },\n padding: \"p-8\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Image with blurHash\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/300x200.png?text=Card+Image\",\n alt: \"My image\",\n },\n shadow: \"shadow-md\",\n blurHash: \"L6PZfSi_.AyE_3t7t7R**0o#DgR4\",\n },\n },\n {\n description: \"Responsive image with reduced mobile padding\",\n type: \"image\",\n props: {\n image: {\n src: \"https://via.placeholder.com/640x360.png?text=Responsive\",\n alt: \"Responsive framed screenshot\",\n },\n padding: \"2rem\",\n colorPreset: { color: \"primary-50\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-sm\",\n },\n mobileProps: {\n image: {\n src: \"https://via.placeholder.com/640x360.png?text=Responsive\",\n alt: \"Responsive framed screenshot\",\n },\n padding: \"1rem\",\n colorPreset: { color: \"primary-50\" },\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Dynamic employee photo using employee query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{employee.photo}}\",\n alt: \"Photo of {{employee.fullName}}\",\n },\n rounding: \"rounded-full\",\n shadow: \"shadow-lg\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Dynamic product image using product query with author attribution\",\n type: \"image\",\n props: {\n image: {\n src: \"{{product.featuredImage}}\",\n alt: \"{{product.name}} - {{product.category}}\",\n },\n author: {\n name: \"{{product.photographer}}\",\n url: \"{{product.photographerUrl}}\",\n },\n provider: \"company-assets\",\n shadow: \"shadow-md\",\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Dynamic company logo using company query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{company.logo}}\",\n alt: \"{{company.name}} logo\",\n },\n padding: \"2rem\",\n shadow: \"shadow-sm\",\n colorPreset: { color: \"neutral-100\" },\n },\n },\n {\n description: \"Dynamic event banner using event query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{event.bannerImage}}\",\n alt: \"{{event.title}} event banner\",\n },\n shadow: \"shadow-xl\",\n rounding: \"rounded-xl\",\n author: {\n name: \"{{event.photographer}}\",\n url: \"{{event.photographerProfile}}\",\n },\n provider: \"event-photography\",\n },\n },\n {\n description: \"Loop template: product gallery (one definition, repeated by loop.over)\",\n type: \"image\",\n props: {\n image: {\n src: \"{{products.mainImage}}\",\n alt: \"{{products.name}} – {{products.category}}\",\n },\n rounding: \"rounded-md\",\n padding: \"0.5rem\",\n shadow: \"shadow-sm\",\n loop: { over: \"products\" },\n },\n },\n {\n description: \"Dynamic article featured image using article query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{article.featuredImage}}\",\n alt: \"Featured image for {{article.title}}\",\n },\n author: {\n name: \"{{article.imageCredit}}\",\n url: \"{{article.imageCreditUrl}}\",\n },\n provider: \"{{article.imageProvider}}\",\n shadow: \"shadow-md\",\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Dynamic property photo using property query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{property.mainPhoto}}\",\n alt: \"{{property.address}} - {{property.propertyType}}\",\n },\n shadow: \"shadow-lg\",\n rounding: \"rounded-xl\",\n colorPreset: { color: \"primary-50\" },\n padding: \"1rem\",\n },\n },\n {\n description: \"Dynamic portfolio piece using portfolio query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{portfolio.imageUrl}}\",\n alt: \"{{portfolio.projectName}} for {{portfolio.clientName}}\",\n },\n author: {\n name: \"{{portfolio.photographer}}\",\n url: \"{{portfolio.photographerWebsite}}\",\n },\n provider: \"portfolio-assets\",\n shadow: \"shadow-md\",\n rounding: \"rounded-lg\",\n padding: \"0.5rem\",\n },\n },\n {\n description: \"Dynamic service illustration using service query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{service.illustration}}\",\n alt: \"{{service.name}} service illustration\",\n },\n colorPreset: { color: \"secondary-100\" },\n padding: \"2rem\",\n shadow: \"shadow-sm\",\n rounding: \"rounded-full\",\n },\n },\n {\n description: \"Dynamic testimonial customer photo using testimonial query\",\n type: \"image\",\n props: {\n image: {\n src: \"{{testimonial.customerPhoto}}\",\n alt: \"{{testimonial.customerName}} from {{testimonial.company}}\",\n },\n rounding: \"rounded-full\",\n shadow: \"shadow-lg\",\n padding: \"0.25rem\",\n colorPreset: { color: \"accent-50\" },\n },\n },\n {\n description: \"Product gallery using products query with loop\",\n type: \"image\",\n props: {\n image: {\n src: \"{{products.mainImage}}\",\n alt: \"{{products.name}} - {{products.category}}\",\n },\n author: {\n name: \"{{products.photographer}}\",\n url: \"{{products.photographerUrl}}\",\n },\n provider: \"product-catalog\",\n shadow: \"shadow-md\",\n rounding: \"rounded-lg\",\n padding: \"0.5rem\",\n colorPreset: { color: \"primary-50\" },\n loop: {\n over: \"products\",\n },\n },\n },\n {\n description: \"Team member photos using teamMembers query with loop\",\n type: \"image\",\n props: {\n image: {\n src: \"{{teamMembers.profilePhoto}}\",\n alt: \"{{teamMembers.fullName}} - {{teamMembers.position}}\",\n },\n rounding: \"rounded-full\",\n shadow: \"shadow-lg\",\n padding: \"0.75rem\",\n colorPreset: { color: \"secondary-100\" },\n loop: {\n over: \"teamMembers\",\n },\n },\n },\n];\n"],"mappings":"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","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\";\nimport type { BrickExample } from \"./_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: BrickExample<Manifest>[] = [\n {\n description: \"Basic timeline with milestones\",\n type: \"timeline\",\n props: {\n items: [\n {\n id: \"start\",\n title: \"Project Kickoff\",\n subtitle: \"Planning Phase\",\n date: \"January 2024\",\n description: \"Initial project planning and team assembly\",\n status: \"completed\",\n },\n {\n id: \"development\",\n title: \"Development Phase\",\n subtitle: \"Building the Product\",\n date: \"February - April 2024\",\n description: \"Core development and feature implementation\",\n status: \"completed\",\n },\n {\n id: \"testing\",\n title: \"Testing & QA\",\n subtitle: \"Quality Assurance\",\n date: \"May 2024\",\n description: \"Comprehensive testing and bug fixes\",\n status: \"current\",\n },\n {\n id: \"launch\",\n title: \"Product Launch\",\n subtitle: \"Go Live\",\n date: \"June 2024\",\n description: \"Official product release and marketing campaign\",\n status: \"upcoming\",\n },\n ],\n layout: \"left\",\n showConnector: true,\n showIcons: true,\n showDates: true,\n },\n },\n\n {\n description: \"Alternating timeline with custom colors\",\n type: \"timeline\",\n props: {\n items: [\n {\n title: \"Company Founded\",\n date: \"2020\",\n description: \"Started with a vision to change the industry\",\n },\n {\n title: \"First Product Launch\",\n date: \"2021\",\n description: \"Released our flagship product to market\",\n },\n {\n title: \"Series A Funding\",\n date: \"2022\",\n description: \"Raised $10M to accelerate growth\",\n },\n {\n title: \"International Expansion\",\n date: \"2023\",\n description: \"Opened offices in Europe and Asia\",\n },\n ],\n layout: \"alternating\",\n colorPreset: { color: \"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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AAOrB,SAAS,mBAAmB;AAK5B,IAAM,qBAAqB,KAAK,OAAO;AAAA,EACrC,IAAI,KAAK,SAAS,KAAK,OAAO,EAAE,OAAO,KAAK,CAAC,CAAC;AAAA,EAC9C,OAAO,KAAK,OAAO;AAAA,IACjB,OAAO;AAAA,IACP,aAAa;AAAA,EACf,CAAC;AAAA,EACD,UAAU,KAAK;AAAA,IACb,KAAK,OAAO;AAAA,MACV,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,aAAa,KAAK;AAAA,IAChB,KAAK,OAAO;AAAA,MACV,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,MAAM,KAAK;AAAA,IACT,KAAK,OAAO;AAAA,MACV,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,MAAM,KAAK;AAAA,IACT,KAAK,OAAO;AAAA,MACV,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,QAAQ,KAAK;AAAA,IACX,KAAK,MAAM,CAAC,KAAK,QAAQ,WAAW,GAAG,KAAK,QAAQ,SAAS,GAAG,KAAK,QAAQ,UAAU,CAAC,GAAG;AAAA,MACzF,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,aACE;AAAA,EACF,MAAM;AAAA,EACN,OAAO,YAAY;AAAA,IACjB,OAAO,KAAK,MAAM,oBAAoB;AAAA,MACpC,OAAO;AAAA,MACP,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,SAAS,CAAC;AAAA,IACZ,CAAC;AAAA,IAED,WAAW,KAAK;AAAA,MACd,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG;AAAA,QACjC,OAAO;AAAA,QACP,aACE;AAAA,QACF,YAAY;AAAA,QACZ,SAAS,CAAC;AAAA,MACZ,CAAC;AAAA,IACH;AAAA;AAAA,IAGA,QAAQ,KAAK;AAAA,MACX,KAAK,MAAM,CAAC,KAAK,QAAQ,MAAM,GAAG,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,aAAa,CAAC,GAAG;AAAA,QACrF,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IAEA,eAAe,KAAK;AAAA,MAClB,KAAK,QAAQ;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IAEA,gBAAgB,KAAK;AAAA,MACnB,eAAe;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA;AAAA,IAGA,aAAa,KAAK;AAAA,MAChB,aAAa;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IAEA,WAAW,KAAK;AAAA,MACd,KAAK,QAAQ;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IAEA,UAAU,KAAK;AAAA,MACb,KAAK,MAAM,CAAC,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG;AAAA,QACvE,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IAEA,WAAW,KAAK;AAAA,MACd,KAAK,QAAQ;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IAEA,cAAc,KAAK;AAAA,MACjB,KAAK,MAAM,CAAC,KAAK,QAAQ,KAAK,GAAG,KAAK,QAAQ,QAAQ,GAAG,KAAK,QAAQ,QAAQ,CAAC,GAAG;AAAA,QAChF,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA;AAAA,IAGA,aAAa,KAAK;AAAA,MAChB,eAAe;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IAEA,SAAS,KAAK;AAAA,MACZ,aAAa;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IAEA,QAAQ,KAAK;AAAA,MACX,UAAU;AAAA,QACR,OAAO;AAAA,QACP,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IAEA,QAAQ,KAAK;AAAA,MACX,UAAU;AAAA,QACR,OAAO;AAAA,QACP,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IAEA,UAAU,KAAK;AAAA,MACb,YAAY;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA;AAAA,IAGA,MAAM,KAAK,SAAS,QAAQ,CAAC;AAAA,EAC/B,CAAC;AACH,CAAC;AAIM,IAAM,WAAqC;AAAA,EAChD;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,QACL;AAAA,UACE,IAAI;AAAA,UACJ,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,UACb,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,UACb,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,UACb,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,UACb,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EAEA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,QACL;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,MACR,aAAa,EAAE,OAAO,WAAW;AAAA,MACjC,gBAAgB,EAAE,OAAO,WAAW;AAAA,MACpC,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EAEA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,QACL;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT;AAAA,UACE;AAAA,YACE,IAAI;AAAA,YACJ,MAAM;AAAA,YACN,OAAO,EAAE,SAAS,yDAAyD;AAAA,UAC7E;AAAA,QACF;AAAA,QACA;AAAA,UACE;AAAA,YACE,IAAI;AAAA,YACJ,MAAM;AAAA,YACN,OAAO,EAAE,SAAS,oDAAoD;AAAA,UACxE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,QACL;AAAA,UACE,OAAO;AAAA,UACP,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,WAAW;AAAA,MACX,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,QACL;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAU;AAAA,MACV,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EAEA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,QACL;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,MACR,aAAa,EAAE,OAAO,YAAY;AAAA,MAClC,QAAQ,EAAE,OAAO,UAAU,OAAO,WAAW;AAAA,MAC7C,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO,CAAC;AAAA,MACR,MAAM;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,MACA,QAAQ;AAAA,MACR,eAAe;AAAA,IACjB;AAAA,EACF;AAAA,EAEA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,QACL;AAAA,UACE,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,aAAa,EAAE,OAAO,aAAa;AAAA,MACnC,QAAQ;AAAA,MACR,QAAQ,EAAE,OAAO,UAAU,OAAO,aAAa;AAAA,MAC/C,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,MACb,gBAAgB,EAAE,OAAO,aAAa;AAAA,IACxC;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-registry.test.d.ts","sourceRoot":"","sources":["../../../src/shared/tests/schema-registry.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { TSchema } from "@sinclair/typebox";
|
|
2
|
-
export declare const schemaRegistry: Map<string, TSchema>;
|
|
3
|
-
export declare function registerSchema(id: string, schema: TSchema): void;
|
|
4
|
-
export declare function unregisterSchema(id: string): void;
|
|
5
|
-
//# sourceMappingURL=schema-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-registry.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/schema-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAgBjD,eAAO,MAAM,cAAc,sBAA6B,CAAC;AAEzD,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,QAEzD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,QAE1C"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
registerSchema,
|
|
5
|
-
schemaRegistry,
|
|
6
|
-
unregisterSchema
|
|
7
|
-
} from "../chunk-IQIISR22.js";
|
|
8
|
-
import "../chunk-Q4NPPLEU.js";
|
|
9
|
-
import "../chunk-F22LDHEO.js";
|
|
10
|
-
import "../chunk-Y74LZNND.js";
|
|
11
|
-
import "../chunk-TNMNMYOB.js";
|
|
12
|
-
import "../chunk-N3ZTQD5I.js";
|
|
13
|
-
import "../chunk-W6MRYRGJ.js";
|
|
14
|
-
import "../chunk-NTLAKMMQ.js";
|
|
15
|
-
import "../chunk-TFGGYU6Y.js";
|
|
16
|
-
import "../chunk-SE6O65HC.js";
|
|
17
|
-
import "../chunk-2RK3CPYJ.js";
|
|
18
|
-
import "../chunk-BPBKHEQ5.js";
|
|
19
|
-
import "../chunk-ZLYIRH2B.js";
|
|
20
|
-
import "../chunk-RV7AYVFV.js";
|
|
21
|
-
import "../chunk-A2QPY54H.js";
|
|
22
|
-
import "../chunk-JK2FWFJU.js";
|
|
23
|
-
import "../chunk-ZGQ3AQBG.js";
|
|
24
|
-
export {
|
|
25
|
-
registerSchema,
|
|
26
|
-
schemaRegistry,
|
|
27
|
-
unregisterSchema
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=schema-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-registry.test.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/tests/schema-registry.test.ts"],"names":[],"mappings":""}
|