@upstart.gg/sdk 0.0.130 → 0.0.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/ai/schemas.d.ts +13 -0
- package/dist/shared/ai/schemas.d.ts.map +1 -0
- package/dist/shared/ai/schemas.js +3 -0
- package/dist/shared/ai/types.d.ts +164 -0
- package/dist/shared/ai/types.d.ts.map +1 -0
- package/dist/shared/{chunk-EJGNYD4V.js → ai/types.js} +0 -1
- package/dist/shared/ajv.d.ts +2 -1
- package/dist/shared/ajv.d.ts.map +1 -1
- package/dist/shared/ajv.js +1 -1
- package/dist/shared/attributes.d.ts +300 -12
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +1 -1
- package/dist/shared/brick-manifest.d.ts +3 -1
- package/dist/shared/brick-manifest.d.ts.map +1 -1
- package/dist/shared/brick-manifest.js +1 -1
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts +4 -3
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/accordion.manifest.js +1 -1
- package/dist/shared/bricks/manifests/all-manifests.d.ts +4 -1
- package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/all-manifests.js +1 -1
- package/dist/shared/bricks/manifests/box.manifest.d.ts +6 -4
- package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +1 -1
- package/dist/shared/bricks/manifests/button.manifest.d.ts +4 -3
- package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/button.manifest.js +1 -1
- package/dist/shared/bricks/manifests/card.manifest.d.ts +6 -5
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +6 -5
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +40 -5
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +1 -1
- package/dist/shared/bricks/manifests/form.manifest.d.ts +6 -5
- package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/form.manifest.js +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +4 -3
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +1 -1
- package/dist/shared/bricks/manifests/html.manifest.d.ts +3 -2
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.d.ts +3 -2
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +1 -1
- package/dist/shared/bricks/manifests/image.manifest.d.ts +10 -6
- package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/image.manifest.js +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +7 -6
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +1 -1
- package/dist/shared/bricks/manifests/map.manifest.d.ts +5 -4
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +42 -8
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +4 -3
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts +5 -4
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts +3 -2
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +6 -5
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +1 -1
- package/dist/shared/bricks/manifests/text.manifest.d.ts +4 -3
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +1 -1
- package/dist/shared/bricks/manifests/video.manifest.d.ts +4 -3
- package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/video.manifest.js +1 -1
- package/dist/shared/bricks/props/align.d.ts.map +1 -1
- package/dist/shared/bricks/props/align.js +1 -1
- package/dist/shared/bricks/props/background.d.ts +6 -9
- package/dist/shared/bricks/props/background.d.ts.map +1 -1
- package/dist/shared/bricks/props/background.js +1 -1
- package/dist/shared/bricks/props/border.d.ts.map +1 -1
- package/dist/shared/bricks/props/border.js +1 -1
- package/dist/shared/bricks/props/color-preset.d.ts +3 -4
- package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
- package/dist/shared/bricks/props/color-preset.js +1 -1
- package/dist/shared/bricks/props/color.js +1 -1
- package/dist/shared/bricks/props/common.d.ts +6 -6
- package/dist/shared/bricks/props/common.d.ts.map +1 -1
- package/dist/shared/bricks/props/common.js +1 -1
- package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
- package/dist/shared/bricks/props/css-length.js +1 -1
- package/dist/shared/bricks/props/datasource.d.ts +1 -1
- package/dist/shared/bricks/props/datasource.js +1 -1
- package/dist/shared/bricks/props/date.d.ts.map +1 -1
- package/dist/shared/bricks/props/date.js +1 -1
- package/dist/shared/bricks/props/direction.d.ts.map +1 -1
- package/dist/shared/bricks/props/direction.js +1 -1
- package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
- package/dist/shared/bricks/props/dynamic.js +1 -1
- package/dist/shared/bricks/props/effects.d.ts +0 -1
- package/dist/shared/bricks/props/effects.d.ts.map +1 -1
- package/dist/shared/bricks/props/effects.js +1 -1
- package/dist/shared/bricks/props/file.d.ts.map +1 -1
- package/dist/shared/bricks/props/file.js +1 -1
- package/dist/shared/bricks/props/geolocation.js +1 -1
- package/dist/shared/bricks/props/helpers.d.ts +2 -2
- package/dist/shared/bricks/props/helpers.js +1 -1
- package/dist/shared/bricks/props/image.d.ts +4 -4
- package/dist/shared/bricks/props/image.d.ts.map +1 -1
- package/dist/shared/bricks/props/image.js +1 -1
- package/dist/shared/bricks/props/position.d.ts +0 -2
- package/dist/shared/bricks/props/position.d.ts.map +1 -1
- package/dist/shared/bricks/props/position.js +1 -1
- package/dist/shared/bricks/props/string.js +1 -1
- package/dist/shared/bricks/props/tags.d.ts.map +1 -1
- package/dist/shared/bricks/props/tags.js +1 -1
- package/dist/shared/bricks/props/text.js +1 -1
- package/dist/shared/bricks/props/types.d.ts +1 -2
- package/dist/shared/bricks/props/types.d.ts.map +1 -1
- package/dist/shared/bricks.d.ts +189 -18
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +1 -1
- package/dist/shared/chunk-2CYAFF56.js +3 -0
- package/dist/shared/chunk-2NLDX5FG.js +3 -0
- package/dist/shared/chunk-3FPFR5RA.js +3 -0
- package/dist/shared/chunk-3P36LG6T.js +3 -0
- package/dist/shared/chunk-3QOAHMV4.js +5 -0
- package/dist/shared/chunk-4GIZ6WSG.js +3 -0
- package/dist/shared/chunk-5WY7LYXK.js +3 -0
- package/dist/shared/chunk-5X5SX5N7.js +4 -0
- package/dist/shared/chunk-6L3Z5SZQ.js +3 -0
- package/dist/shared/{chunk-UU2MSQXY.js → chunk-6PGAWO4H.js} +1 -1
- package/dist/shared/chunk-6R76KIHZ.js +3 -0
- package/dist/shared/chunk-7UBMXMNJ.js +3 -0
- package/dist/shared/chunk-AB3IMRXZ.js +3 -0
- package/dist/shared/chunk-AMQAGDFH.js +3 -0
- package/dist/shared/chunk-ARMM6B47.js +3 -0
- package/dist/shared/chunk-ARYG4XMX.js +3 -0
- package/dist/shared/chunk-AZHH3XJJ.js +3 -0
- package/dist/shared/chunk-COT2ROEH.js +34 -0
- package/dist/shared/chunk-DHSWVVMI.js +3 -0
- package/dist/shared/chunk-DKNOZLA6.js +3 -0
- package/dist/shared/chunk-EVDZ2KND.js +6 -0
- package/dist/shared/chunk-F4JNKU7J.js +3 -0
- package/dist/shared/chunk-GC5OWY2Z.js +3 -0
- package/dist/shared/chunk-GXNHF6J5.js +3 -0
- package/dist/shared/chunk-HP7CZB2F.js +3 -0
- package/dist/shared/chunk-HSRXUIVM.js +3 -0
- package/dist/shared/chunk-ILIWVWHC.js +8 -0
- package/dist/shared/chunk-JRCVYDCD.js +3 -0
- package/dist/shared/chunk-L2HOZVBC.js +3 -0
- package/dist/shared/chunk-LEWKHCRI.js +3 -0
- package/dist/shared/chunk-LT4CW2F7.js +3 -0
- package/dist/shared/chunk-MVCVVKBY.js +3 -0
- package/dist/shared/chunk-NKIEDT7V.js +3 -0
- package/dist/shared/chunk-NQKXDMQ5.js +3 -0
- package/dist/shared/chunk-NXIF3UMD.js +3 -0
- package/dist/shared/chunk-PW5HRVMD.js +3 -0
- package/dist/shared/chunk-PZYX3ACO.js +3 -0
- package/dist/shared/chunk-QDJQAZIA.js +8 -0
- package/dist/shared/chunk-QGFQA7OZ.js +4 -0
- package/dist/shared/chunk-RJZZWCBD.js +3 -0
- package/dist/shared/chunk-SAJY7H6N.js +3 -0
- package/dist/shared/chunk-SFDRAHYP.js +3 -0
- package/dist/shared/chunk-STDCM2KD.js +3 -0
- package/dist/shared/chunk-TCTVRT4O.js +3 -0
- package/dist/shared/chunk-TH5SONR6.js +3 -0
- package/dist/shared/chunk-UCR2UZOY.js +3 -0
- package/dist/shared/chunk-UDQWYGSO.js +3 -0
- package/dist/shared/{chunk-LSPN22SI.js → chunk-URRCKLAS.js} +3 -3
- package/dist/shared/{chunk-OIOYMECS.js → chunk-US53TNMK.js} +1 -1
- package/dist/shared/chunk-VDX2J22H.js +3 -0
- package/dist/shared/chunk-VE3S4LGT.js +3 -0
- package/dist/shared/chunk-VK26ZZFR.js +3 -0
- package/dist/shared/chunk-VLXZMESE.js +3 -0
- package/dist/shared/chunk-WAML3IGZ.js +3 -0
- package/dist/shared/chunk-WXKRIUTA.js +3 -0
- package/dist/shared/chunk-X62OEAE6.js +3 -0
- package/dist/shared/chunk-XED6ARVN.js +3 -0
- package/dist/shared/chunk-Y3X4F4YJ.js +3 -0
- package/dist/shared/chunk-Z4YKRLOX.js +3 -0
- package/dist/shared/context.d.ts +4 -12
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/handler.d.ts +22 -5
- package/dist/shared/datarecords/external/airtable/handler.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/handler.js +1 -1
- package/dist/shared/datarecords/external/airtable/oauth/config.js +3 -0
- package/dist/shared/datarecords/external/airtable/types.d.ts +25 -0
- package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.js +3 -0
- package/dist/shared/datarecords/external/generic-webhook/handler.js +3 -0
- package/dist/shared/datarecords/external/generic-webhook/options.js +3 -0
- package/dist/shared/datarecords/external/google/sheets/client.js +3 -0
- package/dist/shared/datarecords/external/google/sheets/handler.d.ts +29 -5
- package/dist/shared/datarecords/external/google/sheets/handler.d.ts.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/handler.js +5 -4
- package/dist/shared/datarecords/external/google/sheets/{options.d.ts → types.d.ts} +1 -1
- package/dist/shared/datarecords/external/google/sheets/types.d.ts.map +1 -0
- package/dist/shared/datarecords/external/google/sheets/types.js +3 -0
- package/dist/shared/datarecords/external/notion/handler.d.ts +29 -7
- package/dist/shared/datarecords/external/notion/handler.d.ts.map +1 -1
- package/dist/shared/datarecords/external/notion/handler.js +1 -1
- package/dist/shared/datarecords/external/notion/oauth/config.js +3 -0
- package/dist/shared/datarecords/external/notion/{options.d.ts → types.d.ts} +11 -1
- package/dist/shared/datarecords/external/notion/types.d.ts.map +1 -0
- package/dist/shared/datarecords/external/notion/types.js +3 -0
- package/dist/shared/datarecords/types.d.ts +17 -165
- package/dist/shared/datarecords/types.d.ts.map +1 -1
- package/dist/shared/datarecords/types.js +1 -1
- package/dist/shared/datarecords.d.ts +2 -2
- package/dist/shared/datarecords.d.ts.map +1 -1
- package/dist/shared/datarecords.js +1 -1
- package/dist/shared/datasources/external/facebook/posts/fetcher.js +3 -0
- package/dist/shared/datasources/external/facebook/posts/schema.js +3 -0
- package/dist/shared/datasources/external/http-json/fetcher.js +3 -0
- package/dist/shared/datasources/external/http-json/options.js +3 -0
- package/dist/shared/datasources/external/http-json/schema.js +3 -0
- package/dist/shared/datasources/external/instagram/feed/fetcher.js +3 -0
- package/dist/shared/datasources/external/instagram/feed/schema.js +3 -0
- package/dist/shared/datasources/external/mastodon/account/fetcher.js +3 -0
- package/dist/shared/datasources/external/mastodon/account/schema.js +3 -0
- package/dist/shared/datasources/external/mastodon/options.js +3 -0
- package/dist/shared/datasources/external/mastodon/status/fetcher.js +3 -0
- package/dist/shared/datasources/external/mastodon/status/sample.array.js +3 -0
- package/dist/shared/datasources/external/mastodon/status/sample.single.js +3 -0
- package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.js +3 -0
- package/dist/shared/datasources/external/meta/options.js +3 -0
- package/dist/shared/datasources/external/rss/fetcher.js +3 -0
- package/dist/shared/datasources/external/rss/options.js +3 -0
- package/dist/shared/datasources/external/rss/schema.js +3 -0
- package/dist/shared/datasources/external/threads/media/fetcher.js +3 -0
- package/dist/shared/datasources/external/threads/media/schema.js +3 -0
- package/dist/shared/datasources/external/tiktok/video/fetcher.js +3 -0
- package/dist/shared/datasources/external/tiktok/video/options.js +3 -0
- package/dist/shared/datasources/external/tiktok/video/schema.js +3 -0
- package/dist/shared/datasources/external/youtube/list/fetcher.js +3 -0
- package/dist/shared/datasources/external/youtube/list/options.js +3 -0
- package/dist/shared/datasources/external/youtube/list/schema.js +3 -0
- package/dist/shared/datasources/fetcher.js +2 -0
- package/dist/shared/datasources/internal/blog/schema.js +3 -0
- package/dist/shared/datasources/internal/changelog/schema.js +3 -0
- package/dist/shared/datasources/internal/contact-info/schema.js +3 -0
- package/dist/shared/datasources/internal/cv/schema.js +3 -0
- package/dist/shared/datasources/internal/faq/schema.js +3 -0
- package/dist/shared/datasources/internal/job-board/schema.js +3 -0
- package/dist/shared/datasources/internal/links/schema.js +3 -0
- package/dist/shared/datasources/internal/recipes/schema.js +3 -0
- package/dist/shared/datasources/internal/restaurant/schema.js +3 -0
- package/dist/shared/datasources/samples.js +3 -0
- package/dist/shared/datasources/schemas.d.ts +0 -49
- package/dist/shared/datasources/schemas.d.ts.map +1 -1
- package/dist/shared/datasources/schemas.js +1 -1
- package/dist/shared/datasources/types.d.ts +53 -130
- package/dist/shared/datasources/types.d.ts.map +1 -1
- package/dist/shared/datasources/types.js +1 -1
- package/dist/shared/datasources/utils.js +3 -0
- package/dist/shared/datasources.d.ts +7 -4
- package/dist/shared/datasources.d.ts.map +1 -1
- package/dist/shared/datasources.js +1 -1
- package/dist/shared/errors.js +1 -1
- package/dist/shared/images.d.ts +1 -12
- package/dist/shared/images.d.ts.map +1 -1
- package/dist/shared/images.js +1 -1
- package/dist/shared/index.js +3 -0
- package/dist/shared/manifest.js +3 -0
- package/dist/shared/page.d.ts +143 -12
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +1 -1
- package/dist/shared/site.d.ts +224 -114
- package/dist/shared/site.d.ts.map +1 -1
- package/dist/shared/site.js +1 -1
- package/dist/shared/sitemap.d.ts +167 -23
- package/dist/shared/sitemap.d.ts.map +1 -1
- package/dist/shared/sitemap.js +1 -1
- package/dist/shared/social-icons.js +3 -0
- package/dist/shared/theme.d.ts +41 -4
- package/dist/shared/theme.d.ts.map +1 -1
- package/dist/shared/theme.js +1 -1
- package/dist/shared/utils/invariant.js +1 -1
- package/dist/shared/utils/llm.d.ts +19 -0
- package/dist/shared/utils/llm.d.ts.map +1 -0
- package/dist/shared/utils/llm.js +3 -0
- package/dist/shared/utils/schema.d.ts +6 -1
- package/dist/shared/utils/schema.d.ts.map +1 -1
- package/dist/shared/utils/schema.js +1 -1
- package/dist/shared/utils/tests/schema.test.d.ts +2 -0
- package/dist/shared/utils/tests/schema.test.d.ts.map +1 -0
- package/dist/shared/utils/typed-ref.d.ts +1 -6
- package/dist/shared/utils/typed-ref.d.ts.map +1 -1
- package/dist/shared/utils/typed-ref.js +1 -1
- package/package.json +18 -19
- package/src/shared/ai/schemas.ts +33 -0
- package/src/shared/ai/types.ts +151 -0
- package/src/shared/ajv.ts +123 -0
- package/src/shared/analytics/init.ts +14 -0
- package/src/shared/analytics/track.ts +21 -0
- package/src/shared/analytics/types.ts +13 -0
- package/src/shared/attributes.ts +396 -0
- package/src/shared/brick-manifest.ts +119 -0
- package/src/shared/bricks/manifests/accordion.manifest.ts +482 -0
- package/src/shared/bricks/manifests/all-manifests.ts +121 -0
- package/src/shared/bricks/manifests/box.manifest.ts +551 -0
- package/src/shared/bricks/manifests/button.manifest.ts +208 -0
- package/src/shared/bricks/manifests/card.manifest.ts +320 -0
- package/src/shared/bricks/manifests/carousel.manifest.ts +708 -0
- package/src/shared/bricks/manifests/footer.manifest.ts +509 -0
- package/src/shared/bricks/manifests/form.manifest.ts +226 -0
- package/src/shared/bricks/manifests/hero.manifest.ts +365 -0
- package/src/shared/bricks/manifests/html.manifest.ts +127 -0
- package/src/shared/bricks/manifests/icon.manifest.ts +164 -0
- package/src/shared/bricks/manifests/image.manifest.ts +378 -0
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +822 -0
- package/src/shared/bricks/manifests/map.manifest.ts +215 -0
- package/src/shared/bricks/manifests/navbar.manifest.ts +361 -0
- package/src/shared/bricks/manifests/sidebar.manifest.ts +88 -0
- package/src/shared/bricks/manifests/social-links.manifest.ts +497 -0
- package/src/shared/bricks/manifests/spacer.manifest.ts +54 -0
- package/src/shared/bricks/manifests/testimonials.manifest.ts +480 -0
- package/src/shared/bricks/manifests/tests/header.manifest.test.ts +10 -0
- package/src/shared/bricks/manifests/text.manifest.ts +245 -0
- package/src/shared/bricks/manifests/video.manifest.ts +115 -0
- package/src/shared/bricks/props/align.ts +63 -0
- package/src/shared/bricks/props/background.ts +79 -0
- package/src/shared/bricks/props/boolean.ts +7 -0
- package/src/shared/bricks/props/border.ts +86 -0
- package/src/shared/bricks/props/color-preset.ts +390 -0
- package/src/shared/bricks/props/color.ts +40 -0
- package/src/shared/bricks/props/common.ts +64 -0
- package/src/shared/bricks/props/css-length.ts +32 -0
- package/src/shared/bricks/props/datarecord.ts +11 -0
- package/src/shared/bricks/props/datasource.ts +82 -0
- package/src/shared/bricks/props/date.ts +21 -0
- package/src/shared/bricks/props/direction.ts +21 -0
- package/src/shared/bricks/props/dynamic.ts +112 -0
- package/src/shared/bricks/props/effects.ts +71 -0
- package/src/shared/bricks/props/enum.ts +38 -0
- package/src/shared/bricks/props/file.ts +10 -0
- package/src/shared/bricks/props/geolocation.ts +36 -0
- package/src/shared/bricks/props/helpers.ts +73 -0
- package/src/shared/bricks/props/image.ts +96 -0
- package/src/shared/bricks/props/number.ts +8 -0
- package/src/shared/bricks/props/position.ts +11 -0
- package/src/shared/bricks/props/string.ts +72 -0
- package/src/shared/bricks/props/tags.ts +26 -0
- package/src/shared/bricks/props/tests/background.test.ts +90 -0
- package/src/shared/bricks/props/tests/border.test.ts +12 -0
- package/src/shared/bricks/props/tests/effects.test.ts +37 -0
- package/src/shared/bricks/props/tests/helpers.test.ts +98 -0
- package/src/shared/bricks/props/tests/image.test.ts +71 -0
- package/src/shared/bricks/props/tests/string.test.ts +80 -0
- package/src/shared/bricks/props/text.ts +107 -0
- package/src/shared/bricks/props/types.ts +72 -0
- package/src/shared/bricks.ts +1237 -0
- package/src/shared/context.ts +32 -0
- package/src/shared/datarecords/external/airtable/handler.ts +501 -0
- package/src/shared/datarecords/external/airtable/oauth/config.ts +11 -0
- package/src/shared/datarecords/external/airtable/types.ts +63 -0
- package/src/shared/datarecords/external/generic-webhook/handler.ts +10 -0
- package/src/shared/datarecords/external/generic-webhook/options.ts +13 -0
- package/src/shared/datarecords/external/google/oauth/config.ts +30 -0
- package/src/shared/datarecords/external/google/sheets/client.ts +112 -0
- package/src/shared/datarecords/external/google/sheets/handler.ts +253 -0
- package/src/shared/datarecords/external/google/sheets/types.ts +10 -0
- package/src/shared/datarecords/external/notion/handler.ts +469 -0
- package/src/shared/datarecords/external/notion/oauth/config.ts +7 -0
- package/src/shared/datarecords/external/notion/types.ts +28 -0
- package/src/shared/datarecords/types.ts +165 -0
- package/src/shared/datarecords.ts +5 -0
- package/src/shared/datasources/README.md +3 -0
- package/src/shared/datasources/external/facebook/posts/fetcher.ts +52 -0
- package/src/shared/datasources/external/facebook/posts/sample.ts +35 -0
- package/src/shared/datasources/external/facebook/posts/schema.ts +33 -0
- package/src/shared/datasources/external/facebook/posts/tests/fetcher.test.ts +73 -0
- package/src/shared/datasources/external/http-json/fetcher.ts +31 -0
- package/src/shared/datasources/external/http-json/options.ts +8 -0
- package/src/shared/datasources/external/http-json/schema.ts +6 -0
- package/src/shared/datasources/external/http-json/tests/fetcher.test.ts +70 -0
- package/src/shared/datasources/external/instagram/feed/fetcher.ts +33 -0
- package/src/shared/datasources/external/instagram/feed/sample.ts +22 -0
- package/src/shared/datasources/external/instagram/feed/schema.ts +23 -0
- package/src/shared/datasources/external/instagram/feed/tests/fetcher.test.ts +64 -0
- package/src/shared/datasources/external/mastodon/account/fetcher.ts +24 -0
- package/src/shared/datasources/external/mastodon/account/sample.ts +33 -0
- package/src/shared/datasources/external/mastodon/account/schema.ts +45 -0
- package/src/shared/datasources/external/mastodon/account/tests/fetcher.test.ts +47 -0
- package/src/shared/datasources/external/mastodon/options.ts +6 -0
- package/src/shared/datasources/external/mastodon/status/fetcher.ts +35 -0
- package/src/shared/datasources/external/mastodon/status/sample.array.ts +59 -0
- package/src/shared/datasources/external/mastodon/status/sample.single.ts +55 -0
- package/src/shared/datasources/external/mastodon/status/schema.ts +125 -0
- package/src/shared/datasources/external/mastodon/status/tests/fetcher.test.ts +74 -0
- package/src/shared/datasources/external/meta/oauth/config.ts +16 -0
- package/src/shared/datasources/external/meta/options.ts +7 -0
- package/src/shared/datasources/external/rss/fetcher.ts +31 -0
- package/src/shared/datasources/external/rss/options.ts +7 -0
- package/src/shared/datasources/external/rss/sample.ts +22 -0
- package/src/shared/datasources/external/rss/schema.ts +42 -0
- package/src/shared/datasources/external/threads/media/fetcher.ts +53 -0
- package/src/shared/datasources/external/threads/media/sample.ts +44 -0
- package/src/shared/datasources/external/threads/media/schema.ts +37 -0
- package/src/shared/datasources/external/tiktok/oauth/config.ts +17 -0
- package/src/shared/datasources/external/tiktok/video/fetcher.ts +39 -0
- package/src/shared/datasources/external/tiktok/video/options.ts +8 -0
- package/src/shared/datasources/external/tiktok/video/sample.ts +26 -0
- package/src/shared/datasources/external/tiktok/video/schema.ts +27 -0
- package/src/shared/datasources/external/youtube/list/fetcher.ts +37 -0
- package/src/shared/datasources/external/youtube/list/options.ts +11 -0
- package/src/shared/datasources/external/youtube/list/sample.ts +33 -0
- package/src/shared/datasources/external/youtube/list/schema.ts +38 -0
- package/src/shared/datasources/external/youtube/oauth/config.ts +15 -0
- package/src/shared/datasources/fetcher.ts +16 -0
- package/src/shared/datasources/internal/blog/schema.ts +69 -0
- package/src/shared/datasources/internal/changelog/schema.ts +48 -0
- package/src/shared/datasources/internal/contact-info/schema.ts +20 -0
- package/src/shared/datasources/internal/cv/schema.ts +217 -0
- package/src/shared/datasources/internal/faq/schema.ts +27 -0
- package/src/shared/datasources/internal/job-board/schema.ts +228 -0
- package/src/shared/datasources/internal/links/schema.ts +15 -0
- package/src/shared/datasources/internal/recipes/schema.ts +42 -0
- package/src/shared/datasources/internal/restaurant/schema.ts +225 -0
- package/src/shared/datasources/samples.ts +26 -0
- package/src/shared/datasources/schemas.ts +48 -0
- package/src/shared/datasources/types.ts +490 -0
- package/src/shared/datasources/utils.ts +17 -0
- package/src/shared/datasources.ts +57 -0
- package/src/shared/env.ts +23 -0
- package/src/shared/errors.ts +1 -0
- package/src/shared/images.ts +44 -0
- package/src/shared/index.ts +3 -0
- package/src/shared/layout-constants.ts +19 -0
- package/src/shared/manifest.ts +50 -0
- package/src/shared/oauth.ts +16 -0
- package/src/shared/page.ts +36 -0
- package/src/shared/prompt.ts +9 -0
- package/src/shared/responsive.ts +5 -0
- package/src/shared/site.ts +59 -0
- package/src/shared/sitemap.ts +98 -0
- package/src/shared/social-icons.ts +307 -0
- package/src/shared/tests/attributes.test.ts +31 -0
- package/src/shared/theme.ts +244 -0
- package/src/shared/themes/README.md +34 -0
- package/src/shared/themes/color-system.ts +146 -0
- package/src/shared/themes/tests/color-system.test.ts +170 -0
- package/src/shared/utils/canvas-data-uri.ts +2 -0
- package/src/shared/utils/invariant.ts +25 -0
- package/src/shared/utils/json-date.ts +8 -0
- package/src/shared/utils/llm.ts +282 -0
- package/src/shared/utils/merge.ts +12 -0
- package/src/shared/utils/object-hash.ts +7 -0
- package/src/shared/utils/schema.ts +359 -0
- package/src/shared/utils/string-enum.ts +12 -0
- package/src/shared/utils/tests/schema.test.ts +724 -0
- package/src/shared/utils/try-catch.ts +12 -0
- package/src/shared/utils/typed-ref.ts +53 -0
- package/dist/shared/bricks/props/container.d.ts +0 -11
- package/dist/shared/bricks/props/container.d.ts.map +0 -1
- package/dist/shared/bricks/props/container.js +0 -3
- package/dist/shared/bricks/props/gap.d.ts +0 -9
- package/dist/shared/bricks/props/gap.d.ts.map +0 -1
- package/dist/shared/bricks/props/gap.js +0 -3
- package/dist/shared/bricks/props/padding.d.ts +0 -5
- package/dist/shared/bricks/props/padding.d.ts.map +0 -1
- package/dist/shared/bricks/props/padding.js +0 -3
- package/dist/shared/bricks/props/tests/padding.d.ts +0 -2
- package/dist/shared/bricks/props/tests/padding.d.ts.map +0 -1
- package/dist/shared/chunk-2IYSJYNE.js +0 -3
- package/dist/shared/chunk-3EM3B4DX.js +0 -3
- package/dist/shared/chunk-4TH3C76A.js +0 -3
- package/dist/shared/chunk-5N6MBJJ4.js +0 -3
- package/dist/shared/chunk-6FITVVZX.js +0 -3
- package/dist/shared/chunk-6WCGUAQN.js +0 -3
- package/dist/shared/chunk-7DMUDZ4H.js +0 -3
- package/dist/shared/chunk-ACVLF55Q.js +0 -3
- package/dist/shared/chunk-AQPN5SE2.js +0 -3
- package/dist/shared/chunk-BZGNY7LB.js +0 -3
- package/dist/shared/chunk-C3VGP4CA.js +0 -3
- package/dist/shared/chunk-CT3EI7YN.js +0 -3
- package/dist/shared/chunk-DQXDGV67.js +0 -3
- package/dist/shared/chunk-E22E4XWE.js +0 -3
- package/dist/shared/chunk-ETYYRWLK.js +0 -3
- package/dist/shared/chunk-EYPREFMH.js +0 -3
- package/dist/shared/chunk-FKNNTHWX.js +0 -5
- package/dist/shared/chunk-HHO3ONTQ.js +0 -3
- package/dist/shared/chunk-I46VBMLF.js +0 -3
- package/dist/shared/chunk-IIFTGWFZ.js +0 -3
- package/dist/shared/chunk-JS4K5JRM.js +0 -5
- package/dist/shared/chunk-KHFNN4P3.js +0 -3
- package/dist/shared/chunk-L6WHBSRZ.js +0 -8
- package/dist/shared/chunk-LFQZRGHS.js +0 -3
- package/dist/shared/chunk-LGP6GWIY.js +0 -3
- package/dist/shared/chunk-NLEWXPVM.js +0 -3
- package/dist/shared/chunk-NNI225RG.js +0 -3
- package/dist/shared/chunk-QISTDGPP.js +0 -3
- package/dist/shared/chunk-QSZWDE3D.js +0 -3
- package/dist/shared/chunk-RGLVKILY.js +0 -3
- package/dist/shared/chunk-SLRU4CT6.js +0 -4
- package/dist/shared/chunk-T3LIA4YB.js +0 -3
- package/dist/shared/chunk-T4LMBG2G.js +0 -3
- package/dist/shared/chunk-TATG6SFZ.js +0 -3
- package/dist/shared/chunk-TF3JVVRU.js +0 -3
- package/dist/shared/chunk-TTTXV7TJ.js +0 -6
- package/dist/shared/chunk-TWBY2GOR.js +0 -3
- package/dist/shared/chunk-UAQHU6L6.js +0 -3
- package/dist/shared/chunk-UHF6IEKV.js +0 -3
- package/dist/shared/chunk-UMHXXXVP.js +0 -3
- package/dist/shared/chunk-VGRYSAXA.js +0 -3
- package/dist/shared/chunk-VPFCY4DH.js +0 -3
- package/dist/shared/chunk-VZPXXFVX.js +0 -3
- package/dist/shared/chunk-WU6Q4WYD.js +0 -3
- package/dist/shared/chunk-X43MB5WD.js +0 -3
- package/dist/shared/chunk-YBGPPF7T.js +0 -3
- package/dist/shared/chunk-YFFTZ5T6.js +0 -3
- package/dist/shared/chunk-ZQGNYK5I.js +0 -8
- package/dist/shared/chunk-ZTDUXSWH.js +0 -3
- package/dist/shared/datarecords/external/airtable/client.d.ts +0 -8
- package/dist/shared/datarecords/external/airtable/client.d.ts.map +0 -1
- package/dist/shared/datarecords/external/airtable/elements.d.ts +0 -21
- package/dist/shared/datarecords/external/airtable/elements.d.ts.map +0 -1
- package/dist/shared/datarecords/external/airtable/options.d.ts +0 -10
- package/dist/shared/datarecords/external/airtable/options.d.ts.map +0 -1
- package/dist/shared/datarecords/external/google/sheets/options.d.ts.map +0 -1
- package/dist/shared/datarecords/external/notion/client.d.ts +0 -8
- package/dist/shared/datarecords/external/notion/client.d.ts.map +0 -1
- package/dist/shared/datarecords/external/notion/options.d.ts.map +0 -1
- package/dist/shared/datarecords/external/notion/utils.d.ts +0 -5
- package/dist/shared/datarecords/external/notion/utils.d.ts.map +0 -1
- package/dist/shared/utils/schema-resolver.d.ts +0 -3
- package/dist/shared/utils/schema-resolver.d.ts.map +0 -1
- package/dist/shared/utils/schema-resolver.js +0 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{c,d as i}from"./chunk-6PGAWO4H.js";import{a}from"./chunk-4GIZ6WSG.js";import{a as u}from"./chunk-F4JNKU7J.js";import{b as n}from"./chunk-3FPFR5RA.js";import{a as e,d as r}from"./chunk-7UBMXMNJ.js";import{b as o}from"./chunk-VK26ZZFR.js";import{c as s}from"./chunk-Z4YKRLOX.js";import{c as l}from"./chunk-HSRXUIVM.js";import{Type as t}from"@sinclair/typebox";import{VscLayoutPanelOff as p}from"react-icons/vsc";var d=a({type:"footer",name:"Footer",category:"layout",description:"A footer with links and an optional logo.",aiInstructions:"This brick should be used on most sites/pages. It must be placed on its own section.",icon:p,staticClasses:"flex-1",isGlobalBrick:!0,hideInLibrary:!0,resizable:!1,movable:!1,defaultWidth:{desktop:"100%",mobile:"100%"},props:c({colorPreset:t.Optional(s({title:"Color preset",default:{color:"neutral-600"}})),padding:t.Optional(l({default:"4rem",description:"Padding inside the footer.",title:"Padding","ui:responsive":!0,"ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),logo:t.Optional(n({title:"Logo","ui:no-object-options":!0,"ui:no-alt-text":!0})),fontSize:t.Optional(o({default:"text-sm","ui:no-extra-large-sizes":!0})),linksSections:i(t.Object({sectionTitle:e("Title"),links:i(t.Object({title:e("Title"),url:r()}),{title:"Links"})}),{default:[{sectionTitle:"Links",links:[{title:"Link",url:"/"}]}],title:"Links","ui:displayField":"sectionTitle","ui:options":{orderable:!0,removable:!0,addable:!0},description:"List of Links Sections",metadata:{category:"content"}})},{noGrow:!0,noAlignSelf:!0})});function C(){return u(d.props)}var P=[{description:"Simple footer with logo on the left",type:"footer",props:{logo:{src:"https://via.placeholder.com/120x40.png?text=Logo",alt:"Company logo"},linksSections:[{sectionTitle:"Quick Links",links:[{title:"Home",url:"/"},{title:"About",url:"/about"},{title:"Contact",url:"/contact"}]},{sectionTitle:"Legal",links:[{title:"Privacy Policy",url:"/privacy"},{title:"Terms of Service",url:"/terms"}]}]}},{description:"Corporate footer with centered logo",type:"footer",props:{logo:{src:"https://via.placeholder.com/150x50.png?text=Corporate",alt:"Corporate logo"},linksSections:[{sectionTitle:"Products",links:[{title:"Software Solutions",url:"/products/software"},{title:"Consulting",url:"/products/consulting"},{title:"Support",url:"/products/support"},{title:"Training",url:"/products/training"}]},{sectionTitle:"Company",links:[{title:"About Us",url:"/about"},{title:"Careers",url:"/careers"},{title:"News",url:"/news"},{title:"Investors",url:"/investors"}]},{sectionTitle:"Resources",links:[{title:"Documentation",url:"/docs"},{title:"API Reference",url:"/api"},{title:"Community",url:"/community"},{title:"Blog",url:"/blog"}]}]}},{description:"E-commerce footer with logo on the right",type:"footer",props:{logo:{src:"https://via.placeholder.com/140x45.png?text=Shop",alt:"Shop logo"},linksSections:[{sectionTitle:"Shop",links:[{title:"All Products",url:"/products"},{title:"New Arrivals",url:"/new"},{title:"Sale",url:"/sale"},{title:"Gift Cards",url:"/gift-cards"}]},{sectionTitle:"Customer Service",links:[{title:"Help Center",url:"/help"},{title:"Returns",url:"/returns"},{title:"Shipping Info",url:"/shipping"},{title:"Size Guide",url:"/size-guide"}]},{sectionTitle:"Account",links:[{title:"My Account",url:"/account"},{title:"Order History",url:"/orders"},{title:"Wishlist",url:"/wishlist"}]}]}},{description:"Large organization footer with multiple rows",type:"footer",props:{logo:{src:"https://via.placeholder.com/180x60.png?text=Enterprise",alt:"Enterprise logo"},linksSections:[{sectionTitle:"Products & Services",links:[{title:"Cloud Solutions",url:"/cloud"},{title:"Data Analytics",url:"/analytics"},{title:"AI & Machine Learning",url:"/ai"},{title:"Cybersecurity",url:"/security"},{title:"DevOps Tools",url:"/devops"},{title:"IoT Platform",url:"/iot"}]},{sectionTitle:"Industries",links:[{title:"Healthcare",url:"/industries/healthcare"},{title:"Finance",url:"/industries/finance"},{title:"Retail",url:"/industries/retail"},{title:"Manufacturing",url:"/industries/manufacturing"},{title:"Education",url:"/industries/education"},{title:"Government",url:"/industries/government"}]},{sectionTitle:"Resources",links:[{title:"Documentation",url:"/docs"},{title:"API Reference",url:"/api"},{title:"Tutorials",url:"/tutorials"},{title:"Webinars",url:"/webinars"},{title:"White Papers",url:"/whitepapers"},{title:"Case Studies",url:"/case-studies"}]},{sectionTitle:"Support & Community",links:[{title:"Help Center",url:"/help"},{title:"Community Forum",url:"/forum"},{title:"Contact Support",url:"/support"},{title:"Service Status",url:"/status"},{title:"Partner Portal",url:"/partners"},{title:"Developer Hub",url:"/developers"}]}]}},{description:"Startup footer with minimal links and left logo",type:"footer",props:{logo:{src:"https://via.placeholder.com/100x35.png?text=Startup",alt:"Startup logo"},linksSections:[{sectionTitle:"Company",links:[{title:"About",url:"/about"},{title:"Team",url:"/team"},{title:"Jobs",url:"/jobs"}]},{sectionTitle:"Product",links:[{title:"Features",url:"/features"},{title:"Pricing",url:"/pricing"},{title:"Demo",url:"/demo"}]},{sectionTitle:"Support",links:[{title:"Help",url:"/help"},{title:"Contact",url:"/contact"}]}]}},{description:"Agency footer with centered logo and creative sections",type:"footer",props:{logo:{src:"https://via.placeholder.com/130x45.png?text=Agency",alt:"Creative agency logo"},linksSections:[{sectionTitle:"Services",links:[{title:"Web Design",url:"/services/web-design"},{title:"Branding",url:"/services/branding"},{title:"Digital Marketing",url:"/services/marketing"},{title:"Photography",url:"/services/photography"}]},{sectionTitle:"Portfolio",links:[{title:"Recent Work",url:"/portfolio"},{title:"Case Studies",url:"/case-studies"},{title:"Client Reviews",url:"/reviews"}]},{sectionTitle:"Connect",links:[{title:"Contact Us",url:"/contact"},{title:"Get Quote",url:"/quote"},{title:"Newsletter",url:"/newsletter"}]}]}},{description:"SaaS platform footer with comprehensive links",type:"footer",props:{logo:{src:"https://via.placeholder.com/160x50.png?text=SaaS+Platform",alt:"SaaS platform logo"},linksSections:[{sectionTitle:"Platform",links:[{title:"Dashboard",url:"/dashboard"},{title:"Analytics",url:"/analytics"},{title:"Integrations",url:"/integrations"},{title:"API",url:"/api"}]},{sectionTitle:"Solutions",links:[{title:"For Startups",url:"/solutions/startups"},{title:"For Enterprise",url:"/solutions/enterprise"},{title:"For Agencies",url:"/solutions/agencies"},{title:"For Developers",url:"/solutions/developers"}]},{sectionTitle:"Resources",links:[{title:"Blog",url:"/blog"},{title:"Documentation",url:"/docs"},{title:"Help Center",url:"/help"},{title:"Community",url:"/community"}]},{sectionTitle:"Company",links:[{title:"About Us",url:"/about"},{title:"Careers",url:"/careers"},{title:"Press",url:"/press"},{title:"Legal",url:"/legal"}]}]}},{description:"Non-profit footer with mission-focused links",type:"footer",props:{logo:{src:"https://via.placeholder.com/140x50.png?text=Non+Profit",alt:"Non-profit organization logo"},linksSections:[{sectionTitle:"Our Work",links:[{title:"Programs",url:"/programs"},{title:"Impact",url:"/impact"},{title:"Success Stories",url:"/stories"},{title:"Research",url:"/research"}]},{sectionTitle:"Get Involved",links:[{title:"Donate",url:"/donate"},{title:"Volunteer",url:"/volunteer"},{title:"Events",url:"/events"},{title:"Partner with Us",url:"/partnerships"}]},{sectionTitle:"About",links:[{title:"Our Mission",url:"/mission"},{title:"Leadership",url:"/leadership"},{title:"Annual Reports",url:"/reports"},{title:"Contact",url:"/contact"}]}]}},{description:"Tech blog footer with right-aligned logo",type:"footer",props:{logo:{src:"https://via.placeholder.com/120x40.png?text=Tech+Blog",alt:"Tech blog logo"},linksSections:[{sectionTitle:"Categories",links:[{title:"Web Development",url:"/category/web-dev"},{title:"AI & ML",url:"/category/ai-ml"},{title:"DevOps",url:"/category/devops"},{title:"Mobile",url:"/category/mobile"}]},{sectionTitle:"Popular",links:[{title:"Latest Posts",url:"/latest"},{title:"Trending",url:"/trending"},{title:"Best of 2024",url:"/best-2024"},{title:"Tutorials",url:"/tutorials"}]},{sectionTitle:"Community",links:[{title:"Newsletter",url:"/newsletter"},{title:"Discord",url:"/discord"},{title:"Contributors",url:"/contributors"},{title:"Write for Us",url:"/write"}]}]}},{description:"Restaurant footer with location and menu links",type:"footer",props:{logo:{src:"https://via.placeholder.com/150x60.png?text=Restaurant",alt:"Restaurant logo"},linksSections:[{sectionTitle:"Menu",links:[{title:"Appetizers",url:"/menu/appetizers"},{title:"Main Courses",url:"/menu/mains"},{title:"Desserts",url:"/menu/desserts"},{title:"Beverages",url:"/menu/drinks"}]},{sectionTitle:"Services",links:[{title:"Reservations",url:"/reservations"},{title:"Catering",url:"/catering"},{title:"Private Events",url:"/events"},{title:"Gift Cards",url:"/gift-cards"}]},{sectionTitle:"Info",links:[{title:"About Us",url:"/about"},{title:"Location",url:"/location"},{title:"Hours",url:"/hours"},{title:"Contact",url:"/contact"}]}]}}];export{d as a,C as b,P as c};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as x}from"./chunk-L42YBY5I.js";import{b as c}from"./chunk-NXIF3UMD.js";import{a as l}from"./chunk-MPBYGS6W.js";import{b as u}from"./chunk-LEWKHCRI.js";import{a}from"./chunk-F4JNKU7J.js";import{b as y}from"./chunk-MVCVVKBY.js";import{b}from"./chunk-GC5OWY2Z.js";import{c as f}from"./chunk-Z4YKRLOX.js";import{b as h,d as g}from"./chunk-DKNOZLA6.js";import{c as s}from"./chunk-HSRXUIVM.js";import{a as m}from"./chunk-SFKZAUPW.js";import{Type as e}from"@sinclair/typebox";import{customAlphabet as P}from"nanoid";var S=P("azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN",7),R=e.Object({left:e.Optional(e.String({title:"top",description:"The left position in css unit."})),top:e.Optional(e.String({title:"top",description:"The top position in css unit."})),right:e.Optional(e.String({title:"right",description:"The right position in css unit."})),bottom:e.Optional(e.String({title:"bottom",description:"The bottom position in css unit."})),inset:e.Optional(e.String({title:"inset",description:"The inset position in css unit."})),translateX:e.Optional(e.String({title:"translateX",description:"The translateX position in css unit."})),translateY:e.Optional(e.String({title:"translateY",description:"The translateY position in css unit."})),rotate:e.Optional(e.String({title:"rotate",description:"The rotate position in css unit."}))}),v=m(Object.keys(c),{title:"Brick type"}),O=e.Object({id:e.String({title:"ID",description:"A unique identifier for the brick."}),type:v,props:e.Any({title:"Props",description:"The static props of the brick. The available props depends on the brick type."}),mobileProps:e.Optional(e.Any({title:"Props",description:"The overriden props for mobile, merged with desktop props."}))},{additionalProperties:!0});function G(t,o){return a(e.Object({id:e.String({title:"ID",description:"A unique identifier for the brick."}),type:e.Literal(t),props:o,mobileProps:e.Optional(e.Partial(o))},{additionalProperties:!1}))}var w=e.Object({colorPreset:e.Optional(f({title:"Color"})),backgroundImage:e.Optional(b({title:"Background",description:"The background image of the section. Prefer to set background images on sections rather than on individual bricks."})),direction:y({default:"flex-row",title:"Direction",description:"The direction of the section. Only apply to desktop. On mobile, it is always vertical.","ui:responsive":"desktop"}),minHeight:e.Optional(s({title:"Min height",default:"fit-content",description:"The min height of the section","ui:field":"hidden"})),variant:e.Optional(m(["navbar","footer","sidebar"],{title:"Custom section variant",description:"Used for custom styling and layout.",enumNames:["Navbar","Footer","Sidebar"],"ui:field":"hidden","ai:hidden":!0})),maxWidth:e.Optional(x("Max width","max-w-full",{options:[{value:"max-w-screen-lg",title:"M",description:"Common for text-heavy content/blog posts"},{value:"max-w-screen-xl",title:"L",description:"Usefull or some landing pages"},{value:"max-w-screen-2xl",title:"XL",description:"Common width"},{value:"max-w-full",title:"Full",description:"Takes the entire space"}],description:"The maximum width of the section. Desktop only","ai:instructions":"Choose the most appropriate max width for the section. You will likely use the same max width for all sections in a page.",displayAs:"button-group","ui:responsive":"desktop"})),justifyContent:e.Optional(h({default:"justify-center"})),alignItems:e.Optional(g({default:"items-center"})),padding:e.Optional(s({default:"2rem",description:"Padding inside the section.",title:"Padding","ui:responsive":!0,"ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),gap:e.Optional(s({title:"Gap",description:"The gap between the bricks in the section.",default:"20px","ui:styleId":"styles:gap"})),wrap:e.Optional(e.Boolean({title:"Wrap",description:"Wrap bricks if they overflow the section.",default:!0,"ui:styleId":"styles:wrap"})),lastTouched:e.Optional(e.Number({description:"Do not use this field. It is used internally by the editor.","ui:field":"hidden","ai:hidden":!0}))},{additionalProperties:!1}),p=e.Object({id:e.String({description:"The unique ID of the section. Use a human readable url-safe slug",examples:["content-section","contact-section"]}),label:e.Optional(e.String({description:"The label of the section. Used for editor purposes only.",examples:["Content","Contact"]})),order:e.Number({description:"Determines section order in the page (lower numbers appear first). 0-based"}),props:w,mobileProps:e.Optional(e.Partial(w,{additionalProperties:!1})),bricks:e.Array(O)},{description:"Sections are direct children of the page that are stacked vertically."}),T=e.Omit(p,["bricks"]);function Y(){return a(T)}function H(){return a(p)}var j=u(p.properties.props,"desktop"),C=u(p.properties.mobileProps,"mobile");function J(t,o,i){let r=n=>({...n,props:l({},j,n.props),mobileProps:l({},C,n.mobileProps||{}),bricks:n.bricks.map(k).filter(Boolean)}),d=t.map(r);return o.navbar&&!i.noNavbar&&d.unshift(r({order:-1,id:"navbar-section",label:"Navbar section",props:{variant:"navbar",direction:"flex-row"},mobileProps:{},bricks:[{id:"navbar",type:"navbar",props:o.navbar}]})),o.footer&&!i.noFooter&&d.push(r({order:1e3,id:"footer-section",label:"Footer section",props:{variant:"footer",direction:"flex-row"},mobileProps:{},bricks:[{id:"footer",type:"footer",props:o.footer}]})),d}function k(t){let o=c[t.type];return{...t,props:l({},o.props,{...t.props,...t.props.$children?{$children:t.props.$children.map(k).filter(Boolean)}:{}})}}function X(t,o=!1){let i={...c[t].props,ghost:o};return{id:`b-${S()}`,type:t,props:i}}var V=[{label:"Hero section with centered 'hero' and 'button' bricks",description:`A simple hero section with a title and a light primary background.
|
|
4
|
+
The "hero" brick does not have a colorPreset so it is transparent and inherits the background/text-color settings from the section.
|
|
5
|
+
Bricks are centered both vertically and horizontally using justifyContent and alignItems.
|
|
6
|
+
Bricks are stacked vertically using the "direction" set to "flex-col".
|
|
7
|
+
`,example:{id:"hero-section",order:0,props:{colorPreset:{color:"primary-100"},direction:"flex-col",padding:"6rem",gap:"3rem",justifyContent:"justify-center",alignItems:"items-center"},bricks:[{id:"hero",type:"hero",props:{content:"<h1 style='text-align:center'>Welcome to my SaaS</h1>",tagline:"The future of productivity starts here"}},{id:"cta-button",type:"button",props:{label:"Get Started",href:"/signup",colorPreset:{color:"primary-500",variant:"solid"}}}]}},{label:"Contact section with a text and a form",description:`A contact section with a title and a form.
|
|
8
|
+
The section has a light gray background using a colorPreset.
|
|
9
|
+
Bricks are stacked vertically using the "direction" set to "flex-col".
|
|
10
|
+
`,example:{id:"contact-section",order:1,props:{colorPreset:{color:"gray-100"},direction:"flex-col",padding:"4rem",gap:"2rem",justifyContent:"justify-center",alignItems:"items-center"},bricks:[{id:"contact-title",type:"text",props:{content:"<h2>Get in Touch</h2>"}},{id:"contact-form",type:"form",props:{title:"Contact Us",fields:[{name:"name",label:"Name",type:"text",required:!0},{name:"email",label:"Email",type:"email",required:!0},{name:"message",label:"Message",type:"textarea",required:!0}]}}]}},{label:"Feature showcase with horizontal layout and container brick",description:`A features section using horizontal layout with a container "box" brick that holds multiple feature items.
|
|
11
|
+
The box brick is the only container type that can hold $children (other bricks).
|
|
12
|
+
This demonstrates nested brick structure where the box contains multiple feature bricks.`,example:{id:"features-section",order:2,props:{direction:"flex-col",padding:"5rem",gap:"3rem",maxWidth:"max-w-screen-xl",justifyContent:"justify-center",alignItems:"items-center"},bricks:[{id:"features-title",type:"text",props:{content:"<h2 style='text-align:center'>Our Features</h2>"}},{id:"features-container",type:"box",props:{direction:"flex-row",gap:"2rem",padding:"2rem",$children:[{id:"feature-1",type:"text",props:{content:"<h3>Fast</h3><p>Lightning-fast performance for your needs.</p>",colorPreset:{color:"blue-500"}}},{id:"feature-2",type:"text",props:{content:"<h3>Secure</h3><p>Enterprise-grade security built-in.</p>",colorPreset:{color:"green-500"}}},{id:"feature-3",type:"text",props:{content:"<h3>Scalable</h3><p>Grows with your business seamlessly.</p>",colorPreset:{color:"purple-500"}}}]}}]}},{label:"Media-rich section with image and text side by side",description:`A content section using horizontal layout to place an image next to text content.
|
|
13
|
+
Demonstrates how direction "flex-row" arranges bricks horizontally.
|
|
14
|
+
The section uses responsive mobile overrides to stack vertically on mobile.`,example:{id:"about-section",order:3,props:{direction:"flex-row",padding:"4rem",gap:"3rem",alignItems:"items-center",maxWidth:"max-w-screen-xl"},mobileProps:{direction:"flex-col",padding:"2rem"},bricks:[{id:"about-image",type:"image",props:{src:"https://example.com/about-image.jpg",alt:"About our company",width:"400px",height:"300px"}},{id:"about-text",type:"text",props:{content:"<h2>About Us</h2><p>We are a leading company in innovative solutions, dedicated to transforming how businesses operate in the digital age.</p>"}}]}},{label:"Complex nested layout with multiple container levels",description:`Advanced example showing deeply nested brick structure using multiple box containers.
|
|
15
|
+
Demonstrates how box bricks can contain other box bricks, creating sophisticated layouts.
|
|
16
|
+
Shows responsive design with different mobile arrangements.`,example:{id:"complex-layout-section",order:4,props:{direction:"flex-col",padding:"4rem",gap:"2rem",backgroundImage:{image:"https://example.com/bg.jpg"}},bricks:[{id:"main-container",type:"box",props:{direction:"flex-row",gap:"2rem",padding:"2rem",$children:[{id:"left-column",type:"box",props:{direction:"flex-col",gap:"1rem",colorPreset:{color:"gray-50"},padding:"1.5rem",$children:[{id:"left-title",type:"text",props:{content:"<h3>Left Column</h3>"}},{id:"left-button",type:"button",props:{label:"Learn More",href:"/learn",colorPreset:{color:"blue-500",variant:"outline"}}}]}},{id:"right-column",type:"box",props:{direction:"flex-col",gap:"1rem",colorPreset:{color:"blue-50"},padding:"1.5rem",$children:[{id:"right-image",type:"image",props:{src:"https://example.com/feature.jpg",alt:"Feature showcase",width:"100%"}},{id:"right-text",type:"text",props:{content:"<p>Detailed description of our amazing features and capabilities.</p>"}}]}}],mobileProps:{direction:"flex-col"}}}]}},{label:"Footer-style section with multiple columns",description:`A footer-like section demonstrating horizontal layout with multiple informational columns.
|
|
17
|
+
Uses the footer variant for special styling and contains multiple text bricks arranged horizontally.
|
|
18
|
+
Shows how to create multi-column layouts using direction and gap properties.`,example:{id:"info-footer-section",order:5,props:{variant:"footer",direction:"flex-row",padding:"3rem",gap:"4rem",colorPreset:{color:"gray-800"},justifyContent:"justify-center"},mobileProps:{direction:"flex-col",gap:"2rem"},bricks:[{id:"company-info",type:"text",props:{content:"<h4 style='color:white'>Company</h4><p style='color:gray'>About Us<br>Careers<br>Contact</p>"}},{id:"product-info",type:"text",props:{content:"<h4 style='color:white'>Product</h4><p style='color:gray'>Features<br>Pricing<br>Documentation</p>"}},{id:"support-info",type:"text",props:{content:"<h4 style='color:white'>Support</h4><p style='color:gray'>Help Center<br>Community<br>Status</p>"}}]}},{label:"Video showcase section with title and description",description:`A media section featuring a YouTube video with accompanying text.
|
|
19
|
+
Shows how to use video bricks for multimedia content.
|
|
20
|
+
The section uses a light background to make the video stand out.`,example:{id:"video-showcase-section",order:6,props:{direction:"flex-col",padding:"4rem",gap:"2rem",colorPreset:{color:"gray-50"},alignItems:"items-center",maxWidth:"max-w-screen-lg"},bricks:[{id:"video-title",type:"text",props:{content:"<h2 style='text-align:center'>Watch Our Demo</h2>"}},{id:"demo-video",type:"video",props:{url:"https://www.youtube.com/watch?v=dQw4w9WgXcQ",title:"Product Demo Video"}},{id:"video-description",type:"text",props:{content:"<p style='text-align:center'>See how our platform can transform your workflow in just 2 minutes.</p>"}}]}},{label:"Image gallery section with carousel",description:`A media-rich section showcasing an image carousel.
|
|
21
|
+
Demonstrates how to use carousel bricks for displaying multiple images.
|
|
22
|
+
Perfect for portfolios, product showcases, or photo galleries.`,example:{id:"gallery-section",order:7,props:{direction:"flex-col",padding:"4rem",gap:"2rem",alignItems:"items-center"},bricks:[{id:"gallery-title",type:"text",props:{content:"<h2 style='text-align:center'>Our Portfolio</h2>"}},{id:"portfolio-carousel",type:"carousel",props:{images:[{src:"https://example.com/project1.jpg",alt:"Project 1"},{src:"https://example.com/project2.jpg",alt:"Project 2"},{src:"https://example.com/project3.jpg",alt:"Project 3"}],autoplay:!0,showDots:!0}}]}},{label:"Interactive form section with styled inputs",description:`A comprehensive form section for user registration or contact.
|
|
23
|
+
Shows how to create forms with various field types and validation.
|
|
24
|
+
Uses a card-like appearance with rounded corners and shadow.`,example:{id:"signup-form-section",order:8,props:{direction:"flex-col",padding:"4rem",gap:"2rem",colorPreset:{color:"blue-50"},alignItems:"items-center",maxWidth:"max-w-screen-md"},bricks:[{id:"form-header",type:"text",props:{content:"<h2 style='text-align:center'>Join Our Platform</h2><p style='text-align:center'>Create your account and start building today.</p>"}},{id:"registration-form",type:"form",props:{title:"Sign Up",submitLabel:"Create Account",fields:[{name:"firstName",label:"First Name",type:"text",required:!0},{name:"lastName",label:"Last Name",type:"text",required:!0},{name:"email",label:"Email Address",type:"email",required:!0},{name:"password",label:"Password",type:"password",required:!0},{name:"company",label:"Company",type:"text",required:!1},{name:"newsletter",label:"Subscribe to newsletter",type:"checkbox",required:!1}],colorPreset:{color:"white"},shadow:"shadow-lg",rounding:"rounded-lg",padding:"2rem"}}]}},{label:"Testimonials section with customer feedback",description:`A social proof section using the testimonials brick to display customer feedback.
|
|
25
|
+
Shows how to structure testimonials with avatars, company information, and social icons.
|
|
26
|
+
Perfect for building trust and credibility with potential customers.`,example:{id:"testimonials-section",order:9,props:{direction:"flex-col",padding:"5rem",gap:"3rem",colorPreset:{color:"purple-50"},alignItems:"items-center"},bricks:[{id:"testimonials-title",type:"text",props:{content:"<h2 style='text-align:center'>What Our Customers Say</h2>"}},{id:"customer-testimonials",type:"testimonials",props:{testimonials:[{text:"This platform has completely transformed how we handle our projects. The automation features and intuitive interface have saved us countless hours every week.",author:"Sarah Johnson",company:"TechCorp Solutions",avatar:{src:"https://via.placeholder.com/80x80.png?text=SJ",alt:"Sarah Johnson profile photo"},socialIcon:"mdi:linkedin"},{text:"Outstanding customer support and regular feature updates. We've been using this for over a year and it keeps getting better. Highly recommend!",author:"Mike Chen",company:"StartupFlow",avatar:{src:"https://via.placeholder.com/80x80.png?text=MC",alt:"Mike Chen profile photo"},socialIcon:"mdi:twitter"},{text:"The results speak for themselves - our productivity increased by 40% after implementing this solution. It's like having an extra team member.",author:"Emily Rodriguez",company:"Digital Agency Pro",avatar:{src:"https://via.placeholder.com/80x80.png?text=ER",alt:"Emily Rodriguez profile photo"},socialIcon:"mdi:briefcase"}],colorPreset:{color:"white"},shadow:"shadow-lg",padding:"2rem",gap:"2rem"}}]}},{label:"Location and contact information with map",description:`A contact section featuring an interactive map alongside contact details.
|
|
27
|
+
Shows how to combine map bricks with text and contact information.
|
|
28
|
+
Perfect for businesses with physical locations.`,example:{id:"location-section",order:10,props:{direction:"flex-row",padding:"4rem",gap:"3rem",alignItems:"items-start"},mobileProps:{direction:"flex-col"},bricks:[{id:"contact-details",type:"box",props:{direction:"flex-col",gap:"2rem",padding:"2rem",colorPreset:{color:"gray-50"},rounding:"rounded-lg",$children:[{id:"office-title",type:"text",props:{content:"<h3>Visit Our Office</h3>"}},{id:"address",type:"text",props:{content:"<p><strong>Address:</strong><br>123 Business Street<br>Suite 100<br>San Francisco, CA 94105</p>"}},{id:"contact-info",type:"text",props:{content:"<p><strong>Phone:</strong> +1 (555) 123-4567<br><strong>Email:</strong> hello@company.com</p>"}},{id:"hours",type:"text",props:{content:"<p><strong>Business Hours:</strong><br>Monday - Friday: 9:00 AM - 6:00 PM<br>Saturday: 10:00 AM - 4:00 PM</p>"}}]}},{id:"office-map",type:"map",props:{address:"123 Business Street, San Francisco, CA 94105",zoom:15,height:"400px"}}]}},{label:"Statistics showcase with icons and numbers",description:`A metrics section displaying key statistics using icon and text bricks.
|
|
29
|
+
Demonstrates how to create compelling data visualizations.
|
|
30
|
+
Uses horizontal layout with consistent spacing and visual hierarchy.`,example:{id:"stats-section",order:11,props:{direction:"flex-col",padding:"5rem",gap:"3rem",colorPreset:{color:"gradient",gradientDirection:"bg-gradient-to-r"},alignItems:"items-center"},bricks:[{id:"stats-title",type:"text",props:{content:"<h2 style='text-align:center; color:white'>Our Impact</h2>"}},{id:"stats-container",type:"box",props:{direction:"flex-row",gap:"4rem",justifyContent:"justify-center",$children:[{id:"users-stat",type:"box",props:{direction:"flex-col",gap:"1rem",alignItems:"items-center",$children:[{id:"users-icon",type:"icon",props:{icon:"users",size:"3rem",color:"white"}},{id:"users-number",type:"text",props:{content:"<h3 style='color:white; text-align:center'>50K+</h3><p style='color:white; text-align:center'>Active Users</p>"}}]}},{id:"projects-stat",type:"box",props:{direction:"flex-col",gap:"1rem",alignItems:"items-center",$children:[{id:"projects-icon",type:"icon",props:{icon:"briefcase",size:"3rem",color:"white"}},{id:"projects-number",type:"text",props:{content:"<h3 style='color:white; text-align:center'>100K+</h3><p style='color:white; text-align:center'>Projects Created</p>"}}]}},{id:"satisfaction-stat",type:"box",props:{direction:"flex-col",gap:"1rem",alignItems:"items-center",$children:[{id:"satisfaction-icon",type:"icon",props:{icon:"star",size:"3rem",color:"white"}},{id:"satisfaction-number",type:"text",props:{content:"<h3 style='color:white; text-align:center'>98%</h3><p style='color:white; text-align:center'>Satisfaction Rate</p>"}}]}}],mobileProps:{direction:"flex-col",gap:"2rem"}}}]}},{label:"Social links and newsletter signup",description:`A community engagement section combining social media links with newsletter signup.
|
|
31
|
+
Shows how to use social-links bricks and forms together.
|
|
32
|
+
Creates a cohesive call-to-action for community building.`,example:{id:"community-section",order:12,props:{direction:"flex-col",padding:"4rem",gap:"3rem",colorPreset:{color:"indigo-100"},alignItems:"items-center",maxWidth:"max-w-screen-md"},bricks:[{id:"community-title",type:"text",props:{content:"<h2 style='text-align:center'>Stay Connected</h2><p style='text-align:center'>Join our community and never miss an update.</p>"}},{id:"social-links",type:"social-links",props:{links:[{platform:"twitter",url:"https://twitter.com/company"},{platform:"linkedin",url:"https://linkedin.com/company/company"},{platform:"github",url:"https://github.com/company"},{platform:"youtube",url:"https://youtube.com/company"}],size:"large",style:"filled"}},{id:"newsletter-form",type:"form",props:{title:"Subscribe to Our Newsletter",subtitle:"Get weekly updates and exclusive content delivered to your inbox.",submitLabel:"Subscribe",fields:[{name:"email",label:"Email Address",type:"email",required:!0,placeholder:"your@email.com"}],colorPreset:{color:"white"},rounding:"rounded-lg",padding:"2rem",shadow:"shadow-md"}}]}},{label:"Pricing table with multiple options",description:`A pricing section using card bricks to create a comparison table.
|
|
33
|
+
Demonstrates how to structure pricing tiers with different features.
|
|
34
|
+
Uses consistent styling with highlighted premium option.`,example:{id:"pricing-section",order:13,props:{direction:"flex-col",padding:"5rem",gap:"3rem",alignItems:"items-center"},bricks:[{id:"pricing-header",type:"text",props:{content:"<h2 style='text-align:center'>Choose Your Plan</h2><p style='text-align:center'>Select the perfect plan for your needs.</p>"}},{id:"pricing-cards",type:"box",props:{direction:"flex-row",gap:"2rem",justifyContent:"justify-center",$children:[{id:"basic-plan",type:"card",props:{title:"Basic",subtitle:"$9/month",content:"\u2022 5 Projects<br>\u2022 10GB Storage<br>\u2022 Email Support<br>\u2022 Basic Templates",colorPreset:{color:"white"},border:{width:"border-2",color:"border-gray-200"},rounding:"rounded-lg",padding:"2rem",shadow:"shadow-md"}},{id:"pro-plan",type:"card",props:{title:"Pro",subtitle:"$29/month",content:"\u2022 Unlimited Projects<br>\u2022 100GB Storage<br>\u2022 Priority Support<br>\u2022 Premium Templates<br>\u2022 Advanced Analytics",colorPreset:{color:"blue-500"},rounding:"rounded-lg",padding:"2rem",shadow:"shadow-lg",border:{width:"border-2",color:"border-blue-400"}}},{id:"enterprise-plan",type:"card",props:{title:"Enterprise",subtitle:"Custom",content:"\u2022 Everything in Pro<br>\u2022 Unlimited Storage<br>\u2022 24/7 Phone Support<br>\u2022 Custom Integrations<br>\u2022 Dedicated Account Manager",colorPreset:{color:"white"},border:{width:"border-2",color:"border-gray-200"},rounding:"rounded-lg",padding:"2rem",shadow:"shadow-md"}}],mobileProps:{direction:"flex-col"}}}]}}];export{S as a,v as b,O as c,G as d,w as e,p as f,T as g,Y as h,H as i,J as j,k,X as l,V as m};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{d as t}from"./chunk-SFDRAHYP.js";import{a as o}from"./chunk-5WY7LYXK.js";import{a as e}from"./chunk-SFKZAUPW.js";import{Type as d}from"@sinclair/typebox";function p(r={}){return d.Object({width:e(["border-0","border","border-2","border-4","border-8"],{title:"Width",enumNames:["None","Small","Medium","Large","Extra large"],"ai:instructions":"Don't specify width if you want no border.","ui:field":"enum","ui:display":"select","ui:placeholder":"None",default:"border-0"}),color:t({title:"Color",description:"The color of the border.",default:"border-current"})},{title:"Border","ui:styleId":"styles:border",description:"Set the border width and color.","ui:field":"border","ui:responsive":!0,examples:[{width:"border-2",color:"border-primary-200"},{width:"border-4",color:"border-accent-400"},{width:"border",color:"border-neutral-100"}],...r})}function s(r={}){return o("styles:border",r)}function a(r={}){return d.Optional(e(["rounded-auto","rounded-none","rounded-sm","rounded-md","rounded-lg","rounded-xl","rounded-2xl","rounded-full"],{title:"Corner rounding",enumNames:["Auto","None","Small","Medium","Large","Extra large","2xl","Full"],"ui:styleId":"styles:rounding","ui:responsive":"desktop",...r}))}function b(r={}){return o("styles:rounding",r)}export{p as a,s as b,a as c,b as d};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as n}from"./chunk-5WY7LYXK.js";import{a as e}from"./chunk-SFKZAUPW.js";function r(t={}){return e(["justify-start","justify-center","justify-end","justify-between","justify-around","justify-evenly"],{enumNames:["Start","Center","End","Between","Around","Evenly"],title:"Justify bricks","ui:field":"justify-content","ui:responsive":!0,"ui:styleId":"styles:justifyContent",examples:["justify-center","justify-evenly"],...t})}function u(t={}){return n("styles:justifyContent",t)}function l(t={}){return e(["items-start","items-center","items-end","items-stretch"],{enumNames:["Start","Center","End","Stretch"],title:"Align bricks","ui:field":"align-items","ui:responsive":!0,"ui:styleId":"styles:alignItems",examples:["items-center","items-stretch"],...t})}function f(t={}){return n("styles:alignItems",t)}function o(t={}){return e(["self-auto","self-start","self-center","self-end","self-stretch"],{enumNames:["Auto","Start","Center","End","Stretch"],default:"self-auto",title:"Align self","ui:field":"align-self","ui:responsive":!0,"ui:styleId":"styles:alignSelf",...t})}function y(t={}){return n("styles:alignSelf",t)}export{r as a,u as b,l as c,f as d,o as e,y as f};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{c as d}from"./chunk-6PGAWO4H.js";import{a as p}from"./chunk-4GIZ6WSG.js";import{m as l}from"./chunk-F4JNKU7J.js";import{f as a}from"./chunk-VK26ZZFR.js";import{b as i}from"./chunk-AB3IMRXZ.js";import{b as r,d as o}from"./chunk-DHSWVVMI.js";import{c as s}from"./chunk-Z4YKRLOX.js";import{d as t}from"./chunk-DKNOZLA6.js";import{c as n}from"./chunk-HSRXUIVM.js";import{RxTextAlignLeft as c}from"react-icons/rx";import{Type as e}from"@sinclair/typebox";var k=p({type:"text",category:"basic",name:"Text",description:"Text with formatting options",aiInstructions:`Text "content" can contain minimal HTML tags like <strong>, <em>, <br> and <a> as well as <h1>, <h2>, <h3>, <h4>, <p> and <span> and lists.
|
|
4
|
+
Only 'align' is supported as an inline style, so don't use other inline styles like 'font-size' or 'color' in the content prop.
|
|
5
|
+
You may simply omit the "colorPreset" property so that the brick will inherit the default color from its parent container.
|
|
6
|
+
`,defaultWidth:{mobile:"100%"},defaultHeight:{desktop:"auto",mobile:"auto"},staticClasses:"prose lg:prose-lg",icon:c,props:d({colorPreset:e.Optional(s({title:"Color"})),content:a({title:"Content"}),verticalAlign:e.Optional(t({default:"items-center",title:"Align"})),padding:e.Optional(n({default:"2rem",description:"Padding inside the text.","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(o({default:"rounded-md"})),border:e.Optional(r()),shadow:e.Optional(i()),loop:e.Optional(l())})}),A=[{description:"Welcome paragraph with emphasis and padding",type:"text",props:{content:"Welcome to our platform! We're <strong>excited</strong> to have you here. Our mission is to <em>transform</em> the way you work with cutting-edge technology and <a href='/features'>innovative features</a>.",padding:"2rem"}},{description:"Feature list with HTML formatting and smaller padding",type:"text",props:{content:"<h3>Key Features</h3><ul><li><strong>Advanced Analytics</strong> - Real-time data insights</li><li><strong>Cloud Integration</strong> - Seamless connectivity</li><li><strong>24/7 Support</strong> - Always here to help</li></ul>",padding:"1rem"}},{description:"Quote block with text styling but no background",type:"text",props:{content:`<p style='text-align: center'><em>"Innovation distinguishes between a leader and a follower."</em><br><strong>- Steve Jobs</strong></p>`,padding:"3rem"}},{description:"Simple heading with subtle background",type:"text",props:{content:"<h2>About Our Company</h2><p>We've been serving customers since 2010, building trust through quality products and exceptional service.</p>",colorPreset:{color:"primary-100"}}},{description:"Team introduction with formatting, no background color",type:"text",props:{content:"<p style='text-align: center'><strong>Meet Our Team</strong></p><p>Our diverse team of experts brings together decades of experience in technology, design, and business strategy. We're passionate about <em>creating solutions</em> that make a real difference.</p><p><a href='/team'>Learn more about our team</a> and the values that drive us forward.</p>",padding:"2rem"}},{description:"Maintenance notice with neutral background and border",type:"text",props:{content:"<p>Scheduled maintenance will occur on <em>Sunday, March 15th</em> from 2:00 AM to 6:00 AM UTC.</p><p>During this time, some features may be temporarily unavailable. We apologize for any inconvenience.</p>",padding:"1rem",colorPreset:{color:"neutral-700"},border:{width:"border",color:"border-neutral-400"},rounding:"rounded-lg"}},{description:"Minimal text with no padding or background",type:"text",props:{content:"This is some minimal text.",padding:"0rem"}},{description:"Call-to-action text with secondary background and shadow",type:"text",props:{content:"<h3 style='text-align: center'>Ready to Get Started?</h3><p style='text-align: center'>Join thousands of satisfied customers who trust our platform. <strong>Sign up today</strong> and experience the difference!</p><p style='text-align: center'><a href='/signup'>Create Your Free Account</a></p>",colorPreset:{color:"secondary-200"},padding:"2.5rem",rounding:"rounded-xl",shadow:"shadow-md",verticalAlign:"items-center"}},{description:"Technical documentation with accent colors and code-like formatting",type:"text",props:{content:"<h4>API Authentication</h4><p>To authenticate your requests, include your API key in the header:</p><p><strong>Authorization: Bearer YOUR_API_KEY</strong></p><p>All API endpoints require authentication. You can find your API key in the <a href='/dashboard'>dashboard settings</a>.</p>",colorPreset:{color:"accent-100"},padding:"1.5rem",rounding:"rounded-md",border:{width:"border-4",color:"border-accent-500"}}},{description:"Success message with primary background and top alignment",type:"text",props:{content:"<h3>\u2705 Payment Successful!</h3><p>Thank you for your purchase. Your order <strong>#12345</strong> has been confirmed.</p><p>You will receive an email confirmation shortly at your registered email address.</p>",colorPreset:{color:"primary-200"},padding:"2rem",rounding:"rounded-lg",shadow:"shadow-sm",verticalAlign:"items-start"}},{description:"Footer information with neutral dark theme and multiple links",type:"text",props:{content:"<p style='text-align: center'>\xA9 2024 Company Name. All rights reserved.</p><p style='text-align: center'><a href='/privacy'>Privacy Policy</a> | <a href='/terms'>Terms of Service</a> | <a href='/contact'>Contact Us</a></p><p style='text-align: center'><em>Follow us on social media for the latest updates</em></p>",colorPreset:{color:"neutral-800"},padding:"1.5rem",verticalAlign:"items-end"}},{description:"Product description with large padding and rounded corners",type:"text",props:{content:"<h2>Premium Wireless Headphones</h2><p>Experience <strong>crystal-clear audio</strong> with our latest wireless headphones featuring:</p><ul><li>Active noise cancellation</li><li>30-hour battery life</li><li>Premium leather comfort</li><li>Hi-res audio certification</li></ul><p>Perfect for <em>music lovers</em> and <em>professionals</em> alike.</p>",padding:"3rem",rounding:"rounded-2xl",shadow:"shadow-lg",border:{width:"border",color:"border-neutral-300"}}},{description:"Emergency alert with accent background and extra bold formatting",type:"text",props:{content:"<h3 style='text-align: center'>\u26A0\uFE0F URGENT NOTICE</h3><p style='text-align: center'><strong>System maintenance is currently in progress.</strong></p><p style='text-align: center'>Some services may be <em>temporarily unavailable</em>. We expect full restoration by 4:00 PM EST.</p><p style='text-align: center'>For urgent support, please <a href='/emergency-contact'>contact our emergency line</a>.</p>",colorPreset:{color:"accent-400"},padding:"2rem",rounding:"rounded-md",border:{width:"border-2",color:"border-accent-600"},shadow:"shadow-xl",verticalAlign:"items-center"}}];export{k as a,A as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as J}from"./chunk-3FPFR5RA.js";import{c as N,e as E}from"./chunk-7UBMXMNJ.js";import{a as K}from"./chunk-US53TNMK.js";import{a as P,e as W}from"./chunk-VK26ZZFR.js";import{a as B}from"./chunk-MVCVVKBY.js";import{a as _,c as C}from"./chunk-AB3IMRXZ.js";import{a as $,c as j}from"./chunk-GC5OWY2Z.js";import{a as F,c as k}from"./chunk-DHSWVVMI.js";import{b as M}from"./chunk-Z4YKRLOX.js";import{a as I,c as D}from"./chunk-SFDRAHYP.js";import{a as R}from"./chunk-JRCVYDCD.js";import{a as A,c as w,e as T}from"./chunk-DKNOZLA6.js";import{b as U}from"./chunk-HSRXUIVM.js";import{a as L}from"./chunk-5WY7LYXK.js";import{a as q}from"./chunk-SFKZAUPW.js";import ne from"ajv";import le from"ajv-formats";import{Type as y}from"@sinclair/typebox";import{Type as e}from"@sinclair/typebox";var he=e.Union([e.Literal("internal")]),H=e.Object({id:e.String({title:"ID",description:"Unique identifier of the datasource. Used to reference the datasource in the system. Use a url-safe string like a slug."}),label:e.String({title:"Label",description:"Label of the datasource displayed in the UI"}),provider:e.Literal("internal",{title:"Internal",description:"Internal datasource saved locally in Upstart."}),schema:e.Any({title:"Schema",description:"JSON Schema of datasource. MUST Always an array of objects."}),indexes:e.Optional(e.Array(e.Object({name:e.String({title:"Index name"}),fields:e.Array(e.String(),{title:"Fields to index"}),unique:e.Optional(e.Boolean({title:"Unique index",default:!1}))}),{title:"Indexes",description:"IMPORTANT: Indexes to create on the datasource. use it to enforce uniqueness or improve query performance."}))},{examples:[{id:"customers",label:"Customers",provider:"internal",schema:{type:"array",items:{type:"object",properties:{name:{type:"string",title:"Name"},email:{type:"string",title:"Email",format:"email"}},required:["name","email"],title:"Customer",examples:[{name:"John Doe",email:"john.doe@example.com"},{name:"Jane Smith",email:"jane.smith@example.com"},{name:"Alice Johnson",email:"alice.johnson@example.com"},{name:"Bob Brown",email:"bob.brown@example.com"},{name:"Charlie Davis",email:"charlie.davis@example.com"}]}},indexes:[{name:"idx_customers_email",fields:["email"],unique:!0}]},{id:"blog_posts",label:"Blog Posts",provider:"internal",schema:{type:"array",items:{type:"object",properties:{title:{type:"string",title:"Title"},content:{type:"string",title:"Content"},author:{type:"string",title:"Author"}},required:["title","content","author"],title:"Blog Post",examples:[{title:"My First Blog Post",content:"This is the content of my first blog post.",author:"John Doe"},{title:"Exploring the Cosmos",content:"A journey through the stars and galaxies.",author:"Jane Smith"},{title:"The Art of Cooking",content:"Delicious recipes and cooking tips.",author:"Alice Johnson"},{title:"Traveling the World",content:"My adventures in different countries.",author:"Bob Brown"},{title:"Technology Trends",content:"The latest trends in technology.",author:"Charlie Davis"}]}},indexes:[{name:"idx_blog_posts_title",fields:["title"],unique:!0}]}]}),Q=H;function ye(){return z(Q)}var ge=e.Array(Q),X=e.Object({field:e.String(),op:e.Union([e.Literal("eq"),e.Literal("ne"),e.Literal("contains"),e.Literal("notContains"),e.Literal("startsWith"),e.Literal("notStartsWith"),e.Literal("endsWith"),e.Literal("notEndsWith")]),value:e.String()}),ee=e.Object({field:e.String(),op:e.Union([e.Literal("eq"),e.Literal("ne"),e.Literal("lt"),e.Literal("lte"),e.Literal("gt"),e.Literal("gte")]),value:e.Number()}),te=e.Object({field:e.String(),op:e.Union([e.Literal("before"),e.Literal("after")]),value:e.String()}),re=e.Object({field:e.String(),op:e.Union([e.Literal("beforeNow"),e.Literal("afterNow")]),value:e.Null()}),ie=e.Object({field:e.String(),op:e.Union([e.Literal("contains"),e.Literal("notContains"),e.Literal("containsAll"),e.Literal("containsAny"),e.Literal("notContainsAny")]),value:e.Array(e.String())}),oe=e.Object({field:e.String(),op:e.Literal("eq"),value:e.Boolean()}),S=e.Union([X,ee,te,re,ie,oe]),ae=e.Recursive(t=>e.Union([e.Object({op:e.Literal("and"),fields:e.Array(e.Union([S,t]),{title:"Indexed Fields"})}),e.Object({op:e.Literal("or"),fields:e.Array(e.Union([S,t]))})],{default:{op:"and",fields:[]},examples:[{op:"and",fields:[{field:"$id",op:"eq",value:"123"},{field:"$publicationDate",op:"beforeNow"}]}]}),{title:"Filter Expression",description:"Expression used to filter query results. Can be a combination of and/or conditions."}),Se=e.Object({id:e.String({title:"Query ID",description:"Unique identifier for the query. Used to reference the query in the system. URL-safe string like a slug."}),label:e.String({title:"Label",maxLength:100,description:"Label of the query displayed in the UI"}),datasourceId:e.String({title:"Database",description:"ID of the datasource to query"}),limit:e.Number({title:"Limit",description:"Limit the number of records to fetch from the datasource.",minimum:1,default:10}),sortDirection:e.Optional(q(["asc","desc"],{title:"Sort",enumNames:["Ascending","Descending"],description:"Direction to sort the records by",default:"desc"})),sortField:e.Optional(e.String({title:"Sort Field",description:"Field to sort by (must be an indexed field)",default:"$publicationDate"})),filters:e.Optional(ae),parameters:e.Optional(e.Array(e.Object({field:e.String({title:"Field",description:"Field name to use as parameter"}),op:e.Union([e.Literal("eq"),e.Literal("ne"),e.Literal("contains"),e.Literal("notContains"),e.Literal("startsWith"),e.Literal("notStartsWith"),e.Literal("endsWith"),e.Literal("notEndsWith"),e.Literal("lt"),e.Literal("lte"),e.Literal("gt"),e.Literal("gte"),e.Literal("before"),e.Literal("after"),e.Literal("beforeNow"),e.Literal("afterNow"),e.Literal("containsAll"),e.Literal("containsAny"),e.Literal("notContainsAny")],{title:"Operator",description:"Operator to use for the parameter"})}),{title:"Parameters",description:"Field name and operator that will be used as parameters when using the query in pages. Only indexed fields can be used as parameters.",default:[],examples:[[{field:"$slug",op:"eq"}],[{field:"category",op:"eq"}],[{field:"tags",op:"containsAny"}],[{field:"author",op:"eq"}],[{field:"title",op:"contains"}]]}))},{examples:[{id:"latest-posts",label:"Latest posts",datasourceId:"blog_posts",limit:5,sortDirection:"desc",sortField:"$publicationDate"},{id:"posts-by-category",label:"Posts by category",datasourceId:"blog_posts",limit:10,sortDirection:"desc",sortField:"$publicationDate",parameters:[{field:"category",op:"eq"}]},{id:"posts-by-tag",label:"Posts by tag",datasourceId:"blog_posts",limit:10,sortDirection:"desc",sortField:"$publicationDate",parameters:[{field:"tags",op:"containsAny"}]},{id:"author-posts",label:"Author posts",datasourceId:"blog_posts",limit:10,sortDirection:"desc",sortField:"$publicationDate",parameters:[{field:"author",op:"eq"}]},{id:"search-posts",label:"Search posts",datasourceId:"blog_posts",limit:10,sortDirection:"desc",sortField:"$publicationDate",parameters:[{field:"title",op:"contains"}]}]});function Z(){return y.Object({queryId:y.String({description:"The Site Query ID to use."}),alias:y.String({title:"Alias",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9_]+$",description:"Alias for the query results, used in dynamic content. Use a simple keyword without spaces or special characters. Aliases are unique across the page.","ai:instructions":"Use a simple keyword without spaces or special characters. Aliases are unique across the page. You can use the same query several times with different aliases in order to, for example, apply different parameters to the same query."}),params:y.Optional(y.Array(S,{description:"Additional query parameters/filters to apply to the query. One can use placeholders in values like ':slug' to reference URL parameters.",title:"Query Parameters",default:[]}))},{title:"Query",description:"When set, this brick will loop through the results of the query and render the content for each item.","ui:field":"query",metadata:{category:"content"},examples:[{queryId:"get-latest-posts",alias:"latestPosts"},{queryId:"get-user-profile",alias:"userProfile",params:[{field:"userId",op:"eq",value:":slug"}]},{queryId:"get-posts-by-category",alias:"postsByCategory",params:[{field:"category",op:"eq",value:":slug"}]}]})}var Oe=se();function se(t={}){return L("content:queryUse",t)}function V(t={}){return y.Object({over:y.String({title:"Over",description:"The query alias to loop over. If not set, the brick will be rendered only once.","ai:instructions":"Specify the Query Alias to loop over the results."}),overrideLimit:y.Optional(y.Number({minimum:1,description:"Override the limit of items to loop through. If not set, it will use the default limit of the query. If set to 1, it will not loop and will render only the first item."}))},{title:"Repeat over",description:"Repeat this brick for each item in the specified query results.","ui:field":"loop","ui:hidden-if":"no-page-queries",metadata:{category:"content"},examples:[{over:"latestBlogPosts",overrideLimit:5},{over:"featuredProducts",overrideLimit:3},{over:"popularProducts"}],...t})}function qe(t={}){return L("content:loop",t)}var ce=["date-time","date","email","url"];function x(){let t=new ne({useDefaults:!0,strictSchema:!1,validateSchema:!1,coerceTypes:!0,allErrors:!0,inlineRefs:!0});return t.addSchema($(),"styles:background"),t.addSchema(j(),"styles:backgroundColor"),t.addSchema(A(),"styles:justifyContent"),t.addSchema(w(),"styles:alignItems"),t.addSchema(T(),"styles:alignSelf"),t.addSchema(k(),"styles:rounding"),t.addSchema(P(),"styles:fontSize"),t.addSchema(R(),"styles:hidden"),t.addSchema(B(),"styles:direction"),t.addSchema(F(),"styles:border"),t.addSchema(I(),"styles:color"),t.addSchema(D(),"styles:borderColor"),t.addSchema(_(),"styles:shadow"),t.addSchema(C(),"styles:textShadow"),t.addSchema(U(),"styles:cssLength"),t.addSchema(J(),"assets:image"),t.addSchema(E(),"assets:icon"),t.addSchema(W(),"content:text"),t.addSchema(N(),"content:urlOrPageId"),t.addSchema(V(),"content:loop"),t.addSchema(Z(),"content:queryUse"),t.addSchema(M(),"presets:color"),t.addSchema(K(),"content:tags"),le(t,[...ce]),t.addFormat("slug",{validate:r=>typeof r=="string",async:!1,type:"string"}),t.addFormat("image",{validate:r=>typeof r=="string",async:!1,type:"string"}),t.addFormat("file",{validate:r=>typeof r=="string",async:!1,type:"string"}),t.addFormat("nanoid",{validate:r=>typeof r=="string",async:!1,type:"string"}),t.addFormat("richtext",{validate:r=>typeof r=="string",async:!1,type:"string"}),t.addFormat("markdown",{validate:r=>typeof r=="string",async:!1,type:"string"}),t.addFormat("multiline",{validate:r=>typeof r=="string",async:!1,type:"string"}),t.addFormat("password",{validate:r=>typeof r=="string",async:!1,type:"string"}),t}var Me=x();function Je(t){return!t||t.length===0?"Unknown validation error":t.map(r=>{let{instancePath:i,message:l,params:s}=r,h=i||"root",c=Object.entries(s||{}).map(([u,v])=>`${u}: ${v}`).join(", ");return`${h} ${l} (${c})`}).join("; ")}import{cloneDeep as de}from"lodash-es";function z(t,r){return b(pe(t,r??x()))}function b(t){let r={};for(let[i,l]of Object.entries(t))if(!(i==="metadata"||i.startsWith("ui:")))if(l&&typeof l=="object")if(Array.isArray(l))r[i]=l.map(s=>s&&typeof s=="object"&&Y(s)?b(s):s);else if(Y(l))r[i]=b(l);else if(i==="properties"||i==="definitions"||i==="$defs"||i==="patternProperties"){let s={};for(let[h,c]of Object.entries(l))if(c&&typeof c=="object"){if(c["ai:hidden"]===!0)continue;s[h]=b(c)}else s[h]=c;r[i]=s}else r[i]=l;else r[i]=l;return r}function Y(t){return!t||typeof t!="object"?!1:["type","$ref","properties","items","anyOf","oneOf","allOf","not","if","then","else"].some(i=>i in t)}function pe(t,r){let i=de(t),l=new Set;i.$defs||(i.$defs={});function s(o){if(!(typeof o!="object"||o===null)){if(Array.isArray(o)){o.forEach(s);return}for(let[d,a]of Object.entries(o))d==="$ref"&&typeof a=="string"?a.startsWith("#/")||l.add(a):s(a)}}function h(o,d){if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return o.map(n=>h(n,d));let a={};for(let[n,p]of Object.entries(o))if(n==="$ref"&&typeof p=="string"){let m=d.get(p);a[n]=m||p}else a[n]=h(p,d);return a}s(i);let c=new Map;for(let o of l){let d=r.getSchema(o);if(!d?.schema)continue;let a=o.replace(/[^a-zA-Z0-9_-]/g,"_").replace(/^_+|_+$/g,"")||o.split("/").pop()?.replace(/[^a-zA-Z0-9_-]/g,"_")||`ref_${Object.keys(i.$defs).length}`,n=a,p=1;for(;i.$defs[n];)n=`${a}_${p}`,p++;let{$id:m,...f}=d.schema;i.$defs[n]=f,c.set(o,`#/$defs/${n}`)}let u=h(i,c);if(u.$defs){let o=!0;for(;o;){o=!1;let d=new Set;for(let[a,n]of Object.entries(u.$defs)){let m=function(f){if(!(typeof f!="object"||f===null)){if(Array.isArray(f)){f.forEach(m);return}for(let[G,g]of Object.entries(f))if(G==="$ref"&&typeof g=="string"){let O=(g.startsWith("#/"),g);O.startsWith("#/")||p.add(O)}else m(g)}};var v=m;let p=new Set;m(n);for(let f of p)c.has(f)||(d.add(f),o=!0)}for(let a of d){let n=r.getSchema(a);if(n?.schema){let p=a.replace(/[^a-zA-Z0-9_-]/g,"_").replace(/^_+|_+$/g,"")||`ref_${Object.keys(u.$defs).length}`,m=p,f=1;for(;u.$defs[m];)m=`${p}_${f}`,f++;u.$defs[m]=n.schema,c.set(a,`#/$defs/${m}`)}}}for(let[d,a]of Object.entries(u.$defs))u.$defs[d]=h(a,c)}return u}export{z as a,pe as b,he as c,Q as d,ye as e,ge as f,S as g,Se as h,Z as i,Oe as j,se as k,V as l,qe as m,ce as n,x as o,Me as p,Je as q};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as r}from"./chunk-5WY7LYXK.js";import{a}from"./chunk-SFKZAUPW.js";import{Type as t}from"@sinclair/typebox";function u(e={}){let{default:o,...n}=e;return t.Object({image:t.String({title:"Image",description:"The background image. Can be a URL or a data URI",format:"image",examples:["https://example.com/image.png"]}),size:t.Optional(a(["auto","cover","contain"],{enumNames:["Auto","Cover","Contain"],default:o?.size??"auto","ai:instructions":"Only use this when the image is set."})),repeat:t.Optional(a(["no-repeat","repeat","repeat-x","repeat-y","space","round"],{enumNames:["No repeat","Repeat","Repeat horizontally","Repeat vertically","Space","Round"],default:o?.repeat??"no-repeat","ai:instructions":"Only use this when the image is set."}))},{"ui:styleId":"styles:background","ui:field":"background",title:"Background image",default:o,...n})}function c(e={}){return r("styles:background",e)}function l(e={}){return t.String({title:"Background color","ai:instructions":"Can be set to transparent, hex/rgb/rgba color, or classes like `bg-<variant>-<shade>`, variants being primary, secondary, accent and neutral, and shades between 100 and 900. Use bg-<variant>-<shade> classes as much as possible.","ui:field":"color","ui:color-type":"background","ui:styleId":"styles:backgroundColor","ui:responsive":"desktop",...e})}function d(e={}){return r("styles:backgroundColor",e)}export{u as a,c as b,l as c,d};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as o}from"./chunk-PW5HRVMD.js";import{f as a}from"./chunk-COT2ROEH.js";import{a as t}from"./chunk-F4JNKU7J.js";import{Type as e}from"@sinclair/typebox";var r=e.Object({id:e.String({description:"The unique ID of the page. Use a human readable url-safe slug",examples:["home","about-us","products-list"]}),label:e.String({description:"The label (name) of the page",examples:["Home","About us","Products"]}),sections:e.Array(a,{description:"The sections of the page. See the Section schema"}),attributes:o});function c(){return t(r)}export{r as a,c as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{Type as i}from"@sinclair/typebox";function d(e=!1,t="Fixed position"){return i.Boolean({title:t,default:e,"ui:styleId":"styles:fixedPositioned"})}export{d as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as n}from"./chunk-5WY7LYXK.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};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as n}from"./chunk-YIFNKP4J.js";import{c as l}from"./chunk-6PGAWO4H.js";import{a as c}from"./chunk-4GIZ6WSG.js";import{m as s}from"./chunk-F4JNKU7J.js";import{b as i,f as t}from"./chunk-VK26ZZFR.js";import{c as a}from"./chunk-Z4YKRLOX.js";import{c as r}from"./chunk-HSRXUIVM.js";import{a as o}from"./chunk-SFKZAUPW.js";import{Type as e}from"@sinclair/typebox";import{TfiLayoutAccordionSeparated as d}from"react-icons/tfi";var k=c({type:"accordion",name:"Accordion",description:"An accordion/collapse element for expandable content",aiInstructions:`
|
|
4
|
+
This accordion element displays content in collapsible panels.
|
|
5
|
+
It is typically used for FAQ sections, organized documentation, or to save space.
|
|
6
|
+
Each item has a title and expandable content area.
|
|
7
|
+
Multiple panels can be open simultaneously or limited to one at a time.
|
|
8
|
+
`.trim(),icon:d,defaultWidth:{desktop:"450px",mobile:"100%"},props:l({items:e.Array(e.Object({title:t({title:"Title",default:"My title",disableSizing:!0,showInSettings:!0}),content:t({title:"Content",default:"Expandable content goes here"}),defaultOpen:e.Optional(n("Open by default",!1))}),{title:"Accordion items",metadata:{category:"content"}}),fontSize:e.Optional(i({default:"inherit"})),restrictOneOpen:n("Restrict to one open item",!1,{description:"Restrict to one open item at a time. If false, multiple items can be open simultaneously."}),gap:e.Optional(r({title:"Gap",description:"The gap between the accordion items.",default:"1px","ui:styleId":"styles:gap"})),rounding:e.Optional(o(["rounded-auto","rounded-none","rounded-sm","rounded-md","rounded-lg","rounded-xl","rounded-2xl","rounded-3xl"],{title:"Corner rounding",enumNames:["Auto","None","Small","Medium","Large","Extra large","2xl","3xl"],"ui:placeholder":"Not specified","ui:field":"enum","ui:display":"select","ui:styleId":"styles:rounding",default:"rounded-auto"})),colorPreset:e.Optional(a({title:"Color",default:{color:"bg-primary-500 text-primary-500-content"}})),loop:e.Optional(s())})}),v=[{description:"FAQ section with card styling with single open",type:"accordion",props:{restrictOneOpen:!0,items:[{title:"What is included in the basic plan?",content:"The basic plan includes access to all core features, up to 10 projects, 5GB storage, email support, and basic analytics. You can upgrade at any time to access advanced features like API access, priority support, and unlimited projects.",defaultOpen:!0},{title:"How do I cancel my subscription?",content:"You can cancel your subscription at any time from your account settings. Go to Billing > Manage Subscription > Cancel. Your access will continue until the end of your current billing period, and you won't be charged for the next cycle."},{title:"Is there a free trial available?",content:"Yes! We offer a 14-day free trial with full access to all premium features. No credit card required to start. You can upgrade to a paid plan anytime during or after the trial period."},{title:"What payment methods do you accept?",content:"We accept all major credit cards (Visa, MasterCard, American Express), PayPal, and bank transfers for annual subscriptions. All payments are processed securely through our payment partners."},{title:"Do you offer refunds?",content:"We offer a 30-day money-back guarantee for all new subscriptions. If you're not satisfied with our service, contact our support team within 30 days of your purchase for a full refund."}]}},{description:"Product features accordion with multiple open panels and secondary color scheme",type:"accordion",props:{restrictOneOpen:!1,colorPreset:{color:"secondary-400"},rounding:"rounded-lg",gap:"0.5rem",items:[{title:"Advanced Analytics Dashboard",content:"Get detailed insights into your business performance with real-time analytics, custom reports, and data visualization tools. Track key metrics, monitor trends, and make data-driven decisions.",defaultOpen:!0},{title:"Team Collaboration Tools",content:"Work seamlessly with your team using built-in collaboration features including shared workspaces, real-time editing, comments, and task management. Perfect for remote and hybrid teams.",defaultOpen:!0},{title:"API Integration & Automation",content:"Connect with over 1000+ popular tools and services through our robust API. Set up automated workflows, sync data across platforms, and streamline your business processes."},{title:"Enterprise Security",content:"Bank-level security with end-to-end encryption, SSO integration, two-factor authentication, and compliance with SOC 2, GDPR, and HIPAA standards."}]}},{description:"Documentation sections with neutral styling and large font size",type:"accordion",props:{restrictOneOpen:!1,colorPreset:{color:"neutral-200"},fontSize:"text-lg",rounding:"rounded-md",gap:"2px",items:[{title:"Getting Started",content:"Learn the basics of our platform with step-by-step tutorials, setup guides, and quick start examples. Perfect for new users who want to get up and running quickly."},{title:"API Reference",content:"Complete API documentation with endpoints, parameters, response examples, and SDKs for popular programming languages including JavaScript, Python, PHP, and Ruby."},{title:"Advanced Configuration",content:"Deep dive into advanced features, custom configurations, webhooks, and enterprise-level integrations. Includes code samples and best practices."}]}},{description:"Restaurant menu sections with accent colors and extra large rounding",type:"accordion",props:{restrictOneOpen:!0,colorPreset:{color:"accent-500"},rounding:"rounded-xl",gap:"1rem",items:[{title:"Appetizers & Starters",content:"Bruschetta with Fresh Tomatoes - $8.99<br/>Calamari Rings with Marinara - $12.99<br/>Spinach & Artichoke Dip - $10.99<br/>Buffalo Wings (6 pieces) - $9.99",defaultOpen:!0},{title:"Main Courses",content:"Grilled Salmon with Herbs - $18.99<br/>Chicken Parmesan with Pasta - $16.99<br/>Ribeye Steak (12oz) - $24.99<br/>Vegetarian Lasagna - $14.99"},{title:"Desserts",content:"Tiramisu - $7.99<br/>Chocolate Lava Cake - $8.99<br/>New York Cheesecake - $6.99<br/>Gelato (3 scoops) - $5.99"}]}},{description:"Course curriculum with primary colors and minimal gap",type:"accordion",props:{restrictOneOpen:!1,colorPreset:{color:"primary-600"},rounding:"rounded-sm",gap:"1px",fontSize:"text-base",items:[{title:"Week 1: Introduction to Web Development",content:"Learn the fundamentals of HTML, CSS, and basic JavaScript. Set up your development environment and create your first web page. Includes hands-on exercises and project templates."},{title:"Week 2: Responsive Design & CSS Framework",content:"Master responsive web design principles, CSS Grid, Flexbox, and popular frameworks like Bootstrap and Tailwind CSS. Build mobile-first designs that work on all devices."},{title:"Week 3: JavaScript Fundamentals",content:"Deep dive into JavaScript programming including variables, functions, objects, arrays, DOM manipulation, and event handling. Build interactive web applications."},{title:"Week 4: Modern JavaScript & APIs",content:"Learn ES6+ features, async/await, fetch API, and how to work with external APIs. Create dynamic applications that interact with real-world data sources."}]}},{description:"Legal terms accordion with neutral dark theme and large gaps",type:"accordion",props:{restrictOneOpen:!0,colorPreset:{color:"neutral-800"},rounding:"rounded-lg",gap:"1.5rem",fontSize:"text-sm",items:[{title:"Terms of Service",content:"By accessing and using this website, you accept and agree to be bound by the terms and provision of this agreement. These terms apply to all visitors, users, and others who access or use the service."},{title:"Privacy Policy",content:"We collect information you provide directly to us, such as when you create an account, make a purchase, or contact us. We use this information to provide, maintain, and improve our services."},{title:"Cookie Policy",content:"We use cookies and similar tracking technologies to track activity on our service and hold certain information. You can instruct your browser to refuse all cookies or indicate when a cookie is being sent."}]}},{description:"Event schedule with secondary colors and 2xl rounding",type:"accordion",props:{restrictOneOpen:!1,colorPreset:{color:"secondary-300"},rounding:"rounded-2xl",gap:"0.75rem",items:[{title:"Day 1: Opening Ceremony & Keynotes",content:"9:00 AM - Registration & Welcome Coffee<br/>10:00 AM - Opening Ceremony<br/>11:00 AM - Keynote: Future of Technology<br/>12:30 PM - Networking Lunch<br/>2:00 PM - Panel Discussion<br/>4:00 PM - Closing Remarks",defaultOpen:!0},{title:"Day 2: Workshops & Technical Sessions",content:"9:00 AM - Workshop: AI in Practice<br/>11:00 AM - Technical Deep Dive: Cloud Architecture<br/>1:00 PM - Lunch Break<br/>2:30 PM - Hands-on Lab: DevOps Tools<br/>4:30 PM - Q&A Session"},{title:"Day 3: Networking & Demo Day",content:"10:00 AM - Startup Pitch Competition<br/>12:00 PM - Demo Showcase<br/>2:00 PM - Networking Session<br/>3:30 PM - Awards Ceremony<br/>5:00 PM - Closing Party"}]}},{description:"Fitness program details with accent colors and 3xl rounding",type:"accordion",props:{restrictOneOpen:!0,colorPreset:{color:"accent-400"},rounding:"rounded-3xl",gap:"1.25rem",fontSize:"text-lg",items:[{title:"Beginner Program (4 weeks)",content:"Perfect for newcomers to fitness. Includes basic bodyweight exercises, flexibility training, and cardio. 3 sessions per week, 45 minutes each. Includes nutrition guidance and progress tracking."},{title:"Intermediate Program (8 weeks)",content:"For those with some fitness experience. Combines strength training, HIIT workouts, and endurance building. 4 sessions per week, 60 minutes each. Includes meal planning and supplement recommendations."},{title:"Advanced Program (12 weeks)",content:"High-intensity program for experienced athletes. Features complex movements, periodization, and sport-specific training. 5-6 sessions per week. Includes recovery protocols and performance optimization."}]}},{description:"Support categories with primary colors and no rounding",type:"accordion",props:{restrictOneOpen:!1,colorPreset:{color:"primary-300"},rounding:"rounded-none",gap:"0px",fontSize:"text-base",items:[{title:"Account & Billing",content:"Get help with account settings, password reset, billing questions, subscription management, and payment issues. Average response time: 2 hours during business hours."},{title:"Technical Support",content:"Troubleshoot technical issues, API problems, integration questions, and performance concerns. Includes access to our knowledge base and video tutorials."},{title:"Sales & Partnerships",content:"Inquiries about enterprise solutions, custom pricing, partnership opportunities, and bulk discounts. Schedule a call with our sales team for personalized assistance."},{title:"Feature Requests",content:"Submit ideas for new features, improvements, and integrations. Our product team reviews all suggestions and provides updates on development roadmap."}]}},{description:"Company policies with neutral colors and small font size",type:"accordion",props:{restrictOneOpen:!0,colorPreset:{color:"neutral-100"},rounding:"rounded-md",gap:"0.25rem",fontSize:"text-sm",items:[{title:"Remote Work Policy",content:"All employees have the flexibility to work remotely full-time or adopt a hybrid schedule. Required equipment is provided, and employees must maintain reliable internet connection and dedicated workspace."},{title:"Professional Development",content:"Annual budget of $2,000 per employee for conferences, courses, certifications, and training materials. Time off is provided for approved learning activities and skill development."},{title:"Time Off & Benefits",content:"Unlimited PTO policy with minimum 3 weeks encouraged annually. Comprehensive health insurance, dental, vision, 401k matching, and wellness stipend included."}]}},{description:"Product comparison with secondary colors and multiple defaults open",type:"accordion",props:{restrictOneOpen:!1,colorPreset:{color:"secondary-500"},rounding:"rounded-lg",gap:"0.5rem",fontSize:"text-base",items:[{title:"Basic Plan - $9/month",content:"\u2713 Up to 5 projects<br/>\u2713 10GB storage<br/>\u2713 Email support<br/>\u2713 Basic analytics<br/>\u2713 Mobile app access<br/>\u2717 API access<br/>\u2717 Custom integrations",defaultOpen:!0},{title:"Pro Plan - $29/month",content:"\u2713 Unlimited projects<br/>\u2713 100GB storage<br/>\u2713 Priority support<br/>\u2713 Advanced analytics<br/>\u2713 API access<br/>\u2713 Custom integrations<br/>\u2713 Team collaboration",defaultOpen:!0},{title:"Enterprise Plan - Custom pricing",content:"\u2713 Everything in Pro<br/>\u2713 Unlimited storage<br/>\u2713 Dedicated support<br/>\u2713 White-label options<br/>\u2713 SSO integration<br/>\u2713 Custom contracts<br/>\u2713 On-premise deployment"}]}},{description:"Troubleshooting guide with accent colors and large font",type:"accordion",props:{restrictOneOpen:!1,colorPreset:{color:"accent-600"},rounding:"rounded-xl",gap:"1rem",fontSize:"text-lg",items:[{title:"Connection Issues",content:"1. Check your internet connection<br/>2. Clear browser cache and cookies<br/>3. Disable VPN if active<br/>4. Try incognito/private browsing mode<br/>5. Contact support if issues persist"},{title:"Login Problems",content:"1. Verify your email address and password<br/>2. Use 'Forgot Password' to reset<br/>3. Check for CAPS LOCK<br/>4. Try a different browser<br/>5. Ensure account is not suspended"},{title:"Performance Issues",content:"1. Close unnecessary browser tabs<br/>2. Update your browser to latest version<br/>3. Disable browser extensions<br/>4. Check system resources (RAM/CPU)<br/>5. Try using the mobile app instead"}]}}];export{k as a,v as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{f as o}from"./chunk-DKNOZLA6.js";import{c as i}from"./chunk-HSRXUIVM.js";import{a as t}from"./chunk-5WY7LYXK.js";import{Type as e}from"@sinclair/typebox";function a(){return e.Object({desktop:e.Optional(e.Boolean()),mobile:e.Optional(e.Boolean())},{title:"Hidden",description:"Used to hide the brick on desktop or mobile.","ui:field":"hidden"})}var n={lastTouched:e.Optional(e.Number({"ui:field":"hidden","ai:hidden":!0})),hidden:e.Optional(t("styles:hidden")),editable:e.Optional(e.Boolean({"ui:field":"hidden","ai:hidden":!0})),width:e.Optional(i({title:"Fixed Width",description:"Set a fixed width for the brick. If not set, the brick will be responsive and will follow the flex layout of its parent section.","ai:instructions":"Use percentage values to make the width responsive, like '50%'","ui:field":"hidden"})),height:e.Optional(i({title:"Fixed height",description:"Set a fixed height for the brick. If not set, the brick will be responsive and will follow the flex layout of its parent section.","ui:field":"hidden"})),grow:e.Optional(e.Boolean({title:"Auto expand",description:"If set, the brick will grow to fill the available space of its parent section or box.","ui:styleId":"styles:grow","ui:responsive":!0})),alignSelf:e.Optional(o())},p=e.Object(n);export{a,n as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{Type as t}from"@sinclair/typebox";var o=t.Object({spreadsheetId:t.String(),spreadsheetUrl:t.Optional(t.String()),spreadsheetName:t.Optional(t.String()),externalUrl:t.Optional(t.String())});export{o as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{p}from"./chunk-F4JNKU7J.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};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{c as n}from"./chunk-6PGAWO4H.js";import{a as s}from"./chunk-4GIZ6WSG.js";import{m as p}from"./chunk-F4JNKU7J.js";import{b as l}from"./chunk-3FPFR5RA.js";import{a}from"./chunk-7UBMXMNJ.js";import{b as t,d as r}from"./chunk-DHSWVVMI.js";import{c as i}from"./chunk-Z4YKRLOX.js";import{c as o}from"./chunk-HSRXUIVM.js";import{Type as e}from"@sinclair/typebox";import{IoGridOutline as c}from"react-icons/io5";var w=s({type:"images-gallery",name:"Gallery",category:"media",description:"Displays an images collection.",aiInstructions:"This brick should mostly be used for image galleries. Prefer using card bricks for product showcases, articles lists with images, or other collections.",consumesMultipleQueryRows:!0,defaultInspectorTab:"content",isContainer:!1,minHeight:{desktop:200},minWidth:{desktop:300},defaultWidth:{desktop:"400px",mobile:"100%"},icon:c,props:n({colorPreset:e.Optional(i({title:"Color"})),loop:e.Optional(p()),images:e.Array(e.Object({image:l({"ui:responsive":"desktop","ui:no-alt-text":!0,"ui:no-object-options":!0,"ui:placeholder":"https://example.com/image.jpg"}),legend:e.Optional(a("Legend"))}),{title:"Images",default:[],maxItems:12,metadata:{category:"content",consumeQuery:!0},examples:[{image:{src:"https://via.placeholder.com/300x200.png?text=Image+1"},legend:"Image 1"},{image:{src:"https://via.placeholder.com/300x200.png?text=Image+2"},legend:"Image 2"},{image:{src:"https://via.placeholder.com/300x200.png?text=Image+3"},legend:"Image 3"}]}),columns:e.Optional(e.Number({title:"Columns",description:"Number of columns. Only applies to desktop screens. On mobile, it will always display 1 column.",minimum:1,maximum:6,default:3,"ui:field":"slider","ui:responsive":"desktop"})),gap:e.Optional(o({title:"Gap",description:"The gap between the images.",default:"1rem","ui:styleId":"styles:gap"})),padding:e.Optional(o({default:"3rem",description:"Padding inside the gallery.","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(r()),border:e.Optional(t())})}),P=[{description:"Product portfolio gallery (3-column grid)",type:"images-gallery",props:{columns:3,gap:"2.5rem",padding:"p-4",images:[{image:{src:"https://via.placeholder.com/400x400.png?text=Product+1"},legend:"Premium wireless headphones"},{image:{src:"https://via.placeholder.com/400x400.png?text=Product+2"},legend:"Bluetooth speaker"},{image:{src:"https://via.placeholder.com/400x400.png?text=Product+3"},legend:"Smart fitness tracker"},{image:{src:"https://via.placeholder.com/400x400.png?text=Product+4"},legend:"Wireless charging pad"}]}},{description:"Team photos gallery (4-column grid), light neutral background",type:"images-gallery",props:{columns:4,gap:"1rem",padding:"p-6",images:[{image:{src:"https://via.placeholder.com/300x300.png?text=CEO"},legend:"Sarah Johnson - Chief Executive Officer"},{image:{src:"https://via.placeholder.com/300x300.png?text=CTO"},legend:"Mike Chen - Chief Technology Officer"},{image:{src:"https://via.placeholder.com/300x300.png?text=Design"},legend:"Emily Rodriguez - Head of Design"},{image:{src:"https://via.placeholder.com/300x300.png?text=Marketing"},legend:"David Park - Marketing Director"},{image:{src:"https://via.placeholder.com/300x300.png?text=Sales"},legend:"Lisa Wong - Sales Manager"},{image:{src:"https://via.placeholder.com/300x300.png?text=Support"},legend:"Alex Thompson - Customer Support Lead"},{image:{src:"https://via.placeholder.com/300x300.png?text=Dev"},legend:"Carlos Martinez - Senior Developer"},{image:{src:"https://via.placeholder.com/300x300.png?text=HR"},legend:"Jennifer Adams - HR Specialist"}],colorPreset:{color:"neutral-100"}}},{description:"Project showcase (2-column grid with larger spacing)",type:"images-gallery",props:{columns:2,gap:"1rem",padding:"p-6",images:[{image:{src:"https://via.placeholder.com/600x400.png?text=Website+Redesign"},legend:"Modern e-commerce website redesign project"},{image:{src:"https://via.placeholder.com/600x400.png?text=Mobile+App"},legend:"iOS and Android mobile application"},{image:{src:"https://via.placeholder.com/600x400.png?text=Brand+Identity"},legend:"Complete brand identity design package"},{image:{src:"https://via.placeholder.com/600x400.png?text=Dashboard+UI"},legend:"Analytics dashboard user interface"}]}},{description:"Event photos gallery with tight spacing and minimal padding",type:"images-gallery",props:{columns:4,gap:"1rem",padding:"p-6",images:[{image:{src:"https://via.placeholder.com/250x180.png?text=Opening"},legend:"Conference opening ceremony"},{image:{src:"https://via.placeholder.com/250x180.png?text=Keynote"},legend:"Keynote presentation"},{image:{src:"https://via.placeholder.com/250x180.png?text=Workshop"},legend:"Technical workshop session"},{image:{src:"https://via.placeholder.com/250x180.png?text=Networking"},legend:"Networking lunch break"},{image:{src:"https://via.placeholder.com/250x180.png?text=Panel"},legend:"Expert panel discussion"},{image:{src:"https://via.placeholder.com/250x180.png?text=Awards"},legend:"Awards ceremony"}]}},{description:"Photography portfolio with single column layout and primary background",type:"images-gallery",props:{columns:1,gap:"3rem",padding:"4rem",colorPreset:{color:"primary-50"},rounding:"rounded-lg",images:[{image:{src:"https://via.placeholder.com/800x600.png?text=Landscape+1"},legend:"Mountain sunrise landscape photography"},{image:{src:"https://via.placeholder.com/800x600.png?text=Portrait+1"},legend:"Professional business portrait session"},{image:{src:"https://via.placeholder.com/800x600.png?text=Architecture+1"},legend:"Modern architectural photography"}]}},{description:"Real estate property gallery with secondary colors and borders",type:"images-gallery",props:{columns:3,gap:"1.5rem",padding:"2rem",colorPreset:{color:"secondary-100"},border:{width:"border",color:"border-secondary-300"},rounding:"rounded-xl",images:[{image:{src:"https://via.placeholder.com/400x300.png?text=Living+Room"},legend:"Spacious living room with natural light"},{image:{src:"https://via.placeholder.com/400x300.png?text=Kitchen"},legend:"Modern kitchen with granite countertops"},{image:{src:"https://via.placeholder.com/400x300.png?text=Master+Bedroom"},legend:"Master bedroom with walk-in closet"},{image:{src:"https://via.placeholder.com/400x300.png?text=Bathroom"},legend:"Luxury bathroom with marble finishes"},{image:{src:"https://via.placeholder.com/400x300.png?text=Backyard"},legend:"Private backyard with pool"},{image:{src:"https://via.placeholder.com/400x300.png?text=Garage"},legend:"Two-car garage with storage"}]}},{description:"Restaurant food gallery with 5-column grid and accent colors",type:"images-gallery",props:{columns:5,gap:"0.75rem",padding:"1.5rem",colorPreset:{color:"accent-200"},rounding:"rounded-md",images:[{image:{src:"https://via.placeholder.com/300x300.png?text=Appetizer"},legend:"Bruschetta with fresh tomatoes"},{image:{src:"https://via.placeholder.com/300x300.png?text=Soup"},legend:"Creamy mushroom bisque"},{image:{src:"https://via.placeholder.com/300x300.png?text=Salad"},legend:"Mediterranean quinoa salad"},{image:{src:"https://via.placeholder.com/300x300.png?text=Main+Course"},legend:"Grilled salmon with herbs"},{image:{src:"https://via.placeholder.com/300x300.png?text=Dessert"},legend:"Chocolate lava cake"},{image:{src:"https://via.placeholder.com/300x300.png?text=Beverage"},legend:"Artisan coffee selection"},{image:{src:"https://via.placeholder.com/300x300.png?text=Pasta"},legend:"Homemade fettuccine alfredo"},{image:{src:"https://via.placeholder.com/300x300.png?text=Pizza"},legend:"Wood-fired margherita pizza"}]}},{description:"Art gallery exhibition with 6-column grid and minimal styling",type:"images-gallery",props:{columns:6,gap:"0.5rem",padding:"1rem",images:[{image:{src:"https://via.placeholder.com/200x250.png?text=Abstract+1"},legend:"Abstract composition #1"},{image:{src:"https://via.placeholder.com/200x250.png?text=Portrait+Art"},legend:"Contemporary portrait"},{image:{src:"https://via.placeholder.com/200x250.png?text=Landscape+Art"},legend:"Impressionist landscape"},{image:{src:"https://via.placeholder.com/200x250.png?text=Still+Life"},legend:"Modern still life"},{image:{src:"https://via.placeholder.com/200x250.png?text=Sculpture"},legend:"Bronze sculpture piece"},{image:{src:"https://via.placeholder.com/200x250.png?text=Digital+Art"},legend:"Digital artwork collection"},{image:{src:"https://via.placeholder.com/200x250.png?text=Mixed+Media"},legend:"Mixed media installation"},{image:{src:"https://via.placeholder.com/200x250.png?text=Photography"},legend:"Fine art photography"},{image:{src:"https://via.placeholder.com/200x250.png?text=Watercolor"},legend:"Watercolor painting"}]}},{description:"Fashion lookbook with 2-column layout and neutral dark theme",type:"images-gallery",props:{columns:2,gap:"2rem",padding:"3rem",colorPreset:{color:"neutral-800"},border:{width:"border-2",color:"border-neutral-600"},rounding:"rounded-2xl",images:[{image:{src:"https://via.placeholder.com/400x600.png?text=Spring+Look"},legend:"Spring casual collection 2024"},{image:{src:"https://via.placeholder.com/400x600.png?text=Summer+Look"},legend:"Summer evening wear"},{image:{src:"https://via.placeholder.com/400x600.png?text=Business+Look"},legend:"Professional business attire"},{image:{src:"https://via.placeholder.com/400x600.png?text=Weekend+Look"},legend:"Weekend comfort style"},{image:{src:"https://via.placeholder.com/400x600.png?text=Formal+Look"},legend:"Formal evening collection"},{image:{src:"https://via.placeholder.com/400x600.png?text=Street+Style"},legend:"Urban street fashion"}]}},{description:"Travel destinations gallery with 3-column grid and no legends",type:"images-gallery",props:{columns:3,gap:"1.25rem",padding:"2.5rem",colorPreset:{color:"primary-100"},rounding:"rounded-lg",border:{width:"border",color:"border-primary-200"},images:[{image:{src:"https://via.placeholder.com/350x250.png?text=Paris"}},{image:{src:"https://via.placeholder.com/350x250.png?text=Tokyo"}},{image:{src:"https://via.placeholder.com/350x250.png?text=New+York"}},{image:{src:"https://via.placeholder.com/350x250.png?text=London"}},{image:{src:"https://via.placeholder.com/350x250.png?text=Rome"}},{image:{src:"https://via.placeholder.com/350x250.png?text=Barcelona"}}]}},{description:"Technical equipment gallery with 4-column grid and accent styling",type:"images-gallery",props:{columns:4,gap:"1rem",padding:"2rem",colorPreset:{color:"accent-100"},border:{width:"border-4",color:"border-accent-400"},rounding:"rounded-xl",images:[{image:{src:"https://via.placeholder.com/300x300.png?text=Camera"},legend:"Professional DSLR camera"},{image:{src:"https://via.placeholder.com/300x300.png?text=Laptop"},legend:"High-performance laptop"},{image:{src:"https://via.placeholder.com/300x300.png?text=Microphone"},legend:"Studio recording microphone"},{image:{src:"https://via.placeholder.com/300x300.png?text=Monitor"},legend:"4K professional monitor"},{image:{src:"https://via.placeholder.com/300x300.png?text=Tablet"},legend:"Digital drawing tablet"},{image:{src:"https://via.placeholder.com/300x300.png?text=Speakers"},legend:"Studio monitor speakers"},{image:{src:"https://via.placeholder.com/300x300.png?text=Keyboard"},legend:"Mechanical keyboard"},{image:{src:"https://via.placeholder.com/300x300.png?text=Mouse"},legend:"Precision gaming mouse"}]}},{description:"Minimal product showcase with large gaps and no padding",type:"images-gallery",props:{columns:3,gap:"4rem",padding:"0rem",images:[{image:{src:"https://via.placeholder.com/400x400.png?text=Watch"},legend:"Luxury Swiss timepiece"},{image:{src:"https://via.placeholder.com/400x400.png?text=Jewelry"},legend:"Handcrafted gold necklace"},{image:{src:"https://via.placeholder.com/400x400.png?text=Sunglasses"},legend:"Designer sunglasses collection"}]}},{description:"Dynamic product gallery using products query with loop",type:"images-gallery",props:{columns:4,gap:"1.5rem",padding:"2rem",colorPreset:{color:"primary-50"},rounding:"rounded-lg",border:{width:"border",color:"border-primary-200"},images:[{image:{src:"{{products.image}}"},legend:"{{products.name}} - ${{products.price}}"}],loop:{over:"products"}}},{description:"Portfolio showcase using portfolioProjects query with loop",type:"images-gallery",props:{columns:3,gap:"2rem",padding:"3rem",colorPreset:{color:"secondary-100"},rounding:"rounded-xl",images:[{image:{src:"{{portfolioProjects.thumbnail}}"},legend:"{{portfolioProjects.projectName}} - {{portfolioProjects.clientName}} ({{portfolioProjects.year}})"}],loop:{over:"portfolioProjects"}}},{description:"Event photo gallery using eventPhotos query with loop",type:"images-gallery",props:{columns:5,gap:"1rem",padding:"1.5rem",colorPreset:{color:"accent-50"},border:{width:"border-2",color:"border-accent-300"},rounding:"rounded-md",images:[{image:{src:"{{eventPhotos.imageUrl}}"},legend:"{{eventPhotos.caption}} - {{eventPhotos.eventDate}}"}],loop:{over:"eventPhotos"}}},{description:"Team member gallery using teamMembers query with loop",type:"images-gallery",props:{columns:6,gap:"0.75rem",padding:"2.5rem",colorPreset:{color:"neutral-100"},rounding:"rounded-lg",border:{width:"border",color:"border-neutral-300"},images:[{image:{src:"{{teamMembers.profilePhoto}}"},legend:"{{teamMembers.fullName}} - {{teamMembers.position}}"}],loop:{over:"teamMembers"}}}];export{w as a,P as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as i}from"./chunk-5WY7LYXK.js";import{a as e}from"./chunk-SFKZAUPW.js";function n(t={}){return e(["flex-row","flex-col"],{title:"Direction",description:"The direction of the layout",enumNames:["Horizontal","Vertical"],"ui:styleId":"styles:direction",examples:["flex-row","flex-col"],...t})}function p(t={}){return i("styles:direction",t)}export{n as a,p as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{Type as t}from"@sinclair/typebox";var o=t.Object({url:t.Optional(t.String()),id:t.String({pattern:"^[A-Za-z0-9\\-]+$",description:"Notion Database ID"}),name:t.String({description:"Notion Database Name"}),properties:t.Any()});export{o as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{Type as t}from"@sinclair/typebox";var i=t.Array(t.Object({title:t.Optional(t.String({title:"Title",description:"The title of the RSS feed item"})),link:t.Optional(t.String({title:"Link",description:"The link to the RSS feed item"})),creator:t.Optional(t.String({title:"Creator",description:"The creator of the RSS feed item"})),content:t.Optional(t.String({title:"Content",description:"The content of the RSS feed item"})),pubDate:t.Optional(t.String({title:"Pub Date",description:"The publication date of the RSS feed item"}))}),{title:"RSS Feed",description:"RSS feed items"});export{i as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
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-VDX2J22H.js";import{a as g,b as z}from"./chunk-URRCKLAS.js";import{a as l,b as A}from"./chunk-2NLDX5FG.js";import{a as x,b as C}from"./chunk-XED6ARVN.js";import{a as c,b as F}from"./chunk-3QOAHMV4.js";import{a as M,b as G}from"./chunk-EVDZ2KND.js";import{a as E,b as H}from"./chunk-3P36LG6T.js";import{a as m,b as T}from"./chunk-ARYG4XMX.js";import{a as i,b as L}from"./chunk-QGFQA7OZ.js";import{a as o,b as W}from"./chunk-5X5SX5N7.js";import{a as d,b as I}from"./chunk-6R76KIHZ.js";import{a as y,b as P}from"./chunk-VE3S4LGT.js";import{a as r,b as j}from"./chunk-Y3X4F4YJ.js";import{a as f,b as q}from"./chunk-LT4CW2F7.js";import{a as t,b as v}from"./chunk-ILIWVWHC.js";import{a as p,b as D}from"./chunk-SAJY7H6N.js";import{a as s,b as R}from"./chunk-STDCM2KD.js";import{a,b as S}from"./chunk-TH5SONR6.js";import{a as k,c as B}from"./chunk-UDQWYGSO.js";import{a as b,c as h}from"./chunk-AZHH3XJJ.js";import{b as e}from"./chunk-4GIZ6WSG.js";import{a as u}from"./chunk-SFKZAUPW.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};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{b as m}from"./chunk-AMQAGDFH.js";import{a as d}from"./chunk-UDQWYGSO.js";import{a as g}from"./chunk-AZHH3XJJ.js";import{a}from"./chunk-YIFNKP4J.js";import{b as c}from"./chunk-LEWKHCRI.js";import{a as i,h as l,k as p}from"./chunk-F4JNKU7J.js";import{b as u}from"./chunk-3FPFR5RA.js";import{a as t}from"./chunk-7UBMXMNJ.js";import{b as o}from"./chunk-GC5OWY2Z.js";import{c as n}from"./chunk-Z4YKRLOX.js";import{a as s}from"./chunk-SFKZAUPW.js";import{Type as e}from"@sinclair/typebox";var h=e.Object({backgroundImage:e.Optional(o()),colorPreset:e.Optional(n({examples:[{color:"base-100"},{color:"primary-500"},{color:"accent-100",gradientDirection:"bg-gradient-to-r"}]})),tags:e.Optional(e.Array(t("Tag"),{title:"Tags",description:"Use tags to organize, group and filter pages in navigation elements and in the dashboard. By default, the navbar element display pages having the 'navbar' tag, while the sidebar displays the pages with the tag 'sidebar'.","ui:field":"tags",examples:[["navbar","navbar"],["navbar","sidebar"],["sidebar"]]})),path:t("URL path",{default:"/",description:"The URL path of the page. Use placeholders like :id or :slug for dynamic paths.","ui:field":"path",pattern:"^/[a-z0-9-:/]*$",examples:["/","/about","/products/:id"]}),queries:e.Optional(e.Array(p(),{title:"Page Queries",description:"List of queries to use in this page. All listed queries will be executed when the page loads.","ai:instructions":"Reference Query IDs to use at the page level.","ui:field":"page-queries",maxItems:5})),title:t("Title",{default:"Untitled","ui:group":"meta","ui:group:title":"Meta tags",description:"The title of the page. Appears in the browser tab and search results","ui:placeholder":"Page title"}),description:t("Description",{"ui:widget":"textarea","ui:group":"meta","ui:group:title":"Meta tags",description:"A short description of the page. Used by search engines","ui:multiline":!0,"ui:textarea-class":"h-24",default:"","ui:placeholder":"A brief description of the page"}),keywords:t("Keywords",{"ui:group":"meta","ui:group:title":"Meta tags",description:"Keywords related to the page. Used by search engines","ui:multiline":!0,default:"","ui:placeholder":"keyword1, keyword2, keyword3"}),ogImage:e.Optional(u({title:"Social share image",description:"Image shown when this page is shared on social media","ui:group":"meta","ai:hidden":!0,"ui:no-object-options":!0,"ui:no-alt-text":!0,"ui:show-img-search":!1,"ui:no-dynamic":!0,"ui:placeholder":"https://example.com/image.jpg"})),robotsIndexing:e.Optional(a("Allow search engines to index this page",!0,{description:"Disabling this will prevent search engines from indexing this page","ai:hidden":!0,"ui:group":"meta"})),language:e.Optional(s(["ar","zh","cs","nl","en","fr","de","he","hi","it","ja","ko","fa","pl","pt","ru","es","tr","vi"],{"ai:hidden":!0,"ui:group":"meta",title:"Language",default:"en",description:"Overrides the site language for this page. Leave blank to use the site default language.",enumNames:["Arabic","Chinese","Czech","Dutch","English","French","German","Hebrew","Hindi","Italian","Japanese","Korean","Persian","Polish","Portuguese","Russian","Spanish","Turkish","Vietnamese"]})),additionalTags:e.Optional(e.Object({headTags:e.Optional(e.String({title:"Head script tags",description:"Add custom tags to the <head> of your site. Useful for analytics tags, custom scripts, etc.","ai:instructions":"Don't include meta tags here, they are automatically generated.","ui:multiline":!0,"ui:textarea-class":"h-40 !font-mono","ui:placeholder":"<script src='https://example.com/script.js'></script>","ui:premium":!0,"ui:textarea-font-size":"1","ui:no-dynamic":!0})),bodyTags:e.Optional(e.String({title:"Body script tags",description:"Add custom tags to the <body> of your site. Useful for analytics tags, custom scripts, etc.","ui:multiline":!0,"ui:premium":!0,"ui:textarea-class":"h-40 !font-mono","ui:textarea-font-size":"1","ui:placeholder":"<script src='https://example.com/script.js'></script>","ui:no-dynamic":!0}))},{"ui:group":"meta"})),noNavbar:e.Optional(a("Hide navbar",!1,{"ui:group":"layout"})),noFooter:e.Optional(a("Hide footer",!1,{"ui:group":"layout"})),lastUpdated:e.Optional(m("Last updated",{"ui:hidden":!0,"ai:hidden":!0}))},{"ui:groups":{meta:"SEO & Meta tags",layout:"Layout"}});function k(){return i(e.Array(p(),{examples:[{queryId:"get-latest-posts",alias:"latestPosts"},{queryId:"get-user-profile",alias:"userProfile",params:[{field:"userId",op:"eq",value:":slug"}]}]}))}var f=e.Object({language:s(["ar","zh","cs","nl","en","fr","de","he","hi","it","ja","ko","fa","pl","pt","ru","es","tr","vi"],{title:"Site language",default:"en",enumNames:["Arabic","Chinese","Czech","Dutch","English","French","German","Hebrew","Hindi","Italian","Japanese","Korean","Persian","Polish","Portuguese","Russian","Spanish","Turkish","Vietnamese"],"ai:instructions":"Choose a value based on the site description. If the site is in multiple languages, use 'en'."}),backgroundImage:e.Optional(o()),colorPreset:e.Optional(n({examples:[{color:"base-100"},{color:"primary-500"},{color:"secondary-400"},{color:"neutral-400"},{color:"accent-200-gradient",gradientDirection:"bg-gradient-to-r"},{color:"neutral-800-gradient",gradientDirection:"bg-gradient-to-t"}]})),queries:e.Optional(e.Array(l,{title:"Site Queries","ui:field":"site-queries",description:"List of all queries available in this site. These can be used in any page.","ai:instructions":"This is where queries are first defined. They are then referenced in pages attributes (in the 'queries' field) to use them."})),navbar:e.Optional(e.Composite([d.props],{title:"Navbar","ui:group":"navbar"})),footer:e.Optional(e.Composite([g.props],{title:"Footer","ui:group":"footer"})),ogImage:e.Optional(u({title:"Social share image",description:"Image shown when this site is shared on social media","ai:hidden":!0,"ui:group":"meta","ui:no-object-options":!0,"ui:no-alt-text":!0,"ui:show-img-search":!1,"ui:no-dynamic":!0})),robotsIndexing:e.Optional(a("Allow search engines to index this site",!0,{description:"Disabling this will prevent search engines from indexing this site entirely","ai:hidden":!0,"ui:group":"meta"})),headTags:e.Optional(e.String({title:"Head script tags",description:"Add custom tags to the <head> of your site. Useful for analytics tags, custom scripts, etc.","ai:hidden":!0,"ui:multiline":!0,"ui:textarea-class":"h-40 !font-mono","ui:placeholder":"<script src='https://example.com/script.js'></script>","ui:premium":!0,"ui:textarea-font-size":"1","ui:group":"external","ui:no-dynamic":!0})),bodyTags:e.Optional(e.String({title:"Body script tags",description:"Add custom tags to the <body> of your site. Useful for analytics tags, custom scripts, etc.","ai:hidden":!0,"ui:multiline":!0,"ui:premium":!0,"ui:textarea-class":"h-40 !font-mono","ui:textarea-font-size":"1","ui:placeholder":"<script src='https://example.com/script.js'></script>","ui:group":"external","ui:no-dynamic":!0}))},{"ui:groups":{meta:"SEO & Meta tags",layout:"Layout",navbar:"Navbar",footer:"Footer",external:"External scripts"}});function M(){return i(e.Omit(f,["queries"]))}function D(){return i(e.Omit(h,["queries"]))}function z(){return i(e.Array(l))}function F(r={}){return{...c(h),...r}}function R(r={}){return{...c(f),...r}}export{h as a,k as b,f as c,M as d,D as e,z as f,F as g,R as h};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{Type as t}from"@sinclair/typebox";var i=t.Array(t.Object({etag:t.String(),id:t.Object({videoId:t.String(),channelId:t.String(),playlistId:t.String()}),snippet:t.Object({publishedAt:t.String(),channelId:t.String(),title:t.String(),description:t.String(),thumbnails:t.Object({default:t.Object({url:t.String(),width:t.Number(),height:t.Number()}),standard:t.Object({url:t.String(),width:t.Number(),height:t.Number()})}),channelTitle:t.String(),liveBroadcastContent:t.String()})}),{title:"Youtube list schema",description:"Schema for a list of Youtube videos"});export{i as a};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a}from"./chunk-GXNHF6J5.js";import{a as t}from"./chunk-F4JNKU7J.js";import{a as i}from"./chunk-SFKZAUPW.js";import{Type as e}from"@sinclair/typebox";var n=e.Pick(a,["id","label","path","attributes"]),r=e.Array(e.Object({id:e.String({title:"Section ID",examples:["header-section","hero-section","features-section"],format:"slug"}),name:e.String({title:"Section name",examples:["Header","Hero","Features"]}),description:e.String({title:"A long description of the section",description:`You must elaborate a clear and detailled plan that describes:
|
|
4
|
+
- The section purpose in the page, in detail.
|
|
5
|
+
- The section structure, look & feel, and structural/design organization, in detail
|
|
6
|
+
- the types of bricks (e.g. "container", "text", "video", "carousel", etc) that will be used and their purpose, in detail
|
|
7
|
+
|
|
8
|
+
IMPORTANT: be very descriptive and precise in your plan. The more details you provide, the better the generated page will be.`,examples:["This section contains a `hero` and a call-to-action `button`. All of theme aligned horizontally. The section should market a coffee shop.","This section should contain a `hero` text and an `image`."]})},{additionalProperties:!1}),{title:"Sections plan",description:"A plan for the sections of the page. Used to generate the page content.",examples:[[{id:"header-section",name:"Header",description:"This section only contains a header brick"},{id:"hero-section",name:"Hero",description:"This is the hero section of the page. It should display a marketing message using a hero brick, as well as a button (CTA). The section should center bricks horizontally."}]]}),o=e.Composite([n,e.Object({status:e.Optional(i(["draft","published"],{title:"Page status",enumNames:["Draft","Published"],default:"draft","ai:hidden":!0,description:"The status of the page. Can be draft or published. [AI instructions: Dont generate this.]","ai:instructions":"Upsie: Never generate this optional field."}))})],{description:"Pages map. The complete list of site pages & their metadata",additionalProperties:!1}),s=e.Array(o);function h(){return t(e.Array(e.Composite([o,e.Object({sectionsPlan:r})])))}function m(){return t(s)}export{n as a,r as b,o as c,s as d,h as e,m as f};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as f}from"./chunk-MKIXZXWS.js";import{a as l,c}from"./chunk-6PGAWO4H.js";import{a as p}from"./chunk-4GIZ6WSG.js";import{a as s}from"./chunk-7UBMXMNJ.js";import{b as n}from"./chunk-VK26ZZFR.js";import{b as d}from"./chunk-MVCVVKBY.js";import{b as i,d as o}from"./chunk-DHSWVVMI.js";import{c as a}from"./chunk-Z4YKRLOX.js";import{c as r}from"./chunk-HSRXUIVM.js";import{a as e}from"./chunk-SFKZAUPW.js";import{Type as t}from"@sinclair/typebox";import{FaWpforms as u}from"react-icons/fa6";var M=p({type:"form",name:"Form",description:"A form element.",aiInstructions:`The form brick automatically renders form fields based on the datarecord id provided in the props.
|
|
4
|
+
There is no need to define the form fields manually and the form does not accept any children`,isContainer:!1,icon:u,minWidth:{desktop:300},props:c({datarecordId:f("Datarecord ID",{description:"The ID of the datarecord to use to generate the form fields. The datarecord must exist.","ui:responsive":"desktop"}),colorPreset:t.Optional(a({title:"Color",default:"base-200"})),direction:t.Optional(d({title:"Direction",description:"The direction of the form fields",default:"flex-col","ui:responsive":"desktop","ui:desktop-only":!0})),padding:t.Optional(r({default:"2rem",description:"Padding inside the form.",title:"Padding","ui:responsive":!0,"ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),rounding:t.Optional(o({default:"rounded-md"})),border:t.Optional(i({})),fontSize:t.Optional(n({default:"inherit","ui:no-extra-large-sizes":!0})),button:l({title:"Button",children:{color:t.Optional(e(["btn-neutral","btn-primary","btn-secondary","btn-accent"],{enumNames:["Neutral","Primary","Secondary","Accent"],title:"Color",default:"btn-primary"})),size:t.Optional(e(["block","wide"],{title:"Size",description:"Button sizes.",enumNames:["Block","Wide"],default:"block","ui:responsive":"desktop"})),position:t.Optional(e(["justify-start","justify-center","justify-end"],{title:"Button Position",description:"The position of the button in the form",enumNames:["Left","Center","Right"],default:"justify-end","ui:responsive":"desktop",metadata:{filter:(b,m)=>m.button?.size!=="wide"}})),rounding:t.Optional(o({default:"rounded-md"}))}}),title:t.Optional(t.String({title:"Form title",default:"My form",metadata:{category:"content"}})),intro:t.Optional(t.String({title:"Intro",description:"The intro text of the form","ui:multiline":!0,metadata:{category:"content"}})),buttonLabel:t.Optional(s("Button Label",{default:"Submit",metadata:{category:"content"}})),successMessage:t.Optional(t.String({title:"Success Message",description:"The message to display when the form is successfully submitted",default:"Thank you for your submission!",metadata:{category:"content"}})),errorMessage:t.Optional(t.String({title:"Error Message",description:"The message to display when the form submission fails",default:"There was an error submitting the form. Please try again later.",metadata:{category:"content"}}))})}),R=[{description:"Basic contact form",type:"form",props:{title:"Contact Us",intro:"We'd love to hear from you. Send us a message and we'll respond as soon as possible.",direction:"flex-row",datarecordId:"contacts",buttonLabel:"Send Message",button:{size:"block"}}},{description:"User registration form with large button",type:"form",props:{title:"Create Account",intro:"Join our platform and start your journey today.",direction:"flex-row",datarecordId:"user-registration",buttonLabel:"Register",button:{size:"wide"}}},{description:"Newsletter subscription form (horizontal) with large padding",type:"form",props:{title:"Stay Updated",intro:"Subscribe to our newsletter for the latest updates and exclusive content.",direction:"flex-col",datarecordId:"newsletter-subscription",padding:"3rem",buttonLabel:"Subscribe",button:{size:"block"}}},{description:"Event registration form",type:"form",props:{title:"Conference Registration",intro:"Register for the Annual Tech Conference 2025. Early bird pricing ends soon!",direction:"flex-col",datarecordId:"event-registration",buttonLabel:"Register Now",button:{size:"block"}}},{description:"Job application form",type:"form",props:{title:"Apply for Position",intro:"We're excited to learn more about you! Please fill out this application form completely.",direction:"flex-col",datarecordId:"job-application",buttonLabel:"Submit Application",button:{size:"block"}}}];export{M as a,R as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{Type as t}from"@sinclair/typebox";var n=t.Object({id:t.String(),username:t.String(),acct:t.String(),url:t.String(),display_name:t.Optional(t.String()),note:t.String(),avatar:t.String(),avatar_static:t.String(),header:t.String(),header_static:t.String(),locked:t.Boolean(),fields:t.Array(t.Object({name:t.String(),value:t.String(),verified_at:t.Optional(t.String())})),emojis:t.Array(t.Object({shortcode:t.String(),url:t.String(),static_url:t.String(),visible_in_picker:t.Boolean(),category:t.Optional(t.String())})),bot:t.Boolean(),group:t.Boolean(),discoverable:t.Union([t.Boolean(),t.Null()]),noindex:t.Optional(t.Boolean()),moved:t.Optional(t.String()),suspended:t.Optional(t.Boolean()),limited:t.Optional(t.Boolean()),created_at:t.String(),last_status_at:t.Optional(t.String()),statuses_count:t.Number(),followers_count:t.Number(),following_count:t.Number()});export{n as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{c as d}from"./chunk-6PGAWO4H.js";import{a as c}from"./chunk-4GIZ6WSG.js";import{m as a}from"./chunk-F4JNKU7J.js";import{b as n}from"./chunk-MVCVVKBY.js";import{b as s}from"./chunk-AB3IMRXZ.js";import{b as i,d as p}from"./chunk-DHSWVVMI.js";import{c as l}from"./chunk-Z4YKRLOX.js";import{b as t,d as r}from"./chunk-DKNOZLA6.js";import{c as o}from"./chunk-HSRXUIVM.js";import{Type as e}from"@sinclair/typebox";import{RxBox as m}from"react-icons/rx";var k=c({type:"box",category:"container",name:"Box",description:"A container for stacking bricks horizontally or vertically.",aiInstructions:"A box is a container for other bricks. A box cannot contain other boxes as children. A box should contain at least 2 bricks to be useful, otherwise use a simple brick instead.",isContainer:!0,defaultWidth:{desktop:"auto",mobile:"100%"},defaultHeight:{desktop:"auto"},icon:m,props:d({colorPreset:e.Optional(l({title:"Color"})),direction:n({default:"flex-col",title:"Direction",description:"Direction of the box layout"}),justifyContent:e.Optional(t({default:"justify-center"})),alignItems:e.Optional(r({default:"items-stretch"})),gap:e.Optional(o({title:"Gap",default:"1rem",description:"Gap between children 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"})),padding:e.Optional(o({default:"1rem",description:"Padding inside the box.","ai:instructions":"Use only a single value like '1rem' or '10px'",title:"Padding","ui:placeholder":"Not specified","ui:styleId":"styles:padding"})),wrap:e.Optional(e.Boolean({title:"Wrap",description:"Wrap bricks if they overflow the section.",default:!1,"ui:styleId":"styles:wrap"})),rounding:e.Optional(p({default:"rounded-md"})),border:e.Optional(i()),shadow:e.Optional(s()),loop:e.Optional(a()),$children:e.Array(e.Any(),{"ui:field":"hidden",description:"List of nested bricks",default:[],examples:[[{type:"text",props:{content:"Hello World"}},{type:"image",props:{src:"https://via.placeholder.com/150",alt:"Placeholder Image"}}]]})})}),E=[{description:"A simple box with 2 text bricks aligned vertically",type:"box",props:{direction:"flex-col",gap:"1rem",$children:[{type:"text",props:{$children:[{type:"text",props:{content:"Hello World"}},{type:"text",props:{content:"Hello World"}}]}}]}},{description:"A horizontal box with wrapping enabled - images will wrap to new rows if they overflow",type:"box",props:{direction:"flex-row",gap:"1rem",wrap:!0,$children:[{type:"image",props:{src:"https://via.placeholder.com/150",alt:"Placeholder Image"}},{type:"image",props:{src:"https://via.placeholder.com/150",alt:"Placeholder Image"}},{type:"image",props:{src:"https://via.placeholder.com/150",alt:"Placeholder Image"}},{type:"image",props:{src:"https://via.placeholder.com/150",alt:"Placeholder Image"}},{type:"image",props:{src:"https://via.placeholder.com/150",alt:"Placeholder Image"}}]}},{description:"A vertical box with 2 text bricks and 1 image",type:"box",props:{direction:"flex-col",gap:"1rem",$children:[{type:"text",props:{content:"Hello World"}},{type:"image",props:{src:"https://via.placeholder.com/150",alt:"Placeholder Image"}},{type:"text",props:{content:"Hello World"}}]}},{description:"Employee directory using allEmployees query with vertical layout",type:"box",props:{direction:"flex-col",gap:"1.5rem",padding:"2rem",colorPreset:{color:"neutral-100"},rounding:"rounded-lg",loop:{over:"allEmployees"},$children:[{type:"text",props:{content:"<h3>{{allEmployees.name}}</h3><p><strong>{{allEmployees.position}}</strong></p><p>{{allEmployees.department}} \u2022 {{allEmployees.email}}</p>"}},{type:"image",props:{src:"{{allEmployees.photo}}",alt:"Photo of {{allEmployees.name}}"}}]}},{description:"Blog posts grid using blogPosts query with horizontal cards",type:"box",props:{direction:"flex-row",gap:"2rem",padding:"1rem",justifyContent:"justify-start",alignItems:"items-stretch",loop:{over:"blogPosts"},$children:[{type:"image",props:{src:"{{blogPosts.featuredImage}}",alt:"{{blogPosts.title}}"}},{type:"text",props:{content:"<h4>{{blogPosts.title}}</h4><p>{{blogPosts.excerpt}}</p><p><em>By {{blogPosts.author}} \u2022 {{blogPosts.publishDate}}</em></p>"}}]}},{description:"Featured products showcase using featuredProducts query",type:"box",props:{direction:"flex-col",gap:"1rem",padding:"1.5rem",colorPreset:{color:"primary-50"},border:{width:"border",color:"border-primary-200"},rounding:"rounded-xl",shadow:"shadow-md",loop:{over:"featuredProducts"},$children:[{type:"image",props:{src:"{{featuredProducts.image}}",alt:"{{featuredProducts.name}}"}},{type:"text",props:{content:"<h3>{{featuredProducts.name}}</h3><p>{{featuredProducts.description}}</p><p><strong>${{featuredProducts.price}}</strong></p>"}},{type:"button",props:{text:"Add to Cart",link:"/cart/add/{{featuredProducts.id}}"}}]}},{description:"Team members horizontal layout with wrapping - members will wrap to multiple rows on smaller screens",type:"box",props:{direction:"flex-row",gap:"2rem",padding:"2rem",wrap:!0,justifyContent:"justify-center",alignItems:"items-center",colorPreset:{color:"secondary-100"},loop:{over:"teamMembers"},$children:[{type:"image",props:{src:"{{teamMembers.avatar}}",alt:"{{teamMembers.fullName}}"}},{type:"text",props:{content:"<h4>{{teamMembers.fullName}}</h4><p>{{teamMembers.role}}</p><p>{{teamMembers.bio}}</p>"}}]}},{description:"Event listings using upcomingEvents query with accent styling",type:"box",props:{direction:"flex-col",gap:"1.25rem",padding:"2.5rem",colorPreset:{color:"accent-100"},border:{width:"border-2",color:"border-accent-300"},rounding:"rounded-lg",loop:{over:"upcomingEvents"},$children:[{type:"text",props:{content:"<h3>{{upcomingEvents.title}}</h3><p><strong>{{upcomingEvents.date}} at {{upcomingEvents.time}}</strong></p><p>{{upcomingEvents.venue}} \u2022 {{upcomingEvents.city}}</p><p>{{upcomingEvents.description}}</p>"}},{type:"button",props:{text:"Register Now",link:"/events/{{upcomingEvents.slug}}/register"}}]}},{description:"Testimonials carousel using customerTestimonials query",type:"box",props:{direction:"flex-col",gap:"1rem",padding:"3rem",justifyContent:"justify-center",alignItems:"items-center",colorPreset:{color:"neutral-50"},shadow:"shadow-lg",rounding:"rounded-2xl",loop:{over:"customerTestimonials"},$children:[{type:"text",props:{content:'<blockquote>"{{customerTestimonials.quote}}"</blockquote><p><strong>{{customerTestimonials.customerName}}</strong></p><p>{{customerTestimonials.company}} \u2022 {{customerTestimonials.position}}</p>'}},{type:"icon",props:{icon:"mdi:star",size:"1.5rem",color:"#fbbf24"}}]}},{description:"Portfolio projects using portfolioProjects query with horizontal layout",type:"box",props:{direction:"flex-row",gap:"1.5rem",padding:"1rem",alignItems:"items-start",justifyContent:"justify-start",loop:{over:"portfolioProjects"},$children:[{type:"image",props:{src:"{{portfolioProjects.thumbnail}}",alt:"{{portfolioProjects.projectName}}"}},{type:"text",props:{content:"<h4>{{portfolioProjects.projectName}}</h4><p>{{portfolioProjects.client}}</p><p>{{portfolioProjects.category}} \u2022 {{portfolioProjects.year}}</p><p>{{portfolioProjects.shortDescription}}</p>"}},{type:"button",props:{text:"View Project",link:"/portfolio/{{portfolioProjects.slug}}"}}]}},{description:"News articles using latestNews query with vertical stacking",type:"box",props:{direction:"flex-col",gap:"2rem",padding:"2rem",colorPreset:{color:"primary-100"},border:{width:"border",color:"border-primary-300"},loop:{over:"latestNews"},$children:[{type:"text",props:{content:"<h3>{{latestNews.headline}}</h3><p><strong>{{latestNews.category}}</strong> \u2022 {{latestNews.publishedDate}}</p><p>{{latestNews.summary}}</p>"}},{type:"text",props:{content:"<a href='/news/{{latestNews.slug}}'>Read full article \u2192</a>"}}]}},{description:"Service offerings using companyServices query with centered layout",type:"box",props:{direction:"flex-col",gap:"1rem",padding:"2rem",justifyContent:"justify-center",alignItems:"items-center",colorPreset:{color:"secondary-200"},rounding:"rounded-xl",shadow:"shadow-md",loop:{over:"companyServices"},$children:[{type:"icon",props:{icon:"{{companyServices.iconName}}",size:"2rem",color:"{{companyServices.iconColor}}"}},{type:"text",props:{content:"<h4>{{companyServices.serviceName}}</h4><p>{{companyServices.description}}</p><p><strong>Starting at ${{companyServices.price}}</strong></p>"}},{type:"button",props:{text:"Learn More",link:"/services/{{companyServices.serviceSlug}}"}}]}}];export{k as a,E as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as o}from"./chunk-5WY7LYXK.js";import{Type as t}from"@sinclair/typebox";function s(r,e="Text color"){return t.String({title:e,"ai:instructions":"hex/rgb/rgba color or classes like `text-<variant>-<shade>`, variants being `primary`, `secondary`, `accent` and `neutral`, and shades between 50 and 900",default:r,"ui:styleId":"styles:color","ui:field":"color","ui:color-type":"text"})}function l(r={}){return o("styles:color",{...r,"ui:styleId":"styles:color"})}function a(r,e="Border color"){return t.String({title:e,"ai:instructions":"hex/rgb/rgba color or classes like `border-<variant>-<shade>`, variants being `primary`, `secondary`, `accent` and `neutral`, and shades between 50 and 900",default:r,"ui:styleId":"styles:borderColor","ui:field":"color","ui:color-type":"border"})}function c(r={}){return o("styles:borderColor",{...r,"ui:styleId":"styles:borderColor"})}export{s as a,l as b,a as c,c as d};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{c as a}from"./chunk-6PGAWO4H.js";import{a as d}from"./chunk-4GIZ6WSG.js";import{a as n,d as i}from"./chunk-7UBMXMNJ.js";import{b as r}from"./chunk-VK26ZZFR.js";import{b as e,d as o}from"./chunk-DHSWVVMI.js";import{c as l}from"./chunk-Z4YKRLOX.js";import{Type as t}from"@sinclair/typebox";import{RxButton as p}from"react-icons/rx";var h=d({type:"button",name:"Button",category:"basic",description:"A button",aiInstructions:"A clickable button that can link to a URL or a page within the site. It can be styled with different colors, font sizes, and border radii. Don't use it in forms since forms have their own submit button.",resizable:"horizontal",icon:p,minWidth:{desktop:120,mobile:120},defaultWidth:{mobile:"100%"},props:a({colorPreset:t.Optional(l({default:{color:"primary-500"},title:"Color","ui:default-gradient-direction":"bg-gradient-to-b"})),label:n("Label",{default:"My button",metadata:{category:"content"}}),fontSize:t.Optional(r({title:"Font size",description:"The font size of the button text.",default:"text-base","ui:responsive":"desktop","ui:no-extra-large-sizes":!0})),rounding:t.Optional(o({default:"rounded-md"})),border:t.Optional(e({default:{width:"border-0"},"ui:responsive":"desktop"})),link:i({title:"Link","ui:placeholder":"https://example.com",metadata:{category:"content"}})},{noGrow:!0})}),x=[{description:"Primary button, full width, linking to an external URL",type:"button",props:{label:"Click me",link:"https://example.com",colorPreset:{color:"primary-500"}}},{description:"Secondary button, block width, linking to a page id",type:"button",props:{label:"Go to page",link:"page-id-123",colorPreset:{color:"secondary-500"}}},{description:"Neutral colored button with large text and rounded corners and external link",type:"button",props:{label:"Submit",fontSize:"text-lg",rounding:"rounded-full",link:"https://example.com",colorPreset:{color:"neutral-500"}}},{description:"Dynamic label from a page query alias named 'employee'",type:"button",props:{label:"Go to profile of {{employee.name}}",link:"/employees/{{employee.$slug}}",fontSize:"text-lg",rounding:"rounded-full",colorPreset:{color:"neutral-500"}}},{description:"Accent colored call-to-action button with medium text and subtle border",type:"button",props:{label:"Get Started",link:"/signup",fontSize:"text-base",rounding:"rounded-lg",colorPreset:{color:"accent-600"},border:{width:"border",color:"border-accent-700"}}},{description:"Small text button with sharp corners for minimal design",type:"button",props:{label:"Learn More",link:"/about",fontSize:"text-sm",rounding:"rounded-none",colorPreset:{color:"primary-400"}}},{description:"Large download button with thick border and rounded corners",type:"button",props:{label:"Download Now",link:"https://download.example.com/file.zip",fontSize:"text-xl",rounding:"rounded-xl",colorPreset:{color:"secondary-600"},border:{width:"border-2",color:"border-secondary-800"}}},{description:"Contact button with neutral colors and medium border radius",type:"button",props:{label:"Contact Us",link:"/contact",fontSize:"text-base",rounding:"rounded-md",colorPreset:{color:"neutral-600"},border:{width:"border",color:"border-neutral-400"}}},{description:"Newsletter signup button with gradient background and full rounding",type:"button",props:{label:"Subscribe to Newsletter",link:"/newsletter",fontSize:"text-lg",rounding:"rounded-full",colorPreset:{color:"primary-500",gradientDirection:"bg-gradient-to-r"}}},{description:"Shop now button with accent colors and extra large text",type:"button",props:{label:"Shop Now",link:"/shop",fontSize:"text-xl",rounding:"rounded-lg",colorPreset:{color:"accent-500"}}},{description:"Dynamic product button using product query data",type:"button",props:{label:"Buy {{product.name}} - ${{product.price}}",link:"/products/{{product.id}}/purchase",fontSize:"text-base",rounding:"rounded-md",colorPreset:{color:"primary-600"},border:{width:"border",color:"border-primary-800"}}},{description:"Event registration button with secondary gradient and medium text",type:"button",props:{label:"Register for Event",link:"/events/register",fontSize:"text-base",rounding:"rounded-lg",colorPreset:{color:"secondary-500",gradientDirection:"bg-gradient-to-br"},border:{width:"border",color:"border-secondary-300"}}}];export{h as a,x as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{a as l}from"./chunk-F4JNKU7J.js";import{a}from"./chunk-SFKZAUPW.js";import{Type as e}from"@sinclair/typebox";import c from"chroma-js";import{colorPalette as m}from"@upstart.gg/style-system/colors";var v=[{value:"system-ui",label:"System UI"},{value:"transitional",label:"Transitional"},{value:"old-style",label:"Old style"},{value:"humanist",label:"Humanist"},{value:"geometric-humanist",label:"Geometric humanist"},{value:"classical-humanist",label:"Classical humanist"},{value:"neo-grotesque",label:"Neo-grotesque"},{value:"monospace-slab-serif",label:"Monospace slab serif"},{value:"monospace-code",label:"Monospace code"},{value:"industrial",label:"Industrial"},{value:"rounded-sans",label:"Rounded sans"},{value:"slab-serif",label:"Slab serif"},{value:"antique",label:"Antique"},{value:"didone",label:"Didone"},{value:"handwritten",label:"Handwritten"}],h=e.Object({type:a(["stack","theme","google"],{title:"Type of font",description:"The type of font. Can be a font stack, a theme font or a Google font"}),family:e.String({title:"Family",description:"The font family (eg. the name of the font)"})},{title:"Headings font",description:"Used for titles and headings",additionalProperties:!1}),d=e.Object({type:a(["stack","theme","google"],{title:"Type of font",description:"The type of font. Can be a font stack, a theme font or a Google font"}),family:e.String({title:"Family",description:"The font family (eg. the name of the font)"})},{title:"Body font",description:"Used for paragraphs and body text",additionalProperties:!1}),p=e.Object({id:e.String({title:"ID",description:"The unique identifier of the theme"}),name:e.String({title:"Name",description:"The name of the theme"}),description:e.String({title:"Description",description:"The description of the theme"}),tags:e.Array(e.String({title:"Tag"}),{title:"Tags",description:"The tags of the theme"}),browserColorScheme:a(["light","dark"],{title:"Browser scheme",description:"Color of browser-provided UI. Either 'light' or 'dark'"}),colors:e.Object({primary:e.String({title:"Primary",description:"The brand's primary color.","ai:instructions":"Use oklch() css notation.",examples:["oklch(65.6% 0.241 354.308)"]}),secondary:e.String({title:"Secondary",description:"The brand's second most used color","ai:instructions":"Use oklch() css notation.",examples:["oklch(0.65 0.22 185)"]}),accent:e.String({title:"Accent",description:"The brand's least used color","ai:instructions":"Use oklch() css notation.",examples:["oklch(0.82 0.18 85)"]}),neutral:e.String({title:"Neutral",description:"The base neutral color","ai:instructions":"Use oklch() css notation.",examples:["oklch(0.38 0.08 280)"]}),base100:e.String({title:"Base",description:"Base surface color of page, used for blank backgrounds. Should be white or near-white for light color-schemes, and black or near-black for dark color-schemes.","ai:instructions":"Use oklab() css notation.",examples:["oklch(0.99 0.008 92)"]}),base200:e.String({title:"Base 2",description:"Should be darker than base 100 but still light for light color-schemes, and lighter but still dark for dark color-schemes.","ai:instructions":"Use oklab() css notation.",examples:["oklch(0.97 0.01 85)"]}),base300:e.String({title:"Base 3",description:"3rd base color, should be darker than base 200 for light color-schemes, and lighter than base 200 for dark color-schemes.","ai:instructions":"Use oklab() css notation.",examples:["oklch(0.95 0.02 80)"]})},{title:"Theme base colors",description:"The base colors of the theme. Each theme must declare all these colors",additionalProperties:!1}),typography:e.Object({base:e.Number({title:"Base font size",description:"The base font size in pixels. It is safe to keep it as is.","ai:instructions":"A safe value is 16."}),heading:h,body:d,alternatives:e.Array(e.Object({body:d,heading:h},{additionalProperties:!1}),{title:"Alternative fonts",description:"Alternative fonts that can be suggested to the user. Takes the same shape"})},{additionalProperties:!1})},{additionalProperties:!1}),f=e.Array(p);function x(){return l(f)}var u={id:"_default_",name:"default",description:"Default Upstart theme",tags:["gradient","vibrant","modern","creative","dynamic","artistic","bold"],browserColorScheme:"light",colors:{base100:"#FFF",base200:"oklch(0.99 0.008 92)",base300:"oklch(0.97 0.01 85)",primary:"oklch(65.6% 0.241 354.308)",secondary:"oklch(0.65 0.22 185)",accent:"oklch(0.82 0.18 85)",neutral:"oklch(0.38 0.08 280)"},typography:{base:16,heading:{type:"stack",family:"system-ui"},body:{type:"stack",family:"system-ui"},alternatives:[]}};function A(t){return t.id===u.id}function U(t){return{...t,typography:{...t.typography,base:16},colors:Object.entries(t.colors).reduce((s,[r,o])=>{let i=b(o);return{...s,[r]:i}},{})}}function b(t){if(c.valid(t))return t;if(/ok(lch|lab)\(([^)]+)\)/.test(t)){let o=t.replace(/,/g," ");if(c.valid(o))return o}if(/^([a-z]+)-([0-9]+)$/.test(t)){let[o,i]=t.split("-"),n=m[o]?.[i];if(n)return n}return t}export{v as a,p as b,f as c,x as d,u as e,A as f,U as g};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
+
|
|
3
|
+
import{c as d}from"./chunk-6PGAWO4H.js";import{a as c}from"./chunk-4GIZ6WSG.js";import{m as p}from"./chunk-F4JNKU7J.js";import{b as n}from"./chunk-3FPFR5RA.js";import{f as t}from"./chunk-VK26ZZFR.js";import{b as a}from"./chunk-AB3IMRXZ.js";import{b as r,d as i}from"./chunk-DHSWVVMI.js";import{c as s}from"./chunk-Z4YKRLOX.js";import{a as o}from"./chunk-SFKZAUPW.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};
|