@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,14 +1,14 @@
|
|
|
1
1
|
import { defineBrickManifest } from "~/shared/brick-manifest";
|
|
2
2
|
import { defineProps } from "../props/helpers";
|
|
3
3
|
import { Type } from "@sinclair/typebox";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { border, rounding } from "../props/border";
|
|
5
|
+
import { shadow } from "../props/effects";
|
|
6
|
+
import { cssLength } from "../props/css-length";
|
|
7
|
+
import { direction } from "../props/direction";
|
|
8
8
|
import { RxBox } from "react-icons/rx";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
9
|
+
import { alignItems, justifyContent } from "../props/align";
|
|
10
|
+
import { colorPreset } from "../props/color-preset";
|
|
11
|
+
import { loop } from "../props/dynamic";
|
|
12
12
|
import type { BrickExample } from "./_types";
|
|
13
13
|
|
|
14
14
|
// Generic container can hold any type of array data source
|
|
@@ -67,27 +67,27 @@ AVOID:
|
|
|
67
67
|
icon: RxBox,
|
|
68
68
|
props: defineProps({
|
|
69
69
|
colorPreset: Type.Optional(
|
|
70
|
-
|
|
70
|
+
colorPreset({
|
|
71
71
|
title: "Color",
|
|
72
72
|
}),
|
|
73
73
|
),
|
|
74
|
-
direction:
|
|
74
|
+
direction: direction({
|
|
75
75
|
default: "flex-col",
|
|
76
76
|
title: "Direction",
|
|
77
77
|
description: "Direction of the box layout",
|
|
78
78
|
}),
|
|
79
79
|
justifyContent: Type.Optional(
|
|
80
|
-
|
|
80
|
+
justifyContent({
|
|
81
81
|
default: "justify-center",
|
|
82
82
|
}),
|
|
83
83
|
),
|
|
84
84
|
alignItems: Type.Optional(
|
|
85
|
-
|
|
85
|
+
alignItems({
|
|
86
86
|
default: "items-stretch",
|
|
87
87
|
}),
|
|
88
88
|
),
|
|
89
89
|
gap: Type.Optional(
|
|
90
|
-
|
|
90
|
+
cssLength({
|
|
91
91
|
title: "Gap",
|
|
92
92
|
default: "1rem",
|
|
93
93
|
description: "Gap between children bricks.",
|
|
@@ -98,7 +98,7 @@ AVOID:
|
|
|
98
98
|
}),
|
|
99
99
|
),
|
|
100
100
|
padding: Type.Optional(
|
|
101
|
-
|
|
101
|
+
cssLength({
|
|
102
102
|
default: "1rem",
|
|
103
103
|
description: "Padding inside the box.",
|
|
104
104
|
"ai:instructions": "Use only a single value like '1rem' or '10px'",
|
|
@@ -115,14 +115,12 @@ AVOID:
|
|
|
115
115
|
"ui:styleId": "styles:wrap",
|
|
116
116
|
}),
|
|
117
117
|
),
|
|
118
|
-
rounding:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
),
|
|
123
|
-
|
|
124
|
-
shadow: Type.Optional(shadowRef()),
|
|
125
|
-
loop: Type.Optional(loopRef()),
|
|
118
|
+
rounding: rounding({
|
|
119
|
+
default: "rounded-md",
|
|
120
|
+
}),
|
|
121
|
+
border: Type.Optional(border()),
|
|
122
|
+
shadow: Type.Optional(shadow()),
|
|
123
|
+
loop: Type.Optional(loop()),
|
|
126
124
|
$children: Type.Array(Type.Any(), {
|
|
127
125
|
"ui:field": "hidden",
|
|
128
126
|
description: "List of nested bricks",
|
|
@@ -2,11 +2,11 @@ import { Type } from "@sinclair/typebox";
|
|
|
2
2
|
import { RxButton } from "react-icons/rx";
|
|
3
3
|
import { defineBrickManifest } from "~/shared/brick-manifest";
|
|
4
4
|
import { defineProps } from "../props/helpers";
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
5
|
+
import { urlOrPageId } from "../props/string";
|
|
6
|
+
import { rounding } from "../props/border";
|
|
7
|
+
import { StringEnum } from "~/shared/utils/string-enum";
|
|
8
|
+
import { fontSize } from "../props/text";
|
|
9
|
+
import { colorPreset } from "../props/color-preset";
|
|
10
10
|
import type { BrickExample } from "./_types";
|
|
11
11
|
|
|
12
12
|
export const manifest = defineBrickManifest({
|
|
@@ -26,6 +26,7 @@ STYLING GUIDELINES:
|
|
|
26
26
|
- colorPreset: Use "primary-500" for main CTAs, "secondary-500" for secondary actions, "neutral-500" for low-priority actions, "accent-500" for highlight actions
|
|
27
27
|
- fontSize: "text-sm" for compact buttons, "text-base" for standard, "text-lg" for emphasis, "text-xl" for hero buttons
|
|
28
28
|
- rounding: "rounded-none" for sharp/modern, "rounded-md" for standard, "rounded-lg" for friendly, "rounded-full" for pills
|
|
29
|
+
- fill: Use "solid" for primary actions with background color, "outline" for secondary actions with transparent background and border
|
|
29
30
|
- link: Use full URLs for external (https://example.com), relative paths for internal (/about), or page IDs for site pages (about-us)
|
|
30
31
|
|
|
31
32
|
DYNAMIC CONTENT:
|
|
@@ -48,15 +49,15 @@ AVOID:
|
|
|
48
49
|
props: defineProps(
|
|
49
50
|
{
|
|
50
51
|
colorPreset: Type.Optional(
|
|
51
|
-
|
|
52
|
+
colorPreset({
|
|
52
53
|
default: { color: "primary-500" },
|
|
53
54
|
title: "Color",
|
|
54
55
|
"ui:default-gradient-direction": "bg-gradient-to-b",
|
|
55
56
|
}),
|
|
56
57
|
),
|
|
57
|
-
label:
|
|
58
|
+
label: Type.String({ title: "Label", default: "My button", metadata: { category: "content" } }),
|
|
58
59
|
fontSize: Type.Optional(
|
|
59
|
-
|
|
60
|
+
fontSize({
|
|
60
61
|
title: "Font size",
|
|
61
62
|
description: "The font size of the button text.",
|
|
62
63
|
default: "text-base",
|
|
@@ -65,12 +66,21 @@ AVOID:
|
|
|
65
66
|
}),
|
|
66
67
|
),
|
|
67
68
|
rounding: Type.Optional(
|
|
68
|
-
|
|
69
|
+
rounding({
|
|
69
70
|
default: "rounded-md",
|
|
70
71
|
}),
|
|
71
72
|
),
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
fill: Type.Optional(
|
|
74
|
+
StringEnum(["solid", "outline"], {
|
|
75
|
+
title: "Fill",
|
|
76
|
+
description: "Button appearance style - solid background or outlined.",
|
|
77
|
+
default: "solid",
|
|
78
|
+
enumNames: ["Solid", "Outline"],
|
|
79
|
+
"ui:field": "enum",
|
|
80
|
+
"ui:display": "select",
|
|
81
|
+
}),
|
|
82
|
+
),
|
|
83
|
+
link: urlOrPageId({
|
|
74
84
|
title: "Link",
|
|
75
85
|
"ui:placeholder": "https://example.com",
|
|
76
86
|
metadata: { category: "content" },
|
|
@@ -93,6 +103,7 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
93
103
|
colorPreset: { color: "primary-500" },
|
|
94
104
|
fontSize: "text-base",
|
|
95
105
|
rounding: "rounded-md",
|
|
106
|
+
fill: "solid",
|
|
96
107
|
},
|
|
97
108
|
},
|
|
98
109
|
{
|
|
@@ -104,6 +115,7 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
104
115
|
colorPreset: { color: "secondary-500" },
|
|
105
116
|
fontSize: "text-base",
|
|
106
117
|
rounding: "rounded-md",
|
|
118
|
+
fill: "outline",
|
|
107
119
|
},
|
|
108
120
|
},
|
|
109
121
|
{
|
|
@@ -150,7 +162,7 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
150
162
|
colorPreset: { color: "secondary-600" },
|
|
151
163
|
fontSize: "text-base",
|
|
152
164
|
rounding: "rounded-lg",
|
|
153
|
-
|
|
165
|
+
fill: "outline",
|
|
154
166
|
},
|
|
155
167
|
},
|
|
156
168
|
|
|
@@ -188,7 +200,7 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
188
200
|
colorPreset: { color: "primary-600" },
|
|
189
201
|
fontSize: "text-base",
|
|
190
202
|
rounding: "rounded-md",
|
|
191
|
-
|
|
203
|
+
fill: "outline",
|
|
192
204
|
},
|
|
193
205
|
},
|
|
194
206
|
{
|
|
@@ -235,7 +247,7 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
235
247
|
colorPreset: { color: "primary-600" },
|
|
236
248
|
fontSize: "text-xl",
|
|
237
249
|
rounding: "rounded-xl",
|
|
238
|
-
|
|
250
|
+
fill: "outline",
|
|
239
251
|
},
|
|
240
252
|
},
|
|
241
253
|
{
|
|
@@ -258,7 +270,7 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
258
270
|
colorPreset: { color: "primary-500" },
|
|
259
271
|
fontSize: "text-base",
|
|
260
272
|
rounding: "rounded-none",
|
|
261
|
-
|
|
273
|
+
fill: "outline",
|
|
262
274
|
},
|
|
263
275
|
},
|
|
264
276
|
|
|
@@ -289,7 +301,33 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
289
301
|
},
|
|
290
302
|
fontSize: "text-base",
|
|
291
303
|
rounding: "rounded-md",
|
|
292
|
-
|
|
304
|
+
fill: "outline",
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
|
|
308
|
+
// FILL STYLE COMPARISON EXAMPLES
|
|
309
|
+
{
|
|
310
|
+
description: "Solid fill button - Traditional filled background style",
|
|
311
|
+
type: "button",
|
|
312
|
+
props: {
|
|
313
|
+
label: "Solid Button",
|
|
314
|
+
link: "/solid",
|
|
315
|
+
colorPreset: { color: "primary-500" },
|
|
316
|
+
fontSize: "text-base",
|
|
317
|
+
rounding: "rounded-md",
|
|
318
|
+
fill: "solid",
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
description: "Outline fill button - Transparent background with border",
|
|
323
|
+
type: "button",
|
|
324
|
+
props: {
|
|
325
|
+
label: "Outline Button",
|
|
326
|
+
link: "/outline",
|
|
327
|
+
colorPreset: { color: "primary-500" },
|
|
328
|
+
fontSize: "text-base",
|
|
329
|
+
rounding: "rounded-md",
|
|
330
|
+
fill: "outline",
|
|
293
331
|
},
|
|
294
332
|
},
|
|
295
333
|
];
|
|
@@ -1,24 +1,33 @@
|
|
|
1
1
|
import { defineBrickManifest } from "~/shared/brick-manifest";
|
|
2
2
|
import { defineProps } from "../props/helpers";
|
|
3
|
-
import {
|
|
3
|
+
import { textContent } from "../props/text";
|
|
4
4
|
import { BsCardText } from "react-icons/bs";
|
|
5
|
-
import {
|
|
5
|
+
import { image } from "../props/image";
|
|
6
6
|
import { type Static, Type } from "@sinclair/typebox";
|
|
7
7
|
import type { BrickProps } from "../props/types";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
8
|
+
import { shadow } from "../props/effects";
|
|
9
|
+
import { border, rounding } from "../props/border";
|
|
10
|
+
import { colorPreset } from "../props/color-preset";
|
|
11
|
+
import { loop } from "../props/dynamic";
|
|
12
12
|
import { StringEnum } from "~/shared/utils/string-enum";
|
|
13
|
-
import {
|
|
13
|
+
import { urlOrPageId } from "../props/string";
|
|
14
14
|
import type { BrickExample } from "./_types";
|
|
15
|
+
import { grow } from "../props/grow";
|
|
15
16
|
|
|
16
17
|
export const manifest = defineBrickManifest({
|
|
17
18
|
type: "card",
|
|
18
19
|
name: "Card",
|
|
19
|
-
description: "A card that can have a title, image, and
|
|
20
|
-
aiInstructions:
|
|
21
|
-
|
|
20
|
+
description: "A card that can have a title, image, content, and button.",
|
|
21
|
+
aiInstructions: `Use this brick to create visually distinct content blocks (product, feature, event, article, blog post, etc.).
|
|
22
|
+
|
|
23
|
+
Guidelines:
|
|
24
|
+
- Always provide a short button label (1-3 words) and pick a color matching semantic weight (primary/accent for primary actions, neutral/secondary for low emphasis).
|
|
25
|
+
- Set noTitle: true when the card is intentionally title-less (e.g. a quote card or pure media focus).
|
|
26
|
+
- Use dynamic tokens (e.g. {{products.price}}) instead of duplicating literal values.
|
|
27
|
+
- border + rounding + shadow should be cohesive: stronger borders pair well with larger rounding + moderate shadow; minimal / flat cards may use border-0 + no shadow.
|
|
28
|
+
- For internal navigation, always supply a page ID (e.g. 'about') instead of a full URL. Use placeholders like {{page.$slug}} for dynamic page links.
|
|
29
|
+
- Keep HTML inside text minimal (<strong>, <em>, <br>, <p>) — for richer structure consider multiple bricks instead.
|
|
30
|
+
- Avoid mixing noTitle with large heading text embedded inside the text field — in that case keep a proper title.`,
|
|
22
31
|
icon: BsCardText,
|
|
23
32
|
defaultWidth: { desktop: "400px", mobile: "100%" },
|
|
24
33
|
minWidth: { desktop: 300 },
|
|
@@ -26,14 +35,13 @@ export const manifest = defineBrickManifest({
|
|
|
26
35
|
maxWidth: { desktop: 650 },
|
|
27
36
|
props: defineProps({
|
|
28
37
|
colorPreset: Type.Optional(
|
|
29
|
-
|
|
38
|
+
colorPreset({
|
|
30
39
|
title: "Color preset",
|
|
31
40
|
default: { color: "base-100" },
|
|
32
41
|
}),
|
|
33
42
|
),
|
|
34
|
-
|
|
35
43
|
cardImage: Type.Optional(
|
|
36
|
-
|
|
44
|
+
image({
|
|
37
45
|
"ui:responsive": "desktop",
|
|
38
46
|
metadata: {
|
|
39
47
|
category: "content",
|
|
@@ -63,24 +71,24 @@ export const manifest = defineBrickManifest({
|
|
|
63
71
|
"ui:responsive": "desktop",
|
|
64
72
|
}),
|
|
65
73
|
),
|
|
66
|
-
title: Type.Optional(
|
|
67
|
-
text: Type.Optional(
|
|
74
|
+
title: Type.Optional(textContent({ title: "Title" })),
|
|
75
|
+
text: Type.Optional(textContent({ title: "Text" })),
|
|
68
76
|
rounding: Type.Optional(
|
|
69
|
-
|
|
77
|
+
rounding({
|
|
70
78
|
default: "rounded-md",
|
|
71
79
|
}),
|
|
72
80
|
),
|
|
73
81
|
border: Type.Optional(
|
|
74
|
-
|
|
82
|
+
border({
|
|
75
83
|
// default: { width: "border", color: "border-base-300" },
|
|
76
84
|
}),
|
|
77
85
|
),
|
|
78
86
|
shadow: Type.Optional(
|
|
79
|
-
|
|
87
|
+
shadow({
|
|
80
88
|
default: "shadow-sm",
|
|
81
89
|
}),
|
|
82
90
|
),
|
|
83
|
-
loop: Type.Optional(
|
|
91
|
+
loop: Type.Optional(loop()),
|
|
84
92
|
button: Type.Object(
|
|
85
93
|
{
|
|
86
94
|
label: Type.String({
|
|
@@ -91,7 +99,7 @@ export const manifest = defineBrickManifest({
|
|
|
91
99
|
category: "content",
|
|
92
100
|
},
|
|
93
101
|
}),
|
|
94
|
-
url:
|
|
102
|
+
url: urlOrPageId({
|
|
95
103
|
title: "Button URL",
|
|
96
104
|
description: "The URL the button should link to.",
|
|
97
105
|
metadata: {
|
|
@@ -108,6 +116,11 @@ export const manifest = defineBrickManifest({
|
|
|
108
116
|
},
|
|
109
117
|
{ title: "Button", description: "Button displayed at the bottom of the card" },
|
|
110
118
|
),
|
|
119
|
+
grow: Type.Optional(
|
|
120
|
+
grow({
|
|
121
|
+
default: true,
|
|
122
|
+
}),
|
|
123
|
+
),
|
|
111
124
|
}),
|
|
112
125
|
});
|
|
113
126
|
|
|
@@ -174,7 +187,7 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
174
187
|
},
|
|
175
188
|
// INTERNAL PAGE ID LINK VARIANT
|
|
176
189
|
{
|
|
177
|
-
description: "Internal navigation card using a page ID
|
|
190
|
+
description: "Internal navigation card using a page ID for the button URL (page id = 'about')",
|
|
178
191
|
type: "card",
|
|
179
192
|
props: {
|
|
180
193
|
title: "About Our Mission",
|
|
@@ -186,7 +199,8 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
186
199
|
},
|
|
187
200
|
// GRADIENT & STRONG BORDER VARIANT
|
|
188
201
|
{
|
|
189
|
-
description:
|
|
202
|
+
description:
|
|
203
|
+
"High-emphasis promotional card using gradient background and thick border, linking to the page with id 'pricing-page'",
|
|
190
204
|
type: "card",
|
|
191
205
|
props: {
|
|
192
206
|
title: "Limited Time Offer",
|
|
@@ -195,37 +209,24 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
195
209
|
border: { width: "border-4", color: "border-primary-400" },
|
|
196
210
|
rounding: "rounded-xl",
|
|
197
211
|
shadow: "shadow-lg",
|
|
198
|
-
button: { label: "Upgrade", url: "
|
|
212
|
+
button: { label: "Upgrade", url: "pricing-page", color: "btn-accent" },
|
|
199
213
|
},
|
|
200
214
|
},
|
|
201
215
|
// MINIMAL / FLAT VARIANT (no border, no shadow, subtle preset)
|
|
202
216
|
{
|
|
203
|
-
description:
|
|
217
|
+
description:
|
|
218
|
+
"Minimal flat information card (border-0, no shadow) linking to the page with id 'status-page'",
|
|
204
219
|
type: "card",
|
|
205
220
|
props: {
|
|
206
221
|
title: "Maintenance Window",
|
|
207
222
|
text: "Scheduled maintenance on Saturday 02:00–03:00 UTC. API responses may be delayed.",
|
|
208
223
|
colorPreset: { color: "neutral-50" },
|
|
209
224
|
border: { width: "border-0", color: "border-neutral-200" },
|
|
210
|
-
button: { label: "Status Page", url: "
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
// DARK / INVERTED VARIANT
|
|
214
|
-
{
|
|
215
|
-
description: "Dark themed spotlight card (primary-800 background)",
|
|
216
|
-
type: "card",
|
|
217
|
-
props: {
|
|
218
|
-
title: "Night Mode Preview",
|
|
219
|
-
text: "Experience the new adaptive dark theme optimized for low ambient light environments.",
|
|
220
|
-
colorPreset: { color: "primary-800" },
|
|
221
|
-
border: { width: "border", color: "border-primary-600" },
|
|
222
|
-
rounding: "rounded-lg",
|
|
223
|
-
shadow: "shadow-md",
|
|
224
|
-
button: { label: "Preview", url: "/themes/dark", color: "btn-primary" },
|
|
225
|
+
button: { label: "Status Page", url: "status-page", color: "btn-neutral" },
|
|
225
226
|
},
|
|
226
227
|
},
|
|
227
228
|
{
|
|
228
|
-
description: "Feature card with large padding and background",
|
|
229
|
+
description: "Feature card with large padding and background, linking to a dynamic product page",
|
|
229
230
|
type: "card",
|
|
230
231
|
props: {
|
|
231
232
|
title: "Key Feature",
|
|
@@ -236,13 +237,13 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
236
237
|
shadow: "shadow-sm",
|
|
237
238
|
button: {
|
|
238
239
|
label: "Discover More",
|
|
239
|
-
url: "/
|
|
240
|
+
url: "/product/{{ product.$slug }}",
|
|
240
241
|
color: "btn-primary",
|
|
241
242
|
},
|
|
242
243
|
},
|
|
243
244
|
},
|
|
244
245
|
{
|
|
245
|
-
description: "Blog post card with image at the bottom",
|
|
246
|
+
description: "Blog post card with image at the bottom, linking to a dynamic blog post",
|
|
246
247
|
type: "card",
|
|
247
248
|
props: {
|
|
248
249
|
title: "Future of Tech",
|
|
@@ -256,65 +257,8 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
256
257
|
url: "/blog/{{ blogPosts.$slug }}",
|
|
257
258
|
color: "btn-primary",
|
|
258
259
|
},
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
{
|
|
262
|
-
description: "Minimal centered card without image",
|
|
263
|
-
type: "card",
|
|
264
|
-
props: {
|
|
265
|
-
title: "Simple Announcement",
|
|
266
|
-
text: "Important updates will be posted here regularly.",
|
|
267
|
-
button: {
|
|
268
|
-
label: "View Updates",
|
|
269
|
-
url: "/updates",
|
|
270
|
-
color: "btn-neutral",
|
|
271
|
-
},
|
|
272
|
-
},
|
|
273
|
-
},
|
|
274
|
-
{
|
|
275
|
-
description: "Event card with multiple variants",
|
|
276
|
-
type: "card",
|
|
277
|
-
props: {
|
|
278
|
-
cardImage: {
|
|
279
|
-
src: "https://via.placeholder.com/400x250",
|
|
280
|
-
alt: "Event venue",
|
|
281
|
-
},
|
|
282
|
-
title: "Annual Conference 2025",
|
|
283
|
-
text: "Join us for three days of inspiring talks, networking opportunities, and hands-on workshops.",
|
|
284
|
-
button: {
|
|
285
|
-
label: "Register Now",
|
|
286
|
-
url: "/events/conference-2025",
|
|
287
|
-
color: "btn-primary",
|
|
288
|
-
},
|
|
289
|
-
},
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
description: "News article card with compact layout",
|
|
293
|
-
type: "card",
|
|
294
|
-
props: {
|
|
295
|
-
cardImage: {
|
|
296
|
-
src: "https://via.placeholder.com/120x120",
|
|
297
|
-
alt: "News thumbnail",
|
|
298
|
-
},
|
|
299
|
-
title: "Breaking News Update",
|
|
300
|
-
text: "Latest developments in the ongoing story with expert analysis and community reactions.",
|
|
301
|
-
button: {
|
|
302
|
-
label: "Read Full Article",
|
|
303
|
-
url: "/news/breaking-update",
|
|
304
|
-
color: "btn-secondary",
|
|
305
|
-
},
|
|
306
|
-
},
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
description: "Call-to-action card with prominent styling",
|
|
310
|
-
type: "card",
|
|
311
|
-
props: {
|
|
312
|
-
title: "Get Started Today",
|
|
313
|
-
text: "Transform your workflow with our powerful tools. Sign up now and get 30 days free!",
|
|
314
|
-
button: {
|
|
315
|
-
label: "Sign Up Now",
|
|
316
|
-
url: "/signup",
|
|
317
|
-
color: "btn-primary",
|
|
260
|
+
loop: {
|
|
261
|
+
over: "blogPosts",
|
|
318
262
|
},
|
|
319
263
|
},
|
|
320
264
|
},
|
|
@@ -416,77 +360,4 @@ export const examples: BrickExample<Manifest>[] = [
|
|
|
416
360
|
},
|
|
417
361
|
},
|
|
418
362
|
},
|
|
419
|
-
{
|
|
420
|
-
description: "Testimonial card using customerReviews query with ratings",
|
|
421
|
-
type: "card",
|
|
422
|
-
props: {
|
|
423
|
-
cardImage: {
|
|
424
|
-
src: "{{customerReviews.customerPhoto}}",
|
|
425
|
-
alt: "{{customerReviews.customerName}}",
|
|
426
|
-
},
|
|
427
|
-
imagePosition: "top",
|
|
428
|
-
title: "{{customerReviews.customerName}}",
|
|
429
|
-
text: '"{{customerReviews.review}}"<br><br><strong>Rating: {{customerReviews.rating}}/5 stars</strong><br>{{customerReviews.company}} • {{customerReviews.position}}',
|
|
430
|
-
colorPreset: { color: "neutral-50" },
|
|
431
|
-
rounding: "rounded-xl",
|
|
432
|
-
shadow: "shadow-lg",
|
|
433
|
-
button: {
|
|
434
|
-
label: "See All Reviews",
|
|
435
|
-
url: "/reviews",
|
|
436
|
-
color: "btn-neutral",
|
|
437
|
-
},
|
|
438
|
-
loop: {
|
|
439
|
-
over: "customerReviews",
|
|
440
|
-
},
|
|
441
|
-
},
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
description: "Service offering card using companyServices query with pricing tiers",
|
|
445
|
-
type: "card",
|
|
446
|
-
props: {
|
|
447
|
-
cardImage: {
|
|
448
|
-
src: "{{companyServices.icon}}",
|
|
449
|
-
alt: "{{companyServices.serviceName}}",
|
|
450
|
-
},
|
|
451
|
-
imagePosition: "top",
|
|
452
|
-
title: "{{companyServices.serviceName}}",
|
|
453
|
-
text: "{{companyServices.description}}<br><br><strong>Starting at ${{companyServices.startingPrice}}</strong><br>Duration: {{companyServices.duration}}<br>Includes: {{companyServices.features}}",
|
|
454
|
-
colorPreset: { color: "primary-100" },
|
|
455
|
-
border: { width: "border", color: "border-primary-300" },
|
|
456
|
-
rounding: "rounded-lg",
|
|
457
|
-
shadow: "shadow-md",
|
|
458
|
-
button: {
|
|
459
|
-
label: "Learn More",
|
|
460
|
-
url: "{{companyServices.detailsUrl}}",
|
|
461
|
-
color: "btn-primary",
|
|
462
|
-
},
|
|
463
|
-
loop: {
|
|
464
|
-
over: "companyServices",
|
|
465
|
-
},
|
|
466
|
-
},
|
|
467
|
-
},
|
|
468
|
-
{
|
|
469
|
-
description: "Portfolio project card using portfolioWork query with project details",
|
|
470
|
-
type: "card",
|
|
471
|
-
props: {
|
|
472
|
-
cardImage: {
|
|
473
|
-
src: "{{portfolioWork.thumbnail}}",
|
|
474
|
-
alt: "{{portfolioWork.projectName}}",
|
|
475
|
-
},
|
|
476
|
-
imagePosition: "top",
|
|
477
|
-
title: "{{portfolioWork.projectName}}",
|
|
478
|
-
text: "<strong>Client:</strong> {{portfolioWork.clientName}}<br><strong>Year:</strong> {{portfolioWork.year}}<br><strong>Category:</strong> {{portfolioWork.category}}<br><br>{{portfolioWork.description}}",
|
|
479
|
-
colorPreset: { color: "secondary-100" },
|
|
480
|
-
rounding: "rounded-md",
|
|
481
|
-
shadow: "shadow-sm",
|
|
482
|
-
button: {
|
|
483
|
-
label: "View Project",
|
|
484
|
-
url: "{{portfolioWork.projectUrl}}",
|
|
485
|
-
color: "btn-secondary",
|
|
486
|
-
},
|
|
487
|
-
loop: {
|
|
488
|
-
over: "portfolioWork",
|
|
489
|
-
},
|
|
490
|
-
},
|
|
491
|
-
},
|
|
492
363
|
];
|
|
@@ -2,13 +2,11 @@ import { Type } from "@sinclair/typebox";
|
|
|
2
2
|
import { TbCarouselHorizontal } from "react-icons/tb";
|
|
3
3
|
import { defineBrickManifest } from "~/shared/brick-manifest";
|
|
4
4
|
import { defineProps } from "../props/helpers";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { loopRef } from "../props/dynamic";
|
|
11
|
-
import { cssLengthRef } from "../props/css-length";
|
|
5
|
+
import { image } from "../props/image";
|
|
6
|
+
import { rounding } from "../props/border";
|
|
7
|
+
import { colorPreset } from "../props/color-preset";
|
|
8
|
+
import { loop } from "../props/dynamic";
|
|
9
|
+
import { cssLength } from "../props/css-length";
|
|
12
10
|
import type { BrickExample } from "./_types";
|
|
13
11
|
|
|
14
12
|
export const manifest = defineBrickManifest({
|
|
@@ -69,12 +67,12 @@ AVOID:
|
|
|
69
67
|
icon: TbCarouselHorizontal,
|
|
70
68
|
props: defineProps({
|
|
71
69
|
colorPreset: Type.Optional(
|
|
72
|
-
|
|
70
|
+
colorPreset({
|
|
73
71
|
title: "Color",
|
|
74
72
|
}),
|
|
75
73
|
),
|
|
76
74
|
padding: Type.Optional(
|
|
77
|
-
|
|
75
|
+
cssLength({
|
|
78
76
|
default: "1rem",
|
|
79
77
|
description: "Padding inside the carousel.",
|
|
80
78
|
"ai:instructions": "Use only a single value like '1rem' or '10px'",
|
|
@@ -87,12 +85,12 @@ AVOID:
|
|
|
87
85
|
images: Type.Optional(
|
|
88
86
|
Type.Array(
|
|
89
87
|
Type.Object({
|
|
90
|
-
src:
|
|
88
|
+
src: image({
|
|
91
89
|
"ui:responsive": "desktop",
|
|
92
90
|
"ui:no-alt-text": true,
|
|
93
91
|
"ui:no-object-options": true,
|
|
94
92
|
}),
|
|
95
|
-
legend:
|
|
93
|
+
legend: Type.String({ title: "Legend" }),
|
|
96
94
|
}),
|
|
97
95
|
{
|
|
98
96
|
title: "Images",
|
|
@@ -105,11 +103,11 @@ AVOID:
|
|
|
105
103
|
),
|
|
106
104
|
),
|
|
107
105
|
borderRadius: Type.Optional(
|
|
108
|
-
|
|
106
|
+
rounding({
|
|
109
107
|
default: "rounded-md",
|
|
110
108
|
}),
|
|
111
109
|
),
|
|
112
|
-
loop: Type.Optional(
|
|
110
|
+
loop: Type.Optional(loop()),
|
|
113
111
|
}),
|
|
114
112
|
});
|
|
115
113
|
|