@upstart.gg/sdk 0.0.134 → 0.0.136
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 +11 -3
- package/dist/shared/ai/schemas.d.ts.map +1 -1
- package/dist/shared/ai/schemas.js +63 -1
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +138 -64
- package/dist/shared/ai/types.d.ts.map +1 -1
- package/dist/shared/ajv.js +6861 -1
- package/dist/shared/ajv.js.map +1 -1
- package/dist/shared/analytics/init.js +20 -1
- package/dist/shared/analytics/init.js.map +1 -1
- package/dist/shared/analytics/track.js +24 -1
- package/dist/shared/analytics/track.js.map +1 -1
- package/dist/shared/attributes.d.ts +99 -30
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +46 -1
- package/dist/shared/brick-manifest.d.ts +1 -1
- package/dist/shared/brick-manifest.js +26 -1
- package/dist/shared/bricks/manifests/_types.d.ts +9 -0
- package/dist/shared/bricks/manifests/_types.d.ts.map +1 -0
- package/dist/shared/bricks/{props/enum.js → manifests/_types.js} +1 -2
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/accordion.manifest.js +29 -1
- package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/all-manifests.js +59 -1
- package/dist/shared/bricks/manifests/box.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +28 -1
- package/dist/shared/bricks/manifests/button.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/button.manifest.js +28 -1
- package/dist/shared/bricks/manifests/card.manifest.d.ts +10 -9
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +28 -1
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +28 -1
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +6 -10
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +30 -1
- package/dist/shared/bricks/manifests/form.manifest.d.ts +5 -9
- package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/form.manifest.js +29 -1
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +28 -1
- package/dist/shared/bricks/manifests/html.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +28 -1
- package/dist/shared/bricks/manifests/icon.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +28 -1
- package/dist/shared/bricks/manifests/image.manifest.d.ts +3 -2
- package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/image.manifest.js +28 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +28 -1
- package/dist/shared/bricks/manifests/map.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +31 -1
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +6 -10
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +31 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +29 -1
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +28 -1
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +28 -1
- package/dist/shared/bricks/manifests/table.manifest.d.ts +87 -0
- package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -0
- package/dist/shared/bricks/manifests/table.manifest.js +31 -0
- package/dist/shared/bricks/manifests/table.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts +86 -0
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -0
- package/dist/shared/bricks/manifests/tabs.manifest.js +31 -0
- package/dist/shared/bricks/manifests/tabs.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +28 -1
- package/dist/shared/bricks/manifests/text.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +28 -1
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts +97 -0
- package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -0
- package/dist/shared/bricks/manifests/timeline.manifest.js +31 -0
- package/dist/shared/bricks/manifests/timeline.manifest.js.map +1 -0
- package/dist/shared/bricks/manifests/video.manifest.d.ts +4 -8
- package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/video.manifest.js +28 -1
- package/dist/shared/bricks/props/align.d.ts +2 -2
- package/dist/shared/bricks/props/align.js +19 -1
- package/dist/shared/bricks/props/background.d.ts +4 -4
- package/dist/shared/bricks/props/background.js +15 -1
- package/dist/shared/bricks/props/boolean.js +7 -1
- package/dist/shared/bricks/props/border.js +16 -1
- package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
- package/dist/shared/bricks/props/color-preset.js +13 -1
- package/dist/shared/bricks/props/color.js +14 -1
- package/dist/shared/bricks/props/common.d.ts +2 -2
- package/dist/shared/bricks/props/common.js +13 -1
- package/dist/shared/bricks/props/css-length.js +14 -1
- package/dist/shared/bricks/props/datarecord.js +7 -1
- package/dist/shared/bricks/props/datasource.d.ts +1 -1
- package/dist/shared/bricks/props/datasource.js +86 -1
- package/dist/shared/bricks/props/datasource.js.map +1 -1
- package/dist/shared/bricks/props/date.js +9 -1
- package/dist/shared/bricks/props/direction.js +11 -1
- package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
- package/dist/shared/bricks/props/dynamic.js +30 -1
- package/dist/shared/bricks/props/effects.js +17 -1
- package/dist/shared/bricks/props/file.js +15 -1
- package/dist/shared/bricks/props/file.js.map +1 -1
- package/dist/shared/bricks/props/geolocation.js +44 -1
- package/dist/shared/bricks/props/geolocation.js.map +1 -1
- package/dist/shared/bricks/props/helpers.d.ts +1 -1
- package/dist/shared/bricks/props/helpers.js +18 -1
- package/dist/shared/bricks/props/image.js +11 -1
- package/dist/shared/bricks/props/number.js +7 -1
- package/dist/shared/bricks/props/position.js +7 -1
- package/dist/shared/bricks/props/string.js +18 -1
- package/dist/shared/bricks/props/tags.js +10 -1
- package/dist/shared/bricks/props/text.js +19 -1
- package/dist/shared/bricks.d.ts +59 -45
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +81 -1
- package/dist/shared/chunk-2BPYOTKA.js +21 -0
- package/dist/shared/{chunk-WHTPGWUV.js.map → chunk-2BPYOTKA.js.map} +1 -1
- package/dist/shared/chunk-2IHKVMKW.js +105 -0
- package/dist/shared/chunk-2IHKVMKW.js.map +1 -0
- package/dist/shared/chunk-2RK3CPYJ.js +74 -0
- package/dist/shared/{chunk-W33JMRRN.js.map → chunk-2RK3CPYJ.js.map} +1 -1
- package/dist/shared/chunk-2VDR4ZYY.js +230 -0
- package/dist/shared/chunk-2VDR4ZYY.js.map +1 -0
- package/dist/shared/chunk-36PLZKMW.js +538 -0
- package/dist/shared/chunk-36PLZKMW.js.map +1 -0
- package/dist/shared/chunk-3ZDN5BWN.js +18 -0
- package/dist/shared/{chunk-OIY3EPHO.js.map → chunk-3ZDN5BWN.js.map} +1 -1
- package/dist/shared/chunk-42OUNI7C.js +366 -0
- package/dist/shared/chunk-42OUNI7C.js.map +1 -0
- package/dist/shared/chunk-4MNWMEMM.js +422 -0
- package/dist/shared/chunk-4MNWMEMM.js.map +1 -0
- package/dist/shared/chunk-55C6MTX2.js +21 -0
- package/dist/shared/{chunk-KBHDY425.js.map → chunk-55C6MTX2.js.map} +1 -1
- package/dist/shared/chunk-6TVVKUWM.js +15 -0
- package/dist/shared/{chunk-4WDWJA3N.js.map → chunk-6TVVKUWM.js.map} +1 -1
- package/dist/shared/chunk-6WIMWLCJ.js +17 -0
- package/dist/shared/{chunk-KYY3PHP7.js.map → chunk-6WIMWLCJ.js.map} +1 -1
- package/dist/shared/chunk-7LAWWRU7.js +21 -0
- package/dist/shared/{chunk-IUXCWWGO.js.map → chunk-7LAWWRU7.js.map} +1 -1
- package/dist/shared/chunk-A2QPY54H.js +13 -0
- package/dist/shared/{chunk-KFM6KXSE.js.map → chunk-A2QPY54H.js.map} +1 -1
- package/dist/shared/chunk-BHC2A43S.js +67 -0
- package/dist/shared/{chunk-3YVJ2ELD.js.map → chunk-BHC2A43S.js.map} +1 -1
- package/dist/shared/chunk-BPBKHEQ5.js +39 -0
- package/dist/shared/{chunk-OHNYCXPX.js.map → chunk-BPBKHEQ5.js.map} +1 -1
- package/dist/shared/chunk-CRS7QCPZ.js +308 -0
- package/dist/shared/chunk-CRS7QCPZ.js.map +1 -0
- package/dist/shared/chunk-CSF2WQX2.js +60 -0
- package/dist/shared/{chunk-GLS7HPIZ.js.map → chunk-CSF2WQX2.js.map} +1 -1
- package/dist/shared/chunk-DFAFDBYZ.js +462 -0
- package/dist/shared/chunk-DFAFDBYZ.js.map +1 -0
- package/dist/shared/chunk-DV3G7X34.js +244 -0
- package/dist/shared/chunk-DV3G7X34.js.map +1 -0
- package/dist/shared/chunk-EVLRH6VG.js +56 -0
- package/dist/shared/{chunk-RJYZ5FAR.js.map → chunk-EVLRH6VG.js.map} +1 -1
- package/dist/shared/chunk-F22LDHEO.js +105 -0
- package/dist/shared/{chunk-5YRC3IT3.js.map → chunk-F22LDHEO.js.map} +1 -1
- package/dist/shared/chunk-F247VKAE.js +131 -0
- package/dist/shared/chunk-F247VKAE.js.map +1 -0
- package/dist/shared/chunk-FOGAVJC2.js +59 -0
- package/dist/shared/chunk-FOGAVJC2.js.map +1 -0
- package/dist/shared/chunk-FQDR2BBZ.js +30 -0
- package/dist/shared/chunk-FQDR2BBZ.js.map +1 -0
- package/dist/shared/chunk-GFAQWQER.js +618 -0
- package/dist/shared/chunk-GFAQWQER.js.map +1 -0
- package/dist/shared/chunk-GIGFNQBO.js +129 -0
- package/dist/shared/chunk-GIGFNQBO.js.map +1 -0
- package/dist/shared/chunk-GQTZPN5D.js +519 -0
- package/dist/shared/chunk-GQTZPN5D.js.map +1 -0
- package/dist/shared/chunk-H5JM2M2T.js +515 -0
- package/dist/shared/chunk-H5JM2M2T.js.map +1 -0
- package/dist/shared/chunk-HPCCD6V5.js +17 -0
- package/dist/shared/{chunk-6I3ONVU6.js.map → chunk-HPCCD6V5.js.map} +1 -1
- package/dist/shared/chunk-HTUSL2U7.js +260 -0
- package/dist/shared/chunk-HTUSL2U7.js.map +1 -0
- package/dist/shared/chunk-IQIISR22.js +794 -0
- package/dist/shared/chunk-IQIISR22.js.map +1 -0
- package/dist/shared/chunk-JK2FWFJU.js +15 -0
- package/dist/shared/{chunk-JMN3HTZU.js.map → chunk-JK2FWFJU.js.map} +1 -1
- package/dist/shared/chunk-KEM5N6GJ.js +505 -0
- package/dist/shared/chunk-KEM5N6GJ.js.map +1 -0
- package/dist/shared/chunk-KIDICX3Y.js +278 -0
- package/dist/shared/chunk-KIDICX3Y.js.map +1 -0
- package/dist/shared/chunk-KILJYJFE.js +354 -0
- package/dist/shared/chunk-KILJYJFE.js.map +1 -0
- package/dist/shared/chunk-KNREHAPN.js +13 -0
- package/dist/shared/{chunk-KSEURRVZ.js.map → chunk-KNREHAPN.js.map} +1 -1
- package/dist/shared/chunk-KT7SSWMM.js +24 -0
- package/dist/shared/{chunk-KO5FPOWZ.js.map → chunk-KT7SSWMM.js.map} +1 -1
- package/dist/shared/chunk-L6C7HUSA.js +850 -0
- package/dist/shared/chunk-L6C7HUSA.js.map +1 -0
- package/dist/shared/chunk-LCJ2VFPM.js +837 -0
- package/dist/shared/chunk-LCJ2VFPM.js.map +1 -0
- package/dist/shared/chunk-LLNPH3XR.js +148 -0
- package/dist/shared/chunk-LLNPH3XR.js.map +1 -0
- package/dist/shared/chunk-LTIJI7Y3.js +368 -0
- package/dist/shared/chunk-LTIJI7Y3.js.map +1 -0
- package/dist/shared/chunk-MFNHFN2B.js +103 -0
- package/dist/shared/{chunk-ZA3GAB4H.js.map → chunk-MFNHFN2B.js.map} +1 -1
- package/dist/shared/chunk-N3BEBLWF.js +213 -0
- package/dist/shared/chunk-N3BEBLWF.js.map +1 -0
- package/dist/shared/chunk-N3ZTQD5I.js +70 -0
- package/dist/shared/chunk-N3ZTQD5I.js.map +1 -0
- package/dist/shared/chunk-NTLAKMMQ.js +94 -0
- package/dist/shared/{chunk-ZTZJHY4E.js.map → chunk-NTLAKMMQ.js.map} +1 -1
- package/dist/shared/chunk-O5PQISX4.js +51 -0
- package/dist/shared/{chunk-VEDQV5XO.js.map → chunk-O5PQISX4.js.map} +1 -1
- package/dist/shared/chunk-OJP4HMJT.js +22 -0
- package/dist/shared/{chunk-6HLU4UI2.js.map → chunk-OJP4HMJT.js.map} +1 -1
- package/dist/shared/chunk-OSJ6KGPX.js +16 -0
- package/dist/shared/{chunk-GPEMPZXK.js.map → chunk-OSJ6KGPX.js.map} +1 -1
- package/dist/shared/chunk-OXYXZHP2.js +48 -0
- package/dist/shared/{chunk-5O4Z3YQY.js.map → chunk-OXYXZHP2.js.map} +1 -1
- package/dist/shared/chunk-Q4NPPLEU.js +34 -0
- package/dist/shared/{chunk-QWGUMKZC.js.map → chunk-Q4NPPLEU.js.map} +1 -1
- package/dist/shared/chunk-QLQVDZIL.js +11 -0
- package/dist/shared/{chunk-KLD3P5XH.js.map → chunk-QLQVDZIL.js.map} +1 -1
- package/dist/shared/chunk-RV7AYVFV.js +75 -0
- package/dist/shared/{chunk-DHI3IBOD.js.map → chunk-RV7AYVFV.js.map} +1 -1
- package/dist/shared/chunk-SE6O65HC.js +44 -0
- package/dist/shared/{chunk-NM5MMPCF.js.map → chunk-SE6O65HC.js.map} +1 -1
- package/dist/shared/chunk-TFGGYU6Y.js +394 -0
- package/dist/shared/{chunk-CZRCW5EN.js.map → chunk-TFGGYU6Y.js.map} +1 -1
- package/dist/shared/chunk-TKMWY2VN.js +18 -0
- package/dist/shared/{chunk-RDZK73KV.js.map → chunk-TKMWY2VN.js.map} +1 -1
- package/dist/shared/chunk-TNMNMYOB.js +69 -0
- package/dist/shared/{chunk-4BTB3MU2.js.map → chunk-TNMNMYOB.js.map} +1 -1
- package/dist/shared/chunk-TNTFKLCR.js +1225 -0
- package/dist/shared/chunk-TNTFKLCR.js.map +1 -0
- package/dist/shared/chunk-U5ZECCJM.js +464 -0
- package/dist/shared/chunk-U5ZECCJM.js.map +1 -0
- package/dist/shared/chunk-UXTASZ23.js +419 -0
- package/dist/shared/chunk-UXTASZ23.js.map +1 -0
- package/dist/shared/chunk-W6MRYRGJ.js +100 -0
- package/dist/shared/{chunk-CCI4C3TM.js.map → chunk-W6MRYRGJ.js.map} +1 -1
- package/dist/shared/chunk-WKN566LN.js +29 -0
- package/dist/shared/{chunk-Q4H4QEMB.js.map → chunk-WKN566LN.js.map} +1 -1
- package/dist/shared/chunk-XCWMZVF5.js +89 -0
- package/dist/shared/{chunk-ZFCUSWMT.js.map → chunk-XCWMZVF5.js.map} +1 -1
- package/dist/shared/chunk-XCZVD5H6.js +13 -0
- package/dist/shared/{chunk-HAGKVQOW.js.map → chunk-XCZVD5H6.js.map} +1 -1
- package/dist/shared/chunk-XZ6WJZHN.js +10 -0
- package/dist/shared/{chunk-DCH4ZKWT.js.map → chunk-XZ6WJZHN.js.map} +1 -1
- package/dist/shared/chunk-Y74LZNND.js +30 -0
- package/dist/shared/{chunk-GACHLACT.js.map → chunk-Y74LZNND.js.map} +1 -1
- package/dist/shared/chunk-YWOTQWIQ.js +572 -0
- package/dist/shared/chunk-YWOTQWIQ.js.map +1 -0
- package/dist/shared/chunk-ZEFOWKYP.js +44 -0
- package/dist/shared/{chunk-DQ7PRWTG.js.map → chunk-ZEFOWKYP.js.map} +1 -1
- package/dist/shared/chunk-ZGQ3AQBG.js +33 -0
- package/dist/shared/chunk-ZGQ3AQBG.js.map +1 -0
- package/dist/shared/chunk-ZLYIRH2B.js +68 -0
- package/dist/shared/{chunk-SWLUQVK7.js.map → chunk-ZLYIRH2B.js.map} +1 -1
- package/dist/shared/chunk-ZR6R6Z6O.js +496 -0
- package/dist/shared/chunk-ZR6R6Z6O.js.map +1 -0
- package/dist/shared/chunk-ZRRAK5NS.js +432 -0
- package/dist/shared/chunk-ZRRAK5NS.js.map +1 -0
- package/dist/shared/context.d.ts +1 -0
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/datarecords/external/airtable/handler.js +377 -1
- package/dist/shared/datarecords/external/airtable/handler.js.map +1 -1
- package/dist/shared/datarecords/external/airtable/oauth/config.js +15 -1
- package/dist/shared/datarecords/external/airtable/oauth/config.js.map +1 -1
- package/dist/shared/datarecords/external/airtable/types.js +11 -1
- package/dist/shared/datarecords/external/generic-webhook/handler.js +14 -1
- package/dist/shared/datarecords/external/generic-webhook/handler.js.map +1 -1
- package/dist/shared/datarecords/external/generic-webhook/options.js +16 -1
- package/dist/shared/datarecords/external/generic-webhook/options.js.map +1 -1
- package/dist/shared/datarecords/external/google/oauth/config.js +35 -1
- package/dist/shared/datarecords/external/google/oauth/config.js.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/client.js +7 -1
- package/dist/shared/datarecords/external/google/sheets/handler.js +184 -5
- package/dist/shared/datarecords/external/google/sheets/handler.js.map +1 -1
- package/dist/shared/datarecords/external/google/sheets/types.js +7 -1
- package/dist/shared/datarecords/external/notion/handler.js +397 -1
- package/dist/shared/datarecords/external/notion/handler.js.map +1 -1
- package/dist/shared/datarecords/external/notion/oauth/config.js +11 -1
- package/dist/shared/datarecords/external/notion/oauth/config.js.map +1 -1
- package/dist/shared/datarecords/external/notion/types.js +7 -1
- package/dist/shared/datarecords/types.d.ts +6 -59
- package/dist/shared/datarecords/types.d.ts.map +1 -1
- package/dist/shared/datarecords/types.js +14 -1
- package/dist/shared/datarecords.js +9 -1
- package/dist/shared/datarecords.js.map +1 -1
- package/dist/shared/datasources/external/facebook/posts/fetcher.js +49 -1
- package/dist/shared/datasources/external/facebook/posts/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/facebook/posts/schema.js +36 -1
- package/dist/shared/datasources/external/facebook/posts/schema.js.map +1 -1
- package/dist/shared/datasources/external/http-json/fetcher.js +29 -1
- package/dist/shared/datasources/external/http-json/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/http-json/options.js +11 -1
- package/dist/shared/datasources/external/http-json/options.js.map +1 -1
- package/dist/shared/datasources/external/http-json/schema.js +10 -1
- package/dist/shared/datasources/external/http-json/schema.js.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/fetcher.js +29 -1
- package/dist/shared/datasources/external/instagram/feed/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js +26 -1
- package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/account/fetcher.js +7 -1
- package/dist/shared/datasources/external/mastodon/account/schema.js +7 -1
- package/dist/shared/datasources/external/mastodon/options.js +10 -1
- package/dist/shared/datasources/external/mastodon/options.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/fetcher.js +31 -1
- package/dist/shared/datasources/external/mastodon/status/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/sample.array.js +61 -1
- package/dist/shared/datasources/external/mastodon/status/sample.array.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/sample.single.js +59 -1
- package/dist/shared/datasources/external/mastodon/status/sample.single.js.map +1 -1
- package/dist/shared/datasources/external/mastodon/status/schema.js +125 -1
- package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
- package/dist/shared/datasources/external/meta/oauth/config.js +17 -1
- package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
- package/dist/shared/datasources/external/meta/options.js +10 -1
- package/dist/shared/datasources/external/meta/options.js.map +1 -1
- package/dist/shared/datasources/external/rss/fetcher.js +26 -1
- package/dist/shared/datasources/external/rss/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/rss/options.js +10 -1
- package/dist/shared/datasources/external/rss/options.js.map +1 -1
- package/dist/shared/datasources/external/rss/schema.js +7 -1
- package/dist/shared/datasources/external/threads/media/fetcher.js +47 -1
- package/dist/shared/datasources/external/threads/media/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/threads/media/schema.js +40 -1
- package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
- package/dist/shared/datasources/external/tiktok/oauth/config.js +18 -1
- package/dist/shared/datasources/external/tiktok/oauth/config.js.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/fetcher.js +34 -1
- package/dist/shared/datasources/external/tiktok/video/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/options.js +11 -1
- package/dist/shared/datasources/external/tiktok/video/options.js.map +1 -1
- package/dist/shared/datasources/external/tiktok/video/schema.js +30 -1
- package/dist/shared/datasources/external/tiktok/video/schema.js.map +1 -1
- package/dist/shared/datasources/external/youtube/list/fetcher.js +32 -1
- package/dist/shared/datasources/external/youtube/list/fetcher.js.map +1 -1
- package/dist/shared/datasources/external/youtube/list/options.js +14 -1
- package/dist/shared/datasources/external/youtube/list/options.js.map +1 -1
- package/dist/shared/datasources/external/youtube/list/schema.js +7 -1
- package/dist/shared/datasources/external/youtube/oauth/config.js +18 -1
- package/dist/shared/datasources/external/youtube/oauth/config.js.map +1 -1
- package/dist/shared/datasources/internal/blog/schema.js +72 -1
- package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
- package/dist/shared/datasources/internal/changelog/schema.js +51 -1
- package/dist/shared/datasources/internal/changelog/schema.js.map +1 -1
- package/dist/shared/datasources/internal/contact-info/schema.js +25 -1
- package/dist/shared/datasources/internal/contact-info/schema.js.map +1 -1
- package/dist/shared/datasources/internal/cv/schema.js +222 -1
- package/dist/shared/datasources/internal/cv/schema.js.map +1 -1
- package/dist/shared/datasources/internal/faq/schema.js +30 -1
- package/dist/shared/datasources/internal/faq/schema.js.map +1 -1
- package/dist/shared/datasources/internal/job-board/schema.js +224 -1
- package/dist/shared/datasources/internal/job-board/schema.js.map +1 -1
- package/dist/shared/datasources/internal/links/schema.js +7 -1
- package/dist/shared/datasources/internal/recipes/schema.js +45 -1
- package/dist/shared/datasources/internal/recipes/schema.js.map +1 -1
- package/dist/shared/datasources/internal/restaurant/schema.js +226 -1
- package/dist/shared/datasources/internal/restaurant/schema.js.map +1 -1
- package/dist/shared/datasources/samples.js +69 -1
- package/dist/shared/datasources/samples.js.map +1 -1
- package/dist/shared/datasources/schemas.js +34 -1
- package/dist/shared/datasources/schemas.js.map +1 -1
- package/dist/shared/datasources/types.d.ts +1 -1
- package/dist/shared/datasources/types.d.ts.map +1 -1
- package/dist/shared/datasources/types.js +32 -1
- package/dist/shared/datasources/utils.js +11 -1
- package/dist/shared/datasources.d.ts +1 -1
- package/dist/shared/datasources.d.ts.map +1 -1
- package/dist/shared/datasources.js +49 -1
- package/dist/shared/datasources.js.map +1 -1
- package/dist/shared/errors.js +7 -1
- package/dist/shared/images.d.ts +4 -4
- package/dist/shared/images.d.ts.map +1 -1
- package/dist/shared/images.js +44 -1
- package/dist/shared/images.js.map +1 -1
- package/dist/shared/index.js +9 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/layout-constants.js +14 -1
- package/dist/shared/layout-constants.js.map +1 -1
- package/dist/shared/manifest.js +52 -1
- package/dist/shared/manifest.js.map +1 -1
- package/dist/shared/oauth.js +8 -1
- package/dist/shared/page.d.ts +12 -126
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +58 -1
- package/dist/shared/prompt.js +7 -1
- package/dist/shared/responsive.js +10 -1
- package/dist/shared/responsive.js.map +1 -1
- package/dist/shared/site.d.ts +34 -31
- package/dist/shared/site.d.ts.map +1 -1
- package/dist/shared/site.js +127 -1
- package/dist/shared/site.js.map +1 -1
- package/dist/shared/sitemap.d.ts +13 -12
- package/dist/shared/sitemap.d.ts.map +1 -1
- package/dist/shared/sitemap.js +69 -1
- package/dist/shared/social-icons.js +312 -1
- package/dist/shared/social-icons.js.map +1 -1
- package/dist/shared/tests/schema-registry.test.d.ts +2 -0
- package/dist/shared/tests/schema-registry.test.d.ts.map +1 -0
- package/dist/shared/theme.d.ts +1 -1
- package/dist/shared/theme.d.ts.map +1 -1
- package/dist/shared/theme.js +35 -1
- package/dist/shared/themes/color-system.js +103 -1
- package/dist/shared/themes/color-system.js.map +1 -1
- package/dist/shared/utils/canvas-data-uri.js +7 -1
- package/dist/shared/utils/canvas-data-uri.js.map +1 -1
- package/dist/shared/utils/invariant.js +7 -1
- package/dist/shared/utils/json-date.js +7 -1
- package/dist/shared/utils/llm.d.ts +2 -3
- package/dist/shared/utils/llm.d.ts.map +1 -1
- package/dist/shared/utils/llm.js +24 -1
- package/dist/shared/utils/merge.js +7 -1
- package/dist/shared/utils/object-hash.js +13 -1
- package/dist/shared/utils/object-hash.js.map +1 -1
- package/dist/shared/utils/schema-registry.d.ts +5 -0
- package/dist/shared/utils/schema-registry.d.ts.map +1 -0
- package/dist/shared/utils/schema-registry.js +29 -0
- package/dist/shared/utils/schema-registry.js.map +1 -0
- package/dist/shared/utils/schema.d.ts +2 -1
- package/dist/shared/utils/schema.d.ts.map +1 -1
- package/dist/shared/utils/schema.js +31 -1
- package/dist/shared/utils/string-enum.js +7 -1
- package/dist/shared/utils/tests/schema-registry.test.d.ts +2 -0
- package/dist/shared/utils/tests/schema-registry.test.d.ts.map +1 -0
- package/dist/shared/utils/try-catch.js +13 -1
- package/dist/shared/utils/try-catch.js.map +1 -1
- package/dist/shared/utils/typed-ref.js +7 -1
- package/package.json +9 -10
- package/src/shared/ai/schemas.ts +44 -12
- package/src/shared/ai/types.ts +135 -59
- package/src/shared/attributes.ts +37 -27
- package/src/shared/bricks/manifests/_types.ts +9 -0
- package/src/shared/bricks/manifests/accordion.manifest.ts +128 -161
- package/src/shared/bricks/manifests/all-manifests.ts +16 -0
- package/src/shared/bricks/manifests/box.manifest.ts +195 -129
- package/src/shared/bricks/manifests/button.manifest.ts +158 -71
- package/src/shared/bricks/manifests/card.manifest.ts +200 -28
- package/src/shared/bricks/manifests/carousel.manifest.ts +154 -22
- package/src/shared/bricks/manifests/footer.manifest.ts +38 -32
- package/src/shared/bricks/manifests/form.manifest.ts +122 -7
- package/src/shared/bricks/manifests/hero.manifest.ts +103 -18
- package/src/shared/bricks/manifests/html.manifest.ts +2 -5
- package/src/shared/bricks/manifests/icon.manifest.ts +216 -36
- package/src/shared/bricks/manifests/image.manifest.ts +103 -2
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +2 -5
- package/src/shared/bricks/manifests/map.manifest.ts +2 -5
- package/src/shared/bricks/manifests/navbar.manifest.ts +3 -8
- package/src/shared/bricks/manifests/sidebar.manifest.ts +2 -5
- package/src/shared/bricks/manifests/social-links.manifest.ts +2 -5
- package/src/shared/bricks/manifests/spacer.manifest.ts +2 -5
- package/src/shared/bricks/manifests/table.manifest.ts +440 -0
- package/src/shared/bricks/manifests/tabs.manifest.ts +573 -0
- package/src/shared/bricks/manifests/testimonials.manifest.ts +2 -5
- package/src/shared/bricks/manifests/text.manifest.ts +31 -10
- package/src/shared/bricks/manifests/timeline.manifest.ts +438 -0
- package/src/shared/bricks/manifests/video.manifest.ts +2 -5
- package/src/shared/bricks/props/color-preset.ts +3 -1
- package/src/shared/bricks/props/dynamic.ts +0 -1
- package/src/shared/bricks/props/string.ts +1 -1
- package/src/shared/bricks.ts +61 -49
- package/src/shared/context.ts +1 -0
- package/src/shared/datarecords/types.ts +47 -37
- package/src/shared/datasources/types.ts +1 -5
- package/src/shared/datasources.ts +2 -4
- package/src/shared/images.ts +10 -8
- package/src/shared/page.ts +0 -5
- package/src/shared/site.ts +3 -3
- package/src/shared/sitemap.ts +14 -16
- package/src/shared/tests/schema-registry.test.ts +12 -0
- package/src/shared/theme.ts +1 -4
- package/src/shared/utils/llm.ts +13 -12
- package/src/shared/utils/schema-registry.ts +82 -0
- package/src/shared/utils/schema.ts +18 -3
- package/src/shared/utils/tests/schema-registry.test.ts +13 -0
- package/src/shared/utils/tests/schema.test.ts +124 -56
- package/dist/shared/bricks/props/enum.d.ts +0 -13
- package/dist/shared/bricks/props/enum.d.ts.map +0 -1
- package/dist/shared/chunk-3YVJ2ELD.js +0 -4
- package/dist/shared/chunk-4BTB3MU2.js +0 -4
- package/dist/shared/chunk-4WDWJA3N.js +0 -4
- package/dist/shared/chunk-5O4Z3YQY.js +0 -4
- package/dist/shared/chunk-5YRC3IT3.js +0 -4
- package/dist/shared/chunk-6HLU4UI2.js +0 -4
- package/dist/shared/chunk-6I3ONVU6.js +0 -4
- package/dist/shared/chunk-7A2JNQX3.js +0 -4
- package/dist/shared/chunk-7A2JNQX3.js.map +0 -1
- package/dist/shared/chunk-A3GF4PYW.js +0 -4
- package/dist/shared/chunk-A3GF4PYW.js.map +0 -1
- package/dist/shared/chunk-A3K4NUVP.js +0 -4
- package/dist/shared/chunk-A3K4NUVP.js.map +0 -1
- package/dist/shared/chunk-AFVJZPLS.js +0 -4
- package/dist/shared/chunk-AFVJZPLS.js.map +0 -1
- package/dist/shared/chunk-AI4GHU7R.js +0 -4
- package/dist/shared/chunk-AI4GHU7R.js.map +0 -1
- package/dist/shared/chunk-B3EATRFX.js +0 -4
- package/dist/shared/chunk-B3EATRFX.js.map +0 -1
- package/dist/shared/chunk-CCI4C3TM.js +0 -4
- package/dist/shared/chunk-CFF6Q7O7.js +0 -7
- package/dist/shared/chunk-CFF6Q7O7.js.map +0 -1
- package/dist/shared/chunk-CZRCW5EN.js +0 -4
- package/dist/shared/chunk-DCH4ZKWT.js +0 -4
- package/dist/shared/chunk-DHI3IBOD.js +0 -4
- package/dist/shared/chunk-DQ7PRWTG.js +0 -4
- package/dist/shared/chunk-E6XEI7IK.js +0 -4
- package/dist/shared/chunk-E6XEI7IK.js.map +0 -1
- package/dist/shared/chunk-FLOMNC6J.js +0 -4
- package/dist/shared/chunk-FLOMNC6J.js.map +0 -1
- package/dist/shared/chunk-G5CJU6RD.js +0 -7
- package/dist/shared/chunk-G5CJU6RD.js.map +0 -1
- package/dist/shared/chunk-GACHLACT.js +0 -4
- package/dist/shared/chunk-GLS7HPIZ.js +0 -4
- package/dist/shared/chunk-GOMXZC4B.js +0 -35
- package/dist/shared/chunk-GOMXZC4B.js.map +0 -1
- package/dist/shared/chunk-GPEMPZXK.js +0 -4
- package/dist/shared/chunk-HAGKVQOW.js +0 -4
- package/dist/shared/chunk-I3VL6SRH.js +0 -9
- package/dist/shared/chunk-I3VL6SRH.js.map +0 -1
- package/dist/shared/chunk-IKC3FK7L.js +0 -4
- package/dist/shared/chunk-IKC3FK7L.js.map +0 -1
- package/dist/shared/chunk-IKHZD2JH.js +0 -4
- package/dist/shared/chunk-IKHZD2JH.js.map +0 -1
- package/dist/shared/chunk-IUXCWWGO.js +0 -4
- package/dist/shared/chunk-JMN3HTZU.js +0 -4
- package/dist/shared/chunk-KBHDY425.js +0 -4
- package/dist/shared/chunk-KFM6KXSE.js +0 -4
- package/dist/shared/chunk-KLD3P5XH.js +0 -4
- package/dist/shared/chunk-KO5FPOWZ.js +0 -4
- package/dist/shared/chunk-KSEURRVZ.js +0 -4
- package/dist/shared/chunk-KYY3PHP7.js +0 -4
- package/dist/shared/chunk-NJGXC7D6.js +0 -4
- package/dist/shared/chunk-NJGXC7D6.js.map +0 -1
- package/dist/shared/chunk-NM5MMPCF.js +0 -4
- package/dist/shared/chunk-OGBMYMZD.js +0 -4
- package/dist/shared/chunk-OGBMYMZD.js.map +0 -1
- package/dist/shared/chunk-OHNYCXPX.js +0 -4
- package/dist/shared/chunk-OIY3EPHO.js +0 -4
- package/dist/shared/chunk-PIG623TZ.js +0 -4
- package/dist/shared/chunk-PIG623TZ.js.map +0 -1
- package/dist/shared/chunk-PLSV746R.js +0 -4
- package/dist/shared/chunk-PLSV746R.js.map +0 -1
- package/dist/shared/chunk-PSCN3VVA.js +0 -4
- package/dist/shared/chunk-PSCN3VVA.js.map +0 -1
- package/dist/shared/chunk-PSTFJ5IJ.js +0 -4
- package/dist/shared/chunk-PSTFJ5IJ.js.map +0 -1
- package/dist/shared/chunk-PXI7AHWS.js +0 -4
- package/dist/shared/chunk-PXI7AHWS.js.map +0 -1
- package/dist/shared/chunk-Q4H4QEMB.js +0 -4
- package/dist/shared/chunk-QGYZ7CG5.js +0 -4
- package/dist/shared/chunk-QGYZ7CG5.js.map +0 -1
- package/dist/shared/chunk-QWGUMKZC.js +0 -4
- package/dist/shared/chunk-QX6OGRRT.js +0 -5
- package/dist/shared/chunk-QX6OGRRT.js.map +0 -1
- package/dist/shared/chunk-R6ATC4TC.js +0 -4
- package/dist/shared/chunk-R6ATC4TC.js.map +0 -1
- package/dist/shared/chunk-RDZK73KV.js +0 -4
- package/dist/shared/chunk-RJYZ5FAR.js +0 -4
- package/dist/shared/chunk-SQ5T4AT5.js +0 -6
- package/dist/shared/chunk-SQ5T4AT5.js.map +0 -1
- package/dist/shared/chunk-SWLUQVK7.js +0 -4
- package/dist/shared/chunk-SXHDQ64Z.js +0 -5
- package/dist/shared/chunk-SXHDQ64Z.js.map +0 -1
- package/dist/shared/chunk-SY6DZLTC.js +0 -4
- package/dist/shared/chunk-SY6DZLTC.js.map +0 -1
- package/dist/shared/chunk-VEDQV5XO.js +0 -4
- package/dist/shared/chunk-W33JMRRN.js +0 -4
- package/dist/shared/chunk-WBZW5LVH.js +0 -4
- package/dist/shared/chunk-WBZW5LVH.js.map +0 -1
- package/dist/shared/chunk-WHTPGWUV.js +0 -4
- package/dist/shared/chunk-WYVJE6J5.js +0 -4
- package/dist/shared/chunk-WYVJE6J5.js.map +0 -1
- package/dist/shared/chunk-ZA3GAB4H.js +0 -9
- package/dist/shared/chunk-ZFCUSWMT.js +0 -4
- package/dist/shared/chunk-ZQPXQCY2.js +0 -4
- package/dist/shared/chunk-ZQPXQCY2.js.map +0 -1
- package/dist/shared/chunk-ZTZJHY4E.js +0 -4
- package/src/shared/bricks/props/enum.ts +0 -38
- /package/dist/shared/bricks/{props/enum.js.map → manifests/_types.js.map} +0 -0
package/src/shared/utils/llm.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { TObject, TSchema } from "@sinclair/typebox";
|
|
2
2
|
import { createAJVInstance } from "../ajv";
|
|
3
3
|
import { cloneDeep } from "lodash-es";
|
|
4
|
-
import
|
|
4
|
+
import { schemaRegistry } from "./schema-registry";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Clean all properties from custom metadata recursively. Custom metadata are key that:
|
|
@@ -9,8 +9,8 @@ import type Ajv from "ajv";
|
|
|
9
9
|
* - Or starting with "ui:"
|
|
10
10
|
* Also removes properties that have "ai:hidden" set to true
|
|
11
11
|
*/
|
|
12
|
-
export function toLLMSchema<T extends TSchema = TObject>(schema: T
|
|
13
|
-
return cleanSchemaRecursive(inlineSchemaRefs(schema
|
|
12
|
+
export function toLLMSchema<T extends TSchema = TObject>(schema: T): T {
|
|
13
|
+
return cleanSchemaRecursive(inlineSchemaRefs(schema)) as T;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -107,7 +107,7 @@ interface SchemaWithDefs extends TSchema {
|
|
|
107
107
|
* @param ajv - The AJV instance containing the referenced schemas
|
|
108
108
|
* @returns A new schema with references inlined in $defs
|
|
109
109
|
*/
|
|
110
|
-
export function inlineSchemaRefs<T extends TSchema>(schema: T
|
|
110
|
+
export function inlineSchemaRefs<T extends TSchema>(schema: T) {
|
|
111
111
|
//
|
|
112
112
|
const inlinedSchema = cloneDeep(schema) as T & SchemaWithDefs;
|
|
113
113
|
// const inlinedSchema = JSON.parse(JSON.stringify(schema)) as T & SchemaWithDefs;
|
|
@@ -171,11 +171,12 @@ export function inlineSchemaRefs<T extends TSchema>(schema: T, ajv: Ajv) {
|
|
|
171
171
|
|
|
172
172
|
// Process each collected reference
|
|
173
173
|
for (const refId of collectedRefs) {
|
|
174
|
-
// Get the schema from
|
|
175
|
-
const referencedSchema =
|
|
174
|
+
// Get the schema from the registry
|
|
175
|
+
const referencedSchema = schemaRegistry.get(refId);
|
|
176
176
|
|
|
177
|
-
if (!referencedSchema
|
|
178
|
-
//
|
|
177
|
+
if (!referencedSchema) {
|
|
178
|
+
// console.error(`Schema with ID "${refId}" not found in schema registry`, { referencedSchema });
|
|
179
|
+
// throw new Error(`Schema with ID "${refId}" not found in schema registry`);
|
|
179
180
|
continue;
|
|
180
181
|
}
|
|
181
182
|
|
|
@@ -197,7 +198,7 @@ export function inlineSchemaRefs<T extends TSchema>(schema: T, ajv: Ajv) {
|
|
|
197
198
|
}
|
|
198
199
|
|
|
199
200
|
// Add to $defs
|
|
200
|
-
const { $id, ...schemaWithoutId } = referencedSchema
|
|
201
|
+
const { $id, ...schemaWithoutId } = referencedSchema;
|
|
201
202
|
inlinedSchema.$defs![uniqueDefKey] = schemaWithoutId;
|
|
202
203
|
|
|
203
204
|
// Map original reference to local reference
|
|
@@ -253,8 +254,8 @@ export function inlineSchemaRefs<T extends TSchema>(schema: T, ajv: Ajv) {
|
|
|
253
254
|
|
|
254
255
|
// Add all newly found references to $defs
|
|
255
256
|
for (const refId of newRefsFound) {
|
|
256
|
-
const referencedSchema =
|
|
257
|
-
if (referencedSchema
|
|
257
|
+
const referencedSchema = schemaRegistry.get(refId);
|
|
258
|
+
if (referencedSchema) {
|
|
258
259
|
const newDefKey =
|
|
259
260
|
refId.replace(/[^a-zA-Z0-9_-]/g, "_").replace(/^_+|_+$/g, "") ||
|
|
260
261
|
`ref_${Object.keys(finalSchema.$defs).length}`;
|
|
@@ -266,7 +267,7 @@ export function inlineSchemaRefs<T extends TSchema>(schema: T, ajv: Ajv) {
|
|
|
266
267
|
counter++;
|
|
267
268
|
}
|
|
268
269
|
|
|
269
|
-
finalSchema.$defs[uniqueNewDefKey] = referencedSchema
|
|
270
|
+
finalSchema.$defs[uniqueNewDefKey] = referencedSchema;
|
|
270
271
|
refToLocalMap.set(refId, `#/$defs/${uniqueNewDefKey}`);
|
|
271
272
|
}
|
|
272
273
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { TSchema } from "@sinclair/typebox";
|
|
2
|
+
import { alignItems, alignSelf, justifyContent } from "../bricks/props/align";
|
|
3
|
+
import { background, backgroundColor } from "../bricks/props/background";
|
|
4
|
+
import { border, rounding } from "../bricks/props/border";
|
|
5
|
+
import { borderColor, color } from "../bricks/props/color";
|
|
6
|
+
import { hidden } from "../bricks/props/common";
|
|
7
|
+
import { cssLength } from "../bricks/props/css-length";
|
|
8
|
+
import { shadow, textShadow } from "../bricks/props/effects";
|
|
9
|
+
import { fontSize, textContent } from "../bricks/props/text";
|
|
10
|
+
import { icon, urlOrPageId } from "../bricks/props/string";
|
|
11
|
+
import { colorPreset } from "../bricks/props/color-preset";
|
|
12
|
+
import { image } from "../bricks/props/image";
|
|
13
|
+
import { direction } from "../bricks/props/direction";
|
|
14
|
+
import { loop, queryUse } from "../bricks/props/dynamic";
|
|
15
|
+
import { tags } from "../bricks/props/tags";
|
|
16
|
+
|
|
17
|
+
export const schemaRegistry = new Map<string, TSchema>();
|
|
18
|
+
|
|
19
|
+
export function registerSchema(id: string, schema: TSchema) {
|
|
20
|
+
schemaRegistry.set(id, schema);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function unregisterSchema(id: string) {
|
|
24
|
+
schemaRegistry.delete(id);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
registerSchema("styles:background", background());
|
|
28
|
+
registerSchema("styles:backgroundColor", backgroundColor());
|
|
29
|
+
registerSchema("styles:justifyContent", justifyContent());
|
|
30
|
+
registerSchema("styles:alignItems", alignItems());
|
|
31
|
+
registerSchema("styles:alignSelf", alignSelf());
|
|
32
|
+
registerSchema("styles:rounding", rounding());
|
|
33
|
+
registerSchema("styles:fontSize", fontSize());
|
|
34
|
+
registerSchema("styles:hidden", hidden());
|
|
35
|
+
registerSchema("styles:direction", direction());
|
|
36
|
+
registerSchema("styles:border", border());
|
|
37
|
+
registerSchema("styles:color", color());
|
|
38
|
+
registerSchema("styles:borderColor", borderColor());
|
|
39
|
+
registerSchema("styles:shadow", shadow());
|
|
40
|
+
registerSchema("styles:textShadow", textShadow());
|
|
41
|
+
registerSchema("styles:cssLength", cssLength());
|
|
42
|
+
registerSchema("assets:image", image());
|
|
43
|
+
registerSchema("assets:icon", icon());
|
|
44
|
+
registerSchema("content:text", textContent());
|
|
45
|
+
registerSchema("content:urlOrPageId", urlOrPageId());
|
|
46
|
+
registerSchema("content:loop", loop());
|
|
47
|
+
registerSchema("content:queryUse", queryUse());
|
|
48
|
+
registerSchema("presets:color", colorPreset());
|
|
49
|
+
registerSchema("content:tags", tags());
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
*/
|
|
53
|
+
function consolidateRefs() {
|
|
54
|
+
// Helper to recursively resolve $refs in a schema
|
|
55
|
+
function resolveRefs(schema: TSchema, visited: Set<TSchema> = new Set()) {
|
|
56
|
+
if (!schema || typeof schema !== "object" || visited.has(schema)) return schema;
|
|
57
|
+
visited.add(schema);
|
|
58
|
+
if ("$ref" in schema && typeof (schema as TSchema).$ref === "string") {
|
|
59
|
+
const refSchema = schemaRegistry.get((schema as TSchema).$ref);
|
|
60
|
+
if (refSchema) {
|
|
61
|
+
// Recursively resolve refs in the referenced schema
|
|
62
|
+
return resolveRefs(refSchema, visited);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const key of Object.keys(schema)) {
|
|
66
|
+
const value = (schema as TSchema)[key];
|
|
67
|
+
if (Array.isArray(value)) {
|
|
68
|
+
(schema as TSchema)[key] = value.map((item: TSchema) => resolveRefs(item, visited));
|
|
69
|
+
} else if (typeof value === "object" && value !== null) {
|
|
70
|
+
(schema as TSchema)[key] = resolveRefs(value as TSchema, visited);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return schema;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Rewrite all schemas in the registry to resolve $refs
|
|
77
|
+
for (const [id, schema] of schemaRegistry.entries()) {
|
|
78
|
+
schemaRegistry.set(id, resolveRefs(schema));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
consolidateRefs();
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { type TArray, type TObject, type TSchema, Kind } from "@sinclair/typebox";
|
|
1
|
+
import { type TArray, type TObject, type TSchema, Kind, type Static } from "@sinclair/typebox";
|
|
2
2
|
import type { PageAttributes } from "../attributes";
|
|
3
|
-
import {
|
|
3
|
+
import { schemaRegistry } from "./schema-registry";
|
|
4
|
+
import { Cabidela } from "@cloudflare/cabidela";
|
|
5
|
+
import { defaultsDeep as applyDefaultsDeep } from "lodash-es";
|
|
4
6
|
|
|
5
7
|
export function normalizeSchemaEnum(schema: TSchema): Array<{ const: string; title: string }> {
|
|
6
8
|
if (!("enum" in schema)) {
|
|
@@ -149,7 +151,7 @@ function resolveSchemaRecursive(schema: TSchema, visited: Set<string>): TSchema
|
|
|
149
151
|
return schema; // Return original schema to avoid infinite loop
|
|
150
152
|
}
|
|
151
153
|
|
|
152
|
-
const resolved =
|
|
154
|
+
const resolved = schemaRegistry.get(schema.$ref);
|
|
153
155
|
if (!resolved) {
|
|
154
156
|
console.error("Schema not found for reference:", schema);
|
|
155
157
|
return schema;
|
|
@@ -357,3 +359,16 @@ function resolveSchemaRecursive(schema: TSchema, visited: Set<string>): TSchema
|
|
|
357
359
|
|
|
358
360
|
return resolvedSchema as TSchema;
|
|
359
361
|
}
|
|
362
|
+
|
|
363
|
+
export function validate<T extends TSchema>(schema: TSchema, data: unknown): data is Static<T> {
|
|
364
|
+
const validator = new Cabidela(schema, {
|
|
365
|
+
fullErrors: true,
|
|
366
|
+
});
|
|
367
|
+
validator.validate(data);
|
|
368
|
+
|
|
369
|
+
// Mutate data with defaults
|
|
370
|
+
const defaults = getSchemaDefaults(schema as TObject | TArray);
|
|
371
|
+
applyDefaultsDeep(data, defaults);
|
|
372
|
+
|
|
373
|
+
return true;
|
|
374
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Check taht schemaRegistry contains all schemas and that $refs are resolved
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
import { schemaRegistry } from "../schema-registry";
|
|
4
|
+
|
|
5
|
+
describe("Schema Registry", () => {
|
|
6
|
+
it("should contain all registered schemas", () => {
|
|
7
|
+
expect(schemaRegistry.has("styles:background")).toBe(true);
|
|
8
|
+
expect(schemaRegistry.has("styles:justifyContent")).toBe(true);
|
|
9
|
+
expect(schemaRegistry.has("assets:image")).toBe(true);
|
|
10
|
+
expect(schemaRegistry.has("content:text")).toBe(true);
|
|
11
|
+
expect(schemaRegistry.has("styles:alignItems")).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
import { describe, expect, test, beforeEach
|
|
2
|
-
import { Type } from "@sinclair/typebox";
|
|
3
|
-
import { resolveSchema } from "../schema";
|
|
4
|
-
import { toLLMSchema } from "../llm";
|
|
5
|
-
import { ajv } from "../../ajv";
|
|
1
|
+
import { describe, expect, test, beforeEach } from "vitest";
|
|
2
|
+
import { type Static, Type } from "@sinclair/typebox";
|
|
3
|
+
import { resolveSchema, validate } from "../schema";
|
|
4
|
+
import { inlineSchemaRefs, toLLMSchema } from "../llm";
|
|
6
5
|
import { sitemapSchema } from "~/shared/sitemap";
|
|
6
|
+
import type { Manifest } from "~/shared/bricks/manifests/text.manifest";
|
|
7
|
+
import { registerSchema, unregisterSchema } from "~/shared/utils/schema-registry";
|
|
8
|
+
import { makeFullBrickSchemaForLLM, type Section, sectionSchema, sectionSchemaLLM } from "~/shared/bricks";
|
|
9
|
+
import type { BrickProps } from "~/shared/bricks/props/types";
|
|
7
10
|
|
|
8
11
|
describe("resolveSchema tests suite", () => {
|
|
9
12
|
beforeEach(() => {
|
|
10
13
|
// Clear any test schemas before each test
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
unregisterSchema("test:simple");
|
|
15
|
+
unregisterSchema("test:user");
|
|
16
|
+
unregisterSchema("test:address");
|
|
17
|
+
unregisterSchema("test:circular1");
|
|
18
|
+
unregisterSchema("test:circular2");
|
|
19
|
+
unregisterSchema("test:string");
|
|
20
|
+
unregisterSchema("test:number");
|
|
21
|
+
unregisterSchema("test:boolean");
|
|
22
|
+
unregisterSchema("test:base");
|
|
23
|
+
unregisterSchema("test:extended");
|
|
21
24
|
});
|
|
22
25
|
|
|
23
26
|
test("should return primitive types unchanged", () => {
|
|
@@ -44,7 +47,7 @@ describe("resolveSchema tests suite", () => {
|
|
|
44
47
|
email: Type.String({ format: "email" }),
|
|
45
48
|
});
|
|
46
49
|
|
|
47
|
-
|
|
50
|
+
registerSchema("test:user", userSchema);
|
|
48
51
|
|
|
49
52
|
const schemaWithRef = Type.Ref("test:user");
|
|
50
53
|
|
|
@@ -64,7 +67,7 @@ describe("resolveSchema tests suite", () => {
|
|
|
64
67
|
city: Type.String(),
|
|
65
68
|
});
|
|
66
69
|
|
|
67
|
-
|
|
70
|
+
registerSchema("test:address", addressSchema);
|
|
68
71
|
|
|
69
72
|
const schema = Type.Object({
|
|
70
73
|
name: Type.String(),
|
|
@@ -81,7 +84,7 @@ describe("resolveSchema tests suite", () => {
|
|
|
81
84
|
id: Type.Number(),
|
|
82
85
|
});
|
|
83
86
|
|
|
84
|
-
|
|
87
|
+
registerSchema("test:simple", itemSchema);
|
|
85
88
|
|
|
86
89
|
const schema = Type.Array(Type.Ref("test:simple"));
|
|
87
90
|
|
|
@@ -93,8 +96,8 @@ describe("resolveSchema tests suite", () => {
|
|
|
93
96
|
const stringSchema = Type.String();
|
|
94
97
|
const numberSchema = Type.Number();
|
|
95
98
|
|
|
96
|
-
|
|
97
|
-
|
|
99
|
+
registerSchema("test:string", stringSchema);
|
|
100
|
+
registerSchema("test:number", numberSchema);
|
|
98
101
|
|
|
99
102
|
const schema = Type.Tuple([Type.Ref("test:string"), Type.Ref("test:number")]);
|
|
100
103
|
|
|
@@ -106,8 +109,8 @@ describe("resolveSchema tests suite", () => {
|
|
|
106
109
|
const stringSchema = Type.String();
|
|
107
110
|
const numberSchema = Type.Number();
|
|
108
111
|
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
registerSchema("test:string", stringSchema);
|
|
113
|
+
registerSchema("test:number", numberSchema);
|
|
111
114
|
|
|
112
115
|
const schema = Type.Union([Type.Ref("test:string"), Type.Ref("test:number")]);
|
|
113
116
|
|
|
@@ -120,8 +123,8 @@ describe("resolveSchema tests suite", () => {
|
|
|
120
123
|
const stringSchema = Type.String();
|
|
121
124
|
const numberSchema = Type.Number();
|
|
122
125
|
|
|
123
|
-
|
|
124
|
-
|
|
126
|
+
registerSchema("test:string", stringSchema);
|
|
127
|
+
registerSchema("test:number", numberSchema);
|
|
125
128
|
|
|
126
129
|
const schema = {
|
|
127
130
|
oneOf: [Type.Ref("test:string"), Type.Ref("test:number")],
|
|
@@ -141,8 +144,8 @@ describe("resolveSchema tests suite", () => {
|
|
|
141
144
|
name: Type.String(),
|
|
142
145
|
});
|
|
143
146
|
|
|
144
|
-
|
|
145
|
-
|
|
147
|
+
registerSchema("test:base", baseSchema);
|
|
148
|
+
registerSchema("test:extended", extendedSchema);
|
|
146
149
|
|
|
147
150
|
const schema = Type.Intersect([Type.Ref("test:base"), Type.Ref("test:extended")]);
|
|
148
151
|
|
|
@@ -155,7 +158,7 @@ describe("resolveSchema tests suite", () => {
|
|
|
155
158
|
test("should resolve not schemas", () => {
|
|
156
159
|
const stringSchema = Type.String();
|
|
157
160
|
|
|
158
|
-
|
|
161
|
+
registerSchema("test:string", stringSchema);
|
|
159
162
|
|
|
160
163
|
const schema = Type.Not(Type.Ref("test:string"));
|
|
161
164
|
|
|
@@ -168,9 +171,9 @@ describe("resolveSchema tests suite", () => {
|
|
|
168
171
|
const numberSchema = Type.Number();
|
|
169
172
|
const booleanSchema = Type.Boolean();
|
|
170
173
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
+
registerSchema("test:string", stringSchema);
|
|
175
|
+
registerSchema("test:number", numberSchema);
|
|
176
|
+
registerSchema("test:boolean", booleanSchema);
|
|
174
177
|
|
|
175
178
|
const schema = {
|
|
176
179
|
if: Type.Ref("test:string"),
|
|
@@ -223,8 +226,8 @@ describe("resolveSchema tests suite", () => {
|
|
|
223
226
|
friends: Type.Array(Type.Ref("test:user")),
|
|
224
227
|
});
|
|
225
228
|
|
|
226
|
-
|
|
227
|
-
|
|
229
|
+
registerSchema("test:user", personSchema);
|
|
230
|
+
registerSchema("test:address", addressSchema);
|
|
228
231
|
|
|
229
232
|
const schema = Type.Object({
|
|
230
233
|
users: Type.Array(Type.Ref("test:user")),
|
|
@@ -239,30 +242,6 @@ describe("resolveSchema tests suite", () => {
|
|
|
239
242
|
expect(result.properties.users.items.properties.address.type).toBe("object");
|
|
240
243
|
expect(result.properties.users.items.properties.address.properties.street.type).toBe("string");
|
|
241
244
|
});
|
|
242
|
-
|
|
243
|
-
test("should handle refs in conditionals properly", () => {
|
|
244
|
-
const stringSchema = Type.String();
|
|
245
|
-
const numberSchema = Type.Number({ minimum: 0 });
|
|
246
|
-
|
|
247
|
-
ajv.addSchema(stringSchema, "test:string");
|
|
248
|
-
ajv.addSchema(numberSchema, "test:number");
|
|
249
|
-
|
|
250
|
-
const schema = Type.Object({
|
|
251
|
-
type: Type.String({ enum: ["string", "number"] }),
|
|
252
|
-
value: {
|
|
253
|
-
if: Type.Object({ type: Type.Const("string") }),
|
|
254
|
-
// biome-ignore lint/suspicious/noThenProperty: Required for JSON schema conditional validation
|
|
255
|
-
then: Type.Ref("test:string"),
|
|
256
|
-
else: Type.Ref("test:number"),
|
|
257
|
-
} as any,
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
const result = resolveSchema(schema);
|
|
261
|
-
|
|
262
|
-
expect(result.properties.value.then.type).toEqual(stringSchema.type);
|
|
263
|
-
expect(result.properties.value.else.type).toEqual(numberSchema.type);
|
|
264
|
-
expect(result.properties.value.else.minimum).toBe(0);
|
|
265
|
-
});
|
|
266
245
|
});
|
|
267
246
|
|
|
268
247
|
describe("toLLMSchema tests suite", () => {
|
|
@@ -721,4 +700,93 @@ describe("toLLMSchema tests suite", () => {
|
|
|
721
700
|
const transformed = toLLMSchema(sitemapSchema);
|
|
722
701
|
expect(transformed.items.properties.id.type).toEqual(sitemapSchema.items.properties.id.type);
|
|
723
702
|
});
|
|
703
|
+
|
|
704
|
+
test("test with existing sectionSchema", () => {
|
|
705
|
+
const transformed = toLLMSchema(sectionSchema);
|
|
706
|
+
// console.dir({ transformed }, { depth: null });
|
|
707
|
+
expect(transformed.properties.props.type).toEqual(sectionSchema.properties.props.type);
|
|
708
|
+
});
|
|
709
|
+
});
|
|
710
|
+
|
|
711
|
+
describe("inlineSchemaRefs", () => {
|
|
712
|
+
test("should inline simple $ref schemas", () => {
|
|
713
|
+
const inlined = inlineSchemaRefs(sectionSchema);
|
|
714
|
+
expect(inlined.properties.props.properties.colorPreset.$ref).toEqual("#/$defs/presets_color");
|
|
715
|
+
expect(inlined.$defs.presets_color).toBeDefined();
|
|
716
|
+
expect(inlined.$defs.presets_color.type).toBe("object");
|
|
717
|
+
});
|
|
718
|
+
});
|
|
719
|
+
|
|
720
|
+
describe("toLLMSchema consistency", () => {
|
|
721
|
+
test("toLLMSchema(sectionSchema) should equal sectionSchemaLLM", () => {
|
|
722
|
+
const transformed = toLLMSchema(sectionSchema);
|
|
723
|
+
expect(transformed).toEqual(sectionSchemaLLM);
|
|
724
|
+
|
|
725
|
+
expect(transformed.$defs.presets_color).toBeDefined();
|
|
726
|
+
expect(transformed.$defs.presets_color.type).toBe("object");
|
|
727
|
+
|
|
728
|
+
expect(sectionSchemaLLM.$defs.presets_color).toBeDefined();
|
|
729
|
+
expect(sectionSchemaLLM.$defs.presets_color.type).toBe("object");
|
|
730
|
+
});
|
|
731
|
+
});
|
|
732
|
+
|
|
733
|
+
describe("validation with validate()", () => {
|
|
734
|
+
test("should validate correct schema", () => {
|
|
735
|
+
expect(sectionSchemaLLM.$defs.presets_color).toBeDefined();
|
|
736
|
+
expect(sectionSchemaLLM.$defs.presets_color.type).toBe("object");
|
|
737
|
+
const validSectionExample: Section = {
|
|
738
|
+
id: "section1",
|
|
739
|
+
label: "Hero Section",
|
|
740
|
+
order: 1,
|
|
741
|
+
props: {
|
|
742
|
+
colorPreset: {
|
|
743
|
+
color: "primary-100",
|
|
744
|
+
},
|
|
745
|
+
maxWidth: "max-w-full",
|
|
746
|
+
verticalMargin: "28px",
|
|
747
|
+
direction: "flex-col",
|
|
748
|
+
},
|
|
749
|
+
bricks: [],
|
|
750
|
+
};
|
|
751
|
+
expect(() => validate(sectionSchemaLLM, validSectionExample)).not.toThrow();
|
|
752
|
+
});
|
|
753
|
+
|
|
754
|
+
test("should validate a brick without mobileProps", () => {
|
|
755
|
+
const schema = makeFullBrickSchemaForLLM("text");
|
|
756
|
+
const example: BrickProps<Manifest>["brick"] = {
|
|
757
|
+
id: "test-brick-1",
|
|
758
|
+
type: "text",
|
|
759
|
+
props: {
|
|
760
|
+
content: "Hello, world!",
|
|
761
|
+
},
|
|
762
|
+
};
|
|
763
|
+
expect(() => validate(schema, example)).not.toThrow();
|
|
764
|
+
});
|
|
765
|
+
|
|
766
|
+
test("should validate a brick with partial mobileProps", () => {
|
|
767
|
+
const schema = makeFullBrickSchemaForLLM("text");
|
|
768
|
+
const example: BrickProps<Manifest>["brick"] = {
|
|
769
|
+
id: "test-brick-1",
|
|
770
|
+
type: "text",
|
|
771
|
+
props: {
|
|
772
|
+
content: "Hello, world!",
|
|
773
|
+
},
|
|
774
|
+
mobileProps: {},
|
|
775
|
+
};
|
|
776
|
+
expect(() => validate(schema, example)).not.toThrow();
|
|
777
|
+
|
|
778
|
+
const example2: BrickProps<Manifest>["brick"] = {
|
|
779
|
+
id: "test-brick-1",
|
|
780
|
+
type: "text",
|
|
781
|
+
props: {
|
|
782
|
+
content: "Hello, world!",
|
|
783
|
+
},
|
|
784
|
+
mobileProps: {
|
|
785
|
+
colorPreset: {
|
|
786
|
+
color: "primary-100",
|
|
787
|
+
},
|
|
788
|
+
},
|
|
789
|
+
};
|
|
790
|
+
expect(() => validate(schema, example2)).not.toThrow();
|
|
791
|
+
});
|
|
724
792
|
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type SchemaOptions } from "@sinclair/typebox";
|
|
2
|
-
type EnumOption = {
|
|
3
|
-
title?: string;
|
|
4
|
-
description?: string;
|
|
5
|
-
value: string;
|
|
6
|
-
icon?: string;
|
|
7
|
-
};
|
|
8
|
-
export declare function enumProp(title: string, defaultValue: string, opts: Omit<SchemaOptions, "title" | "default"> & {
|
|
9
|
-
options: EnumOption[] | string[];
|
|
10
|
-
displayAs?: "radio" | "select" | "button-group" | "icon-group";
|
|
11
|
-
}): import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<string>[]>;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=enum.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../src/shared/bricks/props/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAQ,MAAM,mBAAmB,CAAC;AAE7D,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG;IAC/C,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC;CAChE,sFAsBF"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import{b as s}from"./chunk-W33JMRRN.js";import{Type as r}from"@sinclair/typebox";function c(t){return t.type==="object"}function l({title:t,children:e,category:o="settings",metadata:a,options:n}){return c(e)?r.Composite([r.Object({}),e],{title:t,metadata:{category:o,group:!0,...a},...n}):r.Object(e,{title:t,...n,metadata:{category:o,group:!0,...a}})}function m(t){let e=t.metadata;return{title:t.title??t.metadata?.title,meta:e,tab:e.groupTab||"common"}}function P(t,e){let o={...s,...t},{alignSelf:a,grow:n,...p}=o,i={...p,...e?.noAlignSelf?{}:{alignSelf:a},...e?.noGrow?{}:{grow:n}};return r.Object(i,{...e,additionalProperties:!1})}var T=r.Array;export{l as a,m as b,P as c,T as d};
|
|
4
|
-
//# sourceMappingURL=chunk-3YVJ2ELD.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import{a as o}from"./chunk-KFM6KXSE.js";import{a as e}from"./chunk-JMN3HTZU.js";import{Type as s}from"@sinclair/typebox";function d(t={}){return e(["shadow-none","shadow-sm","shadow-md","shadow-lg","shadow-xl","shadow-2xl"],{title:"Shadow",description:"Box shadow around the brick",enumNames:["None","Small","Medium","Large","XL","2XL"],"ui:placeholder":"Not specified","ui:field":"enum","ui:display":"select","ui:responsive":"desktop","ui:styleId":"styles:shadow",...t})}function u(t={}){return o("styles:shadow",t)}function r(t={}){return e(["text-shadow-none","text-shadow-sm","text-shadow-md","text-shadow-lg","text-shadow-xl"],{title:"Text shadow",enumNames:["None","S","M","L","XL"],"ui:display":"button-group","ui:placeholder":"Not specified","ui:field":"enum","ui:styleId":"styles:textShadow",examples:["text-shadow-sm","text-shadow-md","text-shadow-lg"],...t})}function m(t={}){return o("styles:textShadow",t)}function l({defaultValue:t=1,title:i="Opacity"}={}){return s.Number({title:i,minimum:.1,maximum:1,default:t,multipleOf:.1,"ui:field":"slider","ui:unit":"%","ui:multiplier":100,examples:[.5,.75,1]})}export{d as a,u as b,r as c,m as d,l as e};
|
|
4
|
-
//# sourceMappingURL=chunk-4BTB3MU2.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
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.String({minLength:30,maxLength:500,description:"User prompt for the site, describing the purpose and main features of the site."});export{i as a};
|
|
4
|
-
//# sourceMappingURL=chunk-4WDWJA3N.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
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};
|
|
4
|
-
//# sourceMappingURL=chunk-5O4Z3YQY.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import{a as e}from"./chunk-KFM6KXSE.js";import{a as n}from"./chunk-JMN3HTZU.js";import{Type as s}from"@sinclair/typebox";function f(t={}){return n(["inherit","text-xs","text-sm","text-base","text-lg","text-xl"],{enumNames:["Same as parent","Extra small","Small","Medium","Large","Extra large"],default:"inherit",title:"Font size","ui:styleId":"styles:fontSize","ui:field":"enum","ui:display":"select",...t})}function g(t={}){return e("styles:fontSize",t)}function S(t={}){return n(["inherit","text-xs","text-sm","text-base","text-lg","text-xl","text-2xl","text-3xl","text-4xl","text-5xl","text-6xl","text-7xl"],{enumNames:["Same as parent","Extra small","Small","Medium","Large","Extra large","Extra large (2x)","Extra large (3x)","Extra large (4x)","Extra large (5x)","Extra large (6x)","Extra large (7x)"],default:"inherit",title:"Font size","ui:styleId":"styles:fontSize","ui:field":"enum","ui:display":"select",...t})}function m(t={}){return e("styles:fontSizeXL",t)}function d({title:t="Text",default:i,showInSettings:o,disableSizing:a=!1,disableAlignment:r=!1,...l}={}){return s.String({title:t,description:"Text content. Can contain basic HTML tags like `<strong>`, `<em>`, `<br>` and `<a>` as well as `<p>` and `<span>` and lists <ul> <ol> <li>.",default:i??"My text","ui:disable-sizing":a,"ui:disable-alignment":r,...l,"ui:field":o?"string":"hidden"})}function y(t={}){return e("content:text",t)}export{f as a,g as b,S as c,m as d,d as e,y as f};
|
|
4
|
-
//# sourceMappingURL=chunk-5YRC3IT3.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import{get as i}from"lodash-es";function a(t){return Object.fromEntries(Object.entries(t).map(([r,e])=>[r,e.toString()]))}function c(t){return function(e,n){let o=n.trim();return String(i(t,o))??""}}var g=/{{(.+?)}}/g;export{a,c as b,g as c};
|
|
4
|
-
//# sourceMappingURL=chunk-6HLU4UI2.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import{Type as e}from"@sinclair/typebox";function i(t="Database",r){return e.String({"ui:field":"datarecord",title:t,...r})}export{i as a};
|
|
4
|
-
//# sourceMappingURL=chunk-6I3ONVU6.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
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-3YVJ2ELD.js";import{a}from"./chunk-RJYZ5FAR.js";import{a as u}from"./chunk-AFVJZPLS.js";import{b as n}from"./chunk-CCI4C3TM.js";import{a as e,d as r}from"./chunk-A3GF4PYW.js";import{b as o}from"./chunk-5YRC3IT3.js";import{c as s}from"./chunk-CZRCW5EN.js";import{c as l}from"./chunk-OHNYCXPX.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};
|
|
4
|
-
//# sourceMappingURL=chunk-7A2JNQX3.js.map
|