@upstart.gg/sdk 0.0.136 → 0.0.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/ai/schemas.d.ts.map +1 -1
- package/dist/shared/ai/schemas.js +24 -29
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +13 -61
- package/dist/shared/ai/types.d.ts.map +1 -1
- package/dist/shared/ajv.js +33 -32
- package/dist/shared/ajv.js.map +1 -1
- package/dist/shared/attributes.d.ts +83 -85
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +20 -23
- package/dist/shared/brick-manifest.d.ts +8 -5
- package/dist/shared/brick-manifest.d.ts.map +1 -1
- package/dist/shared/brick-manifest.js +3 -18
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/accordion.manifest.js +13 -20
- package/dist/shared/bricks/manifests/all-manifests.js +44 -43
- package/dist/shared/bricks/manifests/all-props.d.ts +1501 -0
- package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -0
- package/dist/shared/bricks/manifests/all-props.js +243 -0
- package/dist/shared/bricks/manifests/all-props.js.map +1 -0
- package/dist/shared/bricks/manifests/box.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +16 -20
- package/dist/shared/bricks/manifests/button.manifest.d.ts +3 -6
- package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/button.manifest.js +13 -20
- package/dist/shared/bricks/manifests/card.manifest.d.ts +3 -3
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +18 -20
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +15 -20
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +3 -3
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +13 -20
- package/dist/shared/bricks/manifests/form.manifest.d.ts +3 -3
- package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/form.manifest.js +13 -20
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +13 -20
- package/dist/shared/bricks/manifests/html.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +8 -20
- package/dist/shared/bricks/manifests/icon.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +13 -20
- package/dist/shared/bricks/manifests/image.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/image.manifest.js +16 -20
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +15 -20
- package/dist/shared/bricks/manifests/map.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +11 -20
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +5 -5
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +15 -20
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +13 -20
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +14 -20
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +8 -20
- package/dist/shared/bricks/manifests/table.manifest.d.ts +4 -4
- package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/table.manifest.js +15 -20
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts +4 -4
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.js +15 -20
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +2 -2
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +18 -20
- package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -6
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +13 -20
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts +7 -7
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/timeline.manifest.js +15 -20
- package/dist/shared/bricks/manifests/video.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/video.manifest.js +11 -20
- package/dist/shared/bricks/props/align.d.ts +0 -3
- package/dist/shared/bricks/props/align.d.ts.map +1 -1
- package/dist/shared/bricks/props/align.js +4 -11
- package/dist/shared/bricks/props/background.d.ts +2 -8
- package/dist/shared/bricks/props/background.d.ts.map +1 -1
- package/dist/shared/bricks/props/background.js +4 -9
- package/dist/shared/bricks/props/border.d.ts +0 -7
- package/dist/shared/bricks/props/border.d.ts.map +1 -1
- package/dist/shared/bricks/props/border.js +5 -10
- package/dist/shared/bricks/props/color-preset.d.ts +316 -6
- package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
- package/dist/shared/bricks/props/color-preset.js +2 -5
- package/dist/shared/bricks/props/color.d.ts +3 -5
- package/dist/shared/bricks/props/color.d.ts.map +1 -1
- package/dist/shared/bricks/props/color.js +3 -8
- package/dist/shared/bricks/props/common.d.ts.map +1 -1
- package/dist/shared/bricks/props/common.js +4 -5
- package/dist/shared/bricks/props/css-length.d.ts +0 -1
- package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
- package/dist/shared/bricks/props/css-length.js +1 -4
- package/dist/shared/bricks/props/datasource.d.ts +3 -3
- package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
- package/dist/shared/bricks/props/datasource.js +74 -76
- package/dist/shared/bricks/props/datasource.js.map +1 -1
- package/dist/shared/bricks/props/date.js +21 -4
- package/dist/shared/bricks/props/date.js.map +1 -1
- package/dist/shared/bricks/props/direction.d.ts +1 -2
- package/dist/shared/bricks/props/direction.d.ts.map +1 -1
- package/dist/shared/bricks/props/direction.js +4 -7
- package/dist/shared/bricks/props/dynamic.d.ts +5 -67
- package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
- package/dist/shared/bricks/props/dynamic.js +6 -24
- package/dist/shared/bricks/props/effects.d.ts +1 -3
- package/dist/shared/bricks/props/effects.d.ts.map +1 -1
- package/dist/shared/bricks/props/effects.js +4 -9
- package/dist/shared/bricks/props/geolocation.d.ts.map +1 -1
- package/dist/shared/bricks/props/geolocation.js +3 -6
- package/dist/shared/bricks/props/geolocation.js.map +1 -1
- package/dist/shared/bricks/props/helpers.js +5 -6
- package/dist/shared/bricks/props/image.d.ts +2 -8
- package/dist/shared/bricks/props/image.d.ts.map +1 -1
- package/dist/shared/bricks/props/image.js +4 -7
- package/dist/shared/bricks/props/string.d.ts +2 -5
- package/dist/shared/bricks/props/string.d.ts.map +1 -1
- package/dist/shared/bricks/props/string.js +3 -10
- package/dist/shared/bricks/props/tags.d.ts +0 -1
- package/dist/shared/bricks/props/tags.d.ts.map +1 -1
- package/dist/shared/bricks/props/tags.js +3 -6
- package/dist/shared/bricks/props/text.d.ts +0 -3
- package/dist/shared/bricks/props/text.d.ts.map +1 -1
- package/dist/shared/bricks/props/text.js +4 -11
- package/dist/shared/bricks/props/types.d.ts +2 -2
- package/dist/shared/bricks/props/types.d.ts.map +1 -1
- package/dist/shared/bricks.d.ts +64 -154
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +47 -52
- package/dist/shared/chunk-2O5HVPID.js +41 -0
- package/dist/shared/chunk-2O5HVPID.js.map +1 -0
- package/dist/shared/{chunk-F22LDHEO.js → chunk-2U5U3CCJ.js} +3 -18
- package/dist/shared/chunk-2U5U3CCJ.js.map +1 -0
- package/dist/shared/{chunk-LTIJI7Y3.js → chunk-4KY7OZWD.js} +35 -35
- package/dist/shared/chunk-4KY7OZWD.js.map +1 -0
- package/dist/shared/{chunk-TNMNMYOB.js → chunk-5RCC2STG.js} +2 -13
- package/dist/shared/chunk-5RCC2STG.js.map +1 -0
- package/dist/shared/{chunk-KIDICX3Y.js → chunk-6AE7UD73.js} +27 -33
- package/dist/shared/chunk-6AE7UD73.js.map +1 -0
- package/dist/shared/{chunk-CRS7QCPZ.js → chunk-7U5WPHXB.js} +65 -27
- package/dist/shared/chunk-7U5WPHXB.js.map +1 -0
- package/dist/shared/{chunk-Q4NPPLEU.js → chunk-BHARJBEK.js} +2 -9
- package/dist/shared/chunk-BHARJBEK.js.map +1 -0
- package/dist/shared/{chunk-H5JM2M2T.js → chunk-BZTWZC77.js} +46 -31
- package/dist/shared/chunk-BZTWZC77.js.map +1 -0
- package/dist/shared/{chunk-LLNPH3XR.js → chunk-DCM4732T.js} +6 -8
- package/dist/shared/chunk-DCM4732T.js.map +1 -0
- package/dist/shared/{chunk-W6MRYRGJ.js → chunk-DRQKKPTX.js} +6 -20
- package/dist/shared/chunk-DRQKKPTX.js.map +1 -0
- package/dist/shared/{chunk-CSF2WQX2.js → chunk-EID5HPF3.js} +15 -12
- package/dist/shared/chunk-EID5HPF3.js.map +1 -0
- package/dist/shared/chunk-EMF5TCPX.js +389 -0
- package/dist/shared/chunk-EMF5TCPX.js.map +1 -0
- package/dist/shared/chunk-FD7YYFRI.js +225 -0
- package/dist/shared/chunk-FD7YYFRI.js.map +1 -0
- package/dist/shared/{chunk-36PLZKMW.js → chunk-FHA4DFIM.js} +26 -27
- package/dist/shared/chunk-FHA4DFIM.js.map +1 -0
- package/dist/shared/{chunk-L6C7HUSA.js → chunk-FUUSAMN3.js} +21 -24
- package/dist/shared/chunk-FUUSAMN3.js.map +1 -0
- package/dist/shared/chunk-GDYCCB3B.js +22 -0
- package/dist/shared/chunk-GDYCCB3B.js.map +1 -0
- package/dist/shared/chunk-GLV6QIIM.js +41 -0
- package/dist/shared/chunk-GLV6QIIM.js.map +1 -0
- package/dist/shared/chunk-H6TMBELF.js +374 -0
- package/dist/shared/chunk-H6TMBELF.js.map +1 -0
- package/dist/shared/{chunk-YWOTQWIQ.js → chunk-HUWMIXNN.js} +26 -28
- package/dist/shared/chunk-HUWMIXNN.js.map +1 -0
- package/dist/shared/chunk-HY7JOP3J.js +150 -0
- package/dist/shared/chunk-HY7JOP3J.js.map +1 -0
- package/dist/shared/{chunk-TFGGYU6Y.js → chunk-IEMCCHM4.js} +7 -12
- package/dist/shared/chunk-IEMCCHM4.js.map +1 -0
- package/dist/shared/{chunk-EVLRH6VG.js → chunk-J45LSQT6.js} +2 -2
- package/dist/shared/chunk-J45LSQT6.js.map +1 -0
- package/dist/shared/{chunk-DFAFDBYZ.js → chunk-JF52BBFD.js} +27 -28
- package/dist/shared/chunk-JF52BBFD.js.map +1 -0
- package/dist/shared/{chunk-ZR6R6Z6O.js → chunk-JLDAS3VE.js} +34 -32
- package/dist/shared/chunk-JLDAS3VE.js.map +1 -0
- package/dist/shared/{chunk-SE6O65HC.js → chunk-JSDKK5QN.js} +10 -23
- package/dist/shared/chunk-JSDKK5QN.js.map +1 -0
- package/dist/shared/{chunk-KILJYJFE.js → chunk-JW7MQAU4.js} +19 -19
- package/dist/shared/chunk-JW7MQAU4.js.map +1 -0
- package/dist/shared/{chunk-RV7AYVFV.js → chunk-KKWT3OXF.js} +4 -19
- package/dist/shared/chunk-KKWT3OXF.js.map +1 -0
- package/dist/shared/{chunk-N3BEBLWF.js → chunk-KQH6V22E.js} +34 -34
- package/dist/shared/{chunk-GFAQWQER.js → chunk-LGDDJJHK.js} +33 -35
- package/dist/shared/chunk-LGDDJJHK.js.map +1 -0
- package/dist/shared/{chunk-FOGAVJC2.js → chunk-LGGPCCCY.js} +3 -3
- package/dist/shared/{chunk-4MNWMEMM.js → chunk-LPAQ47C6.js} +23 -23
- package/dist/shared/chunk-LPAQ47C6.js.map +1 -0
- package/dist/shared/chunk-MO6CRLQA.js +73 -0
- package/dist/shared/chunk-MO6CRLQA.js.map +1 -0
- package/dist/shared/{chunk-GQTZPN5D.js → chunk-MYOLWTB2.js} +29 -32
- package/dist/shared/chunk-MYOLWTB2.js.map +1 -0
- package/dist/shared/{chunk-KEM5N6GJ.js → chunk-O24RDXZS.js} +34 -34
- package/dist/shared/chunk-O24RDXZS.js.map +1 -0
- package/dist/shared/{chunk-BPBKHEQ5.js → chunk-OJ6KL7FU.js} +1 -8
- package/dist/shared/chunk-OJ6KL7FU.js.map +1 -0
- package/dist/shared/{chunk-LCJ2VFPM.js → chunk-PF75LW33.js} +24 -27
- package/dist/shared/chunk-PF75LW33.js.map +1 -0
- package/dist/shared/{chunk-U5ZECCJM.js → chunk-QEJGPYTB.js} +32 -34
- package/dist/shared/chunk-QEJGPYTB.js.map +1 -0
- package/dist/shared/{chunk-2VDR4ZYY.js → chunk-SK2O7GFC.js} +17 -18
- package/dist/shared/chunk-SK2O7GFC.js.map +1 -0
- package/dist/shared/{chunk-N3ZTQD5I.js → chunk-SQXZNGQF.js} +8 -23
- package/dist/shared/chunk-SQXZNGQF.js.map +1 -0
- package/dist/shared/{chunk-NTLAKMMQ.js → chunk-SRYBJ6NQ.js} +6 -17
- package/dist/shared/chunk-SRYBJ6NQ.js.map +1 -0
- package/dist/shared/{chunk-UXTASZ23.js → chunk-T6C3NG2L.js} +66 -63
- package/dist/shared/chunk-T6C3NG2L.js.map +1 -0
- package/dist/shared/{chunk-ZRRAK5NS.js → chunk-TBT2PTGB.js} +41 -33
- package/dist/shared/chunk-TBT2PTGB.js.map +1 -0
- package/dist/shared/{chunk-2IHKVMKW.js → chunk-U4KZUX37.js} +18 -19
- package/dist/shared/chunk-U4KZUX37.js.map +1 -0
- package/dist/shared/{chunk-FQDR2BBZ.js → chunk-VSLRTXLF.js} +11 -4
- package/dist/shared/chunk-VSLRTXLF.js.map +1 -0
- package/dist/shared/{chunk-BHC2A43S.js → chunk-VTCHJT4O.js} +3 -3
- package/dist/shared/{chunk-BHC2A43S.js.map → chunk-VTCHJT4O.js.map} +1 -1
- package/dist/shared/{chunk-GIGFNQBO.js → chunk-W2RFDII5.js} +3 -3
- package/dist/shared/{chunk-Y74LZNND.js → chunk-WPZV3LYL.js} +4 -10
- package/dist/shared/chunk-WPZV3LYL.js.map +1 -0
- package/dist/shared/chunk-XFZQGRRL.js +101 -0
- package/dist/shared/chunk-XFZQGRRL.js.map +1 -0
- package/dist/shared/{chunk-42OUNI7C.js → chunk-XK2CERPB.js} +27 -29
- package/dist/shared/chunk-XK2CERPB.js.map +1 -0
- package/dist/shared/chunk-XNRSL6FL.js +78 -0
- package/dist/shared/chunk-XNRSL6FL.js.map +1 -0
- package/dist/shared/{chunk-2RK3CPYJ.js → chunk-XXPSM6UA.js} +9 -12
- package/dist/shared/chunk-XXPSM6UA.js.map +1 -0
- package/dist/shared/{chunk-ZLYIRH2B.js → chunk-ZRBTAC3G.js} +3 -18
- package/dist/shared/chunk-ZRBTAC3G.js.map +1 -0
- package/dist/shared/{chunk-F247VKAE.js → chunk-ZVJNRKT4.js} +18 -20
- package/dist/shared/chunk-ZVJNRKT4.js.map +1 -0
- package/dist/shared/context.d.ts +402 -23
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/context.js +93 -0
- package/dist/shared/context.js.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.d.ts +1 -1
- package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.js +2 -1
- package/dist/shared/datarecords/types.d.ts +3 -3
- package/dist/shared/datarecords/types.d.ts.map +1 -1
- package/dist/shared/datarecords/types.js +3 -2
- package/dist/shared/datasources/external/instagram/feed/schema.d.ts +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js +4 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts +6 -6
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.js +6 -19
- package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.d.ts +2 -2
- package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.js +4 -1
- package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.d.ts +1 -1
- package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.js +4 -8
- package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
- package/dist/shared/datasources/internal/blog/schema.d.ts +1 -1
- package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
- package/dist/shared/datasources/internal/blog/schema.js +4 -1
- package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
- package/dist/shared/datasources/types.d.ts +25 -25
- package/dist/shared/datasources/types.d.ts.map +1 -1
- package/dist/shared/datasources/types.js +3 -16
- package/dist/shared/images.d.ts +1 -1
- package/dist/shared/images.d.ts.map +1 -1
- package/dist/shared/images.js +4 -38
- package/dist/shared/images.js.map +1 -1
- package/dist/shared/page.d.ts +139 -22
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +51 -49
- package/dist/shared/responsive.js +1 -1
- package/dist/shared/site.d.ts +74 -191
- package/dist/shared/site.d.ts.map +1 -1
- package/dist/shared/site.js +55 -114
- package/dist/shared/site.js.map +1 -1
- package/dist/shared/sitemap.d.ts +4 -326
- package/dist/shared/sitemap.d.ts.map +1 -1
- package/dist/shared/sitemap.js +50 -58
- package/dist/shared/theme.d.ts +0 -37
- package/dist/shared/theme.d.ts.map +1 -1
- package/dist/shared/theme.js +4 -21
- package/dist/shared/utils/llm.d.ts +1 -10
- package/dist/shared/utils/llm.d.ts.map +1 -1
- package/dist/shared/utils/llm.js +1 -18
- package/dist/shared/utils/schema.d.ts +3 -2
- package/dist/shared/utils/schema.d.ts.map +1 -1
- package/dist/shared/utils/schema.js +2 -17
- package/dist/shared/utils/string-enum.d.ts +9 -3
- package/dist/shared/utils/string-enum.d.ts.map +1 -1
- package/dist/shared/utils/string-enum.js +1 -1
- package/package.json +21 -5
- package/src/shared/ai/schemas.ts +24 -29
- package/src/shared/ai/types.ts +22 -88
- package/src/shared/attributes.ts +53 -51
- package/src/shared/brick-manifest.ts +5 -6
- package/src/shared/bricks/manifests/accordion.manifest.ts +11 -11
- package/src/shared/bricks/manifests/all-props.ts +165 -0
- package/src/shared/bricks/manifests/box.manifest.ts +19 -21
- package/src/shared/bricks/manifests/button.manifest.ts +54 -16
- package/src/shared/bricks/manifests/card.manifest.ts +32 -18
- package/src/shared/bricks/manifests/carousel.manifest.ts +11 -13
- package/src/shared/bricks/manifests/footer.manifest.ts +16 -15
- package/src/shared/bricks/manifests/form.manifest.ts +14 -15
- package/src/shared/bricks/manifests/hero.manifest.ts +18 -20
- package/src/shared/bricks/manifests/icon.manifest.ts +9 -10
- package/src/shared/bricks/manifests/image.manifest.ts +22 -19
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +13 -15
- package/src/shared/bricks/manifests/map.manifest.ts +10 -10
- package/src/shared/bricks/manifests/navbar.manifest.ts +20 -21
- package/src/shared/bricks/manifests/sidebar.manifest.ts +9 -9
- package/src/shared/bricks/manifests/social-links.manifest.ts +17 -19
- package/src/shared/bricks/manifests/table.manifest.ts +15 -15
- package/src/shared/bricks/manifests/tabs.manifest.ts +14 -16
- package/src/shared/bricks/manifests/testimonials.manifest.ts +21 -20
- package/src/shared/bricks/manifests/text.manifest.ts +16 -19
- package/src/shared/bricks/manifests/timeline.manifest.ts +29 -24
- package/src/shared/bricks/manifests/video.manifest.ts +9 -10
- package/src/shared/bricks/props/align.ts +0 -13
- package/src/shared/bricks/props/background.ts +1 -14
- package/src/shared/bricks/props/border.ts +2 -13
- package/src/shared/bricks/props/color-preset.ts +9 -10
- package/src/shared/bricks/props/color.ts +7 -18
- package/src/shared/bricks/props/common.ts +6 -7
- package/src/shared/bricks/props/css-length.ts +0 -5
- package/src/shared/bricks/props/datasource.ts +72 -74
- package/src/shared/bricks/props/direction.ts +1 -5
- package/src/shared/bricks/props/dynamic.ts +0 -11
- package/src/shared/bricks/props/effects.ts +0 -9
- package/src/shared/bricks/props/geolocation.ts +3 -3
- package/src/shared/bricks/props/helpers.ts +1 -1
- package/src/shared/bricks/props/image.ts +4 -16
- package/src/shared/bricks/props/string.ts +5 -18
- package/src/shared/bricks/props/tags.ts +0 -5
- package/src/shared/bricks/props/tests/background.test.ts +1 -15
- package/src/shared/bricks/props/tests/image.test.ts +3 -9
- package/src/shared/bricks/props/tests/string.test.ts +2 -26
- package/src/shared/bricks/props/text.ts +0 -12
- package/src/shared/bricks/props/types.ts +4 -3
- package/src/shared/bricks.ts +156 -1020
- package/src/shared/context.ts +24 -24
- package/src/shared/datarecords/external/airtable/types.ts +12 -11
- package/src/shared/datarecords/types.ts +2 -34
- package/src/shared/datasources/external/instagram/feed/schema.ts +2 -1
- package/src/shared/datasources/external/mastodon/status/schema.ts +4 -19
- package/src/shared/datasources/external/meta/oauth/config.ts +2 -1
- package/src/shared/datasources/external/threads/media/schema.ts +2 -8
- package/src/shared/datasources/internal/blog/schema.ts +2 -1
- package/src/shared/datasources/types.ts +64 -79
- package/src/shared/images.ts +12 -18
- package/src/shared/page.ts +9 -1
- package/src/shared/sitemap.ts +3 -70
- package/src/shared/tests/attributes.test.ts +2 -0
- package/src/shared/theme.ts +81 -96
- package/src/shared/utils/llm.ts +5 -191
- package/src/shared/utils/schema.ts +71 -244
- package/src/shared/utils/string-enum.ts +25 -4
- package/src/shared/utils/tests/schema.test.ts +70 -313
- package/dist/shared/chunk-2IHKVMKW.js.map +0 -1
- package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
- package/dist/shared/chunk-2VDR4ZYY.js.map +0 -1
- package/dist/shared/chunk-36PLZKMW.js.map +0 -1
- package/dist/shared/chunk-42OUNI7C.js.map +0 -1
- package/dist/shared/chunk-4MNWMEMM.js.map +0 -1
- package/dist/shared/chunk-A2QPY54H.js +0 -13
- package/dist/shared/chunk-A2QPY54H.js.map +0 -1
- package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
- package/dist/shared/chunk-CRS7QCPZ.js.map +0 -1
- package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
- package/dist/shared/chunk-DFAFDBYZ.js.map +0 -1
- package/dist/shared/chunk-DV3G7X34.js +0 -244
- package/dist/shared/chunk-DV3G7X34.js.map +0 -1
- package/dist/shared/chunk-EVLRH6VG.js.map +0 -1
- package/dist/shared/chunk-F22LDHEO.js.map +0 -1
- package/dist/shared/chunk-F247VKAE.js.map +0 -1
- package/dist/shared/chunk-FQDR2BBZ.js.map +0 -1
- package/dist/shared/chunk-GFAQWQER.js.map +0 -1
- package/dist/shared/chunk-GQTZPN5D.js.map +0 -1
- package/dist/shared/chunk-H5JM2M2T.js.map +0 -1
- package/dist/shared/chunk-HTUSL2U7.js +0 -260
- package/dist/shared/chunk-HTUSL2U7.js.map +0 -1
- package/dist/shared/chunk-IQIISR22.js +0 -794
- package/dist/shared/chunk-IQIISR22.js.map +0 -1
- package/dist/shared/chunk-JK2FWFJU.js +0 -15
- package/dist/shared/chunk-JK2FWFJU.js.map +0 -1
- package/dist/shared/chunk-KEM5N6GJ.js.map +0 -1
- package/dist/shared/chunk-KIDICX3Y.js.map +0 -1
- package/dist/shared/chunk-KILJYJFE.js.map +0 -1
- package/dist/shared/chunk-L6C7HUSA.js.map +0 -1
- package/dist/shared/chunk-LCJ2VFPM.js.map +0 -1
- package/dist/shared/chunk-LLNPH3XR.js.map +0 -1
- package/dist/shared/chunk-LTIJI7Y3.js.map +0 -1
- package/dist/shared/chunk-MFNHFN2B.js +0 -103
- package/dist/shared/chunk-MFNHFN2B.js.map +0 -1
- package/dist/shared/chunk-N3ZTQD5I.js.map +0 -1
- package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
- package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
- package/dist/shared/chunk-RV7AYVFV.js.map +0 -1
- package/dist/shared/chunk-SE6O65HC.js.map +0 -1
- package/dist/shared/chunk-TFGGYU6Y.js.map +0 -1
- package/dist/shared/chunk-TNMNMYOB.js.map +0 -1
- package/dist/shared/chunk-TNTFKLCR.js +0 -1225
- package/dist/shared/chunk-TNTFKLCR.js.map +0 -1
- package/dist/shared/chunk-U5ZECCJM.js.map +0 -1
- package/dist/shared/chunk-UXTASZ23.js.map +0 -1
- package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
- package/dist/shared/chunk-WKN566LN.js +0 -29
- package/dist/shared/chunk-WKN566LN.js.map +0 -1
- package/dist/shared/chunk-Y74LZNND.js.map +0 -1
- package/dist/shared/chunk-YWOTQWIQ.js.map +0 -1
- package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
- package/dist/shared/chunk-ZR6R6Z6O.js.map +0 -1
- package/dist/shared/chunk-ZRRAK5NS.js.map +0 -1
- package/dist/shared/tests/schema-registry.test.d.ts +0 -2
- package/dist/shared/tests/schema-registry.test.d.ts.map +0 -1
- package/dist/shared/utils/schema-registry.d.ts +0 -5
- package/dist/shared/utils/schema-registry.d.ts.map +0 -1
- package/dist/shared/utils/schema-registry.js +0 -29
- package/dist/shared/utils/schema-registry.js.map +0 -1
- package/dist/shared/utils/tests/schema-registry.test.d.ts +0 -2
- package/dist/shared/utils/tests/schema-registry.test.d.ts.map +0 -1
- package/dist/shared/utils/typed-ref.d.ts +0 -43
- package/dist/shared/utils/typed-ref.d.ts.map +0 -1
- package/dist/shared/utils/typed-ref.js +0 -10
- package/dist/shared/utils/typed-ref.js.map +0 -1
- package/src/shared/tests/schema-registry.test.ts +0 -12
- package/src/shared/utils/schema-registry.ts +0 -82
- package/src/shared/utils/tests/schema-registry.test.ts +0 -13
- package/src/shared/utils/typed-ref.ts +0 -53
- /package/dist/shared/{chunk-N3BEBLWF.js.map → chunk-KQH6V22E.js.map} +0 -0
- /package/dist/shared/{chunk-FOGAVJC2.js.map → chunk-LGGPCCCY.js.map} +0 -0
- /package/dist/shared/{chunk-GIGFNQBO.js.map → chunk-W2RFDII5.js.map} +0 -0
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
defineProps
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VTCHJT4O.js";
|
|
6
6
|
import {
|
|
7
7
|
defineBrickManifest
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-J45LSQT6.js";
|
|
9
9
|
|
|
10
10
|
// src/shared/bricks/manifests/spacer.manifest.ts
|
|
11
11
|
import { CgSpaceBetween } from "react-icons/cg";
|
|
@@ -56,4 +56,4 @@ export {
|
|
|
56
56
|
manifest,
|
|
57
57
|
examples
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=chunk-
|
|
59
|
+
//# sourceMappingURL=chunk-LGGPCCCY.js.map
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
+
import {
|
|
4
|
+
defineProps
|
|
5
|
+
} from "./chunk-VTCHJT4O.js";
|
|
3
6
|
import {
|
|
4
7
|
boolean
|
|
5
8
|
} from "./chunk-KNREHAPN.js";
|
|
6
9
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
defineBrickManifest
|
|
11
|
-
} from "./chunk-EVLRH6VG.js";
|
|
10
|
+
fontSize,
|
|
11
|
+
textContent
|
|
12
|
+
} from "./chunk-2U5U3CCJ.js";
|
|
12
13
|
import {
|
|
13
|
-
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
cssLength
|
|
15
|
+
} from "./chunk-OJ6KL7FU.js";
|
|
15
16
|
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} from "./chunk-F22LDHEO.js";
|
|
17
|
+
loop
|
|
18
|
+
} from "./chunk-XFZQGRRL.js";
|
|
19
19
|
import {
|
|
20
|
-
|
|
21
|
-
} from "./chunk-
|
|
20
|
+
colorPreset
|
|
21
|
+
} from "./chunk-IEMCCHM4.js";
|
|
22
22
|
import {
|
|
23
|
-
|
|
24
|
-
} from "./chunk-
|
|
23
|
+
defineBrickManifest
|
|
24
|
+
} from "./chunk-J45LSQT6.js";
|
|
25
25
|
import {
|
|
26
26
|
StringEnum
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-GDYCCB3B.js";
|
|
28
28
|
|
|
29
29
|
// src/shared/bricks/manifests/accordion.manifest.ts
|
|
30
30
|
import { Type } from "@sinclair/typebox";
|
|
@@ -37,7 +37,7 @@ var manifest = defineBrickManifest({
|
|
|
37
37
|
|
|
38
38
|
WHEN TO USE:
|
|
39
39
|
- FAQ sections with questions and detailed answers
|
|
40
|
-
- Product feature lists with expandable descriptions
|
|
40
|
+
- Product feature lists with expandable descriptions
|
|
41
41
|
- Documentation sections with organized topics
|
|
42
42
|
- Step-by-step processes or tutorials
|
|
43
43
|
- Menu categories (restaurant, services, pricing tiers)
|
|
@@ -73,13 +73,13 @@ AVOID:
|
|
|
73
73
|
props: defineProps({
|
|
74
74
|
items: Type.Array(
|
|
75
75
|
Type.Object({
|
|
76
|
-
title:
|
|
76
|
+
title: textContent({
|
|
77
77
|
title: "Title",
|
|
78
78
|
default: "My title",
|
|
79
79
|
disableSizing: true,
|
|
80
80
|
showInSettings: true
|
|
81
81
|
}),
|
|
82
|
-
content:
|
|
82
|
+
content: textContent({ title: "Content", default: "Expandable content goes here" }),
|
|
83
83
|
defaultOpen: Type.Optional(boolean("Open by default", false))
|
|
84
84
|
}),
|
|
85
85
|
{
|
|
@@ -89,12 +89,12 @@ AVOID:
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
),
|
|
92
|
-
fontSize: Type.Optional(
|
|
92
|
+
fontSize: Type.Optional(fontSize({ default: "inherit" })),
|
|
93
93
|
restrictOneOpen: boolean("Restrict to one open item", false, {
|
|
94
94
|
description: "Restrict to one open item at a time. If false, multiple items can be open simultaneously."
|
|
95
95
|
}),
|
|
96
96
|
gap: Type.Optional(
|
|
97
|
-
|
|
97
|
+
cssLength({
|
|
98
98
|
title: "Gap",
|
|
99
99
|
description: "The gap between the accordion items.",
|
|
100
100
|
default: "1px",
|
|
@@ -125,12 +125,12 @@ AVOID:
|
|
|
125
125
|
)
|
|
126
126
|
),
|
|
127
127
|
colorPreset: Type.Optional(
|
|
128
|
-
|
|
128
|
+
colorPreset({
|
|
129
129
|
title: "Color",
|
|
130
130
|
default: { color: "bg-primary-500 text-primary-500-content" }
|
|
131
131
|
})
|
|
132
132
|
),
|
|
133
|
-
loop: Type.Optional(
|
|
133
|
+
loop: Type.Optional(loop())
|
|
134
134
|
})
|
|
135
135
|
});
|
|
136
136
|
var examples = [
|
|
@@ -419,4 +419,4 @@ export {
|
|
|
419
419
|
manifest,
|
|
420
420
|
examples
|
|
421
421
|
};
|
|
422
|
-
//# sourceMappingURL=chunk-
|
|
422
|
+
//# sourceMappingURL=chunk-LPAQ47C6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/accordion.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TfiLayoutAccordionSeparated } from \"react-icons/tfi\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport { boolean } from \"../props/boolean\";\nimport { defineProps } from \"../props/helpers\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { fontSize, textContent } from \"../props/text\";\nimport type { BrickProps } from \"../props/types\";\nimport { loop } from \"../props/dynamic\";\nimport { cssLength } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"accordion\",\n name: \"Accordion\",\n description: \"An accordion/collapse element for expandable content\",\n aiInstructions: `Use this accordion component for organizing collapsible content sections that help save space and improve content accessibility.\n\nWHEN TO USE:\n- FAQ sections with questions and detailed answers\n- Product feature lists with expandable descriptions\n- Documentation sections with organized topics\n- Step-by-step processes or tutorials\n- Menu categories (restaurant, services, pricing tiers)\n- Legal documents with different sections\n- Course curricula with lesson breakdowns\n- Support categories with help topics\n\nSTYLING GUIDELINES:\n- colorPreset: Use \"primary-500\" for branded sections, \"secondary-400\" for features, \"neutral-200\" for documentation, \"accent-500\" for highlights\n- fontSize: \"text-sm\" for compact content, \"text-base\" for standard, \"text-lg\" for emphasis\n- rounding: \"rounded-none\" for sharp/corporate, \"rounded-md\" for standard, \"rounded-lg\" for friendly, \"rounded-xl\"/\"rounded-2xl\"/\"rounded-3xl\" for modern\n- gap: \"1px\" for minimal separation, \"0.5rem\" for comfortable, \"1rem\" for spacious layouts\n- restrictOneOpen: true for FAQs/single focus, false for reference materials/feature lists\n\nCONTENT ORGANIZATION:\n- Use clear, descriptive titles that preview the content\n- Keep expandable content concise but comprehensive\n- Support HTML formatting in content (lists, links, line breaks)\n- Set defaultOpen: true for most important/frequently accessed items\n\nDYNAMIC CONTENT:\n- Support template variables in titles: \"{{category.name}} - {{category.count}} items\"\n- Dynamic content: \"Learn about {{product.features}} and {{product.benefits}}\"\n- Loop over data: Display product categories, team departments, or service areas\n\nAVOID:\n- Too many items (>10) without organization\n- Very long titles that don't fit on mobile\n- Empty or placeholder content in collapsed sections\n- Mixing different content types in the same accordion`,\n icon: TfiLayoutAccordionSeparated,\n\n defaultWidth: { desktop: \"450px\", mobile: \"100%\" },\n\n props: defineProps({\n items: Type.Array(\n Type.Object({\n title: textContent({\n title: \"Title\",\n default: \"My title\",\n disableSizing: true,\n showInSettings: true,\n }),\n content: textContent({ title: \"Content\", default: \"Expandable content goes here\" }),\n defaultOpen: Type.Optional(boolean(\"Open by default\", false)),\n }),\n {\n title: \"Accordion items\",\n metadata: {\n category: \"content\",\n },\n },\n ),\n fontSize: Type.Optional(fontSize({ default: \"inherit\" })),\n restrictOneOpen: boolean(\"Restrict to one open item\", false, {\n description:\n \"Restrict to one open item at a time. If false, multiple items can be open simultaneously.\",\n }),\n gap: Type.Optional(\n cssLength({\n title: \"Gap\",\n description: \"The gap between the accordion items.\",\n default: \"1px\",\n \"ui:styleId\": \"styles:gap\",\n }),\n ),\n rounding: 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-3xl\",\n ],\n {\n title: \"Corner rounding\",\n enumNames: [\"Auto\", \"None\", \"Small\", \"Medium\", \"Large\", \"Extra large\", \"2xl\", \"3xl\"],\n \"ui:placeholder\": \"Not specified\",\n \"ui:field\": \"enum\",\n \"ui:display\": \"select\",\n \"ui:styleId\": \"styles:rounding\",\n default: \"rounded-auto\",\n },\n ),\n ),\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color\",\n default: { color: \"bg-primary-500 text-primary-500-content\" },\n }),\n ),\n loop: Type.Optional(loop()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n // FAQ SECTIONS\n {\n description: \"FAQ section with single open restriction - Classic use case for customer support\",\n type: \"accordion\",\n props: {\n restrictOneOpen: true,\n colorPreset: { color: \"primary-500\" },\n rounding: \"rounded-md\",\n gap: \"0.5rem\",\n items: [\n {\n title: \"What is included in the basic plan?\",\n content:\n \"The basic plan includes access to all core features, up to 10 projects, 5GB storage, email support, and basic analytics. You can upgrade at any time to access advanced features like API access, priority support, and unlimited projects.\",\n defaultOpen: true,\n },\n {\n title: \"How do I cancel my subscription?\",\n content:\n \"You can cancel your subscription at any time from your account settings. Go to Billing > Manage Subscription > Cancel. Your access will continue until the end of your current billing period, and you won't be charged for the next cycle.\",\n },\n {\n title: \"Is there a free trial available?\",\n content:\n \"Yes! We offer a 14-day free trial with full access to all premium features. No credit card required to start. You can upgrade to a paid plan anytime during or after the trial period.\",\n },\n {\n title: \"What payment methods do you accept?\",\n content:\n \"We accept all major credit cards (Visa, MasterCard, American Express), PayPal, and bank transfers for annual subscriptions. All payments are processed securely through our payment partners.\",\n },\n ],\n },\n },\n\n // PRODUCT FEATURES\n {\n description: \"Product features with multiple open panels - Good for showcasing software capabilities\",\n type: \"accordion\",\n props: {\n restrictOneOpen: false,\n colorPreset: { color: \"secondary-400\" },\n rounding: \"rounded-lg\",\n gap: \"0.5rem\",\n fontSize: \"text-base\",\n items: [\n {\n title: \"Advanced Analytics Dashboard\",\n content:\n \"Get detailed insights into your business performance with real-time analytics, custom reports, and data visualization tools. Track key metrics, monitor trends, and make data-driven decisions.\",\n defaultOpen: true,\n },\n {\n title: \"Team Collaboration Tools\",\n content:\n \"Work seamlessly with your team using built-in collaboration features including shared workspaces, real-time editing, comments, and task management. Perfect for remote and hybrid teams.\",\n defaultOpen: true,\n },\n {\n title: \"API Integration & Automation\",\n content:\n \"Connect with over 1000+ popular tools and services through our robust API. Set up automated workflows, sync data across platforms, and streamline your business processes.\",\n },\n {\n title: \"Enterprise Security\",\n content:\n \"Bank-level security with end-to-end encryption, SSO integration, two-factor authentication, and compliance with SOC 2, GDPR, and HIPAA standards.\",\n },\n ],\n },\n },\n\n // DOCUMENTATION & GUIDES\n {\n description: \"Documentation sections with neutral colors - Perfect for help centers and knowledge bases\",\n type: \"accordion\",\n props: {\n restrictOneOpen: false,\n colorPreset: { color: \"neutral-200\" },\n fontSize: \"text-lg\",\n rounding: \"rounded-md\",\n gap: \"2px\",\n items: [\n {\n title: \"Getting Started\",\n content:\n \"Learn the basics of our platform with step-by-step tutorials, setup guides, and quick start examples. Perfect for new users who want to get up and running quickly.\",\n },\n {\n title: \"API Reference\",\n content:\n \"Complete API documentation with endpoints, parameters, response examples, and SDKs for popular programming languages including JavaScript, Python, PHP, and Ruby.\",\n },\n {\n title: \"Advanced Configuration\",\n content:\n \"Deep dive into advanced features, custom configurations, webhooks, and enterprise-level integrations. Includes code samples and best practices.\",\n },\n ],\n },\n },\n\n // MENU & CATALOG SECTIONS\n {\n description:\n \"Restaurant menu sections with accent colors - Great for organizing menu items or service categories\",\n type: \"accordion\",\n props: {\n restrictOneOpen: true,\n colorPreset: { color: \"accent-500\" },\n rounding: \"rounded-xl\",\n gap: \"1rem\",\n items: [\n {\n title: \"Appetizers & Starters\",\n content:\n \"Bruschetta with Fresh Tomatoes - $8.99<br/>Calamari Rings with Marinara - $12.99<br/>Spinach & Artichoke Dip - $10.99<br/>Buffalo Wings (6 pieces) - $9.99\",\n defaultOpen: true,\n },\n {\n title: \"Main Courses\",\n content:\n \"Grilled Salmon with Herbs - $18.99<br/>Chicken Parmesan with Pasta - $16.99<br/>Ribeye Steak (12oz) - $24.99<br/>Vegetarian Lasagna - $14.99\",\n },\n {\n title: \"Desserts\",\n content:\n \"Tiramisu - $7.99<br/>Chocolate Lava Cake - $8.99<br/>New York Cheesecake - $6.99<br/>Gelato (3 scoops) - $5.99\",\n },\n ],\n },\n },\n\n // COURSE & EDUCATIONAL CONTENT\n {\n description:\n \"Course curriculum with primary colors - Excellent for educational content and training programs\",\n type: \"accordion\",\n props: {\n restrictOneOpen: false,\n colorPreset: { color: \"primary-600\" },\n rounding: \"rounded-sm\",\n gap: \"1px\",\n fontSize: \"text-base\",\n items: [\n {\n title: \"Week 1: Introduction to Web Development\",\n content:\n \"Learn the fundamentals of HTML, CSS, and basic JavaScript. Set up your development environment and create your first web page. Includes hands-on exercises and project templates.\",\n },\n {\n title: \"Week 2: Responsive Design & CSS Framework\",\n content:\n \"Master responsive web design principles, CSS Grid, Flexbox, and popular frameworks like Bootstrap and Tailwind CSS. Build mobile-first designs that work on all devices.\",\n },\n {\n title: \"Week 3: JavaScript Fundamentals\",\n content:\n \"Deep dive into JavaScript programming including variables, functions, objects, arrays, DOM manipulation, and event handling. Build interactive web applications.\",\n },\n {\n title: \"Week 4: Modern JavaScript & APIs\",\n content:\n \"Learn ES6+ features, async/await, fetch API, and how to work with external APIs. Create dynamic applications that interact with real-world data sources.\",\n },\n ],\n },\n },\n\n // SUPPORT & HELP SECTIONS\n {\n description: \"Support categories with sharp corners - Modern corporate style for help centers\",\n type: \"accordion\",\n props: {\n restrictOneOpen: false,\n colorPreset: { color: \"primary-300\" },\n rounding: \"rounded-none\",\n gap: \"0px\",\n fontSize: \"text-base\",\n items: [\n {\n title: \"Account & Billing\",\n content:\n \"Get help with account settings, password reset, billing questions, subscription management, and payment issues. Average response time: 2 hours during business hours.\",\n },\n {\n title: \"Technical Support\",\n content:\n \"Troubleshoot technical issues, API problems, integration questions, and performance concerns. Includes access to our knowledge base and video tutorials.\",\n },\n {\n title: \"Sales & Partnerships\",\n content:\n \"Inquiries about enterprise solutions, custom pricing, partnership opportunities, and bulk discounts. Schedule a call with our sales team for personalized assistance.\",\n },\n {\n title: \"Feature Requests\",\n content:\n \"Submit ideas for new features, improvements, and integrations. Our product team reviews all suggestions and provides updates on development roadmap.\",\n },\n ],\n },\n },\n\n // PRICING & COMPARISON\n {\n description: \"Product pricing comparison with multiple defaults open - Perfect for plan comparisons\",\n type: \"accordion\",\n props: {\n restrictOneOpen: false,\n colorPreset: { color: \"secondary-500\" },\n rounding: \"rounded-lg\",\n gap: \"0.5rem\",\n fontSize: \"text-base\",\n items: [\n {\n title: \"Basic Plan - $9/month\",\n content:\n \"✓ Up to 5 projects<br/>✓ 10GB storage<br/>✓ Email support<br/>✓ Basic analytics<br/>✓ Mobile app access<br/>✗ API access<br/>✗ Custom integrations\",\n defaultOpen: true,\n },\n {\n title: \"Pro Plan - $29/month\",\n content:\n \"✓ Unlimited projects<br/>✓ 100GB storage<br/>✓ Priority support<br/>✓ Advanced analytics<br/>✓ API access<br/>✓ Custom integrations<br/>✓ Team collaboration\",\n defaultOpen: true,\n },\n {\n title: \"Enterprise Plan - Custom pricing\",\n content:\n \"✓ Everything in Pro<br/>✓ Unlimited storage<br/>✓ Dedicated support<br/>✓ White-label options<br/>✓ SSO integration<br/>✓ Custom contracts<br/>✓ On-premise deployment\",\n },\n ],\n },\n },\n\n // DYNAMIC CONTENT EXAMPLES\n {\n description: \"Dynamic team member accordion using template variables - Shows data-driven content\",\n type: \"accordion\",\n props: {\n restrictOneOpen: true,\n colorPreset: { color: \"accent-400\" },\n rounding: \"rounded-lg\",\n gap: \"0.5rem\",\n items: [\n {\n title: \"Meet {{team.leader.name}} - {{team.leader.role}}\",\n content:\n \"{{team.leader.bio}} <br/><br/>Experience: {{team.leader.experience}} years<br/>Email: {{team.leader.email}}<br/>Location: {{team.leader.location}}\",\n defaultOpen: true,\n },\n {\n title: \"{{team.designer.name}} - {{team.designer.role}}\",\n content:\n \"{{team.designer.bio}} <br/><br/>Specializes in: {{team.designer.specialties}}<br/>Portfolio: <a href='{{team.designer.portfolio}}'>View Work</a>\",\n },\n {\n title: \"{{team.developer.name}} - {{team.developer.role}}\",\n content:\n \"{{team.developer.bio}} <br/><br/>Technologies: {{team.developer.skills}}<br/>GitHub: <a href='{{team.developer.github}}'>@{{team.developer.username}}</a>\",\n },\n ],\n },\n },\n\n // SPECIAL STYLING VARIATIONS\n {\n description: \"Legal documents with dark theme and large gaps - Professional legal content presentation\",\n type: \"accordion\",\n props: {\n restrictOneOpen: true,\n colorPreset: { color: \"neutral-800\" },\n rounding: \"rounded-lg\",\n gap: \"1.5rem\",\n fontSize: \"text-sm\",\n items: [\n {\n title: \"Terms of Service\",\n content:\n \"By accessing and using this website, you accept and agree to be bound by the terms and provision of this agreement. These terms apply to all visitors, users, and others who access or use the service.\",\n },\n {\n title: \"Privacy Policy\",\n content:\n \"We collect information you provide directly to us, such as when you create an account, make a purchase, or contact us. We use this information to provide, maintain, and improve our services.\",\n },\n {\n title: \"Cookie Policy\",\n content:\n \"We use cookies and similar tracking technologies to track activity on our service and hold certain information. You can instruct your browser to refuse all cookies or indicate when a cookie is being sent.\",\n },\n ],\n },\n },\n\n {\n description: \"Ultra-rounded modern design with 3xl rounding - Contemporary aesthetic for creative brands\",\n type: \"accordion\",\n props: {\n restrictOneOpen: true,\n colorPreset: { color: \"accent-300\" },\n rounding: \"rounded-3xl\",\n gap: \"1.5rem\",\n fontSize: \"text-lg\",\n items: [\n {\n title: \"Design Philosophy\",\n content:\n \"We believe in creating digital experiences that are both beautiful and functional. Our approach combines user-centered design with cutting-edge technology to deliver exceptional results.\",\n },\n {\n title: \"Our Process\",\n content:\n \"Discovery → Strategy → Design → Development → Testing → Launch. Each phase includes client collaboration, iterative feedback, and quality assurance to ensure optimal outcomes.\",\n },\n {\n title: \"Why Choose Us\",\n content:\n \"15+ years experience, 200+ successful projects, award-winning designs, and a commitment to excellence. We're not just service providers - we're strategic partners in your success.\",\n },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// src/shared/utils/llm.ts
|
|
5
|
+
import { Kind } from "@sinclair/typebox";
|
|
6
|
+
function toLLMSchema(schema) {
|
|
7
|
+
return cleanSchemaRecursive(schema);
|
|
8
|
+
}
|
|
9
|
+
function cleanSchemaRecursive(schema) {
|
|
10
|
+
const cleaned = {
|
|
11
|
+
[Kind]: schema[Kind]
|
|
12
|
+
};
|
|
13
|
+
for (const [key, value] of Object.entries(schema)) {
|
|
14
|
+
if (key === "metadata" || key.startsWith("ui:")) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (value && typeof value === "object") {
|
|
18
|
+
if (Array.isArray(value)) {
|
|
19
|
+
cleaned[key] = value.map((item) => {
|
|
20
|
+
if (item && typeof item === "object" && isSchemaLike(item)) {
|
|
21
|
+
return cleanSchemaRecursive(item);
|
|
22
|
+
}
|
|
23
|
+
return item;
|
|
24
|
+
});
|
|
25
|
+
} else if (isSchemaLike(value)) {
|
|
26
|
+
cleaned[key] = cleanSchemaRecursive(value);
|
|
27
|
+
} else if (key === "properties" || key === "definitions" || key === "$defs" || key === "patternProperties") {
|
|
28
|
+
const cleanedProps = {};
|
|
29
|
+
for (const [propKey, propValue] of Object.entries(value)) {
|
|
30
|
+
if (propValue && typeof propValue === "object") {
|
|
31
|
+
const propSchema = propValue;
|
|
32
|
+
if (propSchema["ai:hidden"] === true) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
cleanedProps[propKey] = cleanSchemaRecursive(propValue);
|
|
36
|
+
} else {
|
|
37
|
+
cleanedProps[propKey] = propValue;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
cleaned[key] = cleanedProps;
|
|
41
|
+
} else {
|
|
42
|
+
cleaned[key] = value;
|
|
43
|
+
}
|
|
44
|
+
} else {
|
|
45
|
+
cleaned[key] = value;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return cleaned;
|
|
49
|
+
}
|
|
50
|
+
function isSchemaLike(obj) {
|
|
51
|
+
if (!obj || typeof obj !== "object") {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const schemaKeys = [
|
|
55
|
+
"type",
|
|
56
|
+
"$ref",
|
|
57
|
+
"properties",
|
|
58
|
+
"items",
|
|
59
|
+
"anyOf",
|
|
60
|
+
"oneOf",
|
|
61
|
+
"allOf",
|
|
62
|
+
"not",
|
|
63
|
+
"if",
|
|
64
|
+
"then",
|
|
65
|
+
"else"
|
|
66
|
+
];
|
|
67
|
+
return schemaKeys.some((key) => key in obj);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
toLLMSchema
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=chunk-MO6CRLQA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/utils/llm.ts"],"sourcesContent":["import { Kind, type TObject, type TSchema } from \"@sinclair/typebox\";\n\n/**\n * Clean all properties from custom metadata recursively. Custom metadata are key that:\n * - Either with the name \"metadata\"\n * - Or starting with \"ui:\"\n * Also removes properties that have \"ai:hidden\" set to true\n */\nexport function toLLMSchema<T extends TSchema = TObject>(schema: T): T {\n return cleanSchemaRecursive(schema) as T;\n}\n\n/**\n * Recursively removes custom metadata from schema and filters out properties with ai:hidden = true\n */\nfunction cleanSchemaRecursive(schema: TSchema): TSchema {\n // Create a new object without custom metadata properties\n const cleaned: Record<string, unknown> = {\n [Kind]: schema[Kind],\n };\n\n for (const [key, value] of Object.entries(schema)) {\n // Skip metadata properties and ui: properties\n if (key === \"metadata\" || key.startsWith(\"ui:\")) {\n continue;\n }\n\n // Handle nested objects and arrays\n if (value && typeof value === \"object\") {\n if (Array.isArray(value)) {\n // Handle arrays - clean each item if it's a schema\n cleaned[key] = value.map((item) => {\n if (item && typeof item === \"object\" && isSchemaLike(item)) {\n return cleanSchemaRecursive(item as TSchema);\n }\n return item;\n });\n } else if (isSchemaLike(value)) {\n // Handle nested schemas\n cleaned[key] = cleanSchemaRecursive(value as TSchema);\n } else if (\n key === \"properties\" ||\n key === \"definitions\" ||\n key === \"$defs\" ||\n key === \"patternProperties\"\n ) {\n // Handle schema property collections - filter out properties with ai:hidden = true\n const cleanedProps: Record<string, TSchema> = {};\n for (const [propKey, propValue] of Object.entries(value)) {\n if (propValue && typeof propValue === \"object\") {\n // Check if this property should be hidden from AI\n const propSchema = propValue as Record<string, unknown>;\n if (propSchema[\"ai:hidden\"] === true) {\n continue; // Skip this property\n }\n cleanedProps[propKey] = cleanSchemaRecursive(propValue as TSchema);\n } else {\n cleanedProps[propKey] = propValue as TSchema;\n }\n }\n cleaned[key] = cleanedProps;\n } else {\n // For other objects, recursively clean if they look like schemas\n cleaned[key] = value;\n }\n } else {\n // Keep primitive values as-is\n cleaned[key] = value;\n }\n }\n\n return cleaned as TSchema;\n}\n\n/**\n * Helper function to determine if an object looks like a schema\n */\nfunction isSchemaLike(obj: unknown): boolean {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n\n const schemaKeys = [\n \"type\",\n \"$ref\",\n \"properties\",\n \"items\",\n \"anyOf\",\n \"oneOf\",\n \"allOf\",\n \"not\",\n \"if\",\n \"then\",\n \"else\",\n ];\n return schemaKeys.some((key) => key in obj);\n}\n"],"mappings":";;;;AAAA,SAAS,YAAwC;AAQ1C,SAAS,YAAyC,QAAc;AACrE,SAAO,qBAAqB,MAAM;AACpC;AAKA,SAAS,qBAAqB,QAA0B;AAEtD,QAAM,UAAmC;AAAA,IACvC,CAAC,IAAI,GAAG,OAAO,IAAI;AAAA,EACrB;AAEA,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AAEjD,QAAI,QAAQ,cAAc,IAAI,WAAW,KAAK,GAAG;AAC/C;AAAA,IACF;AAGA,QAAI,SAAS,OAAO,UAAU,UAAU;AACtC,UAAI,MAAM,QAAQ,KAAK,GAAG;AAExB,gBAAQ,GAAG,IAAI,MAAM,IAAI,CAAC,SAAS;AACjC,cAAI,QAAQ,OAAO,SAAS,YAAY,aAAa,IAAI,GAAG;AAC1D,mBAAO,qBAAqB,IAAe;AAAA,UAC7C;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH,WAAW,aAAa,KAAK,GAAG;AAE9B,gBAAQ,GAAG,IAAI,qBAAqB,KAAgB;AAAA,MACtD,WACE,QAAQ,gBACR,QAAQ,iBACR,QAAQ,WACR,QAAQ,qBACR;AAEA,cAAM,eAAwC,CAAC;AAC/C,mBAAW,CAAC,SAAS,SAAS,KAAK,OAAO,QAAQ,KAAK,GAAG;AACxD,cAAI,aAAa,OAAO,cAAc,UAAU;AAE9C,kBAAM,aAAa;AACnB,gBAAI,WAAW,WAAW,MAAM,MAAM;AACpC;AAAA,YACF;AACA,yBAAa,OAAO,IAAI,qBAAqB,SAAoB;AAAA,UACnE,OAAO;AACL,yBAAa,OAAO,IAAI;AAAA,UAC1B;AAAA,QACF;AACA,gBAAQ,GAAG,IAAI;AAAA,MACjB,OAAO;AAEL,gBAAQ,GAAG,IAAI;AAAA,MACjB;AAAA,IACF,OAAO;AAEL,cAAQ,GAAG,IAAI;AAAA,IACjB;AAAA,EACF;AAEA,SAAO;AACT;AAKA,SAAS,aAAa,KAAuB;AAC3C,MAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,WAAO;AAAA,EACT;AAEA,QAAM,aAAa;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,WAAW,KAAK,CAAC,QAAQ,OAAO,GAAG;AAC5C;","names":[]}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
4
|
+
direction
|
|
5
|
+
} from "./chunk-WPZV3LYL.js";
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
border,
|
|
8
|
+
rounding
|
|
9
|
+
} from "./chunk-SRYBJ6NQ.js";
|
|
9
10
|
import {
|
|
10
|
-
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
defineProps
|
|
12
|
+
} from "./chunk-VTCHJT4O.js";
|
|
12
13
|
import {
|
|
13
|
-
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
fontSize
|
|
15
|
+
} from "./chunk-2U5U3CCJ.js";
|
|
15
16
|
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} from "./chunk-N3ZTQD5I.js";
|
|
17
|
+
icon
|
|
18
|
+
} from "./chunk-SQXZNGQF.js";
|
|
19
19
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
} from "./chunk-NTLAKMMQ.js";
|
|
20
|
+
cssLength
|
|
21
|
+
} from "./chunk-OJ6KL7FU.js";
|
|
23
22
|
import {
|
|
24
|
-
|
|
25
|
-
} from "./chunk-
|
|
23
|
+
colorPreset
|
|
24
|
+
} from "./chunk-IEMCCHM4.js";
|
|
26
25
|
import {
|
|
27
|
-
|
|
28
|
-
} from "./chunk-
|
|
26
|
+
defineBrickManifest
|
|
27
|
+
} from "./chunk-J45LSQT6.js";
|
|
29
28
|
|
|
30
29
|
// src/shared/bricks/manifests/social-links.manifest.ts
|
|
31
30
|
import { Type } from "@sinclair/typebox";
|
|
@@ -40,19 +39,19 @@ var manifest = defineBrickManifest({
|
|
|
40
39
|
},
|
|
41
40
|
props: defineProps({
|
|
42
41
|
colorPreset: Type.Optional(
|
|
43
|
-
|
|
42
|
+
colorPreset({
|
|
44
43
|
title: "Color"
|
|
45
44
|
})
|
|
46
45
|
),
|
|
47
46
|
links: Type.Array(
|
|
48
47
|
Type.Object({
|
|
49
48
|
icon: Type.Optional(
|
|
50
|
-
|
|
49
|
+
icon({
|
|
51
50
|
"ui:default-icon-collection": "cib"
|
|
52
51
|
})
|
|
53
52
|
),
|
|
54
|
-
label: Type.Optional(
|
|
55
|
-
href:
|
|
53
|
+
label: Type.Optional(Type.String({ title: "Label" })),
|
|
54
|
+
href: Type.String({ title: "Link" })
|
|
56
55
|
}),
|
|
57
56
|
{
|
|
58
57
|
title: "Social Links",
|
|
@@ -90,13 +89,13 @@ var manifest = defineBrickManifest({
|
|
|
90
89
|
}
|
|
91
90
|
),
|
|
92
91
|
direction: Type.Optional(
|
|
93
|
-
|
|
92
|
+
direction({
|
|
94
93
|
default: "flex-row"
|
|
95
94
|
})
|
|
96
95
|
),
|
|
97
|
-
fontSize: Type.Optional(
|
|
96
|
+
fontSize: Type.Optional(fontSize()),
|
|
98
97
|
padding: Type.Optional(
|
|
99
|
-
|
|
98
|
+
cssLength({
|
|
100
99
|
default: "2rem",
|
|
101
100
|
description: "Padding.",
|
|
102
101
|
"ai:instructions": "Use only a single value like '1rem' or '10px'",
|
|
@@ -106,12 +105,10 @@ var manifest = defineBrickManifest({
|
|
|
106
105
|
"ui:styleId": "styles:padding"
|
|
107
106
|
})
|
|
108
107
|
),
|
|
109
|
-
rounding:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
),
|
|
114
|
-
border: Type.Optional(borderRef()),
|
|
108
|
+
rounding: rounding({
|
|
109
|
+
default: "rounded-md"
|
|
110
|
+
}),
|
|
111
|
+
border: Type.Optional(border()),
|
|
115
112
|
iconOnly: Type.Optional(
|
|
116
113
|
Type.Boolean({
|
|
117
114
|
title: "Only icons",
|
|
@@ -516,4 +513,4 @@ export {
|
|
|
516
513
|
manifest,
|
|
517
514
|
examples
|
|
518
515
|
};
|
|
519
|
-
//# sourceMappingURL=chunk-
|
|
516
|
+
//# sourceMappingURL=chunk-MYOLWTB2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/social-links.manifest.ts"],"sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TiSocialFlickr } from \"react-icons/ti\";\nimport { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { icon } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { fontSize } from \"../props/text\";\nimport { direction } from \"../props/direction\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { border, rounding } from \"../props/border\";\nimport { cssLength } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"social-links\",\n name: \"Social links\",\n description: \"A list of social media links\",\n icon: TiSocialFlickr,\n defaultWidth: {\n mobile: \"100%\",\n },\n props: defineProps({\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color\",\n }),\n ),\n links: Type.Array(\n Type.Object({\n icon: Type.Optional(\n icon({\n \"ui:default-icon-collection\": \"cib\",\n }),\n ),\n label: Type.Optional(Type.String({ title: \"Label\" })),\n href: Type.String({ title: \"Link\" }),\n }),\n {\n title: \"Social Links\",\n description: \"List of social media links\",\n default: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n \"ui:widget\": \"array\",\n \"ui:displayField\": \"label\",\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 },\n },\n ),\n direction: Type.Optional(\n direction({\n default: \"flex-row\",\n }),\n ),\n fontSize: Type.Optional(fontSize()),\n padding: Type.Optional(\n cssLength({\n default: \"2rem\",\n description: \"Padding.\",\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: rounding({\n default: \"rounded-md\",\n }),\n border: Type.Optional(border()),\n iconOnly: Type.Optional(\n Type.Boolean({\n title: \"Only icons\",\n description: \"If set, the brick will only display the icons without labels.\",\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Social icons displayed horizontally, without labels\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed vertically, without labels\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed horizontally, with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n ],\n },\n },\n {\n description: \"Social icons displayed vertically, with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/company\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://instagram.com/company\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n ],\n },\n },\n {\n description: \"Professional social links with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://linkedin.com/in/johndoe\",\n label: \"Connect on LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n {\n href: \"https://github.com/johndoe\",\n label: \"View GitHub Profile\",\n icon: \"mdi:github\",\n },\n {\n href: \"https://twitter.com/johndoe\",\n label: \"Follow on Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"mailto:john@example.com\",\n label: \"Send Email\",\n icon: \"mdi:email\",\n },\n ],\n },\n },\n {\n description: \"Creative portfolio social links (icon-only inline)\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"https://dribbble.com/designer\",\n label: \"Dribbble\",\n icon: \"mdi:dribbble\",\n },\n {\n href: \"https://behance.net/designer\",\n label: \"Behance\",\n icon: \"mdi:behance\",\n },\n {\n href: \"https://instagram.com/designer\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://pinterest.com/designer\",\n label: \"Pinterest\",\n icon: \"mdi:pinterest\",\n },\n {\n href: \"https://youtube.com/designer\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n ],\n },\n },\n {\n description: \"Developer/tech social links with labels\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://github.com/developer\",\n label: \"GitHub\",\n icon: \"mdi:github\",\n },\n {\n href: \"https://stackoverflow.com/users/developer\",\n label: \"Stack Overflow\",\n icon: \"mdi:stack-overflow\",\n },\n {\n href: \"https://dev.to/developer\",\n label: \"Dev.to\",\n icon: \"mdi:dev-to\",\n },\n {\n href: \"https://codepen.io/developer\",\n label: \"CodePen\",\n icon: \"mdi:codepen\",\n },\n ],\n },\n },\n {\n description: \"Music artist social platforms (block layout)\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://spotify.com/artist/musician\",\n label: \"Listen on Spotify\",\n icon: \"mdi:spotify\",\n },\n {\n href: \"https://music.apple.com/artist/musician\",\n label: \"Apple Music\",\n icon: \"mdi:apple\",\n },\n {\n href: \"https://soundcloud.com/musician\",\n label: \"SoundCloud\",\n icon: \"mdi:soundcloud\",\n },\n {\n href: \"https://youtube.com/musician\",\n label: \"YouTube Channel\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://bandcamp.com/musician\",\n label: \"Bandcamp\",\n icon: \"mdi:bandcamp\",\n },\n ],\n },\n },\n {\n description: \"Business contact icons only\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n links: [\n {\n href: \"tel:+1234567890\",\n label: \"Phone\",\n icon: \"mdi:phone\",\n },\n {\n href: \"mailto:contact@business.com\",\n label: \"Email\",\n icon: \"mdi:email\",\n },\n {\n href: \"https://maps.google.com/business\",\n label: \"Location\",\n icon: \"mdi:map-marker\",\n },\n {\n href: \"https://business.com\",\n label: \"Website\",\n icon: \"mdi:web\",\n },\n ],\n },\n },\n {\n description: \"Gaming content creator links (inline with labels)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n links: [\n {\n href: \"https://twitch.tv/gamer\",\n label: \"Twitch\",\n icon: \"mdi:twitch\",\n },\n {\n href: \"https://youtube.com/gamer\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://discord.gg/gamer\",\n label: \"Discord\",\n icon: \"mdi:discord\",\n },\n {\n href: \"https://tiktok.com/@gamer\",\n label: \"TikTok\",\n icon: \"mdi:tiktok\",\n },\n ],\n },\n },\n {\n description: \"Restaurant social presence (block layout)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-col\",\n links: [\n {\n href: \"https://facebook.com/restaurant\",\n label: \"Follow us on Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://instagram.com/restaurant\",\n label: \"See photos on Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://yelp.com/restaurant\",\n label: \"Review us on Yelp\",\n icon: \"mdi:yelp\",\n },\n {\n href: \"https://tripadvisor.com/restaurant\",\n label: \"TripAdvisor Reviews\",\n icon: \"mdi:tripadvisor\",\n },\n {\n href: \"tel:+1234567890\",\n label: \"Call for Reservations\",\n icon: \"mdi:phone\",\n },\n ],\n },\n },\n {\n description: \"Minimal footer social icons\",\n type: \"social-links\",\n props: {\n iconOnly: true,\n direction: \"flex-row\",\n links: [\n {\n href: \"https://twitter.com/company\",\n label: \"Twitter\",\n icon: \"mdi:twitter\",\n },\n {\n href: \"https://linkedin.com/company/company\",\n label: \"LinkedIn\",\n icon: \"mdi:linkedin\",\n },\n {\n href: \"mailto:hello@company.com\",\n label: \"Email\",\n icon: \"mdi:email\",\n },\n ],\n },\n },\n {\n description: \"E-commerce store social channels (inline with labels)\",\n type: \"social-links\",\n props: {\n iconOnly: false,\n direction: \"flex-row\",\n links: [\n {\n href: \"https://facebook.com/store\",\n label: \"Facebook\",\n icon: \"mdi:facebook\",\n },\n {\n href: \"https://instagram.com/store\",\n label: \"Instagram\",\n icon: \"mdi:instagram\",\n },\n {\n href: \"https://pinterest.com/store\",\n label: \"Pinterest\",\n icon: \"mdi:pinterest\",\n },\n {\n href: \"https://youtube.com/store\",\n label: \"YouTube\",\n icon: \"mdi:youtube\",\n },\n {\n href: \"https://tiktok.com/@store\",\n label: \"TikTok\",\n icon: \"mdi:tiktok\",\n },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1,36 +1,35 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
4
|
+
border
|
|
5
|
+
} from "./chunk-SRYBJ6NQ.js";
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
} from "./chunk-
|
|
7
|
+
defineProps
|
|
8
|
+
} from "./chunk-VTCHJT4O.js";
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
} from "./chunk-
|
|
10
|
+
fontSize
|
|
11
|
+
} from "./chunk-2U5U3CCJ.js";
|
|
12
12
|
import {
|
|
13
|
-
|
|
14
|
-
} from "./chunk-
|
|
13
|
+
image
|
|
14
|
+
} from "./chunk-DRQKKPTX.js";
|
|
15
15
|
import {
|
|
16
|
-
|
|
17
|
-
} from "./chunk-
|
|
16
|
+
icon
|
|
17
|
+
} from "./chunk-SQXZNGQF.js";
|
|
18
18
|
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
} from "./chunk-N3ZTQD5I.js";
|
|
19
|
+
cssLength
|
|
20
|
+
} from "./chunk-OJ6KL7FU.js";
|
|
22
21
|
import {
|
|
23
|
-
|
|
24
|
-
} from "./chunk-
|
|
22
|
+
loop
|
|
23
|
+
} from "./chunk-XFZQGRRL.js";
|
|
25
24
|
import {
|
|
26
|
-
|
|
27
|
-
} from "./chunk-
|
|
25
|
+
shadow
|
|
26
|
+
} from "./chunk-5RCC2STG.js";
|
|
28
27
|
import {
|
|
29
|
-
|
|
30
|
-
} from "./chunk-
|
|
28
|
+
colorPreset
|
|
29
|
+
} from "./chunk-IEMCCHM4.js";
|
|
31
30
|
import {
|
|
32
|
-
|
|
33
|
-
} from "./chunk-
|
|
31
|
+
defineBrickManifest
|
|
32
|
+
} from "./chunk-J45LSQT6.js";
|
|
34
33
|
|
|
35
34
|
// src/shared/bricks/manifests/testimonials.manifest.ts
|
|
36
35
|
import { Type } from "@sinclair/typebox";
|
|
@@ -48,13 +47,13 @@ Optionally either use an avatar or a social icon but not both at the same time.`
|
|
|
48
47
|
props: defineProps(
|
|
49
48
|
{
|
|
50
49
|
colorPreset: Type.Optional(
|
|
51
|
-
|
|
50
|
+
colorPreset({
|
|
52
51
|
title: "Color",
|
|
53
52
|
default: "base-100"
|
|
54
53
|
})
|
|
55
54
|
),
|
|
56
55
|
border: Type.Optional(
|
|
57
|
-
|
|
56
|
+
border({
|
|
58
57
|
title: "Border",
|
|
59
58
|
description: "Customize the border of the testimonial cards.",
|
|
60
59
|
default: {
|
|
@@ -64,12 +63,12 @@ Optionally either use an avatar or a social icon but not both at the same time.`
|
|
|
64
63
|
})
|
|
65
64
|
),
|
|
66
65
|
fontSize: Type.Optional(
|
|
67
|
-
|
|
66
|
+
fontSize({
|
|
68
67
|
"ui:no-extra-large-sizes": true
|
|
69
68
|
})
|
|
70
69
|
),
|
|
71
70
|
padding: Type.Optional(
|
|
72
|
-
|
|
71
|
+
cssLength({
|
|
73
72
|
default: "1rem",
|
|
74
73
|
description: "Padding inside the main container.",
|
|
75
74
|
"ai:instructions": "Use only a single value like '1rem' or '10px'",
|
|
@@ -80,7 +79,7 @@ Optionally either use an avatar or a social icon but not both at the same time.`
|
|
|
80
79
|
})
|
|
81
80
|
),
|
|
82
81
|
gap: Type.Optional(
|
|
83
|
-
|
|
82
|
+
cssLength({
|
|
84
83
|
title: "Gap",
|
|
85
84
|
default: "26px",
|
|
86
85
|
description: "Space between bricks.",
|
|
@@ -89,9 +88,9 @@ Optionally either use an avatar or a social icon but not both at the same time.`
|
|
|
89
88
|
"ui:styleId": "styles:gap"
|
|
90
89
|
})
|
|
91
90
|
),
|
|
92
|
-
shadow: Type.Optional(
|
|
91
|
+
shadow: Type.Optional(shadow()),
|
|
93
92
|
loop: Type.Optional(
|
|
94
|
-
|
|
93
|
+
loop({
|
|
95
94
|
// title: "Use dynamic content",
|
|
96
95
|
description: "If enabled, each row from the query result will be used to create a testimonial. Otherwise, the testimonials will be static.",
|
|
97
96
|
"ui:placeholder": "Not specified (static)"
|
|
@@ -100,21 +99,22 @@ Optionally either use an avatar or a social icon but not both at the same time.`
|
|
|
100
99
|
testimonials: Type.Optional(
|
|
101
100
|
Type.Array(
|
|
102
101
|
Type.Object({
|
|
103
|
-
text:
|
|
102
|
+
text: Type.String({
|
|
103
|
+
title: "Text",
|
|
104
104
|
default: "Amazing product!",
|
|
105
105
|
"ui:multiline": true,
|
|
106
106
|
"ui:textarea-class": "h-20"
|
|
107
107
|
}),
|
|
108
|
-
author:
|
|
109
|
-
company: Type.Optional(
|
|
108
|
+
author: Type.String({ title: "Author", default: "John Doe" }),
|
|
109
|
+
company: Type.Optional(Type.String({ title: "Company" })),
|
|
110
110
|
avatar: Type.Optional(
|
|
111
|
-
|
|
111
|
+
image({
|
|
112
112
|
title: "Avatar",
|
|
113
113
|
"ui:placeholder": "https://via.placeholder.com/80x80.png?text=JD",
|
|
114
114
|
noObjectOptions: true
|
|
115
115
|
})
|
|
116
116
|
),
|
|
117
|
-
socialIcon: Type.Optional(
|
|
117
|
+
socialIcon: Type.Optional(icon())
|
|
118
118
|
}),
|
|
119
119
|
{
|
|
120
120
|
title: "Testimonials",
|
|
@@ -502,4 +502,4 @@ export {
|
|
|
502
502
|
manifest,
|
|
503
503
|
examples
|
|
504
504
|
};
|
|
505
|
-
//# sourceMappingURL=chunk-
|
|
505
|
+
//# sourceMappingURL=chunk-O24RDXZS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 { image } from \"../props/image\";\nimport { icon } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { fontSize } from \"../props/text\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { cssLength } from \"../props/css-length\";\nimport { loop } from \"../props/dynamic\";\nimport { border } from \"../props/border\";\nimport { shadow } 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 colorPreset({\n title: \"Color\",\n default: \"base-100\",\n }),\n ),\n border: Type.Optional(\n border({\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 fontSize({\n \"ui:no-extra-large-sizes\": true,\n }),\n ),\n padding: Type.Optional(\n cssLength({\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 cssLength({\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(shadow()),\n loop: Type.Optional(\n loop({\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: Type.String({\n title: \"Text\",\n default: \"Amazing product!\",\n \"ui:multiline\": true,\n \"ui:textarea-class\": \"h-20\",\n }),\n author: Type.String({ title: \"Author\", default: \"John Doe\" }),\n company: Type.Optional(Type.String({ title: \"Company\" })),\n avatar: Type.Optional(\n image({\n title: \"Avatar\",\n \"ui:placeholder\": \"https://via.placeholder.com/80x80.png?text=JD\",\n noObjectOptions: true,\n }),\n ),\n socialIcon: Type.Optional(icon()),\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":[]}
|