@upstart.gg/sdk 0.0.136 → 0.0.138
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/ai/schemas.d.ts.map +1 -1
- package/dist/shared/ai/schemas.js +26 -31
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +14 -62
- package/dist/shared/ai/types.d.ts.map +1 -1
- package/dist/shared/ajv.js +33 -31
- package/dist/shared/ajv.js.map +1 -1
- package/dist/shared/attributes.d.ts +91 -85
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +21 -23
- package/dist/shared/brick-manifest.d.ts +8 -5
- package/dist/shared/brick-manifest.d.ts.map +1 -1
- package/dist/shared/brick-manifest.js +3 -18
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/accordion.manifest.js +14 -20
- package/dist/shared/bricks/manifests/all-manifests.js +45 -43
- package/dist/shared/bricks/manifests/all-props.d.ts +1511 -0
- package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -0
- package/dist/shared/bricks/manifests/all-props.js +244 -0
- package/dist/shared/bricks/manifests/all-props.js.map +1 -0
- package/dist/shared/bricks/manifests/box.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +17 -20
- package/dist/shared/bricks/manifests/button.manifest.d.ts +3 -6
- package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/button.manifest.js +14 -20
- package/dist/shared/bricks/manifests/card.manifest.d.ts +5 -3
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +19 -20
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +3 -2
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +16 -20
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +5 -3
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +14 -20
- package/dist/shared/bricks/manifests/form.manifest.d.ts +3 -3
- package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/form.manifest.js +14 -20
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +3 -5
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +14 -20
- package/dist/shared/bricks/manifests/html.manifest.d.ts +2 -1
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +9 -20
- package/dist/shared/bricks/manifests/icon.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +14 -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 +17 -20
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +4 -2
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +16 -20
- package/dist/shared/bricks/manifests/map.manifest.d.ts +2 -1
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +12 -20
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +7 -5
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +16 -20
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +14 -20
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +15 -20
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +9 -20
- package/dist/shared/bricks/manifests/table.manifest.d.ts +5 -4
- package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/table.manifest.js +16 -20
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts +5 -5
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.js +16 -20
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +5 -3
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +19 -20
- package/dist/shared/bricks/manifests/text.manifest.d.ts +3 -10
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +14 -20
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts +7 -7
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/timeline.manifest.js +16 -20
- package/dist/shared/bricks/manifests/video.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/video.manifest.js +12 -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 +5 -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/grow.d.ts +3 -0
- package/dist/shared/bricks/props/grow.d.ts.map +1 -0
- package/dist/shared/{utils/typed-ref.js → bricks/props/grow.js} +5 -5
- package/dist/shared/bricks/props/helpers.js +6 -6
- package/dist/shared/bricks/props/image.d.ts +3 -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 +65 -154
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +48 -52
- package/dist/shared/chunk-2EOCK66Z.js +19 -0
- package/dist/shared/chunk-2EOCK66Z.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-2RK3CPYJ.js → chunk-2UEPTT5J.js} +12 -19
- package/dist/shared/chunk-2UEPTT5J.js.map +1 -0
- package/dist/shared/{chunk-W6MRYRGJ.js → chunk-2Z5WOCFS.js} +46 -20
- package/dist/shared/chunk-2Z5WOCFS.js.map +1 -0
- package/dist/shared/{chunk-CRS7QCPZ.js → chunk-34IUWNRX.js} +65 -27
- package/dist/shared/chunk-34IUWNRX.js.map +1 -0
- package/dist/shared/chunk-57NRTXRA.js +309 -0
- package/dist/shared/chunk-57NRTXRA.js.map +1 -0
- package/dist/shared/{chunk-UXTASZ23.js → chunk-5HJT5NJ3.js} +66 -63
- package/dist/shared/chunk-5HJT5NJ3.js.map +1 -0
- package/dist/shared/{chunk-H5JM2M2T.js → chunk-5J4Y43RM.js} +58 -185
- package/dist/shared/chunk-5J4Y43RM.js.map +1 -0
- package/dist/shared/{chunk-RV7AYVFV.js → chunk-5OVOXUFX.js} +6 -20
- package/dist/shared/chunk-5OVOXUFX.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-42OUNI7C.js → chunk-5SNSUC6Q.js} +27 -29
- package/dist/shared/chunk-5SNSUC6Q.js.map +1 -0
- package/dist/shared/{chunk-ZR6R6Z6O.js → chunk-B5T2LFV2.js} +34 -36
- package/dist/shared/chunk-B5T2LFV2.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-LLNPH3XR.js → chunk-DCM4732T.js} +6 -8
- package/dist/shared/chunk-DCM4732T.js.map +1 -0
- package/dist/shared/{chunk-LCJ2VFPM.js → chunk-E3ZW57HF.js} +32 -26
- package/dist/shared/chunk-E3ZW57HF.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-EUFVTHAG.js +33 -0
- package/dist/shared/chunk-EUFVTHAG.js.map +1 -0
- package/dist/shared/{chunk-2IHKVMKW.js → chunk-FC52EHCC.js} +18 -19
- package/dist/shared/chunk-FC52EHCC.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-KILJYJFE.js → chunk-FVV27R73.js} +20 -105
- package/dist/shared/chunk-FVV27R73.js.map +1 -0
- package/dist/shared/{chunk-N3ZTQD5I.js → chunk-FYGFB5U5.js} +10 -23
- package/dist/shared/chunk-FYGFB5U5.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-EVLRH6VG.js → chunk-GNTJT7MR.js} +2 -2
- package/dist/shared/chunk-GNTJT7MR.js.map +1 -0
- package/dist/shared/chunk-HHUFGV7J.js +259 -0
- package/dist/shared/chunk-HHUFGV7J.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-GIGFNQBO.js → chunk-IMDOF55E.js} +12 -4
- package/dist/shared/chunk-IMDOF55E.js.map +1 -0
- package/dist/shared/{chunk-N3BEBLWF.js → chunk-IPWYNE6Y.js} +34 -34
- package/dist/shared/chunk-J6R3GSKS.js +386 -0
- package/dist/shared/chunk-J6R3GSKS.js.map +1 -0
- package/dist/shared/{chunk-ZRRAK5NS.js → chunk-KRODRZNS.js} +41 -33
- package/dist/shared/chunk-KRODRZNS.js.map +1 -0
- package/dist/shared/chunk-KTA7XES3.js +168 -0
- package/dist/shared/chunk-KTA7XES3.js.map +1 -0
- package/dist/shared/{chunk-2VDR4ZYY.js → chunk-L4W4B2RQ.js} +26 -82
- package/dist/shared/chunk-L4W4B2RQ.js.map +1 -0
- package/dist/shared/chunk-MO6CRLQA.js +73 -0
- package/dist/shared/chunk-MO6CRLQA.js.map +1 -0
- package/dist/shared/{chunk-GQTZPN5D.js → chunk-NTP6BKRU.js} +29 -32
- package/dist/shared/chunk-NTP6BKRU.js.map +1 -0
- package/dist/shared/{chunk-DFAFDBYZ.js → chunk-O53V22BK.js} +34 -27
- package/dist/shared/chunk-O53V22BK.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-F247VKAE.js → chunk-ORIUCOED.js} +18 -20
- package/dist/shared/chunk-ORIUCOED.js.map +1 -0
- package/dist/shared/{chunk-GFAQWQER.js → chunk-PFZMRSHJ.js} +33 -35
- package/dist/shared/chunk-PFZMRSHJ.js.map +1 -0
- package/dist/shared/{chunk-KIDICX3Y.js → chunk-QHKOAIOK.js} +43 -78
- package/dist/shared/chunk-QHKOAIOK.js.map +1 -0
- package/dist/shared/{chunk-4MNWMEMM.js → chunk-RDOCVLCF.js} +21 -21
- package/dist/shared/chunk-RDOCVLCF.js.map +1 -0
- package/dist/shared/{chunk-FQDR2BBZ.js → chunk-RFH7PEVS.js} +13 -5
- package/dist/shared/chunk-RFH7PEVS.js.map +1 -0
- package/dist/shared/chunk-T3UPW5OW.js +79 -0
- package/dist/shared/chunk-T3UPW5OW.js.map +1 -0
- package/dist/shared/{chunk-L6C7HUSA.js → chunk-TGKNA2JS.js} +21 -24
- package/dist/shared/chunk-TGKNA2JS.js.map +1 -0
- package/dist/shared/chunk-TZ6X7ZM5.js +158 -0
- package/dist/shared/chunk-TZ6X7ZM5.js.map +1 -0
- package/dist/shared/{chunk-BHC2A43S.js → chunk-UC75KRLX.js} +3 -3
- package/dist/shared/{chunk-BHC2A43S.js.map → chunk-UC75KRLX.js.map} +1 -1
- package/dist/shared/{chunk-LTIJI7Y3.js → chunk-VMIJ6MG5.js} +34 -34
- package/dist/shared/chunk-VMIJ6MG5.js.map +1 -0
- package/dist/shared/{chunk-NTLAKMMQ.js → chunk-VYA2FCTY.js} +6 -17
- package/dist/shared/chunk-VYA2FCTY.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-FOGAVJC2.js → chunk-XYWSIMZ6.js} +3 -3
- package/dist/shared/chunk-XYWSIMZ6.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-36PLZKMW.js → chunk-ZYQZUWF7.js} +26 -27
- package/dist/shared/chunk-ZYQZUWF7.js.map +1 -0
- package/dist/shared/chunk-ZZVYD4BG.js +41 -0
- package/dist/shared/chunk-ZZVYD4BG.js.map +1 -0
- package/dist/shared/context.d.ts +406 -23
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/context.js +94 -0
- package/dist/shared/context.js.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.d.ts +1 -1
- package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.js +2 -1
- package/dist/shared/datarecords/types.d.ts +3 -3
- package/dist/shared/datarecords/types.d.ts.map +1 -1
- package/dist/shared/datarecords/types.js +3 -2
- package/dist/shared/datasources/external/instagram/feed/schema.d.ts +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js +4 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts +6 -6
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.js +6 -19
- package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.d.ts +2 -2
- package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.js +4 -1
- package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.d.ts +1 -1
- package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.js +4 -8
- package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
- package/dist/shared/datasources/internal/blog/schema.d.ts +1 -1
- package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/blog/schema.js +4 -1
- package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
- package/dist/shared/datasources/types.d.ts +25 -25
- package/dist/shared/datasources/types.d.ts.map +1 -1
- package/dist/shared/datasources/types.js +3 -16
- package/dist/shared/images.d.ts +1 -1
- package/dist/shared/images.d.ts.map +1 -1
- package/dist/shared/images.js +4 -38
- package/dist/shared/images.js.map +1 -1
- package/dist/shared/page.d.ts +141 -22
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +52 -49
- package/dist/shared/responsive.js +1 -1
- package/dist/shared/site.d.ts +81 -191
- package/dist/shared/site.d.ts.map +1 -1
- package/dist/shared/site.js +56 -114
- package/dist/shared/site.js.map +1 -1
- package/dist/shared/sitemap.d.ts +4 -326
- package/dist/shared/sitemap.d.ts.map +1 -1
- package/dist/shared/sitemap.js +51 -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 -7
- package/dist/shared/utils/schema.d.ts.map +1 -1
- package/dist/shared/utils/schema.js +2 -19
- 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 +25 -30
- package/src/shared/ai/types.ts +23 -89
- package/src/shared/attributes.ts +53 -51
- package/src/shared/brick-manifest.ts +5 -6
- package/src/shared/bricks/manifests/accordion.manifest.ts +11 -11
- package/src/shared/bricks/manifests/all-props.ts +165 -0
- package/src/shared/bricks/manifests/box.manifest.ts +19 -21
- package/src/shared/bricks/manifests/button.manifest.ts +54 -16
- package/src/shared/bricks/manifests/card.manifest.ts +45 -174
- package/src/shared/bricks/manifests/carousel.manifest.ts +11 -13
- package/src/shared/bricks/manifests/footer.manifest.ts +16 -15
- package/src/shared/bricks/manifests/form.manifest.ts +14 -15
- package/src/shared/bricks/manifests/hero.manifest.ts +58 -265
- package/src/shared/bricks/manifests/html.manifest.ts +6 -0
- package/src/shared/bricks/manifests/icon.manifest.ts +10 -99
- package/src/shared/bricks/manifests/image.manifest.ts +22 -23
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +21 -15
- package/src/shared/bricks/manifests/map.manifest.ts +19 -75
- package/src/shared/bricks/manifests/navbar.manifest.ts +20 -21
- package/src/shared/bricks/manifests/sidebar.manifest.ts +9 -10
- package/src/shared/bricks/manifests/social-links.manifest.ts +17 -20
- package/src/shared/bricks/manifests/spacer.manifest.ts +0 -1
- package/src/shared/bricks/manifests/table.manifest.ts +21 -15
- package/src/shared/bricks/manifests/tabs.manifest.ts +26 -445
- package/src/shared/bricks/manifests/testimonials.manifest.ts +47 -244
- package/src/shared/bricks/manifests/text.manifest.ts +28 -59
- package/src/shared/bricks/manifests/timeline.manifest.ts +29 -24
- package/src/shared/bricks/manifests/video.manifest.ts +9 -10
- package/src/shared/bricks/props/align.ts +0 -13
- package/src/shared/bricks/props/background.ts +3 -15
- 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 +12 -20
- package/src/shared/bricks/props/common.ts +8 -15
- 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/grow.ts +11 -0
- package/src/shared/bricks/props/helpers.ts +1 -1
- package/src/shared/bricks/props/image.ts +44 -16
- package/src/shared/bricks/props/string.ts +7 -18
- package/src/shared/bricks/props/tags.ts +0 -5
- package/src/shared/bricks/props/tests/background.test.ts +1 -15
- package/src/shared/bricks/props/tests/image.test.ts +3 -9
- package/src/shared/bricks/props/tests/string.test.ts +2 -26
- package/src/shared/bricks/props/text.ts +0 -12
- package/src/shared/bricks/props/types.ts +4 -3
- package/src/shared/bricks.ts +166 -1020
- package/src/shared/context.ts +24 -24
- package/src/shared/datarecords/external/airtable/types.ts +12 -11
- package/src/shared/datarecords/types.ts +2 -34
- package/src/shared/datasources/external/instagram/feed/schema.ts +2 -1
- package/src/shared/datasources/external/mastodon/status/schema.ts +4 -19
- package/src/shared/datasources/external/meta/oauth/config.ts +2 -1
- package/src/shared/datasources/external/threads/media/schema.ts +2 -8
- package/src/shared/datasources/internal/blog/schema.ts +2 -1
- package/src/shared/datasources/types.ts +64 -79
- package/src/shared/images.ts +12 -18
- package/src/shared/page.ts +10 -1
- package/src/shared/site.ts +1 -0
- package/src/shared/sitemap.ts +3 -70
- package/src/shared/tests/attributes.test.ts +2 -0
- package/src/shared/theme.ts +81 -96
- package/src/shared/utils/llm.ts +5 -191
- package/src/shared/utils/schema.ts +95 -258
- package/src/shared/utils/string-enum.ts +25 -4
- package/src/shared/utils/tests/schema.test.ts +278 -314
- package/dist/shared/chunk-2IHKVMKW.js.map +0 -1
- package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
- package/dist/shared/chunk-2VDR4ZYY.js.map +0 -1
- package/dist/shared/chunk-36PLZKMW.js.map +0 -1
- package/dist/shared/chunk-42OUNI7C.js.map +0 -1
- package/dist/shared/chunk-4MNWMEMM.js.map +0 -1
- package/dist/shared/chunk-A2QPY54H.js +0 -13
- package/dist/shared/chunk-A2QPY54H.js.map +0 -1
- package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
- package/dist/shared/chunk-CRS7QCPZ.js.map +0 -1
- package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
- package/dist/shared/chunk-DFAFDBYZ.js.map +0 -1
- package/dist/shared/chunk-DV3G7X34.js +0 -244
- package/dist/shared/chunk-DV3G7X34.js.map +0 -1
- package/dist/shared/chunk-EVLRH6VG.js.map +0 -1
- package/dist/shared/chunk-F22LDHEO.js.map +0 -1
- package/dist/shared/chunk-F247VKAE.js.map +0 -1
- package/dist/shared/chunk-FOGAVJC2.js.map +0 -1
- package/dist/shared/chunk-FQDR2BBZ.js.map +0 -1
- package/dist/shared/chunk-GFAQWQER.js.map +0 -1
- package/dist/shared/chunk-GIGFNQBO.js.map +0 -1
- package/dist/shared/chunk-GQTZPN5D.js.map +0 -1
- package/dist/shared/chunk-H5JM2M2T.js.map +0 -1
- package/dist/shared/chunk-HTUSL2U7.js +0 -260
- package/dist/shared/chunk-HTUSL2U7.js.map +0 -1
- package/dist/shared/chunk-IQIISR22.js +0 -794
- package/dist/shared/chunk-IQIISR22.js.map +0 -1
- package/dist/shared/chunk-JK2FWFJU.js +0 -15
- package/dist/shared/chunk-JK2FWFJU.js.map +0 -1
- package/dist/shared/chunk-KEM5N6GJ.js +0 -505
- package/dist/shared/chunk-KEM5N6GJ.js.map +0 -1
- package/dist/shared/chunk-KIDICX3Y.js.map +0 -1
- package/dist/shared/chunk-KILJYJFE.js.map +0 -1
- package/dist/shared/chunk-L6C7HUSA.js.map +0 -1
- package/dist/shared/chunk-LCJ2VFPM.js.map +0 -1
- package/dist/shared/chunk-LLNPH3XR.js.map +0 -1
- package/dist/shared/chunk-LTIJI7Y3.js.map +0 -1
- package/dist/shared/chunk-MFNHFN2B.js +0 -103
- package/dist/shared/chunk-MFNHFN2B.js.map +0 -1
- package/dist/shared/chunk-N3ZTQD5I.js.map +0 -1
- package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
- package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
- package/dist/shared/chunk-RV7AYVFV.js.map +0 -1
- package/dist/shared/chunk-SE6O65HC.js +0 -44
- package/dist/shared/chunk-SE6O65HC.js.map +0 -1
- package/dist/shared/chunk-TFGGYU6Y.js.map +0 -1
- package/dist/shared/chunk-TNMNMYOB.js.map +0 -1
- package/dist/shared/chunk-TNTFKLCR.js +0 -1225
- package/dist/shared/chunk-TNTFKLCR.js.map +0 -1
- package/dist/shared/chunk-U5ZECCJM.js +0 -464
- package/dist/shared/chunk-U5ZECCJM.js.map +0 -1
- package/dist/shared/chunk-UXTASZ23.js.map +0 -1
- package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
- package/dist/shared/chunk-WKN566LN.js +0 -29
- package/dist/shared/chunk-WKN566LN.js.map +0 -1
- package/dist/shared/chunk-Y74LZNND.js.map +0 -1
- package/dist/shared/chunk-YWOTQWIQ.js +0 -572
- package/dist/shared/chunk-YWOTQWIQ.js.map +0 -1
- package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
- package/dist/shared/chunk-ZR6R6Z6O.js.map +0 -1
- package/dist/shared/chunk-ZRRAK5NS.js.map +0 -1
- package/dist/shared/tests/schema-registry.test.d.ts +0 -2
- package/dist/shared/tests/schema-registry.test.d.ts.map +0 -1
- package/dist/shared/utils/schema-registry.d.ts +0 -5
- package/dist/shared/utils/schema-registry.d.ts.map +0 -1
- package/dist/shared/utils/schema-registry.js +0 -29
- package/dist/shared/utils/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.map +0 -1
- package/src/shared/tests/schema-registry.test.ts +0 -12
- package/src/shared/utils/schema-registry.ts +0 -82
- package/src/shared/utils/tests/schema-registry.test.ts +0 -13
- package/src/shared/utils/typed-ref.ts +0 -53
- /package/dist/shared/{utils/schema-registry.js.map → bricks/props/grow.js.map} +0 -0
- /package/dist/shared/{chunk-N3BEBLWF.js.map → chunk-IPWYNE6Y.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/testimonials.manifest.ts"],"sourcesContent":["import { type Static, type TObject, Type } from \"@sinclair/typebox\";\nimport { HiOutlineChatBubbleBottomCenter } from \"react-icons/hi2\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { imageRef } from \"../props/image\";\nimport { iconRef, string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { fontSizeRef } from \"../props/text\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { loopRef } from \"../props/dynamic\";\nimport { borderRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"testimonials\",\n name: \"Testimonials\",\n description: \"Display testimonials from users\",\n defaultWidth: { desktop: \"100%\" },\n icon: HiOutlineChatBubbleBottomCenter,\n consumesMultipleQueryRows: true,\n aiInstructions: `This brick displays user testimonials with optional avatars and social icons.\nIt is typically used to showcase customer feedback or endorsements.\nOptionally either use an avatar or a social icon but not both at the same time.`,\n props: defineProps(\n {\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n default: \"base-100\",\n }),\n ),\n border: Type.Optional(\n borderRef({\n title: \"Border\",\n description: \"Customize the border of the testimonial cards.\",\n default: {\n width: \"border\",\n color: \"border-accent-500\",\n },\n }),\n ),\n fontSize: Type.Optional(\n fontSizeRef({\n \"ui:no-extra-large-sizes\": true,\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"1rem\",\n description: \"Padding inside the main container.\",\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 gap: Type.Optional(\n cssLengthRef({\n title: \"Gap\",\n default: \"26px\",\n description: \"Space between bricks.\",\n \"ai:instructions\":\n \"Can be a tailwind gap class like 'gap-1' or 'gap-2', or a custom value like '10px'\",\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:gap\",\n }),\n ),\n shadow: Type.Optional(shadowRef()),\n loop: Type.Optional(\n loopRef({\n // title: \"Use dynamic content\",\n description:\n \"If enabled, each row from the query result will be used to create a testimonial. Otherwise, the testimonials will be static.\",\n \"ui:placeholder\": \"Not specified (static)\",\n }),\n ),\n testimonials: Type.Optional(\n Type.Array(\n Type.Object({\n text: string(\"Text\", {\n default: \"Amazing product!\",\n \"ui:multiline\": true,\n \"ui:textarea-class\": \"h-20\",\n }),\n author: string(\"Author\", { default: \"John Doe\" }),\n company: Type.Optional(string(\"Company\")),\n avatar: Type.Optional(\n imageRef({\n title: \"Avatar\",\n \"ui:placeholder\": \"https://via.placeholder.com/80x80.png?text=JD\",\n noObjectOptions: true,\n }),\n ),\n socialIcon: Type.Optional(iconRef()),\n }),\n {\n title: \"Testimonials\",\n default: [], // Empty array by default\n \"ui:displayField\": \"author\", // Affiche le nom de l'auteur dans la vue compacte\n \"ui:options\": {\n orderable: true, // Enable drag & drop reordering\n removable: true, // Enable delete button\n addable: true, // Enable add button\n },\n metadata: {\n category: \"content\",\n consumeQuery: true,\n },\n examples: [\n {\n text: \"This is a great product! It has changed my life.\",\n author: \"John Doe\",\n company: \"Acme Inc.\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=JD\",\n alt: \"John Doe profile photo\",\n },\n socialIcon: \"mdi:linkedin\",\n },\n ],\n },\n ),\n ),\n },\n {\n default: {\n orientation: \"horizontal\",\n },\n },\n ),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"SaaS platform testimonials with avatars\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"Sarah Johnson\",\n company: \"TechCorp Solutions\",\n text: \"This platform has completely transformed how we manage our projects. The intuitive interface and powerful automation features have saved us countless hours.\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=SJ\",\n alt: \"Sarah Johnson profile photo\",\n },\n socialIcon: \"mdi:linkedin\",\n },\n {\n author: \"Mike Chen\",\n company: \"StartupFlow\",\n text: \"Outstanding customer support and regular feature updates. We've been using this for over a year and it keeps getting better. Highly recommend!\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=MC\",\n alt: \"Mike Chen profile photo\",\n },\n socialIcon: \"mdi:twitter\",\n },\n {\n author: \"Emily Rodriguez\",\n company: \"Digital Agency Pro\",\n text: \"The automation capabilities are game-changing. What used to take us days now happens automatically. It's like having an extra team member.\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=ER\",\n alt: \"Emily Rodriguez profile photo\",\n },\n socialIcon: \"mdi:linkedin\",\n },\n ],\n },\n },\n {\n description: \"E-commerce customer reviews\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"Jessica Williams\",\n company: \"Happy Customer\",\n text: \"Amazing product quality and fast shipping! The item exceeded my expectations and the customer service was excellent when I had questions.\",\n avatar: {\n src: \"https://via.placeholder.com/60x60.png?text=JW\",\n alt: \"Jessica Williams customer photo\",\n },\n socialIcon: \"mdi:star\",\n },\n {\n author: \"David Park\",\n text: \"Five stars! Been using this product for 6 months and it's still going strong. Definitely worth the investment and I've already recommended it to friends.\",\n avatar: {\n src: \"https://via.placeholder.com/60x60.png?text=DP\",\n alt: \"David Park customer photo\",\n },\n socialIcon: \"mdi:thumbs-up\",\n },\n ],\n },\n },\n {\n description: \"Agency client testimonials with company info\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"Rachel Thompson\",\n company: \"Global Enterprises\",\n text: \"The team delivered exceptional results on time and within budget. Their creative approach and attention to detail made all the difference for our brand.\",\n avatar: {\n src: \"https://via.placeholder.com/70x70.png?text=RT\",\n alt: \"Rachel Thompson headshot\",\n },\n socialIcon: \"mdi:briefcase\",\n },\n {\n author: \"Alex Kumar\",\n company: \"Innovation Labs\",\n text: \"Working with this agency was a game-changer for our digital presence. They understood our vision and brought it to life beautifully.\",\n avatar: {\n src: \"https://via.placeholder.com/70x70.png?text=AK\",\n alt: \"Alex Kumar profile\",\n },\n socialIcon: \"mdi:lightbulb\",\n },\n {\n author: \"Maria Santos\",\n company: \"Retail Plus\",\n text: \"Professional, creative, and results-driven. Our website traffic increased by 200% after their redesign. Couldn't be happier!\",\n avatar: {\n src: \"https://via.placeholder.com/70x70.png?text=MS\",\n alt: \"Maria Santos photo\",\n },\n socialIcon: \"mdi:chart-line\",\n },\n ],\n },\n },\n {\n description: \"App user feedback\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"Tom Wilson\",\n text: \"This app has made my daily routine so much easier. Love the clean interface and how everything just works seamlessly across all my devices.\",\n avatar: {\n src: \"https://via.placeholder.com/65x65.png?text=TW\",\n alt: \"Tom Wilson user photo\",\n },\n socialIcon: \"mdi:cellphone\",\n },\n {\n author: \"Lisa Chang\",\n text: \"Been using this app for months and it's become essential to my workflow. The latest update with AI features is incredibly impressive.\",\n avatar: {\n src: \"https://via.placeholder.com/65x65.png?text=LC\",\n alt: \"Lisa Chang profile picture\",\n },\n socialIcon: \"mdi:robot\",\n },\n {\n author: \"James Miller\",\n text: \"Simple, powerful, and reliable. Exactly what I was looking for. The customer support team is also very responsive and helpful.\",\n avatar: {\n src: \"https://via.placeholder.com/65x65.png?text=JM\",\n alt: \"James Miller avatar\",\n },\n socialIcon: \"mdi:heart\",\n },\n ],\n },\n },\n {\n description: \"Course/education testimonials with social icons\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"Amanda Foster\",\n company: \"UX Designer\",\n text: \"This course completely changed my career trajectory. The practical projects and expert feedback helped me land my dream job in just 3 months.\",\n avatar: {\n src: \"https://via.placeholder.com/75x75.png?text=AF\",\n alt: \"Amanda Foster student photo\",\n },\n socialIcon: \"mdi:school\",\n },\n {\n author: \"Carlos Rodriguez\",\n company: \"Software Engineer\",\n text: \"The instructors are industry experts and the content is always up-to-date. I've taken three courses here and each one exceeded my expectations.\",\n avatar: {\n src: \"https://via.placeholder.com/75x75.png?text=CR\",\n alt: \"Carlos Rodriguez profile\",\n },\n socialIcon: \"mdi:code-tags\",\n },\n ],\n },\n },\n {\n description: \"Simple testimonials without avatars\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"Anonymous User\",\n text: \"Great service and excellent value for money. Would definitely recommend to others looking for a reliable solution.\",\n socialIcon: \"mdi:account-circle\",\n },\n {\n author: \"Verified Customer\",\n text: \"Quick delivery and exactly as described. Very satisfied with my purchase and the overall experience.\",\n socialIcon: \"mdi:check-circle\",\n },\n {\n author: \"Beta Tester\",\n text: \"Been using the beta version and it's already impressive. Looking forward to the full release with even more features.\",\n socialIcon: \"mdi:beta\",\n },\n ],\n },\n },\n {\n description: \"Consultant testimonials with professional focus\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"Dr. Patricia Lee\",\n company: \"Medical Practice Solutions\",\n text: \"The consulting services provided were invaluable to our practice. Revenue increased by 40% and patient satisfaction scores improved significantly.\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=PL\",\n alt: \"Dr. Patricia Lee headshot\",\n },\n socialIcon: \"mdi:medical-bag\",\n },\n {\n author: \"Robert Kim\",\n company: \"Manufacturing Inc.\",\n text: \"Their strategic insights helped us streamline operations and reduce costs by 25%. The ROI was evident within the first quarter.\",\n avatar: {\n src: \"https://via.placeholder.com/80x80.png?text=RK\",\n alt: \"Robert Kim executive photo\",\n },\n socialIcon: \"mdi:factory\",\n },\n ],\n },\n },\n {\n description: \"Event testimonials with social media icons\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"Jennifer Adams\",\n company: \"Marketing Director\",\n text: \"Best conference I've attended in years! The networking opportunities were incredible and the speakers were top-notch industry leaders.\",\n avatar: {\n src: \"https://via.placeholder.com/70x70.png?text=JA\",\n alt: \"Jennifer Adams conference attendee\",\n },\n socialIcon: \"mdi:twitter\",\n },\n {\n author: \"Michael Brown\",\n company: \"Tech Startup Founder\",\n text: \"The workshops were incredibly practical and I left with actionable strategies I could implement immediately. Already planning to attend next year!\",\n avatar: {\n src: \"https://via.placeholder.com/70x70.png?text=MB\",\n alt: \"Michael Brown participant photo\",\n },\n socialIcon: \"mdi:linkedin\",\n },\n {\n author: \"Sophie Chen\",\n company: \"Product Manager\",\n text: \"Amazing organization and valuable content. Met so many like-minded professionals and learned cutting-edge techniques I'm excited to try.\",\n avatar: {\n src: \"https://via.placeholder.com/70x70.png?text=SC\",\n alt: \"Sophie Chen attendee photo\",\n },\n socialIcon: \"mdi:instagram\",\n },\n ],\n },\n },\n {\n description: \"Dynamic customer testimonials using customerReviews query\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"{{customerReviews.customerName}}\",\n company: \"{{customerReviews.company}}\",\n text: \"{{customerReviews.reviewText}}\",\n avatar: {\n src: \"{{customerReviews.customerPhoto}}\",\n alt: \"{{customerReviews.customerName}} photo\",\n },\n socialIcon: \"{{customerReviews.socialPlatform}}\",\n },\n ],\n loop: {\n over: \"customerReviews\",\n },\n },\n },\n {\n description: \"Dynamic client testimonials using clientFeedback query\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"{{clientFeedback.clientName}}\",\n company: \"{{clientFeedback.companyName}} - {{clientFeedback.position}}\",\n text: \"{{clientFeedback.testimonial}}\",\n avatar: {\n src: \"{{clientFeedback.headshot}}\",\n alt: \"{{clientFeedback.clientName}} headshot\",\n },\n socialIcon: \"{{clientFeedback.preferredIcon}}\",\n },\n ],\n loop: {\n over: \"clientFeedback\",\n },\n },\n },\n {\n description: \"Dynamic product reviews using productReviews query\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"{{productReviews.reviewerName}}\",\n text: \"{{productReviews.review}} - {{productReviews.rating}}/5 stars\",\n avatar: {\n src: \"{{productReviews.userAvatar}}\",\n alt: \"{{productReviews.reviewerName}} profile\",\n },\n socialIcon: \"mdi:star\",\n },\n ],\n loop: {\n over: \"productReviews\",\n },\n },\n },\n {\n description: \"Dynamic employee testimonials using teamTestimonials query\",\n type: \"testimonials\",\n props: {\n testimonials: [\n {\n author: \"{{teamTestimonials.employeeName}}\",\n company: \"{{teamTestimonials.department}} - {{teamTestimonials.jobTitle}}\",\n text: \"{{teamTestimonials.testimonial}}\",\n avatar: {\n src: \"{{teamTestimonials.profilePhoto}}\",\n alt: \"{{teamTestimonials.employeeName}} profile photo\",\n },\n socialIcon: \"{{teamTestimonials.socialIcon}}\",\n },\n ],\n loop: {\n over: \"teamTestimonials\",\n },\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/text.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { textContentRef } from \"../props/text\";\nimport { defineProps } from \"../props/helpers\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { RxTextAlignLeft } from \"react-icons/rx\";\nimport { Type } from \"@sinclair/typebox\";\nimport { alignItemsRef } from \"../props/align\";\nimport { shadowRef } from \"../props/effects\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"text\",\n category: \"basic\",\n name: \"Text\",\n description: \"Text with formatting options\",\n aiInstructions: `Use the text component for rich content blocks, announcements, descriptions, and formatted text throughout your site.\n\nCONTENT FORMATTING:\n- Supports HTML tags: <h1>, <h2>, <h3>, <h4>, <p>, <span>, <strong>, <em>, <br>, <a>, <ul>, <li>, <ol>\n- Only 'text-align' style is supported (center, left, right) - avoid other inline styles\n- Use <strong> for emphasis, <em> for italics, <br> for line breaks\n- Links: <a href=\"/page\">Internal</a> or <a href=\"https://external.com\">External</a>\n- Lists: <ul><li>Item 1</li><li>Item 2</li></ul>\n\nSTYLING OPTIONS:\n- colorPreset: Leave empty to inherit parent colors, or use \"primary-100\", \"secondary-200\", \"neutral-50\", \"accent-100\" for backgrounds\n- padding: Use CSS values like \"1rem\", \"2rem\", \"24px\" for internal spacing\n- rounding: \"rounded-none\" (sharp), \"rounded-md\" (standard), \"rounded-lg\" (friendly), \"rounded-xl\" (soft)\n- border: Add borders with width (\"border\", \"border-2\") and color (\"border-gray-300\", \"border-primary-500\")\n- shadow: Add depth with \"shadow-sm\", \"shadow-md\", \"shadow-lg\"\n\nWHEN TO USE:\n- Rich content sections (About Us, Service descriptions)\n- Announcements and notices\n- Product descriptions with formatting\n- Quotes and testimonials\n- FAQ content and detailed explanations\n- Footer information and legal text\n\nBEST PRACTICES:\n- Keep HTML minimal - complex layouts should use multiple components\n- Use semantic headings (h2, h3, h4) for proper hierarchy\n- Center-align for quotes/testimonials, left-align for body text\n- Choose background colors that provide good contrast, or no background for inline text`,\n defaultWidth: {\n mobile: \"100%\",\n },\n defaultHeight: {\n desktop: \"auto\",\n mobile: \"auto\",\n },\n staticClasses: \"prose lg:prose-lg\",\n icon: RxTextAlignLeft,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n content: textContentRef({\n title: \"Content\",\n // metadata: {\n // category: \"content\",\n // },\n }),\n verticalAlign: Type.Optional(\n alignItemsRef({\n default: \"items-center\",\n title: \"Align\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"2rem\",\n description: \"Padding inside the text.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n shadow: Type.Optional(shadowRef()),\n loop: Type.Optional(loopRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Welcome paragraph with emphasis and padding\",\n type: \"text\",\n props: {\n content:\n \"Welcome to our platform! We're <strong>excited</strong> to have you here. Our mission is to <em>transform</em> the way you work with cutting-edge technology and <a href='/features'>innovative features</a>.\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Feature list with HTML formatting and smaller padding\",\n type: \"text\",\n props: {\n content:\n \"<h3>Key Features</h3><ul><li><strong>Advanced Analytics</strong> - Real-time data insights</li><li><strong>Cloud Integration</strong> - Seamless connectivity</li><li><strong>24/7 Support</strong> - Always here to help</li></ul>\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Quote block with text styling but no background\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'><em>\\\"Innovation distinguishes between a leader and a follower.\\\"</em><br><strong>- Steve Jobs</strong></p>\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Simple heading with subtle background\",\n type: \"text\",\n props: {\n content:\n \"<h2>About Our Company</h2><p>We've been serving customers since 2010, building trust through quality products and exceptional service.</p>\",\n colorPreset: {\n color: \"primary-100\",\n },\n },\n },\n {\n description: \"Team introduction with formatting, no background color\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'><strong>Meet Our Team</strong></p><p>Our diverse team of experts brings together decades of experience in technology, design, and business strategy. We're passionate about <em>creating solutions</em> that make a real difference.</p><p><a href='/team'>Learn more about our team</a> and the values that drive us forward.</p>\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Maintenance notice with neutral background and border\",\n type: \"text\",\n props: {\n content:\n \"<p>Scheduled maintenance will occur on <em>Sunday, March 15th</em> from 2:00 AM to 6:00 AM UTC.</p><p>During this time, some features may be temporarily unavailable. We apologize for any inconvenience.</p>\",\n padding: \"1rem\",\n colorPreset: {\n color: \"neutral-700\",\n },\n border: {\n width: \"border\",\n color: \"border-neutral-400\",\n },\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Minimal text with no padding or background\",\n type: \"text\",\n props: {\n content: \"This is some minimal text.\",\n padding: \"0rem\",\n },\n },\n {\n description: \"Call-to-action text with secondary background and shadow\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='text-align: center'>Ready to Get Started?</h3><p style='text-align: center'>Join thousands of satisfied customers who trust our platform. <strong>Sign up today</strong> and experience the difference!</p><p style='text-align: center'><a href='/signup'>Create Your Free Account</a></p>\",\n colorPreset: {\n color: \"secondary-200\",\n },\n padding: \"2.5rem\",\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n verticalAlign: \"items-center\",\n },\n },\n {\n description: \"Technical documentation with accent colors and code-like formatting\",\n type: \"text\",\n props: {\n content:\n \"<h4>API Authentication</h4><p>To authenticate your requests, include your API key in the header:</p><p><strong>Authorization: Bearer YOUR_API_KEY</strong></p><p>All API endpoints require authentication. You can find your API key in the <a href='/dashboard'>dashboard settings</a>.</p>\",\n colorPreset: {\n color: \"accent-100\",\n },\n padding: \"1.5rem\",\n rounding: \"rounded-md\",\n border: {\n width: \"border-4\",\n color: \"border-accent-500\",\n },\n },\n },\n {\n description: \"Success message with primary background and top alignment\",\n type: \"text\",\n props: {\n content:\n \"<h3>✅ Payment Successful!</h3><p>Thank you for your purchase. Your order <strong>#12345</strong> has been confirmed.</p><p>You will receive an email confirmation shortly at your registered email address.</p>\",\n colorPreset: {\n color: \"primary-200\",\n },\n padding: \"2rem\",\n rounding: \"rounded-lg\",\n shadow: \"shadow-sm\",\n verticalAlign: \"items-start\",\n },\n },\n {\n description: \"Footer information with neutral dark theme and multiple links\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'>© 2024 Company Name. All rights reserved.</p><p style='text-align: center'><a href='/privacy'>Privacy Policy</a> | <a href='/terms'>Terms of Service</a> | <a href='/contact'>Contact Us</a></p><p style='text-align: center'><em>Follow us on social media for the latest updates</em></p>\",\n colorPreset: {\n color: \"neutral-800\",\n },\n padding: \"1.5rem\",\n verticalAlign: \"items-end\",\n },\n },\n {\n description: \"Product description with large padding and rounded corners\",\n type: \"text\",\n props: {\n content:\n \"<h2>Premium Wireless Headphones</h2><p>Experience <strong>crystal-clear audio</strong> with our latest wireless headphones featuring:</p><ul><li>Active noise cancellation</li><li>30-hour battery life</li><li>Premium leather comfort</li><li>Hi-res audio certification</li></ul><p>Perfect for <em>music lovers</em> and <em>professionals</em> alike.</p>\",\n padding: \"3rem\",\n rounding: \"rounded-2xl\",\n shadow: \"shadow-lg\",\n border: {\n width: \"border\",\n color: \"border-neutral-300\",\n },\n },\n },\n {\n description: \"Emergency alert with accent background and extra bold formatting\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='text-align: center'>⚠️ URGENT NOTICE</h3><p style='text-align: center'><strong>System maintenance is currently in progress.</strong></p><p style='text-align: center'>Some services may be <em>temporarily unavailable</em>. We expect full restoration by 4:00 PM EST.</p><p style='text-align: center'>For urgent support, please <a href='/emergency-contact'>contact our emergency line</a>.</p>\",\n colorPreset: {\n color: \"accent-400\",\n },\n padding: \"2rem\",\n rounding: \"rounded-md\",\n border: {\n width: \"border-2\",\n color: \"border-accent-600\",\n },\n shadow: \"shadow-xl\",\n verticalAlign: \"items-center\",\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/icon.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { PiConfetti } from \"react-icons/pi\";\nimport { iconRef, urlOrPageIdRef } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { colorRef } from \"../props/color\";\nimport { loopRef } from \"../props/dynamic\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"icon\",\n name: \"Icon\",\n category: \"basic\",\n description: \"An icon.\",\n aiInstructions: `Use the icon component for adding visual symbols and interactive elements throughout your design.\n\nWHEN TO USE:\n- Navigation elements (menu, close, arrow buttons)\n- Social media links (Facebook, Twitter, Instagram, LinkedIn)\n- Contact information (email, phone, location markers)\n- User interface actions (search, shopping cart, download)\n- Status indicators (success, warning, error, info)\n- Content enhancement (stars, hearts, thumbs up)\n- Feature highlights (checkmarks, shields, awards)\n\nICON SELECTION:\n- Use Iconify format: \"mdi:icon-name\", \"lucide:icon-name\", \"heroicons:icon-name\"\n- Examples: \"mdi:heart\", \"lucide:star\", \"heroicons:envelope\", \"mdi:facebook\"\n\nSIZING GUIDELINES:\n- size: \"1em\" for inline text icons, \"1.5em\" for buttons, \"2em\" for headers\n- Common sizes: \"16px\", \"20px\", \"24px\", \"32px\" for pixel precision\n- Use \"em\" units to scale with text, \"px\" for fixed sizes\n- Large decorative icons: \"3em\", \"4em\", or \"48px\", \"64px\"\n\nCOLOR OPTIONS:\n- color: \"currentColor\" inherits text color (default)\n- Hex colors: \"#1877f2\" (Facebook blue), \"#ff0000\" (red), \"#10b981\" (green)\n- Use brand colors for social media icons\n- Match color scheme: warnings (orange/yellow), errors (red), success (green)\n\nINTERACTIVE ICONS:\n- Add link property for clickable icons\n- External links: \"https://facebook.com/yourpage\"\n- Email links: \"mailto:contact@example.com\"\n- Phone links: \"tel:+1234567890\"\n- Internal pages: \"/contact\", \"/about\"\n\nDYNAMIC CONTENT:\n- Use template variables: icon: \"{{ service.iconName }}\"\n- Dynamic colors: color: \"{{ brand.primaryColor }}\"\n- Loop over data for icon lists or social media sets\n\nAVOID:\n- Oversized icons that dominate content\n- Poor contrast (light icons on light backgrounds)\n- Inconsistent icon styles within the same design\n- Missing alt text context when icons convey important information`,\n resizable: false,\n staticClasses: \"!grow-0\",\n icon: PiConfetti,\n props: defineProps(\n {\n icon: iconRef({\n default: \"mdi:heart\",\n }),\n size: Type.Optional(\n cssLengthRef({\n title: \"Size\",\n description: \"The size of the icon. Can be a CSS length value (e.g. '2em', '24px')\",\n default: \"1em\",\n \"ui:css-units\": [\"em\", \"rem\", \"px\"],\n \"ai:instructions\": \"Use 'em', 'rem', or 'px' for units. Example: '2em', '24px'\",\n }),\n ),\n color: Type.Optional(\n colorRef({\n title: \"Color\",\n default: \"currentColor\",\n \"ui:hide-color-label\": true,\n }),\n ),\n link: Type.Optional(urlOrPageIdRef({ title: \"Link\" })),\n loop: Type.Optional(loopRef()),\n },\n { noGrow: true },\n ),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n // BASIC ICONS\n {\n description: \"Heart icon with default styling - Inherits text color and size\",\n type: \"icon\",\n props: {\n icon: \"mdi:heart\",\n },\n },\n {\n description: \"Star icon with gold color - Perfect for ratings and reviews\",\n type: \"icon\",\n props: {\n icon: \"mdi:star\",\n size: \"1.2em\",\n color: \"#fbbf24\",\n },\n },\n\n // NAVIGATION ICONS\n {\n description: \"Menu hamburger icon - Mobile navigation toggle\",\n type: \"icon\",\n props: {\n icon: \"mdi:menu\",\n size: \"1.8em\",\n color: \"#374151\",\n },\n },\n {\n description: \"Search icon - Search functionality indicator\",\n type: \"icon\",\n props: {\n icon: \"mdi:magnify\",\n size: \"1.2em\",\n color: \"#6b7280\",\n },\n },\n {\n description: \"Shopping cart icon - E-commerce navigation\",\n type: \"icon\",\n props: {\n icon: \"mdi:cart\",\n size: \"1.4em\",\n color: \"#059669\",\n },\n },\n {\n description: \"Arrow right icon - Navigation and call-to-action\",\n type: \"icon\",\n props: {\n icon: \"mdi:arrow-right\",\n size: \"1.1em\",\n color: \"currentColor\",\n },\n },\n\n // SOCIAL MEDIA ICONS\n {\n description: \"Facebook icon with official brand color and link\",\n type: \"icon\",\n props: {\n icon: \"mdi:facebook\",\n size: \"1.5em\",\n color: \"#1877f2\",\n link: \"https://facebook.com/yourpage\",\n },\n },\n {\n description: \"Twitter/X icon with link - Social media engagement\",\n type: \"icon\",\n props: {\n icon: \"mdi:twitter\",\n size: \"1.5em\",\n color: \"#000000\",\n link: \"https://x.com/yourhandle\",\n },\n },\n {\n description: \"Instagram icon with gradient-inspired color\",\n type: \"icon\",\n props: {\n icon: \"mdi:instagram\",\n size: \"1.5em\",\n color: \"#e1306c\",\n link: \"https://instagram.com/yourprofile\",\n },\n },\n {\n description: \"LinkedIn icon with professional blue\",\n type: \"icon\",\n props: {\n icon: \"mdi:linkedin\",\n size: \"1.5em\",\n color: \"#0077b5\",\n link: \"https://linkedin.com/company/yourcompany\",\n },\n },\n\n // CONTACT INFORMATION ICONS\n {\n description: \"Email icon with link - Contact information\",\n type: \"icon\",\n props: {\n icon: \"mdi:email\",\n size: \"1.3em\",\n color: \"#4f46e5\",\n link: \"mailto:contact@example.com\",\n },\n },\n {\n description: \"Phone icon with clickable link - Direct calling\",\n type: \"icon\",\n props: {\n icon: \"mdi:phone\",\n size: \"1.4em\",\n color: \"#10b981\",\n link: \"tel:+1234567890\",\n },\n },\n {\n description: \"Location marker icon - Address and directions\",\n type: \"icon\",\n props: {\n icon: \"mdi:map-marker\",\n size: \"1.6em\",\n color: \"#ef4444\",\n },\n },\n\n // STATUS & FEEDBACK ICONS\n {\n description: \"Success checkmark icon - Confirmation and completion\",\n type: \"icon\",\n props: {\n icon: \"mdi:check-circle\",\n size: \"1.5em\",\n color: \"#10b981\",\n },\n },\n {\n description: \"Warning icon - Alerts and cautions\",\n type: \"icon\",\n props: {\n icon: \"mdi:alert-triangle\",\n size: \"1.5em\",\n color: \"#f59e0b\",\n },\n },\n {\n description: \"Error icon - Problems and failures\",\n type: \"icon\",\n props: {\n icon: \"mdi:alert-circle\",\n size: \"1.5em\",\n color: \"#ef4444\",\n },\n },\n {\n description: \"Information icon - Help and guidance\",\n type: \"icon\",\n props: {\n icon: \"mdi:information\",\n size: \"1.4em\",\n color: \"#3b82f6\",\n },\n },\n\n // ACTION ICONS\n {\n description: \"Download icon with link - File downloads\",\n type: \"icon\",\n props: {\n icon: \"mdi:download\",\n size: \"1.4em\",\n color: \"#8b5cf6\",\n link: \"/files/brochure.pdf\",\n },\n },\n {\n description: \"Share icon - Content sharing functionality\",\n type: \"icon\",\n props: {\n icon: \"mdi:share-variant\",\n size: \"1.2em\",\n color: \"#6b7280\",\n },\n },\n {\n description: \"Print icon - Document printing\",\n type: \"icon\",\n props: {\n icon: \"mdi:printer\",\n size: \"1.3em\",\n color: \"#374151\",\n },\n },\n\n // LARGE DECORATIVE ICONS\n {\n description: \"Large security shield icon - Trust and safety messaging\",\n type: \"icon\",\n props: {\n icon: \"mdi:shield-check\",\n size: \"3em\",\n color: \"#10b981\",\n },\n },\n {\n description: \"Large rocket icon - Innovation and growth themes\",\n type: \"icon\",\n props: {\n icon: \"mdi:rocket\",\n size: \"2.5em\",\n color: \"#f59e0b\",\n },\n },\n\n // DYNAMIC CONTENT EXAMPLES\n {\n description: \"Dynamic service icon using template variables - Data-driven icons\",\n type: \"icon\",\n props: {\n icon: \"{{service.iconName}}\",\n size: \"2em\",\n color: \"{{service.brandColor}}\",\n link: \"/services/{{service.slug}}\",\n },\n },\n {\n description: \"Dynamic social media icon with loop - Multiple social platforms\",\n type: \"icon\",\n props: {\n icon: \"{{socialLinks.iconName}}\",\n size: \"1.6em\",\n color: \"{{socialLinks.brandColor}}\",\n link: \"{{socialLinks.url}}\",\n loop: { over: \"socialLinks\" },\n },\n },\n {\n description: \"Team member contact icon - Dynamic contact information\",\n type: \"icon\",\n props: {\n icon: \"mdi:email\",\n size: \"1.2em\",\n color: \"#4f46e5\",\n link: \"mailto:{{teamMember.email}}\",\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\";\nimport type { BrickExample } from \"./_types\";\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: `Use the carousel component for showcasing sequential visual content with smooth navigation between images.\n\nWHEN TO USE:\n- Product galleries with multiple angles or variations\n- Portfolio showcases with project images\n- Step-by-step tutorials or processes (recipes, instructions)\n- Before/after comparisons or transformations\n- Team member profiles with photos\n- Event photo galleries or highlights\n- Feature demonstrations or software screenshots\n- Travel destinations or location showcases\n\nCONTENT GUIDELINES:\n- Optimal range: 2-8 images for best user engagement (max 12 supported)\n- Single image allowed only as placeholder for future expansion\n- Each image needs: { src: { src, alt }, legend }\n- Alt text MUST be descriptive and never empty\n- Legend text should be concise (≤90 characters) and informative\n- Use empty string (\"\") for legend only when no caption is intentionally desired\n\nIMAGE CONSISTENCY:\n- Keep aspect ratios similar across slides to prevent layout jumps\n- Avoid mixing very tall portrait with very wide landscape images\n- Use consistent image quality and style throughout carousel\n- Consider loading performance with image optimization\n\nSTYLING OPTIONS:\n- padding: \"0\" for edge-to-edge, \"1rem\" for standard, \"2rem+\" for generous spacing\n- borderRadius: \"rounded-none\" for sharp/modern, \"rounded-md\" for standard, \"rounded-xl\" for friendly, \"rounded-full\" for circular (avatars)\n- colorPreset: Use sparingly - \"neutral-50\"/\"primary-50\" for subtle framing, gradients for premium feel\n\nDYNAMIC CONTENT:\n- Use loop property with single template object for data-driven carousels\n- Template variables in src and legend: \"{{product.image}}\", \"{{team.name}} - {{team.role}}\"\n- Perfect for: product catalogs, team directories, portfolio projects, event galleries\n\nAVOID:\n- Including unrelated properties (buttons, titles outside legend)\n- Heavy background colors that distract from images\n- Inconsistent aspect ratios that cause jarring transitions\n- More than 12 images (reduces focus and performance)\n- Empty or placeholder alt text (accessibility requirement)`,\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: BrickExample<Manifest>[] = [\n // BASIC CAROUSEL EXAMPLES\n {\n description: \"Basic image carousel with legends - Simple content showcase\",\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 // PRODUCT & COMMERCIAL\n {\n description: \"Product showcase carousel with rounded corners and padding - E-commerce gallery style\",\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: \"neutral-50\" },\n },\n },\n\n // PORTFOLIO & CREATIVE\n {\n description: \"Portfolio carousel with minimal styling - Clean professional presentation\",\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 // EVENTS & EXPERIENCES\n {\n description: \"Event photos carousel with primary color theme - Conference or gathering highlights\",\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 // TEAM & PEOPLE\n {\n description: \"Team members carousel with circular images - Professional team showcase\",\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: \"primary-50\" },\n borderRadius: \"rounded-full\",\n padding: \"2rem\",\n },\n },\n\n // TUTORIALS & PROCESSES\n {\n description: \"Recipe steps carousel with detailed descriptions - Step-by-step instructional content\",\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: \"accent-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: \"accent-100\" },\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: \"neutral-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: \"secondary-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: \"accent-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: \"primary-50\" },\n borderRadius: \"rounded-2xl\",\n padding: \"4rem\",\n },\n },\n {\n description: \"Dynamic product gallery using products query - Data-driven product showcase\",\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 // DYNAMIC CONTENT EXAMPLES\n {\n description: \"Loop template for portfolioProjects query (one object will repeat per row)\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: {\n src: \"{{portfolioProjects.featuredImage}}\",\n alt: \"{{portfolioProjects.projectName}} featured image\",\n },\n legend:\n \"{{portfolioProjects.projectName}} – {{portfolioProjects.clientName}} ({{portfolioProjects.year}})\",\n },\n ],\n colorPreset: { color: \"neutral-50\" },\n borderRadius: \"rounded-md\",\n padding: \"1rem\",\n loop: {\n over: \"portfolioProjects\",\n },\n },\n },\n\n // SPECIAL STYLING VARIATIONS\n {\n description: \"Showcase carousel with subtle gradient background frame\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: { src: \"https://via.placeholder.com/900x500.png?text=Showcase+1\", alt: \"Showcase slide 1\" },\n legend: \"Launch Dashboard\",\n },\n {\n src: { src: \"https://via.placeholder.com/900x500.png?text=Showcase+2\", alt: \"Showcase slide 2\" },\n legend: \"Collaboration Tools\",\n },\n {\n src: { src: \"https://via.placeholder.com/900x500.png?text=Showcase+3\", alt: \"Showcase slide 3\" },\n legend: \"Usage Analytics\",\n },\n ],\n colorPreset: { color: \"primary-gradient-300\", gradientDirection: \"bg-gradient-to-br\" },\n borderRadius: \"rounded-xl\",\n padding: \"2rem\",\n },\n },\n // MINIMAL EDGE (no padding, square corners)\n {\n description: \"Minimal edge-to-edge carousel (no padding, no rounding)\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: { src: \"https://via.placeholder.com/800x400.png?text=Edge+1\", alt: \"Edge slide 1\" },\n legend: \"\",\n },\n {\n src: { src: \"https://via.placeholder.com/800x400.png?text=Edge+2\", alt: \"Edge slide 2\" },\n legend: \"\",\n },\n ],\n borderRadius: \"rounded-none\",\n padding: \"0\",\n },\n },\n // SINGLE IMAGE (acts as prepared placeholder carousel)\n {\n description: \"Single-image carousel (placeholder for future expansion)\",\n type: \"carousel\",\n props: {\n images: [\n {\n src: { src: \"https://via.placeholder.com/1000x420.png?text=Banner\", alt: \"Promotional banner\" },\n legend: \"Early Access Program\",\n },\n ],\n colorPreset: { color: \"secondary-50\" },\n borderRadius: \"rounded-lg\",\n padding: \"1.25rem\",\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/images-gallery.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { IoGridOutline } from \"react-icons/io5\";\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 { colorPresetRef } from \"../props/color-preset\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { loopRef } from \"../props/dynamic\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"images-gallery\",\n name: \"Gallery\",\n category: \"media\",\n description: \"Displays an images collection.\",\n aiInstructions:\n \"This brick should mostly be used for image galleries. Prefer using card bricks for product showcases, articles lists with images, or other collections.\",\n consumesMultipleQueryRows: true,\n defaultInspectorTab: \"content\",\n isContainer: false,\n minHeight: {\n desktop: 200,\n },\n minWidth: {\n desktop: 300,\n },\n defaultWidth: {\n desktop: \"400px\",\n mobile: \"100%\",\n },\n icon: IoGridOutline,\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n loop: Type.Optional(loopRef()),\n images: Type.Array(\n Type.Object({\n image: imageRef({\n \"ui:responsive\": \"desktop\",\n \"ui:no-alt-text\": true,\n \"ui:no-object-options\": true,\n \"ui:placeholder\": \"https://example.com/image.jpg\",\n }),\n legend: Type.Optional(string(\"Legend\")),\n }),\n {\n title: \"Images\",\n default: [],\n maxItems: 12,\n metadata: {\n category: \"content\",\n consumeQuery: true,\n },\n examples: [\n {\n image: { src: \"https://via.placeholder.com/300x200.png?text=Image+1\" },\n legend: \"Image 1\",\n },\n {\n image: { src: \"https://via.placeholder.com/300x200.png?text=Image+2\" },\n legend: \"Image 2\",\n },\n {\n image: { src: \"https://via.placeholder.com/300x200.png?text=Image+3\" },\n legend: \"Image 3\",\n },\n ],\n },\n ),\n columns: Type.Optional(\n Type.Number({\n title: \"Columns\",\n description:\n \"Number of columns. Only applies to desktop screens. On mobile, it will always display 1 column.\",\n minimum: 1,\n maximum: 6,\n default: 3,\n \"ui:field\": \"slider\",\n \"ui:responsive\": \"desktop\",\n }),\n ),\n gap: Type.Optional(\n cssLengthRef({\n title: \"Gap\",\n description: \"The gap between the images.\",\n default: \"1rem\",\n \"ui:styleId\": \"styles:gap\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"3rem\",\n description: \"Padding inside the gallery.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(roundingRef()),\n border: Type.Optional(borderRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Product portfolio gallery (3-column grid)\",\n type: \"images-gallery\",\n props: {\n columns: 3,\n gap: \"2.5rem\",\n padding: \"p-4\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Product+1\",\n },\n legend: \"Premium wireless headphones\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Product+2\",\n },\n legend: \"Bluetooth speaker\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Product+3\",\n },\n legend: \"Smart fitness tracker\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Product+4\",\n },\n legend: \"Wireless charging pad\",\n },\n ],\n },\n },\n {\n description: \"Team photos gallery (4-column grid), light neutral background\",\n type: \"images-gallery\",\n props: {\n columns: 4,\n gap: \"1rem\",\n padding: \"p-6\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=CEO\",\n },\n legend: \"Sarah Johnson - Chief Executive Officer\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=CTO\",\n },\n legend: \"Mike Chen - Chief Technology Officer\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Design\",\n },\n legend: \"Emily Rodriguez - Head of Design\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Marketing\",\n },\n legend: \"David Park - Marketing Director\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Sales\",\n },\n legend: \"Lisa Wong - Sales Manager\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Support\",\n },\n legend: \"Alex Thompson - Customer Support Lead\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Dev\",\n },\n legend: \"Carlos Martinez - Senior Developer\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=HR\",\n },\n legend: \"Jennifer Adams - HR Specialist\",\n },\n ],\n colorPreset: {\n color: \"neutral-100\",\n },\n },\n },\n {\n description: \"Project showcase (2-column grid with larger spacing)\",\n type: \"images-gallery\",\n props: {\n columns: 2,\n gap: \"1rem\",\n padding: \"p-6\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/600x400.png?text=Website+Redesign\",\n },\n legend: \"Modern e-commerce website redesign project\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/600x400.png?text=Mobile+App\",\n },\n legend: \"iOS and Android mobile application\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/600x400.png?text=Brand+Identity\",\n },\n legend: \"Complete brand identity design package\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/600x400.png?text=Dashboard+UI\",\n },\n legend: \"Analytics dashboard user interface\",\n },\n ],\n },\n },\n {\n description: \"Event photos gallery with tight spacing and minimal padding\",\n type: \"images-gallery\",\n props: {\n columns: 4,\n gap: \"1rem\",\n padding: \"p-6\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/250x180.png?text=Opening\",\n },\n legend: \"Conference opening ceremony\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/250x180.png?text=Keynote\",\n },\n legend: \"Keynote presentation\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/250x180.png?text=Workshop\",\n },\n legend: \"Technical workshop session\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/250x180.png?text=Networking\",\n },\n legend: \"Networking lunch break\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/250x180.png?text=Panel\",\n },\n legend: \"Expert panel discussion\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/250x180.png?text=Awards\",\n },\n legend: \"Awards ceremony\",\n },\n ],\n },\n },\n {\n description: \"Photography portfolio with single column layout and primary background\",\n type: \"images-gallery\",\n props: {\n columns: 1,\n gap: \"3rem\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-50\",\n },\n rounding: \"rounded-lg\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/800x600.png?text=Landscape+1\",\n },\n legend: \"Mountain sunrise landscape photography\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/800x600.png?text=Portrait+1\",\n },\n legend: \"Professional business portrait session\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/800x600.png?text=Architecture+1\",\n },\n legend: \"Modern architectural photography\",\n },\n ],\n },\n },\n {\n description: \"Real estate property gallery with secondary colors and borders\",\n type: \"images-gallery\",\n props: {\n columns: 3,\n gap: \"1.5rem\",\n padding: \"2rem\",\n colorPreset: {\n color: \"secondary-100\",\n },\n border: {\n width: \"border\",\n color: \"border-secondary-300\",\n },\n rounding: \"rounded-xl\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/400x300.png?text=Living+Room\",\n },\n legend: \"Spacious living room with natural light\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x300.png?text=Kitchen\",\n },\n legend: \"Modern kitchen with granite countertops\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x300.png?text=Master+Bedroom\",\n },\n legend: \"Master bedroom with walk-in closet\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x300.png?text=Bathroom\",\n },\n legend: \"Luxury bathroom with marble finishes\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x300.png?text=Backyard\",\n },\n legend: \"Private backyard with pool\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x300.png?text=Garage\",\n },\n legend: \"Two-car garage with storage\",\n },\n ],\n },\n },\n {\n description: \"Restaurant food gallery with 5-column grid and accent colors\",\n type: \"images-gallery\",\n props: {\n columns: 5,\n gap: \"0.75rem\",\n padding: \"1.5rem\",\n colorPreset: {\n color: \"accent-200\",\n },\n rounding: \"rounded-md\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Appetizer\",\n },\n legend: \"Bruschetta with fresh tomatoes\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Soup\",\n },\n legend: \"Creamy mushroom bisque\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Salad\",\n },\n legend: \"Mediterranean quinoa salad\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Main+Course\",\n },\n legend: \"Grilled salmon with herbs\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Dessert\",\n },\n legend: \"Chocolate lava cake\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Beverage\",\n },\n legend: \"Artisan coffee selection\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Pasta\",\n },\n legend: \"Homemade fettuccine alfredo\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Pizza\",\n },\n legend: \"Wood-fired margherita pizza\",\n },\n ],\n },\n },\n {\n description: \"Art gallery exhibition with 6-column grid and minimal styling\",\n type: \"images-gallery\",\n props: {\n columns: 6,\n gap: \"0.5rem\",\n padding: \"1rem\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Abstract+1\",\n },\n legend: \"Abstract composition #1\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Portrait+Art\",\n },\n legend: \"Contemporary portrait\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Landscape+Art\",\n },\n legend: \"Impressionist landscape\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Still+Life\",\n },\n legend: \"Modern still life\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Sculpture\",\n },\n legend: \"Bronze sculpture piece\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Digital+Art\",\n },\n legend: \"Digital artwork collection\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Mixed+Media\",\n },\n legend: \"Mixed media installation\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Photography\",\n },\n legend: \"Fine art photography\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/200x250.png?text=Watercolor\",\n },\n legend: \"Watercolor painting\",\n },\n ],\n },\n },\n {\n description: \"Fashion lookbook with 2-column layout and neutral dark theme\",\n type: \"images-gallery\",\n props: {\n columns: 2,\n gap: \"2rem\",\n padding: \"3rem\",\n colorPreset: {\n color: \"neutral-800\",\n },\n border: {\n width: \"border-2\",\n color: \"border-neutral-600\",\n },\n rounding: \"rounded-2xl\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/400x600.png?text=Spring+Look\",\n },\n legend: \"Spring casual collection 2024\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x600.png?text=Summer+Look\",\n },\n legend: \"Summer evening wear\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x600.png?text=Business+Look\",\n },\n legend: \"Professional business attire\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x600.png?text=Weekend+Look\",\n },\n legend: \"Weekend comfort style\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x600.png?text=Formal+Look\",\n },\n legend: \"Formal evening collection\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x600.png?text=Street+Style\",\n },\n legend: \"Urban street fashion\",\n },\n ],\n },\n },\n {\n description: \"Travel destinations gallery with 3-column grid and no legends\",\n type: \"images-gallery\",\n props: {\n columns: 3,\n gap: \"1.25rem\",\n padding: \"2.5rem\",\n colorPreset: {\n color: \"primary-100\",\n },\n rounding: \"rounded-lg\",\n border: {\n width: \"border\",\n color: \"border-primary-200\",\n },\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/350x250.png?text=Paris\",\n },\n },\n {\n image: {\n src: \"https://via.placeholder.com/350x250.png?text=Tokyo\",\n },\n },\n {\n image: {\n src: \"https://via.placeholder.com/350x250.png?text=New+York\",\n },\n },\n {\n image: {\n src: \"https://via.placeholder.com/350x250.png?text=London\",\n },\n },\n {\n image: {\n src: \"https://via.placeholder.com/350x250.png?text=Rome\",\n },\n },\n {\n image: {\n src: \"https://via.placeholder.com/350x250.png?text=Barcelona\",\n },\n },\n ],\n },\n },\n {\n description: \"Technical equipment gallery with 4-column grid and accent styling\",\n type: \"images-gallery\",\n props: {\n columns: 4,\n gap: \"1rem\",\n padding: \"2rem\",\n colorPreset: {\n color: \"accent-100\",\n },\n border: {\n width: \"border-4\",\n color: \"border-accent-400\",\n },\n rounding: \"rounded-xl\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Camera\",\n },\n legend: \"Professional DSLR camera\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Laptop\",\n },\n legend: \"High-performance laptop\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Microphone\",\n },\n legend: \"Studio recording microphone\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Monitor\",\n },\n legend: \"4K professional monitor\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Tablet\",\n },\n legend: \"Digital drawing tablet\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Speakers\",\n },\n legend: \"Studio monitor speakers\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Keyboard\",\n },\n legend: \"Mechanical keyboard\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/300x300.png?text=Mouse\",\n },\n legend: \"Precision gaming mouse\",\n },\n ],\n },\n },\n {\n description: \"Minimal product showcase with large gaps and no padding\",\n type: \"images-gallery\",\n props: {\n columns: 3,\n gap: \"4rem\",\n padding: \"0rem\",\n images: [\n {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Watch\",\n },\n legend: \"Luxury Swiss timepiece\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Jewelry\",\n },\n legend: \"Handcrafted gold necklace\",\n },\n {\n image: {\n src: \"https://via.placeholder.com/400x400.png?text=Sunglasses\",\n },\n legend: \"Designer sunglasses collection\",\n },\n ],\n },\n },\n {\n description: \"Dynamic product gallery using products query with loop\",\n type: \"images-gallery\",\n props: {\n columns: 4,\n gap: \"1.5rem\",\n padding: \"2rem\",\n colorPreset: {\n color: \"primary-50\",\n },\n rounding: \"rounded-lg\",\n border: {\n width: \"border\",\n color: \"border-primary-200\",\n },\n images: [\n {\n image: {\n src: \"{{products.image}}\",\n },\n legend: \"{{products.name}} - ${{products.price}}\",\n },\n ],\n loop: {\n over: \"products\",\n },\n },\n },\n {\n description: \"Portfolio showcase using portfolioProjects query with loop\",\n type: \"images-gallery\",\n props: {\n columns: 3,\n gap: \"2rem\",\n padding: \"3rem\",\n colorPreset: {\n color: \"secondary-100\",\n },\n rounding: \"rounded-xl\",\n images: [\n {\n image: {\n src: \"{{portfolioProjects.thumbnail}}\",\n },\n legend:\n \"{{portfolioProjects.projectName}} - {{portfolioProjects.clientName}} ({{portfolioProjects.year}})\",\n },\n ],\n loop: {\n over: \"portfolioProjects\",\n },\n },\n },\n {\n description: \"Event photo gallery using eventPhotos query with loop\",\n type: \"images-gallery\",\n props: {\n columns: 5,\n gap: \"1rem\",\n padding: \"1.5rem\",\n colorPreset: {\n color: \"accent-50\",\n },\n border: {\n width: \"border-2\",\n color: \"border-accent-300\",\n },\n rounding: \"rounded-md\",\n images: [\n {\n image: {\n src: \"{{eventPhotos.imageUrl}}\",\n },\n legend: \"{{eventPhotos.caption}} - {{eventPhotos.eventDate}}\",\n },\n ],\n loop: {\n over: \"eventPhotos\",\n },\n },\n },\n {\n description: \"Team member gallery using teamMembers query with loop\",\n type: \"images-gallery\",\n props: {\n columns: 6,\n gap: \"0.75rem\",\n padding: \"2.5rem\",\n colorPreset: {\n color: \"neutral-100\",\n },\n rounding: \"rounded-lg\",\n border: {\n width: \"border\",\n color: \"border-neutral-300\",\n },\n images: [\n {\n image: {\n src: \"{{teamMembers.profilePhoto}}\",\n },\n legend: \"{{teamMembers.fullName}} - {{teamMembers.position}}\",\n },\n ],\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/datarecords/types.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { airtableOptions } from \"./external/airtable/types\";\nimport { googleSheetsOptions } from \"./external/google/sheets/types\";\nimport { notionOptions } from \"./external/notion/types\";\n\nexport const connectorSchema = Type.Union([\n Type.Literal(\"airtable\"),\n Type.Literal(\"google-sheets\"),\n Type.Literal(\"notion\"),\n Type.Literal(\"internal\"),\n]);\n\nexport type DatarecordConnector = Static<typeof connectorSchema>;\n\nconst internalDatarecord = Type.Object(\n {\n provider: Type.Literal(\"internal\"),\n // options: Type.Optional(Type.Any()),\n schema: Type.Any({\n title: \"Schema\",\n description:\n \"JSON Schema of the datarecord. Always of type 'object' and representing a row that will be saved in the database.\",\n examples: [\n {\n type: \"object\",\n properties: {\n firstname: { type: \"string\", title: \"Firstname\" },\n lastname: { type: \"string\", title: \"Lastname\" },\n email: { type: \"string\", format: \"email\", title: \"Email\" },\n },\n required: [\"email\"],\n title: \"Newsletter Subscription\",\n },\n ],\n }),\n indexes: Type.Array(\n Type.Object(\n {\n name: Type.String({ title: \"Index name\" }),\n fields: Type.Array(Type.String(), { title: \"Fields to index\" }),\n unique: Type.Optional(Type.Boolean({ title: \"Unique index\", default: false })),\n },\n {\n examples: [\n {\n name: \"unique_email_index\",\n fields: [\"email\"],\n unique: true,\n },\n {\n name: \"lastname_index\",\n fields: [\"lastname\"],\n },\n ],\n },\n ),\n {\n title: \"Indexes\",\n description:\n \"IMPORTANT: Indexes to create on the datarecord. use it to enforce uniqueness or improve query performance.\",\n },\n ),\n },\n {\n examples: [\n {\n provider: \"internal\",\n schema: {\n type: \"object\",\n properties: {\n firstname: { type: \"string\", title: \"Firstname\" },\n lastname: { type: \"string\", title: \"Lastname\" },\n email: { type: \"string\", format: \"email\", title: \"Email\" },\n },\n required: [\"email\"],\n title: \"Newsletter Subscription\",\n },\n indexes: [\n {\n name: \"email_index\",\n fields: [\"email\"],\n unique: true,\n },\n ],\n },\n ],\n },\n);\n\n// Schema commun à tous les datarecords\nconst commonDatarecordSchema = Type.Object({\n schema: Type.Any({\n title: \"Schema\",\n description:\n \"JSON Schema of the datarecord. Always of type 'object' and representing a row that will be saved.\",\n examples: [\n {\n type: \"object\",\n properties: {\n firstname: { type: \"string\", title: \"Firstname\" },\n lastname: { type: \"string\", title: \"Lastname\" },\n email: { type: \"string\", format: \"email\", title: \"Email\" },\n },\n required: [\"email\"],\n title: \"Newsletter Subscription\",\n },\n ],\n }),\n});\n\nconst commonDatarecordMetadata = Type.Object({\n id: Type.String({\n title: \"Datarecord ID\",\n comment: \"A unique identifier for the datarecord, e.g., 'newsletter_subscriptions'\",\n }),\n label: Type.String({\n title: \"Name of the datarecord\",\n comment: \"For example, 'Newsletter Subscriptions'\",\n }),\n description: Type.Optional(Type.String({ title: \"Description of the datarecord\" })),\n});\n\nexport const genericDatarecord = Type.Composite([\n Type.Union([\n Type.Object({\n provider: Type.Literal(\"airtable\"),\n options: airtableOptions,\n }),\n Type.Object({\n provider: Type.Literal(\"google-sheets\"),\n options: googleSheetsOptions,\n }),\n Type.Object({\n provider: Type.Literal(\"notion\"),\n options: notionOptions,\n }),\n internalDatarecord,\n ]),\n commonDatarecordMetadata,\n commonDatarecordSchema,\n]);\n\n// export const genericDatarecord = Type.Union([\n// Type.Composite([\n// Type.Object({\n// provider: Type.Literal(\"airtable\"),\n// options: airtableOptions,\n// }),\n// commonDatarecordMetadata,\n// commonDatarecordSchema,\n// ]),\n// Type.Composite([\n// Type.Object({\n// provider: Type.Literal(\"google-sheets\"),\n// options: googleSheetsOptions,\n// }),\n// commonDatarecordMetadata,\n// commonDatarecordSchema,\n// ]),\n// Type.Composite([\n// Type.Object({\n// provider: Type.Literal(\"notion\"),\n// options: notionOptions,\n// }),\n// commonDatarecordMetadata,\n// commonDatarecordSchema,\n// ]),\n// Type.Composite([internalDatarecord, commonDatarecordMetadata, commonDatarecordSchema]),\n// ]);\n\nexport type Datarecord = Static<typeof genericDatarecord>;\nexport type InternalDatarecord = Extract<Datarecord, { provider: \"internal\" }>;\n\nexport const datarecordsList = Type.Array(genericDatarecord);\nexport type DatarecordsList = Static<typeof datarecordsList>;\n"],"mappings":"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","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\";\nimport type { BrickExample } from \"./_types\";\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: BrickExample<Manifest>[] = [\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,103 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
pageSchema
|
|
5
|
-
} from "./chunk-FQDR2BBZ.js";
|
|
6
|
-
import {
|
|
7
|
-
toLLMSchema
|
|
8
|
-
} from "./chunk-IQIISR22.js";
|
|
9
|
-
import {
|
|
10
|
-
StringEnum
|
|
11
|
-
} from "./chunk-JK2FWFJU.js";
|
|
12
|
-
|
|
13
|
-
// src/shared/sitemap.ts
|
|
14
|
-
import { Type } from "@sinclair/typebox";
|
|
15
|
-
var sitemapPageEntry = Type.Pick(pageSchema, ["id", "label", "path", "attributes"]);
|
|
16
|
-
var sectionsPlanSchema = Type.Array(
|
|
17
|
-
Type.Object(
|
|
18
|
-
{
|
|
19
|
-
id: Type.String({
|
|
20
|
-
title: "Section ID",
|
|
21
|
-
examples: ["header-section", "hero-section", "features-section"],
|
|
22
|
-
format: "slug"
|
|
23
|
-
}),
|
|
24
|
-
name: Type.String({ title: "Section name", examples: ["Header", "Hero", "Features"] }),
|
|
25
|
-
description: Type.String({
|
|
26
|
-
title: "A long description of the section",
|
|
27
|
-
description: `You must elaborate a clear and detailled plan that describes:
|
|
28
|
-
- The section purpose in the page, in detail.
|
|
29
|
-
- The section structure, look & feel, and structural/design organization, in detail
|
|
30
|
-
- the types of bricks (e.g. "container", "text", "video", "carousel", etc) that will be used and their purpose, in detail
|
|
31
|
-
|
|
32
|
-
IMPORTANT: be very descriptive and precise in your plan. The more details you provide, the better the generated page will be.`,
|
|
33
|
-
examples: [
|
|
34
|
-
"This section contains a `hero` and a call-to-action `button`. All of theme aligned horizontally. The section should market a coffee shop.",
|
|
35
|
-
"This section should contain a `hero` text and an `image`."
|
|
36
|
-
]
|
|
37
|
-
})
|
|
38
|
-
},
|
|
39
|
-
{ additionalProperties: false }
|
|
40
|
-
),
|
|
41
|
-
{
|
|
42
|
-
title: "Sections plan",
|
|
43
|
-
description: "A plan for the sections of the page. Used to generate the page content.",
|
|
44
|
-
examples: [
|
|
45
|
-
[
|
|
46
|
-
{
|
|
47
|
-
id: "header-section",
|
|
48
|
-
name: "Header",
|
|
49
|
-
description: "This section only contains a header brick"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
id: "hero-section",
|
|
53
|
-
name: "Hero",
|
|
54
|
-
description: "This is the hero section of the page. It should display a marketing message using a hero brick, as well as a button (CTA). The section should center bricks horizontally."
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
]
|
|
58
|
-
}
|
|
59
|
-
);
|
|
60
|
-
var sitemapEntry = Type.Composite(
|
|
61
|
-
[
|
|
62
|
-
sitemapPageEntry,
|
|
63
|
-
Type.Object({
|
|
64
|
-
status: Type.Optional(
|
|
65
|
-
StringEnum(["draft", "published"], {
|
|
66
|
-
title: "Page status",
|
|
67
|
-
enumNames: ["Draft", "Published"],
|
|
68
|
-
default: "draft",
|
|
69
|
-
"ai:hidden": true,
|
|
70
|
-
description: "The status of the page. Can be draft or published. [AI instructions: Dont generate this.]",
|
|
71
|
-
"ai:instructions": "Upsie: Never generate this optional field."
|
|
72
|
-
})
|
|
73
|
-
)
|
|
74
|
-
})
|
|
75
|
-
],
|
|
76
|
-
{
|
|
77
|
-
description: "Pages map. The complete list of site pages & their metadata",
|
|
78
|
-
additionalProperties: false
|
|
79
|
-
}
|
|
80
|
-
);
|
|
81
|
-
var sitemapSchema = Type.Array(sitemapEntry);
|
|
82
|
-
var sitemapSchemaLLM = toLLMSchema(
|
|
83
|
-
Type.Array(
|
|
84
|
-
Type.Composite([
|
|
85
|
-
sitemapEntry,
|
|
86
|
-
Type.Object({
|
|
87
|
-
// Sections plan helps agents to the structure and content of the page
|
|
88
|
-
sectionsPlan: sectionsPlanSchema
|
|
89
|
-
})
|
|
90
|
-
])
|
|
91
|
-
)
|
|
92
|
-
);
|
|
93
|
-
var sitemapSchemaNoPlansLLM = toLLMSchema(sitemapSchema);
|
|
94
|
-
|
|
95
|
-
export {
|
|
96
|
-
sitemapPageEntry,
|
|
97
|
-
sectionsPlanSchema,
|
|
98
|
-
sitemapEntry,
|
|
99
|
-
sitemapSchema,
|
|
100
|
-
sitemapSchemaLLM,
|
|
101
|
-
sitemapSchemaNoPlansLLM
|
|
102
|
-
};
|
|
103
|
-
//# sourceMappingURL=chunk-MFNHFN2B.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/sitemap.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { StringEnum } from \"./utils/string-enum\";\nimport { pageSchema } from \"./page\";\nimport { toLLMSchema } from \"./utils/llm\";\n\nexport const sitemapPageEntry = Type.Pick(pageSchema, [\"id\", \"label\", \"path\", \"attributes\"]);\nexport type SitemapPageEntry = Static<typeof sitemapPageEntry>;\n\nexport const sectionsPlanSchema = Type.Array(\n Type.Object(\n {\n id: Type.String({\n title: \"Section ID\",\n examples: [\"header-section\", \"hero-section\", \"features-section\"],\n format: \"slug\",\n }),\n name: Type.String({ title: \"Section name\", examples: [\"Header\", \"Hero\", \"Features\"] }),\n description: Type.String({\n title: \"A long description of the section\",\n description: `You must elaborate a clear and detailled plan that describes:\n- The section purpose in the page, in detail.\n- The section structure, look & feel, and structural/design organization, in detail\n- the types of bricks (e.g. \"container\", \"text\", \"video\", \"carousel\", etc) that will be used and their purpose, in detail\n\nIMPORTANT: be very descriptive and precise in your plan. The more details you provide, the better the generated page will be.`,\n\n examples: [\n \"This section contains a `hero` and a call-to-action `button`. All of theme aligned horizontally. The section should market a coffee shop.\",\n \"This section should contain a `hero` text and an `image`.\",\n ],\n }),\n },\n { additionalProperties: false },\n ),\n {\n title: \"Sections plan\",\n description: \"A plan for the sections of the page. Used to generate the page content.\",\n examples: [\n [\n {\n id: \"header-section\",\n name: \"Header\",\n description: \"This section only contains a header brick\",\n },\n {\n id: \"hero-section\",\n name: \"Hero\",\n description:\n \"This is the hero section of the page. It should display a marketing message using a hero brick, as well as a button (CTA). The section should center bricks horizontally.\",\n },\n ],\n ],\n },\n);\n\nexport const sitemapEntry = Type.Composite(\n [\n sitemapPageEntry,\n Type.Object({\n status: Type.Optional(\n StringEnum([\"draft\", \"published\"], {\n title: \"Page status\",\n enumNames: [\"Draft\", \"Published\"],\n default: \"draft\",\n \"ai:hidden\": true,\n description:\n \"The status of the page. Can be draft or published. [AI instructions: Dont generate this.]\",\n \"ai:instructions\": \"Upsie: Never generate this optional field.\",\n }),\n ),\n }),\n ],\n {\n description: \"Pages map. The complete list of site pages & their metadata\",\n additionalProperties: false,\n },\n);\n\nexport const sitemapSchema = Type.Array(sitemapEntry);\nexport type Sitemap = Static<typeof sitemapSchema>;\n\nexport const sitemapSchemaLLM = toLLMSchema(\n Type.Array(\n Type.Composite([\n sitemapEntry,\n Type.Object({\n // Sections plan helps agents to the structure and content of the page\n sectionsPlan: sectionsPlanSchema,\n }),\n ]),\n ),\n);\n\nexport type SitemapWithPlans = Static<typeof sitemapSchemaLLM>;\n\nexport const sitemapSchemaNoPlansLLM = toLLMSchema(sitemapSchema);\n"],"mappings":";;;;;;;;;;;;;AAAA,SAAS,YAAyB;AAK3B,IAAM,mBAAmB,KAAK,KAAK,YAAY,CAAC,MAAM,SAAS,QAAQ,YAAY,CAAC;AAGpF,IAAM,qBAAqB,KAAK;AAAA,EACrC,KAAK;AAAA,IACH;AAAA,MACE,IAAI,KAAK,OAAO;AAAA,QACd,OAAO;AAAA,QACP,UAAU,CAAC,kBAAkB,gBAAgB,kBAAkB;AAAA,QAC/D,QAAQ;AAAA,MACV,CAAC;AAAA,MACD,MAAM,KAAK,OAAO,EAAE,OAAO,gBAAgB,UAAU,CAAC,UAAU,QAAQ,UAAU,EAAE,CAAC;AAAA,MACrF,aAAa,KAAK,OAAO;AAAA,QACvB,OAAO;AAAA,QACP,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,EAAE,sBAAsB,MAAM;AAAA,EAChC;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,UAAU;AAAA,MACR;AAAA,QACE;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aACE;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,eAAe,KAAK;AAAA,EAC/B;AAAA,IACE;AAAA,IACA,KAAK,OAAO;AAAA,MACV,QAAQ,KAAK;AAAA,QACX,WAAW,CAAC,SAAS,WAAW,GAAG;AAAA,UACjC,OAAO;AAAA,UACP,WAAW,CAAC,SAAS,WAAW;AAAA,UAChC,SAAS;AAAA,UACT,aAAa;AAAA,UACb,aACE;AAAA,UACF,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,sBAAsB;AAAA,EACxB;AACF;AAEO,IAAM,gBAAgB,KAAK,MAAM,YAAY;AAG7C,IAAM,mBAAmB;AAAA,EAC9B,KAAK;AAAA,IACH,KAAK,UAAU;AAAA,MACb;AAAA,MACA,KAAK,OAAO;AAAA;AAAA,QAEV,cAAc;AAAA,MAChB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAIO,IAAM,0BAA0B,YAAY,aAAa;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/string.ts"],"sourcesContent":["import { type Static, Type, type StringOptions } from \"@sinclair/typebox\";\nimport type { FieldMetadata } from \"./types\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\ntype StrFieldOptions = StringOptions &\n FieldMetadata & {\n \"ui:multiline\"?: boolean;\n };\n\nexport function string(title: string, options: StrFieldOptions = {}) {\n return Type.String({ title, ...options });\n}\n\nexport function url(title = \"URL\", defaultValue?: string) {\n return Type.String({\n title,\n format: \"url\",\n \"ui:field\": \"url\",\n default: defaultValue,\n });\n}\n\nconst pageIdSchema = Type.String({\n \"ui:field\": \"page-id\",\n});\n\nexport function urlOrPageId(title = \"URL\", defaultValue?: string) {\n return Type.Union(\n [\n Type.String({\n format: \"url\",\n }),\n pageIdSchema,\n ],\n {\n // $id: \"content:urlOrPageId\",\n default: defaultValue,\n title,\n metadata: {\n category: \"content\",\n },\n \"ui:field\": \"url-page-id\",\n \"ai:instructions\":\n \"This field can be a URL or a page ID. Use the page ID when linking to a internal page, and a URL for external links. It can also contain page queries refrences like '/products/{{ categories.$slug }}' or '/blog/{{ blogPosts.$slug }}'.\",\n },\n );\n}\n\nexport type UrlOrPageIdSettings = Static<ReturnType<typeof urlOrPageId>>;\n\nexport function urlOrPageIdRef(options: StrFieldOptions = {}) {\n return typedRef(\"content:urlOrPageId\", { ...options });\n}\n\ntype IconOptions = StrFieldOptions & { \"ui:default-icon-collection\"?: string };\n\nexport function icon(title?: string, options: IconOptions = {}) {\n return Type.String({\n title: title ?? \"Icon\",\n \"ai:instructions\": \"Use a iconify reference like 'mdi:heart' or 'fa-solid:coffee'.\",\n \"ui:field\": \"iconify\",\n // $id: \"assets:icon\",\n metadata: {\n category: \"content\",\n },\n ...options,\n });\n}\n\nexport function iconRef(options: IconOptions = {}) {\n return typedRef(\"assets:icon\", options);\n}\n"],"mappings":";;;;;;;AAAA,SAAsB,YAAgC;AAS/C,SAAS,OAAO,OAAe,UAA2B,CAAC,GAAG;AACnE,SAAO,KAAK,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;AAC1C;AAEO,SAAS,IAAI,QAAQ,OAAO,cAAuB;AACxD,SAAO,KAAK,OAAO;AAAA,IACjB;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,EACX,CAAC;AACH;AAEA,IAAM,eAAe,KAAK,OAAO;AAAA,EAC/B,YAAY;AACd,CAAC;AAEM,SAAS,YAAY,QAAQ,OAAO,cAAuB;AAChE,SAAO,KAAK;AAAA,IACV;AAAA,MACE,KAAK,OAAO;AAAA,QACV,QAAQ;AAAA,MACV,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA;AAAA;AAAA,MAEE,SAAS;AAAA,MACT;AAAA,MACA,UAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,MACZ,mBACE;AAAA,IACJ;AAAA,EACF;AACF;AAIO,SAAS,eAAe,UAA2B,CAAC,GAAG;AAC5D,SAAO,SAAS,uBAAuB,EAAE,GAAG,QAAQ,CAAC;AACvD;AAIO,SAAS,KAAK,OAAgB,UAAuB,CAAC,GAAG;AAC9D,SAAO,KAAK,OAAO;AAAA,IACjB,OAAO,SAAS;AAAA,IAChB,mBAAmB;AAAA,IACnB,YAAY;AAAA;AAAA,IAEZ,UAAU;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,QAAQ,UAAuB,CAAC,GAAG;AACjD,SAAO,SAAS,eAAe,OAAO;AACxC;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/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":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/tags.ts"],"sourcesContent":["import { type Static, Type, type StringOptions } from \"@sinclair/typebox\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\nexport function tags(options?: StringOptions) {\n return Type.Array(\n Type.String({\n title: options?.title ?? \"Tags\",\n ...options,\n }),\n {\n // $id: \"content:tags\",\n \"ui:field\": \"tags\",\n title: options?.title ?? \"Tags\",\n metadata: {\n category: \"content\",\n },\n ...options,\n },\n );\n}\n\nexport type TagsSettings = Static<ReturnType<typeof tags>>;\n\nexport function tagsRef(options: StringOptions = {}) {\n return typedRef(\"content:tags\", { ...options });\n}\n"],"mappings":";;;;;;;AAAA,SAAsB,YAAgC;AAG/C,SAAS,KAAK,SAAyB;AAC5C,SAAO,KAAK;AAAA,IACV,KAAK,OAAO;AAAA,MACV,OAAO,SAAS,SAAS;AAAA,MACzB,GAAG;AAAA,IACL,CAAC;AAAA,IACD;AAAA;AAAA,MAEE,YAAY;AAAA,MACZ,OAAO,SAAS,SAAS;AAAA,MACzB,UAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,QAAQ,UAAyB,CAAC,GAAG;AACnD,SAAO,SAAS,gBAAgB,EAAE,GAAG,QAAQ,CAAC;AAChD;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/background.ts"],"sourcesContent":["import { type SchemaOptions, Type, type Static } from \"@sinclair/typebox\";\nimport type { ElementColorType } from \"~/shared/themes/color-system\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\ntype BackgroundOptions = {\n title?: string;\n default?: {\n image?: string;\n size?: string;\n repeat?: string;\n };\n colorType?: ElementColorType;\n};\n\nexport function background(opts: BackgroundOptions = {}) {\n const { default: defValue, ...restOpts } = opts;\n return Type.Object(\n {\n image: Type.String({\n title: \"Image\",\n description: \"The background image. Can be a URL or a data URI\",\n format: \"image\",\n examples: [\"https://example.com/image.png\"],\n }),\n size: Type.Optional(\n StringEnum([\"auto\", \"cover\", \"contain\"], {\n enumNames: [\"Auto\", \"Cover\", \"Contain\"],\n default: defValue?.size ?? \"auto\",\n \"ai:instructions\": \"Only use this when the image is set.\",\n }),\n ),\n repeat: Type.Optional(\n StringEnum([\"no-repeat\", \"repeat\", \"repeat-x\", \"repeat-y\", \"space\", \"round\"], {\n enumNames: [\"No repeat\", \"Repeat\", \"Repeat horizontally\", \"Repeat vertically\", \"Space\", \"Round\"],\n default: defValue?.repeat ?? \"no-repeat\",\n \"ai:instructions\": \"Only use this when the image is set.\",\n }),\n ),\n },\n {\n // $id: \"styles:background\",\n \"ui:styleId\": \"styles:background\",\n \"ui:field\": \"background\",\n title: \"Background image\",\n // disable for now\n // \"ui:show-img-search\": true,\n default: defValue,\n ...restOpts,\n },\n );\n}\n\nexport type BackgroundSettings = Static<ReturnType<typeof background>>;\n\nexport function backgroundRef(options: SchemaOptions = {}) {\n return typedRef(\"styles:background\", options);\n}\n\nexport function backgroundColor(options: SchemaOptions = {}) {\n return Type.String({\n title: \"Background color\",\n // $id: \"styles:backgroundColor\",\n \"ai:instructions\":\n \"Can be set to transparent, hex/rgb/rgba color, or classes like `bg-<variant>-<shade>`, variants being primary, secondary, accent and neutral, and shades between 100 and 900. Use bg-<variant>-<shade> classes as much as possible.\",\n \"ui:field\": \"color\",\n \"ui:color-type\": \"background\",\n // \"ui:advanced\": true,\n \"ui:styleId\": \"styles:backgroundColor\",\n \"ui:responsive\": \"desktop\",\n ...options,\n });\n}\n\nexport type BackgroundColorSettings = Static<ReturnType<typeof backgroundColor>>;\n\nexport function backgroundColorRef(options: SchemaOptions = {}) {\n return typedRef(\"styles:backgroundColor\", options);\n}\n"],"mappings":";;;;;;;;;;AAAA,SAA6B,YAAyB;AAe/C,SAAS,WAAW,OAA0B,CAAC,GAAG;AACvD,QAAM,EAAE,SAAS,UAAU,GAAG,SAAS,IAAI;AAC3C,SAAO,KAAK;AAAA,IACV;AAAA,MACE,OAAO,KAAK,OAAO;AAAA,QACjB,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,UAAU,CAAC,+BAA+B;AAAA,MAC5C,CAAC;AAAA,MACD,MAAM,KAAK;AAAA,QACT,WAAW,CAAC,QAAQ,SAAS,SAAS,GAAG;AAAA,UACvC,WAAW,CAAC,QAAQ,SAAS,SAAS;AAAA,UACtC,SAAS,UAAU,QAAQ;AAAA,UAC3B,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,MACA,QAAQ,KAAK;AAAA,QACX,WAAW,CAAC,aAAa,UAAU,YAAY,YAAY,SAAS,OAAO,GAAG;AAAA,UAC5E,WAAW,CAAC,aAAa,UAAU,uBAAuB,qBAAqB,SAAS,OAAO;AAAA,UAC/F,SAAS,UAAU,UAAU;AAAA,UAC7B,mBAAmB;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA;AAAA,MAEE,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,OAAO;AAAA;AAAA;AAAA,MAGP,SAAS;AAAA,MACT,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,cAAc,UAAyB,CAAC,GAAG;AACzD,SAAO,SAAS,qBAAqB,OAAO;AAC9C;AAEO,SAAS,gBAAgB,UAAyB,CAAC,GAAG;AAC3D,SAAO,KAAK,OAAO;AAAA,IACjB,OAAO;AAAA;AAAA,IAEP,mBACE;AAAA,IACF,YAAY;AAAA,IACZ,iBAAiB;AAAA;AAAA,IAEjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,GAAG;AAAA,EACL,CAAC;AACH;AAIO,SAAS,mBAAmB,UAAyB,CAAC,GAAG;AAC9D,SAAO,SAAS,0BAA0B,OAAO;AACnD;","names":[]}
|