@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 +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:\n \"An image brick that can display an image with optional styling such as padding, border radius, and shadow. It supports giving credit to the image author and specifying the image provider.\",\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}[] = [\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: \"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: \"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: \"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: \"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/carousel.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TbCarouselHorizontal } from \"react-icons/tb\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { imageRef } from \"../props/image\";\nimport { string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { roundingRef } from \"../props/border\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"carousel\",\n name: \"Carousel\",\n description: \"An image carousel with navigation arrows and dots or numbers indicator\",\n aiInstructions:\n \"Use this brick to create an image carousel or slideshow. It can display multiple images that users can navigate through using arrows or dots. Each image can have an optional legend or caption. This brick is ideal for showcasing portfolios, product images, or any visual content in an engaging way.\",\n category: \"media\",\n defaultInspectorTab: \"content\",\n consumesMultipleQueryRows: true,\n minHeight: {\n desktop: 200,\n },\n minWidth: {\n desktop: 300,\n },\n icon: TbCarouselHorizontal,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"1rem\",\n description: \"Padding inside the carousel.\",\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 images: Type.Optional(\n Type.Array(\n Type.Object({\n src: imageRef({\n \"ui:responsive\": \"desktop\",\n \"ui:no-alt-text\": true,\n \"ui:no-object-options\": true,\n }),\n legend: string(\"Legend\"),\n }),\n {\n title: \"Images\",\n default: [],\n maxItems: 12,\n metadata: {\n category: \"content\",\n },\n },\n ),\n ),\n borderRadius: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\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}[] = [\n {\n description: \"Basic image carousel with legends\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Slide+1\",\n alt: \"First slide\",\n },\n legend: \"Beautiful landscape\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Slide+2\",\n alt: \"Second slide\",\n },\n legend: \"Amazing architecture\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Slide+3\",\n alt: \"Third slide\",\n },\n legend: \"Stunning nature\",\n },\n ],\n },\n },\n {\n description: \"Product showcase carousel with rounded corners and padding\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Product+1\",\n alt: \"Product 1\",\n },\n legend: \"Premium Headphones - $199\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Product+2\",\n alt: \"Product 2\",\n },\n legend: \"Wireless Speaker - $149\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Product+3\",\n alt: \"Product 3\",\n },\n legend: \"Smart Watch - $299\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Product+4\",\n alt: \"Product 4\",\n },\n legend: \"Laptop Stand - $79\",\n },\n ],\n borderRadius: \"rounded-xl\",\n padding: \"2rem\",\n colorPreset: { color: \"gray-50\" },\n },\n },\n {\n description: \"Portfolio carousel with minimal styling\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/900x600.png?text=Portfolio+1\",\n alt: \"Portfolio piece 1\",\n },\n legend: \"Web Design Project\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x600.png?text=Portfolio+2\",\n alt: \"Portfolio piece 2\",\n },\n legend: \"Brand Identity Design\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x600.png?text=Portfolio+3\",\n alt: \"Portfolio piece 3\",\n },\n legend: \"Mobile App Interface\",\n },\n ],\n borderRadius: \"rounded-none\",\n padding: \"0\",\n },\n },\n {\n description: \"Event photos carousel with primary color theme\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+1\",\n alt: \"Event photo 1\",\n },\n legend: \"Opening Ceremony\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+2\",\n alt: \"Event photo 2\",\n },\n legend: \"Keynote Speaker\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+3\",\n alt: \"Event photo 3\",\n },\n legend: \"Networking Session\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+4\",\n alt: \"Event photo 4\",\n },\n legend: \"Award Ceremony\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x500.png?text=Event+Photo+5\",\n alt: \"Event photo 5\",\n },\n legend: \"Closing Remarks\",\n },\n ],\n colorPreset: { color: \"primary-100\" },\n borderRadius: \"rounded-lg\",\n padding: \"1.5rem\",\n },\n },\n {\n description: \"Travel destinations carousel without legends\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/700x450.png?text=Paris\",\n alt: \"Paris cityscape\",\n },\n legend: \"\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/700x450.png?text=Tokyo\",\n alt: \"Tokyo skyline\",\n },\n legend: \"\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/700x450.png?text=New+York\",\n alt: \"New York streets\",\n },\n legend: \"\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/700x450.png?text=London\",\n alt: \"London landmarks\",\n },\n legend: \"\",\n },\n ],\n borderRadius: \"rounded-2xl\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Team members carousel with blue color scheme\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/400x400.png?text=Team+1\",\n alt: \"Team member 1\",\n },\n legend: \"John Smith - CEO\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/400x400.png?text=Team+2\",\n alt: \"Team member 2\",\n },\n legend: \"Sarah Johnson - CTO\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/400x400.png?text=Team+3\",\n alt: \"Team member 3\",\n },\n legend: \"Mike Davis - Design Lead\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/400x400.png?text=Team+4\",\n alt: \"Team member 4\",\n },\n legend: \"Emily Chen - Marketing Director\",\n },\n ],\n colorPreset: { color: \"blue-50\" },\n borderRadius: \"rounded-full\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Recipe steps carousel with detailed descriptions\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Step+1\",\n alt: \"Recipe step 1\",\n },\n legend: \"Step 1: Prepare all ingredients\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Step+2\",\n alt: \"Recipe step 2\",\n },\n legend: \"Step 2: Heat oil in a large pan\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Step+3\",\n alt: \"Recipe step 3\",\n },\n legend: \"Step 3: Add vegetables and sauté\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x400.png?text=Step+4\",\n alt: \"Recipe step 4\",\n },\n legend: \"Step 4: Season and serve hot\",\n },\n ],\n colorPreset: { color: \"orange-50\" },\n borderRadius: \"rounded-md\",\n padding: \"1.5rem\",\n },\n },\n {\n description: \"Before and after comparison carousel\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Before+1\",\n alt: \"Before renovation 1\",\n },\n legend: \"Kitchen - Before Renovation\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=After+1\",\n alt: \"After renovation 1\",\n },\n legend: \"Kitchen - After Renovation\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=Before+2\",\n alt: \"Before renovation 2\",\n },\n legend: \"Living Room - Before\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x400.png?text=After+2\",\n alt: \"After renovation 2\",\n },\n legend: \"Living Room - After\",\n },\n ],\n colorPreset: { color: \"green-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Art gallery carousel with dramatic styling\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/600x800.png?text=Artwork+1\",\n alt: \"Abstract painting 1\",\n },\n legend: \"Abstract Composition #1 - 2023\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x800.png?text=Artwork+2\",\n alt: \"Abstract painting 2\",\n },\n legend: \"Urban Landscape - 2023\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/600x800.png?text=Artwork+3\",\n alt: \"Abstract painting 3\",\n },\n legend: \"Color Study #7 - 2024\",\n },\n ],\n colorPreset: { color: \"gray-900\" },\n borderRadius: \"rounded-sm\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Fashion lookbook carousel with purple theme\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+1\",\n alt: \"Fashion look 1\",\n },\n legend: \"Spring Collection - Casual Chic\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+2\",\n alt: \"Fashion look 2\",\n },\n legend: \"Summer Vibes - Beach Ready\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+3\",\n alt: \"Fashion look 3\",\n },\n legend: \"Autumn Elegance - Business\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+4\",\n alt: \"Fashion look 4\",\n },\n legend: \"Winter Style - Cozy Comfort\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+5\",\n alt: \"Fashion look 5\",\n },\n legend: \"Evening Wear - Formal Event\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/500x700.png?text=Look+6\",\n alt: \"Fashion look 6\",\n },\n legend: \"Weekend Casual - Relaxed Fit\",\n },\n ],\n colorPreset: { color: \"purple-100\" },\n borderRadius: \"rounded-xl\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Car showcase carousel with compact design\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/800x450.png?text=Car+1\",\n alt: \"Sports car 1\",\n },\n legend: \"2024 Sports Coupe\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x450.png?text=Car+2\",\n alt: \"SUV model\",\n },\n legend: \"Family SUV\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/800x450.png?text=Car+3\",\n alt: \"Electric vehicle\",\n },\n legend: \"Electric Sedan\",\n },\n ],\n colorPreset: { color: \"red-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"0.5rem\",\n },\n },\n {\n description: \"Software features carousel with large padding\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"https://via.placeholder.com/900x500.png?text=Feature+1\",\n alt: \"Software feature 1\",\n },\n legend: \"Dashboard Analytics - Real-time insights\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x500.png?text=Feature+2\",\n alt: \"Software feature 2\",\n },\n legend: \"Team Collaboration - Work together seamlessly\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x500.png?text=Feature+3\",\n alt: \"Software feature 3\",\n },\n legend: \"Mobile App - Access anywhere, anytime\",\n },\n {\n src: {\n src: \"https://via.placeholder.com/900x500.png?text=Feature+4\",\n alt: \"Software feature 4\",\n },\n legend: \"Security - Enterprise-grade protection\",\n },\n ],\n colorPreset: { color: \"indigo-50\" },\n borderRadius: \"rounded-2xl\",\n padding: \"4rem\",\n },\n },\n {\n description: \"Dynamic product gallery using products query with pricing and details\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{products.image}}\",\n alt: \"{{products.name}}\",\n },\n legend: \"{{products.name}} - ${{products.price}}\",\n },\n ],\n colorPreset: { color: \"primary-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"1.5rem\",\n loop: {\n over: \"products\",\n },\n },\n },\n {\n description: \"Team member carousel using teamMembers query with roles and departments\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{teamMembers.photo}}\",\n alt: \"{{teamMembers.fullName}}\",\n },\n legend: \"{{teamMembers.fullName}} - {{teamMembers.position}}, {{teamMembers.department}}\",\n },\n ],\n colorPreset: { color: \"secondary-100\" },\n borderRadius: \"rounded-xl\",\n padding: \"2rem\",\n loop: {\n over: \"teamMembers\",\n },\n },\n },\n {\n description: \"Portfolio showcase using portfolioProjects query with client information\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{portfolioProjects.featuredImage}}\",\n alt: \"{{portfolioProjects.projectName}}\",\n },\n legend:\n \"{{portfolioProjects.projectName}} - {{portfolioProjects.clientName}} ({{portfolioProjects.year}})\",\n },\n ],\n colorPreset: { color: \"neutral-100\" },\n borderRadius: \"rounded-md\",\n padding: \"1rem\",\n loop: {\n over: \"portfolioProjects\",\n },\n },\n },\n {\n description: \"Event photo gallery using eventPhotos query with captions and dates\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{eventPhotos.imageUrl}}\",\n alt: \"{{eventPhotos.caption}}\",\n },\n legend: \"{{eventPhotos.caption}} - {{eventPhotos.eventDate}}\",\n },\n ],\n colorPreset: { color: \"accent-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"2rem\",\n loop: {\n over: \"eventPhotos\",\n },\n },\n },\n {\n description: \"Property listings carousel using realEstateProperties query with pricing\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{realEstateProperties.mainPhoto}}\",\n alt: \"{{realEstateProperties.address}}\",\n },\n legend:\n \"{{realEstateProperties.address}} - ${{realEstateProperties.price}} • {{realEstateProperties.bedrooms}}BR/{{realEstateProperties.bathrooms}}BA\",\n },\n ],\n colorPreset: { color: \"primary-100\" },\n borderRadius: \"rounded-xl\",\n padding: \"1.5rem\",\n loop: {\n over: \"realEstateProperties\",\n },\n },\n },\n {\n description: \"Restaurant menu carousel using menuItems query with categories and prices\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{menuItems.photo}}\",\n alt: \"{{menuItems.dishName}}\",\n },\n legend: \"{{menuItems.dishName}} - {{menuItems.category}} • ${{menuItems.price}}\",\n },\n ],\n colorPreset: { color: \"neutral-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"1rem\",\n loop: {\n over: \"menuItems\",\n },\n },\n },\n {\n description: \"Travel destinations carousel using destinations query with country information\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{destinations.heroImage}}\",\n alt: \"{{destinations.cityName}}\",\n },\n legend: \"{{destinations.cityName}}, {{destinations.country}} - {{destinations.bestTimeToVisit}}\",\n },\n ],\n colorPreset: { color: \"secondary-50\" },\n borderRadius: \"rounded-2xl\",\n padding: \"2.5rem\",\n loop: {\n over: \"destinations\",\n },\n },\n },\n {\n description: \"Art collection carousel using artworks query with artist and year information\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{artworks.imageUrl}}\",\n alt: \"{{artworks.title}}\",\n },\n legend: \"{{artworks.title}} by {{artworks.artist}} ({{artworks.year}}) - {{artworks.medium}}\",\n },\n ],\n colorPreset: { color: \"accent-100\" },\n borderRadius: \"rounded-sm\",\n padding: \"3rem\",\n loop: {\n over: \"artworks\",\n },\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// src/shared/utils/string-enum.ts
|
|
5
|
-
import { Type } from "@sinclair/typebox";
|
|
6
|
-
var StringEnum = (values, options = {}) => Type.Unsafe({
|
|
7
|
-
type: "string",
|
|
8
|
-
enum: values,
|
|
9
|
-
...options
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
StringEnum
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=chunk-JK2FWFJU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/utils/string-enum.ts"],"sourcesContent":["import { Type, type UnsafeOptions } from \"@sinclair/typebox\";\n\nexport type StringEnumOptions = Partial<UnsafeOptions> & {\n enumNames?: string[];\n};\n\nexport const StringEnum = <T extends string[]>(values: [...T], options: StringEnumOptions = {}) =>\n Type.Unsafe<T[number]>({\n type: \"string\",\n enum: values,\n ...options,\n });\n"],"mappings":";;;;AAAA,SAAS,YAAgC;AAMlC,IAAM,aAAa,CAAqB,QAAgB,UAA6B,CAAC,MAC3F,KAAK,OAAkB;AAAA,EACrB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,GAAG;AACL,CAAC;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/navbar.manifest.ts"],"sourcesContent":["import { type Static, type TObject, Type } from \"@sinclair/typebox\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { string, urlOrPageIdRef } from \"../props/string\";\nimport { imageRef } from \"../props/image\";\nimport { textContentRef } from \"../props/text\";\nimport { shadowRef } from \"../props/effects\";\nimport { boolean } from \"../props/boolean\";\nimport { VscLayoutPanelOff } from \"react-icons/vsc\";\nimport type { BrickProps } from \"../props/types\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { tagsRef } from \"../props/tags\";\nimport { toLLMSchema } from \"~/shared/utils/llm\";\n\nexport const manifest = defineBrickManifest({\n type: \"navbar\",\n name: \"Navbar\",\n category: \"layout\",\n description: \"A navigation bar with logo and navigation\",\n aiInstructions: \"This brick should be used on most sites/pages. It must be placed on its own section.\",\n isGlobalBrick: true,\n duplicatable: false,\n resizable: false,\n movable: false,\n hideInLibrary: true,\n staticClasses: \"flex-grow\",\n defaultWidth: { mobile: \"100%\" },\n defaultHeight: { mobile: \"60px\", desktop: \"60px\" },\n icon: VscLayoutPanelOff,\n iconClassName: \"rotate-180\",\n props: defineProps(\n {\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n default: { color: \"primary-500\" },\n examples: [{ color: \"primary-500\" }, { color: \"neutral-900\" }, { color: \"secondary-200\" }],\n }),\n ),\n brand: Type.Optional(\n textContentRef({\n title: \"Brand name\",\n default: \"Acme Inc.\",\n disableSizing: true,\n \"ai:instructions\":\n \"The brand name of the website, for example the company name. Please provide it even if optional.\",\n metadata: {\n category: \"content\",\n },\n examples: [\"Acme Inc.\", \"TechCorp Solutions\", \"ShopEasy\", \"Bella Vista\"],\n }),\n ),\n logo: Type.Optional(\n imageRef({\n title: \"Logo\",\n \"ui:show-img-search\": false,\n \"ui:no-object-options\": true,\n \"ui:no-dynamic\": true,\n \"ui:placeholder\": \"https://example.com/logo.png\",\n metadata: {\n category: \"content\",\n },\n \"ai:hidden\": true, // Hide from AI as it should always be provided if available\n }),\n ),\n hideBrand: Type.Optional(\n boolean(\"Hide brand name\", undefined, {\n \"ai:hidden\": true,\n metadata: {\n filter: (manifestProps: TObject, formData: Static<Manifest[\"props\"]>) => {\n return !!formData.logo; // Enable this field only if logo is set\n },\n },\n }),\n ),\n linksTagsFilter: Type.Optional(\n tagsRef({\n title: \"Pages tags\",\n description: \"Filter pages links in the navbar by tags. Only pages with these tags will be shown.\",\n default: [\"navbar\"],\n metadata: {\n category: \"content\",\n },\n examples: [[\"navbar\", \"main\"], [\"top-menu\"], [\"important-link\", \"navbar\"]],\n }),\n ),\n staticNavItems: Type.Optional(\n Type.Array(\n Type.Object({\n urlOrPageId: urlOrPageIdRef(),\n label: Type.Optional(string(\"Label\")),\n }),\n {\n title: \"Static links\",\n description: \"Additional static navigation links to show in the navbar\",\n \"ai:instructions\": \"Don't include pages already included by the tags filter.\",\n default: [],\n metadata: {\n category: \"content\",\n },\n examples: [\n [\n { urlOrPageId: \"http://example.com/\", label: \"Other site\" },\n { urlOrPageId: \"https://docs.example.com/\", label: \"External docs\" },\n ],\n [{ urlOrPageId: \"https://www.amazon.com/our-brand\", label: \"Buy our brand on Amazon\" }],\n ],\n },\n ),\n ),\n linksPosition: Type.Optional(\n Type.Union(\n [\n Type.Literal(\"left\", { title: \"Left\" }),\n Type.Literal(\"center\", { title: \"Center\" }),\n Type.Literal(\"right\", { title: \"Right\" }),\n ],\n { title: \"Links position\", default: \"right\", \"ui:responsive\": \"desktop\" },\n ),\n ),\n shadow: Type.Optional(shadowRef()),\n },\n { noAlignSelf: true, noGrow: true },\n ),\n});\n\nexport type Manifest = typeof manifest;\nexport type NavbarProps = Static<Manifest[\"props\"]>;\n\nexport const navbarSchemaPropsLLM = toLLMSchema(manifest.props);\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description:\n \"Corporate technology company navbar featuring company logo with right-aligned navigation links filtered by navbar and featured tags\",\n type: \"navbar\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/120x40.png?text=TechCorp\",\n alt: \"TechCorp Solutions logo\",\n },\n linksPosition: \"right\",\n linksTagsFilter: [\"navbar\", \"featured\"],\n },\n },\n {\n description:\n \"Dark-themed professional navbar with centered brand text and navigation, including external site link for service companies\",\n type: \"navbar\",\n props: {\n brand: \"TechCorp Solutions\",\n linksPosition: \"center\",\n linksTagsFilter: [\"navbar\", \"featured\"],\n staticNavItems: [{ urlOrPageId: \"http://example.com/\", label: \"Other site\" }],\n },\n },\n {\n description:\n \"E-commerce store navbar with primary blue branding, medium shadow effect, and right-aligned cart/account links for online shopping sites\",\n type: \"navbar\",\n props: {\n brand: \"ShopEasy\",\n colorPreset: {\n color: \"primary-500\",\n },\n linksPosition: \"right\",\n linksTagsFilter: [\"main\", \"shop\"],\n shadow: \"shadow-md\",\n staticNavItems: [\n { urlOrPageId: \"cart\", label: \"Cart\" },\n { urlOrPageId: \"account\", label: \"Account\" },\n ],\n },\n },\n {\n description:\n \"Restaurant navbar with logo and hidden brand text, featuring secondary color scheme and left-aligned navigation with reservation booking and phone contact\",\n type: \"navbar\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/100x50.png?text=Bella+Vista\",\n alt: \"Bella Vista Restaurant logo\",\n },\n brand: \"Bella Vista\",\n hideBrand: true,\n linksPosition: \"left\",\n linksTagsFilter: [\"navbar\"],\n colorPreset: {\n color: \"secondary-200\",\n },\n staticNavItems: [\n { urlOrPageId: \"reservations\", label: \"Reservations\" },\n { urlOrPageId: \"tel:+1234567890\", label: \"Call Us\" },\n ],\n },\n },\n {\n description:\n \"Clean minimalist design navbar with neutral light background, centered navigation links, and subtle shadow for creative agencies and design studios\",\n type: \"navbar\",\n props: {\n brand: \"Minimal Studio\",\n colorPreset: {\n color: \"neutral-100\",\n },\n linksPosition: \"center\",\n linksTagsFilter: [\"main\"],\n shadow: \"shadow-sm\",\n },\n },\n {\n description:\n \"Creative portfolio navbar with dark neutral background, compact logo, and external social media links to showcase professional work and attract clients\",\n type: \"navbar\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/80x40.png?text=Portfolio\",\n alt: \"Creative Portfolio logo\",\n },\n brand: \"Creative Portfolio\",\n colorPreset: {\n color: \"neutral-900\",\n },\n linksPosition: \"right\",\n linksTagsFilter: [\"portfolio\", \"main\"],\n staticNavItems: [\n { urlOrPageId: \"https://dribbble.com/mywork\", label: \"Dribbble\" },\n { urlOrPageId: \"https://behance.net/mywork\", label: \"Behance\" },\n { urlOrPageId: \"contact\", label: \"Hire Me\" },\n ],\n },\n },\n {\n description:\n \"Digital marketing agency navbar with horizontal gradient background, large shadow, and external consultation booking integration for lead generation\",\n type: \"navbar\",\n props: {\n brand: \"Digital Agency\",\n colorPreset: {\n color: \"primary-600\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n linksPosition: \"right\",\n linksTagsFilter: [\"services\", \"navbar\"],\n shadow: \"shadow-lg\",\n staticNavItems: [\n { urlOrPageId: \"https://calendar.com/book\", label: \"Book Consultation\" },\n { urlOrPageId: \"case-studies\", label: \"Case Studies\" },\n ],\n },\n },\n {\n description:\n \"SaaS application navbar with accent color scheme, company logo, and essential user authentication links for software platforms\",\n type: \"navbar\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/120x35.png?text=CloudApp\",\n alt: \"CloudApp SaaS logo\",\n },\n brand: \"CloudApp\",\n colorPreset: {\n color: \"accent-500\",\n },\n linksPosition: \"right\",\n linksTagsFilter: [\"features\", \"navbar\"],\n staticNavItems: [\n { urlOrPageId: \"pricing\", label: \"Pricing\" },\n { urlOrPageId: \"login\", label: \"Login\" },\n { urlOrPageId: \"signup\", label: \"Sign Up\" },\n ],\n },\n },\n {\n description:\n \"Nonprofit organization navbar with warm accent color, centered navigation, and donation call-to-action links for charitable foundations\",\n type: \"navbar\",\n props: {\n brand: \"Hope Foundation\",\n colorPreset: {\n color: \"accent-400\",\n },\n linksPosition: \"center\",\n linksTagsFilter: [\"about\", \"programs\"],\n shadow: \"shadow-md\",\n staticNavItems: [\n { urlOrPageId: \"donate\", label: \"Donate Now\" },\n { urlOrPageId: \"volunteer\", label: \"Volunteer\" },\n ],\n },\n },\n {\n description:\n \"Professional law firm navbar with dark authoritative styling, professional logo, and client consultation contact information for legal services\",\n type: \"navbar\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/110x45.png?text=LawFirm\",\n alt: \"Professional Law Firm logo\",\n },\n brand: \"Smith & Associates\",\n colorPreset: {\n color: \"neutral-800\",\n },\n linksPosition: \"right\",\n linksTagsFilter: [\"practice-areas\", \"navbar\"],\n staticNavItems: [\n { urlOrPageId: \"consultation\", label: \"Free Consultation\" },\n { urlOrPageId: \"tel:+1234567890\", label: \"(123) 456-7890\" },\n ],\n },\n },\n {\n description:\n \"Event management company navbar with bold primary red gradient background, left-aligned navigation, and ticket purchasing links for entertainment venues\",\n type: \"navbar\",\n props: {\n brand: \"Event Masters\",\n colorPreset: {\n color: \"primary-500\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n linksPosition: \"left\",\n linksTagsFilter: [\"events\", \"upcoming\"],\n shadow: \"shadow-xl\",\n staticNavItems: [\n { urlOrPageId: \"tickets\", label: \"Buy Tickets\" },\n { urlOrPageId: \"venues\", label: \"Venues\" },\n ],\n },\n },\n {\n description:\n \"Fitness studio navbar with secondary purple color scheme, visible brand name alongside logo, and centered class booking navigation for health and wellness businesses\",\n type: \"navbar\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/90x50.png?text=FitStudio\",\n alt: \"Fitness Studio logo\",\n },\n brand: \"Peak Fitness\",\n hideBrand: false,\n colorPreset: {\n color: \"secondary-600\",\n },\n linksPosition: \"center\",\n linksTagsFilter: [\"classes\", \"membership\"],\n staticNavItems: [\n { urlOrPageId: \"book-class\", label: \"Book Class\" },\n { urlOrPageId: \"membership\", label: \"Join Now\" },\n { urlOrPageId: \"trainers\", label: \"Personal Training\" },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/footer.manifest.ts"],"sourcesContent":["import { type Static, Type } from \"@sinclair/typebox\";\nimport { VscLayoutPanelOff } from \"react-icons/vsc\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { array, defineProps } from \"../props/helpers\";\nimport { imageRef } from \"../props/image\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { string, urlOrPageIdRef } from \"../props/string\";\nimport { fontSizeRef } from \"../props/text\";\nimport type { BrickProps } from \"../props/types\";\nimport { toLLMSchema } from \"~/shared/utils/llm\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"footer\",\n name: \"Footer\",\n category: \"layout\",\n description: \"A footer with links and an optional logo.\",\n aiInstructions: \"This brick should be used on most sites/pages. It must be placed on its own section.\",\n icon: VscLayoutPanelOff,\n staticClasses: \"flex-1\",\n isGlobalBrick: true,\n hideInLibrary: true,\n resizable: false,\n movable: false,\n defaultWidth: {\n desktop: \"100%\",\n mobile: \"100%\",\n },\n props: defineProps(\n {\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color preset\",\n default: { color: \"neutral-600\" },\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"4rem\",\n description: \"Padding inside the footer.\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n logo: Type.Optional(imageRef({ title: \"Logo\", \"ui:no-object-options\": true, \"ui:no-alt-text\": true })),\n fontSize: Type.Optional(fontSizeRef({ default: \"text-sm\", \"ui:no-extra-large-sizes\": true })),\n // rows:Type.Optional(number(\"Rows\", { default: 1, \"ui:field\": \"slider\", minimum: 1, maximum: 5 })),\n linksSections: array(\n Type.Object(\n {\n sectionTitle: string(\"Title\"),\n links: array(\n Type.Object({\n title: string(\"Title\"),\n url: urlOrPageIdRef(),\n }),\n {\n title: \"Links\",\n },\n ),\n },\n {\n examples: [\n {\n sectionTitle: \"Quick Links\",\n links: [\n { title: \"Home\", url: \"/\" },\n { title: \"About\", url: \"page-id-of-about-page\" },\n { title: \"Our Services\", url: \"page-id-of-services-page\" },\n ],\n },\n {\n sectionTitle: \"Legal\",\n links: [\n { title: \"Privacy Policy\", url: \"page-id-of-privacy-policy\" },\n { title: \"Terms of Service\", url: \"page-id-of-terms\" },\n { title: \"Our law firm\", url: \"https://my.external.lawfirm.com\" },\n ],\n },\n ],\n },\n ),\n {\n title: \"Links\",\n \"ui:displayField\": \"sectionTitle\",\n \"ui:options\": {\n orderable: true, // Enable drag & drop reordering\n removable: true, // Enable delete button\n addable: true, // Enable add button\n },\n description: \"List of Links Sections. Each section contains a title and a list of links.\",\n metadata: {\n category: \"content\",\n },\n },\n ),\n },\n { noGrow: true, noAlignSelf: true },\n ),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const footerSchemaPropsLLM = toLLMSchema(manifest.props);\n\nexport type FooterProps = Static<Manifest[\"props\"]>;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Simple footer with logo on the left\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#f8f9fa\",\n logo: {\n src: \"https://via.placeholder.com/120x40.png?text=Logo\",\n alt: \"Company logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Quick Links\",\n links: [\n { title: \"Home\", url: \"/\" },\n { title: \"About\", url: \"/about\" },\n { title: \"Contact\", url: \"/contact\" },\n ],\n },\n {\n sectionTitle: \"Legal\",\n links: [\n { title: \"Privacy Policy\", url: \"/privacy\" },\n { title: \"Terms of Service\", url: \"/terms\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Corporate footer with centered logo\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#2c3e50\",\n logo: {\n src: \"https://via.placeholder.com/150x50.png?text=Corporate\",\n alt: \"Corporate logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Products\",\n links: [\n { title: \"Software Solutions\", url: \"/products/software\" },\n { title: \"Consulting\", url: \"/products/consulting\" },\n { title: \"Support\", url: \"/products/support\" },\n { title: \"Training\", url: \"/products/training\" },\n ],\n },\n {\n sectionTitle: \"Company\",\n links: [\n { title: \"About Us\", url: \"/about\" },\n { title: \"Careers\", url: \"/careers\" },\n { title: \"News\", url: \"/news\" },\n { title: \"Investors\", url: \"/investors\" },\n ],\n },\n {\n sectionTitle: \"Resources\",\n links: [\n { title: \"Documentation\", url: \"/docs\" },\n { title: \"API Reference\", url: \"/api\" },\n { title: \"Community\", url: \"/community\" },\n { title: \"Blog\", url: \"/blog\" },\n ],\n },\n ],\n },\n },\n {\n description: \"E-commerce footer with logo on the right\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#ffffff\",\n logo: {\n src: \"https://via.placeholder.com/140x45.png?text=Shop\",\n alt: \"Shop logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Shop\",\n links: [\n { title: \"All Products\", url: \"/products\" },\n { title: \"New Arrivals\", url: \"/new\" },\n { title: \"Sale\", url: \"/sale\" },\n { title: \"Gift Cards\", url: \"/gift-cards\" },\n ],\n },\n {\n sectionTitle: \"Customer Service\",\n links: [\n { title: \"Help Center\", url: \"/help\" },\n { title: \"Returns\", url: \"/returns\" },\n { title: \"Shipping Info\", url: \"/shipping\" },\n { title: \"Size Guide\", url: \"/size-guide\" },\n ],\n },\n {\n sectionTitle: \"Account\",\n links: [\n { title: \"My Account\", url: \"/account\" },\n { title: \"Order History\", url: \"/orders\" },\n { title: \"Wishlist\", url: \"/wishlist\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Large organization footer with multiple rows\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#1a1a1a\",\n logo: {\n src: \"https://via.placeholder.com/180x60.png?text=Enterprise\",\n alt: \"Enterprise logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Products & Services\",\n links: [\n { title: \"Cloud Solutions\", url: \"/cloud\" },\n { title: \"Data Analytics\", url: \"/analytics\" },\n { title: \"AI & Machine Learning\", url: \"/ai\" },\n { title: \"Cybersecurity\", url: \"/security\" },\n { title: \"DevOps Tools\", url: \"/devops\" },\n { title: \"IoT Platform\", url: \"/iot\" },\n ],\n },\n {\n sectionTitle: \"Industries\",\n links: [\n { title: \"Healthcare\", url: \"/industries/healthcare\" },\n { title: \"Finance\", url: \"/industries/finance\" },\n { title: \"Retail\", url: \"/industries/retail\" },\n { title: \"Manufacturing\", url: \"/industries/manufacturing\" },\n { title: \"Education\", url: \"/industries/education\" },\n { title: \"Government\", url: \"/industries/government\" },\n ],\n },\n {\n sectionTitle: \"Resources\",\n links: [\n { title: \"Documentation\", url: \"/docs\" },\n { title: \"API Reference\", url: \"/api\" },\n { title: \"Tutorials\", url: \"/tutorials\" },\n { title: \"Webinars\", url: \"/webinars\" },\n { title: \"White Papers\", url: \"/whitepapers\" },\n { title: \"Case Studies\", url: \"/case-studies\" },\n ],\n },\n {\n sectionTitle: \"Support & Community\",\n links: [\n { title: \"Help Center\", url: \"/help\" },\n { title: \"Community Forum\", url: \"/forum\" },\n { title: \"Contact Support\", url: \"/support\" },\n { title: \"Service Status\", url: \"/status\" },\n { title: \"Partner Portal\", url: \"/partners\" },\n { title: \"Developer Hub\", url: \"/developers\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Startup footer with minimal links and left logo\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#f5f5f5\",\n logo: {\n src: \"https://via.placeholder.com/100x35.png?text=Startup\",\n alt: \"Startup logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Company\",\n links: [\n { title: \"About\", url: \"/about\" },\n { title: \"Team\", url: \"/team\" },\n { title: \"Jobs\", url: \"/jobs\" },\n ],\n },\n {\n sectionTitle: \"Product\",\n links: [\n { title: \"Features\", url: \"/features\" },\n { title: \"Pricing\", url: \"/pricing\" },\n { title: \"Demo\", url: \"/demo\" },\n ],\n },\n {\n sectionTitle: \"Support\",\n links: [\n { title: \"Help\", url: \"/help\" },\n { title: \"Contact\", url: \"/contact\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Agency footer with centered logo and creative sections\",\n type: \"footer\",\n props: {\n // backgroundColor: \"#6366f1\",\n logo: {\n src: \"https://via.placeholder.com/130x45.png?text=Agency\",\n alt: \"Creative agency logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Services\",\n links: [\n { title: \"Web Design\", url: \"/services/web-design\" },\n { title: \"Branding\", url: \"/services/branding\" },\n { title: \"Digital Marketing\", url: \"/services/marketing\" },\n { title: \"Photography\", url: \"/services/photography\" },\n ],\n },\n {\n sectionTitle: \"Portfolio\",\n links: [\n { title: \"Recent Work\", url: \"/portfolio\" },\n { title: \"Case Studies\", url: \"/case-studies\" },\n { title: \"Client Reviews\", url: \"/reviews\" },\n ],\n },\n {\n sectionTitle: \"Connect\",\n links: [\n { title: \"Contact Us\", url: \"/contact\" },\n { title: \"Get Quote\", url: \"/quote\" },\n { title: \"Newsletter\", url: \"/newsletter\" },\n ],\n },\n ],\n },\n },\n {\n description: \"SaaS platform footer with comprehensive links\",\n type: \"footer\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/160x50.png?text=SaaS+Platform\",\n alt: \"SaaS platform logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Platform\",\n links: [\n { title: \"Dashboard\", url: \"/dashboard\" },\n { title: \"Analytics\", url: \"/analytics\" },\n { title: \"Integrations\", url: \"/integrations\" },\n { title: \"API\", url: \"/api\" },\n ],\n },\n {\n sectionTitle: \"Solutions\",\n links: [\n { title: \"For Startups\", url: \"/solutions/startups\" },\n { title: \"For Enterprise\", url: \"/solutions/enterprise\" },\n { title: \"For Agencies\", url: \"/solutions/agencies\" },\n { title: \"For Developers\", url: \"/solutions/developers\" },\n ],\n },\n {\n sectionTitle: \"Resources\",\n links: [\n { title: \"Blog\", url: \"/blog\" },\n { title: \"Documentation\", url: \"/docs\" },\n { title: \"Help Center\", url: \"/help\" },\n { title: \"Community\", url: \"/community\" },\n ],\n },\n {\n sectionTitle: \"Company\",\n links: [\n { title: \"About Us\", url: \"/about\" },\n { title: \"Careers\", url: \"/careers\" },\n { title: \"Press\", url: \"/press\" },\n { title: \"Legal\", url: \"/legal\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Non-profit footer with mission-focused links\",\n type: \"footer\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/140x50.png?text=Non+Profit\",\n alt: \"Non-profit organization logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Our Work\",\n links: [\n { title: \"Programs\", url: \"/programs\" },\n { title: \"Impact\", url: \"/impact\" },\n { title: \"Success Stories\", url: \"/stories\" },\n { title: \"Research\", url: \"/research\" },\n ],\n },\n {\n sectionTitle: \"Get Involved\",\n links: [\n { title: \"Donate\", url: \"/donate\" },\n { title: \"Volunteer\", url: \"/volunteer\" },\n { title: \"Events\", url: \"/events\" },\n { title: \"Partner with Us\", url: \"/partnerships\" },\n ],\n },\n {\n sectionTitle: \"About\",\n links: [\n { title: \"Our Mission\", url: \"/mission\" },\n { title: \"Leadership\", url: \"/leadership\" },\n { title: \"Annual Reports\", url: \"/reports\" },\n { title: \"Contact\", url: \"/contact\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Tech blog footer with right-aligned logo\",\n type: \"footer\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/120x40.png?text=Tech+Blog\",\n alt: \"Tech blog logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Categories\",\n links: [\n { title: \"Web Development\", url: \"/category/web-dev\" },\n { title: \"AI & ML\", url: \"/category/ai-ml\" },\n { title: \"DevOps\", url: \"/category/devops\" },\n { title: \"Mobile\", url: \"/category/mobile\" },\n ],\n },\n {\n sectionTitle: \"Popular\",\n links: [\n { title: \"Latest Posts\", url: \"/latest\" },\n { title: \"Trending\", url: \"/trending\" },\n { title: \"Best of 2024\", url: \"/best-2024\" },\n { title: \"Tutorials\", url: \"/tutorials\" },\n ],\n },\n {\n sectionTitle: \"Community\",\n links: [\n { title: \"Newsletter\", url: \"/newsletter\" },\n { title: \"Discord\", url: \"/discord\" },\n { title: \"Contributors\", url: \"/contributors\" },\n { title: \"Write for Us\", url: \"/write\" },\n ],\n },\n ],\n },\n },\n {\n description: \"Restaurant footer with location and menu links\",\n type: \"footer\",\n props: {\n logo: {\n src: \"https://via.placeholder.com/150x60.png?text=Restaurant\",\n alt: \"Restaurant logo\",\n },\n linksSections: [\n {\n sectionTitle: \"Menu\",\n links: [\n { title: \"Appetizers\", url: \"/menu/appetizers\" },\n { title: \"Main Courses\", url: \"/menu/mains\" },\n { title: \"Desserts\", url: \"/menu/desserts\" },\n { title: \"Beverages\", url: \"/menu/drinks\" },\n ],\n },\n {\n sectionTitle: \"Services\",\n links: [\n { title: \"Reservations\", url: \"/reservations\" },\n { title: \"Catering\", url: \"/catering\" },\n { title: \"Private Events\", url: \"/events\" },\n { title: \"Gift Cards\", url: \"/gift-cards\" },\n ],\n },\n {\n sectionTitle: \"Info\",\n links: [\n { title: \"About Us\", url: \"/about\" },\n { title: \"Location\", url: \"/location\" },\n { title: \"Hours\", url: \"/hours\" },\n { title: \"Contact\", url: \"/contact\" },\n ],\n },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
schemaRegistry
|
|
5
|
-
} from "./chunk-BW6EFRSF.js";
|
|
6
|
-
|
|
7
|
-
// src/shared/utils/schema.ts
|
|
8
|
-
import { Kind } from "@sinclair/typebox";
|
|
9
|
-
import { Cabidela } from "@cloudflare/cabidela";
|
|
10
|
-
import { defaultsDeep as applyDefaultsDeep } from "lodash-es";
|
|
11
|
-
function normalizeSchemaEnum(schema) {
|
|
12
|
-
if (!("enum" in schema)) {
|
|
13
|
-
return schema.anyOf ?? schema.oneOf;
|
|
14
|
-
}
|
|
15
|
-
const {
|
|
16
|
-
enum: enumValues,
|
|
17
|
-
enumNames,
|
|
18
|
-
"ui:icons": icons
|
|
19
|
-
} = schema;
|
|
20
|
-
return enumValues.map((value, index) => ({
|
|
21
|
-
const: value,
|
|
22
|
-
title: enumNames ? enumNames[index] : value,
|
|
23
|
-
"ui:icon": icons ? icons[index] : void 0
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
function getSchemaDefaults(schema, mode) {
|
|
27
|
-
if (schema.type === "object" && "properties" in schema) {
|
|
28
|
-
const objectSchema = schema;
|
|
29
|
-
const defaults = {};
|
|
30
|
-
for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {
|
|
31
|
-
const defaultValue = getNestedDefaults(propertySchema, mode);
|
|
32
|
-
if (defaultValue !== void 0) {
|
|
33
|
-
defaults[key] = defaultValue;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return defaults;
|
|
37
|
-
}
|
|
38
|
-
if (schema.type === "array" && "items" in schema) {
|
|
39
|
-
const arraySchema = schema;
|
|
40
|
-
if (mode && typeof arraySchema[`default:${mode}`] !== "undefined") {
|
|
41
|
-
return arraySchema[`default:${mode}`];
|
|
42
|
-
}
|
|
43
|
-
if (arraySchema.default) {
|
|
44
|
-
return arraySchema.default;
|
|
45
|
-
}
|
|
46
|
-
return [];
|
|
47
|
-
}
|
|
48
|
-
throw new Error("Schema must be either TObject or TArray");
|
|
49
|
-
}
|
|
50
|
-
function getNestedDefaults(schema, mode) {
|
|
51
|
-
if (mode && typeof schema[`default:${mode}`] !== "undefined") {
|
|
52
|
-
return schema[`default:${mode}`];
|
|
53
|
-
}
|
|
54
|
-
if ("default" in schema && schema.default !== void 0) {
|
|
55
|
-
return schema.default;
|
|
56
|
-
}
|
|
57
|
-
if (schema.type === "object" && "properties" in schema) {
|
|
58
|
-
const objectSchema = schema;
|
|
59
|
-
const defaults = {};
|
|
60
|
-
for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {
|
|
61
|
-
const defaultValue = getNestedDefaults(propertySchema, mode);
|
|
62
|
-
if (defaultValue !== void 0) {
|
|
63
|
-
defaults[key] = defaultValue;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return Object.keys(defaults).length > 0 ? defaults : void 0;
|
|
67
|
-
}
|
|
68
|
-
if (schema.type === "array" && "items" in schema) {
|
|
69
|
-
return void 0;
|
|
70
|
-
}
|
|
71
|
-
return void 0;
|
|
72
|
-
}
|
|
73
|
-
function filterSchemaProperties(schema, filter) {
|
|
74
|
-
function extractProperties(schema2) {
|
|
75
|
-
const props = {};
|
|
76
|
-
for (const [key, prop] of Object.entries(schema2.properties)) {
|
|
77
|
-
if (filter(prop)) {
|
|
78
|
-
props[key] = prop;
|
|
79
|
-
} else if (prop.type === "object" && prop.properties) {
|
|
80
|
-
const nestedContentProps = extractProperties(prop);
|
|
81
|
-
if (Object.keys(nestedContentProps).length > 0) {
|
|
82
|
-
Object.assign(props, nestedContentProps);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return props;
|
|
87
|
-
}
|
|
88
|
-
return extractProperties(schema);
|
|
89
|
-
}
|
|
90
|
-
function resolveSchema(schema) {
|
|
91
|
-
return resolveSchemaRecursive(schema, /* @__PURE__ */ new Set());
|
|
92
|
-
}
|
|
93
|
-
function resolveSchemaRecursive(schema, visited) {
|
|
94
|
-
if (!schema || typeof schema !== "object") {
|
|
95
|
-
return schema;
|
|
96
|
-
}
|
|
97
|
-
if ("$ref" in schema && typeof schema.$ref === "string") {
|
|
98
|
-
if (visited.has(schema.$ref) || schema[Kind] === "This") {
|
|
99
|
-
return schema;
|
|
100
|
-
}
|
|
101
|
-
const resolved = schemaRegistry.get(schema.$ref);
|
|
102
|
-
if (!resolved) {
|
|
103
|
-
console.error("Schema not found for reference:", schema);
|
|
104
|
-
return schema;
|
|
105
|
-
}
|
|
106
|
-
visited.add(schema.$ref);
|
|
107
|
-
const { $ref, ...rest } = schema;
|
|
108
|
-
const resolvedSchema2 = {
|
|
109
|
-
...resolveSchemaRecursive(resolved, visited),
|
|
110
|
-
...rest
|
|
111
|
-
};
|
|
112
|
-
visited.delete(schema.$ref);
|
|
113
|
-
return resolvedSchema2;
|
|
114
|
-
}
|
|
115
|
-
if ("type" in schema && schema.type === "object" && "properties" in schema) {
|
|
116
|
-
const resolvedProperties = {};
|
|
117
|
-
if (schema.properties && typeof schema.properties === "object") {
|
|
118
|
-
for (const [key, value] of Object.entries(schema.properties)) {
|
|
119
|
-
if (value && typeof value === "object") {
|
|
120
|
-
resolvedProperties[key] = resolveSchemaRecursive(value, visited);
|
|
121
|
-
} else {
|
|
122
|
-
resolvedProperties[key] = value;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
const resolvedSchema2 = { ...schema };
|
|
127
|
-
if (Object.keys(resolvedProperties).length > 0) {
|
|
128
|
-
resolvedSchema2.properties = resolvedProperties;
|
|
129
|
-
}
|
|
130
|
-
if ("additionalProperties" in schema && schema.additionalProperties && typeof schema.additionalProperties === "object" && schema.additionalProperties !== true) {
|
|
131
|
-
resolvedSchema2.additionalProperties = resolveSchemaRecursive(
|
|
132
|
-
schema.additionalProperties,
|
|
133
|
-
visited
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
if ("patternProperties" in schema && schema.patternProperties && typeof schema.patternProperties === "object") {
|
|
137
|
-
const resolvedPatternProperties = {};
|
|
138
|
-
for (const [pattern, patternSchema] of Object.entries(schema.patternProperties)) {
|
|
139
|
-
if (patternSchema && typeof patternSchema === "object") {
|
|
140
|
-
resolvedPatternProperties[pattern] = resolveSchemaRecursive(patternSchema, visited);
|
|
141
|
-
} else {
|
|
142
|
-
resolvedPatternProperties[pattern] = patternSchema;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
resolvedSchema2.patternProperties = resolvedPatternProperties;
|
|
146
|
-
}
|
|
147
|
-
return resolvedSchema2;
|
|
148
|
-
}
|
|
149
|
-
if ("type" in schema && schema.type === "array") {
|
|
150
|
-
const resolvedSchema2 = { ...schema };
|
|
151
|
-
if ("items" in schema && schema.items) {
|
|
152
|
-
if (Array.isArray(schema.items)) {
|
|
153
|
-
resolvedSchema2.items = schema.items.map((item) => resolveSchemaRecursive(item, visited));
|
|
154
|
-
} else if (typeof schema.items === "object") {
|
|
155
|
-
resolvedSchema2.items = resolveSchemaRecursive(schema.items, visited);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if ("additionalItems" in schema && schema.additionalItems && typeof schema.additionalItems === "object" && schema.additionalItems !== true) {
|
|
159
|
-
resolvedSchema2.additionalItems = resolveSchemaRecursive(schema.additionalItems, visited);
|
|
160
|
-
}
|
|
161
|
-
return resolvedSchema2;
|
|
162
|
-
}
|
|
163
|
-
if ("anyOf" in schema && Array.isArray(schema.anyOf)) {
|
|
164
|
-
const resolvedAnyOf = schema.anyOf.map((subSchema) => {
|
|
165
|
-
return resolveSchemaRecursive(subSchema, visited);
|
|
166
|
-
});
|
|
167
|
-
return { ...schema, anyOf: resolvedAnyOf };
|
|
168
|
-
}
|
|
169
|
-
if ("oneOf" in schema && Array.isArray(schema.oneOf)) {
|
|
170
|
-
const resolvedOneOf = schema.oneOf.map(
|
|
171
|
-
(subSchema) => resolveSchemaRecursive(subSchema, visited)
|
|
172
|
-
);
|
|
173
|
-
return { ...schema, oneOf: resolvedOneOf };
|
|
174
|
-
}
|
|
175
|
-
if ("allOf" in schema && Array.isArray(schema.allOf)) {
|
|
176
|
-
const resolvedAllOf = schema.allOf.map(
|
|
177
|
-
(subSchema) => resolveSchemaRecursive(subSchema, visited)
|
|
178
|
-
);
|
|
179
|
-
return { ...schema, allOf: resolvedAllOf };
|
|
180
|
-
}
|
|
181
|
-
if ("not" in schema && schema.not && typeof schema.not === "object") {
|
|
182
|
-
const resolvedNot = resolveSchemaRecursive(schema.not, visited);
|
|
183
|
-
return { ...schema, not: resolvedNot };
|
|
184
|
-
}
|
|
185
|
-
if ("if" in schema || "then" in schema || "else" in schema) {
|
|
186
|
-
const resolvedSchema2 = { ...schema };
|
|
187
|
-
if ("if" in schema && schema.if && typeof schema.if === "object") {
|
|
188
|
-
resolvedSchema2.if = resolveSchemaRecursive(schema.if, visited);
|
|
189
|
-
}
|
|
190
|
-
if ("then" in schema && schema.then && typeof schema.then === "object") {
|
|
191
|
-
resolvedSchema2.then = resolveSchemaRecursive(schema.then, visited);
|
|
192
|
-
}
|
|
193
|
-
if ("else" in schema && schema.else && typeof schema.else === "object") {
|
|
194
|
-
resolvedSchema2.else = resolveSchemaRecursive(schema.else, visited);
|
|
195
|
-
}
|
|
196
|
-
return resolvedSchema2;
|
|
197
|
-
}
|
|
198
|
-
if ("definitions" in schema || "$defs" in schema) {
|
|
199
|
-
const resolvedSchema2 = { ...schema };
|
|
200
|
-
if ("definitions" in schema && schema.definitions && typeof schema.definitions === "object") {
|
|
201
|
-
const resolvedDefinitions = {};
|
|
202
|
-
for (const [key, def] of Object.entries(schema.definitions)) {
|
|
203
|
-
if (def && typeof def === "object") {
|
|
204
|
-
resolvedDefinitions[key] = resolveSchemaRecursive(def, visited);
|
|
205
|
-
} else {
|
|
206
|
-
resolvedDefinitions[key] = def;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
resolvedSchema2.definitions = resolvedDefinitions;
|
|
210
|
-
}
|
|
211
|
-
if ("$defs" in schema && schema.$defs && typeof schema.$defs === "object") {
|
|
212
|
-
const resolved$Defs = {};
|
|
213
|
-
for (const [key, def] of Object.entries(schema.$defs)) {
|
|
214
|
-
if (def && typeof def === "object") {
|
|
215
|
-
resolved$Defs[key] = resolveSchemaRecursive(def, visited);
|
|
216
|
-
} else {
|
|
217
|
-
resolved$Defs[key] = def;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
resolvedSchema2.$defs = resolved$Defs;
|
|
221
|
-
}
|
|
222
|
-
return resolvedSchema2;
|
|
223
|
-
}
|
|
224
|
-
const resolvedSchema = { ...schema };
|
|
225
|
-
for (const [key, value] of Object.entries(schema)) {
|
|
226
|
-
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
227
|
-
if ("type" in value || "$ref" in value || "properties" in value || "items" in value) {
|
|
228
|
-
resolvedSchema[key] = resolveSchemaRecursive(value, visited);
|
|
229
|
-
}
|
|
230
|
-
} else if (Array.isArray(value)) {
|
|
231
|
-
const hasSchemas = value.some(
|
|
232
|
-
(item) => item && typeof item === "object" && ("type" in item || "$ref" in item || "properties" in item || "items" in item)
|
|
233
|
-
);
|
|
234
|
-
if (hasSchemas) {
|
|
235
|
-
resolvedSchema[key] = value.map(
|
|
236
|
-
(item) => item && typeof item === "object" ? resolveSchemaRecursive(item, visited) : item
|
|
237
|
-
);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
return resolvedSchema;
|
|
242
|
-
}
|
|
243
|
-
function validate(schema, data) {
|
|
244
|
-
const validator = new Cabidela(schema, {
|
|
245
|
-
fullErrors: true
|
|
246
|
-
});
|
|
247
|
-
validator.validate(data);
|
|
248
|
-
const defaults = getSchemaDefaults(schema);
|
|
249
|
-
applyDefaultsDeep(data, defaults);
|
|
250
|
-
return true;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
export {
|
|
254
|
-
normalizeSchemaEnum,
|
|
255
|
-
getSchemaDefaults,
|
|
256
|
-
filterSchemaProperties,
|
|
257
|
-
resolveSchema,
|
|
258
|
-
validate
|
|
259
|
-
};
|
|
260
|
-
//# sourceMappingURL=chunk-NT3IW52F.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/utils/schema.ts"],"sourcesContent":["import { type TArray, type TObject, type TSchema, Kind, type Static } from \"@sinclair/typebox\";\nimport type { PageAttributes } from \"../attributes\";\nimport { schemaRegistry } from \"./schema-registry\";\nimport { Cabidela } from \"@cloudflare/cabidela\";\nimport { defaultsDeep as applyDefaultsDeep } from \"lodash-es\";\n\nexport function normalizeSchemaEnum(schema: TSchema): Array<{ const: string; title: string }> {\n if (!(\"enum\" in schema)) {\n return schema.anyOf ?? schema.oneOf;\n }\n const {\n enum: enumValues,\n enumNames,\n \"ui:icons\": icons,\n } = schema as unknown as { enum: string[]; enumNames?: string[]; \"ui:icons\"?: string[] };\n // combine to key-value pairs\n return enumValues.map((value, index) => ({\n const: value,\n title: enumNames ? enumNames[index] : value,\n \"ui:icon\": icons ? icons[index] : undefined,\n }));\n}\n\nexport function getSchemaDefaults<T extends TObject | TArray>(\n schema: T,\n mode?: \"mobile\" | \"desktop\",\n): T extends TObject ? Record<string, unknown> : unknown[] {\n // Handle object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const defaults: Record<string, unknown> = {};\n\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n\n // Only include properties that have explicit defaults\n if (defaultValue !== undefined) {\n defaults[key] = defaultValue;\n }\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return defaults as any;\n }\n\n // Handle array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n const arraySchema = schema as TArray;\n\n if (mode && typeof arraySchema[`default:${mode}`] !== \"undefined\") {\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return arraySchema[`default:${mode}`] as any;\n }\n\n // If the array itself has an explicit default, return it\n if (arraySchema.default) {\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return arraySchema.default as any;\n }\n\n // Otherwise return empty array\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return [] as any;\n }\n\n throw new Error(\"Schema must be either TObject or TArray\");\n}\n\n// Helper function for nested schema processing\nfunction getNestedDefaults(schema: TSchema, mode?: \"mobile\" | \"desktop\"): unknown {\n if (mode && typeof schema[`default:${mode}`] !== \"undefined\") {\n return schema[`default:${mode}`];\n }\n // Handle schemas with explicit default values\n if (\"default\" in schema && schema.default !== undefined) {\n return schema.default;\n }\n\n // Handle nested object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const defaults: Record<string, unknown> = {};\n\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n\n // Only include properties that have explicit defaults\n if (defaultValue !== undefined) {\n defaults[key] = defaultValue;\n }\n }\n\n return Object.keys(defaults).length > 0 ? defaults : undefined;\n }\n\n // Handle nested array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n // Arrays only contribute defaults if explicitly set\n return undefined;\n }\n\n // No implicit defaults for any type\n return undefined;\n}\n\nexport type FieldFilter<\n T extends TSchema = TSchema,\n P extends Record<string, unknown> = Record<string, unknown>,\n> = (propsSchema: T, formData: P, pageAttributes: PageAttributes) => boolean;\n\nexport function filterSchemaProperties(schema: TObject, filter: (prop: TSchema) => boolean) {\n function extractProperties(schema: TObject): Record<string, TSchema> {\n const props: Record<string, TSchema> = {};\n for (const [key, prop] of Object.entries(schema.properties)) {\n if (filter(prop)) {\n props[key] = prop;\n } else if (prop.type === \"object\" && prop.properties) {\n const nestedContentProps = extractProperties(prop as TObject);\n if (Object.keys(nestedContentProps).length > 0) {\n Object.assign(props, nestedContentProps);\n }\n }\n }\n return props;\n }\n return extractProperties(schema);\n}\n\n/**\n * Resolves a JSON schema by following $ref references recursively.\n * Handles nested objects, arrays, and complex schema structures.\n */\nexport function resolveSchema<T extends TSchema = TSchema>(schema: T): T {\n return resolveSchemaRecursive(schema, new Set()) as T;\n}\n\n/**\n * Internal recursive function with circular reference detection\n */\nfunction resolveSchemaRecursive(schema: TSchema, visited: Set<string>): TSchema {\n // Handle primitive types and null\n if (!schema || typeof schema !== \"object\") {\n return schema;\n }\n\n // Handle $ref resolution\n if (\"$ref\" in schema && typeof schema.$ref === \"string\") {\n // Prevent infinite recursion with circular references\n if (visited.has(schema.$ref) || schema[Kind] === \"This\") {\n // console.warn(`Circular reference detected: ${schema.$ref}`);\n return schema; // Return original schema to avoid infinite loop\n }\n\n const resolved = schemaRegistry.get(schema.$ref);\n if (!resolved) {\n console.error(\"Schema not found for reference:\", schema);\n return schema;\n }\n\n // Add to visited set and recursively resolve the referenced schema\n visited.add(schema.$ref);\n const { $ref, ...rest } = schema;\n const resolvedSchema = {\n ...resolveSchemaRecursive(resolved, visited),\n ...rest,\n };\n visited.delete(schema.$ref); // Remove from visited after processing\n\n return resolvedSchema as TSchema;\n }\n\n // Handle object schemas\n if (\"type\" in schema && schema.type === \"object\" && \"properties\" in schema) {\n const resolvedProperties: Record<string, TSchema> = {};\n\n if (schema.properties && typeof schema.properties === \"object\") {\n for (const [key, value] of Object.entries(schema.properties)) {\n if (value && typeof value === \"object\") {\n resolvedProperties[key] = resolveSchemaRecursive(value as TSchema, visited);\n } else {\n resolvedProperties[key] = value as TSchema;\n }\n }\n }\n\n const resolvedSchema = { ...schema };\n if (Object.keys(resolvedProperties).length > 0) {\n resolvedSchema.properties = resolvedProperties;\n }\n\n // Handle additionalProperties\n if (\n \"additionalProperties\" in schema &&\n schema.additionalProperties &&\n typeof schema.additionalProperties === \"object\" &&\n schema.additionalProperties !== true\n ) {\n resolvedSchema.additionalProperties = resolveSchemaRecursive(\n schema.additionalProperties as TSchema,\n visited,\n );\n }\n\n // Handle patternProperties\n if (\n \"patternProperties\" in schema &&\n schema.patternProperties &&\n typeof schema.patternProperties === \"object\"\n ) {\n const resolvedPatternProperties: Record<string, TSchema> = {};\n for (const [pattern, patternSchema] of Object.entries(schema.patternProperties)) {\n if (patternSchema && typeof patternSchema === \"object\") {\n resolvedPatternProperties[pattern] = resolveSchemaRecursive(patternSchema as TSchema, visited);\n } else {\n resolvedPatternProperties[pattern] = patternSchema as TSchema;\n }\n }\n resolvedSchema.patternProperties = resolvedPatternProperties;\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle array schemas\n if (\"type\" in schema && schema.type === \"array\") {\n const resolvedSchema = { ...schema };\n\n if (\"items\" in schema && schema.items) {\n if (Array.isArray(schema.items)) {\n resolvedSchema.items = schema.items.map((item) => resolveSchemaRecursive(item as TSchema, visited));\n } else if (typeof schema.items === \"object\") {\n resolvedSchema.items = resolveSchemaRecursive(schema.items as TSchema, visited);\n }\n }\n\n // Handle additionalItems\n if (\n \"additionalItems\" in schema &&\n schema.additionalItems &&\n typeof schema.additionalItems === \"object\" &&\n schema.additionalItems !== true\n ) {\n resolvedSchema.additionalItems = resolveSchemaRecursive(schema.additionalItems as TSchema, visited);\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle union schemas (anyOf)\n if (\"anyOf\" in schema && Array.isArray(schema.anyOf)) {\n const resolvedAnyOf = schema.anyOf.map((subSchema) => {\n return resolveSchemaRecursive(subSchema as TSchema, visited);\n });\n\n return { ...schema, anyOf: resolvedAnyOf } as TSchema;\n }\n\n // Handle union schemas (oneOf)\n if (\"oneOf\" in schema && Array.isArray(schema.oneOf)) {\n const resolvedOneOf = schema.oneOf.map((subSchema) =>\n resolveSchemaRecursive(subSchema as TSchema, visited),\n );\n\n return { ...schema, oneOf: resolvedOneOf } as TSchema;\n }\n\n // Handle intersection schemas (allOf)\n if (\"allOf\" in schema && Array.isArray(schema.allOf)) {\n const resolvedAllOf = schema.allOf.map((subSchema) =>\n resolveSchemaRecursive(subSchema as TSchema, visited),\n );\n\n return { ...schema, allOf: resolvedAllOf } as TSchema;\n }\n\n // Handle not schemas\n if (\"not\" in schema && schema.not && typeof schema.not === \"object\") {\n const resolvedNot = resolveSchemaRecursive(schema.not as TSchema, visited);\n\n return { ...schema, not: resolvedNot } as TSchema;\n }\n\n // Handle conditional schemas (if/then/else)\n if (\"if\" in schema || \"then\" in schema || \"else\" in schema) {\n const resolvedSchema = { ...schema };\n\n if (\"if\" in schema && schema.if && typeof schema.if === \"object\") {\n resolvedSchema.if = resolveSchemaRecursive(schema.if as TSchema, visited);\n }\n\n if (\"then\" in schema && schema.then && typeof schema.then === \"object\") {\n // biome-ignore lint/suspicious/noThenProperty: <explanation>\n resolvedSchema.then = resolveSchemaRecursive(schema.then as TSchema, visited);\n }\n\n if (\"else\" in schema && schema.else && typeof schema.else === \"object\") {\n resolvedSchema.else = resolveSchemaRecursive(schema.else as TSchema, visited);\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle schemas with definitions\n if (\"definitions\" in schema || \"$defs\" in schema) {\n const resolvedSchema = { ...schema };\n\n if (\"definitions\" in schema && schema.definitions && typeof schema.definitions === \"object\") {\n const resolvedDefinitions: Record<string, TSchema> = {};\n for (const [key, def] of Object.entries(schema.definitions)) {\n if (def && typeof def === \"object\") {\n resolvedDefinitions[key] = resolveSchemaRecursive(def as TSchema, visited);\n } else {\n resolvedDefinitions[key] = def as TSchema;\n }\n }\n resolvedSchema.definitions = resolvedDefinitions;\n }\n\n if (\"$defs\" in schema && schema.$defs && typeof schema.$defs === \"object\") {\n const resolved$Defs: Record<string, TSchema> = {};\n for (const [key, def] of Object.entries(schema.$defs)) {\n if (def && typeof def === \"object\") {\n resolved$Defs[key] = resolveSchemaRecursive(def as TSchema, visited);\n } else {\n resolved$Defs[key] = def as TSchema;\n }\n }\n resolvedSchema.$defs = resolved$Defs;\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle any other schema types that might contain nested schemas\n const resolvedSchema = { ...schema };\n\n for (const [key, value] of Object.entries(schema)) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n // Check if this looks like a schema object\n if (\"type\" in value || \"$ref\" in value || \"properties\" in value || \"items\" in value) {\n (resolvedSchema as Record<string, unknown>)[key] = resolveSchemaRecursive(value as TSchema, visited);\n }\n } else if (Array.isArray(value)) {\n // Check if array contains schemas\n const hasSchemas = value.some(\n (item) =>\n item &&\n typeof item === \"object\" &&\n (\"type\" in item || \"$ref\" in item || \"properties\" in item || \"items\" in item),\n );\n\n if (hasSchemas) {\n (resolvedSchema as Record<string, unknown>)[key] = value.map((item) =>\n item && typeof item === \"object\" ? resolveSchemaRecursive(item as TSchema, visited) : item,\n );\n }\n }\n }\n\n return resolvedSchema as TSchema;\n}\n\nexport function validate<T extends TSchema>(schema: TSchema, data: unknown): data is Static<T> {\n const validator = new Cabidela(schema, {\n fullErrors: true,\n });\n validator.validate(data);\n\n // Mutate data with defaults\n const defaults = getSchemaDefaults(schema as TObject | TArray);\n applyDefaultsDeep(data, defaults);\n\n return true;\n}\n"],"mappings":"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","names":["schema","resolvedSchema"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/border.ts"],"sourcesContent":["import { type ObjectOptions, Type, type Static, type StringOptions } from \"@sinclair/typebox\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { borderColorRef } from \"./color\";\n\nexport function border(opts: ObjectOptions = {}) {\n return Type.Object(\n {\n width: StringEnum([\"border-0\", \"border\", \"border-2\", \"border-4\", \"border-8\"], {\n title: \"Width\",\n enumNames: [\"None\", \"Small\", \"Medium\", \"Large\", \"Extra large\"],\n \"ai:instructions\": \"Don't specify width if you want no border.\",\n \"ui:field\": \"enum\",\n \"ui:display\": \"select\",\n \"ui:placeholder\": \"None\",\n default: \"border-0\",\n }),\n color: borderColorRef({\n title: \"Color\",\n description: \"The color of the border.\",\n default: \"border-current\",\n }),\n },\n {\n title: \"Border\",\n \"ui:styleId\": \"styles:border\",\n description: \"Set the border width and color.\",\n \"ui:field\": \"border\",\n \"ui:responsive\": true,\n examples: [\n {\n width: \"border-2\",\n color: \"border-primary-200\",\n },\n {\n width: \"border-4\",\n color: \"border-accent-400\",\n },\n {\n width: \"border\",\n color: \"border-neutral-100\",\n },\n ],\n ...opts,\n },\n );\n}\n\nexport type BorderSettings = Static<ReturnType<typeof border>>;\n\nexport function borderRef(\n options: Omit<ObjectOptions, \"default\"> & { default?: Partial<BorderSettings> } = {},\n) {\n return typedRef(\"styles:border\", options);\n}\n\nexport function rounding(opts: StringOptions = {}) {\n return Type.Optional(\n StringEnum(\n [\n \"rounded-auto\",\n \"rounded-none\",\n \"rounded-sm\",\n \"rounded-md\",\n \"rounded-lg\",\n \"rounded-xl\",\n \"rounded-2xl\",\n \"rounded-full\",\n ],\n {\n title: \"Corner rounding\",\n enumNames: [\"Auto\", \"None\", \"Small\", \"Medium\", \"Large\", \"Extra large\", \"2xl\", \"Full\"],\n // $id: \"styles:rounding\",\n \"ui:styleId\": \"styles:rounding\",\n \"ui:responsive\": \"desktop\",\n ...opts,\n },\n ),\n );\n}\n\nexport type RoundingSettings = Static<ReturnType<typeof rounding>>;\n\nexport function roundingRef(options: StringOptions = {}) {\n return typedRef(\"styles:rounding\", options);\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,SAA6B,YAA6C;AAKnE,SAAS,OAAO,OAAsB,CAAC,GAAG;AAC/C,SAAO,KAAK;AAAA,IACV;AAAA,MACE,OAAO,WAAW,CAAC,YAAY,UAAU,YAAY,YAAY,UAAU,GAAG;AAAA,QAC5E,OAAO;AAAA,QACP,WAAW,CAAC,QAAQ,SAAS,UAAU,SAAS,aAAa;AAAA,QAC7D,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,SAAS;AAAA,MACX,CAAC;AAAA,MACD,OAAO,eAAe;AAAA,QACpB,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,cAAc;AAAA,MACd,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,UAAU;AAAA,QACR;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,UACd,UAAkF,CAAC,GACnF;AACA,SAAO,SAAS,iBAAiB,OAAO;AAC1C;AAEO,SAAS,SAAS,OAAsB,CAAC,GAAG;AACjD,SAAO,KAAK;AAAA,IACV;AAAA,MACE;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,WAAW,CAAC,QAAQ,QAAQ,SAAS,UAAU,SAAS,eAAe,OAAO,MAAM;AAAA;AAAA,QAEpF,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,GAAG;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF;AAIO,SAAS,YAAY,UAAyB,CAAC,GAAG;AACvD,SAAO,SAAS,mBAAmB,OAAO;AAC5C;","names":[]}
|