@upstart.gg/sdk 0.0.132 → 0.0.134
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.js +1 -0
- package/dist/shared/ai/schemas.js.map +1 -0
- package/dist/shared/ai/types.js +1 -0
- package/dist/shared/ai/types.js.map +1 -0
- package/dist/shared/ajv.js +2 -1
- package/dist/shared/ajv.js.map +1 -0
- package/dist/shared/analytics/init.js +1 -0
- package/dist/shared/analytics/init.js.map +1 -0
- package/dist/shared/analytics/track.js +1 -0
- package/dist/shared/analytics/track.js.map +1 -0
- package/dist/shared/analytics/types.js +1 -0
- package/dist/shared/analytics/types.js.map +1 -0
- package/dist/shared/attributes.js +2 -1
- package/dist/shared/attributes.js.map +1 -0
- package/dist/shared/brick-manifest.js +2 -1
- package/dist/shared/brick-manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/accordion.manifest.js +2 -1
- package/dist/shared/bricks/manifests/accordion.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/all-manifests.js +2 -1
- package/dist/shared/bricks/manifests/all-manifests.js.map +1 -0
- package/dist/shared/bricks/manifests/box.manifest.js +2 -1
- package/dist/shared/bricks/manifests/box.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/button.manifest.js +2 -1
- package/dist/shared/bricks/manifests/button.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/card.manifest.js +2 -1
- package/dist/shared/bricks/manifests/card.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/carousel.manifest.js +2 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/footer.manifest.js +2 -1
- package/dist/shared/bricks/manifests/footer.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/form.manifest.js +2 -1
- package/dist/shared/bricks/manifests/form.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/hero.manifest.js +2 -1
- package/dist/shared/bricks/manifests/hero.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/html.manifest.js +2 -1
- package/dist/shared/bricks/manifests/html.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/icon.manifest.js +2 -1
- package/dist/shared/bricks/manifests/icon.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/image.manifest.js +2 -1
- package/dist/shared/bricks/manifests/image.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +2 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/map.manifest.js +2 -1
- package/dist/shared/bricks/manifests/map.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/navbar.manifest.js +2 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/sidebar.manifest.js +2 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/social-links.manifest.js +2 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/spacer.manifest.js +2 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/testimonials.manifest.js +2 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/text.manifest.js +2 -1
- package/dist/shared/bricks/manifests/text.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/video.manifest.js +2 -1
- package/dist/shared/bricks/manifests/video.manifest.js.map +1 -0
- package/dist/shared/bricks/props/align.js +2 -1
- package/dist/shared/bricks/props/align.js.map +1 -0
- package/dist/shared/bricks/props/background.js +2 -1
- package/dist/shared/bricks/props/background.js.map +1 -0
- package/dist/shared/bricks/props/boolean.js +2 -1
- package/dist/shared/bricks/props/boolean.js.map +1 -0
- package/dist/shared/bricks/props/border.js +2 -1
- package/dist/shared/bricks/props/border.js.map +1 -0
- package/dist/shared/bricks/props/color-preset.js +2 -1
- package/dist/shared/bricks/props/color-preset.js.map +1 -0
- package/dist/shared/bricks/props/color.js +2 -1
- package/dist/shared/bricks/props/color.js.map +1 -0
- package/dist/shared/bricks/props/common.js +2 -1
- package/dist/shared/bricks/props/common.js.map +1 -0
- package/dist/shared/bricks/props/css-length.js +2 -1
- package/dist/shared/bricks/props/css-length.js.map +1 -0
- package/dist/shared/bricks/props/datarecord.js +2 -1
- package/dist/shared/bricks/props/datarecord.js.map +1 -0
- package/dist/shared/bricks/props/datasource.js +2 -1
- package/dist/shared/bricks/props/datasource.js.map +1 -0
- package/dist/shared/bricks/props/date.js +2 -1
- package/dist/shared/bricks/props/date.js.map +1 -0
- package/dist/shared/bricks/props/direction.js +2 -1
- package/dist/shared/bricks/props/direction.js.map +1 -0
- package/dist/shared/bricks/props/dynamic.js +2 -1
- package/dist/shared/bricks/props/dynamic.js.map +1 -0
- package/dist/shared/bricks/props/effects.js +2 -1
- package/dist/shared/bricks/props/effects.js.map +1 -0
- package/dist/shared/bricks/props/enum.js +2 -1
- package/dist/shared/bricks/props/enum.js.map +1 -0
- package/dist/shared/bricks/props/file.js +1 -0
- package/dist/shared/bricks/props/file.js.map +1 -0
- package/dist/shared/bricks/props/geolocation.js +2 -1
- package/dist/shared/bricks/props/geolocation.js.map +1 -0
- package/dist/shared/bricks/props/helpers.js +2 -1
- package/dist/shared/bricks/props/helpers.js.map +1 -0
- package/dist/shared/bricks/props/image.js +2 -1
- package/dist/shared/bricks/props/image.js.map +1 -0
- package/dist/shared/bricks/props/number.js +2 -1
- package/dist/shared/bricks/props/number.js.map +1 -0
- package/dist/shared/bricks/props/position.js +2 -1
- package/dist/shared/bricks/props/position.js.map +1 -0
- package/dist/shared/bricks/props/string.js +2 -1
- package/dist/shared/bricks/props/string.js.map +1 -0
- package/dist/shared/bricks/props/tags.js +2 -1
- package/dist/shared/bricks/props/tags.js.map +1 -0
- package/dist/shared/bricks/props/text.js +2 -1
- package/dist/shared/bricks/props/text.js.map +1 -0
- package/dist/shared/bricks/props/types.js +1 -0
- package/dist/shared/bricks/props/types.js.map +1 -0
- package/dist/shared/bricks.js +2 -1
- package/dist/shared/bricks.js.map +1 -0
- package/dist/shared/{chunk-6PGAWO4H.js → chunk-3YVJ2ELD.js} +2 -1
- package/dist/shared/chunk-3YVJ2ELD.js.map +1 -0
- package/dist/shared/{chunk-AB3IMRXZ.js → chunk-4BTB3MU2.js} +2 -1
- package/dist/shared/chunk-4BTB3MU2.js.map +1 -0
- package/dist/shared/{chunk-ZJNA4QQC.js → chunk-4WDWJA3N.js} +1 -0
- package/dist/shared/chunk-4WDWJA3N.js.map +1 -0
- package/dist/shared/{chunk-NQKXDMQ5.js → chunk-5O4Z3YQY.js} +1 -0
- package/dist/shared/chunk-5O4Z3YQY.js.map +1 -0
- package/dist/shared/{chunk-VK26ZZFR.js → chunk-5YRC3IT3.js} +2 -1
- package/dist/shared/chunk-5YRC3IT3.js.map +1 -0
- package/dist/shared/{chunk-WAML3IGZ.js → chunk-6HLU4UI2.js} +1 -0
- package/dist/shared/chunk-6HLU4UI2.js.map +1 -0
- package/dist/shared/{chunk-MKIXZXWS.js → chunk-6I3ONVU6.js} +1 -0
- package/dist/shared/chunk-6I3ONVU6.js.map +1 -0
- package/dist/shared/{chunk-AZHH3XJJ.js → chunk-7A2JNQX3.js} +2 -1
- package/dist/shared/chunk-7A2JNQX3.js.map +1 -0
- package/dist/shared/{chunk-7UBMXMNJ.js → chunk-A3GF4PYW.js} +2 -1
- package/dist/shared/chunk-A3GF4PYW.js.map +1 -0
- package/dist/shared/{chunk-46YDGGFF.js → chunk-A3K4NUVP.js} +2 -1
- package/dist/shared/chunk-A3K4NUVP.js.map +1 -0
- package/dist/shared/{chunk-F4JNKU7J.js → chunk-AFVJZPLS.js} +2 -1
- package/dist/shared/chunk-AFVJZPLS.js.map +1 -0
- package/dist/shared/{chunk-PW5HRVMD.js → chunk-AI4GHU7R.js} +2 -1
- package/dist/shared/chunk-AI4GHU7R.js.map +1 -0
- package/dist/shared/{chunk-SAJY7H6N.js → chunk-B3EATRFX.js} +2 -1
- package/dist/shared/chunk-B3EATRFX.js.map +1 -0
- package/dist/shared/{chunk-3FPFR5RA.js → chunk-CCI4C3TM.js} +2 -1
- package/dist/shared/chunk-CCI4C3TM.js.map +1 -0
- package/dist/shared/{chunk-URRCKLAS.js → chunk-CFF6Q7O7.js} +2 -1
- package/dist/shared/chunk-CFF6Q7O7.js.map +1 -0
- package/dist/shared/{chunk-Z4YKRLOX.js → chunk-CZRCW5EN.js} +2 -1
- package/dist/shared/chunk-CZRCW5EN.js.map +1 -0
- package/dist/shared/{chunk-ARMM6B47.js → chunk-DCH4ZKWT.js} +1 -0
- package/dist/shared/chunk-DCH4ZKWT.js.map +1 -0
- package/dist/shared/{chunk-GC5OWY2Z.js → chunk-DHI3IBOD.js} +2 -1
- package/dist/shared/chunk-DHI3IBOD.js.map +1 -0
- package/dist/shared/{chunk-PZYX3ACO.js → chunk-DQ7PRWTG.js} +1 -0
- package/dist/shared/chunk-DQ7PRWTG.js.map +1 -0
- package/dist/shared/{chunk-XED6ARVN.js → chunk-E6XEI7IK.js} +2 -1
- package/dist/shared/chunk-E6XEI7IK.js.map +1 -0
- package/dist/shared/{chunk-6R76KIHZ.js → chunk-FLOMNC6J.js} +2 -1
- package/dist/shared/chunk-FLOMNC6J.js.map +1 -0
- package/dist/shared/{chunk-EVDZ2KND.js → chunk-G5CJU6RD.js} +2 -1
- package/dist/shared/chunk-G5CJU6RD.js.map +1 -0
- package/dist/shared/{chunk-MVCVVKBY.js → chunk-GACHLACT.js} +2 -1
- package/dist/shared/chunk-GACHLACT.js.map +1 -0
- package/dist/shared/{chunk-X62OEAE6.js → chunk-GLS7HPIZ.js} +1 -0
- package/dist/shared/chunk-GLS7HPIZ.js.map +1 -0
- package/dist/shared/{chunk-ML4JSDQM.js → chunk-GOMXZC4B.js} +2 -1
- package/dist/shared/chunk-GOMXZC4B.js.map +1 -0
- package/dist/shared/{chunk-L2HOZVBC.js → chunk-GPEMPZXK.js} +1 -0
- package/dist/shared/chunk-GPEMPZXK.js.map +1 -0
- package/dist/shared/{chunk-IFEIRRZ2.js → chunk-HAGKVQOW.js} +1 -0
- package/dist/shared/chunk-HAGKVQOW.js.map +1 -0
- package/dist/shared/{chunk-ILIWVWHC.js → chunk-I3VL6SRH.js} +2 -1
- package/dist/shared/chunk-I3VL6SRH.js.map +1 -0
- package/dist/shared/{chunk-2NLDX5FG.js → chunk-IKC3FK7L.js} +2 -1
- package/dist/shared/chunk-IKC3FK7L.js.map +1 -0
- package/dist/shared/{chunk-STDCM2KD.js → chunk-IKHZD2JH.js} +2 -1
- package/dist/shared/chunk-IKHZD2JH.js.map +1 -0
- package/dist/shared/{chunk-NKIEDT7V.js → chunk-IUXCWWGO.js} +1 -0
- package/dist/shared/chunk-IUXCWWGO.js.map +1 -0
- package/dist/shared/{chunk-SFKZAUPW.js → chunk-JMN3HTZU.js} +1 -0
- package/dist/shared/chunk-JMN3HTZU.js.map +1 -0
- package/dist/shared/{chunk-VLXZMESE.js → chunk-KBHDY425.js} +1 -0
- package/dist/shared/chunk-KBHDY425.js.map +1 -0
- package/dist/shared/{chunk-5WY7LYXK.js → chunk-KFM6KXSE.js} +1 -0
- package/dist/shared/chunk-KFM6KXSE.js.map +1 -0
- package/dist/shared/{chunk-7QFMCLUL.js → chunk-KLD3P5XH.js} +1 -0
- package/dist/shared/chunk-KLD3P5XH.js.map +1 -0
- package/dist/shared/{chunk-6L3Z5SZQ.js → chunk-KO5FPOWZ.js} +1 -0
- package/dist/shared/chunk-KO5FPOWZ.js.map +1 -0
- package/dist/shared/{chunk-YIFNKP4J.js → chunk-KSEURRVZ.js} +1 -0
- package/dist/shared/chunk-KSEURRVZ.js.map +1 -0
- package/dist/shared/{chunk-HP7CZB2F.js → chunk-KYY3PHP7.js} +1 -0
- package/dist/shared/chunk-KYY3PHP7.js.map +1 -0
- package/dist/shared/{chunk-ARYG4XMX.js → chunk-NJGXC7D6.js} +2 -1
- package/dist/shared/chunk-NJGXC7D6.js.map +1 -0
- package/dist/shared/{chunk-SFDRAHYP.js → chunk-NM5MMPCF.js} +2 -1
- package/dist/shared/chunk-NM5MMPCF.js.map +1 -0
- package/dist/shared/{chunk-XZLBM4AX.js → chunk-OGBMYMZD.js} +2 -1
- package/dist/shared/chunk-OGBMYMZD.js.map +1 -0
- package/dist/shared/{chunk-HSRXUIVM.js → chunk-OHNYCXPX.js} +2 -1
- package/dist/shared/chunk-OHNYCXPX.js.map +1 -0
- package/dist/shared/{chunk-MPBYGS6W.js → chunk-OIY3EPHO.js} +1 -0
- package/dist/shared/chunk-OIY3EPHO.js.map +1 -0
- package/dist/shared/{chunk-L42YBY5I.js → chunk-PIG623TZ.js} +1 -0
- package/dist/shared/chunk-PIG623TZ.js.map +1 -0
- package/dist/shared/{chunk-K5ADUHF4.js → chunk-PLSV746R.js} +2 -1
- package/dist/shared/chunk-PLSV746R.js.map +1 -0
- package/dist/shared/chunk-PSCN3VVA.js +4 -0
- package/dist/shared/chunk-PSCN3VVA.js.map +1 -0
- package/dist/shared/{chunk-3P36LG6T.js → chunk-PSTFJ5IJ.js} +2 -1
- package/dist/shared/chunk-PSTFJ5IJ.js.map +1 -0
- package/dist/shared/{chunk-TH5SONR6.js → chunk-PXI7AHWS.js} +2 -1
- package/dist/shared/chunk-PXI7AHWS.js.map +1 -0
- package/dist/shared/{chunk-AMQAGDFH.js → chunk-Q4H4QEMB.js} +1 -0
- package/dist/shared/chunk-Q4H4QEMB.js.map +1 -0
- package/dist/shared/{chunk-LEWKHCRI.js → chunk-QGYZ7CG5.js} +2 -1
- package/dist/shared/chunk-QGYZ7CG5.js.map +1 -0
- package/dist/shared/{chunk-US53TNMK.js → chunk-QWGUMKZC.js} +2 -1
- package/dist/shared/chunk-QWGUMKZC.js.map +1 -0
- package/dist/shared/{chunk-5X5SX5N7.js → chunk-QX6OGRRT.js} +2 -1
- package/dist/shared/chunk-QX6OGRRT.js.map +1 -0
- package/dist/shared/{chunk-VDX2J22H.js → chunk-R6ATC4TC.js} +2 -1
- package/dist/shared/chunk-R6ATC4TC.js.map +1 -0
- package/dist/shared/{chunk-WXKRIUTA.js → chunk-RDZK73KV.js} +1 -0
- package/dist/shared/chunk-RDZK73KV.js.map +1 -0
- package/dist/shared/{chunk-4GIZ6WSG.js → chunk-RJYZ5FAR.js} +2 -1
- package/dist/shared/chunk-RJYZ5FAR.js.map +1 -0
- package/dist/shared/{chunk-3QOAHMV4.js → chunk-SQ5T4AT5.js} +2 -1
- package/dist/shared/chunk-SQ5T4AT5.js.map +1 -0
- package/dist/shared/{chunk-DKNOZLA6.js → chunk-SWLUQVK7.js} +2 -1
- package/dist/shared/chunk-SWLUQVK7.js.map +1 -0
- package/dist/shared/{chunk-QGFQA7OZ.js → chunk-SXHDQ64Z.js} +2 -1
- package/dist/shared/chunk-SXHDQ64Z.js.map +1 -0
- package/dist/shared/{chunk-UDQWYGSO.js → chunk-SY6DZLTC.js} +2 -1
- package/dist/shared/chunk-SY6DZLTC.js.map +1 -0
- package/dist/shared/{chunk-RJZZWCBD.js → chunk-VEDQV5XO.js} +1 -0
- package/dist/shared/chunk-VEDQV5XO.js.map +1 -0
- package/dist/shared/{chunk-JRCVYDCD.js → chunk-W33JMRRN.js} +2 -1
- package/dist/shared/chunk-W33JMRRN.js.map +1 -0
- package/dist/shared/{chunk-Y3X4F4YJ.js → chunk-WBZW5LVH.js} +2 -1
- package/dist/shared/chunk-WBZW5LVH.js.map +1 -0
- package/dist/shared/{chunk-SDS4QU72.js → chunk-WHTPGWUV.js} +2 -1
- package/dist/shared/chunk-WHTPGWUV.js.map +1 -0
- package/dist/shared/{chunk-LT4CW2F7.js → chunk-WYVJE6J5.js} +2 -1
- package/dist/shared/chunk-WYVJE6J5.js.map +1 -0
- package/dist/shared/{chunk-PO6UODZ5.js → chunk-ZA3GAB4H.js} +2 -1
- package/dist/shared/chunk-ZA3GAB4H.js.map +1 -0
- package/dist/shared/{chunk-2CYAFF56.js → chunk-ZFCUSWMT.js} +1 -0
- package/dist/shared/chunk-ZFCUSWMT.js.map +1 -0
- package/dist/shared/{chunk-UCR2UZOY.js → chunk-ZQPXQCY2.js} +2 -1
- package/dist/shared/chunk-ZQPXQCY2.js.map +1 -0
- package/dist/shared/{chunk-DHSWVVMI.js → chunk-ZTZJHY4E.js} +2 -1
- package/dist/shared/chunk-ZTZJHY4E.js.map +1 -0
- package/dist/shared/context.js +1 -0
- package/dist/shared/context.js.map +1 -0
- package/dist/shared/datarecords/external/airtable/handler.js +1 -0
- package/dist/shared/datarecords/external/airtable/handler.js.map +1 -0
- package/dist/shared/datarecords/external/airtable/oauth/config.js +1 -0
- package/dist/shared/datarecords/external/airtable/oauth/config.js.map +1 -0
- package/dist/shared/datarecords/external/airtable/types.js +2 -1
- package/dist/shared/datarecords/external/airtable/types.js.map +1 -0
- package/dist/shared/datarecords/external/generic-webhook/handler.js +1 -0
- package/dist/shared/datarecords/external/generic-webhook/handler.js.map +1 -0
- package/dist/shared/datarecords/external/generic-webhook/options.js +1 -0
- package/dist/shared/datarecords/external/generic-webhook/options.js.map +1 -0
- package/dist/shared/datarecords/external/google/oauth/config.js +1 -0
- package/dist/shared/datarecords/external/google/oauth/config.js.map +1 -0
- package/dist/shared/datarecords/external/google/sheets/client.js +2 -1
- package/dist/shared/datarecords/external/google/sheets/client.js.map +1 -0
- package/dist/shared/datarecords/external/google/sheets/handler.js +2 -1
- package/dist/shared/datarecords/external/google/sheets/handler.js.map +1 -0
- package/dist/shared/datarecords/external/google/sheets/types.js +2 -1
- package/dist/shared/datarecords/external/google/sheets/types.js.map +1 -0
- package/dist/shared/datarecords/external/notion/handler.js +1 -0
- package/dist/shared/datarecords/external/notion/handler.js.map +1 -0
- package/dist/shared/datarecords/external/notion/oauth/config.js +1 -0
- package/dist/shared/datarecords/external/notion/oauth/config.js.map +1 -0
- package/dist/shared/datarecords/external/notion/types.js +2 -1
- package/dist/shared/datarecords/external/notion/types.js.map +1 -0
- package/dist/shared/datarecords/types.js +2 -1
- package/dist/shared/datarecords/types.js.map +1 -0
- package/dist/shared/datarecords.js +1 -0
- package/dist/shared/datarecords.js.map +1 -0
- package/dist/shared/datasources/external/facebook/posts/fetcher.js +2 -1
- package/dist/shared/datasources/external/facebook/posts/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/facebook/posts/schema.js +1 -0
- package/dist/shared/datasources/external/facebook/posts/schema.js.map +1 -0
- package/dist/shared/datasources/external/http-json/fetcher.js +2 -1
- package/dist/shared/datasources/external/http-json/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/http-json/options.js +1 -0
- package/dist/shared/datasources/external/http-json/options.js.map +1 -0
- package/dist/shared/datasources/external/http-json/schema.js +1 -0
- package/dist/shared/datasources/external/http-json/schema.js.map +1 -0
- package/dist/shared/datasources/external/instagram/feed/fetcher.js +2 -1
- package/dist/shared/datasources/external/instagram/feed/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/instagram/feed/schema.js +1 -0
- package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -0
- package/dist/shared/datasources/external/mastodon/account/fetcher.js +2 -1
- package/dist/shared/datasources/external/mastodon/account/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/mastodon/account/schema.js +2 -1
- package/dist/shared/datasources/external/mastodon/account/schema.js.map +1 -0
- package/dist/shared/datasources/external/mastodon/options.js +1 -0
- package/dist/shared/datasources/external/mastodon/options.js.map +1 -0
- package/dist/shared/datasources/external/mastodon/status/fetcher.js +2 -1
- package/dist/shared/datasources/external/mastodon/status/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/mastodon/status/sample.array.js +1 -0
- package/dist/shared/datasources/external/mastodon/status/sample.array.js.map +1 -0
- package/dist/shared/datasources/external/mastodon/status/sample.single.js +1 -0
- package/dist/shared/datasources/external/mastodon/status/sample.single.js.map +1 -0
- package/dist/shared/datasources/external/mastodon/status/schema.js +2 -1
- package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -0
- package/dist/shared/datasources/external/meta/oauth/config.js +2 -1
- package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -0
- package/dist/shared/datasources/external/meta/options.js +1 -0
- package/dist/shared/datasources/external/meta/options.js.map +1 -0
- package/dist/shared/datasources/external/rss/fetcher.js +2 -1
- package/dist/shared/datasources/external/rss/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/rss/options.js +1 -0
- package/dist/shared/datasources/external/rss/options.js.map +1 -0
- package/dist/shared/datasources/external/rss/schema.js +2 -1
- package/dist/shared/datasources/external/rss/schema.js.map +1 -0
- package/dist/shared/datasources/external/threads/media/fetcher.js +2 -1
- package/dist/shared/datasources/external/threads/media/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/threads/media/schema.js +1 -0
- package/dist/shared/datasources/external/threads/media/schema.js.map +1 -0
- package/dist/shared/datasources/external/tiktok/oauth/config.js +2 -1
- package/dist/shared/datasources/external/tiktok/oauth/config.js.map +1 -0
- package/dist/shared/datasources/external/tiktok/video/fetcher.js +2 -1
- package/dist/shared/datasources/external/tiktok/video/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/tiktok/video/options.js +1 -0
- package/dist/shared/datasources/external/tiktok/video/options.js.map +1 -0
- package/dist/shared/datasources/external/tiktok/video/schema.js +1 -0
- package/dist/shared/datasources/external/tiktok/video/schema.js.map +1 -0
- package/dist/shared/datasources/external/youtube/list/fetcher.js +2 -1
- package/dist/shared/datasources/external/youtube/list/fetcher.js.map +1 -0
- package/dist/shared/datasources/external/youtube/list/options.js +1 -0
- package/dist/shared/datasources/external/youtube/list/options.js.map +1 -0
- package/dist/shared/datasources/external/youtube/list/schema.js +2 -1
- package/dist/shared/datasources/external/youtube/list/schema.js.map +1 -0
- package/dist/shared/datasources/external/youtube/oauth/config.js +2 -1
- package/dist/shared/datasources/external/youtube/oauth/config.js.map +1 -0
- package/dist/shared/datasources/fetcher.js +1 -0
- package/dist/shared/datasources/fetcher.js.map +1 -0
- package/dist/shared/datasources/internal/blog/schema.js +1 -0
- package/dist/shared/datasources/internal/blog/schema.js.map +1 -0
- package/dist/shared/datasources/internal/changelog/schema.js +1 -0
- package/dist/shared/datasources/internal/changelog/schema.js.map +1 -0
- package/dist/shared/datasources/internal/contact-info/schema.js +2 -1
- package/dist/shared/datasources/internal/contact-info/schema.js.map +1 -0
- package/dist/shared/datasources/internal/cv/schema.js +1 -0
- package/dist/shared/datasources/internal/cv/schema.js.map +1 -0
- package/dist/shared/datasources/internal/faq/schema.js +1 -0
- package/dist/shared/datasources/internal/faq/schema.js.map +1 -0
- package/dist/shared/datasources/internal/job-board/schema.js +1 -0
- package/dist/shared/datasources/internal/job-board/schema.js.map +1 -0
- package/dist/shared/datasources/internal/links/schema.js +2 -1
- package/dist/shared/datasources/internal/links/schema.js.map +1 -0
- package/dist/shared/datasources/internal/recipes/schema.js +1 -0
- package/dist/shared/datasources/internal/recipes/schema.js.map +1 -0
- package/dist/shared/datasources/internal/restaurant/schema.js +1 -0
- package/dist/shared/datasources/internal/restaurant/schema.js.map +1 -0
- package/dist/shared/datasources/samples.js +1 -0
- package/dist/shared/datasources/samples.js.map +1 -0
- package/dist/shared/datasources/schemas.js +2 -1
- package/dist/shared/datasources/schemas.js.map +1 -0
- package/dist/shared/datasources/types.js +2 -1
- package/dist/shared/datasources/types.js.map +1 -0
- package/dist/shared/datasources/utils.js +2 -1
- package/dist/shared/datasources/utils.js.map +1 -0
- package/dist/shared/datasources.js +1 -0
- package/dist/shared/datasources.js.map +1 -0
- package/dist/shared/env.js +1 -0
- package/dist/shared/env.js.map +1 -0
- package/dist/shared/errors.js +2 -1
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/images.js +2 -1
- package/dist/shared/images.js.map +1 -0
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/layout-constants.js +1 -0
- package/dist/shared/layout-constants.js.map +1 -0
- package/dist/shared/manifest.js +1 -0
- package/dist/shared/manifest.js.map +1 -0
- package/dist/shared/oauth.js +2 -1
- package/dist/shared/oauth.js.map +1 -0
- package/dist/shared/page.js +2 -1
- package/dist/shared/page.js.map +1 -0
- package/dist/shared/prompt.js +2 -1
- package/dist/shared/prompt.js.map +1 -0
- package/dist/shared/responsive.js +2 -1
- package/dist/shared/responsive.js.map +1 -0
- package/dist/shared/site.js +2 -1
- package/dist/shared/site.js.map +1 -0
- package/dist/shared/sitemap.js +2 -1
- package/dist/shared/sitemap.js.map +1 -0
- package/dist/shared/social-icons.js +1 -0
- package/dist/shared/social-icons.js.map +1 -0
- package/dist/shared/theme.js +2 -1
- package/dist/shared/theme.js.map +1 -0
- package/dist/shared/themes/color-system.d.ts +0 -1
- package/dist/shared/themes/color-system.d.ts.map +1 -1
- package/dist/shared/themes/color-system.js +2 -1
- package/dist/shared/themes/color-system.js.map +1 -0
- package/dist/shared/utils/canvas-data-uri.js +1 -0
- package/dist/shared/utils/canvas-data-uri.js.map +1 -0
- package/dist/shared/utils/invariant.js +2 -1
- package/dist/shared/utils/invariant.js.map +1 -0
- package/dist/shared/utils/json-date.js +2 -1
- package/dist/shared/utils/json-date.js.map +1 -0
- package/dist/shared/utils/llm.js +2 -1
- package/dist/shared/utils/llm.js.map +1 -0
- package/dist/shared/utils/merge.js +2 -1
- package/dist/shared/utils/merge.js.map +1 -0
- package/dist/shared/utils/object-hash.js +1 -0
- package/dist/shared/utils/object-hash.js.map +1 -0
- package/dist/shared/utils/schema.js +2 -1
- package/dist/shared/utils/schema.js.map +1 -0
- package/dist/shared/utils/string-enum.js +2 -1
- package/dist/shared/utils/string-enum.js.map +1 -0
- package/dist/shared/utils/try-catch.js +1 -0
- package/dist/shared/utils/try-catch.js.map +1 -0
- package/dist/shared/utils/typed-ref.js +2 -1
- package/dist/shared/utils/typed-ref.js.map +1 -0
- package/package.json +7 -7
- package/src/shared/theme.ts +6 -6
- package/src/shared/themes/color-system.ts +0 -1
- package/src/shared/themes/tests/color-system.test.ts +5 -1
- package/dist/shared/chunk-5DZIQGY2.js +0 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{a as n}from"./chunk-
|
|
3
|
+
import{a as n}from"./chunk-KFM6KXSE.js";import{Type as s}from"@sinclair/typebox";var e=["px","%","em","rem","vh","vw","dvh","dvw","rlh","lh","cqh","cqw"];function p(t={}){return s.String({title:"Length",description:`A CSS length value. Must be a number with a unit (e.g. "10px", "50%"). The unit can be one of the following: ${e?.join(", ")}.`,default:t.default,"ui:field":"css-length","ui:css-units":e,examples:["100px","50%","2em","1.5rem"],...t})}function c(t={}){return n("styles:cssLength",t)}function g(t){return typeof t!="string"?!1:new RegExp(`^-?\\d+(?:\\.\\d+)?\\s*(${e.join("|")})$`).test(t)}export{e as a,p as b,c,g as d};
|
|
4
|
+
//# sourceMappingURL=chunk-OHNYCXPX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/props/css-length.ts"],"sourcesContent":["import { type Static, Type, type StringOptions } from \"@sinclair/typebox\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\nexport const cssUnits = [\"px\", \"%\", \"em\", \"rem\", \"vh\", \"vw\", \"dvh\", \"dvw\", \"rlh\", \"lh\", \"cqh\", \"cqw\"];\n\nexport function cssLength(options: StringOptions = {}) {\n return Type.String({\n title: \"Length\",\n // $id: \"styles:cssLength\",\n description: `A CSS length value. Must be a number with a unit (e.g. \"10px\", \"50%\"). The unit can be one of the following: ${cssUnits?.join(\", \")}.`,\n default: options.default,\n \"ui:field\": \"css-length\",\n \"ui:css-units\": cssUnits,\n examples: [\"100px\", \"50%\", \"2em\", \"1.5rem\"],\n ...options,\n });\n}\n\nexport type CssLength = Static<ReturnType<typeof cssLength>>;\n\nexport function cssLengthRef(options: StringOptions = {}) {\n return typedRef(\"styles:cssLength\", options);\n}\n\nexport function isCssLength(value: string | number | undefined): boolean {\n if (typeof value !== \"string\") {\n return false;\n }\n // Check if the value is something like a number + a css unit (e.g., \"20px\", \"50%\")\n const cssLengthPattern = new RegExp(`^-?\\\\d+(?:\\\\.\\\\d+)?\\\\s*(${cssUnits.join(\"|\")})$`);\n return cssLengthPattern.test(value);\n}\n"],"mappings":";;wCAAA,OAAsB,QAAAA,MAAgC,oBAG/C,IAAMC,EAAW,CAAC,KAAM,IAAK,KAAM,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,MAAO,KAAK,EAE7F,SAASC,EAAUC,EAAyB,CAAC,EAAG,CACrD,OAAOC,EAAK,OAAO,CACjB,MAAO,SAEP,YAAa,gHAAgHH,GAAU,KAAK,IAAI,CAAC,IACjJ,QAASE,EAAQ,QACjB,WAAY,aACZ,eAAgBF,EAChB,SAAU,CAAC,QAAS,MAAO,MAAO,QAAQ,EAC1C,GAAGE,CACL,CAAC,CACH,CAIO,SAASE,EAAaF,EAAyB,CAAC,EAAG,CACxD,OAAOG,EAAS,mBAAoBH,CAAO,CAC7C,CAEO,SAASI,EAAYC,EAA6C,CACvE,OAAI,OAAOA,GAAU,SACZ,GAGgB,IAAI,OAAO,2BAA2BP,EAAS,KAAK,GAAG,CAAC,IAAI,EAC7D,KAAKO,CAAK,CACpC","names":["Type","cssUnits","cssLength","options","Type","cssLengthRef","typedRef","isCssLength","value"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
3
|
import{mergeWith as e,isArray as i}from"lodash-es";function m(r,...n){return e(r,...n,t)}function t(r,n){if(i(r))return n}export{m as a};
|
|
4
|
+
//# sourceMappingURL=chunk-OIY3EPHO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/utils/merge.ts"],"sourcesContent":["import { mergeWith, isArray } from \"lodash-es\";\n\nexport function mergeIgnoringArrays<T>(target: T, ...sources: T[]): T {\n return mergeWith(target, ...sources, customizer);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\nfunction customizer(objValue: any, srcValue: any) {\n if (isArray(objValue)) {\n return srcValue;\n }\n}\n"],"mappings":";;AAAA,OAAS,aAAAA,EAAW,WAAAC,MAAe,YAE5B,SAASC,EAAuBC,KAAcC,EAAiB,CACpE,OAAOJ,EAAUG,EAAQ,GAAGC,EAASC,CAAU,CACjD,CAGA,SAASA,EAAWC,EAAeC,EAAe,CAChD,GAAIN,EAAQK,CAAQ,EAClB,OAAOC,CAEX","names":["mergeWith","isArray","mergeIgnoringArrays","target","sources","customizer","objValue","srcValue"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
3
|
import{Type as n}from"@sinclair/typebox";function a(e,s,t){let o={"ui:field":"enum","ui:display":t.displayAs||"select"},{options:r,displayAs:l,...u}=t;return n.Union(r.map(i=>n.Literal(typeof i=="string"?i:i.value,{title:typeof i=="string"?i:i.title,"ui:icon":typeof i=="string"?void 0:i.icon})),{title:e,default:s,...o,...u})}export{a};
|
|
4
|
+
//# sourceMappingURL=chunk-PIG623TZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/props/enum.ts"],"sourcesContent":["import { type SchemaOptions, Type } from \"@sinclair/typebox\";\n\ntype EnumOption = {\n title?: string;\n description?: string;\n value: string;\n icon?: string;\n};\n\nexport function enumProp(\n title: string,\n defaultValue: string,\n opts: Omit<SchemaOptions, \"title\" | \"default\"> & {\n options: EnumOption[] | string[];\n displayAs?: \"radio\" | \"select\" | \"button-group\" | \"icon-group\";\n },\n) {\n const defaultOpts = {\n \"ui:field\": \"enum\",\n \"ui:display\": opts.displayAs || \"select\",\n };\n const { options, displayAs, ...commonOpts } = opts;\n\n return Type.Union(\n options.map((opt) =>\n Type.Literal(typeof opt === \"string\" ? opt : opt.value, {\n title: typeof opt === \"string\" ? opt : opt.title,\n \"ui:icon\": typeof opt === \"string\" ? undefined : opt.icon,\n }),\n ),\n {\n title,\n default: defaultValue,\n ...defaultOpts,\n ...commonOpts,\n },\n );\n}\n"],"mappings":";;AAAA,OAA6B,QAAAA,MAAY,oBASlC,SAASC,EACdC,EACAC,EACAC,EAIA,CACA,IAAMC,EAAc,CAClB,WAAY,OACZ,aAAcD,EAAK,WAAa,QAClC,EACM,CAAE,QAAAE,EAAS,UAAAC,EAAW,GAAGC,CAAW,EAAIJ,EAE9C,OAAOJ,EAAK,MACVM,EAAQ,IAAKG,GACXT,EAAK,QAAQ,OAAOS,GAAQ,SAAWA,EAAMA,EAAI,MAAO,CACtD,MAAO,OAAOA,GAAQ,SAAWA,EAAMA,EAAI,MAC3C,UAAW,OAAOA,GAAQ,SAAW,OAAYA,EAAI,IACvD,CAAC,CACH,EACA,CACE,MAAAP,EACA,QAASC,EACT,GAAGE,EACH,GAAGG,CACL,CACF,CACF","names":["Type","enumProp","title","defaultValue","opts","defaultOpts","options","displayAs","commonOpts","opt"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{c as p}from"./chunk-
|
|
3
|
+
import{c as p}from"./chunk-3YVJ2ELD.js";import{a as c}from"./chunk-RJYZ5FAR.js";import{m as t}from"./chunk-AFVJZPLS.js";import{d as r,f as n}from"./chunk-A3GF4PYW.js";import{b as i}from"./chunk-NM5MMPCF.js";import{c as e}from"./chunk-OHNYCXPX.js";import{PiConfetti as s}from"react-icons/pi";import{Type as o}from"@sinclair/typebox";var g=c({type:"icon",name:"Icon",category:"basic",description:"An icon.",aiInstructions:"Uses iconify references",resizable:!1,staticClasses:"!grow-0",icon:s,props:p({icon:n({default:"mdi:heart"}),size:o.Optional(e({title:"Size",description:"The size of the icon. Can be a CSS length value (e.g. '2em', '24px')",default:"1em","ui:css-units":["em","rem","px"],"ai:instructions":"Use 'em', 'rem', or 'px' for units. Example: '2em', '24px'"})),color:o.Optional(i({title:"Color",default:"currentColor","ui:hide-color-label":!0})),link:o.Optional(r({title:"Link"})),loop:o.Optional(t())},{noGrow:!0})}),k=[{description:"Large heart icon with inherited color and size",type:"icon",props:{icon:"mdi:heart"}},{description:"Shopping cart icon",type:"icon",props:{icon:"mdi:cart",size:"1.2em"}},{description:"Social media icon with blue color and link",type:"icon",props:{icon:"mdi:facebook",size:"1.5em",color:"#1877f2",link:"https://facebook.com/yourpage"}},{description:"Warning icon with orange color for alerts",type:"icon",props:{icon:"mdi:alert-triangle",size:"1.8em",color:"#f59e0b"}},{description:"Email contact icon with link",type:"icon",props:{icon:"mdi:email",size:"1.3em",color:"#4f46e5",link:"mailto:contact@example.com"}},{description:"Phone icon with green color",type:"icon",props:{icon:"mdi:phone",size:"1.4em",color:"#10b981"}},{description:"Location pin icon with red color",type:"icon",props:{icon:"mdi:map-marker",size:"2.2em",color:"#ef4444"}},{description:"Twitter/X icon with custom color and link",type:"icon",props:{icon:"mdi:twitter",size:"1.6em",color:"#000000",link:"https://x.com/yourhandle"}},{description:"Star rating icon with gold color",type:"icon",props:{icon:"mdi:star",size:"1.2em",color:"#fbbf24"}},{description:"Download icon with link and purple color",type:"icon",props:{icon:"mdi:download",size:"1.5em",color:"#8b5cf6",link:"/files/brochure.pdf"}},{description:"Menu hamburger icon for navigation",type:"icon",props:{icon:"mdi:menu",size:"1.8em",color:"#374151"}},{description:"Search icon with dark color",type:"icon",props:{icon:"mdi:magnify",size:"1.1em",color:"#1f2937"}}];export{g as a,k as b};
|
|
4
|
+
//# sourceMappingURL=chunk-PLSV746R.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/icon.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { PiConfetti } from \"react-icons/pi\";\nimport { iconRef, urlOrPageIdRef } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { cssLengthRef } from \"../props/css-length\";\nimport { colorRef } from \"../props/color\";\nimport { loopRef } from \"../props/dynamic\";\n\nexport const manifest = defineBrickManifest({\n type: \"icon\",\n name: \"Icon\",\n category: \"basic\",\n description: \"An icon.\",\n aiInstructions: \"Uses iconify references\",\n resizable: false,\n staticClasses: \"!grow-0\",\n icon: PiConfetti,\n props: defineProps(\n {\n icon: iconRef({\n default: \"mdi:heart\",\n }),\n size: Type.Optional(\n cssLengthRef({\n title: \"Size\",\n description: \"The size of the icon. Can be a CSS length value (e.g. '2em', '24px')\",\n default: \"1em\",\n \"ui:css-units\": [\"em\", \"rem\", \"px\"],\n \"ai:instructions\": \"Use 'em', 'rem', or 'px' for units. Example: '2em', '24px'\",\n }),\n ),\n color: Type.Optional(\n colorRef({\n title: \"Color\",\n default: \"currentColor\",\n \"ui:hide-color-label\": true,\n }),\n ),\n link: Type.Optional(urlOrPageIdRef({ title: \"Link\" })),\n loop: Type.Optional(loopRef()),\n },\n { noGrow: true },\n ),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Large heart icon with inherited color and size\",\n type: \"icon\",\n props: {\n icon: \"mdi:heart\",\n },\n },\n {\n description: \"Shopping cart icon\",\n type: \"icon\",\n props: {\n icon: \"mdi:cart\",\n size: \"1.2em\",\n },\n },\n {\n description: \"Social media icon with blue color and link\",\n type: \"icon\",\n props: {\n icon: \"mdi:facebook\",\n size: \"1.5em\",\n color: \"#1877f2\",\n link: \"https://facebook.com/yourpage\",\n },\n },\n {\n description: \"Warning icon with orange color for alerts\",\n type: \"icon\",\n props: {\n icon: \"mdi:alert-triangle\",\n size: \"1.8em\",\n color: \"#f59e0b\",\n },\n },\n {\n description: \"Email contact icon with link\",\n type: \"icon\",\n props: {\n icon: \"mdi:email\",\n size: \"1.3em\",\n color: \"#4f46e5\",\n link: \"mailto:contact@example.com\",\n },\n },\n {\n description: \"Phone icon with green color\",\n type: \"icon\",\n props: {\n icon: \"mdi:phone\",\n size: \"1.4em\",\n color: \"#10b981\",\n },\n },\n {\n description: \"Location pin icon with red color\",\n type: \"icon\",\n props: {\n icon: \"mdi:map-marker\",\n size: \"2.2em\",\n color: \"#ef4444\",\n },\n },\n {\n description: \"Twitter/X icon with custom color and link\",\n type: \"icon\",\n props: {\n icon: \"mdi:twitter\",\n size: \"1.6em\",\n color: \"#000000\",\n link: \"https://x.com/yourhandle\",\n },\n },\n {\n description: \"Star rating icon with gold color\",\n type: \"icon\",\n props: {\n icon: \"mdi:star\",\n size: \"1.2em\",\n color: \"#fbbf24\",\n },\n },\n {\n description: \"Download icon with link and purple color\",\n type: \"icon\",\n props: {\n icon: \"mdi:download\",\n size: \"1.5em\",\n color: \"#8b5cf6\",\n link: \"/files/brochure.pdf\",\n },\n },\n {\n description: \"Menu hamburger icon for navigation\",\n type: \"icon\",\n props: {\n icon: \"mdi:menu\",\n size: \"1.8em\",\n color: \"#374151\",\n },\n },\n {\n description: \"Search icon with dark color\",\n type: \"icon\",\n props: {\n icon: \"mdi:magnify\",\n size: \"1.1em\",\n color: \"#1f2937\",\n },\n },\n];\n"],"mappings":";;uPAEA,OAAS,cAAAA,MAAkB,iBAG3B,OAAS,QAAAC,MAAY,oBAKd,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,OACN,KAAM,OACN,SAAU,QACV,YAAa,WACb,eAAgB,0BAChB,UAAW,GACX,cAAe,UACf,KAAMC,EACN,MAAOC,EACL,CACE,KAAMC,EAAQ,CACZ,QAAS,WACX,CAAC,EACD,KAAMC,EAAK,SACTC,EAAa,CACX,MAAO,OACP,YAAa,uEACb,QAAS,MACT,eAAgB,CAAC,KAAM,MAAO,IAAI,EAClC,kBAAmB,4DACrB,CAAC,CACH,EACA,MAAOD,EAAK,SACVE,EAAS,CACP,MAAO,QACP,QAAS,eACT,sBAAuB,EACzB,CAAC,CACH,EACA,KAAMF,EAAK,SAASG,EAAe,CAAE,MAAO,MAAO,CAAC,CAAC,EACrD,KAAMH,EAAK,SAASI,EAAQ,CAAC,CAC/B,EACA,CAAE,OAAQ,EAAK,CACjB,CACF,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,iDACb,KAAM,OACN,MAAO,CACL,KAAM,WACR,CACF,EACA,CACE,YAAa,qBACb,KAAM,OACN,MAAO,CACL,KAAM,WACN,KAAM,OACR,CACF,EACA,CACE,YAAa,6CACb,KAAM,OACN,MAAO,CACL,KAAM,eACN,KAAM,QACN,MAAO,UACP,KAAM,+BACR,CACF,EACA,CACE,YAAa,4CACb,KAAM,OACN,MAAO,CACL,KAAM,qBACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,+BACb,KAAM,OACN,MAAO,CACL,KAAM,YACN,KAAM,QACN,MAAO,UACP,KAAM,4BACR,CACF,EACA,CACE,YAAa,8BACb,KAAM,OACN,MAAO,CACL,KAAM,YACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,mCACb,KAAM,OACN,MAAO,CACL,KAAM,iBACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,4CACb,KAAM,OACN,MAAO,CACL,KAAM,cACN,KAAM,QACN,MAAO,UACP,KAAM,0BACR,CACF,EACA,CACE,YAAa,mCACb,KAAM,OACN,MAAO,CACL,KAAM,WACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,2CACb,KAAM,OACN,MAAO,CACL,KAAM,eACN,KAAM,QACN,MAAO,UACP,KAAM,qBACR,CACF,EACA,CACE,YAAa,qCACb,KAAM,OACN,MAAO,CACL,KAAM,WACN,KAAM,QACN,MAAO,SACT,CACF,EACA,CACE,YAAa,8BACb,KAAM,OACN,MAAO,CACL,KAAM,cACN,KAAM,QACN,MAAO,SACT,CACF,CACF","names":["PiConfetti","Type","manifest","defineBrickManifest","PiConfetti","defineProps","iconRef","Type","cssLengthRef","colorRef","urlOrPageIdRef","loopRef","examples"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{b as n,c as w}from"./chunk-R6ATC4TC.js";import{a as g,b as z}from"./chunk-CFF6Q7O7.js";import{a as l,b as A}from"./chunk-IKC3FK7L.js";import{a as x,b as C}from"./chunk-E6XEI7IK.js";import{a as c,b as F}from"./chunk-SQ5T4AT5.js";import{a as M,b as G}from"./chunk-G5CJU6RD.js";import{a as E,b as H}from"./chunk-PSTFJ5IJ.js";import{a as m,b as T}from"./chunk-NJGXC7D6.js";import{a as i,b as L}from"./chunk-SXHDQ64Z.js";import{a as o,b as W}from"./chunk-QX6OGRRT.js";import{a as d,b as I}from"./chunk-FLOMNC6J.js";import{a as y,b as P}from"./chunk-PLSV746R.js";import{a as r,b as j}from"./chunk-WBZW5LVH.js";import{a as f,b as q}from"./chunk-WYVJE6J5.js";import{a as t,b as v}from"./chunk-I3VL6SRH.js";import{a as p,b as D}from"./chunk-B3EATRFX.js";import{a as s,b as R}from"./chunk-IKHZD2JH.js";import{a,b as S}from"./chunk-PXI7AHWS.js";import{a as k,c as B}from"./chunk-SY6DZLTC.js";import{a as b,c as h}from"./chunk-7A2JNQX3.js";import{b as e}from"./chunk-RJYZ5FAR.js";import{a as u}from"./chunk-JMN3HTZU.js";var fe={[M.type]:M,[o.type]:o,[r.type]:r,[E.type]:E,[a.type]:a,[n.type]:n,[i.type]:i,[g.type]:g,[f.type]:f,[m.type]:m,[k.type]:k,[b.type]:b,[s.type]:s,[y.type]:y,[l.type]:l,[p.type]:p,[x.type]:x,[c.type]:c,[t.type]:t,[d.type]:d},ne={[M.type]:e(M),[o.type]:e(o),[r.type]:e(r),[E.type]:e(E),[a.type]:e(a),[g.type]:e(g),[n.type]:e(n),[i.type]:e(i),[f.type]:e(f),[m.type]:e(m),[k.type]:e(k),[b.type]:e(b),[s.type]:e(s),[y.type]:e(y),[l.type]:e(l),[p.type]:e(p),[x.type]:e(x),[c.type]:e(c),[t.type]:e(t),[d.type]:e(d)},le=u([M.type,o.type,r.type,E.type,a.type,n.type,i.type,f.type,m.type,s.type,y.type,l.type,p.type,x.type,c.type,t.type,d.type],{title:"Brick type"}),xe={[M.type]:G,[o.type]:W,[r.type]:j,[E.type]:H,[a.type]:S,[n.type]:w,[i.type]:L,[g.type]:z,[f.type]:q,[m.type]:T,[k.type]:B,[b.type]:h,[s.type]:R,[y.type]:P,[l.type]:A,[p.type]:D,[x.type]:C,[c.type]:F,[t.type]:v,[d.type]:I};export{fe as a,ne as b,le as c,xe as d};
|
|
4
|
+
//# sourceMappingURL=chunk-PSCN3VVA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/all-manifests.ts"],"sourcesContent":["import { examples as accordionExamples, manifest as accordionManifest } from \"./accordion.manifest\";\nimport { examples as boxExamples, manifest as boxManifest } from \"./box.manifest\";\nimport { examples as buttonExamples, manifest as buttonManifest } from \"./button.manifest\";\nimport { examples as cardExamples, manifest as cardManifest } from \"./card.manifest\";\nimport { examples as carouselExamples, manifest as carouselManifest } from \"./carousel.manifest\";\nimport { examples as footerExamples, manifest as footerManifest } from \"./footer.manifest\";\nimport { examples as formExamples, manifest as formManifest } from \"./form.manifest\";\nimport { examples as heroExamples, manifest as heroManifest } from \"./hero.manifest\";\nimport { examples as iconExamples, manifest as iconManifest } from \"./icon.manifest\";\nimport { examples as imageExamples, manifest as imageManifest } from \"./image.manifest\";\nimport { examples as imagesWallExamples, manifest as imagesWallManifest } from \"./images-gallery.manifest\";\nimport { examples as mapExamples, manifest as mapManifest } from \"./map.manifest\";\nimport { examples as navbarExamples, manifest as navbarManifest } from \"./navbar.manifest\";\nimport { examples as sidebarExamples, manifest as sidebarManifest } from \"./sidebar.manifest\";\nimport { examples as socialLinksExamples, manifest as socialLinksManifest } from \"./social-links.manifest\";\nimport { examples as spacerExamples, manifest as spacerManifest } from \"./spacer.manifest\";\nimport { examples as testimonialsExamples, manifest as testimonialsManifest } from \"./testimonials.manifest\";\nimport { examples as textExamples, manifest as textManifest } from \"./text.manifest\";\nimport { examples as videoExamples, manifest as videoManifest } from \"./video.manifest\";\nimport { examples as htmlExamples, manifest as htmlManifest } from \"./html.manifest\";\nimport { getBrickManifestDefaults, type BrickDefaults, type BrickManifest } from \"../../brick-manifest\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\nimport type { Static } from \"@sinclair/typebox\";\n\nexport const manifests: Record<string, BrickManifest> = {\n [textManifest.type]: textManifest,\n [heroManifest.type]: heroManifest,\n [imageManifest.type]: imageManifest,\n [videoManifest.type]: videoManifest,\n [cardManifest.type]: cardManifest,\n [mapManifest.type]: mapManifest,\n [formManifest.type]: formManifest,\n [sidebarManifest.type]: sidebarManifest,\n [imagesWallManifest.type]: imagesWallManifest,\n [carouselManifest.type]: carouselManifest,\n [navbarManifest.type]: navbarManifest,\n [footerManifest.type]: footerManifest,\n [buttonManifest.type]: buttonManifest,\n [iconManifest.type]: iconManifest,\n [socialLinksManifest.type]: socialLinksManifest,\n [boxManifest.type]: boxManifest,\n [spacerManifest.type]: spacerManifest,\n [testimonialsManifest.type]: testimonialsManifest,\n [accordionManifest.type]: accordionManifest,\n [htmlManifest.type]: htmlManifest,\n};\n\nexport const defaultProps: Record<keyof typeof manifests, BrickDefaults> = {\n [textManifest.type]: getBrickManifestDefaults(textManifest),\n [heroManifest.type]: getBrickManifestDefaults(heroManifest),\n [imageManifest.type]: getBrickManifestDefaults(imageManifest),\n [videoManifest.type]: getBrickManifestDefaults(videoManifest),\n [cardManifest.type]: getBrickManifestDefaults(cardManifest),\n [sidebarManifest.type]: getBrickManifestDefaults(sidebarManifest),\n [mapManifest.type]: getBrickManifestDefaults(mapManifest),\n [formManifest.type]: getBrickManifestDefaults(formManifest),\n [imagesWallManifest.type]: getBrickManifestDefaults(imagesWallManifest),\n [carouselManifest.type]: getBrickManifestDefaults(carouselManifest),\n [navbarManifest.type]: getBrickManifestDefaults(navbarManifest),\n [footerManifest.type]: getBrickManifestDefaults(footerManifest),\n [buttonManifest.type]: getBrickManifestDefaults(buttonManifest),\n [iconManifest.type]: getBrickManifestDefaults(iconManifest),\n [socialLinksManifest.type]: getBrickManifestDefaults(socialLinksManifest),\n [boxManifest.type]: getBrickManifestDefaults(boxManifest),\n [spacerManifest.type]: getBrickManifestDefaults(spacerManifest),\n [testimonialsManifest.type]: getBrickManifestDefaults(testimonialsManifest),\n [accordionManifest.type]: getBrickManifestDefaults(accordionManifest),\n [htmlManifest.type]: getBrickManifestDefaults(htmlManifest),\n};\n\n// Do not include footer, navbar and sidebar\nexport const brickTypes = StringEnum<(keyof typeof manifests)[]>(\n [\n textManifest.type,\n heroManifest.type,\n imageManifest.type,\n videoManifest.type,\n cardManifest.type,\n mapManifest.type,\n formManifest.type,\n imagesWallManifest.type,\n carouselManifest.type,\n buttonManifest.type,\n iconManifest.type,\n socialLinksManifest.type,\n boxManifest.type,\n spacerManifest.type,\n testimonialsManifest.type,\n accordionManifest.type,\n htmlManifest.type,\n ],\n {\n title: \"Brick type\",\n },\n);\n\nexport type BrickType = Static<typeof brickTypes>;\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\nexport const examples: Record<string, { description: string; type: string; props: any }[]> = {\n [textManifest.type]: textExamples,\n [heroManifest.type]: heroExamples,\n [imageManifest.type]: imageExamples,\n [videoManifest.type]: videoExamples,\n [cardManifest.type]: cardExamples,\n [mapManifest.type]: mapExamples,\n [formManifest.type]: formExamples,\n [sidebarManifest.type]: sidebarExamples,\n [imagesWallManifest.type]: imagesWallExamples,\n [carouselManifest.type]: carouselExamples,\n [navbarManifest.type]: navbarExamples,\n [footerManifest.type]: footerExamples,\n [buttonManifest.type]: buttonExamples,\n [iconManifest.type]: iconExamples,\n [socialLinksManifest.type]: socialLinksExamples,\n [boxManifest.type]: boxExamples,\n [spacerManifest.type]: spacerExamples,\n [testimonialsManifest.type]: testimonialsExamples,\n [accordionManifest.type]: accordionExamples,\n [htmlManifest.type]: htmlExamples,\n};\n"],"mappings":"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","names":["manifests","manifest","defaultProps","getBrickManifestDefaults","brickTypes","StringEnum","examples"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{c as s}from"./chunk-
|
|
3
|
+
import{c as s}from"./chunk-3YVJ2ELD.js";import{a as p}from"./chunk-RJYZ5FAR.js";import{a as t}from"./chunk-A3GF4PYW.js";import{b as r}from"./chunk-4BTB3MU2.js";import{b as o,d as i}from"./chunk-ZTZJHY4E.js";import{c as d}from"./chunk-OHNYCXPX.js";import{RxVideo as n}from"react-icons/rx";import{Type as e}from"@sinclair/typebox";var w=p({type:"video",name:"Video",category:"media",description:"An embedded video player for YouTube / Vimeo / Wistia links",icon:n,defaultWidth:{mobile:"auto",desktop:`${360*16/9}px`},defaultHeight:{mobile:"168px",desktop:"360px"},minWidth:{mobile:300,desktop:360*16/9},minHeight:{mobile:168,desktop:360},props:s({url:t("Video URL",{description:"URL of the video to embed. It can be a YouTube link or an embed link. It also supports Vimeo and Wistia links.",default:"https://www.youtube.com/watch?v=dQw4w9WgXcQ",metadata:{category:"content","ui:responsive":"desktop"}}),padding:e.Optional(d({description:"Padding inside the video player.","ai:instructions":"Use only a single value like '1rem' or '10px'",title:"Padding","ui:responsive":!0,"ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),rounding:e.Optional(i({default:"rounded-md"})),border:e.Optional(o()),shadow:e.Optional(r())})}),b=[{description:"A YouTube video",type:"video",props:{url:"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}},{description:"An embedded YouTube video",type:"video",props:{url:"https://www.youtube.com/embed/dQw4w9WgXcQ"}},{description:"A Vimeo video",type:"video",props:{url:"https://vimeo.com/123456789"}},{description:"Dynamic course video using course query",type:"video",props:{url:"{{course.videoUrl}}",padding:"1rem",rounding:"rounded-lg",shadow:"shadow-md"}},{description:"Dynamic product demo video using product query",type:"video",props:{url:"{{product.demoVideoUrl}}",padding:"0.5rem",rounding:"rounded-xl",shadow:"shadow-lg",border:{width:"border-2",color:"border-primary-300"}}}];export{w as a,b};
|
|
4
|
+
//# sourceMappingURL=chunk-PSTFJ5IJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/video.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { RxVideo } from \"react-icons/rx\";\nimport { string } from \"../props/string\";\nimport type { BrickProps } from \"../props/types\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport { Type } from \"@sinclair/typebox\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"video\",\n name: \"Video\",\n category: \"media\",\n description: \"An embedded video player for YouTube / Vimeo / Wistia links\",\n icon: RxVideo,\n defaultWidth: {\n mobile: \"auto\",\n desktop: `${(360 * 16) / 9}px`, // 16:9 aspect ratio\n },\n defaultHeight: {\n mobile: \"168px\",\n desktop: \"360px\", // 16:9 aspect ratio\n },\n minWidth: {\n mobile: 300,\n desktop: (360 * 16) / 9,\n },\n minHeight: {\n mobile: 168,\n desktop: 360, // 16:9 aspect ratio\n },\n props: defineProps({\n url: string(\"Video URL\", {\n description:\n \"URL of the video to embed. It can be a YouTube link or an embed link. It also supports Vimeo and Wistia links.\",\n default: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n metadata: {\n category: \"content\",\n \"ui:responsive\": \"desktop\",\n },\n }),\n padding: Type.Optional(\n cssLengthRef({\n description: \"Padding inside the video player.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n shadow: Type.Optional(shadowRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"A YouTube video\",\n type: \"video\",\n props: {\n url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n },\n },\n {\n description: \"An embedded YouTube video\",\n type: \"video\",\n props: {\n url: \"https://www.youtube.com/embed/dQw4w9WgXcQ\",\n },\n },\n {\n description: \"A Vimeo video\",\n type: \"video\",\n props: {\n url: \"https://vimeo.com/123456789\",\n },\n },\n {\n description: \"Dynamic course video using course query\",\n type: \"video\",\n props: {\n url: \"{{course.videoUrl}}\",\n padding: \"1rem\",\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic product demo video using product query\",\n type: \"video\",\n props: {\n url: \"{{product.demoVideoUrl}}\",\n padding: \"0.5rem\",\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n border: {\n width: \"border-2\",\n color: \"border-primary-300\",\n },\n },\n },\n];\n"],"mappings":";;uPAEA,OAAS,WAAAA,MAAe,iBAKxB,OAAS,QAAAC,MAAY,oBAGd,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,QACN,KAAM,QACN,SAAU,QACV,YAAa,8DACb,KAAMC,EACN,aAAc,CACZ,OAAQ,OACR,QAAS,GAAI,IAAM,GAAM,CAAC,IAC5B,EACA,cAAe,CACb,OAAQ,QACR,QAAS,OACX,EACA,SAAU,CACR,OAAQ,IACR,QAAU,IAAM,GAAM,CACxB,EACA,UAAW,CACT,OAAQ,IACR,QAAS,GACX,EACA,MAAOC,EAAY,CACjB,IAAKC,EAAO,YAAa,CACvB,YACE,iHACF,QAAS,8CACT,SAAU,CACR,SAAU,UACV,gBAAiB,SACnB,CACF,CAAC,EACD,QAASC,EAAK,SACZC,EAAa,CACX,YAAa,mCACb,kBAAmB,gDACnB,MAAO,UACP,gBAAiB,GACjB,iBAAkB,gBAClB,aAAc,gBAChB,CAAC,CACH,EACA,SAAUD,EAAK,SACbE,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,OAAQF,EAAK,SAASG,EAAU,CAAC,EACjC,OAAQH,EAAK,SAASI,EAAU,CAAC,CACnC,CAAC,CACH,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,kBACb,KAAM,QACN,MAAO,CACL,IAAK,6CACP,CACF,EACA,CACE,YAAa,4BACb,KAAM,QACN,MAAO,CACL,IAAK,2CACP,CACF,EACA,CACE,YAAa,gBACb,KAAM,QACN,MAAO,CACL,IAAK,6BACP,CACF,EACA,CACE,YAAa,0CACb,KAAM,QACN,MAAO,CACL,IAAK,sBACL,QAAS,OACT,SAAU,aACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,iDACb,KAAM,QACN,MAAO,CACL,IAAK,2BACL,QAAS,SACT,SAAU,aACV,OAAQ,YACR,OAAQ,CACN,MAAO,WACP,MAAO,oBACT,CACF,CACF,CACF","names":["RxVideo","Type","manifest","defineBrickManifest","RxVideo","defineProps","string","Type","cssLengthRef","roundingRef","borderRef","shadowRef","examples"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{c as d}from"./chunk-
|
|
3
|
+
import{c as d}from"./chunk-3YVJ2ELD.js";import{a as c}from"./chunk-RJYZ5FAR.js";import{m as p}from"./chunk-AFVJZPLS.js";import{b as n}from"./chunk-CCI4C3TM.js";import{f as t}from"./chunk-5YRC3IT3.js";import{b as a}from"./chunk-4BTB3MU2.js";import{b as r,d as i}from"./chunk-ZTZJHY4E.js";import{c as s}from"./chunk-CZRCW5EN.js";import{a as o}from"./chunk-JMN3HTZU.js";import{BsCardText as m}from"react-icons/bs";import{Type as e}from"@sinclair/typebox";var I=c({type:"card",name:"Card",description:"A card that can have a title, image, and content.",aiInstructions:"Use this brick to create cards that contain an image, title, and text content. Cards are useful for displaying information in a concise and visually appealing way.",icon:m,defaultWidth:{desktop:"400px",mobile:"100%"},minWidth:{desktop:300},minHeight:{mobile:200,desktop:200},maxWidth:{desktop:650},props:d({colorPreset:e.Optional(s({title:"Color preset",default:{color:"base-100"}})),cardImage:e.Optional(n({"ui:responsive":"desktop",metadata:{category:"content"}})),imagePosition:e.Optional(o(["top","middle","bottom","left","right"],{enumNames:["Top","Middle","Bottom","Left","Right"],title:"Image Position",description:"Where the image should be placed in the card",default:"top","ui:responsive":"desktop",metadata:{category:"content",filter:(g,l)=>!!l.cardImage?.src}})),noTitle:e.Optional(e.Boolean({title:"No Title",description:"Whether to hide the card title",default:!1,"ui:responsive":"desktop"})),title:e.Optional(t({title:"Title"})),text:e.Optional(t({title:"Text"})),rounding:e.Optional(i({default:"rounded-md"})),border:e.Optional(r({})),shadow:e.Optional(a({default:"shadow-sm"})),loop:e.Optional(p())})}),R=[{description:"A simple card with a title and content",type:"card",props:{title:"Card Title",text:"This is the body of the card."}},{description:"Product card with image on the left",type:"card",props:{cardImage:{src:"https://via.placeholder.com/200x200",alt:"Product image"},title:"Premium Headphones",text:"High-quality wireless headphones with noise cancellation and 30-hour battery life."}},{description:"Feature card with large padding and background",type:"card",props:{title:"Key Feature",text:"This feature provides exceptional value and enhances user experience significantly."}},{description:"Blog post card with image at the bottom",type:"card",props:{title:"The Future of Technology",text:"Exploring emerging trends and innovations that will shape our digital landscape in the coming decade.",cardImage:{src:"https://via.placeholder.com/400x200",alt:"Technology concept"}}},{description:"Testimonial card with right-side image",type:"card",props:{title:"Customer Review",text:'"This product exceeded my expectations. The quality is outstanding and the customer service is top-notch!"',cardImage:{src:"https://via.placeholder.com/150x150",alt:"Customer photo"}}},{description:"Minimal centered card without image",type:"card",props:{title:"Simple Announcement",text:"Important updates will be posted here regularly."}},{description:"Event card with multiple variants",type:"card",props:{cardImage:{src:"https://via.placeholder.com/400x250",alt:"Event venue"},title:"Annual Conference 2025",text:"Join us for three days of inspiring talks, networking opportunities, and hands-on workshops."}},{description:"News article card with compact layout",type:"card",props:{cardImage:{src:"https://via.placeholder.com/120x120",alt:"News thumbnail"},title:"Breaking News Update",text:"Latest developments in the ongoing story with expert analysis and community reactions."}},{description:"Call-to-action card with prominent styling",type:"card",props:{title:"Get Started Today",text:"Transform your workflow with our powerful tools. Sign up now and get 30 days free!"}},{description:"Dynamic product card using products query with pricing and details",type:"card",props:{cardImage:{src:"{{products.image}}",alt:"{{products.name}}"},title:"{{products.name}}",text:"{{products.description}}<br><strong>Price: ${{products.price}}</strong><br>Category: {{products.category}}",colorPreset:{color:"primary-50"},border:{width:"border",color:"border-primary-200"},rounding:"rounded-lg",shadow:"shadow-md",loop:{over:"products"}}},{description:"Employee profile card using teamMembers query with contact information",type:"card",props:{cardImage:{src:"{{teamMembers.photo}}",alt:"Photo of {{teamMembers.fullName}}"},imagePosition:"top",title:"{{teamMembers.fullName}}",text:"<strong>{{teamMembers.position}}</strong><br>{{teamMembers.department}}<br>Email: {{teamMembers.email}}<br>Phone: {{teamMembers.phone}}",colorPreset:{color:"neutral-100"},rounding:"rounded-xl",shadow:"shadow-lg",loop:{over:"teamMembers"}}},{description:"Blog post card using blogPosts query with author and date",type:"card",props:{cardImage:{src:"{{blogPosts.featuredImage}}",alt:"{{blogPosts.title}}"},imagePosition:"top",title:"{{blogPosts.title}}",text:"{{blogPosts.excerpt}}<br><br><em>By {{blogPosts.author}} \u2022 {{blogPosts.publishDate}}</em><br>Tags: {{blogPosts.tags}}",colorPreset:{color:"secondary-50"},border:{width:"border",color:"border-secondary-300"},rounding:"rounded-md",shadow:"shadow-sm",loop:{over:"blogPosts"}}},{description:"Event listing card using upcomingEvents query with venue details",type:"card",props:{cardImage:{src:"{{upcomingEvents.banner}}",alt:"{{upcomingEvents.title}}"},imagePosition:"top",title:"{{upcomingEvents.title}}",text:"<strong>{{upcomingEvents.date}} at {{upcomingEvents.time}}</strong><br>{{upcomingEvents.venue}}, {{upcomingEvents.city}}<br><br>{{upcomingEvents.description}}<br><br>Tickets: ${{upcomingEvents.price}}",colorPreset:{color:"accent-100"},border:{width:"border-2",color:"border-accent-400"},rounding:"rounded-lg",shadow:"shadow-md",loop:{over:"upcomingEvents"}}},{description:"Testimonial card using customerReviews query with ratings",type:"card",props:{cardImage:{src:"{{customerReviews.customerPhoto}}",alt:"{{customerReviews.customerName}}"},imagePosition:"left",title:"{{customerReviews.customerName}}",text:'"{{customerReviews.review}}"<br><br><strong>Rating: {{customerReviews.rating}}/5 stars</strong><br>{{customerReviews.company}} \u2022 {{customerReviews.position}}',colorPreset:{color:"neutral-50"},rounding:"rounded-xl",shadow:"shadow-lg",loop:{over:"customerReviews"}}},{description:"Service offering card using companyServices query with pricing tiers",type:"card",props:{cardImage:{src:"{{companyServices.icon}}",alt:"{{companyServices.serviceName}}"},imagePosition:"top",title:"{{companyServices.serviceName}}",text:"{{companyServices.description}}<br><br><strong>Starting at ${{companyServices.startingPrice}}</strong><br>Duration: {{companyServices.duration}}<br>Includes: {{companyServices.features}}",colorPreset:{color:"primary-100"},border:{width:"border",color:"border-primary-300"},rounding:"rounded-lg",shadow:"shadow-md",loop:{over:"companyServices"}}},{description:"Portfolio project card using portfolioWork query with project details",type:"card",props:{cardImage:{src:"{{portfolioWork.thumbnail}}",alt:"{{portfolioWork.projectName}}"},imagePosition:"top",title:"{{portfolioWork.projectName}}",text:"<strong>Client:</strong> {{portfolioWork.clientName}}<br><strong>Year:</strong> {{portfolioWork.year}}<br><strong>Category:</strong> {{portfolioWork.category}}<br><br>{{portfolioWork.description}}",colorPreset:{color:"secondary-100"},rounding:"rounded-md",shadow:"shadow-sm",loop:{over:"portfolioWork"}}}];export{I as a,R as b};
|
|
4
|
+
//# sourceMappingURL=chunk-PXI7AHWS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/card.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { textContentRef } from \"../props/text\";\nimport { BsCardText } from \"react-icons/bs\";\nimport { imageRef } from \"../props/image\";\nimport { type Static, Type } from \"@sinclair/typebox\";\nimport type { BrickProps } from \"../props/types\";\nimport { shadowRef } from \"../props/effects\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { loopRef } from \"../props/dynamic\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\nexport const manifest = defineBrickManifest({\n type: \"card\",\n name: \"Card\",\n description: \"A card that can have a title, image, and content.\",\n aiInstructions:\n \"Use this brick to create cards that contain an image, title, and text content. Cards are useful for displaying information in a concise and visually appealing way.\",\n icon: BsCardText,\n defaultWidth: { desktop: \"400px\", mobile: \"100%\" },\n minWidth: { desktop: 300 },\n minHeight: { mobile: 200, desktop: 200 },\n maxWidth: { desktop: 650 },\n props: defineProps({\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color preset\",\n default: { color: \"base-100\" },\n }),\n ),\n\n cardImage: Type.Optional(\n imageRef({\n \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n imagePosition: Type.Optional(\n StringEnum([\"top\", \"middle\", \"bottom\", \"left\", \"right\"], {\n enumNames: [\"Top\", \"Middle\", \"Bottom\", \"Left\", \"Right\"],\n title: \"Image Position\",\n description: \"Where the image should be placed in the card\",\n default: \"top\",\n \"ui:responsive\": \"desktop\",\n metadata: {\n category: \"content\",\n filter: (manifestProps: Manifest[\"props\"], formData: Static<Manifest[\"props\"]>) => {\n return !!formData.cardImage?.src;\n },\n },\n }),\n ),\n noTitle: Type.Optional(\n Type.Boolean({\n title: \"No Title\",\n description: \"Whether to hide the card title\",\n default: false,\n \"ui:responsive\": \"desktop\",\n }),\n ),\n title: Type.Optional(textContentRef({ title: \"Title\" })),\n text: Type.Optional(textContentRef({ title: \"Text\" })),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(\n borderRef({\n // default: { width: \"border\", color: \"border-base-300\" },\n }),\n ),\n shadow: Type.Optional(\n shadowRef({\n default: \"shadow-sm\",\n }),\n ),\n loop: Type.Optional(loopRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"A simple card with a title and content\",\n type: \"card\",\n props: {\n title: \"Card Title\",\n text: \"This is the body of the card.\",\n },\n },\n {\n description: \"Product card with image on the left\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"https://via.placeholder.com/200x200\",\n alt: \"Product image\",\n },\n title: \"Premium Headphones\",\n text: \"High-quality wireless headphones with noise cancellation and 30-hour battery life.\",\n },\n },\n {\n description: \"Feature card with large padding and background\",\n type: \"card\",\n props: {\n title: \"Key Feature\",\n text: \"This feature provides exceptional value and enhances user experience significantly.\",\n },\n },\n {\n description: \"Blog post card with image at the bottom\",\n type: \"card\",\n props: {\n title: \"The Future of Technology\",\n text: \"Exploring emerging trends and innovations that will shape our digital landscape in the coming decade.\",\n cardImage: {\n src: \"https://via.placeholder.com/400x200\",\n alt: \"Technology concept\",\n },\n },\n },\n {\n description: \"Testimonial card with right-side image\",\n type: \"card\",\n props: {\n title: \"Customer Review\",\n text: '\"This product exceeded my expectations. The quality is outstanding and the customer service is top-notch!\"',\n cardImage: {\n src: \"https://via.placeholder.com/150x150\",\n alt: \"Customer photo\",\n },\n },\n },\n {\n description: \"Minimal centered card without image\",\n type: \"card\",\n props: {\n title: \"Simple Announcement\",\n text: \"Important updates will be posted here regularly.\",\n },\n },\n {\n description: \"Event card with multiple variants\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"https://via.placeholder.com/400x250\",\n alt: \"Event venue\",\n },\n title: \"Annual Conference 2025\",\n text: \"Join us for three days of inspiring talks, networking opportunities, and hands-on workshops.\",\n },\n },\n {\n description: \"News article card with compact layout\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"https://via.placeholder.com/120x120\",\n alt: \"News thumbnail\",\n },\n title: \"Breaking News Update\",\n text: \"Latest developments in the ongoing story with expert analysis and community reactions.\",\n },\n },\n {\n description: \"Call-to-action card with prominent styling\",\n type: \"card\",\n props: {\n title: \"Get Started Today\",\n text: \"Transform your workflow with our powerful tools. Sign up now and get 30 days free!\",\n },\n },\n {\n description: \"Dynamic product card using products query with pricing and details\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{products.image}}\",\n alt: \"{{products.name}}\",\n },\n title: \"{{products.name}}\",\n text: \"{{products.description}}<br><strong>Price: ${{products.price}}</strong><br>Category: {{products.category}}\",\n colorPreset: { color: \"primary-50\" },\n border: { width: \"border\", color: \"border-primary-200\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n loop: {\n over: \"products\",\n },\n },\n },\n {\n description: \"Employee profile card using teamMembers query with contact information\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{teamMembers.photo}}\",\n alt: \"Photo of {{teamMembers.fullName}}\",\n },\n imagePosition: \"top\",\n title: \"{{teamMembers.fullName}}\",\n text: \"<strong>{{teamMembers.position}}</strong><br>{{teamMembers.department}}<br>Email: {{teamMembers.email}}<br>Phone: {{teamMembers.phone}}\",\n colorPreset: { color: \"neutral-100\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n loop: {\n over: \"teamMembers\",\n },\n },\n },\n {\n description: \"Blog post card using blogPosts query with author and date\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{blogPosts.featuredImage}}\",\n alt: \"{{blogPosts.title}}\",\n },\n imagePosition: \"top\",\n title: \"{{blogPosts.title}}\",\n text: \"{{blogPosts.excerpt}}<br><br><em>By {{blogPosts.author}} • {{blogPosts.publishDate}}</em><br>Tags: {{blogPosts.tags}}\",\n colorPreset: { color: \"secondary-50\" },\n border: { width: \"border\", color: \"border-secondary-300\" },\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n loop: {\n over: \"blogPosts\",\n },\n },\n },\n {\n description: \"Event listing card using upcomingEvents query with venue details\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{upcomingEvents.banner}}\",\n alt: \"{{upcomingEvents.title}}\",\n },\n imagePosition: \"top\",\n title: \"{{upcomingEvents.title}}\",\n text: \"<strong>{{upcomingEvents.date}} at {{upcomingEvents.time}}</strong><br>{{upcomingEvents.venue}}, {{upcomingEvents.city}}<br><br>{{upcomingEvents.description}}<br><br>Tickets: ${{upcomingEvents.price}}\",\n colorPreset: { color: \"accent-100\" },\n border: { width: \"border-2\", color: \"border-accent-400\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n loop: {\n over: \"upcomingEvents\",\n },\n },\n },\n {\n description: \"Testimonial card using customerReviews query with ratings\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{customerReviews.customerPhoto}}\",\n alt: \"{{customerReviews.customerName}}\",\n },\n imagePosition: \"left\",\n title: \"{{customerReviews.customerName}}\",\n text: '\"{{customerReviews.review}}\"<br><br><strong>Rating: {{customerReviews.rating}}/5 stars</strong><br>{{customerReviews.company}} • {{customerReviews.position}}',\n colorPreset: { color: \"neutral-50\" },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n loop: {\n over: \"customerReviews\",\n },\n },\n },\n {\n description: \"Service offering card using companyServices query with pricing tiers\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{companyServices.icon}}\",\n alt: \"{{companyServices.serviceName}}\",\n },\n imagePosition: \"top\",\n title: \"{{companyServices.serviceName}}\",\n text: \"{{companyServices.description}}<br><br><strong>Starting at ${{companyServices.startingPrice}}</strong><br>Duration: {{companyServices.duration}}<br>Includes: {{companyServices.features}}\",\n colorPreset: { color: \"primary-100\" },\n border: { width: \"border\", color: \"border-primary-300\" },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n loop: {\n over: \"companyServices\",\n },\n },\n },\n {\n description: \"Portfolio project card using portfolioWork query with project details\",\n type: \"card\",\n props: {\n cardImage: {\n src: \"{{portfolioWork.thumbnail}}\",\n alt: \"{{portfolioWork.projectName}}\",\n },\n imagePosition: \"top\",\n title: \"{{portfolioWork.projectName}}\",\n text: \"<strong>Client:</strong> {{portfolioWork.clientName}}<br><strong>Year:</strong> {{portfolioWork.year}}<br><strong>Category:</strong> {{portfolioWork.category}}<br><br>{{portfolioWork.description}}\",\n colorPreset: { color: \"secondary-100\" },\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n loop: {\n over: \"portfolioWork\",\n },\n },\n },\n];\n"],"mappings":";;+WAGA,OAAS,cAAAA,MAAkB,iBAE3B,OAAsB,QAAAC,MAAY,oBAQ3B,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,OACN,KAAM,OACN,YAAa,oDACb,eACE,sKACF,KAAMC,EACN,aAAc,CAAE,QAAS,QAAS,OAAQ,MAAO,EACjD,SAAU,CAAE,QAAS,GAAI,EACzB,UAAW,CAAE,OAAQ,IAAK,QAAS,GAAI,EACvC,SAAU,CAAE,QAAS,GAAI,EACzB,MAAOC,EAAY,CACjB,YAAaC,EAAK,SAChBC,EAAe,CACb,MAAO,eACP,QAAS,CAAE,MAAO,UAAW,CAC/B,CAAC,CACH,EAEA,UAAWD,EAAK,SACdE,EAAS,CACP,gBAAiB,UACjB,SAAU,CACR,SAAU,SACZ,CACF,CAAC,CACH,EACA,cAAeF,EAAK,SAClBG,EAAW,CAAC,MAAO,SAAU,SAAU,OAAQ,OAAO,EAAG,CACvD,UAAW,CAAC,MAAO,SAAU,SAAU,OAAQ,OAAO,EACtD,MAAO,iBACP,YAAa,+CACb,QAAS,MACT,gBAAiB,UACjB,SAAU,CACR,SAAU,UACV,OAAQ,CAACC,EAAkCC,IAClC,CAAC,CAACA,EAAS,WAAW,GAEjC,CACF,CAAC,CACH,EACA,QAASL,EAAK,SACZA,EAAK,QAAQ,CACX,MAAO,WACP,YAAa,iCACb,QAAS,GACT,gBAAiB,SACnB,CAAC,CACH,EACA,MAAOA,EAAK,SAASM,EAAe,CAAE,MAAO,OAAQ,CAAC,CAAC,EACvD,KAAMN,EAAK,SAASM,EAAe,CAAE,MAAO,MAAO,CAAC,CAAC,EACrD,SAAUN,EAAK,SACbO,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,OAAQP,EAAK,SACXQ,EAAU,CAEV,CAAC,CACH,EACA,OAAQR,EAAK,SACXS,EAAU,CACR,QAAS,WACX,CAAC,CACH,EACA,KAAMT,EAAK,SAASU,EAAQ,CAAC,CAC/B,CAAC,CACH,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,yCACb,KAAM,OACN,MAAO,CACL,MAAO,aACP,KAAM,+BACR,CACF,EACA,CACE,YAAa,sCACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,sCACL,IAAK,eACP,EACA,MAAO,qBACP,KAAM,oFACR,CACF,EACA,CACE,YAAa,iDACb,KAAM,OACN,MAAO,CACL,MAAO,cACP,KAAM,qFACR,CACF,EACA,CACE,YAAa,0CACb,KAAM,OACN,MAAO,CACL,MAAO,2BACP,KAAM,wGACN,UAAW,CACT,IAAK,sCACL,IAAK,oBACP,CACF,CACF,EACA,CACE,YAAa,yCACb,KAAM,OACN,MAAO,CACL,MAAO,kBACP,KAAM,6GACN,UAAW,CACT,IAAK,sCACL,IAAK,gBACP,CACF,CACF,EACA,CACE,YAAa,sCACb,KAAM,OACN,MAAO,CACL,MAAO,sBACP,KAAM,kDACR,CACF,EACA,CACE,YAAa,oCACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,sCACL,IAAK,aACP,EACA,MAAO,yBACP,KAAM,8FACR,CACF,EACA,CACE,YAAa,wCACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,sCACL,IAAK,gBACP,EACA,MAAO,uBACP,KAAM,wFACR,CACF,EACA,CACE,YAAa,6CACb,KAAM,OACN,MAAO,CACL,MAAO,oBACP,KAAM,oFACR,CACF,EACA,CACE,YAAa,qEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,qBACL,IAAK,mBACP,EACA,MAAO,oBACP,KAAM,6GACN,YAAa,CAAE,MAAO,YAAa,EACnC,OAAQ,CAAE,MAAO,SAAU,MAAO,oBAAqB,EACvD,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,UACR,CACF,CACF,EACA,CACE,YAAa,yEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,wBACL,IAAK,mCACP,EACA,cAAe,MACf,MAAO,2BACP,KAAM,0IACN,YAAa,CAAE,MAAO,aAAc,EACpC,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,aACR,CACF,CACF,EACA,CACE,YAAa,4DACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,8BACL,IAAK,qBACP,EACA,cAAe,MACf,MAAO,sBACP,KAAM,6HACN,YAAa,CAAE,MAAO,cAAe,EACrC,OAAQ,CAAE,MAAO,SAAU,MAAO,sBAAuB,EACzD,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,WACR,CACF,CACF,EACA,CACE,YAAa,mEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,4BACL,IAAK,0BACP,EACA,cAAe,MACf,MAAO,2BACP,KAAM,2MACN,YAAa,CAAE,MAAO,YAAa,EACnC,OAAQ,CAAE,MAAO,WAAY,MAAO,mBAAoB,EACxD,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,gBACR,CACF,CACF,EACA,CACE,YAAa,4DACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,oCACL,IAAK,kCACP,EACA,cAAe,OACf,MAAO,mCACP,KAAM,qKACN,YAAa,CAAE,MAAO,YAAa,EACnC,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,iBACR,CACF,CACF,EACA,CACE,YAAa,uEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,2BACL,IAAK,iCACP,EACA,cAAe,MACf,MAAO,kCACP,KAAM,6LACN,YAAa,CAAE,MAAO,aAAc,EACpC,OAAQ,CAAE,MAAO,SAAU,MAAO,oBAAqB,EACvD,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,iBACR,CACF,CACF,EACA,CACE,YAAa,wEACb,KAAM,OACN,MAAO,CACL,UAAW,CACT,IAAK,8BACL,IAAK,+BACP,EACA,cAAe,MACf,MAAO,gCACP,KAAM,uMACN,YAAa,CAAE,MAAO,eAAgB,EACtC,SAAU,aACV,OAAQ,YACR,KAAM,CACJ,KAAM,eACR,CACF,CACF,CACF","names":["BsCardText","Type","manifest","defineBrickManifest","BsCardText","defineProps","Type","colorPresetRef","imageRef","StringEnum","manifestProps","formData","textContentRef","roundingRef","borderRef","shadowRef","loopRef","examples"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
3
|
import{Type as i}from"@sinclair/typebox";function r(t="Date",e){return i.String({title:t,format:"date","ui:field":"date",examples:["2023-03-15"],...e})}function a(t="Date and Time",e){return i.String({title:t,format:"date-time","ui:field":"datetime",examples:["2023-03-15T12:00:00Z"],...e})}export{r as a,a as b};
|
|
4
|
+
//# sourceMappingURL=chunk-Q4H4QEMB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/props/date.ts"],"sourcesContent":["import { Type, type StringOptions } from \"@sinclair/typebox\";\n\nexport function date(title = \"Date\", options?: StringOptions) {\n return Type.String({\n title,\n format: \"date\",\n \"ui:field\": \"date\",\n examples: [\"2023-03-15\"],\n ...options,\n });\n}\n\nexport function datetime(title = \"Date and Time\", options?: StringOptions) {\n return Type.String({\n title,\n format: \"date-time\",\n \"ui:field\": \"datetime\",\n examples: [\"2023-03-15T12:00:00Z\"],\n ...options,\n });\n}\n"],"mappings":";;AAAA,OAAS,QAAAA,MAAgC,oBAElC,SAASC,EAAKC,EAAQ,OAAQC,EAAyB,CAC5D,OAAOH,EAAK,OAAO,CACjB,MAAAE,EACA,OAAQ,OACR,WAAY,OACZ,SAAU,CAAC,YAAY,EACvB,GAAGC,CACL,CAAC,CACH,CAEO,SAASC,EAASF,EAAQ,gBAAiBC,EAAyB,CACzE,OAAOH,EAAK,OAAO,CACjB,MAAAE,EACA,OAAQ,YACR,WAAY,WACZ,SAAU,CAAC,sBAAsB,EACjC,GAAGC,CACL,CAAC,CACH","names":["Type","date","title","options","datetime"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{p}from"./chunk-
|
|
3
|
+
import{p}from"./chunk-AFVJZPLS.js";import{Kind as l}from"@sinclair/typebox";function c(e){if(!("enum"in e))return e.anyOf??e.oneOf;let{enum:o,enumNames:a,"ui:icons":t}=e;return o.map((n,i)=>({const:n,title:a?a[i]:n,"ui:icon":t?t[i]:void 0}))}function S(e,o){if(e.type==="object"&&"properties"in e){let a=e,t={};for(let[n,i]of Object.entries(a.properties)){let r=u(i,o);r!==void 0&&(t[n]=r)}return t}if(e.type==="array"&&"items"in e){let a=e;return o&&typeof a[`default:${o}`]<"u"?a[`default:${o}`]:a.default?a.default:[]}throw new Error("Schema must be either TObject or TArray")}function u(e,o){if(o&&typeof e[`default:${o}`]<"u")return e[`default:${o}`];if("default"in e&&e.default!==void 0)return e.default;if(e.type==="object"&&"properties"in e){let a=e,t={};for(let[n,i]of Object.entries(a.properties)){let r=u(i,o);r!==void 0&&(t[n]=r)}return Object.keys(t).length>0?t:void 0}e.type==="array"&&"items"in e}function T(e,o){function a(t){let n={};for(let[i,r]of Object.entries(t.properties))if(o(r))n[i]=r;else if(r.type==="object"&&r.properties){let s=a(r);Object.keys(s).length>0&&Object.assign(n,s)}return n}return a(e)}function b(e){return f(e,new Set)}function f(e,o){if(!e||typeof e!="object")return e;if("$ref"in e&&typeof e.$ref=="string"){if(o.has(e.$ref)||e[l]==="This")return e;let t=p.getSchema(e.$ref)?.schema;if(!t)return console.error("Schema not found for reference:",e),e;o.add(e.$ref);let{$ref:n,...i}=e,r={...f(t,o),...i};return o.delete(e.$ref),r}if("type"in e&&e.type==="object"&&"properties"in e){let t={};if(e.properties&&typeof e.properties=="object")for(let[i,r]of Object.entries(e.properties))r&&typeof r=="object"?t[i]=f(r,o):t[i]=r;let n={...e};if(Object.keys(t).length>0&&(n.properties=t),"additionalProperties"in e&&e.additionalProperties&&typeof e.additionalProperties=="object"&&e.additionalProperties!==!0&&(n.additionalProperties=f(e.additionalProperties,o)),"patternProperties"in e&&e.patternProperties&&typeof e.patternProperties=="object"){let i={};for(let[r,s]of Object.entries(e.patternProperties))s&&typeof s=="object"?i[r]=f(s,o):i[r]=s;n.patternProperties=i}return n}if("type"in e&&e.type==="array"){let t={...e};return"items"in e&&e.items&&(Array.isArray(e.items)?t.items=e.items.map(n=>f(n,o)):typeof e.items=="object"&&(t.items=f(e.items,o))),"additionalItems"in e&&e.additionalItems&&typeof e.additionalItems=="object"&&e.additionalItems!==!0&&(t.additionalItems=f(e.additionalItems,o)),t}if("anyOf"in e&&Array.isArray(e.anyOf)){let t=e.anyOf.map(n=>f(n,o));return{...e,anyOf:t}}if("oneOf"in e&&Array.isArray(e.oneOf)){let t=e.oneOf.map(n=>f(n,o));return{...e,oneOf:t}}if("allOf"in e&&Array.isArray(e.allOf)){let t=e.allOf.map(n=>f(n,o));return{...e,allOf:t}}if("not"in e&&e.not&&typeof e.not=="object"){let t=f(e.not,o);return{...e,not:t}}if("if"in e||"then"in e||"else"in e){let t={...e};return"if"in e&&e.if&&typeof e.if=="object"&&(t.if=f(e.if,o)),"then"in e&&e.then&&typeof e.then=="object"&&(t.then=f(e.then,o)),"else"in e&&e.else&&typeof e.else=="object"&&(t.else=f(e.else,o)),t}if("definitions"in e||"$defs"in e){let t={...e};if("definitions"in e&&e.definitions&&typeof e.definitions=="object"){let n={};for(let[i,r]of Object.entries(e.definitions))r&&typeof r=="object"?n[i]=f(r,o):n[i]=r;t.definitions=n}if("$defs"in e&&e.$defs&&typeof e.$defs=="object"){let n={};for(let[i,r]of Object.entries(e.$defs))r&&typeof r=="object"?n[i]=f(r,o):n[i]=r;t.$defs=n}return t}let a={...e};for(let[t,n]of Object.entries(e))n&&typeof n=="object"&&!Array.isArray(n)?("type"in n||"$ref"in n||"properties"in n||"items"in n)&&(a[t]=f(n,o)):Array.isArray(n)&&n.some(r=>r&&typeof r=="object"&&("type"in r||"$ref"in r||"properties"in r||"items"in r))&&(a[t]=n.map(r=>r&&typeof r=="object"?f(r,o):r));return a}export{c as a,S as b,T as c,b as d};
|
|
4
|
+
//# sourceMappingURL=chunk-QGYZ7CG5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/utils/schema.ts"],"sourcesContent":["import { type TArray, type TObject, type TSchema, Kind } from \"@sinclair/typebox\";\nimport type { PageAttributes } from \"../attributes\";\nimport { ajv } from \"../ajv\";\n\nexport function normalizeSchemaEnum(schema: TSchema): Array<{ const: string; title: string }> {\n if (!(\"enum\" in schema)) {\n return schema.anyOf ?? schema.oneOf;\n }\n const {\n enum: enumValues,\n enumNames,\n \"ui:icons\": icons,\n } = schema as unknown as { enum: string[]; enumNames?: string[]; \"ui:icons\"?: string[] };\n // combine to key-value pairs\n return enumValues.map((value, index) => ({\n const: value,\n title: enumNames ? enumNames[index] : value,\n \"ui:icon\": icons ? icons[index] : undefined,\n }));\n}\n\nexport function getSchemaDefaults<T extends TObject | TArray>(\n schema: T,\n mode?: \"mobile\" | \"desktop\",\n): T extends TObject ? Record<string, unknown> : unknown[] {\n // Handle object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const defaults: Record<string, unknown> = {};\n\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n\n // Only include properties that have explicit defaults\n if (defaultValue !== undefined) {\n defaults[key] = defaultValue;\n }\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return defaults as any;\n }\n\n // Handle array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n const arraySchema = schema as TArray;\n\n if (mode && typeof arraySchema[`default:${mode}`] !== \"undefined\") {\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return arraySchema[`default:${mode}`] as any;\n }\n\n // If the array itself has an explicit default, return it\n if (arraySchema.default) {\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return arraySchema.default as any;\n }\n\n // Otherwise return empty array\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n return [] as any;\n }\n\n throw new Error(\"Schema must be either TObject or TArray\");\n}\n\n// Helper function for nested schema processing\nfunction getNestedDefaults(schema: TSchema, mode?: \"mobile\" | \"desktop\"): unknown {\n if (mode && typeof schema[`default:${mode}`] !== \"undefined\") {\n return schema[`default:${mode}`];\n }\n // Handle schemas with explicit default values\n if (\"default\" in schema && schema.default !== undefined) {\n return schema.default;\n }\n\n // Handle nested object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const defaults: Record<string, unknown> = {};\n\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n\n // Only include properties that have explicit defaults\n if (defaultValue !== undefined) {\n defaults[key] = defaultValue;\n }\n }\n\n return Object.keys(defaults).length > 0 ? defaults : undefined;\n }\n\n // Handle nested array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n // Arrays only contribute defaults if explicitly set\n return undefined;\n }\n\n // No implicit defaults for any type\n return undefined;\n}\n\nexport type FieldFilter<\n T extends TSchema = TSchema,\n P extends Record<string, unknown> = Record<string, unknown>,\n> = (propsSchema: T, formData: P, pageAttributes: PageAttributes) => boolean;\n\nexport function filterSchemaProperties(schema: TObject, filter: (prop: TSchema) => boolean) {\n function extractProperties(schema: TObject): Record<string, TSchema> {\n const props: Record<string, TSchema> = {};\n for (const [key, prop] of Object.entries(schema.properties)) {\n if (filter(prop)) {\n props[key] = prop;\n } else if (prop.type === \"object\" && prop.properties) {\n const nestedContentProps = extractProperties(prop as TObject);\n if (Object.keys(nestedContentProps).length > 0) {\n Object.assign(props, nestedContentProps);\n }\n }\n }\n return props;\n }\n return extractProperties(schema);\n}\n\n/**\n * Resolves a JSON schema by following $ref references recursively.\n * Handles nested objects, arrays, and complex schema structures.\n */\nexport function resolveSchema<T extends TSchema = TSchema>(schema: T): T {\n return resolveSchemaRecursive(schema, new Set()) as T;\n}\n\n/**\n * Internal recursive function with circular reference detection\n */\nfunction resolveSchemaRecursive(schema: TSchema, visited: Set<string>): TSchema {\n // Handle primitive types and null\n if (!schema || typeof schema !== \"object\") {\n return schema;\n }\n\n // Handle $ref resolution\n if (\"$ref\" in schema && typeof schema.$ref === \"string\") {\n // Prevent infinite recursion with circular references\n if (visited.has(schema.$ref) || schema[Kind] === \"This\") {\n // console.warn(`Circular reference detected: ${schema.$ref}`);\n return schema; // Return original schema to avoid infinite loop\n }\n\n const resolved = ajv.getSchema(schema.$ref)?.schema as TSchema;\n if (!resolved) {\n console.error(\"Schema not found for reference:\", schema);\n return schema;\n }\n\n // Add to visited set and recursively resolve the referenced schema\n visited.add(schema.$ref);\n const { $ref, ...rest } = schema;\n const resolvedSchema = {\n ...resolveSchemaRecursive(resolved, visited),\n ...rest,\n };\n visited.delete(schema.$ref); // Remove from visited after processing\n\n return resolvedSchema as TSchema;\n }\n\n // Handle object schemas\n if (\"type\" in schema && schema.type === \"object\" && \"properties\" in schema) {\n const resolvedProperties: Record<string, TSchema> = {};\n\n if (schema.properties && typeof schema.properties === \"object\") {\n for (const [key, value] of Object.entries(schema.properties)) {\n if (value && typeof value === \"object\") {\n resolvedProperties[key] = resolveSchemaRecursive(value as TSchema, visited);\n } else {\n resolvedProperties[key] = value as TSchema;\n }\n }\n }\n\n const resolvedSchema = { ...schema };\n if (Object.keys(resolvedProperties).length > 0) {\n resolvedSchema.properties = resolvedProperties;\n }\n\n // Handle additionalProperties\n if (\n \"additionalProperties\" in schema &&\n schema.additionalProperties &&\n typeof schema.additionalProperties === \"object\" &&\n schema.additionalProperties !== true\n ) {\n resolvedSchema.additionalProperties = resolveSchemaRecursive(\n schema.additionalProperties as TSchema,\n visited,\n );\n }\n\n // Handle patternProperties\n if (\n \"patternProperties\" in schema &&\n schema.patternProperties &&\n typeof schema.patternProperties === \"object\"\n ) {\n const resolvedPatternProperties: Record<string, TSchema> = {};\n for (const [pattern, patternSchema] of Object.entries(schema.patternProperties)) {\n if (patternSchema && typeof patternSchema === \"object\") {\n resolvedPatternProperties[pattern] = resolveSchemaRecursive(patternSchema as TSchema, visited);\n } else {\n resolvedPatternProperties[pattern] = patternSchema as TSchema;\n }\n }\n resolvedSchema.patternProperties = resolvedPatternProperties;\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle array schemas\n if (\"type\" in schema && schema.type === \"array\") {\n const resolvedSchema = { ...schema };\n\n if (\"items\" in schema && schema.items) {\n if (Array.isArray(schema.items)) {\n resolvedSchema.items = schema.items.map((item) => resolveSchemaRecursive(item as TSchema, visited));\n } else if (typeof schema.items === \"object\") {\n resolvedSchema.items = resolveSchemaRecursive(schema.items as TSchema, visited);\n }\n }\n\n // Handle additionalItems\n if (\n \"additionalItems\" in schema &&\n schema.additionalItems &&\n typeof schema.additionalItems === \"object\" &&\n schema.additionalItems !== true\n ) {\n resolvedSchema.additionalItems = resolveSchemaRecursive(schema.additionalItems as TSchema, visited);\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle union schemas (anyOf)\n if (\"anyOf\" in schema && Array.isArray(schema.anyOf)) {\n const resolvedAnyOf = schema.anyOf.map((subSchema) => {\n return resolveSchemaRecursive(subSchema as TSchema, visited);\n });\n\n return { ...schema, anyOf: resolvedAnyOf } as TSchema;\n }\n\n // Handle union schemas (oneOf)\n if (\"oneOf\" in schema && Array.isArray(schema.oneOf)) {\n const resolvedOneOf = schema.oneOf.map((subSchema) =>\n resolveSchemaRecursive(subSchema as TSchema, visited),\n );\n\n return { ...schema, oneOf: resolvedOneOf } as TSchema;\n }\n\n // Handle intersection schemas (allOf)\n if (\"allOf\" in schema && Array.isArray(schema.allOf)) {\n const resolvedAllOf = schema.allOf.map((subSchema) =>\n resolveSchemaRecursive(subSchema as TSchema, visited),\n );\n\n return { ...schema, allOf: resolvedAllOf } as TSchema;\n }\n\n // Handle not schemas\n if (\"not\" in schema && schema.not && typeof schema.not === \"object\") {\n const resolvedNot = resolveSchemaRecursive(schema.not as TSchema, visited);\n\n return { ...schema, not: resolvedNot } as TSchema;\n }\n\n // Handle conditional schemas (if/then/else)\n if (\"if\" in schema || \"then\" in schema || \"else\" in schema) {\n const resolvedSchema = { ...schema };\n\n if (\"if\" in schema && schema.if && typeof schema.if === \"object\") {\n resolvedSchema.if = resolveSchemaRecursive(schema.if as TSchema, visited);\n }\n\n if (\"then\" in schema && schema.then && typeof schema.then === \"object\") {\n // biome-ignore lint/suspicious/noThenProperty: <explanation>\n resolvedSchema.then = resolveSchemaRecursive(schema.then as TSchema, visited);\n }\n\n if (\"else\" in schema && schema.else && typeof schema.else === \"object\") {\n resolvedSchema.else = resolveSchemaRecursive(schema.else as TSchema, visited);\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle schemas with definitions\n if (\"definitions\" in schema || \"$defs\" in schema) {\n const resolvedSchema = { ...schema };\n\n if (\"definitions\" in schema && schema.definitions && typeof schema.definitions === \"object\") {\n const resolvedDefinitions: Record<string, TSchema> = {};\n for (const [key, def] of Object.entries(schema.definitions)) {\n if (def && typeof def === \"object\") {\n resolvedDefinitions[key] = resolveSchemaRecursive(def as TSchema, visited);\n } else {\n resolvedDefinitions[key] = def as TSchema;\n }\n }\n resolvedSchema.definitions = resolvedDefinitions;\n }\n\n if (\"$defs\" in schema && schema.$defs && typeof schema.$defs === \"object\") {\n const resolved$Defs: Record<string, TSchema> = {};\n for (const [key, def] of Object.entries(schema.$defs)) {\n if (def && typeof def === \"object\") {\n resolved$Defs[key] = resolveSchemaRecursive(def as TSchema, visited);\n } else {\n resolved$Defs[key] = def as TSchema;\n }\n }\n resolvedSchema.$defs = resolved$Defs;\n }\n\n return resolvedSchema as TSchema;\n }\n\n // Handle any other schema types that might contain nested schemas\n const resolvedSchema = { ...schema };\n\n for (const [key, value] of Object.entries(schema)) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n // Check if this looks like a schema object\n if (\"type\" in value || \"$ref\" in value || \"properties\" in value || \"items\" in value) {\n (resolvedSchema as Record<string, unknown>)[key] = resolveSchemaRecursive(value as TSchema, visited);\n }\n } else if (Array.isArray(value)) {\n // Check if array contains schemas\n const hasSchemas = value.some(\n (item) =>\n item &&\n typeof item === \"object\" &&\n (\"type\" in item || \"$ref\" in item || \"properties\" in item || \"items\" in item),\n );\n\n if (hasSchemas) {\n (resolvedSchema as Record<string, unknown>)[key] = value.map((item) =>\n item && typeof item === \"object\" ? resolveSchemaRecursive(item as TSchema, visited) : item,\n );\n }\n }\n }\n\n return resolvedSchema as TSchema;\n}\n"],"mappings":"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","names":["Kind","normalizeSchemaEnum","schema","enumValues","enumNames","icons","value","index","getSchemaDefaults","mode","objectSchema","defaults","key","propertySchema","defaultValue","getNestedDefaults","arraySchema","filterSchemaProperties","filter","extractProperties","props","prop","nestedContentProps","resolveSchema","resolveSchemaRecursive","visited","Kind","resolved","ajv","$ref","rest","resolvedSchema","resolvedProperties","resolvedPatternProperties","pattern","patternSchema","item","resolvedAnyOf","subSchema","resolvedOneOf","resolvedAllOf","resolvedNot","resolvedDefinitions","def","resolved$Defs"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{a as e}from"./chunk-
|
|
3
|
+
import{a as e}from"./chunk-KFM6KXSE.js";import{Type as r}from"@sinclair/typebox";function a(t){return r.Array(r.String({title:t?.title??"Tags",...t}),{"ui:field":"tags",title:t?.title??"Tags",metadata:{category:"content"},...t})}function g(t={}){return e("content:tags",{...t})}export{a,g as b};
|
|
4
|
+
//# sourceMappingURL=chunk-QWGUMKZC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/props/tags.ts"],"sourcesContent":["import { type Static, Type, type StringOptions } from \"@sinclair/typebox\";\nimport { typedRef } from \"~/shared/utils/typed-ref\";\n\nexport function tags(options?: StringOptions) {\n return Type.Array(\n Type.String({\n title: options?.title ?? \"Tags\",\n ...options,\n }),\n {\n // $id: \"content:tags\",\n \"ui:field\": \"tags\",\n title: options?.title ?? \"Tags\",\n metadata: {\n category: \"content\",\n },\n ...options,\n },\n );\n}\n\nexport type TagsSettings = Static<ReturnType<typeof tags>>;\n\nexport function tagsRef(options: StringOptions = {}) {\n return typedRef(\"content:tags\", { ...options });\n}\n"],"mappings":";;wCAAA,OAAsB,QAAAA,MAAgC,oBAG/C,SAASC,EAAKC,EAAyB,CAC5C,OAAOC,EAAK,MACVA,EAAK,OAAO,CACV,MAAOD,GAAS,OAAS,OACzB,GAAGA,CACL,CAAC,EACD,CAEE,WAAY,OACZ,MAAOA,GAAS,OAAS,OACzB,SAAU,CACR,SAAU,SACZ,EACA,GAAGA,CACL,CACF,CACF,CAIO,SAASE,EAAQF,EAAyB,CAAC,EAAG,CACnD,OAAOG,EAAS,eAAgB,CAAE,GAAGH,CAAQ,CAAC,CAChD","names":["Type","tags","options","Type","tagsRef","typedRef"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{c as l}from"./chunk-
|
|
3
|
+
import{c as l}from"./chunk-3YVJ2ELD.js";import{a as c}from"./chunk-RJYZ5FAR.js";import{f as t}from"./chunk-5YRC3IT3.js";import{b as s,d}from"./chunk-4BTB3MU2.js";import{b as i,d as n}from"./chunk-ZTZJHY4E.js";import{c as p}from"./chunk-CZRCW5EN.js";import{b as r,d as o}from"./chunk-SWLUQVK7.js";import{c as a}from"./chunk-OHNYCXPX.js";import{BsAlphabetUppercase as g}from"react-icons/bs";import{Type as e}from"@sinclair/typebox";var C=c({type:"hero",category:"basic",name:"Hero",description:"A big textual element for home pages.",aiInstructions:`Displays a large text element that can be used to display a title and an optional tagline.
|
|
4
4
|
Typically used on home pages to grab the user's attention. It's better NOT to provide the colorPreset prop so that the Hero inherits the background of its parent box or section.`,icon:g,defaultWidth:{desktop:"60dvw",mobile:"auto"},staticClasses:"flex-col",props:l({content:t({title:"Hero title",default:"<h1 style='text-align:center'>Lorem Ipsum<br />dolor sit amet</h1>"}),tagline:e.Optional(t({title:"Hero tagline",default:"<p style='text-align:center'>Use our platform to build your business with confidence.</p>"})),colorPreset:e.Optional(p({title:"Color"})),textShadow:e.Optional(d({default:"text-shadow-sm"})),padding:e.Optional(a({default:"6rem",description:"Padding inside the hero.","ai:instructions":"Use only a single value like '1rem' or '10px'",title:"Padding","ui:responsive":!0,"ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),rounding:e.Optional(n({default:"rounded-md"})),border:e.Optional(i()),shadow:e.Optional(s()),justifyContent:e.Optional(r({default:"justify-center"})),alignItems:e.Optional(o({default:"items-center"}))})}),D=[{description:"Simple welcome hero with primary background",type:"hero",props:{content:"Welcome to Our Platform",tagline:"The future of productivity starts here",padding:"3rem",colorPreset:{color:"primary-400"}}},{description:"Startup hero with primary gradient background to bottom-right",type:"hero",props:{content:"Build Something Amazing",tagline:"Turn your ideas into reality with our cutting-edge tools",padding:"3rem",colorPreset:{color:"primary-500",gradientDirection:"bg-gradient-to-br"}}},{description:"Construction company hero with bold presence",type:"hero",props:{content:"Building Tomorrow Today",tagline:"Quality construction services for residential and commercial projects",padding:"3rem"}},{description:"Fashion brand hero with modern appeal",type:"hero",props:{content:"Express Your Style",tagline:"Contemporary fashion that speaks to your individuality",padding:"6rem"}},{description:"Law firm hero with authoritative tone",type:"hero",props:{content:"Justice You Can Trust",tagline:"Experienced legal representation for individuals and businesses",padding:"6rem",colorPreset:{color:"neutral-800"}}},{description:"Photography studio hero with artistic flair",type:"hero",props:{content:"Capturing Life's Moments",tagline:"Professional photography services for weddings, portraits, and events"}},{description:"Restaurant hero with warm colors and rounded design",type:"hero",props:{content:"Authentic Italian Cuisine",tagline:"Fresh ingredients, traditional recipes, unforgettable flavors",padding:"4rem",colorPreset:{color:"orange-600"},rounding:"rounded-xl",shadow:"shadow-lg"}},{description:"Tech company hero with success gradient and modern styling",type:"hero",props:{content:"Innovation Redefined",tagline:"Pushing the boundaries of what's possible with AI technology",padding:"5rem",colorPreset:{color:"success-500",gradientDirection:"bg-gradient-to-r"},textShadow:"text-shadow-lg",border:{width:"border-2",color:"border-success-300"}}},{description:"Medical practice hero with trust-inspiring design",type:"hero",props:{content:"Your Health, Our Priority",tagline:"Comprehensive healthcare services with compassionate care",padding:"4rem",colorPreset:{color:"blue-500"},rounding:"rounded-lg",justifyContent:"justify-start",alignItems:"items-start"}},{description:"Creative agency hero with warning accent and diagonal gradient",type:"hero",props:{content:"Creative Solutions",tagline:"Bold designs that make your brand unforgettable",padding:"3rem",colorPreset:{color:"warning-400",gradientDirection:"bg-gradient-to-tl"},shadow:"shadow-xl",border:{width:"border",color:"border-warning-200"}}},{description:"Fitness studio hero with danger color and strong presence",type:"hero",props:{content:"Transform Your Body",tagline:"High-intensity training programs that deliver real results",padding:"5rem",colorPreset:{color:"danger-600"},textShadow:"text-shadow-md",rounding:"rounded-2xl",justifyContent:"justify-center",alignItems:"items-center"}},{description:"Minimalist hero with neutral tones and subtle effects",type:"hero",props:{content:"Simplicity Perfected",tagline:"Clean design solutions for modern businesses",padding:"8rem",colorPreset:{color:"neutral-100"},shadow:"shadow-sm",border:{width:"border",color:"border-neutral-300"},rounding:"rounded-md"}},{description:"Dynamic company hero using business query data",type:"hero",props:{content:"Welcome to {{company.name}}",tagline:"{{company.tagline}} - Serving {{company.location}} since {{company.foundedYear}}",padding:"4rem",colorPreset:{color:"primary-500"}}},{description:"Dynamic employee spotlight using employee query",type:"hero",props:{content:"Meet {{employee.fullName}}",tagline:"{{employee.position}} at {{employee.department}} - {{employee.yearsExperience}} years of experience",padding:"3rem",colorPreset:{color:"secondary-400",gradientDirection:"bg-gradient-to-r"}}},{description:"Dynamic product launch hero using product query",type:"hero",props:{content:"Introducing {{product.name}}",tagline:"{{product.description}} - Starting at ${{product.price}}",padding:"5rem",colorPreset:{color:"accent-600"},shadow:"shadow-lg",rounding:"rounded-xl"}},{description:"Dynamic event announcement using event query",type:"hero",props:{content:"{{event.title}}",tagline:"Join us on {{event.date}} at {{event.venue}} - {{event.city}}",padding:"4rem",colorPreset:{color:"primary-400",gradientDirection:"bg-gradient-to-br"},textShadow:"text-shadow-md"}},{description:"Dynamic blog post hero using article query",type:"hero",props:{content:"{{article.title}}",tagline:"By {{article.author}} \u2022 Published {{article.publishDate}} \u2022 {{article.readTime}} min read",padding:"3rem",colorPreset:{color:"neutral-700"},justifyContent:"justify-start",alignItems:"items-start"}},{description:"Dynamic service promotion using service query",type:"hero",props:{content:"{{service.name}}",tagline:"{{service.description}} - {{service.duration}} \u2022 Starting at ${{service.price}}",padding:"6rem",colorPreset:{color:"secondary-500",gradientDirection:"bg-gradient-to-tl"},border:{width:"border-2",color:"border-secondary-300"}}},{description:"Dynamic property showcase using property query",type:"hero",props:{content:"{{property.address}}",tagline:"${{property.price}} \u2022 {{property.bedrooms}} bed, {{property.bathrooms}} bath \u2022 {{property.squareFootage}} sq ft",padding:"4rem",colorPreset:{color:"accent-500"},rounding:"rounded-lg",shadow:"shadow-md"}},{description:"Dynamic course announcement using course query",type:"hero",props:{content:"{{course.title}}",tagline:"Learn {{course.subject}} with {{course.instructor}} \u2022 {{course.duration}} \u2022 {{course.skillLevel}} level",padding:"5rem",colorPreset:{color:"primary-600"},textShadow:"text-shadow-lg",justifyContent:"justify-center",alignItems:"items-center"}}];export{C as a,D as b};
|
|
5
|
+
//# sourceMappingURL=chunk-QX6OGRRT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/hero.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { textContentRef } from \"../props/text\";\nimport { BsAlphabetUppercase } from \"react-icons/bs\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { shadowRef, textShadowRef } from \"../props/effects\";\nimport { borderRef, roundingRef } from \"../props/border\";\nimport { colorPresetRef } from \"../props/color-preset\";\nimport { alignItemsRef, justifyContentRef } from \"../props/align\";\nimport { cssLengthRef } from \"../props/css-length\";\n\nexport const manifest = defineBrickManifest({\n type: \"hero\",\n category: \"basic\",\n name: \"Hero\",\n description: \"A big textual element for home pages.\",\n aiInstructions: `Displays a large text element that can be used to display a title and an optional tagline.\nTypically used on home pages to grab the user's attention. It's better NOT to provide the colorPreset prop so that the Hero inherits the background of its parent box or section.`,\n icon: BsAlphabetUppercase,\n\n defaultWidth: { desktop: \"60dvw\", mobile: \"auto\" },\n\n // Force the wrapper direction to be the same as the text direction\n staticClasses: \"flex-col\",\n\n props: defineProps({\n content: textContentRef({\n title: \"Hero title\",\n default: \"<h1 style='text-align:center'>Lorem Ipsum<br />dolor sit amet</h1>\",\n }),\n tagline: Type.Optional(\n textContentRef({\n title: \"Hero tagline\",\n default: \"<p style='text-align:center'>Use our platform to build your business with confidence.</p>\",\n }),\n ),\n colorPreset: Type.Optional(\n colorPresetRef({\n title: \"Color\",\n }),\n ),\n\n textShadow: Type.Optional(\n textShadowRef({\n default: \"text-shadow-sm\",\n }),\n ),\n padding: Type.Optional(\n cssLengthRef({\n default: \"6rem\",\n description: \"Padding inside the hero.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-md\",\n }),\n ),\n border: Type.Optional(borderRef()),\n shadow: Type.Optional(shadowRef()),\n justifyContent: Type.Optional(\n justifyContentRef({\n default: \"justify-center\",\n }),\n ),\n alignItems: Type.Optional(\n alignItemsRef({\n default: \"items-center\",\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Simple welcome hero with primary background\",\n type: \"hero\",\n props: {\n content: \"Welcome to Our Platform\",\n tagline: \"The future of productivity starts here\",\n padding: \"3rem\",\n colorPreset: {\n color: \"primary-400\",\n },\n },\n },\n {\n description: \"Startup hero with primary gradient background to bottom-right\",\n type: \"hero\",\n props: {\n content: \"Build Something Amazing\",\n tagline: \"Turn your ideas into reality with our cutting-edge tools\",\n padding: \"3rem\",\n colorPreset: {\n color: \"primary-500\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n },\n },\n {\n description: \"Construction company hero with bold presence\",\n type: \"hero\",\n props: {\n content: \"Building Tomorrow Today\",\n tagline: \"Quality construction services for residential and commercial projects\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Fashion brand hero with modern appeal\",\n type: \"hero\",\n props: {\n content: \"Express Your Style\",\n tagline: \"Contemporary fashion that speaks to your individuality\",\n padding: \"6rem\",\n },\n },\n {\n description: \"Law firm hero with authoritative tone\",\n type: \"hero\",\n props: {\n content: \"Justice You Can Trust\",\n tagline: \"Experienced legal representation for individuals and businesses\",\n padding: \"6rem\",\n colorPreset: {\n color: \"neutral-800\",\n },\n },\n },\n {\n description: \"Photography studio hero with artistic flair\",\n type: \"hero\",\n props: {\n content: \"Capturing Life's Moments\",\n tagline: \"Professional photography services for weddings, portraits, and events\",\n },\n },\n {\n description: \"Restaurant hero with warm colors and rounded design\",\n type: \"hero\",\n props: {\n content: \"Authentic Italian Cuisine\",\n tagline: \"Fresh ingredients, traditional recipes, unforgettable flavors\",\n padding: \"4rem\",\n colorPreset: {\n color: \"orange-600\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n {\n description: \"Tech company hero with success gradient and modern styling\",\n type: \"hero\",\n props: {\n content: \"Innovation Redefined\",\n tagline: \"Pushing the boundaries of what's possible with AI technology\",\n padding: \"5rem\",\n colorPreset: {\n color: \"success-500\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n textShadow: \"text-shadow-lg\",\n border: {\n width: \"border-2\",\n color: \"border-success-300\",\n },\n },\n },\n {\n description: \"Medical practice hero with trust-inspiring design\",\n type: \"hero\",\n props: {\n content: \"Your Health, Our Priority\",\n tagline: \"Comprehensive healthcare services with compassionate care\",\n padding: \"4rem\",\n colorPreset: {\n color: \"blue-500\",\n },\n rounding: \"rounded-lg\",\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description: \"Creative agency hero with warning accent and diagonal gradient\",\n type: \"hero\",\n props: {\n content: \"Creative Solutions\",\n tagline: \"Bold designs that make your brand unforgettable\",\n padding: \"3rem\",\n colorPreset: {\n color: \"warning-400\",\n gradientDirection: \"bg-gradient-to-tl\",\n },\n shadow: \"shadow-xl\",\n border: {\n width: \"border\",\n color: \"border-warning-200\",\n },\n },\n },\n {\n description: \"Fitness studio hero with danger color and strong presence\",\n type: \"hero\",\n props: {\n content: \"Transform Your Body\",\n tagline: \"High-intensity training programs that deliver real results\",\n padding: \"5rem\",\n colorPreset: {\n color: \"danger-600\",\n },\n textShadow: \"text-shadow-md\",\n rounding: \"rounded-2xl\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n },\n {\n description: \"Minimalist hero with neutral tones and subtle effects\",\n type: \"hero\",\n props: {\n content: \"Simplicity Perfected\",\n tagline: \"Clean design solutions for modern businesses\",\n padding: \"8rem\",\n colorPreset: {\n color: \"neutral-100\",\n },\n shadow: \"shadow-sm\",\n border: {\n width: \"border\",\n color: \"border-neutral-300\",\n },\n rounding: \"rounded-md\",\n },\n },\n {\n description: \"Dynamic company hero using business query data\",\n type: \"hero\",\n props: {\n content: \"Welcome to {{company.name}}\",\n tagline: \"{{company.tagline}} - Serving {{company.location}} since {{company.foundedYear}}\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-500\",\n },\n },\n },\n {\n description: \"Dynamic employee spotlight using employee query\",\n type: \"hero\",\n props: {\n content: \"Meet {{employee.fullName}}\",\n tagline:\n \"{{employee.position}} at {{employee.department}} - {{employee.yearsExperience}} years of experience\",\n padding: \"3rem\",\n colorPreset: {\n color: \"secondary-400\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n },\n },\n {\n description: \"Dynamic product launch hero using product query\",\n type: \"hero\",\n props: {\n content: \"Introducing {{product.name}}\",\n tagline: \"{{product.description}} - Starting at ${{product.price}}\",\n padding: \"5rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n shadow: \"shadow-lg\",\n rounding: \"rounded-xl\",\n },\n },\n {\n description: \"Dynamic event announcement using event query\",\n type: \"hero\",\n props: {\n content: \"{{event.title}}\",\n tagline: \"Join us on {{event.date}} at {{event.venue}} - {{event.city}}\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-400\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n textShadow: \"text-shadow-md\",\n },\n },\n {\n description: \"Dynamic blog post hero using article query\",\n type: \"hero\",\n props: {\n content: \"{{article.title}}\",\n tagline: \"By {{article.author}} • Published {{article.publishDate}} • {{article.readTime}} min read\",\n padding: \"3rem\",\n colorPreset: {\n color: \"neutral-700\",\n },\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description: \"Dynamic service promotion using service query\",\n type: \"hero\",\n props: {\n content: \"{{service.name}}\",\n tagline: \"{{service.description}} - {{service.duration}} • Starting at ${{service.price}}\",\n padding: \"6rem\",\n colorPreset: {\n color: \"secondary-500\",\n gradientDirection: \"bg-gradient-to-tl\",\n },\n border: {\n width: \"border-2\",\n color: \"border-secondary-300\",\n },\n },\n },\n {\n description: \"Dynamic property showcase using property query\",\n type: \"hero\",\n props: {\n content: \"{{property.address}}\",\n tagline:\n \"${{property.price}} • {{property.bedrooms}} bed, {{property.bathrooms}} bath • {{property.squareFootage}} sq ft\",\n padding: \"4rem\",\n colorPreset: {\n color: \"accent-500\",\n },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic course announcement using course query\",\n type: \"hero\",\n props: {\n content: \"{{course.title}}\",\n tagline:\n \"Learn {{course.subject}} with {{course.instructor}} • {{course.duration}} • {{course.skillLevel}} level\",\n padding: \"5rem\",\n colorPreset: {\n color: \"primary-600\",\n },\n textShadow: \"text-shadow-lg\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n },\n];\n"],"mappings":";;gVAGA,OAAS,uBAAAA,MAA2B,iBAEpC,OAAS,QAAAC,MAAY,oBAOd,IAAMC,EAAWC,EAAoB,CAC1C,KAAM,OACN,SAAU,QACV,KAAM,OACN,YAAa,wCACb,eAAgB;AAAA,mLAEhB,KAAMC,EAEN,aAAc,CAAE,QAAS,QAAS,OAAQ,MAAO,EAGjD,cAAe,WAEf,MAAOC,EAAY,CACjB,QAASC,EAAe,CACtB,MAAO,aACP,QAAS,oEACX,CAAC,EACD,QAASC,EAAK,SACZD,EAAe,CACb,MAAO,eACP,QAAS,2FACX,CAAC,CACH,EACA,YAAaC,EAAK,SAChBC,EAAe,CACb,MAAO,OACT,CAAC,CACH,EAEA,WAAYD,EAAK,SACfE,EAAc,CACZ,QAAS,gBACX,CAAC,CACH,EACA,QAASF,EAAK,SACZG,EAAa,CACX,QAAS,OACT,YAAa,2BACb,kBAAmB,gDACnB,MAAO,UACP,gBAAiB,GACjB,iBAAkB,gBAClB,aAAc,gBAChB,CAAC,CACH,EACA,SAAUH,EAAK,SACbI,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,OAAQJ,EAAK,SAASK,EAAU,CAAC,EACjC,OAAQL,EAAK,SAASM,EAAU,CAAC,EACjC,eAAgBN,EAAK,SACnBO,EAAkB,CAChB,QAAS,gBACX,CAAC,CACH,EACA,WAAYP,EAAK,SACfQ,EAAc,CACZ,QAAS,cACX,CAAC,CACH,CACF,CAAC,CACH,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,8CACb,KAAM,OACN,MAAO,CACL,QAAS,0BACT,QAAS,yCACT,QAAS,OACT,YAAa,CACX,MAAO,aACT,CACF,CACF,EACA,CACE,YAAa,gEACb,KAAM,OACN,MAAO,CACL,QAAS,0BACT,QAAS,2DACT,QAAS,OACT,YAAa,CACX,MAAO,cACP,kBAAmB,mBACrB,CACF,CACF,EACA,CACE,YAAa,+CACb,KAAM,OACN,MAAO,CACL,QAAS,0BACT,QAAS,wEACT,QAAS,MACX,CACF,EACA,CACE,YAAa,wCACb,KAAM,OACN,MAAO,CACL,QAAS,qBACT,QAAS,yDACT,QAAS,MACX,CACF,EACA,CACE,YAAa,wCACb,KAAM,OACN,MAAO,CACL,QAAS,wBACT,QAAS,kEACT,QAAS,OACT,YAAa,CACX,MAAO,aACT,CACF,CACF,EACA,CACE,YAAa,8CACb,KAAM,OACN,MAAO,CACL,QAAS,2BACT,QAAS,uEACX,CACF,EACA,CACE,YAAa,sDACb,KAAM,OACN,MAAO,CACL,QAAS,4BACT,QAAS,gEACT,QAAS,OACT,YAAa,CACX,MAAO,YACT,EACA,SAAU,aACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,6DACb,KAAM,OACN,MAAO,CACL,QAAS,uBACT,QAAS,+DACT,QAAS,OACT,YAAa,CACX,MAAO,cACP,kBAAmB,kBACrB,EACA,WAAY,iBACZ,OAAQ,CACN,MAAO,WACP,MAAO,oBACT,CACF,CACF,EACA,CACE,YAAa,oDACb,KAAM,OACN,MAAO,CACL,QAAS,4BACT,QAAS,4DACT,QAAS,OACT,YAAa,CACX,MAAO,UACT,EACA,SAAU,aACV,eAAgB,gBAChB,WAAY,aACd,CACF,EACA,CACE,YAAa,iEACb,KAAM,OACN,MAAO,CACL,QAAS,qBACT,QAAS,kDACT,QAAS,OACT,YAAa,CACX,MAAO,cACP,kBAAmB,mBACrB,EACA,OAAQ,YACR,OAAQ,CACN,MAAO,SACP,MAAO,oBACT,CACF,CACF,EACA,CACE,YAAa,4DACb,KAAM,OACN,MAAO,CACL,QAAS,sBACT,QAAS,6DACT,QAAS,OACT,YAAa,CACX,MAAO,YACT,EACA,WAAY,iBACZ,SAAU,cACV,eAAgB,iBAChB,WAAY,cACd,CACF,EACA,CACE,YAAa,wDACb,KAAM,OACN,MAAO,CACL,QAAS,uBACT,QAAS,+CACT,QAAS,OACT,YAAa,CACX,MAAO,aACT,EACA,OAAQ,YACR,OAAQ,CACN,MAAO,SACP,MAAO,oBACT,EACA,SAAU,YACZ,CACF,EACA,CACE,YAAa,iDACb,KAAM,OACN,MAAO,CACL,QAAS,8BACT,QAAS,mFACT,QAAS,OACT,YAAa,CACX,MAAO,aACT,CACF,CACF,EACA,CACE,YAAa,kDACb,KAAM,OACN,MAAO,CACL,QAAS,6BACT,QACE,sGACF,QAAS,OACT,YAAa,CACX,MAAO,gBACP,kBAAmB,kBACrB,CACF,CACF,EACA,CACE,YAAa,kDACb,KAAM,OACN,MAAO,CACL,QAAS,+BACT,QAAS,2DACT,QAAS,OACT,YAAa,CACX,MAAO,YACT,EACA,OAAQ,YACR,SAAU,YACZ,CACF,EACA,CACE,YAAa,+CACb,KAAM,OACN,MAAO,CACL,QAAS,kBACT,QAAS,gEACT,QAAS,OACT,YAAa,CACX,MAAO,cACP,kBAAmB,mBACrB,EACA,WAAY,gBACd,CACF,EACA,CACE,YAAa,6CACb,KAAM,OACN,MAAO,CACL,QAAS,oBACT,QAAS,sGACT,QAAS,OACT,YAAa,CACX,MAAO,aACT,EACA,eAAgB,gBAChB,WAAY,aACd,CACF,EACA,CACE,YAAa,gDACb,KAAM,OACN,MAAO,CACL,QAAS,mBACT,QAAS,uFACT,QAAS,OACT,YAAa,CACX,MAAO,gBACP,kBAAmB,mBACrB,EACA,OAAQ,CACN,MAAO,WACP,MAAO,sBACT,CACF,CACF,EACA,CACE,YAAa,iDACb,KAAM,OACN,MAAO,CACL,QAAS,uBACT,QACE,4HACF,QAAS,OACT,YAAa,CACX,MAAO,YACT,EACA,SAAU,aACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,iDACb,KAAM,OACN,MAAO,CACL,QAAS,mBACT,QACE,oHACF,QAAS,OACT,YAAa,CACX,MAAO,aACT,EACA,WAAY,iBACZ,eAAgB,iBAChB,WAAY,cACd,CACF,CACF","names":["BsAlphabetUppercase","Type","manifest","defineBrickManifest","BsAlphabetUppercase","defineProps","textContentRef","Type","colorPresetRef","textShadowRef","cssLengthRef","roundingRef","borderRef","shadowRef","justifyContentRef","alignItemsRef","examples"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{a as s}from"./chunk-
|
|
3
|
+
import{a as s}from"./chunk-HAGKVQOW.js";import{c as n}from"./chunk-3YVJ2ELD.js";import{a}from"./chunk-RJYZ5FAR.js";import{a as o}from"./chunk-A3GF4PYW.js";import{b as i}from"./chunk-4BTB3MU2.js";import{d as t}from"./chunk-ZTZJHY4E.js";import{LiaMapMarkedAltSolid as d}from"react-icons/lia";import{Type as e}from"@sinclair/typebox";var r={lat:48.8566,lng:2.3522,zoom:15},f=a({type:"map",name:"Map",description:"A map element showing a location",aiInstructions:"This brick can be used to show a location on a map. Use the 'location' prop to set the coordinates and an optional tooltip.",minWidth:{desktop:280,mobile:280},minHeight:{desktop:200,mobile:120},defaultHeight:{desktop:"320px",mobile:"280px"},defaultWidth:{desktop:"380px",mobile:"100%"},icon:d,props:n({lat:o("Latitude",{"ui:field":"hidden"}),lng:o("Longitude",{"ui:field":"hidden"}),address:o("Address",{"ui:field":"geoaddress",metadata:{category:"content"}}),tooltip:e.Optional(o("Tooltip",{metadata:{category:"content"}})),zoom:e.Optional(s("Zoom",{description:"Zoom level for the map","ui:instructions":"The zoom level should be between 0 (world view) and 21 (street view).","ui:field":"slider",minimum:12,maximum:18,default:r.zoom,metadata:{category:"content"}})),rounding:e.Optional(t({default:"rounded-xl"})),shadow:e.Optional(i())})}),y=[{description:"Map showing a specific location",type:"map",props:{lat:"37.7749",lng:"-122.4194",address:"San Francisco, CA",tooltip:"San Francisco, CA",shadow:"shadow-md",width:"40%",height:"250px"}},{description:"Map with custom styles",type:"map",props:{lat:"40.7128",lng:"-74.0060",address:"New York, NY",tooltip:"New York, NY",shadow:"shadow-lg",width:"100%",height:"400px"}},{description:"Business location map with high zoom level and rounded corners",type:"map",props:{lat:"34.0522",lng:"-118.2437",address:"Los Angeles, CA",tooltip:"Our Los Angeles Office",zoom:18,rounding:"rounded-2xl",shadow:"shadow-xl"}},{description:"Event venue map with medium zoom and subtle shadow",type:"map",props:{lat:"41.8781",lng:"-87.6298",address:"Chicago, IL",tooltip:"Conference Center - Chicago",zoom:16,rounding:"rounded-lg",shadow:"shadow-sm"}},{description:"Restaurant location with default zoom and sharp corners",type:"map",props:{lat:"25.7617",lng:"-80.1918",address:"Miami, FL",tooltip:"Oceanview Restaurant & Bar",zoom:15,rounding:"rounded-none",shadow:"shadow-md"}},{description:"Hotel location with low zoom for area overview",type:"map",props:{lat:"36.1699",lng:"-115.1398",address:"Las Vegas, NV",tooltip:"Downtown Las Vegas Hotel",zoom:13,rounding:"rounded-xl",shadow:"shadow-lg"}},{description:"Store location with maximum zoom for street view detail",type:"map",props:{lat:"47.6062",lng:"-122.3321",address:"Seattle, WA",tooltip:"Seattle Flagship Store",zoom:18,rounding:"rounded-md",shadow:"shadow-sm"}},{description:"Park location with moderate zoom and minimal styling",type:"map",props:{lat:"39.7392",lng:"-104.9903",address:"Denver, CO",tooltip:"City Park Recreation Area",zoom:14,rounding:"rounded-sm"}},{description:"Dynamic business location using company query",type:"map",props:{lat:"{{company.latitude}}",lng:"{{company.longitude}}",address:"{{company.address}}",tooltip:"{{company.name}} - {{company.address}}",zoom:16,rounding:"rounded-lg",shadow:"shadow-md"}},{description:"Dynamic event venue using event query",type:"map",props:{lat:"{{event.venueLatitude}}",lng:"{{event.venueLongitude}}",address:"{{event.venueAddress}}",tooltip:"{{event.title}} - {{event.venueName}}",zoom:17,rounding:"rounded-xl",shadow:"shadow-lg"}}];export{r as a,f as b,y as c};
|
|
4
|
+
//# sourceMappingURL=chunk-R6ATC4TC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/bricks/manifests/map.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { LiaMapMarkedAltSolid } from \"react-icons/lia\";\nimport { roundingRef } from \"../props/border\";\nimport { shadowRef } from \"../props/effects\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { number } from \"../props/number\";\nimport { string } from \"../props/string\";\n\nexport const DEFAULTS = {\n lat: 48.8566, // Default latitude (Paris)\n lng: 2.3522, // Default longitude (Paris)\n zoom: 15, // Default zoom level\n};\n\nexport const manifest = defineBrickManifest({\n type: \"map\",\n name: \"Map\",\n description: \"A map element showing a location\",\n aiInstructions:\n \"This brick can be used to show a location on a map. Use the 'location' prop to set the coordinates and an optional tooltip.\",\n minWidth: {\n desktop: 280,\n mobile: 280,\n },\n minHeight: {\n desktop: 200,\n mobile: 120,\n },\n defaultHeight: {\n desktop: \"320px\",\n mobile: \"280px\",\n },\n defaultWidth: {\n desktop: \"380px\",\n mobile: \"100%\",\n },\n icon: LiaMapMarkedAltSolid,\n props: defineProps({\n // location: geolocation({ defaultZoom: DEFAULTS.zoom }),\n lat: string(\"Latitude\", { \"ui:field\": \"hidden\" }),\n lng: string(\"Longitude\", { \"ui:field\": \"hidden\" }),\n address: string(\"Address\", {\n \"ui:field\": \"geoaddress\",\n metadata: {\n category: \"content\",\n },\n }),\n tooltip: Type.Optional(\n string(\"Tooltip\", {\n metadata: {\n category: \"content\",\n },\n }),\n ),\n zoom: Type.Optional(\n number(\"Zoom\", {\n description: \"Zoom level for the map\",\n \"ui:instructions\": \"The zoom level should be between 0 (world view) and 21 (street view).\",\n \"ui:field\": \"slider\",\n minimum: 12,\n maximum: 18,\n default: DEFAULTS.zoom,\n metadata: {\n category: \"content\",\n },\n }),\n ),\n rounding: Type.Optional(\n roundingRef({\n default: \"rounded-xl\",\n }),\n ),\n shadow: Type.Optional(shadowRef()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: {\n description: string;\n type: string;\n props: BrickProps<Manifest>[\"brick\"][\"props\"];\n}[] = [\n {\n description: \"Map showing a specific location\",\n type: \"map\",\n props: {\n lat: \"37.7749\",\n lng: \"-122.4194\",\n address: \"San Francisco, CA\",\n tooltip: \"San Francisco, CA\",\n shadow: \"shadow-md\",\n width: \"40%\",\n height: \"250px\",\n },\n },\n {\n description: \"Map with custom styles\",\n type: \"map\",\n props: {\n lat: \"40.7128\",\n lng: \"-74.0060\",\n address: \"New York, NY\",\n tooltip: \"New York, NY\",\n shadow: \"shadow-lg\",\n width: \"100%\",\n height: \"400px\",\n },\n },\n {\n description: \"Business location map with high zoom level and rounded corners\",\n type: \"map\",\n props: {\n lat: \"34.0522\",\n lng: \"-118.2437\",\n address: \"Los Angeles, CA\",\n tooltip: \"Our Los Angeles Office\",\n zoom: 18,\n rounding: \"rounded-2xl\",\n shadow: \"shadow-xl\",\n },\n },\n {\n description: \"Event venue map with medium zoom and subtle shadow\",\n type: \"map\",\n props: {\n lat: \"41.8781\",\n lng: \"-87.6298\",\n address: \"Chicago, IL\",\n tooltip: \"Conference Center - Chicago\",\n zoom: 16,\n rounding: \"rounded-lg\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Restaurant location with default zoom and sharp corners\",\n type: \"map\",\n props: {\n lat: \"25.7617\",\n lng: \"-80.1918\",\n address: \"Miami, FL\",\n tooltip: \"Oceanview Restaurant & Bar\",\n zoom: 15,\n rounding: \"rounded-none\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Hotel location with low zoom for area overview\",\n type: \"map\",\n props: {\n lat: \"36.1699\",\n lng: \"-115.1398\",\n address: \"Las Vegas, NV\",\n tooltip: \"Downtown Las Vegas Hotel\",\n zoom: 13,\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n {\n description: \"Store location with maximum zoom for street view detail\",\n type: \"map\",\n props: {\n lat: \"47.6062\",\n lng: \"-122.3321\",\n address: \"Seattle, WA\",\n tooltip: \"Seattle Flagship Store\",\n zoom: 18,\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Park location with moderate zoom and minimal styling\",\n type: \"map\",\n props: {\n lat: \"39.7392\",\n lng: \"-104.9903\",\n address: \"Denver, CO\",\n tooltip: \"City Park Recreation Area\",\n zoom: 14,\n rounding: \"rounded-sm\",\n },\n },\n {\n description: \"Dynamic business location using company query\",\n type: \"map\",\n props: {\n lat: \"{{company.latitude}}\",\n lng: \"{{company.longitude}}\",\n address: \"{{company.address}}\",\n tooltip: \"{{company.name}} - {{company.address}}\",\n zoom: 16,\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic event venue using event query\",\n type: \"map\",\n props: {\n lat: \"{{event.venueLatitude}}\",\n lng: \"{{event.venueLongitude}}\",\n address: \"{{event.venueAddress}}\",\n tooltip: \"{{event.title}} - {{event.venueName}}\",\n zoom: 17,\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n];\n"],"mappings":";;2OAEA,OAAS,wBAAAA,MAA4B,kBAIrC,OAAS,QAAAC,MAAY,oBAId,IAAMC,EAAW,CACtB,IAAK,QACL,IAAK,OACL,KAAM,EACR,EAEaC,EAAWC,EAAoB,CAC1C,KAAM,MACN,KAAM,MACN,YAAa,mCACb,eACE,8HACF,SAAU,CACR,QAAS,IACT,OAAQ,GACV,EACA,UAAW,CACT,QAAS,IACT,OAAQ,GACV,EACA,cAAe,CACb,QAAS,QACT,OAAQ,OACV,EACA,aAAc,CACZ,QAAS,QACT,OAAQ,MACV,EACA,KAAMC,EACN,MAAOC,EAAY,CAEjB,IAAKC,EAAO,WAAY,CAAE,WAAY,QAAS,CAAC,EAChD,IAAKA,EAAO,YAAa,CAAE,WAAY,QAAS,CAAC,EACjD,QAASA,EAAO,UAAW,CACzB,WAAY,aACZ,SAAU,CACR,SAAU,SACZ,CACF,CAAC,EACD,QAASC,EAAK,SACZD,EAAO,UAAW,CAChB,SAAU,CACR,SAAU,SACZ,CACF,CAAC,CACH,EACA,KAAMC,EAAK,SACTC,EAAO,OAAQ,CACb,YAAa,yBACb,kBAAmB,wEACnB,WAAY,SACZ,QAAS,GACT,QAAS,GACT,QAASP,EAAS,KAClB,SAAU,CACR,SAAU,SACZ,CACF,CAAC,CACH,EACA,SAAUM,EAAK,SACbE,EAAY,CACV,QAAS,YACX,CAAC,CACH,EACA,OAAQF,EAAK,SAASG,EAAU,CAAC,CACnC,CAAC,CACH,CAAC,EAIYC,EAIP,CACJ,CACE,YAAa,kCACb,KAAM,MACN,MAAO,CACL,IAAK,UACL,IAAK,YACL,QAAS,oBACT,QAAS,oBACT,OAAQ,YACR,MAAO,MACP,OAAQ,OACV,CACF,EACA,CACE,YAAa,yBACb,KAAM,MACN,MAAO,CACL,IAAK,UACL,IAAK,WACL,QAAS,eACT,QAAS,eACT,OAAQ,YACR,MAAO,OACP,OAAQ,OACV,CACF,EACA,CACE,YAAa,iEACb,KAAM,MACN,MAAO,CACL,IAAK,UACL,IAAK,YACL,QAAS,kBACT,QAAS,yBACT,KAAM,GACN,SAAU,cACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,qDACb,KAAM,MACN,MAAO,CACL,IAAK,UACL,IAAK,WACL,QAAS,cACT,QAAS,8BACT,KAAM,GACN,SAAU,aACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,0DACb,KAAM,MACN,MAAO,CACL,IAAK,UACL,IAAK,WACL,QAAS,YACT,QAAS,6BACT,KAAM,GACN,SAAU,eACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,iDACb,KAAM,MACN,MAAO,CACL,IAAK,UACL,IAAK,YACL,QAAS,gBACT,QAAS,2BACT,KAAM,GACN,SAAU,aACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,0DACb,KAAM,MACN,MAAO,CACL,IAAK,UACL,IAAK,YACL,QAAS,cACT,QAAS,yBACT,KAAM,GACN,SAAU,aACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,uDACb,KAAM,MACN,MAAO,CACL,IAAK,UACL,IAAK,YACL,QAAS,aACT,QAAS,4BACT,KAAM,GACN,SAAU,YACZ,CACF,EACA,CACE,YAAa,gDACb,KAAM,MACN,MAAO,CACL,IAAK,uBACL,IAAK,wBACL,QAAS,sBACT,QAAS,yCACT,KAAM,GACN,SAAU,aACV,OAAQ,WACV,CACF,EACA,CACE,YAAa,wCACb,KAAM,MACN,MAAO,CACL,IAAK,0BACL,IAAK,2BACL,QAAS,yBACT,QAAS,wCACT,KAAM,GACN,SAAU,aACV,OAAQ,WACV,CACF,CACF","names":["LiaMapMarkedAltSolid","Type","DEFAULTS","manifest","defineBrickManifest","LiaMapMarkedAltSolid","defineProps","string","Type","number","roundingRef","shadowRef","examples"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
3
|
var i="Invariant failed";function e(r,n){if(r)return;let t=typeof n=="function"?n():n,o=t?`${i}: ${t}`:i;throw new Error(o)}export{e as a};
|
|
4
|
+
//# sourceMappingURL=chunk-RDZK73KV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/utils/invariant.ts"],"sourcesContent":["const prefix: string = \"Invariant failed\";\n\nexport default function invariant(\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n condition: any,\n // Not providing an inline default argument for message as the result is smaller\n /**\n * Can provide a string, or a function that returns a string for cases where\n * the message takes a fair amount of effort to compute\n */\n message?: string | (() => string),\n): asserts condition {\n if (condition) {\n return;\n }\n\n // When not in production we allow the message to pass through\n const provided: string | undefined = typeof message === \"function\" ? message() : message;\n\n // Options:\n // 1. message provided: `${prefix}: ${provided}`\n // 2. message not provided: prefix\n const value: string = provided ? `${prefix}: ${provided}` : prefix;\n throw new Error(value);\n}\n"],"mappings":";;AAAA,IAAMA,EAAiB,mBAER,SAARC,EAELC,EAMAC,EACmB,CACnB,GAAID,EACF,OAIF,IAAME,EAA+B,OAAOD,GAAY,WAAaA,EAAQ,EAAIA,EAK3EE,EAAgBD,EAAW,GAAGJ,CAAM,KAAKI,CAAQ,GAAKJ,EAC5D,MAAM,IAAI,MAAMK,CAAK,CACvB","names":["prefix","invariant","condition","message","provided","value"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{b as o}from"./chunk-
|
|
3
|
+
import{b as o}from"./chunk-QGYZ7CG5.js";function y({props:e,defaultHeight:t,defaultWidth:i,category:r="widgets",isContainer:s=!1,hideInLibrary:n=!1,isGlobalBrick:a=!1,deletable:p=!0,movable:l=!0,resizable:c=!0,duplicatable:b=!0,defaultInspectorTab:m="preset",icon:d,...u}){return{...u,icon:d,props:e,category:r,defaultInspectorTab:m,hideInLibrary:n,deletable:p,movable:l,resizable:c,duplicatable:b,isContainer:s,isGlobalBrick:a,defaultWidth:{mobile:i?.mobile??"auto",desktop:i?.desktop??"auto"},defaultHeight:{mobile:t?.mobile??"auto",desktop:t?.desktop??"auto"}}}function k(e){return{manifest:e,props:o(e.props),mobileProps:{}}}export{y as a,k as b};
|
|
4
|
+
//# sourceMappingURL=chunk-RJYZ5FAR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/brick-manifest.ts"],"sourcesContent":["import type { TObject, TProperties, TArray } from \"@sinclair/typebox\";\nimport type { IconBase, IconType } from \"react-icons/lib\";\nimport { getSchemaDefaults } from \"./utils/schema\";\nimport type { ReactNode } from \"react\";\n\nexport type BrickCategory = \"layout\" | \"basic\" | \"media\" | \"widgets\" | \"container\";\n\ntype BrickManifestProps<BProps extends TProperties, DSSchema extends TObject | TArray<TObject>> = {\n type: string;\n category?: BrickCategory;\n name: string;\n icon: IconType;\n iconClassName?: string;\n staticClasses?: string;\n description?: string;\n // Min width in pixels\n minWidth?: {\n mobile?: number;\n desktop?: number;\n };\n // Max width in pixels\n maxWidth?: {\n mobile?: number;\n desktop?: number;\n };\n // Min height in pixels\n minHeight?: {\n mobile?: number;\n desktop?: number;\n };\n // Max height in pixels\n maxHeight?: {\n mobile?: number;\n desktop?: number;\n };\n // default width can be in various css units, but should be a number\n defaultWidth?: {\n mobile?: string;\n desktop?: string;\n };\n defaultHeight?: {\n mobile?: string;\n desktop?: string;\n };\n props: TObject<BProps>;\n hideInLibrary?: boolean;\n\n isGlobalBrick?: boolean;\n /**\n * If true, the brick can consume multiple rows of data from a data source.\n * This is useful for bricks that display lists or collections of items.\n */\n consumesMultipleQueryRows?: boolean;\n defaultInspectorTab?: \"preset\" | \"style\" | \"content\";\n deletable?: boolean;\n movable?: boolean;\n resizable?: boolean | \"horizontal\" | \"vertical\";\n duplicatable?: boolean;\n /**\n * Some specific bricks like sidebar or header may not be draggable inline, as we want to place them manually in the layout.\n */\n inlineDragDisabled?: boolean;\n isContainer?: boolean;\n aiInstructions?: string;\n};\n\nexport function defineBrickManifest<BProps extends TProperties, DSSchema extends TObject | TArray<TObject>>({\n props,\n defaultHeight,\n defaultWidth,\n category = \"widgets\",\n isContainer = false,\n hideInLibrary = false,\n isGlobalBrick = false,\n deletable = true,\n movable = true,\n resizable = true,\n duplicatable = true,\n defaultInspectorTab = \"preset\",\n icon,\n ...rest\n}: BrickManifestProps<BProps, DSSchema>) {\n return {\n ...rest,\n icon,\n props,\n category,\n defaultInspectorTab,\n hideInLibrary,\n deletable,\n movable,\n resizable,\n duplicatable,\n isContainer,\n isGlobalBrick,\n defaultWidth: { mobile: defaultWidth?.mobile ?? \"auto\", desktop: defaultWidth?.desktop ?? \"auto\" },\n defaultHeight: {\n mobile: defaultHeight?.mobile ?? \"auto\",\n desktop: defaultHeight?.desktop ?? \"auto\",\n },\n } as const;\n}\n\nexport type BrickManifest = ReturnType<typeof defineBrickManifest>;\n\nexport function getBrickManifestDefaults<M extends BrickManifest>(manifest: M) {\n return {\n manifest,\n props: getSchemaDefaults(manifest.props),\n mobileProps: {},\n };\n}\n\nexport type BrickDefaults = ReturnType<typeof getBrickManifestDefaults>;\n\nexport type BrickConstraints = Pick<\n BrickManifest,\n \"defaultWidth\" | \"defaultHeight\" | \"minWidth\" | \"minHeight\" | \"maxWidth\" | \"resizable\" | \"movable\"\n>;\n"],"mappings":";;wCAkEO,SAASA,EAA4F,CAC1G,MAAAC,EACA,cAAAC,EACA,aAAAC,EACA,SAAAC,EAAW,UACX,YAAAC,EAAc,GACd,cAAAC,EAAgB,GAChB,cAAAC,EAAgB,GAChB,UAAAC,EAAY,GACZ,QAAAC,EAAU,GACV,UAAAC,EAAY,GACZ,aAAAC,EAAe,GACf,oBAAAC,EAAsB,SACtB,KAAAC,EACA,GAAGC,CACL,EAAyC,CACvC,MAAO,CACL,GAAGA,EACH,KAAAD,EACA,MAAAZ,EACA,SAAAG,EACA,oBAAAQ,EACA,cAAAN,EACA,UAAAE,EACA,QAAAC,EACA,UAAAC,EACA,aAAAC,EACA,YAAAN,EACA,cAAAE,EACA,aAAc,CAAE,OAAQJ,GAAc,QAAU,OAAQ,QAASA,GAAc,SAAW,MAAO,EACjG,cAAe,CACb,OAAQD,GAAe,QAAU,OACjC,QAASA,GAAe,SAAW,MACrC,CACF,CACF,CAIO,SAASa,EAAkDC,EAAa,CAC7E,MAAO,CACL,SAAAA,EACA,MAAOC,EAAkBD,EAAS,KAAK,EACvC,YAAa,CAAC,CAChB,CACF","names":["defineBrickManifest","props","defaultHeight","defaultWidth","category","isContainer","hideInLibrary","isGlobalBrick","deletable","movable","resizable","duplicatable","defaultInspectorTab","icon","rest","getBrickManifestDefaults","manifest","getSchemaDefaults"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{c as m}from"./chunk-
|
|
3
|
+
import{c as m}from"./chunk-3YVJ2ELD.js";import{a as p}from"./chunk-RJYZ5FAR.js";import{m as c}from"./chunk-AFVJZPLS.js";import{b as l}from"./chunk-CCI4C3TM.js";import{a as t,f as r}from"./chunk-A3GF4PYW.js";import{b as s}from"./chunk-5YRC3IT3.js";import{b as i}from"./chunk-4BTB3MU2.js";import{b as o}from"./chunk-ZTZJHY4E.js";import{c as n}from"./chunk-CZRCW5EN.js";import{c as a}from"./chunk-OHNYCXPX.js";import{Type as e}from"@sinclair/typebox";import{HiOutlineChatBubbleBottomCenter as d}from"react-icons/hi2";var R=p({type:"testimonials",name:"Testimonials",description:"Display testimonials from users",defaultWidth:{desktop:"100%"},icon:d,consumesMultipleQueryRows:!0,aiInstructions:`This brick displays user testimonials with optional avatars and social icons.
|
|
4
4
|
It is typically used to showcase customer feedback or endorsements.
|
|
5
5
|
Optionally either use an avatar or a social icon but not both at the same time.`,props:m({colorPreset:e.Optional(n({title:"Color",default:"base-100"})),border:e.Optional(o({title:"Border",description:"Customize the border of the testimonial cards.",default:{width:"border",color:"border-accent-500"}})),fontSize:e.Optional(s({"ui:no-extra-large-sizes":!0})),padding:e.Optional(a({default:"1rem",description:"Padding inside the main container.","ai:instructions":"Use only a single value like '1rem' or '10px'",title:"Padding","ui:responsive":!0,"ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),gap:e.Optional(a({title:"Gap",default:"26px",description:"Space between bricks.","ai:instructions":"Can be a tailwind gap class like 'gap-1' or 'gap-2', or a custom value like '10px'","ui:placeholder":"Not specified","ui:styleId":"styles:gap"})),shadow:e.Optional(i()),loop:e.Optional(c({description:"If enabled, each row from the query result will be used to create a testimonial. Otherwise, the testimonials will be static.","ui:placeholder":"Not specified (static)"})),testimonials:e.Optional(e.Array(e.Object({text:t("Text",{default:"Amazing product!","ui:multiline":!0,"ui:textarea-class":"h-20"}),author:t("Author",{default:"John Doe"}),company:e.Optional(t("Company")),avatar:e.Optional(l({title:"Avatar","ui:placeholder":"https://via.placeholder.com/80x80.png?text=JD",noObjectOptions:!0})),socialIcon:e.Optional(r())}),{title:"Testimonials",default:[],"ui:displayField":"author","ui:options":{orderable:!0,removable:!0,addable:!0},metadata:{category:"content",consumeQuery:!0},examples:[{text:"This is a great product! It has changed my life.",author:"John Doe",company:"Acme Inc.",avatar:{src:"https://via.placeholder.com/80x80.png?text=JD",alt:"John Doe profile photo"},socialIcon:"mdi:linkedin"}]}))},{default:{orientation:"horizontal"}})}),C=[{description:"SaaS platform testimonials with avatars",type:"testimonials",props:{testimonials:[{author:"Sarah Johnson",company:"TechCorp Solutions",text:"This platform has completely transformed how we manage our projects. The intuitive interface and powerful automation features have saved us countless hours.",avatar:{src:"https://via.placeholder.com/80x80.png?text=SJ",alt:"Sarah Johnson profile photo"},socialIcon:"mdi:linkedin"},{author:"Mike Chen",company:"StartupFlow",text:"Outstanding customer support and regular feature updates. We've been using this for over a year and it keeps getting better. Highly recommend!",avatar:{src:"https://via.placeholder.com/80x80.png?text=MC",alt:"Mike Chen profile photo"},socialIcon:"mdi:twitter"},{author:"Emily Rodriguez",company:"Digital Agency Pro",text:"The automation capabilities are game-changing. What used to take us days now happens automatically. It's like having an extra team member.",avatar:{src:"https://via.placeholder.com/80x80.png?text=ER",alt:"Emily Rodriguez profile photo"},socialIcon:"mdi:linkedin"}]}},{description:"E-commerce customer reviews",type:"testimonials",props:{testimonials:[{author:"Jessica Williams",company:"Happy Customer",text:"Amazing product quality and fast shipping! The item exceeded my expectations and the customer service was excellent when I had questions.",avatar:{src:"https://via.placeholder.com/60x60.png?text=JW",alt:"Jessica Williams customer photo"},socialIcon:"mdi:star"},{author:"David Park",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.",avatar:{src:"https://via.placeholder.com/60x60.png?text=DP",alt:"David Park customer photo"},socialIcon:"mdi:thumbs-up"}]}},{description:"Agency client testimonials with company info",type:"testimonials",props:{testimonials:[{author:"Rachel Thompson",company:"Global Enterprises",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.",avatar:{src:"https://via.placeholder.com/70x70.png?text=RT",alt:"Rachel Thompson headshot"},socialIcon:"mdi:briefcase"},{author:"Alex Kumar",company:"Innovation Labs",text:"Working with this agency was a game-changer for our digital presence. They understood our vision and brought it to life beautifully.",avatar:{src:"https://via.placeholder.com/70x70.png?text=AK",alt:"Alex Kumar profile"},socialIcon:"mdi:lightbulb"},{author:"Maria Santos",company:"Retail Plus",text:"Professional, creative, and results-driven. Our website traffic increased by 200% after their redesign. Couldn't be happier!",avatar:{src:"https://via.placeholder.com/70x70.png?text=MS",alt:"Maria Santos photo"},socialIcon:"mdi:chart-line"}]}},{description:"App user feedback",type:"testimonials",props:{testimonials:[{author:"Tom Wilson",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.",avatar:{src:"https://via.placeholder.com/65x65.png?text=TW",alt:"Tom Wilson user photo"},socialIcon:"mdi:cellphone"},{author:"Lisa Chang",text:"Been using this app for months and it's become essential to my workflow. The latest update with AI features is incredibly impressive.",avatar:{src:"https://via.placeholder.com/65x65.png?text=LC",alt:"Lisa Chang profile picture"},socialIcon:"mdi:robot"},{author:"James Miller",text:"Simple, powerful, and reliable. Exactly what I was looking for. The customer support team is also very responsive and helpful.",avatar:{src:"https://via.placeholder.com/65x65.png?text=JM",alt:"James Miller avatar"},socialIcon:"mdi:heart"}]}},{description:"Course/education testimonials with social icons",type:"testimonials",props:{testimonials:[{author:"Amanda Foster",company:"UX Designer",text:"This course completely changed my career trajectory. The practical projects and expert feedback helped me land my dream job in just 3 months.",avatar:{src:"https://via.placeholder.com/75x75.png?text=AF",alt:"Amanda Foster student photo"},socialIcon:"mdi:school"},{author:"Carlos Rodriguez",company:"Software Engineer",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.",avatar:{src:"https://via.placeholder.com/75x75.png?text=CR",alt:"Carlos Rodriguez profile"},socialIcon:"mdi:code-tags"}]}},{description:"Simple testimonials without avatars",type:"testimonials",props:{testimonials:[{author:"Anonymous User",text:"Great service and excellent value for money. Would definitely recommend to others looking for a reliable solution.",socialIcon:"mdi:account-circle"},{author:"Verified Customer",text:"Quick delivery and exactly as described. Very satisfied with my purchase and the overall experience.",socialIcon:"mdi:check-circle"},{author:"Beta Tester",text:"Been using the beta version and it's already impressive. Looking forward to the full release with even more features.",socialIcon:"mdi:beta"}]}},{description:"Consultant testimonials with professional focus",type:"testimonials",props:{testimonials:[{author:"Dr. Patricia Lee",company:"Medical Practice Solutions",text:"The consulting services provided were invaluable to our practice. Revenue increased by 40% and patient satisfaction scores improved significantly.",avatar:{src:"https://via.placeholder.com/80x80.png?text=PL",alt:"Dr. Patricia Lee headshot"},socialIcon:"mdi:medical-bag"},{author:"Robert Kim",company:"Manufacturing Inc.",text:"Their strategic insights helped us streamline operations and reduce costs by 25%. The ROI was evident within the first quarter.",avatar:{src:"https://via.placeholder.com/80x80.png?text=RK",alt:"Robert Kim executive photo"},socialIcon:"mdi:factory"}]}},{description:"Event testimonials with social media icons",type:"testimonials",props:{testimonials:[{author:"Jennifer Adams",company:"Marketing Director",text:"Best conference I've attended in years! The networking opportunities were incredible and the speakers were top-notch industry leaders.",avatar:{src:"https://via.placeholder.com/70x70.png?text=JA",alt:"Jennifer Adams conference attendee"},socialIcon:"mdi:twitter"},{author:"Michael Brown",company:"Tech Startup Founder",text:"The workshops were incredibly practical and I left with actionable strategies I could implement immediately. Already planning to attend next year!",avatar:{src:"https://via.placeholder.com/70x70.png?text=MB",alt:"Michael Brown participant photo"},socialIcon:"mdi:linkedin"},{author:"Sophie Chen",company:"Product Manager",text:"Amazing organization and valuable content. Met so many like-minded professionals and learned cutting-edge techniques I'm excited to try.",avatar:{src:"https://via.placeholder.com/70x70.png?text=SC",alt:"Sophie Chen attendee photo"},socialIcon:"mdi:instagram"}]}},{description:"Dynamic customer testimonials using customerReviews query",type:"testimonials",props:{testimonials:[{author:"{{customerReviews.customerName}}",company:"{{customerReviews.company}}",text:"{{customerReviews.reviewText}}",avatar:{src:"{{customerReviews.customerPhoto}}",alt:"{{customerReviews.customerName}} photo"},socialIcon:"{{customerReviews.socialPlatform}}"}],loop:{over:"customerReviews"}}},{description:"Dynamic client testimonials using clientFeedback query",type:"testimonials",props:{testimonials:[{author:"{{clientFeedback.clientName}}",company:"{{clientFeedback.companyName}} - {{clientFeedback.position}}",text:"{{clientFeedback.testimonial}}",avatar:{src:"{{clientFeedback.headshot}}",alt:"{{clientFeedback.clientName}} headshot"},socialIcon:"{{clientFeedback.preferredIcon}}"}],loop:{over:"clientFeedback"}}},{description:"Dynamic product reviews using productReviews query",type:"testimonials",props:{testimonials:[{author:"{{productReviews.reviewerName}}",text:"{{productReviews.review}} - {{productReviews.rating}}/5 stars",avatar:{src:"{{productReviews.userAvatar}}",alt:"{{productReviews.reviewerName}} profile"},socialIcon:"mdi:star"}],loop:{over:"productReviews"}}},{description:"Dynamic employee testimonials using teamTestimonials query",type:"testimonials",props:{testimonials:[{author:"{{teamTestimonials.employeeName}}",company:"{{teamTestimonials.department}} - {{teamTestimonials.jobTitle}}",text:"{{teamTestimonials.testimonial}}",avatar:{src:"{{teamTestimonials.profilePhoto}}",alt:"{{teamTestimonials.employeeName}} profile photo"},socialIcon:"{{teamTestimonials.socialIcon}}"}],loop:{over:"teamTestimonials"}}}];export{R as a,C as b};
|
|
6
|
+
//# sourceMappingURL=chunk-SQ5T4AT5.js.map
|