@upstart.gg/sdk 0.0.135 → 0.0.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/ai/schemas.d.ts +11 -2
- package/dist/shared/ai/schemas.d.ts.map +1 -1
- package/dist/shared/ai/schemas.js +38 -8
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +93 -81
- 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 +86 -86
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +22 -25
- 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/_types.d.ts +9 -0
- package/dist/shared/bricks/manifests/_types.d.ts.map +1 -0
- package/dist/shared/bricks/manifests/_types.js +3 -0
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts +4 -8
- 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.d.ts.map +1 -1
- 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 +4 -8
- 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 +5 -12
- 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 +10 -9
- 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 +4 -8
- 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 +5 -9
- 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 +5 -9
- 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 +4 -8
- 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 +3 -7
- 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 +3 -7
- 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 +3 -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 +4 -8
- 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 +3 -7
- 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 +7 -11
- 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 +3 -7
- 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 +4 -8
- 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 +3 -7
- 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 +6 -10
- 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 +6 -10
- 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 +4 -8
- 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 +4 -12
- 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 +9 -13
- 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 +3 -7
- 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 -152
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +49 -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-LXAO3JA6.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-V3UA3LRK.js → chunk-6AE7UD73.js} +56 -37
- package/dist/shared/chunk-6AE7UD73.js.map +1 -0
- package/dist/shared/chunk-7U5WPHXB.js +346 -0
- 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-BZTWZC77.js +530 -0
- package/dist/shared/chunk-BZTWZC77.js.map +1 -0
- package/dist/shared/{chunk-QSND5IWT.js → chunk-DCM4732T.js} +24 -43
- 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-MLZT7MRQ.js → chunk-FHA4DFIM.js} +26 -27
- package/dist/shared/chunk-FHA4DFIM.js.map +1 -0
- package/dist/shared/{chunk-GRMY35BU.js → chunk-FUUSAMN3.js} +165 -40
- 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-BMWRR4DI.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-TB3X4LRQ.js → chunk-J45LSQT6.js} +2 -2
- package/dist/shared/chunk-J45LSQT6.js.map +1 -0
- package/dist/shared/{chunk-WGDUJSSS.js → chunk-JF52BBFD.js} +27 -28
- package/dist/shared/chunk-JF52BBFD.js.map +1 -0
- package/dist/shared/{chunk-GPCI2N2A.js → chunk-JLDAS3VE.js} +136 -33
- 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-JW7MQAU4.js +354 -0
- 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-TEO6TJOM.js → chunk-KQH6V22E.js} +36 -35
- package/dist/shared/{chunk-TEO6TJOM.js.map → chunk-KQH6V22E.js.map} +1 -1
- package/dist/shared/{chunk-3KLRW4I2.js → chunk-LGDDJJHK.js} +212 -156
- package/dist/shared/chunk-LGDDJJHK.js.map +1 -0
- package/dist/shared/{chunk-QL3T5HJQ.js → chunk-LGGPCCCY.js} +3 -3
- package/dist/shared/chunk-LGGPCCCY.js.map +1 -0
- package/dist/shared/{chunk-2HO4FHLM.js → chunk-LPAQ47C6.js} +137 -171
- 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-SHUGHJ7V.js → chunk-MYOLWTB2.js} +29 -32
- package/dist/shared/chunk-MYOLWTB2.js.map +1 -0
- package/dist/shared/{chunk-Z2NTDFB4.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-GCQURRVB.js → chunk-PF75LW33.js} +24 -27
- package/dist/shared/chunk-PF75LW33.js.map +1 -0
- package/dist/shared/{chunk-EWSPTRDL.js → chunk-QEJGPYTB.js} +132 -48
- package/dist/shared/chunk-QEJGPYTB.js.map +1 -0
- package/dist/shared/{chunk-P3RH5URN.js → chunk-SK2O7GFC.js} +17 -18
- package/dist/shared/chunk-SK2O7GFC.js.map +1 -0
- package/dist/shared/{chunk-UQF52PWK.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-O5PLB3YB.js → chunk-T6C3NG2L.js} +68 -59
- package/dist/shared/chunk-T6C3NG2L.js.map +1 -0
- package/dist/shared/{chunk-U7TVEPKA.js → chunk-TBT2PTGB.js} +41 -33
- package/dist/shared/chunk-TBT2PTGB.js.map +1 -0
- package/dist/shared/{chunk-CKFRSHR2.js → chunk-U4KZUX37.js} +18 -19
- package/dist/shared/chunk-U4KZUX37.js.map +1 -0
- package/dist/shared/{chunk-4WI23M7W.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-DRTGM2UJ.js → chunk-W2RFDII5.js} +3 -3
- package/dist/shared/chunk-W2RFDII5.js.map +1 -0
- 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-QQQ3FYPG.js → chunk-XK2CERPB.js} +147 -31
- 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-Z35I5JM5.js → chunk-ZVJNRKT4.js} +18 -20
- package/dist/shared/chunk-ZVJNRKT4.js.map +1 -0
- package/dist/shared/context.d.ts +402 -22
- 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 +10 -63
- package/dist/shared/datarecords/types.d.ts.map +1 -1
- package/dist/shared/datarecords/types.js +5 -6
- 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/fetcher.js +3 -3
- 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/datasources.d.ts +1 -1
- package/dist/shared/datasources.d.ts.map +1 -1
- package/dist/shared/datasources.js +1 -3
- package/dist/shared/datasources.js.map +1 -1
- 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 +80 -197
- 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 +6 -327
- 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 +41 -10
- package/src/shared/ai/types.ts +78 -76
- package/src/shared/attributes.ts +56 -46
- package/src/shared/brick-manifest.ts +5 -6
- package/src/shared/bricks/manifests/_types.ts +9 -0
- package/src/shared/bricks/manifests/accordion.manifest.ts +138 -171
- package/src/shared/bricks/manifests/all-manifests.ts +1 -0
- package/src/shared/bricks/manifests/all-props.ts +165 -0
- package/src/shared/bricks/manifests/box.manifest.ts +214 -150
- package/src/shared/bricks/manifests/button.manifest.ts +204 -79
- package/src/shared/bricks/manifests/card.manifest.ts +229 -43
- package/src/shared/bricks/manifests/carousel.manifest.ts +165 -35
- package/src/shared/bricks/manifests/footer.manifest.ts +18 -20
- package/src/shared/bricks/manifests/form.manifest.ts +136 -22
- package/src/shared/bricks/manifests/hero.manifest.ts +121 -38
- package/src/shared/bricks/manifests/html.manifest.ts +2 -5
- package/src/shared/bricks/manifests/icon.manifest.ts +225 -46
- package/src/shared/bricks/manifests/image.manifest.ts +125 -21
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +15 -20
- package/src/shared/bricks/manifests/map.manifest.ts +12 -15
- package/src/shared/bricks/manifests/navbar.manifest.ts +22 -26
- package/src/shared/bricks/manifests/sidebar.manifest.ts +11 -14
- package/src/shared/bricks/manifests/social-links.manifest.ts +19 -24
- package/src/shared/bricks/manifests/spacer.manifest.ts +2 -5
- package/src/shared/bricks/manifests/table.manifest.ts +17 -20
- package/src/shared/bricks/manifests/tabs.manifest.ts +16 -21
- package/src/shared/bricks/manifests/testimonials.manifest.ts +23 -25
- package/src/shared/bricks/manifests/text.manifest.ts +47 -29
- package/src/shared/bricks/manifests/timeline.manifest.ts +31 -29
- package/src/shared/bricks/manifests/video.manifest.ts +11 -15
- 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 +6 -19
- 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 +164 -1025
- package/src/shared/context.ts +24 -23
- package/src/shared/datarecords/external/airtable/types.ts +12 -11
- package/src/shared/datarecords/types.ts +22 -44
- 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/datasources.ts +2 -4
- package/src/shared/images.ts +12 -18
- package/src/shared/page.ts +9 -2
- package/src/shared/site.ts +3 -3
- package/src/shared/sitemap.ts +3 -68
- 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 +112 -314
- package/dist/shared/chunk-2HO4FHLM.js.map +0 -1
- package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
- package/dist/shared/chunk-3KLRW4I2.js.map +0 -1
- package/dist/shared/chunk-4WI23M7W.js.map +0 -1
- package/dist/shared/chunk-6E42XWFH.js +0 -103
- package/dist/shared/chunk-6E42XWFH.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-BMWRR4DI.js.map +0 -1
- package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
- package/dist/shared/chunk-BW6EFRSF.js +0 -794
- package/dist/shared/chunk-BW6EFRSF.js.map +0 -1
- package/dist/shared/chunk-CKFRSHR2.js.map +0 -1
- package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
- package/dist/shared/chunk-D4YQ6ABM.js +0 -338
- package/dist/shared/chunk-D4YQ6ABM.js.map +0 -1
- package/dist/shared/chunk-DRTGM2UJ.js.map +0 -1
- package/dist/shared/chunk-EQMU6NIU.js +0 -1222
- package/dist/shared/chunk-EQMU6NIU.js.map +0 -1
- package/dist/shared/chunk-EWSPTRDL.js.map +0 -1
- package/dist/shared/chunk-F22LDHEO.js.map +0 -1
- package/dist/shared/chunk-FVU5PXRC.js +0 -244
- package/dist/shared/chunk-FVU5PXRC.js.map +0 -1
- package/dist/shared/chunk-GCQURRVB.js.map +0 -1
- package/dist/shared/chunk-GPCI2N2A.js.map +0 -1
- package/dist/shared/chunk-GRMY35BU.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-LXAO3JA6.js.map +0 -1
- package/dist/shared/chunk-MLZT7MRQ.js.map +0 -1
- package/dist/shared/chunk-NT3IW52F.js +0 -260
- package/dist/shared/chunk-NT3IW52F.js.map +0 -1
- package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
- package/dist/shared/chunk-O5PLB3YB.js.map +0 -1
- package/dist/shared/chunk-P3RH5URN.js.map +0 -1
- package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
- package/dist/shared/chunk-QL3T5HJQ.js.map +0 -1
- package/dist/shared/chunk-QQQ3FYPG.js.map +0 -1
- package/dist/shared/chunk-QSND5IWT.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-SHUGHJ7V.js.map +0 -1
- package/dist/shared/chunk-TB3X4LRQ.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-U7TVEPKA.js.map +0 -1
- package/dist/shared/chunk-UQF52PWK.js.map +0 -1
- package/dist/shared/chunk-V3UA3LRK.js.map +0 -1
- package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
- package/dist/shared/chunk-WGDUJSSS.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-X6N463D4.js +0 -222
- package/dist/shared/chunk-X6N463D4.js.map +0 -1
- package/dist/shared/chunk-X75YV73Q.js +0 -178
- package/dist/shared/chunk-X75YV73Q.js.map +0 -1
- package/dist/shared/chunk-Y74LZNND.js.map +0 -1
- package/dist/shared/chunk-Z2NTDFB4.js.map +0 -1
- package/dist/shared/chunk-Z35I5JM5.js.map +0 -1
- package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
- package/dist/shared/schema-registry.d.ts +0 -5
- package/dist/shared/schema-registry.d.ts.map +0 -1
- package/dist/shared/schema-registry.js +0 -119
- package/dist/shared/schema-registry.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/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/schema-registry.ts +0 -82
- package/src/shared/tests/schema-registry.test.ts +0 -14
- 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/{utils/schema-registry.js.map → bricks/manifests/_types.js.map} +0 -0
|
@@ -1,22 +1,61 @@
|
|
|
1
1
|
import { defineBrickManifest } from "~/shared/brick-manifest";
|
|
2
2
|
import { defineProps } from "../props/helpers";
|
|
3
|
-
import {
|
|
3
|
+
import { textContent } from "../props/text";
|
|
4
4
|
import { BsAlphabetUppercase } from "react-icons/bs";
|
|
5
5
|
import type { BrickProps } from "../props/types";
|
|
6
6
|
import { Type } from "@sinclair/typebox";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
7
|
+
import { shadow, textShadow } from "../props/effects";
|
|
8
|
+
import { border, rounding } from "../props/border";
|
|
9
|
+
import { colorPreset } from "../props/color-preset";
|
|
10
|
+
import { alignItems, justifyContent } from "../props/align";
|
|
11
|
+
import { cssLength } from "../props/css-length";
|
|
12
|
+
import type { BrickExample } from "./_types";
|
|
12
13
|
|
|
13
14
|
export const manifest = defineBrickManifest({
|
|
14
15
|
type: "hero",
|
|
15
16
|
category: "basic",
|
|
16
17
|
name: "Hero",
|
|
17
18
|
description: "A big textual element for home pages.",
|
|
18
|
-
aiInstructions: `
|
|
19
|
-
|
|
19
|
+
aiInstructions: `PURPOSE
|
|
20
|
+
A prominent textual block (main heading + optional tagline) used to introduce a page, product, event, company, or dynamic entity.
|
|
21
|
+
|
|
22
|
+
STRUCTURE
|
|
23
|
+
1. Always supply 'content' (can be plain text or simple HTML like <h1>, <strong>, <br/>).
|
|
24
|
+
2. 'tagline' is optional. Prefer concise value (1 short sentence). Omit if not needed.
|
|
25
|
+
3. Do NOT add buttons, images, forms, lists, or unrelated HTML here (use dedicated bricks for that).
|
|
26
|
+
|
|
27
|
+
COLOR & BACKGROUND
|
|
28
|
+
• Prefer omitting colorPreset so the hero inherits its parent layout background.
|
|
29
|
+
• When you need emphasis use semantic presets: primary-, secondary-, accent-, neutral-, base-*** or gradient variants like primary-gradient-400 (then add gradientDirection).
|
|
30
|
+
• 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).
|
|
31
|
+
|
|
32
|
+
LAYOUT & SPACING
|
|
33
|
+
• Use padding suited to visual weight: landing hero: 5–8rem desktop; simple page intro: 2–4rem.
|
|
34
|
+
• You may provide a mobile override via mobileProps (e.g. smaller padding such as 2rem).
|
|
35
|
+
• Keep justifyContent + alignItems consistent (usually center/center or start/start). Avoid mixing center with start.
|
|
36
|
+
|
|
37
|
+
TYPOGRAPHY
|
|
38
|
+
• 'content' should typically render ONE main heading concept (avoid stacking multiple unrelated headings). Use <br/> to split lines when stylistic.
|
|
39
|
+
• Avoid overly long taglines (>140 chars).
|
|
40
|
+
|
|
41
|
+
DYNAMIC DATA
|
|
42
|
+
• You may interpolate page queries fields fields: {{company.name}}, {{product.name}}, etc.
|
|
43
|
+
• Ensure dynamic tokens exist in the referenced query context. Don't fabricate field names.
|
|
44
|
+
|
|
45
|
+
RESPONSIVE
|
|
46
|
+
• Use mobileProps only for necessary reductions (padding, alignment). Do not duplicate unchanged properties.
|
|
47
|
+
|
|
48
|
+
DON'TS
|
|
49
|
+
✗ Don't add properties that are not in the schema.
|
|
50
|
+
✗ Don't wrap everything with extraneous HTML containers.
|
|
51
|
+
✗ Don't use colorPreset plus a conflicting parent background rationale—choose one.
|
|
52
|
+
|
|
53
|
+
DO
|
|
54
|
+
✓ Keep content focused.
|
|
55
|
+
✓ Use semantic colors thoughtfully.
|
|
56
|
+
✓ Use gradientDirection ONLY with gradient presets.
|
|
57
|
+
✓ Provide accessible plain text when not using HTML tags.
|
|
58
|
+
`,
|
|
20
59
|
icon: BsAlphabetUppercase,
|
|
21
60
|
|
|
22
61
|
defaultWidth: { desktop: "60dvw", mobile: "auto" },
|
|
@@ -25,29 +64,29 @@ Typically used on home pages to grab the user's attention. It's better NOT to pr
|
|
|
25
64
|
staticClasses: "flex-col",
|
|
26
65
|
|
|
27
66
|
props: defineProps({
|
|
28
|
-
content:
|
|
67
|
+
content: textContent({
|
|
29
68
|
title: "Hero title",
|
|
30
69
|
default: "<h1 style='text-align:center'>Lorem Ipsum<br />dolor sit amet</h1>",
|
|
31
70
|
}),
|
|
32
71
|
tagline: Type.Optional(
|
|
33
|
-
|
|
72
|
+
textContent({
|
|
34
73
|
title: "Hero tagline",
|
|
35
|
-
default: "<p style='text-align:center'>Use our platform to build your business with confidence.</p>",
|
|
74
|
+
// default: "<p style='text-align:center'>Use our platform to build your business with confidence.</p>",
|
|
36
75
|
}),
|
|
37
76
|
),
|
|
38
77
|
colorPreset: Type.Optional(
|
|
39
|
-
|
|
78
|
+
colorPreset({
|
|
40
79
|
title: "Color",
|
|
41
80
|
}),
|
|
42
81
|
),
|
|
43
82
|
|
|
44
83
|
textShadow: Type.Optional(
|
|
45
|
-
|
|
84
|
+
textShadow({
|
|
46
85
|
default: "text-shadow-sm",
|
|
47
86
|
}),
|
|
48
87
|
),
|
|
49
88
|
padding: Type.Optional(
|
|
50
|
-
|
|
89
|
+
cssLength({
|
|
51
90
|
default: "6rem",
|
|
52
91
|
description: "Padding inside the hero.",
|
|
53
92
|
"ai:instructions": "Use only a single value like '1rem' or '10px'",
|
|
@@ -57,20 +96,18 @@ Typically used on home pages to grab the user's attention. It's better NOT to pr
|
|
|
57
96
|
"ui:styleId": "styles:padding",
|
|
58
97
|
}),
|
|
59
98
|
),
|
|
60
|
-
rounding:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
),
|
|
65
|
-
border: Type.Optional(borderRef()),
|
|
66
|
-
shadow: Type.Optional(shadowRef()),
|
|
99
|
+
rounding: rounding({
|
|
100
|
+
default: "rounded-md",
|
|
101
|
+
}),
|
|
102
|
+
border: Type.Optional(border()),
|
|
103
|
+
shadow: Type.Optional(shadow()),
|
|
67
104
|
justifyContent: Type.Optional(
|
|
68
|
-
|
|
105
|
+
justifyContent({
|
|
69
106
|
default: "justify-center",
|
|
70
107
|
}),
|
|
71
108
|
),
|
|
72
109
|
alignItems: Type.Optional(
|
|
73
|
-
|
|
110
|
+
alignItems({
|
|
74
111
|
default: "items-center",
|
|
75
112
|
}),
|
|
76
113
|
),
|
|
@@ -79,11 +116,7 @@ Typically used on home pages to grab the user's attention. It's better NOT to pr
|
|
|
79
116
|
|
|
80
117
|
export type Manifest = typeof manifest;
|
|
81
118
|
|
|
82
|
-
export const examples:
|
|
83
|
-
description: string;
|
|
84
|
-
type: string;
|
|
85
|
-
props: BrickProps<Manifest>["brick"]["props"];
|
|
86
|
-
}[] = [
|
|
119
|
+
export const examples: BrickExample<Manifest>[] = [
|
|
87
120
|
{
|
|
88
121
|
description: "Simple welcome hero with primary background",
|
|
89
122
|
type: "hero",
|
|
@@ -148,28 +181,29 @@ export const examples: {
|
|
|
148
181
|
},
|
|
149
182
|
},
|
|
150
183
|
{
|
|
151
|
-
description: "Restaurant hero with warm colors and rounded design",
|
|
184
|
+
description: "Restaurant hero with warm colors and rounded design (accent mapping for former 'orange')",
|
|
152
185
|
type: "hero",
|
|
153
186
|
props: {
|
|
154
187
|
content: "Authentic Italian Cuisine",
|
|
155
188
|
tagline: "Fresh ingredients, traditional recipes, unforgettable flavors",
|
|
156
189
|
padding: "4rem",
|
|
157
190
|
colorPreset: {
|
|
158
|
-
color: "
|
|
191
|
+
color: "accent-600",
|
|
159
192
|
},
|
|
160
193
|
rounding: "rounded-xl",
|
|
161
194
|
shadow: "shadow-lg",
|
|
162
195
|
},
|
|
163
196
|
},
|
|
164
197
|
{
|
|
165
|
-
description:
|
|
198
|
+
description:
|
|
199
|
+
"Tech company hero with secondary gradient (mapped from former 'success') and modern styling",
|
|
166
200
|
type: "hero",
|
|
167
201
|
props: {
|
|
168
202
|
content: "Innovation Redefined",
|
|
169
203
|
tagline: "Pushing the boundaries of what's possible with AI technology",
|
|
170
204
|
padding: "5rem",
|
|
171
205
|
colorPreset: {
|
|
172
|
-
color: "
|
|
206
|
+
color: "secondary-gradient-400",
|
|
173
207
|
gradientDirection: "bg-gradient-to-r",
|
|
174
208
|
},
|
|
175
209
|
textShadow: "text-shadow-lg",
|
|
@@ -180,14 +214,14 @@ export const examples: {
|
|
|
180
214
|
},
|
|
181
215
|
},
|
|
182
216
|
{
|
|
183
|
-
description: "Medical practice hero with trust-inspiring design",
|
|
217
|
+
description: "Medical practice hero with trust-inspiring design (primary mapping for former 'blue')",
|
|
184
218
|
type: "hero",
|
|
185
219
|
props: {
|
|
186
220
|
content: "Your Health, Our Priority",
|
|
187
221
|
tagline: "Comprehensive healthcare services with compassionate care",
|
|
188
222
|
padding: "4rem",
|
|
189
223
|
colorPreset: {
|
|
190
|
-
color: "
|
|
224
|
+
color: "primary-500",
|
|
191
225
|
},
|
|
192
226
|
rounding: "rounded-lg",
|
|
193
227
|
justifyContent: "justify-start",
|
|
@@ -195,14 +229,15 @@ export const examples: {
|
|
|
195
229
|
},
|
|
196
230
|
},
|
|
197
231
|
{
|
|
198
|
-
description:
|
|
232
|
+
description:
|
|
233
|
+
"Creative agency hero with accent gradient (mapped from former 'warning') and diagonal gradient",
|
|
199
234
|
type: "hero",
|
|
200
235
|
props: {
|
|
201
236
|
content: "Creative Solutions",
|
|
202
237
|
tagline: "Bold designs that make your brand unforgettable",
|
|
203
238
|
padding: "3rem",
|
|
204
239
|
colorPreset: {
|
|
205
|
-
color: "
|
|
240
|
+
color: "accent-gradient-300",
|
|
206
241
|
gradientDirection: "bg-gradient-to-tl",
|
|
207
242
|
},
|
|
208
243
|
shadow: "shadow-xl",
|
|
@@ -213,14 +248,14 @@ export const examples: {
|
|
|
213
248
|
},
|
|
214
249
|
},
|
|
215
250
|
{
|
|
216
|
-
description: "Fitness studio hero with
|
|
251
|
+
description: "Fitness studio hero with accent strong presence (mapping former 'danger')",
|
|
217
252
|
type: "hero",
|
|
218
253
|
props: {
|
|
219
254
|
content: "Transform Your Body",
|
|
220
255
|
tagline: "High-intensity training programs that deliver real results",
|
|
221
256
|
padding: "5rem",
|
|
222
257
|
colorPreset: {
|
|
223
|
-
color: "
|
|
258
|
+
color: "accent-600",
|
|
224
259
|
},
|
|
225
260
|
textShadow: "text-shadow-md",
|
|
226
261
|
rounding: "rounded-2xl",
|
|
@@ -246,6 +281,54 @@ export const examples: {
|
|
|
246
281
|
rounding: "rounded-md",
|
|
247
282
|
},
|
|
248
283
|
},
|
|
284
|
+
{
|
|
285
|
+
description: "Inverted dark hero using neutral-800 background and left alignment",
|
|
286
|
+
type: "hero",
|
|
287
|
+
props: {
|
|
288
|
+
content: "Experience Powerful Automation",
|
|
289
|
+
tagline: "Scale operations with intelligent workflows",
|
|
290
|
+
padding: "5rem",
|
|
291
|
+
colorPreset: { color: "neutral-800" },
|
|
292
|
+
justifyContent: "justify-start",
|
|
293
|
+
alignItems: "items-start",
|
|
294
|
+
textShadow: "text-shadow-sm",
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
description: "Compact hero without tagline (no colorPreset to inherit parent)",
|
|
299
|
+
type: "hero",
|
|
300
|
+
props: {
|
|
301
|
+
content: "Documentation",
|
|
302
|
+
padding: "2rem",
|
|
303
|
+
justifyContent: "justify-start",
|
|
304
|
+
alignItems: "items-start",
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
description: "Responsive hero with large desktop padding and reduced mobile padding",
|
|
309
|
+
type: "hero",
|
|
310
|
+
props: {
|
|
311
|
+
content: "All-In-One Platform",
|
|
312
|
+
tagline: "Design • Launch • Grow",
|
|
313
|
+
padding: "8rem",
|
|
314
|
+
colorPreset: { color: "primary-gradient-500", gradientDirection: "bg-gradient-to-br" },
|
|
315
|
+
},
|
|
316
|
+
mobileProps: {
|
|
317
|
+
content: "All-In-One Platform",
|
|
318
|
+
padding: "3rem",
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
description: "Hero using dynamic product dataset with gradient emphasis",
|
|
323
|
+
type: "hero",
|
|
324
|
+
props: {
|
|
325
|
+
content: "Introducing {{product.name}}",
|
|
326
|
+
tagline: "{{product.shortTagline}}",
|
|
327
|
+
padding: "5rem",
|
|
328
|
+
colorPreset: { color: "accent-gradient-400", gradientDirection: "bg-gradient-to-r" },
|
|
329
|
+
textShadow: "text-shadow-md",
|
|
330
|
+
},
|
|
331
|
+
},
|
|
249
332
|
{
|
|
250
333
|
description: "Dynamic company hero using business query data",
|
|
251
334
|
type: "hero",
|
|
@@ -4,6 +4,7 @@ import type { BrickProps } from "../props/types";
|
|
|
4
4
|
import { BsCodeSquare } from "react-icons/bs";
|
|
5
5
|
|
|
6
6
|
import { Type } from "@sinclair/typebox";
|
|
7
|
+
import type { BrickExample } from "./_types";
|
|
7
8
|
|
|
8
9
|
export const manifest = defineBrickManifest({
|
|
9
10
|
type: "html",
|
|
@@ -35,11 +36,7 @@ export const manifest = defineBrickManifest({
|
|
|
35
36
|
|
|
36
37
|
export type Manifest = typeof manifest;
|
|
37
38
|
|
|
38
|
-
export const examples:
|
|
39
|
-
description: string;
|
|
40
|
-
type: string;
|
|
41
|
-
props: BrickProps<Manifest>["brick"]["props"];
|
|
42
|
-
}[] = [
|
|
39
|
+
export const examples: BrickExample<Manifest>[] = [
|
|
43
40
|
{
|
|
44
41
|
description: "A tally form",
|
|
45
42
|
type: "html",
|
|
@@ -1,29 +1,72 @@
|
|
|
1
1
|
import { defineBrickManifest } from "~/shared/brick-manifest";
|
|
2
2
|
import { defineProps } from "../props/helpers";
|
|
3
3
|
import { PiConfetti } from "react-icons/pi";
|
|
4
|
-
import {
|
|
5
|
-
import type { BrickProps } from "../props/types";
|
|
4
|
+
import { icon, urlOrPageId } from "../props/string";
|
|
6
5
|
import { Type } from "@sinclair/typebox";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
6
|
+
import { cssLength } from "../props/css-length";
|
|
7
|
+
import { color } from "../props/color";
|
|
8
|
+
import { loop } from "../props/dynamic";
|
|
9
|
+
import type { BrickExample } from "./_types";
|
|
10
10
|
|
|
11
11
|
export const manifest = defineBrickManifest({
|
|
12
12
|
type: "icon",
|
|
13
13
|
name: "Icon",
|
|
14
14
|
category: "basic",
|
|
15
15
|
description: "An icon.",
|
|
16
|
-
aiInstructions:
|
|
16
|
+
aiInstructions: `Use the icon component for adding visual symbols and interactive elements throughout your design.
|
|
17
|
+
|
|
18
|
+
WHEN TO USE:
|
|
19
|
+
- Navigation elements (menu, close, arrow buttons)
|
|
20
|
+
- Social media links (Facebook, Twitter, Instagram, LinkedIn)
|
|
21
|
+
- Contact information (email, phone, location markers)
|
|
22
|
+
- User interface actions (search, shopping cart, download)
|
|
23
|
+
- Status indicators (success, warning, error, info)
|
|
24
|
+
- Content enhancement (stars, hearts, thumbs up)
|
|
25
|
+
- Feature highlights (checkmarks, shields, awards)
|
|
26
|
+
|
|
27
|
+
ICON SELECTION:
|
|
28
|
+
- Use Iconify format: "mdi:icon-name", "lucide:icon-name", "heroicons:icon-name"
|
|
29
|
+
- Examples: "mdi:heart", "lucide:star", "heroicons:envelope", "mdi:facebook"
|
|
30
|
+
|
|
31
|
+
SIZING GUIDELINES:
|
|
32
|
+
- size: "1em" for inline text icons, "1.5em" for buttons, "2em" for headers
|
|
33
|
+
- Common sizes: "16px", "20px", "24px", "32px" for pixel precision
|
|
34
|
+
- Use "em" units to scale with text, "px" for fixed sizes
|
|
35
|
+
- Large decorative icons: "3em", "4em", or "48px", "64px"
|
|
36
|
+
|
|
37
|
+
COLOR OPTIONS:
|
|
38
|
+
- color: "currentColor" inherits text color (default)
|
|
39
|
+
- Hex colors: "#1877f2" (Facebook blue), "#ff0000" (red), "#10b981" (green)
|
|
40
|
+
- Use brand colors for social media icons
|
|
41
|
+
- Match color scheme: warnings (orange/yellow), errors (red), success (green)
|
|
42
|
+
|
|
43
|
+
INTERACTIVE ICONS:
|
|
44
|
+
- Add link property for clickable icons
|
|
45
|
+
- External links: "https://facebook.com/yourpage"
|
|
46
|
+
- Email links: "mailto:contact@example.com"
|
|
47
|
+
- Phone links: "tel:+1234567890"
|
|
48
|
+
- Internal pages: "/contact", "/about"
|
|
49
|
+
|
|
50
|
+
DYNAMIC CONTENT:
|
|
51
|
+
- Use template variables: icon: "{{ service.iconName }}"
|
|
52
|
+
- Dynamic colors: color: "{{ brand.primaryColor }}"
|
|
53
|
+
- Loop over data for icon lists or social media sets
|
|
54
|
+
|
|
55
|
+
AVOID:
|
|
56
|
+
- Oversized icons that dominate content
|
|
57
|
+
- Poor contrast (light icons on light backgrounds)
|
|
58
|
+
- Inconsistent icon styles within the same design
|
|
59
|
+
- Missing alt text context when icons convey important information`,
|
|
17
60
|
resizable: false,
|
|
18
61
|
staticClasses: "!grow-0",
|
|
19
62
|
icon: PiConfetti,
|
|
20
63
|
props: defineProps(
|
|
21
64
|
{
|
|
22
|
-
icon:
|
|
65
|
+
icon: icon({
|
|
23
66
|
default: "mdi:heart",
|
|
24
67
|
}),
|
|
25
68
|
size: Type.Optional(
|
|
26
|
-
|
|
69
|
+
cssLength({
|
|
27
70
|
title: "Size",
|
|
28
71
|
description: "The size of the icon. Can be a CSS length value (e.g. '2em', '24px')",
|
|
29
72
|
default: "1em",
|
|
@@ -32,14 +75,14 @@ export const manifest = defineBrickManifest({
|
|
|
32
75
|
}),
|
|
33
76
|
),
|
|
34
77
|
color: Type.Optional(
|
|
35
|
-
|
|
78
|
+
color({
|
|
36
79
|
title: "Color",
|
|
37
80
|
default: "currentColor",
|
|
38
81
|
"ui:hide-color-label": true,
|
|
39
82
|
}),
|
|
40
83
|
),
|
|
41
|
-
link: Type.Optional(
|
|
42
|
-
loop: Type.Optional(
|
|
84
|
+
link: Type.Optional(urlOrPageId({ title: "Link" })),
|
|
85
|
+
loop: Type.Optional(loop()),
|
|
43
86
|
},
|
|
44
87
|
{ noGrow: true },
|
|
45
88
|
),
|
|
@@ -47,28 +90,66 @@ export const manifest = defineBrickManifest({
|
|
|
47
90
|
|
|
48
91
|
export type Manifest = typeof manifest;
|
|
49
92
|
|
|
50
|
-
export const examples:
|
|
51
|
-
|
|
52
|
-
type: string;
|
|
53
|
-
props: BrickProps<Manifest>["brick"]["props"];
|
|
54
|
-
}[] = [
|
|
93
|
+
export const examples: BrickExample<Manifest>[] = [
|
|
94
|
+
// BASIC ICONS
|
|
55
95
|
{
|
|
56
|
-
description: "
|
|
96
|
+
description: "Heart icon with default styling - Inherits text color and size",
|
|
57
97
|
type: "icon",
|
|
58
98
|
props: {
|
|
59
99
|
icon: "mdi:heart",
|
|
60
100
|
},
|
|
61
101
|
},
|
|
62
102
|
{
|
|
63
|
-
description: "
|
|
103
|
+
description: "Star icon with gold color - Perfect for ratings and reviews",
|
|
64
104
|
type: "icon",
|
|
65
105
|
props: {
|
|
66
|
-
icon: "mdi:
|
|
106
|
+
icon: "mdi:star",
|
|
67
107
|
size: "1.2em",
|
|
108
|
+
color: "#fbbf24",
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
// NAVIGATION ICONS
|
|
113
|
+
{
|
|
114
|
+
description: "Menu hamburger icon - Mobile navigation toggle",
|
|
115
|
+
type: "icon",
|
|
116
|
+
props: {
|
|
117
|
+
icon: "mdi:menu",
|
|
118
|
+
size: "1.8em",
|
|
119
|
+
color: "#374151",
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
description: "Search icon - Search functionality indicator",
|
|
124
|
+
type: "icon",
|
|
125
|
+
props: {
|
|
126
|
+
icon: "mdi:magnify",
|
|
127
|
+
size: "1.2em",
|
|
128
|
+
color: "#6b7280",
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
description: "Shopping cart icon - E-commerce navigation",
|
|
133
|
+
type: "icon",
|
|
134
|
+
props: {
|
|
135
|
+
icon: "mdi:cart",
|
|
136
|
+
size: "1.4em",
|
|
137
|
+
color: "#059669",
|
|
68
138
|
},
|
|
69
139
|
},
|
|
70
140
|
{
|
|
71
|
-
description: "
|
|
141
|
+
description: "Arrow right icon - Navigation and call-to-action",
|
|
142
|
+
type: "icon",
|
|
143
|
+
props: {
|
|
144
|
+
icon: "mdi:arrow-right",
|
|
145
|
+
size: "1.1em",
|
|
146
|
+
color: "currentColor",
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
// SOCIAL MEDIA ICONS
|
|
151
|
+
{
|
|
152
|
+
description: "Facebook icon with official brand color and link",
|
|
72
153
|
type: "icon",
|
|
73
154
|
props: {
|
|
74
155
|
icon: "mdi:facebook",
|
|
@@ -78,16 +159,39 @@ export const examples: {
|
|
|
78
159
|
},
|
|
79
160
|
},
|
|
80
161
|
{
|
|
81
|
-
description: "
|
|
162
|
+
description: "Twitter/X icon with link - Social media engagement",
|
|
82
163
|
type: "icon",
|
|
83
164
|
props: {
|
|
84
|
-
icon: "mdi:
|
|
85
|
-
size: "1.
|
|
86
|
-
color: "#
|
|
165
|
+
icon: "mdi:twitter",
|
|
166
|
+
size: "1.5em",
|
|
167
|
+
color: "#000000",
|
|
168
|
+
link: "https://x.com/yourhandle",
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
description: "Instagram icon with gradient-inspired color",
|
|
173
|
+
type: "icon",
|
|
174
|
+
props: {
|
|
175
|
+
icon: "mdi:instagram",
|
|
176
|
+
size: "1.5em",
|
|
177
|
+
color: "#e1306c",
|
|
178
|
+
link: "https://instagram.com/yourprofile",
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
description: "LinkedIn icon with professional blue",
|
|
183
|
+
type: "icon",
|
|
184
|
+
props: {
|
|
185
|
+
icon: "mdi:linkedin",
|
|
186
|
+
size: "1.5em",
|
|
187
|
+
color: "#0077b5",
|
|
188
|
+
link: "https://linkedin.com/company/yourcompany",
|
|
87
189
|
},
|
|
88
190
|
},
|
|
191
|
+
|
|
192
|
+
// CONTACT INFORMATION ICONS
|
|
89
193
|
{
|
|
90
|
-
description: "Email
|
|
194
|
+
description: "Email icon with link - Contact information",
|
|
91
195
|
type: "icon",
|
|
92
196
|
props: {
|
|
93
197
|
icon: "mdi:email",
|
|
@@ -97,68 +201,143 @@ export const examples: {
|
|
|
97
201
|
},
|
|
98
202
|
},
|
|
99
203
|
{
|
|
100
|
-
description: "Phone icon with
|
|
204
|
+
description: "Phone icon with clickable link - Direct calling",
|
|
101
205
|
type: "icon",
|
|
102
206
|
props: {
|
|
103
207
|
icon: "mdi:phone",
|
|
104
208
|
size: "1.4em",
|
|
105
209
|
color: "#10b981",
|
|
210
|
+
link: "tel:+1234567890",
|
|
106
211
|
},
|
|
107
212
|
},
|
|
108
213
|
{
|
|
109
|
-
description: "Location
|
|
214
|
+
description: "Location marker icon - Address and directions",
|
|
110
215
|
type: "icon",
|
|
111
216
|
props: {
|
|
112
217
|
icon: "mdi:map-marker",
|
|
113
|
-
size: "
|
|
218
|
+
size: "1.6em",
|
|
114
219
|
color: "#ef4444",
|
|
115
220
|
},
|
|
116
221
|
},
|
|
222
|
+
|
|
223
|
+
// STATUS & FEEDBACK ICONS
|
|
117
224
|
{
|
|
118
|
-
description: "
|
|
225
|
+
description: "Success checkmark icon - Confirmation and completion",
|
|
119
226
|
type: "icon",
|
|
120
227
|
props: {
|
|
121
|
-
icon: "mdi:
|
|
122
|
-
size: "1.
|
|
123
|
-
color: "#
|
|
124
|
-
link: "https://x.com/yourhandle",
|
|
228
|
+
icon: "mdi:check-circle",
|
|
229
|
+
size: "1.5em",
|
|
230
|
+
color: "#10b981",
|
|
125
231
|
},
|
|
126
232
|
},
|
|
127
233
|
{
|
|
128
|
-
description: "
|
|
234
|
+
description: "Warning icon - Alerts and cautions",
|
|
129
235
|
type: "icon",
|
|
130
236
|
props: {
|
|
131
|
-
icon: "mdi:
|
|
132
|
-
size: "1.
|
|
133
|
-
color: "#
|
|
237
|
+
icon: "mdi:alert-triangle",
|
|
238
|
+
size: "1.5em",
|
|
239
|
+
color: "#f59e0b",
|
|
134
240
|
},
|
|
135
241
|
},
|
|
136
242
|
{
|
|
137
|
-
description: "
|
|
243
|
+
description: "Error icon - Problems and failures",
|
|
138
244
|
type: "icon",
|
|
139
245
|
props: {
|
|
140
|
-
icon: "mdi:
|
|
246
|
+
icon: "mdi:alert-circle",
|
|
141
247
|
size: "1.5em",
|
|
248
|
+
color: "#ef4444",
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
description: "Information icon - Help and guidance",
|
|
253
|
+
type: "icon",
|
|
254
|
+
props: {
|
|
255
|
+
icon: "mdi:information",
|
|
256
|
+
size: "1.4em",
|
|
257
|
+
color: "#3b82f6",
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
|
|
261
|
+
// ACTION ICONS
|
|
262
|
+
{
|
|
263
|
+
description: "Download icon with link - File downloads",
|
|
264
|
+
type: "icon",
|
|
265
|
+
props: {
|
|
266
|
+
icon: "mdi:download",
|
|
267
|
+
size: "1.4em",
|
|
142
268
|
color: "#8b5cf6",
|
|
143
269
|
link: "/files/brochure.pdf",
|
|
144
270
|
},
|
|
145
271
|
},
|
|
146
272
|
{
|
|
147
|
-
description: "
|
|
273
|
+
description: "Share icon - Content sharing functionality",
|
|
148
274
|
type: "icon",
|
|
149
275
|
props: {
|
|
150
|
-
icon: "mdi:
|
|
151
|
-
size: "1.
|
|
276
|
+
icon: "mdi:share-variant",
|
|
277
|
+
size: "1.2em",
|
|
278
|
+
color: "#6b7280",
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
description: "Print icon - Document printing",
|
|
283
|
+
type: "icon",
|
|
284
|
+
props: {
|
|
285
|
+
icon: "mdi:printer",
|
|
286
|
+
size: "1.3em",
|
|
152
287
|
color: "#374151",
|
|
153
288
|
},
|
|
154
289
|
},
|
|
290
|
+
|
|
291
|
+
// LARGE DECORATIVE ICONS
|
|
155
292
|
{
|
|
156
|
-
description: "
|
|
293
|
+
description: "Large security shield icon - Trust and safety messaging",
|
|
157
294
|
type: "icon",
|
|
158
295
|
props: {
|
|
159
|
-
icon: "mdi:
|
|
160
|
-
size: "
|
|
161
|
-
color: "#
|
|
296
|
+
icon: "mdi:shield-check",
|
|
297
|
+
size: "3em",
|
|
298
|
+
color: "#10b981",
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
description: "Large rocket icon - Innovation and growth themes",
|
|
303
|
+
type: "icon",
|
|
304
|
+
props: {
|
|
305
|
+
icon: "mdi:rocket",
|
|
306
|
+
size: "2.5em",
|
|
307
|
+
color: "#f59e0b",
|
|
308
|
+
},
|
|
309
|
+
},
|
|
310
|
+
|
|
311
|
+
// DYNAMIC CONTENT EXAMPLES
|
|
312
|
+
{
|
|
313
|
+
description: "Dynamic service icon using template variables - Data-driven icons",
|
|
314
|
+
type: "icon",
|
|
315
|
+
props: {
|
|
316
|
+
icon: "{{service.iconName}}",
|
|
317
|
+
size: "2em",
|
|
318
|
+
color: "{{service.brandColor}}",
|
|
319
|
+
link: "/services/{{service.slug}}",
|
|
320
|
+
},
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
description: "Dynamic social media icon with loop - Multiple social platforms",
|
|
324
|
+
type: "icon",
|
|
325
|
+
props: {
|
|
326
|
+
icon: "{{socialLinks.iconName}}",
|
|
327
|
+
size: "1.6em",
|
|
328
|
+
color: "{{socialLinks.brandColor}}",
|
|
329
|
+
link: "{{socialLinks.url}}",
|
|
330
|
+
loop: { over: "socialLinks" },
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
description: "Team member contact icon - Dynamic contact information",
|
|
335
|
+
type: "icon",
|
|
336
|
+
props: {
|
|
337
|
+
icon: "mdi:email",
|
|
338
|
+
size: "1.2em",
|
|
339
|
+
color: "#4f46e5",
|
|
340
|
+
link: "mailto:{{teamMember.email}}",
|
|
162
341
|
},
|
|
163
342
|
},
|
|
164
343
|
];
|