From 56ab25987b0bb5f537f0a33b1ed1fbd065d85223 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 11:32:31 +0000 Subject: [PATCH] deploy: 92cb19ef802012141ef7794f41712a3ef1734fbb --- .nojekyll | 0 404.html | 22 + ReScriptReactNative.svg | 4 + android-chrome-192x192.png | Bin 0 -> 6910 bytes android-chrome-512x512.png | Bin 0 -> 21813 bytes apple-touch-icon.png | Bin 0 -> 6412 bytes assets/css/styles.ed63b808.css | 1 + ...ction-f371744e623bab317b3bc3be11b60603.svg | 85 ++ ...alert-1a4e9aea9b7f3d273857fe682a83e4bb.png | Bin 0 -> 115076 bytes assets/js/0058b4c6.cca31e58.js | 1 + assets/js/01a85c17.9acc3897.js | 1 + assets/js/023ce613.c013ad5f.js | 1 + assets/js/043073c4.426bc1d2.js | 1 + assets/js/07399c65.1a25b536.js | 1 + assets/js/08f097a5.19fa52f0.js | 1 + assets/js/0d92630e.553073ba.js | 1 + assets/js/1055.ed78ff26.js | 1 + assets/js/136caa6d.edc82035.js | 1 + assets/js/13ae4a8c.34ebe03d.js | 1 + assets/js/1537.e72d36a4.js | 1 + assets/js/17284fae.ae27aa56.js | 1 + assets/js/17896441.8e1eba35.js | 1 + assets/js/1a4e3797.6c865197.js | 1 + assets/js/1a7bce55.7147ef9c.js | 1 + assets/js/1ea31af0.8981cb52.js | 1 + assets/js/1f5d8a3a.0d9f9e66.js | 1 + assets/js/1f7c204c.8fa74105.js | 1 + assets/js/213d7e18.8b94a82e.js | 1 + assets/js/2237.e9984711.js | 1 + assets/js/23b8615d.39a399c5.js | 1 + assets/js/2693.1a09296a.js | 2 + assets/js/2693.1a09296a.js.LICENSE.txt | 1 + assets/js/2ab9e231.0b47aa42.js | 1 + assets/js/31975ed7.4104e827.js | 1 + assets/js/32bec6ce.85df34ca.js | 1 + assets/js/354b32a0.6d40d5e5.js | 1 + assets/js/36994c47.58bb5c99.js | 1 + assets/js/3a2db09e.ad269ea2.js | 1 + assets/js/3cf831d4.ffbe5309.js | 1 + assets/js/3f722a83.b002067e.js | 1 + assets/js/3f8f8288.8bf31cf1.js | 1 + assets/js/416.aeade89c.js | 1 + assets/js/4294.a381bfcf.js | 1 + assets/js/496cd6aa.db164430.js | 1 + assets/js/4a3ceabd.f65857fd.js | 1 + assets/js/4af7c48a.7956d1f9.js | 1 + assets/js/4ef4424e.736d2203.js | 1 + assets/js/54dd43bc.e3718279.js | 1 + assets/js/566a3be1.d525ef71.js | 1 + assets/js/586b6d0e.b047c6c0.js | 1 + assets/js/5e95c892.46ff55a5.js | 1 + assets/js/63b91972.65c42678.js | 1 + assets/js/6476eba6.a9042ad9.js | 1 + assets/js/65b9bd76.602d4883.js | 1 + assets/js/66803638.0b8f5e1e.js | 1 + assets/js/6875c492.d0db4499.js | 1 + assets/js/687ca549.3d79c7bc.js | 1 + assets/js/6973453b.d96441d9.js | 1 + assets/js/6b839bb6.dfbcbf74.js | 1 + assets/js/7436d3b1.9727bd4d.js | 1 + assets/js/755faf69.3a458b5e.js | 1 + assets/js/7ca9eab1.bc3861c5.js | 1 + assets/js/7d9dbb4d.95d7a69e.js | 1 + assets/js/7da2c827.35e5372a.js | 1 + assets/js/7f2c42ba.b4345456.js | 1 + assets/js/814f3328.0470fd97.js | 1 + assets/js/831a125e.ac622215.js | 1 + assets/js/833cca9a.3c35d40f.js | 1 + assets/js/85175863.33960eb9.js | 1 + assets/js/857ca036.e5a99ffe.js | 1 + assets/js/86395a61.85b84e1f.js | 1 + assets/js/86fdf6b1.4dc7a864.js | 1 + assets/js/8913.9f2f9aee.js | 1 + assets/js/8a46b2c1.735a0ab9.js | 1 + assets/js/8ed8566e.82f3e850.js | 1 + assets/js/90e0c90f.14c31347.js | 1 + assets/js/945545dd.8b7feab9.js | 1 + assets/js/95521f4f.03c653b1.js | 1 + assets/js/989fc69f.26a0ed5c.js | 1 + assets/js/99bdbcf8.c5f518ba.js | 1 + assets/js/9baa118e.5c018032.js | 1 + assets/js/9e4087bc.e0093997.js | 1 + assets/js/9e908f88.e9b94ae8.js | 1 + assets/js/9f05bbac.bfa90b60.js | 1 + assets/js/a184b298.16bac9c1.js | 1 + assets/js/a2026f74.06b229a7.js | 1 + assets/js/a6aa9e1f.8f52ef59.js | 1 + assets/js/a70ca05f.2bf92efe.js | 1 + assets/js/a7456010.1c7dc3fa.js | 1 + assets/js/a7603ff3.69260749.js | 1 + assets/js/a7bd4aaa.a57037ec.js | 1 + assets/js/a94703ab.578547cd.js | 1 + assets/js/ab3e6658.020c54d6.js | 1 + assets/js/ab533f1c.642f22ca.js | 1 + assets/js/aba21aa0.96fdb414.js | 1 + assets/js/acecf23e.f4216610.js | 1 + assets/js/b008b754.a8d3cf1d.js | 1 + assets/js/b773a522.6ecca30c.js | 1 + assets/js/bb0b273b.38a386e0.js | 1 + assets/js/bc11f42d.7a15690d.js | 1 + assets/js/bccc4a8f.af72c789.js | 1 + assets/js/becc5eb6.2a384219.js | 1 + assets/js/c141421f.bbb9c62b.js | 1 + assets/js/c15d9823.684a40d5.js | 1 + assets/js/c377a04b.47a725f3.js | 1 + assets/js/c4de80f8.3348441c.js | 1 + assets/js/c4f5d8e4.0e6981cb.js | 1 + assets/js/c87c7738.a50ec544.js | 1 + assets/js/cc32403b.ba880832.js | 1 + assets/js/ccc49370.f410c353.js | 1 + assets/js/ccf72db0.6529ddbd.js | 1 + assets/js/cda5dd21.cf319443.js | 1 + assets/js/d6fd320e.3917e856.js | 1 + assets/js/d72f28cf.30ddcb81.js | 1 + assets/js/d7a571a3.86389dcb.js | 1 + assets/js/d996a518.179afa8d.js | 1 + assets/js/daf19b82.ef5ff9eb.js | 1 + assets/js/dce59a70.2ff961bc.js | 1 + assets/js/dec09136.7cc858a1.js | 1 + assets/js/e2187fa8.12c02d3c.js | 1 + assets/js/e2bc8ad8.c309cff8.js | 1 + assets/js/e7bffab0.6f1de505.js | 1 + assets/js/e92a9231.3af992a0.js | 1 + assets/js/ea2d43a7.145f6ac8.js | 1 + assets/js/eada822e.84b93f83.js | 1 + assets/js/eb5289e7.985df9b6.js | 1 + assets/js/ed636e79.4620f219.js | 1 + assets/js/f45adc36.f320f2e5.js | 1 + assets/js/f7cded51.263cc2b6.js | 1 + assets/js/f81c1134.ca482102.js | 1 + assets/js/f82cd581.2375f2e4.js | 1 + assets/js/f9843ad8.d183d465.js | 1 + assets/js/fa06e55d.76b52c14.js | 1 + assets/js/fada0ee8.9a60764b.js | 1 + assets/js/fdd6151e.573e6c1a.js | 1 + assets/js/main.14ec0da4.js | 2 + assets/js/main.14ec0da4.js.LICENSE.txt | 51 + assets/js/runtime~main.9aedee04.js | 1 + .../index.html | 133 +++ .../index.html | 68 ++ blog/archive/index.html | 22 + blog/atom.xml | 195 ++++ blog/index.html | 179 ++++ blog/rss.xml | 189 ++++ blog/tags/hello/index.html | 179 ++++ blog/tags/index.html | 22 + blog/tags/reason/index.html | 133 +++ blog/tags/rescript/index.html | 68 ++ browserconfig.xml | 9 + docs/accessibilityinfo/index.html | 46 + docs/actionsheetios/index.html | 28 + docs/activityindicator/index.html | 22 + docs/alert/index.html | 37 + docs/animated/index.html | 29 + docs/animationframe/index.html | 37 + docs/apis/index.html | 22 + docs/appearance/index.html | 44 + docs/appregistry/index.html | 26 + docs/appstate/index.html | 29 + docs/asyncstorage/index.html | 26 + docs/backhandler/index.html | 30 + docs/button/index.html | 23 + docs/cheatsheet/index.html | 78 ++ docs/clipboard/index.html | 34 + docs/components/index.html | 48 + docs/datepickerandroid/index.html | 27 + docs/datepickerios/index.html | 27 + docs/devsettings/index.html | 42 + docs/dimensions/index.html | 33 + docs/drawerlayoutandroid/index.html | 23 + docs/dynamiccolorios/index.html | 30 + docs/easing/index.html | 28 + docs/event/index.html | 52 + docs/eventsubscription/index.html | 25 + docs/example/index.html | 72 ++ docs/flatlist/index.html | 23 + docs/geolocation/index.html | 29 + docs/global/index.html | 32 + docs/image/index.html | 26 + docs/imagebackground/index.html | 24 + docs/imageeditor/index.html | 25 + docs/imagepickerios/index.html | 29 + docs/index.html | 64 ++ docs/inputaccessoryview/index.html | 23 + docs/install/index.html | 102 ++ docs/interactionmanager/index.html | 23 + docs/keyboard/index.html | 36 + docs/keyboardavoidingview/index.html | 22 + docs/layoutanimation/index.html | 70 ++ docs/linking/index.html | 66 ++ docs/logbox/index.html | 38 + docs/maskedviewios/index.html | 25 + docs/modal/index.html | 22 + docs/nativeeventemitter/index.html | 22 + docs/nativemodules/index.html | 25 + docs/netinfo/index.html | 25 + docs/packager/index.html | 27 + docs/panresponder/index.html | 111 ++ docs/permissionsandroid/index.html | 47 + docs/picker/index.html | 26 + docs/pixelratio/index.html | 23 + docs/platform/index.html | 42 + docs/platformcolor/index.html | 54 + docs/pressable/index.html | 31 + docs/progressbarandroid/index.html | 25 + docs/progressviewios/index.html | 25 + docs/pushnotificationios/index.html | 27 + docs/refreshcontrol/index.html | 23 + docs/safeareaview/index.html | 29 + docs/scrollview/index.html | 35 + docs/sectionlist/index.html | 22 + docs/segmentedcontrolios/index.html | 25 + docs/settings/index.html | 23 + docs/share/index.html | 28 + docs/slider/index.html | 26 + docs/snapshotviewios/index.html | 23 + docs/soundmanager/index.html | 24 + docs/statusbar/index.html | 25 + docs/style/index.html | 983 ++++++++++++++++++ docs/stylesheet/index.html | 64 ++ docs/switch/index.html | 22 + docs/text/index.html | 23 + docs/textinput/index.html | 24 + docs/timepickerandroid/index.html | 25 + docs/toastandroid/index.html | 32 + docs/toolbarandroid/index.html | 26 + docs/touchablehighlight/index.html | 25 + docs/touchablenativefeedback/index.html | 26 + docs/touchableopacity/index.html | 25 + docs/touchablewithoutfeedback/index.html | 25 + docs/uimanager/index.html | 23 + docs/usage/index.html | 101 ++ docs/vibration/index.html | 30 + docs/view/index.html | 25 + docs/viewpagerandroid/index.html | 25 + docs/virtualizedlist/index.html | 27 + docs/virtualizedsectionlist/index.html | 25 + docs/webview/index.html | 25 + docs/yellowbox/index.html | 34 + favicon-16x16.png | Bin 0 -> 655 bytes favicon-32x32.png | Bin 0 -> 1232 bytes favicon.ico | Bin 0 -> 15086 bytes home/react-native-and-more.svg | 7 + home/rescript.svg | 7 + home/safe.svg | 8 + index.html | 22 + mstile-150x150.png | Bin 0 -> 6515 bytes opensearch.xml | 11 + safari-pinned-tab.svg | 72 ++ schemas/introduction.svg | 85 ++ search/index.html | 22 + site.webmanifest | 19 + sitemap.xml | 1 + usage/vscode-alert.png | Bin 0 -> 115076 bytes 254 files changed, 5749 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 ReScriptReactNative.svg create mode 100644 android-chrome-192x192.png create mode 100644 android-chrome-512x512.png create mode 100644 apple-touch-icon.png create mode 100644 assets/css/styles.ed63b808.css create mode 100644 assets/images/introduction-f371744e623bab317b3bc3be11b60603.svg create mode 100644 assets/images/vscode-alert-1a4e9aea9b7f3d273857fe682a83e4bb.png create mode 100644 assets/js/0058b4c6.cca31e58.js create mode 100644 assets/js/01a85c17.9acc3897.js create mode 100644 assets/js/023ce613.c013ad5f.js create mode 100644 assets/js/043073c4.426bc1d2.js create mode 100644 assets/js/07399c65.1a25b536.js create mode 100644 assets/js/08f097a5.19fa52f0.js create mode 100644 assets/js/0d92630e.553073ba.js create mode 100644 assets/js/1055.ed78ff26.js create mode 100644 assets/js/136caa6d.edc82035.js create mode 100644 assets/js/13ae4a8c.34ebe03d.js create mode 100644 assets/js/1537.e72d36a4.js create mode 100644 assets/js/17284fae.ae27aa56.js create mode 100644 assets/js/17896441.8e1eba35.js create mode 100644 assets/js/1a4e3797.6c865197.js create mode 100644 assets/js/1a7bce55.7147ef9c.js create mode 100644 assets/js/1ea31af0.8981cb52.js create mode 100644 assets/js/1f5d8a3a.0d9f9e66.js create mode 100644 assets/js/1f7c204c.8fa74105.js create mode 100644 assets/js/213d7e18.8b94a82e.js create mode 100644 assets/js/2237.e9984711.js create mode 100644 assets/js/23b8615d.39a399c5.js create mode 100644 assets/js/2693.1a09296a.js create mode 100644 assets/js/2693.1a09296a.js.LICENSE.txt create mode 100644 assets/js/2ab9e231.0b47aa42.js create mode 100644 assets/js/31975ed7.4104e827.js create mode 100644 assets/js/32bec6ce.85df34ca.js create mode 100644 assets/js/354b32a0.6d40d5e5.js create mode 100644 assets/js/36994c47.58bb5c99.js create mode 100644 assets/js/3a2db09e.ad269ea2.js create mode 100644 assets/js/3cf831d4.ffbe5309.js create mode 100644 assets/js/3f722a83.b002067e.js create mode 100644 assets/js/3f8f8288.8bf31cf1.js create mode 100644 assets/js/416.aeade89c.js create mode 100644 assets/js/4294.a381bfcf.js create mode 100644 assets/js/496cd6aa.db164430.js create mode 100644 assets/js/4a3ceabd.f65857fd.js create mode 100644 assets/js/4af7c48a.7956d1f9.js create mode 100644 assets/js/4ef4424e.736d2203.js create mode 100644 assets/js/54dd43bc.e3718279.js create mode 100644 assets/js/566a3be1.d525ef71.js create mode 100644 assets/js/586b6d0e.b047c6c0.js create mode 100644 assets/js/5e95c892.46ff55a5.js create mode 100644 assets/js/63b91972.65c42678.js create mode 100644 assets/js/6476eba6.a9042ad9.js create mode 100644 assets/js/65b9bd76.602d4883.js create mode 100644 assets/js/66803638.0b8f5e1e.js create mode 100644 assets/js/6875c492.d0db4499.js create mode 100644 assets/js/687ca549.3d79c7bc.js create mode 100644 assets/js/6973453b.d96441d9.js create mode 100644 assets/js/6b839bb6.dfbcbf74.js create mode 100644 assets/js/7436d3b1.9727bd4d.js create mode 100644 assets/js/755faf69.3a458b5e.js create mode 100644 assets/js/7ca9eab1.bc3861c5.js create mode 100644 assets/js/7d9dbb4d.95d7a69e.js create mode 100644 assets/js/7da2c827.35e5372a.js create mode 100644 assets/js/7f2c42ba.b4345456.js create mode 100644 assets/js/814f3328.0470fd97.js create mode 100644 assets/js/831a125e.ac622215.js create mode 100644 assets/js/833cca9a.3c35d40f.js create mode 100644 assets/js/85175863.33960eb9.js create mode 100644 assets/js/857ca036.e5a99ffe.js create mode 100644 assets/js/86395a61.85b84e1f.js create mode 100644 assets/js/86fdf6b1.4dc7a864.js create mode 100644 assets/js/8913.9f2f9aee.js create mode 100644 assets/js/8a46b2c1.735a0ab9.js create mode 100644 assets/js/8ed8566e.82f3e850.js create mode 100644 assets/js/90e0c90f.14c31347.js create mode 100644 assets/js/945545dd.8b7feab9.js create mode 100644 assets/js/95521f4f.03c653b1.js create mode 100644 assets/js/989fc69f.26a0ed5c.js create mode 100644 assets/js/99bdbcf8.c5f518ba.js create mode 100644 assets/js/9baa118e.5c018032.js create mode 100644 assets/js/9e4087bc.e0093997.js create mode 100644 assets/js/9e908f88.e9b94ae8.js create mode 100644 assets/js/9f05bbac.bfa90b60.js create mode 100644 assets/js/a184b298.16bac9c1.js create mode 100644 assets/js/a2026f74.06b229a7.js create mode 100644 assets/js/a6aa9e1f.8f52ef59.js create mode 100644 assets/js/a70ca05f.2bf92efe.js create mode 100644 assets/js/a7456010.1c7dc3fa.js create mode 100644 assets/js/a7603ff3.69260749.js create mode 100644 assets/js/a7bd4aaa.a57037ec.js create mode 100644 assets/js/a94703ab.578547cd.js create mode 100644 assets/js/ab3e6658.020c54d6.js create mode 100644 assets/js/ab533f1c.642f22ca.js create mode 100644 assets/js/aba21aa0.96fdb414.js create mode 100644 assets/js/acecf23e.f4216610.js create mode 100644 assets/js/b008b754.a8d3cf1d.js create mode 100644 assets/js/b773a522.6ecca30c.js create mode 100644 assets/js/bb0b273b.38a386e0.js create mode 100644 assets/js/bc11f42d.7a15690d.js create mode 100644 assets/js/bccc4a8f.af72c789.js create mode 100644 assets/js/becc5eb6.2a384219.js create mode 100644 assets/js/c141421f.bbb9c62b.js create mode 100644 assets/js/c15d9823.684a40d5.js create mode 100644 assets/js/c377a04b.47a725f3.js create mode 100644 assets/js/c4de80f8.3348441c.js create mode 100644 assets/js/c4f5d8e4.0e6981cb.js create mode 100644 assets/js/c87c7738.a50ec544.js create mode 100644 assets/js/cc32403b.ba880832.js create mode 100644 assets/js/ccc49370.f410c353.js create mode 100644 assets/js/ccf72db0.6529ddbd.js create mode 100644 assets/js/cda5dd21.cf319443.js create mode 100644 assets/js/d6fd320e.3917e856.js create mode 100644 assets/js/d72f28cf.30ddcb81.js create mode 100644 assets/js/d7a571a3.86389dcb.js create mode 100644 assets/js/d996a518.179afa8d.js create mode 100644 assets/js/daf19b82.ef5ff9eb.js create mode 100644 assets/js/dce59a70.2ff961bc.js create mode 100644 assets/js/dec09136.7cc858a1.js create mode 100644 assets/js/e2187fa8.12c02d3c.js create mode 100644 assets/js/e2bc8ad8.c309cff8.js create mode 100644 assets/js/e7bffab0.6f1de505.js create mode 100644 assets/js/e92a9231.3af992a0.js create mode 100644 assets/js/ea2d43a7.145f6ac8.js create mode 100644 assets/js/eada822e.84b93f83.js create mode 100644 assets/js/eb5289e7.985df9b6.js create mode 100644 assets/js/ed636e79.4620f219.js create mode 100644 assets/js/f45adc36.f320f2e5.js create mode 100644 assets/js/f7cded51.263cc2b6.js create mode 100644 assets/js/f81c1134.ca482102.js create mode 100644 assets/js/f82cd581.2375f2e4.js create mode 100644 assets/js/f9843ad8.d183d465.js create mode 100644 assets/js/fa06e55d.76b52c14.js create mode 100644 assets/js/fada0ee8.9a60764b.js create mode 100644 assets/js/fdd6151e.573e6c1a.js create mode 100644 assets/js/main.14ec0da4.js create mode 100644 assets/js/main.14ec0da4.js.LICENSE.txt create mode 100644 assets/js/runtime~main.9aedee04.js create mode 100644 blog/2019-06-17-hello-reason-react-native/index.html create mode 100644 blog/2021-05-04-hello-rescript-react-native/index.html create mode 100644 blog/archive/index.html create mode 100644 blog/atom.xml create mode 100644 blog/index.html create mode 100644 blog/rss.xml create mode 100644 blog/tags/hello/index.html create mode 100644 blog/tags/index.html create mode 100644 blog/tags/reason/index.html create mode 100644 blog/tags/rescript/index.html create mode 100644 browserconfig.xml create mode 100644 docs/accessibilityinfo/index.html create mode 100644 docs/actionsheetios/index.html create mode 100644 docs/activityindicator/index.html create mode 100644 docs/alert/index.html create mode 100644 docs/animated/index.html create mode 100644 docs/animationframe/index.html create mode 100644 docs/apis/index.html create mode 100644 docs/appearance/index.html create mode 100644 docs/appregistry/index.html create mode 100644 docs/appstate/index.html create mode 100644 docs/asyncstorage/index.html create mode 100644 docs/backhandler/index.html create mode 100644 docs/button/index.html create mode 100644 docs/cheatsheet/index.html create mode 100644 docs/clipboard/index.html create mode 100644 docs/components/index.html create mode 100644 docs/datepickerandroid/index.html create mode 100644 docs/datepickerios/index.html create mode 100644 docs/devsettings/index.html create mode 100644 docs/dimensions/index.html create mode 100644 docs/drawerlayoutandroid/index.html create mode 100644 docs/dynamiccolorios/index.html create mode 100644 docs/easing/index.html create mode 100644 docs/event/index.html create mode 100644 docs/eventsubscription/index.html create mode 100644 docs/example/index.html create mode 100644 docs/flatlist/index.html create mode 100644 docs/geolocation/index.html create mode 100644 docs/global/index.html create mode 100644 docs/image/index.html create mode 100644 docs/imagebackground/index.html create mode 100644 docs/imageeditor/index.html create mode 100644 docs/imagepickerios/index.html create mode 100644 docs/index.html create mode 100644 docs/inputaccessoryview/index.html create mode 100644 docs/install/index.html create mode 100644 docs/interactionmanager/index.html create mode 100644 docs/keyboard/index.html create mode 100644 docs/keyboardavoidingview/index.html create mode 100644 docs/layoutanimation/index.html create mode 100644 docs/linking/index.html create mode 100644 docs/logbox/index.html create mode 100644 docs/maskedviewios/index.html create mode 100644 docs/modal/index.html create mode 100644 docs/nativeeventemitter/index.html create mode 100644 docs/nativemodules/index.html create mode 100644 docs/netinfo/index.html create mode 100644 docs/packager/index.html create mode 100644 docs/panresponder/index.html create mode 100644 docs/permissionsandroid/index.html create mode 100644 docs/picker/index.html create mode 100644 docs/pixelratio/index.html create mode 100644 docs/platform/index.html create mode 100644 docs/platformcolor/index.html create mode 100644 docs/pressable/index.html create mode 100644 docs/progressbarandroid/index.html create mode 100644 docs/progressviewios/index.html create mode 100644 docs/pushnotificationios/index.html create mode 100644 docs/refreshcontrol/index.html create mode 100644 docs/safeareaview/index.html create mode 100644 docs/scrollview/index.html create mode 100644 docs/sectionlist/index.html create mode 100644 docs/segmentedcontrolios/index.html create mode 100644 docs/settings/index.html create mode 100644 docs/share/index.html create mode 100644 docs/slider/index.html create mode 100644 docs/snapshotviewios/index.html create mode 100644 docs/soundmanager/index.html create mode 100644 docs/statusbar/index.html create mode 100644 docs/style/index.html create mode 100644 docs/stylesheet/index.html create mode 100644 docs/switch/index.html create mode 100644 docs/text/index.html create mode 100644 docs/textinput/index.html create mode 100644 docs/timepickerandroid/index.html create mode 100644 docs/toastandroid/index.html create mode 100644 docs/toolbarandroid/index.html create mode 100644 docs/touchablehighlight/index.html create mode 100644 docs/touchablenativefeedback/index.html create mode 100644 docs/touchableopacity/index.html create mode 100644 docs/touchablewithoutfeedback/index.html create mode 100644 docs/uimanager/index.html create mode 100644 docs/usage/index.html create mode 100644 docs/vibration/index.html create mode 100644 docs/view/index.html create mode 100644 docs/viewpagerandroid/index.html create mode 100644 docs/virtualizedlist/index.html create mode 100644 docs/virtualizedsectionlist/index.html create mode 100644 docs/webview/index.html create mode 100644 docs/yellowbox/index.html create mode 100644 favicon-16x16.png create mode 100644 favicon-32x32.png create mode 100644 favicon.ico create mode 100644 home/react-native-and-more.svg create mode 100644 home/rescript.svg create mode 100644 home/safe.svg create mode 100644 index.html create mode 100644 mstile-150x150.png create mode 100644 opensearch.xml create mode 100644 safari-pinned-tab.svg create mode 100644 schemas/introduction.svg create mode 100644 search/index.html create mode 100644 site.webmanifest create mode 100644 sitemap.xml create mode 100644 usage/vscode-alert.png diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..791f5bb --- /dev/null +++ b/404.html @@ -0,0 +1,22 @@ + + + + + +Page Not Found | ReScript React Native + + + + + + + + + + + + + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + \ No newline at end of file diff --git a/ReScriptReactNative.svg b/ReScriptReactNative.svg new file mode 100644 index 0000000..5dd4658 --- /dev/null +++ b/ReScriptReactNative.svg @@ -0,0 +1,4 @@ + + + + diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..76618cd35aa655af32039ad432dcd7878e60cac8 GIT binary patch literal 6910 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 literal 0 HcmV?d00001 diff --git a/android-chrome-512x512.png b/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..b691590ee81207d89c207f625c907ee7e8588d31 GIT binary patch literal 21813 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,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}:root,html[data-theme=dark]{--docsearch-error-color:#ef5350;--shimmer-bg:linear-gradient(90deg,#e0e3e8 0%,var(--docsearch-muted-color) 20%,var(--docsearch-muted-color) 60%,#e0e3e8 95%);--docsearch-dropdown-menu-background:var(--docsearch-hit-background);--docsearch-dropdown-menu-item-hover-background:var(--docsearch-modal-background)}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Footer,.DocSearch-Markdown-Content hr{border-block-start:1px solid var(--docsearch-subtle-color)}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#06b1e0;--ifm-color-primary-dark:#059dc7;--ifm-color-primary-darker:#0489ae;--ifm-color-primary-darkest:#047695;--ifm-color-primary-light:#53adc6;--ifm-color-primary-lighter:#6bb3c7;--ifm-color-primary-lightest:#7ebdce;--ifm-code-font-size:95%}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.DocSearch-Escape-Key,.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.dropdown__link--active,.dropdown__link:hover,.menu__link:hover,.navbar__brand:hover,.navbar__link--active,.navbar__link:hover,.pagination-nav__link:hover,.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.logoBackground_iEgH,.navbar__item.dropdown .navbar__link:not([href]),.shimmer{pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color)}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color)}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color)}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color)}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:1rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover)}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#c4c7dc;--docsearch-secondary-text-color:#b6b7d5;--docsearch-subtle-color:#212139;--docsearch-success-color:#43a04733;--docsearch-highlight-color:#457aff;--docsearch-focus-color:#9ac8ff;--docsearch-background-color:#36395a;--docsearch-icon-color:#b6b7d5;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#000000a6;--docsearch-searchbox-focus-background:#000000a6;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-background:#36395a;--docsearch-key-color:#b6b7d5;--docsearch-key-pressed-shadow:inset 0 2px 4px #0c0d1466;--docsearch-footer-background:#000000a6;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497;--docsearch-search-button-background:var(--docsearch-modal-background);--docsearch-search-button-text-color:var(--docsearch-text-color)}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.docusaurus-highlight-code-line{background-color:#484d5b;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.footer__bottom{font-size:14px;margin-top:60px;opacity:.75}article .component-grid{margin-bottom:22px;max-width:800px}article .component-grid .component{border:1px solid var(--ifm-color-emphasis-500);border-radius:var(--ifm-global-radius);display:inline-block;margin:0 auto 24px;overflow:hidden;transition:transform .2s ease-in-out;width:100%}article .component-grid .component:hover{transform:scale(1.05)}article .component-grid h3{background-color:var(--ifm-color-primary);color:#fff;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 10px}article .component-grid h3 a{color:#fff}article .component-grid p{font-size:15px;margin:2px;padding:10px}article .component-grid code{font-size:15px;padding:0 1px}html[data-theme=dark] .component{border:1px solid var(--ifm-color-emphasis-200)}@supports (display:grid){article .component-grid{display:grid;grid-column-gap:22px}}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.themedComponent_mlkZ,.toggleIcon_g3eP,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}[data-theme-choice=dark] .darkToggleIcon_wfgR,[data-theme-choice=light] .lightToggleIcon_pyhR,[data-theme-choice=system] .systemToggleIcon_QzmC,[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}:root{--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#003dff;--docsearch-soft-primary-color:#003dff1a;--docsearch-subtle-color:#d6d6e7;--docsearch-text-color:#36395a;--docsearch-success-color:#e8f5e9;--docsearch-secondary-text-color:#5a5e9a;--docsearch-background-color:#f5f5fa;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-focus-color:#005fcc;--docsearch-highlight-color:#003dff;--docsearch-muted-color:#9698c3;--docsearch-muted-color-darker:#787aa540;--docsearch-icon-color:#5a5e9a;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#003dff;--docsearch-border-radius:4px;--docsearch-search-button-background:#fff;--docsearch-search-button-text-color:var(--docsearch-secondary-text-color);--docsearch-modal-width:800px;--docsearch-modal-height:600px;--docsearch-modal-variable-height:60dvh;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:#0003 0px 12px 28px 0px,#0000001a 0px 2px 4px 0px,#ffffff0d 0px 0px 0px 1px inset;--docsearch-searchbox-height:56px;--docsearch-searchbox-initial-height:56px;--docsearch-searchbox-background:#ffffffa6;--docsearch-searchbox-focus-background:#ffffffa6;--docsearch-actions-width:99px;--docsearch-actions-height:44px;--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-highlight-color:#003dff1a;--docsearch-hit-background:#fff;--docsearch-key-background:#f5f5fa;--docsearch-key-color:#5a5e9a;--docsearch-key-pressed-shadow:inset 0 2px 4px #787aa540;--docsearch-footer-height:52px;--docsearch-footer-background:#ffffffa6;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--fav-out-dur:160ms;--del-dur:150ms;--ease-smooth:cubic-bezier(0.25,0.8,0.4,1);--ease-fast:cubic-bezier(0.45,0.15,0.6,0.9);--shadow-pop:0 4px 12px #0000000f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-blog-social-icon-size:1rem;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.categoryLinkLabel_W154,.linkLabel_WmDU{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_J0Sd{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.linkLabel_WmDU{line-clamp:2;-webkit-line-clamp:2}.categoryLink_byQd{overflow:hidden}.menu__link--sublist-caret:after{margin-left:var(--ifm-menu-link-padding-vertical)}.categoryLinkLabel_W154{flex:1;line-clamp:2;-webkit-line-clamp:2}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.DocSearch-Button{all:unset;align-items:center;background-color:var(--docsearch-search-button-background);border:1px solid var(--docsearch-subtle-color);border-radius:.5rem;color:var(--docsearch-search-button-text-color);cursor:pointer;display:flex;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button-Container{align-items:center;display:flex;height:100%}.DocSearch-Button-Container svg{color:currentColor}.DocSearch-Back-Icon,.DocSearch-Search-Icon{color:var(--docsearch-highlight-color);stroke-width:1.6}.DocSearch-Action,.DocSearch-AskAi-Return,.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button-Placeholder{color:currentColor;display:inline-block;font-size:1rem;line-height:normal;padding-block:0;padding-inline:8px 12px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-background);border:0;border-radius:4px;box-shadow:none!important;color:var(--docsearch-key-color);display:flex;font-family:system-ui,-apple-system,sans-serif;font-size:14px;height:24px;justify-content:center;position:relative;transition-duration:.1s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:24px}.DocSearch-Link,.DocSearch-SearchBar-Magnifier{color:var(--docsearch-highlight-color)}@supports (color:color-mix(in lch,red,blue)){.DocSearch-Button-Key{border:1px solid color-mix(in srgb,var(--docsearch-subtle-color) 20%,#0000)}}.DocSearch-Button-Key--ctrl{width:33px}.DocSearch-Button-Key:first-child{margin-inline-end:.4em}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow)!important;transform:translateY(1px)}.DocSearch--active{overflow:hidden!important}.DocSearch-Hit-AskAIButton-title,.DocSearch-Hit-content-wrapper,.DocSearch-Input{overflow-x:hidden;text-overflow:ellipsis}.DocSearch-Container{backdrop-filter:blur(4px);background-color:var(--docsearch-container-background);height:100vh;inset-block-start:0;inset-inline-start:0;position:fixed;width:100vw;z-index:400}.DocSearch-Form,.DocSearch-Hit,.DocSearch-Modal{display:flex;position:relative}.DocSearch-Container a,.DocSearch-Hit-AskAIButton-title mark,.sidebarItemLink_mo7H:hover{-webkit-text-decoration:none;text-decoration:none}.DocSearch-Hit mark,.DocSearch-Markdown-Content a:hover,.DocSearch-Prefill:focus,.DocSearch-Prefill:hover,.DocSearch-ThreadDepthError-Link{-webkit-text-decoration:underline;text-decoration:underline}.DocSearch-Link{appearance:none;background:none;border:0;cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:4px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width)}.DocSearch-Logo a,.DocSearch-Menu-content.open,.DocSearch-SearchBar,.searchLogoColumn_rJIA a{display:flex}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-block-end:1px solid var(--docsearch-subtle-color);border-radius:4px 4px 0 0;height:var(--docsearch-searchbox-height,var(--docsearch-searchbox-initial-height));margin:0;min-height:var(--docsearch-searchbox-initial-height);padding-block:var(--docsearch-spacing);padding-inline:16px;width:100%}.DocSearch-Input,.DocSearch-Modal-heading{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1 1 0%;font:inherit;font-size:1.2em;font-weight:300;height:100%;line-height:1.4;min-width:0;outline:0;overflow-y:hidden;padding-block-start:0;padding-inline-start:8px;resize:none}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-Actions{align-items:center;display:flex;flex:0 0 auto;gap:8px;height:var(--docsearch-actions-height);justify-content:flex-end;padding:0 2px;width:auto}.DocSearch-Divider{border-inline-start:1px solid var(--docsearch-subtle-color);height:16px}.DocSearch-Action{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center;min-height:24px;min-width:24px}.DocSearch-Action,.DocSearch-AskAi-Return,.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel{margin:0;padding:0}.DocSearch-AskAi-Return,.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Action,.DocSearch-AskAi-Return{animation:.1s ease-in forwards a;appearance:none;background:none;border:none;border-radius:var(--docsearch-border-radius);color:var(--docsearch-icon-color);cursor:pointer;inset-inline-end:0;padding:2px}.DocSearch-AskAi-Return[hidden],.DocSearch-Close[hidden],.DocSearch-Input[hidden],.DocSearch-StreamingIndicator[hidden],svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Action:hover,.DocSearch-AskAi-Return:hover{background:var(--docsearch-soft-primary-color);color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{color:var(--docsearch-icon-color);height:24px;width:24px}.DocSearch-Clear,.DocSearch-Form:focus-within .DocSearch-MagnifierLabel svg{color:var(--docsearch-highlight-color)}.DocSearch-Clear{appearance:none;background:none;border:0;cursor:pointer;flex:none;font:inherit;font-size:.9em;font-weight:300;height:28px;margin-inline-start:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Clear:focus-visible,.DocSearch-Close:focus-visible{border-radius:4px;outline:2px solid var(--docsearch-focus-color);outline-offset:1px}.DocSearch-Dropdown{height:var(--docsearch-modal-variable-height);max-height:calc(var(--docsearch-modal-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown-Container ul{list-style:none;margin:0;padding:0}.DocSearch-Label{color:var(--docsearch-secondary-text-color);font-size:.875em;font-weight:400;line-height:1.6em}.DocSearch-Help,.DocSearch-NoResults-Help{color:var(--docsearch-secondary-text-color);font-size:.8em;font-weight:300;line-height:1.5em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{color:var(--docsearch-text-color);font-size:1.1em;font-weight:300;line-height:1.5em;vertical-align:middle}.DocSearch-Title strong{font-weight:500}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-inline-start:8px}.DocSearch-Hits:last-of-type{margin-block-end:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-block-end:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-block-end:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;padding-block-end:4px;scroll-margin-block-start:40px}.DocSearch-Hit:first-of-type{margin-block-start:4px}.DocSearch-Hit a,.DocSearch-Hit--AskAI{background:var(--docsearch-hit-background);border-radius:4px;cursor:pointer;display:block;padding-inline-start:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-text-color);font-size:.9em;font-weight:600;inset-block-start:0;line-height:32px;margin:0 -4px;padding:8px 4px 4px;position:sticky;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit-Container,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title{color:var(--docsearch-text-color)}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit--AskAI,.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-hit-highlight-color)}.DocSearch-Conversation-History .DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-hit-background)}.DocSearch-Hit mark{color:var(--docsearch-highlight-color);text-underline-offset:.3em}.DocSearch-Hit-Container{align-items:center;display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{color:var(--docsearch-secondary-text-color);height:20px;width:20px}.DocSearch-Hit-action{align-items:center;color:var(--docsearch-muted-color);display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-inline-start:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon,.tocCollapsibleContent_vkbj a{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:400;gap:4px;justify-content:center;line-height:1.2em;margin:0 8px;position:relative;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-secondary-text-color);font-size:.75em}.DocSearch-AskAiScreen-MessageContent-Tool-Query:hover svg,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-highlight-color)}.DocSearch-AskAiScreen,.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{align-items:center;color:var(--docsearch-secondary-text-color);display:flex;flex-direction:column;font-size:1.25em;font-weight:400;justify-content:center;margin:0 auto;text-align:center;width:80%}.DocSearch-AskAiScreen,.DocSearch-ErrorScreen,.DocSearch-NoResults{max-height:80%}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.DocSearch-StartScreen,body,html{height:100%}.DocSearch-NoResults{gap:.8em;margin-block-start:2em}.DocSearch-NoResults--withAskAi{justify-content:flex-start;margin-block-start:0}.DocSearch-AskAiScreen,.DocSearch-ErrorScreen,.DocSearch-StartScreen{gap:24px}.DocSearch-StartScreen-Icon{height:64px;stroke:var(--docsearch-icon-color);width:64px}.DocSearch-AskAiScreen-MessageContent-Reasoning svg,.DocSearch-Screen-Icon{color:var(--docsearch-icon-color)}.DocSearch-NoResults-Prefill-List{display:flex;flex-direction:column;gap:12px;text-align:center}.DocSearch-NoResults-Prefill-List-Items{display:flex;flex-direction:column;gap:2px}.DocSearch-NoResults-Prefill-List-Items p{align-items:center;display:flex;margin:0;text-align:start}.DocSearch-Prefill{align-items:center;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-flex;font-size:.8em;font-weight:300;gap:4px;height:40px;padding:0 4px}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 4px 4px;display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;gap:16px;list-style:none;margin:0;padding:0}.DocSearch-Commands li,.DocSearch-Commands-Key,.buttons_pzbO,.features_keug{align-items:center;display:flex}.DocSearch-Commands-Key{background-color:var(--docsearch-background-color);border:0;border-radius:2px;box-shadow:none!important;color:var(--docsearch-icon-color);height:24px;justify-content:center;margin-inline-end:4px;width:24px}.DocSearch-Commands-Key:last-of-type{margin-inline-end:8px}.DocSearch-Escape-Key{font-size:10px;font-weight:300;letter-spacing:normal;line-height:16px;text-align:center}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.DocSearch-AskAi-Section{display:flex;flex-direction:column;gap:8px;padding:12px 0}.DocSearch-Hit-AskAIButton{align-items:center;color:var(--docsearch-text-color);display:flex;flex-direction:row}.DocSearch-Hit-AskAIButton-icon{color:var(--docsearch-icon-color);flex-shrink:0;margin-inline-end:12px}.DocSearch-Hit-AskAIButton-title{color:var(--docsearch-hit-color);display:flex;flex:1 1 auto;font-weight:400;gap:4px;position:relative;white-space:nowrap;width:80%}.DocSearch-Hit-AskAIButton-title-query{background:none;margin-inline-start:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes a{0%{opacity:0}to{opacity:1}}.DocSearch-AskAiScreen-Container{display:flex;flex-direction:column;gap:0;height:100%;justify-content:flex-start;padding:0;text-align:start;width:100%}.DocSearch-AskAiScreen-Disclaimer{align-self:flex-start;display:flex;font-size:.6em;font-weight:300;margin:0;padding-block:1.5em .5em;padding-inline:0;text-align:start}.DocSearch-AskAiScreen-Body{gap:24px;width:100%}.DocSearch-AskAiScreen-Body,.DocSearch-AskAiScreen-Response,.DocSearch-AskAiScreen-Response-Container{display:flex;flex-direction:column}.DocSearch-AskAiScreen-Response{align-self:flex-start;background:var(--docsearch-hit-background);border-radius:4px;color:var(--docsearch-text-color);font-size:.8em;gap:1em;margin-block-end:8px;padding:24px;width:100%}.DocSearch-AskAiScreen-Query{font-size:1.25em;font-weight:600;line-break:loose;line-height:1.4;margin:0}.DocSearch-AskAiScreen-Answer{line-height:1.5}.DocSearch-AskAiScreen-Answer,.DocSearch-AskAiScreen-ThinkingDots{color:var(--docsearch-secondary-text-color);font-weight:400;margin:0}.DocSearch-AskAiScreen-Error,.DocSearch-AskAiScreen-Error .DocSearch-Markdown-Content{color:var(--docsearch-error-color)}.DocSearch-AskAiScreen-ThinkingDots{font-size:.8em}.DocSearch-AskAiScreen-Answer-Footer{align-items:center;display:flex;flex-direction:row;gap:8px;justify-content:space-between}.DocSearch-AskAiScreen-Actions{align-items:center;display:flex;flex-direction:row;gap:12px;margin-inline-start:auto}.DocSearch-AskAiScreen-ActionButton{align-items:center;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;justify-content:center;margin:0;padding:4px;transition:background-color .2s;width:24px}.DocSearch-AskAiScreen-ActionButton:hover,.DocSearch-AskAiScreen-RelatedSources-Item-Link:hover{background:var(--docsearch-hit-highlight-color)}.DocSearch-AskAiScreen-ActionButton svg{color:var(--docsearch-icon-color);height:20px;stroke-width:1.5;width:20px}.DocSearch-AskAiScreen-CopyButton--copied{background-color:var(--docsearch-success-color);cursor:default}.DocSearch-AskAiScreen-MessageContent{display:flex;flex-direction:column;row-gap:1em}.DocSearch-AskAiScreen-Error{background-color:#ef53501a;border-radius:4px;flex-direction:row;font-size:1em;font-weight:400;gap:8px;padding:1em}.DocSearch-AskAiScreen-Error svg{margin-top:.25rem}.DocSearch-AskAiScreen-Error svg,.DocSearch-AskAiScreen-MessageContent-Tool svg{flex-shrink:0;height:16px;width:16px}.DocSearch-AskAiScreen-Error p{margin:0}.DocSearch-AskAiScreen-Error-Content{display:flex;flex:1 1 0%;flex-direction:column}.DocSearch-AskAiScreen-Error-Title{font-weight:700;margin-bottom:4px}.DocSearch-AskAiScreen-Error--ThreadDepth{animation:.3s ease-out b;border:1px solid #febdc5;color:var(--docsearch-text-color);font-size:12px;margin:12px 0 8px;width:100%}.DocSearch-AskAiScreen-Error--ThreadDepth .DocSearch-AskAiScreen-Error-Title{margin-bottom:6px}@keyframes b{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.DocSearch-ThreadDepthError-Link{background:none;border:none;color:var(--docsearch-highlight-color);cursor:pointer;font-family:inherit;font-size:inherit;padding:0}.DocSearch-AskAiScreen-RelatedSources-Item-Link,.DocSearch-Markdown-Content a,.tag_zVej:hover{-webkit-text-decoration:none;text-decoration:none}.DocSearch-CodeSnippet-CopyButton:hover,.DocSearch-ThreadDepthError-Link:hover,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.DocSearch-ThreadDepthError-Link:active{color:#991b1b}.DocSearch-AskAiScreen-FeedbackText{color:var(--docsearch-muted-color);font-size:.7em;font-weight:400;margin:0}.DocSearch-AskAiScreen-FeedbackText--visible{animation:.3s ease-in forwards a}.DocSearch-AskAiScreen-RelatedSources{display:flex;flex-direction:column;gap:4px;width:100%}.DocSearch-AskAiScreen-RelatedSources-List{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;width:100%}.DocSearch-AskAiScreen-RelatedSources-Title{color:var(--docsearch-secondary-text-color);font-size:.7em;font-weight:400;margin:0;padding:6px 0}.DocSearch-AskAiScreen-RelatedSources-NoResults{color:var(--docsearch-text-color);font-size:.8rem;font-weight:400;margin:0}.DocSearch-AskAiScreen-RelatedSources-Error{color:var(--docsearch-error-color);font-size:.8rem;font-weight:400;margin:0}.DocSearch-AskAiScreen-RelatedSources-Item-Link{align-items:center;background:var(--docsearch-hit-background);border-radius:4px;color:var(--docsearch-text-color);display:flex;font-size:.75em;gap:6px;max-width:70%;padding:12px 8px;transition:background-color .2s}.DocSearch-AskAiScreen-RelatedSources-Item-Link svg{color:var(--docsearch-icon-color);flex-shrink:0;stroke-width:1.2}.DocSearch-AskAiScreen-RelatedSources-Item-Link span{flex:1 1 0;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.DocSearch-AskAiScreen-ExchangesList{display:flex;flex-direction:column;gap:24px;margin:8px 0}.DocSearch-Markdown-Content{color:var(--docsearch-text-color);font-size:.9355em;line-height:1.6;word-wrap:break-word}.DocSearch-Markdown-Content--streaming{animation:.3s ease-in-out both a}.DocSearch-Markdown-Content p{margin:1em 0}.DocSearch-Markdown-Content p:last-child{margin-block-end:0}.DocSearch-Markdown-Content p:first-child{margin-block-start:0}.DocSearch-Markdown-Content code{border-radius:3px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.9em;letter-spacing:normal;margin:0;padding:.2em 0}.DocSearch-Markdown-Content code,.DocSearch-Markdown-Content pre{background-color:var(--docsearch-key-background);color:var(--docsearch-text-color)}.DocSearch-Markdown-Content pre{border-radius:6px;margin:1.5em 0;overflow-x:auto;padding:1.2em}.DocSearch-Markdown-Content pre code{background-color:initial;border-radius:0;color:inherit;font-size:.8em;margin:0;padding:0;white-space:pre-wrap;word-wrap:break-word;line-height:1.5}.DocSearch-Markdown-Content h1,.DocSearch-Markdown-Content h2,.DocSearch-Markdown-Content h3,.DocSearch-Markdown-Content h4,.DocSearch-Markdown-Content h5,.DocSearch-Markdown-Content h6{color:var(--docsearch-text-color);font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:1em 0}.DocSearch-Markdown-Content h1{font-size:1.5em}.DocSearch-Markdown-Content h2{font-size:1.2em}.DocSearch-Markdown-Content h3{font-size:1em}.DocSearch-Markdown-Content h4{font-size:.9em}.DocSearch-Markdown-Content h5,.DocSearch-Markdown-Content h6{font-size:.8em}.DocSearch-Markdown-Content ol,.DocSearch-Markdown-Content ul{color:var(--docsearch-text-color);margin:1.2em 0;padding-inline-start:1.5em}.DocSearch-Markdown-Content ul{list-style-type:disc}.DocSearch-Markdown-Content ol{list-style-type:decimal}.DocSearch-Markdown-Content li{color:var(--docsearch-text-color);line-height:1.6;margin:.8em 0;padding-inline-start:.3em}.DocSearch-Markdown-Content li>ol,.DocSearch-Markdown-Content li>ul{margin:.5em}.DocSearch-Markdown-Content li::marker{color:var(--docsearch-muted-color)}.DocSearch-Markdown-Content a{color:var(--docsearch-highlight-color);transition:.2s}.DocSearch-Markdown-Content a:hover{opacity:.9}.DocSearch-Markdown-Content blockquote{border-inline-start:4px solid var(--docsearch-hit-highlight-color);color:var(--docsearch-secondary-text-color);font-style:italic;margin:1.5em 0;padding-block:.5em;padding-inline:1em 0}.DocSearch-Markdown-Content hr{border:none;margin:1em 0}.DocSearch-Markdown-Content table{border-collapse:collapse;margin:1.5em 0;width:100%}.DocSearch-Markdown-Content td,.DocSearch-Markdown-Content th{border:1px solid var(--docsearch-subtle-color);padding:.75em;text-align:start}.DocSearch-Markdown-Content th{background-color:var(--docsearch-hit-background);font-weight:600}.DocSearch-AskAiScreen-MessageContent-Reasoning{align-items:center;color:var(--docsearch-muted-color);display:flex;font-size:1em;gap:4px}.DocSearch-AskAiScreen-MessageContent-Tool{align-items:center;color:var(--docsearch-muted-color);display:flex;line-height:1.2;width:100%}.DocSearch-AskAiScreen-MessageContent-Tool.Tool--Result{padding-block-start:0}.DocSearch-AskAiScreen-MessageContent-Tool>svg{color:var(--docsearch-icon-color);margin-inline-end:8px}.DocSearch-AskAiScreen-MessageContent-Tool-Query{color:var(--docsearch-muted-color);transition:box-shadow .2s}.DocSearch-AskAiScreen-MessageContent-Tool-Query svg{color:var(--docsearch-muted-color)}.DocSearch-AskAiScreen-MessageContent-Tool-Query:hover{box-shadow:0 1px 0 0 var(--docsearch-highlight-color);color:var(--docsearch-highlight-color);cursor:pointer}.DocSearck-AskAiScreen-MessageContent-Stopped{color:var(--docsearch-muted-color);font-style:italic;margin-block-start:1em}.DocSearch-AskAiScreen-SmallerLoadingIcon{height:16px;width:16px}.shimmer{background:var(--shimmer-bg);background-clip:text;-webkit-background-clip:text;background-size:200% auto;color:#0000;display:flex;-webkit-text-fill-color:#0000;animation:2.5s linear infinite c}@keyframes c{0%{background-position:200% 0}to{background-position:-200% 0}}.DocSearch-CodeSnippet,.DocSearch-Menu{position:relative}.DocSearch-CodeSnippet-CopyButton{align-items:center;background:var(--docsearch-key-background);border:none;border-radius:4px;color:var(--docsearch-text-color);cursor:pointer;display:flex;font-size:.75em;inset-block-start:8px;inset-inline-end:8px;padding:.2em .6em;position:absolute;transition:opacity .2s}.DocSearch-CodeSnippet-CopyButton:active{opacity:.6}.DocSearch-CodeSnippet-CopyButton svg{height:16px;margin-inline-end:4px;width:16px}.DocSearch-CodeSnippet-CheckIcon,.DocSearch-CodeSnippet-CopyButton--copied .DocSearch-CodeSnippet-CopyIcon,.DocSearch-Markdown-Content--streaming .DocSearch-CodeSnippet-CopyButton{display:none}.DocSearch-CodeSnippet-CopyButton--copied .DocSearch-CodeSnippet-CheckIcon{display:inline-block}.DocSearch-NewConversationScreen{padding:3em var(--docsearch-spacing)}.DocSearch-NewConversationScreen-Title{color:var(--docsearch-text-color);font-size:26px;font-weight:600;margin-block-end:.15em}.DocSearch-NewConversationScreen-Description{color:var(--docsearch-muted-color);font-size:14px}.DocSearch-NewConversationScreen-SuggestedQuestions{align-items:start;display:flex;flex-direction:column;gap:var(--docsearch-spacing);margin-block-start:1.5em}.DocSearch-NewConversationScreen-SuggestedQuestion{align-items:center;background-color:var(--docsearch-searchbox-background);border:1px solid var(--docsearch-subtle-color);border-radius:var(--docsearch-border-radius);color:var(--docsearch-text-color);cursor:pointer;display:inline-flex;height:40px;justify-content:center;padding:12px}.DocSearch-Menu-content{background-color:var(--docsearch-dropdown-menu-background);border-radius:var(--docsearch-border-radius);box-shadow:0 0 0 1px #21243d0d,0 8px 16px -4px #21243d40;display:none;flex-direction:column;inset-block-start:calc(100% + 12px);inset-inline-end:0;min-width:195px;padding:8px 0;position:absolute;z-index:422}.DocSearch-Menu-item{align-items:center;background-color:initial;border:0;color:var(--docsearch-text-color);cursor:pointer;display:flex;font-size:14px;gap:8px;padding:10px 16px;white-space:nowrap}.DocSearch-Menu-item:hover{background-color:var(--docsearch-dropdown-menu-item-hover-background)}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.DocSearch-Button-Key,.codeBlockStandalone_MEMb{padding:0}.anchorTargetStickyNavbar_Vzrq{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorTargetHideOnScrollNavbar_vjPI{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.yearGroupHeading_rMGB{margin-bottom:.4rem;margin-top:1.6rem}.yearGroupHeading_QT03{margin:1rem .75rem .5rem}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.searchLogoColumn_rJIA{align-items:center;display:flex;gap:.5rem;justify-content:flex-end}.searchLogoColumn_rJIA span{color:var(--docsearch-muted-color);font-weight:400}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{color:var(--ifm-color-content-secondary);font-size:.8rem;--ifm-breadcrumb-separator-size-multiplier:1}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite d;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}.authorSocialIcon_XYv3,.authorSocialLink_owbf,.authorSocials_rSDt{height:var(--docusaurus-blog-social-icon-size)}.authorSocialIcon_XYv3,.authorSocialLink_owbf{width:var(--docusaurus-blog-social-icon-size)}@keyframes d{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}[data-theme=dark] .blueskySvg_AzZw,[data-theme=dark] .githubSvg_Uu4N,[data-theme=dark] .instagramSvg_YC40,[data-theme=dark] .linkedinSvg_FCgI,[data-theme=dark] .threadsSvg_PTXY,[data-theme=dark] .xSvg_y3PF{fill:var(--light)}[data-theme=light] .blueskySvg_AzZw,[data-theme=light] .githubSvg_Uu4N,[data-theme=light] .instagramSvg_YC40,[data-theme=light] .linkedinSvg_FCgI,[data-theme=light] .threadsSvg_PTXY,[data-theme=light] .xSvg_y3PF{fill:var(--dark)}.authorSocials_rSDt{align-items:center;display:flex;flex-wrap:wrap;line-clamp:1;-webkit-line-clamp:1;overflow:hidden;-webkit-box-orient:vertical}.authorSocialLink_owbf,.authorSocials_rSDt{line-height:0}.authorSocialLink_owbf{margin-right:.4rem}.authorImage_XqGP{--ifm-avatar-photo-size:3.6rem}.author-as-h1_n9oJ .authorImage_XqGP{--ifm-avatar-photo-size:7rem}.author-as-h2_gXvM .authorImage_XqGP{--ifm-avatar-photo-size:5.4rem}.authorDetails_lV9A{align-items:flex-start;display:flex;flex-direction:column;justify-content:space-around}.authorName_yefp{display:flex;flex-direction:row;font-size:1.1rem;line-height:1.1rem}.author-as-h1_n9oJ .authorName_yefp{display:inline;font-size:2.4rem;line-height:2.4rem}.author-as-h2_gXvM .authorName_yefp{display:inline;font-size:1.4rem;line-height:1.4rem}.authorTitle_nd0D{display:-webkit-box;font-size:.8rem;line-clamp:1;-webkit-line-clamp:1;line-height:1rem;overflow:hidden;-webkit-box-orient:vertical}.author-as-h1_n9oJ .authorTitle_nd0D{font-size:1.2rem;line-height:1.6rem}.author-as-h2_gXvM .authorTitle_nd0D{font-size:1rem;line-height:1.3rem}.authorBlogPostCount_iiJ5{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.8rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.buttonGroup_M5ko button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.authorCol_Hf19{max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.heroBanner_UJJx{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.logoBackground_iEgH{left:10%;opacity:.15;position:absolute;top:10%}.buttons_pzbO{justify-content:center}.features_keug{padding:2rem 0;width:100%}.featureImage_yA8i{height:128px;width:128px}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:line-count;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(line-count);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_Vdqa{opacity:1!important}.copyButtonIcons_IEyt{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_TrPX,.copyButtonSuccessIcon_cVMy{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_cVMy{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_Vdqa .copyButtonIcon_TrPX{opacity:0;transform:scale(.33)}.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_b1P5{height:1.2rem;width:1.2rem}.buttonGroup_M5ko{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_M5ko button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup_M5ko button:focus-visible,.buttonGroup_M5ko button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_M5ko button{opacity:.4}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.codeBlockContent_QJqH{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_OeMC{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockTitle_OeMC+.codeBlockContent_QJqH .codeBlock_a8dz{border-top-left-radius:0;border-top-right-radius:0}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;fill:var(--ifm-alert-foreground-color);height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}@media only screen and (min-width:768px){article .component-grid.component-grid-border{border-bottom:1px solid var(--ifm-table-border-color)}article .component{height:150px;margin:0 22px 22px auto;vertical-align:top;width:30%}@supports (display:grid){article .component-grid{grid-template-columns:repeat(2,1fr)}@media only screen and (min-width:1440px){article .component-grid{grid-template-columns:repeat(3,1fr)}}article .component{height:auto;margin:0;width:auto}}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.navbarSearchContainer_Bca1{padding:0 var(--ifm-navbar-item-padding-horizontal)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);-webkit-text-decoration:none!important;text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media only screen and (min-width:1440px){article .component-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block;width:max-content}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media screen and (max-width:966px){.heroBanner_UJJx{padding:2rem}}@media (max-width:768px){.DocSearch-Button{width:auto}.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:48px}.DocSearch-Input{font-size:1rem}.DocSearch-Hit-AskAIButton-icon{margin-inline-end:8px}body:has(.DocSearch-Container){overflow:hidden;position:fixed}.DocSearch-Dropdown{height:100%;max-height:none}.DocSearch-Container{height:calc(var(--docsearch-vh,1vh)*100);height:100dvh}.DocSearch-Footer{border-radius:0;inset-block-end:0;position:static}.DocSearch-Hit-content-wrapper{display:flex;overflow-wrap:break-word;position:relative;white-space:normal;width:80%}.DocSearch-Hit-Container{height:auto;min-height:var(--docsearch-hit-height);padding-block:8px}.DocSearch-Modal{border-radius:0;box-shadow:none;height:calc(var(--docsearch-vh,1vh)*100);height:100dvh;margin:0;max-width:100%;width:100%}.DocSearch-AskAiScreen-Response-Container{flex-direction:column}.DocSearch-AskAiScreen-RelatedSources,.DocSearch-AskAiScreen-Response{width:100%}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media (prefers-reduced-motion){.DocSearch-Button-Key{transition:none}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Action{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;inset-inline-end:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.noPrint_WFHX,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/images/introduction-f371744e623bab317b3bc3be11b60603.svg b/assets/images/introduction-f371744e623bab317b3bc3be11b60603.svg new file mode 100644 index 0000000..e343a90 --- /dev/null +++ b/assets/images/introduction-f371744e623bab317b3bc3be11b60603.svg @@ -0,0 +1,85 @@ + + + introduction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 📱 + + + 👩‍💻 + + + + + + + + + + + + + + + diff --git a/assets/images/vscode-alert-1a4e9aea9b7f3d273857fe682a83e4bb.png b/assets/images/vscode-alert-1a4e9aea9b7f3d273857fe682a83e4bb.png new file mode 100644 index 0000000000000000000000000000000000000000..1feeef1d40c70591c1f6ab6a1b836000ac501392 GIT binary patch literal 115076 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�lKPs2pIKorOU^E?TUy?r8w6X2;bdYBt-=XG@WZ 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 float.","sidebar":"api"},"event":{"id":"event","title":"Event","description":"These are the types of objects returned in event callbacks. Concrete aliases","sidebar":"api"},"eventsubscription":{"id":"eventsubscription","title":"EventSubscription","description":"Many React Native APIs return an EventSubscription from addEventListener /"},"example":{"id":"example","title":"Example","description":"As soon as you","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"Supports VirtualizedList props plus numColumns / columnWrapperStyle.","sidebar":"components"},"geolocation":{"id":"geolocation","title":"GeoLocation","description":"GeoLocation has been removed from React Native."},"global":{"id":"global","title":"Global","description":"This module contains various APIs & flags that are in JavaScript global scope.","sidebar":"api"},"image":{"id":"image","title":"Image","description":"Image.Source","sidebar":"components"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"Like Image, but accepts children. Uses the same source /","sidebar":"components"},"imageeditor":{"id":"imageeditor","title":"ImageEditor","description":"ImageEditor has been removed from React Native."},"imagepickerios":{"id":"imagepickerios","title":"ImagePickerIOS","description":"ImagePickerIOS was removed from React Native as part of the Lean Core effort"},"index":{"id":"index","title":"Getting Started","description":"ReScript React Native is a safe & simple way to build","sidebar":"docs"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"iOS-only accessory view above the keyboard.","sidebar":"components"},"install":{"id":"install","title":"Installation","description":"Depending on how you want to start with ReScript React Native, you have","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Schedule work to run after animations / interactions complete.","sidebar":"api"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Types","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"","sidebar":"components"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"LayoutAnimation API offers a simpler alternative to Animated API. Instead of","sidebar":"api"},"linking":{"id":"linking","title":"Linking","description":"Only for projects supporting Native Code. Requires the project to have been","sidebar":"api"},"logbox":{"id":"logbox","title":"LogBox","description":"Errors and warnings in development builds are displayed in LogBox inside your"},"maskedviewios":{"id":"maskedviewios","title":"MaskedViewIOS","description":"MaskedViewIOS has been deprecated and will be removed from React Native in the","sidebar":"components"},"modal":{"id":"modal","title":"Modal","description":"","sidebar":"components"},"nativeeventemitter":{"id":"nativeeventemitter","title":"NativeEventEmitter","description":""},"nativemodules":{"id":"nativemodules","title":"NativeModules","description":"Prefer binding your own modules explicitly:"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"NetInfo has been removed from React Native."},"packager":{"id":"packager","title":"Packager","description":"Packager.require","sidebar":"api"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder allows more fine-grained control of the","sidebar":"api"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"Android-only API for the runtime permissions model (Android M+). While certain","sidebar":"api"},"picker":{"id":"picker","title":"Picker","description":"Picker has been deprecated and will be removed from React Native in the"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"Methods","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Platform.os","sidebar":"api"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"Functions to access native colors on the target platform by supplying the native","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable is a Core Component wrapper that can detect various stages of press interactions on any of it\'s defined children.","sidebar":"components"},"progressbarandroid":{"id":"progressbarandroid","title":"ProgressBarAndroid","description":"ProgressBarAndroid has been deprecated and will be removed from React Native"},"progressviewios":{"id":"progressviewios","title":"ProgressViewIOS","description":"ProgressViewIOS has been deprecated and will be removed from React Native in"},"pushnotificationios":{"id":"pushnotificationios","title":"PushNotificationIOS","description":"PushNotificationIOS has been deprecated and will be removed from React Native"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"Used inside a ScrollView / list for pull-to-refresh.","sidebar":"components"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"Deprecated. Prefer","sidebar":"components"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"Methods","sidebar":"components"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"","sidebar":"components"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"SegmentedControlIOS","description":"SegmentedControlIOS has been deprecated and will be removed from React Native"},"settings":{"id":"settings","title":"Settings","description":"iOS-only persistent settings store.","sidebar":"api"},"share":{"id":"share","title":"Share","description":"Types","sidebar":"api"},"slider":{"id":"slider","title":"Slider","description":"Slider has been deprecated and will be removed from React Native in the"},"snapshotviewios":{"id":"snapshotviewios","title":"SnapshotViewIOS","description":"This component is no longer part of modern React Native /"},"soundmanager":{"id":"soundmanager","title":"SoundManager","description":"This module is no longer part of modern React Native / rescript-react-native"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"Component","sidebar":"components"},"style":{"id":"style","title":"Style","description":"Styles accepted by most components (thanks to a style prop) are defined using","sidebar":"api"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet mainly has a method to create an object containing many","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"","sidebar":"components"},"text":{"id":"text","title":"Text","description":"Example","sidebar":"components"},"textinput":{"id":"textinput","title":"TextInput","description":"Events include onChange, onEndEditing, onSubmitEditing,","sidebar":"components"},"timepickerandroid":{"id":"timepickerandroid","title":"TimePickerAndroid","description":"TimePickerAndroid has been removed from React Native."},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"Android-only toast messages.","sidebar":"api"},"toolbarandroid":{"id":"toolbarandroid","title":"ToolbarAndroid","description":"ToolbarAndroid has been removed from React Native."},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"Prefer Pressable for new code.","sidebar":"components"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"Android-only ripple touchable.","sidebar":"components"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"Prefer Pressable for new code.","sidebar":"components"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"Prefer Pressable for new code.","sidebar":"components"},"uimanager":{"id":"uimanager","title":"UIManager","description":"Popup menu constants (Android): UIManager.itemSelected, UIManager.dismissed."},"usage":{"id":"usage","title":"Usage","description":"When rescript, @rescript/react and rescript-react-native are installed, you","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"Types","sidebar":"api"},"view":{"id":"view","title":"View","description":"The most fundamental building block. Accepts layout / view style props via","sidebar":"components"},"viewpagerandroid":{"id":"viewpagerandroid","title":"ViewPagerAndroid","description":"ViewPagerAndroid has been removed from React Native."},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"Low-level list primitive. Prefer FlatList /","sidebar":"components"},"virtualizedsectionlist":{"id":"virtualizedsectionlist","title":"VirtualizedSectionList","description":"Low-level section list primitive behind SectionList."},"webview":{"id":"webview","title":"WebView","description":"WebView has been removed from React Native."},"yellowbox":{"id":"yellowbox","title":"YellowBox","description":"YellowBox has been replaced by LogBox. Prefer LogBox in"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.9acc3897.js b/assets/js/01a85c17.9acc3897.js new file mode 100644 index 0000000..c5f52ad --- /dev/null +++ b/assets/js/01a85c17.9acc3897.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrescript_react_native_github_io||=[]).push([[8209],{4096(e,t,a){a.d(t,{in:()=>c,OU:()=>y,Ki:()=>k,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>_});var s=a(6540),n=a(9532),i=a(6803),r=a(4848);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=s.createContext(null);function c({children:e,content:t,isBlogPostPage:a=!1}){const n=function({content:e,isBlogPostPage:t}){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:a});return(0,r.jsx)(o.Provider,{value:n,children:e})}function m(){const e=(0,s.useContext)(o);if(null===e)throw new n.dV("BlogPostProvider");return e}var d=a(6025),u=a(4586);const g=e=>new Date(e).toISOString();function h(e){const t=e.map(x);return{author:1===t.length?t[0]:t}}function p(e,t,a){return e?{image:j({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function b(e){const{siteConfig:t}=(0,u.A)(),{withBaseUrl:a}=(0,d.hH)(),{metadata:{blogDescription:s,blogTitle:n,permalink:i}}=e,r=`${t.url}${i}`;return{"@context":"https://schema.org","@type":"Blog","@id":r,mainEntityOfPage:r,headline:n,description:s,blogPost:e.items.map(e=>function(e,t,a){const{assets:s,frontMatter:n,metadata:i}=e,{date:r,title:l,description:o,lastUpdatedAt:c}=i,m=s.image??n.image,d=n.keywords??[],u=`${t.url}${i.permalink}`,b=c?g(c):void 0;return{"@type":"BlogPosting","@id":u,mainEntityOfPage:u,url:u,headline:l,name:l,description:o,datePublished:r,...b?{dateModified:b}:{},...h(i.authors),...p(m,a,l),...d?{keywords:d}:{}}}(e.content,t,a))}}function f(){const e=l(),{assets:t,metadata:a}=m(),{siteConfig:s}=(0,u.A)(),{withBaseUrl:n}=(0,d.hH)(),{date:i,title:r,description:o,frontMatter:c,lastUpdatedAt:b}=a,f=t.image??c.image,x=c.keywords??[],j=b?g(b):void 0,v=`${s.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":v,mainEntityOfPage:v,url:v,headline:r,name:r,description:o,datePublished:i,...j?{dateModified:j}:{},...h(a.authors),...p(f,n,r),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${s.url}${e.blogBasePath}`,name:e.blogTitle}}}function x(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function j({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}var v=a(612),N=a(8774),C=a(1682),A=a(9169);function _(e){const{pathname:t}=(0,v.zy)();return(0,s.useMemo)(()=>e.filter(e=>function(e,t){return!(e.unlisted&&!(0,A.ys)(e.permalink,t))}(e,t)),[e,t])}function k(e){const t=(0,C.$z)(e,e=>`${new Date(e.date).getFullYear()}`),a=Object.entries(t);return a.reverse(),a}function y({items:e,ulClassName:t,liClassName:a,linkClassName:s,linkActiveClassName:n}){return(0,r.jsx)("ul",{className:t,children:e.map(e=>(0,r.jsx)("li",{className:a,children:(0,r.jsx)(N.A,{isNavLink:!0,to:e.permalink,className:s,activeClassName:n,children:e.title})},e.permalink))})}},8027(e,t,a){a.d(t,{A:()=>U});var s=a(6540),n=a(4164),i=a(1732),r=a(4581),l=a(1312),o=a(4096),c=a(6342),m=a(4608),d=a(4848);function u({year:e,yearGroupHeadingClassName:t,children:a}){return(0,d.jsxs)("div",{role:"group",children:[(0,d.jsx)(m.A,{as:"h3",className:t,children:e}),a]})}function g({items:e,yearGroupHeadingClassName:t,ListComponent:a}){if((0,c.p)().blog.sidebar.groupByYear){const s=(0,o.Ki)(e);return(0,d.jsx)(d.Fragment,{children:s.map(([e,s])=>(0,d.jsx)(u,{year:e,yearGroupHeadingClassName:t,children:(0,d.jsx)(a,{items:s})},e))})}return(0,d.jsx)(a,{items:e})}const h=(0,s.memo)(g),p="sidebar_re4s",b="sidebarItemTitle_pO2u",f="sidebarItemList_Yudw",x="sidebarItem__DBe",j="sidebarItemLink_mo7H",v="sidebarItemLinkActive_I1ZP",N="yearGroupHeading_rMGB",C=({items:e})=>(0,d.jsx)(o.OU,{items:e,ulClassName:(0,n.A)(f,"clean-list"),liClassName:x,linkClassName:j,linkActiveClassName:v});function A({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,d.jsx)("aside",{className:"col col--3",children:(0,d.jsxs)("nav",{className:(0,n.A)(p,"thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,d.jsx)("div",{className:(0,n.A)(b,"margin-bottom--md"),children:e.title}),(0,d.jsx)(h,{items:t,ListComponent:C,yearGroupHeadingClassName:N})]})})}const _=(0,s.memo)(A);var k=a(5600);const y="yearGroupHeading_QT03",P=({items:e})=>(0,d.jsx)(o.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function B({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,d.jsx)(h,{items:t,ListComponent:P,yearGroupHeadingClassName:y})}function w(e){return(0,d.jsx)(k.GX,{component:B,props:e})}const G=(0,s.memo)(w);function O({sidebar:e}){const t=(0,r.l)();return e?.items.length?"mobile"===t?(0,d.jsx)(G,{sidebar:e}):(0,d.jsx)(_,{sidebar:e}):null}function U(e){const{sidebar:t,toc:a,children:s,...r}=e,l=t&&t.items.length>0;return(0,d.jsx)(i.A,{...r,children:(0,d.jsx)("div",{className:"container margin-vert--lg",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsx)(O,{sidebar:t}),(0,d.jsx)("main",{className:(0,n.A)("col",{"col--7":l,"col--9 col--offset-1":!l}),children:s}),a&&(0,d.jsx)("div",{className:"col col--2",children:a})]})})})}},9158(e,t,a){a.r(t),a.d(t,{default:()=>p});a(6540);var s=a(4164),n=a(1312);var i=a(5500),r=a(7559),l=a(8027),o=a(6133),c=a(4608);const m="tag_Nnez";var d=a(4848);function u({letterEntry:e}){return(0,d.jsxs)("article",{children:[(0,d.jsx)(c.A,{as:"h2",id:e.letter,children:e.letter}),(0,d.jsx)("ul",{className:"padding--none",children:e.tags.map(e=>(0,d.jsx)("li",{className:m,children:(0,d.jsx)(o.A,{...e})},e.permalink))}),(0,d.jsx)("hr",{})]})}function g({tags:e}){const t=function(e){const t={};return Object.values(e).forEach(e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)}),Object.entries(t).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({letter:e,tags:t.sort((e,t)=>e.label.localeCompare(t.label))}))}(e);return(0,d.jsx)("section",{className:"margin-vert--lg",children:t.map(e=>(0,d.jsx)(u,{letterEntry:e},e.letter))})}var h=a(1463);function p({tags:e,sidebar:t}){const a=(0,n.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});return(0,d.jsxs)(i.e3,{className:(0,s.A)(r.G.wrapper.blogPages,r.G.page.blogTagsListPage),children:[(0,d.jsx)(i.be,{title:a}),(0,d.jsx)(h.A,{tag:"blog_tags_list"}),(0,d.jsxs)(l.A,{sidebar:t,children:[(0,d.jsx)(c.A,{as:"h1",children:a}),(0,d.jsx)(g,{tags:e})]})]})}},6133(e,t,a){a.d(t,{A:()=>c});a(6540);var s=a(4164),n=a(8774);const i="tag_zVej",r="tagRegular_sFm0",l="tagWithCount_h2kH";var o=a(4848);function c({permalink:e,label:t,count:a,description:c}){return(0,o.jsxs)(n.A,{rel:"tag",href:e,title:c,className:(0,s.A)(i,a?l:r),children:[t,a&&(0,o.jsx)("span",{children:a})]})}}}]); \ No newline at end of file diff --git a/assets/js/023ce613.c013ad5f.js b/assets/js/023ce613.c013ad5f.js new file mode 100644 index 0000000..3f4af21 --- /dev/null +++ b/assets/js/023ce613.c013ad5f.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrescript_react_native_github_io||=[]).push([[1058],{3750(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>c,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"netinfo","title":"NetInfo","description":"NetInfo has been removed from React Native.","source":"@site/docs/netinfo.md","sourceDirName":".","slug":"/netinfo","permalink":"/docs/netinfo","draft":false,"unlisted":false,"editUrl":"https://github.com/rescript-react-native/rescript-react-native.github.io/edit/src/docs/netinfo.md","tags":[],"version":"current","frontMatter":{"id":"netinfo","title":"NetInfo"}}');var i=n(4848),r=n(8453);const c={id:"netinfo",title:"NetInfo"},s=void 0,a={},d=[];function f(e){const t={a:"a",code:"code",p:"p",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"NetInfo"})," has been removed from React Native."]}),"\n",(0,i.jsxs)(t.p,{children:["Please use ",(0,i.jsx)(t.a,{href:"https://github.com/rescript-react-native/netinfo",children:"bindings"})," to the\nreplacement\n",(0,i.jsx)(t.a,{href:"https://github.com/react-native-community/react-native-netinfo",children:"community package"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(f,{...e})}):f(e)}},8453(e,t,n){n.d(t,{R:()=>c,x:()=>s});var o=n(6540);const i={},r=o.createContext(i);function c(e){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/043073c4.426bc1d2.js b/assets/js/043073c4.426bc1d2.js new file mode 100644 index 0000000..43119d7 --- /dev/null +++ b/assets/js/043073c4.426bc1d2.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrescript_react_native_github_io||=[]).push([[2905],{3163(t,e,i){i.r(e),i.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"flatlist","title":"FlatList","description":"Supports VirtualizedList props plus numColumns / columnWrapperStyle.","source":"@site/docs/flatlist.md","sourceDirName":".","slug":"/flatlist","permalink":"/docs/flatlist","draft":false,"unlisted":false,"editUrl":"https://github.com/rescript-react-native/rescript-react-native.github.io/edit/src/docs/flatlist.md","tags":[],"version":"current","frontMatter":{"id":"flatlist","title":"FlatList","officialDoc":"https://reactnative.dev/docs/flatlist"},"sidebar":"components","previous":{"title":"DrawerLayoutAndroid","permalink":"/docs/drawerlayoutandroid"},"next":{"title":"Image","permalink":"/docs/image"}}');var r=i(4848),s=i(8453);const o={id:"flatlist",title:"FlatList",officialDoc:"https://reactnative.dev/docs/flatlist"},a=void 0,l={},c=[];function d(t){const e={code:"code",p:"p",pre:"pre",...(0,s.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-rescript",children:'type item = {id: string, title: string}\n\nlet data = [{id: "1", title: "One"}, {id: "2", title: "Two"}]\n\n item.id}\n renderItem={({item}) =>\n {item.title->React.string} }\n/>\n'})}),"\n",(0,r.jsxs)(e.p,{children:["Supports VirtualizedList props plus ",(0,r.jsx)(e.code,{children:"numColumns"})," / ",(0,r.jsx)(e.code,{children:"columnWrapperStyle"}),"."]})]})}function p(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(d,{...t})}):d(t)}},8453(t,e,i){i.d(e,{R:()=>o,x:()=>a});var n=i(6540);const r={},s=n.createContext(r);function o(t){const e=n.useContext(s);return n.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:o(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/07399c65.1a25b536.js b/assets/js/07399c65.1a25b536.js new file mode 100644 index 0000000..8494d14 --- /dev/null +++ b/assets/js/07399c65.1a25b536.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrescript_react_native_github_io||=[]).push([[9599],{9966(e,t,i){i.r(t),i.d(t,{assets:()=>h,contentTitle:()=>r,default:()=>l,frontMatter:()=>c,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"actionsheetios","title":"ActionSheetIOS","description":"iOS-only action sheet / share sheet.","source":"@site/docs/actionsheetios.md","sourceDirName":".","slug":"/actionsheetios","permalink":"/docs/actionsheetios","draft":false,"unlisted":false,"editUrl":"https://github.com/rescript-react-native/rescript-react-native.github.io/edit/src/docs/actionsheetios.md","tags":[],"version":"current","frontMatter":{"id":"actionsheetios","title":"ActionSheetIOS","officialDoc":"https://reactnative.dev/docs/actionsheetios"},"sidebar":"api","previous":{"title":"AccessibilityInfo","permalink":"/docs/accessibilityinfo"},"next":{"title":"Alert","permalink":"/docs/alert"}}');var o=i(4848),s=i(8453);const c={id:"actionsheetios",title:"ActionSheetIOS",officialDoc:"https://reactnative.dev/docs/actionsheetios"},r=void 0,h={},a=[{value:"showActionSheetWithOptions",id:"showactionsheetwithoptions",level:2},{value:"showShareActionSheetWithOptions",id:"showshareactionsheetwithoptions",level:2},{value:"dismissActionSheet",id:"dismissactionsheet",level:2}];function d(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"iOS-only action sheet / share sheet."}),"\n",(0,o.jsx)(t.h2,{id:"showactionsheetwithoptions",children:(0,o.jsx)(t.code,{children:"showActionSheetWithOptions"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-rescript",children:'ActionSheetIOS.showActionSheetWithOptions(\n {\n options: ["Cancel", "Delete"],\n cancelButtonIndex: 0,\n destructiveButtonIndex: [1],\n title: "Confirm",\n },\n buttonIndex => Console.log(buttonIndex),\n)\n'})}),"\n",(0,o.jsx)(t.h2,{id:"showshareactionsheetwithoptions",children:(0,o.jsx)(t.code,{children:"showShareActionSheetWithOptions"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-rescript",children:'ActionSheetIOS.showShareActionSheetWithOptions(\n {url: "https://rescript-lang.org", message: "ReScript"},\n error => Console.warn(error),\n (completed, activityType) => Console.log((completed, activityType)),\n)\n'})}),"\n",(0,o.jsx)(t.h2,{id:"dismissactionsheet",children:(0,o.jsx)(t.code,{children:"dismissActionSheet"})}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-rescript",children:"ActionSheetIOS.dismissActionSheet()\n"})})]})}function l(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},8453(e,t,i){i.d(t,{R:()=>c,x:()=>r});var n=i(6540);const o={},s=n.createContext(o);function c(e){const t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/08f097a5.19fa52f0.js b/assets/js/08f097a5.19fa52f0.js new file mode 100644 index 0000000..34c7bc0 --- /dev/null +++ b/assets/js/08f097a5.19fa52f0.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrescript_react_native_github_io||=[]).push([[7835],{7419(t,e,n){n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>s,default:()=>l,frontMatter:()=>c,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"button","title":"Button","description":"Example","source":"@site/docs/button.md","sourceDirName":".","slug":"/button","permalink":"/docs/button","draft":false,"unlisted":false,"editUrl":"https://github.com/rescript-react-native/rescript-react-native.github.io/edit/src/docs/button.md","tags":[],"version":"current","frontMatter":{"id":"button","title":"Button","officialDoc":"https://reactnative.dev/docs/button"},"sidebar":"components","previous":{"title":"ActivityIndicator","permalink":"/docs/activityindicator"},"next":{"title":"DrawerLayoutAndroid","permalink":"/docs/drawerlayoutandroid"}}');var r=n(4848),i=n(8453);const c={id:"button",title:"Button",officialDoc:"https://reactnative.dev/docs/button"},s=void 0,a={},d=[{value:"Example",id:"example",level:2}];function u(t){const e={code:"code",h2:"h2",pre:"pre",...(0,i.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.h2,{id:"example",children:"Example"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-rescript",children:'open ReactNative\n\n\n
').concat(o,"
\n \n ")},jr.link=function(e){var t=e.href,n=e.title,r=e.text,u=Or(Pr(t)),a=Or(r);if(!u)return a;var i=n?' title="'.concat(Or(n),'"'):"";return'').concat(a,"")},jr.image=function(e){var t=e.href,n=e.title,r=e.text,u=Or(Pr(t));if(!u)return Or(r);var a=n?' title="'.concat(Or(n),'"'):"";return'').concat(Or(r),'")},jr.html=function(e){return Or(e.text)};var Nr=(0,r.memo)(function(e){var t=e.content,n=e.copyButtonText,u=e.copyButtonCopiedText,a=e.isStreaming,i=(0,r.useMemo)(function(){return e=t,Ir.parse(e,{gfm:!0,breaks:!0,renderer:jr});var e},[t]),o=(0,r.useRef)(null);return(0,r.useEffect)(function(){var e=o.current;if(e)return Array.from(e.querySelectorAll(".DocSearch-CodeSnippet-CopyButton")).forEach(function(e){var t=e.querySelector(".DocSearch-CodeSnippet-CopyButton-Label");t&&(t.textContent=n),e.classList.remove("DocSearch-CodeSnippet-CopyButton--copied")}),e.addEventListener("click",t),function(){e.removeEventListener("click",t)};function t(e){var t,r=e.target.closest(".DocSearch-CodeSnippet-CopyButton");if(r){var a=null!==(t=r.getAttribute("data-code"))&&void 0!==t?t:"";navigator.clipboard.writeText(decodeURIComponent(a)).catch(function(){});var i=r.querySelector(".DocSearch-CodeSnippet-CopyButton-Label");if(i){r.classList.add("DocSearch-CodeSnippet-CopyButton--copied");var o=n;i.textContent=u,setTimeout(function(){r.classList.remove("DocSearch-CodeSnippet-CopyButton--copied"),i.textContent=o},1500)}}}},[i,n,u]),r.createElement("div",{ref:o,className:"DocSearch-Markdown-Content ".concat(a?"DocSearch-Markdown-Content--streaming":""),dangerouslySetInnerHTML:{__html:i}})});function zr(e){var t=e.part,n=e.translations,u=e.onSearchQueryClick,a=n.searchingText,i=n.preToolCallText,o=n.toolCallResultText;switch(t.state){case"input-streaming":return r.createElement("div",{className:"DocSearch-AskAiScreen-MessageContent-Tool Tool--PartialCall shimmer"},r.createElement(Qt,{className:"DocSearch-AskAiScreen-SmallerLoadingIcon"}),r.createElement("span",null,a));case"input-available":return r.createElement("div",{className:"DocSearch-AskAiScreen-MessageContent-Tool Tool--Call shimmer"},r.createElement(Qt,{className:"DocSearch-AskAiScreen-SmallerLoadingIcon"}),r.createElement("span",null,i," ",'"'.concat(t.input.query||"",'" ...')));case"output-available":var s,c,l="tool-searchIndex"===t.type?t.output.query:t.input.query,d=null!==(s=null===(c=t.output.hits)||void 0===c?void 0:c.length)&&void 0!==s?s:0;return r.createElement("div",{className:"DocSearch-AskAiScreen-MessageContent-Tool Tool--Result"},r.createElement(en,null),r.createElement("span",null,o," ",u?r.createElement("span",{role:"button",tabIndex:0,className:"DocSearch-AskAiScreen-MessageContent-Tool-Query",onKeyDown:function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),u(l||""))},onClick:function(){return u(l||"")}}," ",'"',l||"",'"'):r.createElement("span",{className:"DocSearch-AskAiScreen-MessageContent-Tool-Query"},' "',l||"",'"')," ","found ",d," results"));default:return null}}Nr.displayName="MemoizedMarkdown";var Rr=new Set(["AI-203","AI-205","AI-224","AI-225"]);function Mr(e,t){for(var n=0,r=Object.entries(e);n"{}|\\^`[\]]+/g));try{for(l.s();!(c=l.n()).done;){var d=Pr(c.value[0].replace(/[.,;:!?]+$/,""));d&&!n.has(d)&&(n.add(d),t.push({url:d}))}}catch(e){l.e(e)}finally{l.f()}}}),t):[];var e,t,n},[v]),B=r.useMemo(function(){return function(e){for(var t=[],n=0;n0&&u.push(c),a++}u.length>1?t.push({type:"aggregated-tool-call",queries:u}):1===u.length&&t.push(r),n=a-1}else t.push(r)}return t}((null==v?void 0:v.parts)||[])},[v]),I=(null===(t=h.metadata)||void 0===t?void 0:t.stopped)||(null==v||null===(n=v.metadata)||void 0===n?void 0:n.stopped),O=!I&&(!i||i&&"ready"===o&&Boolean(v)),T=["submitted","streaming"].includes(o)&&i&&!B.some(function(e){return"step-start"!==e.type}),P=p?(null==v?void 0:v.id)||u.id:(null==h?void 0:h.id)||u.id;return r.createElement("div",{className:"DocSearch-AskAiScreen-Response-Container"},r.createElement("div",{className:"DocSearch-AskAiScreen-Response"},r.createElement("div",{className:"DocSearch-AskAiScreen-Message DocSearch-AskAiScreen-Message--user"},r.createElement("p",{className:"DocSearch-AskAiScreen-Query"},S)),r.createElement("div",{className:"DocSearch-AskAiScreen-Message DocSearch-AskAiScreen-Message--assistant"},r.createElement("div",{className:"DocSearch-AskAiScreen-MessageContent"},"error"===o&&a&&i&&!w&&r.createElement("div",{className:"DocSearch-AskAiScreen-MessageContent DocSearch-AskAiScreen-Error"},r.createElement(tn,null),r.createElement("div",{className:"DocSearch-AskAiScreen-Error-Content"},r.createElement("h4",{className:"DocSearch-AskAiScreen-Error-Title"},g),r.createElement(Nr,{content:a.message,copyButtonText:"",copyButtonCopiedText:"",isStreaming:!1}))),T&&r.createElement("div",{className:"DocSearch-AskAiScreen-MessageContent-Reasoning"},r.createElement("span",{className:"shimmer"},c.thinkingText||"Thinking...")),B.map(function(e,t){var n=t;return"string"==typeof e?r.createElement(Nr,{key:n,content:e,copyButtonText:c.copyButtonText||"Copy",copyButtonCopiedText:c.copyButtonCopiedText||"Copied!",isStreaming:"streaming"===o}):"aggregated-tool-call"===e.type?r.createElement(Dn,{key:n,queries:e.queries,translations:c,onSearchQueryClick:s}):"reasoning"===e.type&&"streaming"===e.state?r.createElement("div",{key:n,className:"DocSearch-AskAiScreen-MessageContent-Reasoning shimmer"},r.createElement(Qt,{className:"DocSearch-AskAiScreen-SmallerLoadingIcon"}),r.createElement("span",{className:"shimmer"},"Reasoning...")):"text"===e.type?r.createElement(Nr,{key:n,content:e.text,copyButtonText:c.copyButtonText||"Copy",copyButtonCopiedText:c.copyButtonCopiedText||"Copied!",isStreaming:"streaming"===e.state}):"tool-searchIndex"===e.type||"tool-algolia_search_index"===e.type?r.createElement(zr,{key:n,translations:{preToolCallText:E,searchingText:k,toolCallResultText:C},part:e,onSearchQueryClick:s}):null})),I&&r.createElement("p",{className:"DocSearck-AskAiScreen-MessageContent-Stopped"},D)),r.createElement("div",{className:"DocSearch-AskAiScreen-Answer-Footer"},r.createElement(tu,{id:P,showActions:O,latestAssistantMessageContent:_||null,translations:c,conversations:l,onFeedback:d}))),x.length>0?r.createElement(nu,{urlsToDisplay:x,relatedSourcesText:c.relatedSourcesText}):null)}function tu(e){var t,n=e.id,u=e.showActions,a=e.latestAssistantMessageContent,o=e.translations,s=e.conversations,c=e.onFeedback,l=r.useMemo(function(){var e,t,r=null===(e=s.getOne)||void 0===e?void 0:e.call(s,n);return null!==(t=null==r?void 0:r.feedback)&&void 0!==t?t:null},[s,n]),d=A(r.useState(l),2),f=d[0],p=d[1],h=A(r.useState(!1),2),v=h[0],m=h[1],D=A(r.useState(null),2),y=D[0],g=D[1],F=(t=i(E().m(function e(t){var r;return E().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!v){e.n=1;break}return e.a(2);case 1:return g(null),m(!0),e.p=2,e.n=3,null==c?void 0:c(n,"like"===t?1:0);case 3:p(t),e.n=5;break;case 4:e.p=4,r=e.v,g(r);case 5:return e.p=5,m(!1),e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])})),function(e){return t.apply(this,arguments)}),b=o.likeButtonTitle,C=void 0===b?"Like":b,k=o.dislikeButtonTitle,w=void 0===k?"Dislike":k,_=o.thanksForFeedbackText,S=void 0===_?"Thanks for your feedback!":_;return u&&a?r.createElement("div",{className:"DocSearch-AskAiScreen-Actions"},null===f?r.createElement(r.Fragment,null,v?r.createElement(Qt,{className:"DocSearch-AskAiScreen-SmallerLoadingIcon"}):r.createElement(r.Fragment,null,r.createElement(iu,{title:C,onClick:function(){return F("like")}}),r.createElement(ou,{title:w,onClick:function(){return F("dislike")}})),y&&r.createElement("p",{className:"DocSearch-AskAiScreen-FeedbackText"},y.message||"An error occured")):r.createElement("p",{className:"DocSearch-AskAiScreen-FeedbackText DocSearch-AskAiScreen-FeedbackText--visible"},S),r.createElement(au,{translations:o,onClick:function(){return navigator.clipboard.writeText(a)}})):null}function nu(e){var t=e.urlsToDisplay,n=e.relatedSourcesText;return r.createElement("div",{className:"DocSearch-AskAiScreen-RelatedSources"},r.createElement("p",{className:"DocSearch-AskAiScreen-RelatedSources-Title"},n||"Related sources"),r.createElement("div",{className:"DocSearch-AskAiScreen-RelatedSources-List"},t.length>0&&t.map(function(e){return r.createElement("a",{key:e.url,href:e.url,className:"DocSearch-AskAiScreen-RelatedSources-Item-Link",target:"_blank",rel:"noopener noreferrer"},r.createElement(uu,null),r.createElement("span",null,e.title||e.url))})))}function ru(e){var t=e.translations,n=void 0===t?{}:t,u=F(e,Yr),a=n.disclaimerText,i=void 0===a?"Answers are generated with AI which can make mistakes. Verify responses.":a,o=n.startNewConversationButtonText,s=void 0===o?"Start a new conversation":o,c=u.messages,l=u.askAiError,d=u.status,f=u.agentStudio,p=(0,r.useMemo)(function(){return"error"===d&&Kr(l,Boolean(f))},[d,l,f]),h=(0,r.useMemo)(function(){return function(e){if(e){if(Wr(e)){var t=Gr(e);return t&&!function(e){var t=e.trim();return t.startsWith("{")&&t.endsWith("}")}(t)?t:"Could not complete response due to token output limits"}return Gr(e)}}(l)},[l]),v=function(e,t){return!e||!Wr(e)&&(!!Jr(e)||!t||qr(e).showNewConversationLink)}(l,Boolean(f)),m=(0,r.useMemo)(function(){for(var e=[],t=0;t").replace(/"/g,'"').replace(/'/g,"'"):null},[e.title]);return e.collection&&0!==e.collection.items.length?"askAI"===e.collection.source.sourceId?r.createElement("section",{className:"DocSearch-AskAi-Section"},r.createElement("ul",e.getListProps({source:e.collection.source}),r.createElement(hu,h({item:e.collection.items[0],translations:e.translations},e)))):(e.collection.source.sourceId,r.createElement("section",{className:"DocSearch-Hits"},r.createElement("div",{className:"DocSearch-Hit-source"},t),r.createElement("ul",e.getListProps({source:e.collection.source}),e.collection.items.map(function(t,n){return r.createElement(pu,h({key:[e.title,t.objectID].join(":"),item:t,index:n},e))})))):null}function pu(e){var t=e.item,n=e.index,u=e.renderIcon,a=e.renderAction,i=e.getItemProps,o=e.onItemClick,s=e.collection,c=e.hitComponent;return r.createElement("li",h({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child"].filter(Boolean).join(" ")},i({item:t,source:s.source,onClick:function(e){o(t,e)}})),r.createElement(c,{hit:t},r.createElement("div",{className:"DocSearch-Hit-Container"},u({item:t,index:n}),t.hierarchy[t.type]&&"lvl1"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(lu,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&r.createElement(lu,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),"askAI"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement("span",{className:"DocSearch-Hit-title"},Tr(t.hierarchy.lvl1||""))),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(lu,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),r.createElement(lu,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(lu,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),r.createElement(lu,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),a({item:t}))))}function hu(e){var t=e.item,n=e.getItemProps,u=e.onItemClick,a=e.translations,i=e.collection,o=F(e,du),s=a||{},c=s.askAiPlaceholder,l=void 0===c?"Ask AI: ":c,d=s.noResultsAskAiPlaceholder,f=void 0===d?"Didn't find it in the docs? Ask AI to help: ":d,p=1===o.state.collections.length?f:l;return r.createElement("li",h({className:"DocSearch-Hit"},n({item:t,source:i.source,onClick:function(e){u(t,e)}})),r.createElement("div",{className:"DocSearch-Hit--AskAI"},r.createElement("div",{className:"DocSearch-Hit-AskAIButton DocSearch-Hit-Container"},r.createElement("div",{className:" DocSearch-Hit-AskAIButton-icon DocSearch-Hit-icon"},r.createElement(Gt,null)),r.createElement("div",{className:"DocSearch-Hit-AskAIButton-title"},r.createElement("span",{className:"DocSearch-Hit-AskAIButton-title-highlight"},p),r.createElement("mark",{className:"DocSearch-Hit-AskAIButton-title-query"},String(t.query||""))))))}var vu=["onAskAiToggle"];function mu(e){var t=e.onAskAiToggle,n=F(e,vu),u=r.useMemo(function(){return n.state.collections[2]},[n.state]);return r.useEffect(function(){u&&0!==u.items.length||t(!0)},[u,t]),r.createElement("div",{className:"DocSearch-Dropdown-Container DocSearch-Conversation-History"},r.createElement(fu,h({},n,{key:u.source.sourceId,title:"",translations:n.translations,collection:u,renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Gt,null))},renderAction:function(e){var t=e.item;return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{type:"button",className:"DocSearch-Hit-action-button",onClick:function(e){e.preventDefault(),e.stopPropagation(),n.conversations.remove(t),n.refresh()}},r.createElement(Xt,null)))}})))}function Du(e){var t=e.translations,n=void 0===t?{}:t,u=n.titleText,a=void 0===u?"Unable to fetch results":u,i=n.helpText,o=void 0===i?"You might want to check your network connection.":i;return r.createElement("div",{className:"DocSearch-ErrorScreen"},r.createElement("div",{className:"DocSearch-Screen-Icon"},r.createElement(ln,null)),r.createElement("p",{className:"DocSearch-Title"},a),r.createElement("p",{className:"DocSearch-Help"},o))}function yu(e){var t=e.translations,n=void 0===t?{}:t,u=e.suggestedQuestions,a=void 0===u?[]:u,i=e.selectSuggestedQuestion,o=n.newConversationTitle,s=void 0===o?"How can I help you today?":o,c=n.newConversationDescription,l=void 0===c?"I search through your documentation to help you find setup guides, feature details and troubleshooting tips, fast.":c;return r.createElement("div",{className:"DocSearch-NewConversationScreen"},r.createElement("h3",{className:"DocSearch-NewConversationScreen-Title"},s),r.createElement("p",{className:"DocSearch-NewConversationScreen-Description"},l),r.createElement("div",{className:"DocSearch-NewConversationScreen-SuggestedQuestions"},a.map(function(e){return r.createElement("button",{key:e.objectID,type:"button",className:"DocSearch-NewConversationScreen-SuggestedQuestion",onClick:function(){return i(e)}},e.question)})))}var gu=["translations"];function Fu(e){var t=e.translations,n=void 0===t?{}:t,u=F(e,gu),a=n.noResultsText,i=void 0===a?"No results found for":a,o=n.suggestedQueryText,s=void 0===o?"Try searching for":o,c=n.reportMissingResultsText,l=void 0===c?"Believe this query should return results?":c,d=n.reportMissingResultsLinkText,f=void 0===d?"Let us know.":d,p=u.state.context.searchSuggestions;return r.createElement("div",{className:"DocSearch-NoResults ".concat(u.canHandleAskAi?"DocSearch-NoResults--withAskAi":"")},r.createElement("div",{className:"DocSearch-Screen-Icon"},r.createElement(dn,null)),r.createElement("p",{className:"DocSearch-Title"},i,' "',r.createElement("strong",null,u.state.query),'"'),p&&p.length>0&&r.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},r.createElement("p",{className:"DocSearch-Help"},s,":"),r.createElement("div",{className:"DocSearch-NoResults-Prefill-List-Items"},p.slice(0,3).reduce(function(e,t){return[].concat(k(e),[r.createElement("p",{key:t},r.createElement(en,{size:16}),r.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){u.setQuery(t.toLowerCase()+" "),u.refresh(),u.inputRef.current.focus()}},t))])},[]))),u.getMissingResultsUrl&&r.createElement("p",{className:"DocSearch-Help"},"".concat(l," "),r.createElement("a",{href:u.getMissingResultsUrl({query:u.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}function Eu(e,t,n){return e.reduce(function(e,r){var u=t(r);return e.hasOwnProperty(u)||(e[u]=[]),e[u].length<(n||5)&&e[u].push(r),e},{})}function bu(e){return e}function Cu(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function Au(){}var ku=/(|<\/mark>)/g,wu=RegExp(ku.source);function _u(e){var t,n,r=e;if(!r.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var u=r.__docsearch_parent?null===(t=r.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(n=e._highlightResult)||void 0===n||null===(n=n.hierarchy)||void 0===n?void 0:n.lvl0;return u?u.value&&wu.test(u.value)?u.value.replace(ku,""):u.value:e.hierarchy.lvl0}var Su=["translations"];function xu(e){var t=e.translations,n=void 0===t?{}:t,u=F(e,Su);return r.createElement("div",{className:"DocSearch-Dropdown-Container"},u.state.collections.map(function(e){if(0===e.items.length)return null;var t=_u(e.items[0]);return r.createElement(fu,h({},u,{key:e.source.sourceId,translations:n,title:t,collection:e,renderIcon:function(t){var n,u=t.item,a=t.index;return r.createElement(r.Fragment,null,u.__docsearch_parent&&r.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},r.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},u.__docsearch_parent!==(null===(n=e.items[a+1])||void 0===n?void 0:n.__docsearch_parent)?r.createElement("path",{d:"M8 6v21M20 27H8.3"}):r.createElement("path",{d:"M8 6v42M20 27H8.3"}))),r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(un,{type:u.type})))},renderAction:function(){return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement(nn,null))}}))}),u.resultsFooterComponent&&r.createElement("section",{className:"DocSearch-HitsFooter"},r.createElement(u.resultsFooterComponent,{state:u.state})))}var Bu=["translations"];function Iu(e){var t=e.translations,n=void 0===t?{}:t,u=F(e,Bu),a=n.recentSearchesTitle,i=void 0===a?"Recent":a,o=n.saveRecentSearchButtonTitle,s=void 0===o?"Save this search":o,c=n.removeRecentSearchButtonTitle,l=void 0===c?"Remove this search from history":c,d=n.favoriteSearchesTitle,f=void 0===d?"Favorite":d,p=n.removeFavoriteSearchButtonTitle,v=void 0===p?"Remove this search from favorites":p,m=n.recentConversationsTitle,D=void 0===m?"Recent conversations":m,y=n.removeRecentConversationButtonTitle,g=void 0===y?"Remove this conversation from history":y;return r.createElement("div",{className:"DocSearch-Dropdown-Container"},r.createElement(fu,h({},u,{title:i,collection:u.state.collections[0],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Yt,null))},renderAction:function(e){var t=e.item;return r.createElement(r.Fragment,null,r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:s,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),u.favoriteSearches.add(t),u.recentSearches.remove(t),u.refresh()}},r.createElement(sn,null))),r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:l,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),u.recentSearches.remove(t),u.refresh()}},r.createElement(Xt,null))))}})),r.createElement(fu,h({},u,{title:f,collection:u.state.collections[1],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(sn,null))},renderAction:function(e){var t=e.item;return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:v,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),u.favoriteSearches.remove(t),u.refresh()}},r.createElement(Xt,null)))}})),r.createElement(fu,h({},u,{title:D,collection:u.state.collections[2],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Gt,null))},renderAction:function(e){var t=e.item;return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:g,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),u.conversations.remove(t),u.refresh()}},r.createElement(Xt,null)))}})))}var Ou=["translations"],Tu=r.memo(function(e){var t,n=e.translations,u=void 0===n?{}:n,a=F(e,Ou);return a.canHandleAskAi&&a.isAskAiActive&&"conversation-history"===a.askAiState?r.createElement(mu,a):a.canHandleAskAi&&a.isAskAiActive&&"new-conversation"===a.askAiState?r.createElement(yu,{translations:null==u?void 0:u.newConversation,selectSuggestedQuestion:a.selectSuggestedQuestion,suggestedQuestions:a.suggestedQuestions}):a.isAskAiActive&&a.canHandleAskAi?r.createElement(ru,h({},a,{messages:a.messages,status:a.status,askAiError:a.askAiError,translations:null==u?void 0:u.askAiScreen,agentStudio:a.agentStudio})):"error"===(null===(t=a.state)||void 0===t?void 0:t.status)?r.createElement(Du,{translations:null==u?void 0:u.errorScreen}):a.state.query?a.hasCollections||a.canHandleAskAi?r.createElement(r.Fragment,null,r.createElement(xu,h({},a,{translations:null==u?void 0:u.resultsScreen})),a.canHandleAskAi&&1===a.state.collections.length&&r.createElement(Fu,h({},a,{translations:null==u?void 0:u.noResultsScreen}))):r.createElement(Fu,h({},a,{translations:null==u?void 0:u.noResultsScreen})):r.createElement(Iu,h({},a,{hasCollections:a.hasCollections,translations:null==u?void 0:u.startScreen}))},function(e,t){return"loading"===t.state.status||"stalled"===t.state.status});function Pu(e){var t=e.size,n=void 0===t?20:t,u=e.color,a=void 0===u?"currentColor":u;return r.createElement("svg",{width:n,height:n,className:"DocSearch-Back-Icon",viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},r.createElement("path",{d:"m12 19-7-7 7-7"}),r.createElement("path",{d:"M19 12H5"}))}var ju=["children","className","onClick"],Nu=r.createContext({open:!1,setOpen:function(e){}});function zu(e){var t=e.children,n=A(r.useState(!1),2),u=n[0],a=n[1],i=r.useRef(null);return r.useEffect(function(){function e(e){var t;null!==(t=i.current)&&void 0!==t&&t.contains(e.target)||a(!1)}return u&&window.addEventListener("click",e),function(){window.removeEventListener("click",e)}},[u]),r.createElement(Nu.Provider,{value:{open:u,setOpen:a}},r.createElement("div",{ref:i,className:"DocSearch-Menu"},t))}function Ru(e){var t=e.heading,n=e.shimmer,u=void 0!==n&&n;return r.createElement("span",{className:"DocSearch-Modal-heading".concat(u?" shimmer":"")},t)}zu.Trigger=function(e){var t=e.children,n=e.className,u=void 0===n?"":n,a=e.disabled,i=r.useContext(Nu),o=i.open,s=i.setOpen;return r.createElement("button",{type:"button",className:"DocSearch-Menu-trigger ".concat(u).concat(a?" disabled":""),"aria-disabled":a,onClick:function(){a||s(!o)}},t)},zu.Content=function(e){var t=e.children,n=r.useContext(Nu).open;return r.createElement("div",{className:"DocSearch-Menu-content".concat(n?" open":"")},t)},zu.Item=function(e){var t=e.children,n=e.className,u=void 0===n?"":n,a=e.onClick,i=F(e,ju),o=r.useContext(Nu).setOpen;return r.createElement("button",h({type:"button",className:"DocSearch-Menu-item ".concat(u),onClick:function(e){a&&(a(e),o(!1))}},i),t)};var Mu=["translations","askAiState","onAskAiToggle","setAskAiState"];function Zu(e){var t=e.translations,n=void 0===t?{}:t,u=e.askAiState,a=e.onAskAiToggle,i=e.setAskAiState,o=F(e,Mu),s=n.clearButtonTitle,c=void 0===s?"Clear":s,l=n.clearButtonAriaLabel,d=void 0===l?"Clear the query":l,f=n.closeButtonText,p=void 0===f?"Close":f,v=n.closeButtonAriaLabel,m=void 0===v?"Close":v,D=n.searchInputLabel,y=void 0===D?"Search":D,E=n.backToKeywordSearchButtonText,b=void 0===E?"Back to keyword search":E,C=n.backToKeywordSearchButtonAriaLabel,A=void 0===C?"Back to keyword search":C,k=n.placeholderTextAskAiStreaming,w=void 0===k?"Answering...":k,_=n.newConversationPlaceholder,S=void 0===_?"Ask a question":_,x=n.conversationHistoryTitle,B=void 0===x?"My conversation history":x,I=n.startNewConversationText,O=void 0===I?"Start a new conversation":I,T=n.viewConversationHistoryText,P=void 0===T?"Conversation history":T,j=n.threadDepthErrorPlaceholder,N=void 0===j?"Conversation limit reached":j,z=o.getFormProps({inputElement:o.inputRef.current}).onReset;r.useEffect(function(){o.autoFocus&&o.inputRef.current&&o.inputRef.current.focus()},[o.autoFocus,o.inputRef]),r.useEffect(function(){o.isFromSelection&&o.inputRef.current&&o.inputRef.current.select()},[o.isFromSelection,o.inputRef]);var R=r.useMemo(function(){var e=o.state.collections[2];return!!e&&e.items.length>0},[o.state.collections]),M=o.getInputProps({inputElement:o.inputRef.current,autoFocus:o.autoFocus,maxLength:512}),Z=new Set(["ArrowUp","ArrowDown","Enter"]),L=M.onKeyDown,$=M.onChange,q="streaming"===o.askAiStatus||"submitted"===o.askAiStatus,U="stalled"===o.state.status,V=o.isAskAiActive&&"conversation-history"!==u,H=o.isThreadDepthError||!1,J=o.placeholder;"new-conversation"===u&&(J=S),H&&o.isAskAiActive&&"minimal"!==o.askAiBlockingChrome&&(J=N);var K=null;q&&(K=w),"conversation-history"===u&&(K=B),r.useEffect(function(){"streaming"!==o.askAiStatus&&"submitted"!==o.askAiStatus&&o.inputRef.current&&o.inputRef.current.focus()},[o.askAiStatus,o.inputRef]);var W=g(g({},M),{},{enterKeyHint:o.isAskAiActive?"enter":"search",onKeyDown:function(e){if(o.isAskAiActive&&Z.has(e.key))return"Enter"===e.key&&!q&&o.state.query&&o.onAskAgain(o.state.query),e.preventDefault(),void e.stopPropagation();null==L||L(e)},onChange:function(e){if(o.isAskAiActive)return o.setQuery(e.currentTarget.value),e.preventDefault(),void e.stopPropagation();null==$||$(e)},disabled:q||H&&o.isAskAiActive}),Q=r.useCallback(function(){if(!H)return"conversation-history"===u?(a(!0),void i("initial")):void a(!1);o.onNewConversation()},[u,H,a,i,o]);return r.createElement(r.Fragment,null,r.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:z},o.isAskAiActive?r.createElement(r.Fragment,null,r.createElement("button",{type:"button",tabIndex:0,className:"DocSearch-Action DocSearch-AskAi-Return",title:b,"aria-label":A,onClick:Q},r.createElement(Pu,null))):r.createElement(r.Fragment,null,U&&r.createElement("div",{className:"DocSearch-LoadingIndicator"},r.createElement(Qt,null)),!U&&r.createElement("label",h({className:"DocSearch-MagnifierLabel"},o.getLabelProps()),r.createElement(en,null),r.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},y))),K&&r.createElement(Ru,{heading:K,shimmer:q}),r.createElement("input",h({className:"DocSearch-Input",ref:o.inputRef},W,{placeholder:J,hidden:Boolean(K)})),r.createElement("div",{className:"DocSearch-Actions"},r.createElement("button",{className:"DocSearch-Clear",type:"reset","aria-label":d,hidden:!o.state.query,tabIndex:o.state.query?0:-1,"aria-hidden":o.state.query?"false":"true"},c),o.state.query&&r.createElement("div",{className:"DocSearch-Divider"}),q&&r.createElement(r.Fragment,null,r.createElement("button",{type:"button",className:"DocSearch-Action DocSearch-StopStreaming",onClick:o.onStopAskAiStreaming},r.createElement(cn,null)),r.createElement("div",{className:"DocSearch-Divider"})),V&&r.createElement(r.Fragment,null,r.createElement(zu,null,r.createElement(zu.Trigger,{className:"DocSearch-Action"},r.createElement(fn,null)),r.createElement(zu.Content,null,r.createElement(zu.Item,{onClick:o.onNewConversation},r.createElement(hn,null),O),R&&r.createElement(zu.Item,{onClick:o.onViewConversationHistory},r.createElement(pn,null),P))),r.createElement("div",{className:"DocSearch-Divider"})),r.createElement("button",{type:"button",title:p,className:"DocSearch-Action DocSearch-Close","aria-label":m,onClick:o.onClose},r.createElement(Xt,null)))))}function Lu(){if("undefined"!=typeof window&&window.localStorage){var e=[];for(var t in window.localStorage)if(t.includes("__DOCSEARCH_")){var n=window.localStorage[t];e.push({key:t,size:n.length+t.length})}e.sort(function(e,t){return t.size-e.size});for(var r=Math.ceil(e.length/2),u=0;u-1&&a.splice(i,1),a.unshift(n),a=a.slice(0,r),u.setItem(a)},remove:function(e){a=a.filter(function(t){return t.objectID!==e.objectID}),u.setItem(a)},getAll:function(){return a}}}var Vu,Hu="vercel.ai.error",Ju=Symbol.for(Hu),Ku=class e extends Error{constructor({name:e,message:t,cause:n}){super(t),this[Vu]=!0,this.name=e,this.cause=n}static isInstance(t){return e.hasMarker(t,Hu)}static hasMarker(e,t){const n=Symbol.for(t);return null!=e&&"object"==typeof e&&n in e&&"boolean"==typeof e[n]&&!0===e[n]}};Vu=Ju;var Wu=Ku;function Qu(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.message:JSON.stringify(e)}var Gu,Yu="AI_InvalidArgumentError",Xu=`vercel.ai.error.${Yu}`,ea=Symbol.for(Xu),ta=class extends Wu{constructor({message:e,cause:t,argument:n}){super({name:Yu,message:e,cause:t}),this[Gu]=!0,this.argument=n}static isInstance(e){return Wu.hasMarker(e,Xu)}};Gu=ea;var na,ra="AI_JSONParseError",ua=`vercel.ai.error.${ra}`,aa=Symbol.for(ua),ia=class extends Wu{constructor({text:e,cause:t}){super({name:ra,message:`JSON parsing failed: Text: ${e}.\nError message: ${Qu(t)}`,cause:t}),this[na]=!0,this.text=e}static isInstance(e){return Wu.hasMarker(e,ua)}};na=aa;var oa,sa="AI_TypeValidationError",ca=`vercel.ai.error.${sa}`,la=Symbol.for(ca);oa=la;var da=class e extends Wu{constructor({value:e,cause:t}){super({name:sa,message:`Type validation failed: Value: ${JSON.stringify(e)}.\nError message: ${Qu(t)}`,cause:t}),this[oa]=!0,this.value=e}static isInstance(e){return Wu.hasMarker(e,ca)}static wrap({value:t,cause:n}){return e.isInstance(n)&&n.value===t?n:new e({value:t,cause:n})}},fa=function(){function e(t,n){var r;return s(this,e),(r=o(this,e,[t])).name="ParseError",r.type=n.type,r.field=n.field,r.value=n.value,r.line=n.line,r}return m(e,x(Error)),d(e)}();function pa(e){}var ha=function(){function e(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.onError,u=n.onRetry,a=n.onComment;return s(this,e),o(this,e,[{start:function(e){t=function(e){if("function"==typeof e)throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");var t,n=e.onEvent,r=void 0===n?pa:n,u=e.onError,a=void 0===u?pa:u,i=e.onRetry,o=void 0===i?pa:i,s=e.onComment,c="",l=!0,d="",p="";function h(e){if(""===e)return d.length>0&&r({id:t,event:p||void 0,data:d.endsWith("\n")?d.slice(0,-1):d}),t=void 0,d="",void(p="");if(e.startsWith(":"))s&&s(e.slice(e.startsWith(": ")?2:1));else{var n=e.indexOf(":");if(-1===n)v(e,"",e);else{var u=e.slice(0,n),a=" "===e[n+1]?2:1;v(u,e.slice(n+a),e)}}}function v(e,n,r){switch(e){case"event":p=n;break;case"data":d="".concat(d).concat(n,"\n");break;case"id":t=n.includes("\0")?void 0:n;break;case"retry":/^\d+$/.test(n)?o(parseInt(n,10)):a(new fa('Invalid `retry` value: "'.concat(n,'"'),{type:"invalid-retry",value:n,line:r}));break;default:a(new fa('Unknown field "'.concat(e.length>20?"".concat(e.slice(0,20),"\u2026"):e,'"'),{type:"unknown-field",field:e,value:n,line:r}))}}return{feed:function(e){var t,n=l?e.replace(/^\xEF\xBB\xBF/,""):e,r=function(e){for(var t=[],n="",r=0;r0&&void 0!==arguments[0]?arguments[0]:{}).consume&&h(c),l=!0,t=void 0,d="",p="",c=""}}}({onEvent:function(t){e.enqueue(t)},onError:function(t){"terminate"===r?e.error(t):"function"==typeof r&&r(t)},onRetry:u,onComment:a})},transform:function(e){t.feed(e)}}])}return m(e,x(TransformStream)),d(e)}();function va(e,t,n){var r;function u(n,r){var u,a,o;for(var s in Object.defineProperty(n,"_zod",{value:null!==(u=n._zod)&&void 0!==u?u:{},enumerable:!1}),null!==(a=(o=n._zod).traits)&&void 0!==a||(o.traits=new Set),n._zod.traits.add(e),t(n,r),i.prototype)s in n||Object.defineProperty(n,s,{value:i.prototype[s].bind(n)});n._zod.constr=i,n._zod.def=r}var a=function(e){function t(){return s(this,t),o(this,t,arguments)}return m(t,e),d(t)}(null!==(r=null==n?void 0:n.Parent)&&void 0!==r?r:Object);function i(e){var t,r,i=null!=n&&n.Parent?new a:this;u(i,e),null!==(t=(r=i._zod).deferred)&&void 0!==t||(r.deferred=[]);var o,s=f(i._zod.deferred);try{for(s.s();!(o=s.n()).done;)(0,o.value)()}catch(e){s.e(e)}finally{s.f()}return i}return Object.defineProperty(a,"name",{value:e}),Object.defineProperty(i,"init",{value:u}),Object.defineProperty(i,Symbol.hasInstance,{value:function(t){var r;return!!(null!=n&&n.Parent&&t instanceof n.Parent)||(null==t||null===(r=t._zod)||void 0===r||null===(r=r.traits)||void 0===r?void 0:r.has(e))}}),Object.defineProperty(i,"name",{value:e}),i}var ma=function(){function e(){return s(this,e),o(this,e,["Encountered Promise during synchronous parse. Use .parseAsync() instead."])}return m(e,x(Error)),d(e)}(),Da=function(){function e(t){var n;return s(this,e),(n=o(this,e,["Encountered unidirectional transform during encode: ".concat(t)])).name="ZodEncodeError",n}return m(e,x(Error)),d(e)}(),ya={};function ga(e){return ya}function Fa(e){var t=Object.values(e).filter(function(e){return"number"==typeof e});return Object.entries(e).filter(function(e){var n=A(e,2),r=n[0];return n[1],-1===t.indexOf(+r)}).map(function(e){var t=A(e,2);return t[0],t[1]})}function Ea(e,t){return"bigint"==typeof t?t.toString():t}function ba(e){return{get value(){var t=e();return Object.defineProperty(this,"value",{value:t}),t}}}function Ca(e){return null==e}function Aa(e){var t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var ka=Symbol("evaluating");function wa(e,t,n){var r=void 0;Object.defineProperty(e,t,{get:function(){if(r!==ka)return void 0===r&&(r=ka,r=n()),r},set:function(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function _a(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Sa(){for(var e={},t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:0;if(!0===e.aborted)return!0;for(var n=t;nu&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=function(r){(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ti=va("$ZodCheckMultipleOf",function(e,t){xi.init(e,t),e._zod.onattach.push(function(e){var n,r;null!==(n=(r=e._zod.bag).multipleOf)&&void 0!==n||(r.multipleOf=t.value)}),e._zod.check=function(n){if(_(n.value)!==_(t.value))throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value===BigInt(0):0===function(e,t){var n=(e.toString().split(".")[1]||"").length,r=t.toString(),u=(r.split(".")[1]||"").length;if(0===u&&/\d?e-\d?/.test(r)){var a=r.match(/\d?e-(\d?)/);null!=a&&a[1]&&(u=Number.parseInt(a[1]))}var i=n>u?n:u;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/Math.pow(10,i)}(n.value,t.value))||n.issues.push({origin:_(n.value),code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Pi=va("$ZodCheckNumberFormat",function(e,t){var n;xi.init(e,t),t.format=t.format||"float64";var r=null===(n=t.format)||void 0===n?void 0:n.includes("int"),u=r?"int":"number",a=A(Ma[t.format],2),i=a[0],o=a[1];e._zod.onattach.push(function(e){var n=e._zod.bag;n.format=t.format,n.minimum=i,n.maximum=o,r&&(n.pattern=Ci)}),e._zod.check=function(n){var a=n.value;if(r){if(!Number.isInteger(a))return void n.issues.push({expected:u,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});if(!Number.isSafeInteger(a))return void(a>0?n.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:u,continue:!t.abort}):n.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:u,continue:!t.abort}))}ao&&n.issues.push({origin:"number",input:a,code:"too_big",maximum:o,inst:e})}}),ji=va("$ZodCheckMaxSize",function(e,t){var n,r;xi.init(e,t),null!==(n=(r=e._zod.def).when)&&void 0!==n||(r.when=function(e){var t=e.value;return!Ca(t)&&void 0!==t.size}),e._zod.onattach.push(function(e){var n,r=null!==(n=e._zod.bag.maximum)&&void 0!==n?n:Number.POSITIVE_INFINITY;t.maximumr&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=function(n){var r=n.value;r.size>=t.minimum||n.issues.push({origin:Ua(r),code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),zi=va("$ZodCheckSizeEquals",function(e,t){var n,r;xi.init(e,t),null!==(n=(r=e._zod.def).when)&&void 0!==n||(r.when=function(e){var t=e.value;return!Ca(t)&&void 0!==t.size}),e._zod.onattach.push(function(e){var n=e._zod.bag;n.minimum=t.size,n.maximum=t.size,n.size=t.size}),e._zod.check=function(n){var r=n.value,u=r.size;if(u!==t.size){var a=u>t.size;n.issues.push(g(g({origin:Ua(r)},a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size}),{},{inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort}))}}}),Ri=va("$ZodCheckMaxLength",function(e,t){var n,r;xi.init(e,t),null!==(n=(r=e._zod.def).when)&&void 0!==n||(r.when=function(e){var t=e.value;return!Ca(t)&&void 0!==t.length}),e._zod.onattach.push(function(e){var n,r=null!==(n=e._zod.bag.maximum)&&void 0!==n?n:Number.POSITIVE_INFINITY;t.maximumr&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=function(n){var r=n.value;if(!(r.length>=t.minimum)){var u=Va(r);n.issues.push({origin:u,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}}),Zi=va("$ZodCheckLengthEquals",function(e,t){var n,r;xi.init(e,t),null!==(n=(r=e._zod.def).when)&&void 0!==n||(r.when=function(e){var t=e.value;return!Ca(t)&&void 0!==t.length}),e._zod.onattach.push(function(e){var n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=function(n){var r=n.value,u=r.length;if(u!==t.length){var a=Va(r),i=u>t.length;n.issues.push(g(g({origin:a},i?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length}),{},{inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort}))}}}),Li=va("$ZodCheckStringFormat",function(e,t){var n,r,u,a;xi.init(e,t),e._zod.onattach.push(function(e){var n,r=e._zod.bag;r.format=t.format,t.pattern&&(null!==(n=r.patterns)&&void 0!==n||(r.patterns=new Set),r.patterns.add(t.pattern))}),t.pattern?null!==(n=(u=e._zod).check)&&void 0!==n||(u.check=function(n){t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push(g(g({origin:"string",code:"invalid_format",format:t.format,input:n.value},t.pattern?{pattern:t.pattern.toString()}:{}),{},{inst:e,continue:!t.abort}))}):null!==(r=(a=e._zod).check)&&void 0!==r||(a.check=function(){})}),$i=va("$ZodCheckRegex",function(e,t){Li.init(e,t),e._zod.check=function(n){t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),qi=va("$ZodCheckLowerCase",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=_i),Li.init(e,t)}),Ui=va("$ZodCheckUpperCase",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=Si),Li.init(e,t)}),Vi=va("$ZodCheckIncludes",function(e,t){xi.init(e,t);var n=Na(t.includes),r=new RegExp("number"==typeof t.position?"^.{".concat(t.position,"}").concat(n):n);t.pattern=r,e._zod.onattach.push(function(e){var t,n=e._zod.bag;null!==(t=n.patterns)&&void 0!==t||(n.patterns=new Set),n.patterns.add(r)}),e._zod.check=function(n){n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Hi=va("$ZodCheckStartsWith",function(e,t){var n;xi.init(e,t);var r=new RegExp("^".concat(Na(t.prefix),".*"));null!==(n=t.pattern)&&void 0!==n||(t.pattern=r),e._zod.onattach.push(function(e){var t,n=e._zod.bag;null!==(t=n.patterns)&&void 0!==t||(n.patterns=new Set),n.patterns.add(r)}),e._zod.check=function(n){n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Ji=va("$ZodCheckEndsWith",function(e,t){var n;xi.init(e,t);var r=new RegExp(".*".concat(Na(t.suffix),"$"));null!==(n=t.pattern)&&void 0!==n||(t.pattern=r),e._zod.onattach.push(function(e){var t,n=e._zod.bag;null!==(t=n.patterns)&&void 0!==t||(n.patterns=new Set),n.patterns.add(r)}),e._zod.check=function(n){n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function Ki(e,t,n){var r;e.issues.length&&(r=t.issues).push.apply(r,k(La(n,e.issues)))}var Wi=va("$ZodCheckProperty",function(e,t){xi.init(e,t),e._zod.check=function(e){var n=t.schema._zod.run({value:e.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(function(n){return Ki(n,e,t.property)});Ki(n,e,t.property)}}),Qi=va("$ZodCheckMimeType",function(e,t){xi.init(e,t);var n=new Set(t.mime);e._zod.onattach.push(function(e){e._zod.bag.mime=t.mime}),e._zod.check=function(r){n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),Gi=va("$ZodCheckOverwrite",function(e,t){xi.init(e,t),e._zod.check=function(e){e.value=t.tx(e.value)}}),Yi=d(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];s(this,e),this.content=[],this.indent=0,this&&(this.args=t)},[{key:"indented",value:function(e){this.indent+=1,e(this),this.indent-=1}},{key:"write",value:function(e){var t=this;if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});var n,r=e.split("\n").filter(function(e){return e}),u=Math.min.apply(Math,k(r.map(function(e){return e.length-e.trimStart().length}))),a=r.map(function(e){return e.slice(u)}).map(function(e){return" ".repeat(2*t.indent)+e}),i=f(a);try{for(i.s();!(n=i.n()).done;){var o=n.value;this.content.push(o)}}catch(e){i.e(e)}finally{i.f()}}},{key:"compile",value:function(){var e,t=Function,n=null==this?void 0:this.args,r=k((null!==(e=null==this?void 0:this.content)&&void 0!==e?e:[""]).map(function(e){return" ".concat(e)}));return c(t,k(n).concat([r.join("\n")]))}}]),Xi={major:4,minor:1,patch:12},eo=va("$ZodType",function(e,t){var n,r;null!=e||(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Xi;var u=k(null!==(n=e._zod.def.checks)&&void 0!==n?n:[]);e._zod.traits.has("$ZodCheck")&&u.unshift(e);var a,o=f(u);try{for(o.s();!(a=o.n()).done;){var s,c=f(a.value._zod.onattach);try{for(c.s();!(s=c.n()).done;)(0,s.value)(e)}catch(e){c.e(e)}finally{c.f()}}}catch(e){o.e(e)}finally{o.f()}if(0===u.length){var l,d;null!==(l=(r=e._zod).deferred)&&void 0!==l||(r.deferred=[]),null===(d=e._zod.deferred)||void 0===d||d.push(function(){e._zod.run=e._zod.parse})}else{var p=function(e,t,n){var r,u,a=Za(e),o=f(t);try{var s=function(){var t=u.value;if(t._zod.def.when){if(!t._zod.def.when(e))return 0}else if(a)return 0;var o=e.issues.length,s=t._zod.check(e);if(s instanceof Promise&&!1===(null==n?void 0:n.async))throw new ma;if(r||s instanceof Promise)r=(null!=r?r:Promise.resolve()).then(i(E().m(function t(){return E().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,s;case 1:if(e.issues.length!==o){t.n=2;break}return t.a(2);case 2:a||(a=Za(e,o));case 3:return t.a(2)}},t)})));else{if(e.issues.length===o)return 0;a||(a=Za(e,o))}};for(o.s();!(u=o.n()).done;)s()}catch(e){o.e(e)}finally{o.f()}return r?r.then(function(){return e}):e},h=function(t,n,r){if(Za(t))return t.aborted=!0,t;var a=p(n,u,r);if(a instanceof Promise){if(!1===r.async)throw new ma;return a.then(function(t){return e._zod.parse(t,r)})}return e._zod.parse(a,r)};e._zod.run=function(t,n){if(n.skipChecks)return e._zod.parse(t,n);if("backward"===n.direction){var r=e._zod.parse({value:t.value,issues:[]},g(g({},n),{},{skipChecks:!0}));return r instanceof Promise?r.then(function(e){return h(e,t,n)}):h(r,t,n)}var a=e._zod.parse(t,n);if(a instanceof Promise){if(!1===n.async)throw new ma;return a.then(function(e){return p(e,u,n)})}return p(a,u,n)}}e["~standard"]={validate:function(t){try{var n,r=Xa(e,t);return r.success?{value:r.data}:{issues:null===(n=r.error)||void 0===n?void 0:n.issues}}catch(n){return ti(e,t).then(function(e){var t;return e.success?{value:e.data}:{issues:null===(t=e.error)||void 0===t?void 0:t.issues}})}},vendor:"zod",version:1}}),to=va("$ZodString",function(e,t){var n,r,u;eo.init(e,t),e._zod.pattern=null!==(n=k(null!==(r=null==e||null===(u=e._zod.bag)||void 0===u?void 0:u.patterns)&&void 0!==r?r:[]).pop())&&void 0!==n?n:function(e){var t,n,r=e?"[\\s\\S]{".concat(null!==(t=null==e?void 0:e.minimum)&&void 0!==t?t:0,",").concat(null!==(n=null==e?void 0:e.maximum)&&void 0!==n?n:"","}"):"[\\s\\S]*";return new RegExp("^".concat(r,"$"))}(e._zod.bag),e._zod.parse=function(n,r){if(t.coerce)try{n.value=String(n.value)}catch(r){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),no=va("$ZodStringFormat",function(e,t){Li.init(e,t),to.init(e,t)}),ro=va("$ZodGUID",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=ci),no.init(e,t)}),uo=va("$ZodUUID",function(e,t){var n;if(t.version){var r,u={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===u)throw new Error('Invalid UUID version: "'.concat(t.version,'"'));null!==(r=t.pattern)&&void 0!==r||(t.pattern=li(u))}else null!==(n=t.pattern)&&void 0!==n||(t.pattern=li());no.init(e,t)}),ao=va("$ZodEmail",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=di),no.init(e,t)}),io=va("$ZodURL",function(e,t){no.init(e,t),e._zod.check=function(n){try{var r=n.value.trim(),u=new URL(r);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(u.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:yi.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(u.protocol.endsWith(":")?u.protocol.slice(0,-1):u.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=u.href:n.value=r)}catch(r){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),oo=va("$ZodEmoji",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),no.init(e,t)}),so=va("$ZodNanoID",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=oi),no.init(e,t)}),co=va("$ZodCUID",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=ni),no.init(e,t)}),lo=va("$ZodCUID2",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=ri),no.init(e,t)}),fo=va("$ZodULID",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=ui),no.init(e,t)}),po=va("$ZodXID",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=ai),no.init(e,t)}),ho=va("$ZodKSUID",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=ii),no.init(e,t)}),vo=va("$ZodISODateTime",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=function(e){var t=bi({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");var r="".concat(t,"(?:").concat(n.join("|"),")");return new RegExp("^".concat(Fi,"T(?:").concat(r,")$"))}(t)),no.init(e,t)}),mo=va("$ZodISODate",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=Ei),no.init(e,t)}),Do=va("$ZodISOTime",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=new RegExp("^".concat(bi(t),"$"))),no.init(e,t)}),yo=va("$ZodISODuration",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=si),no.init(e,t)}),go=va("$ZodIPv4",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=fi),no.init(e,t),e._zod.onattach.push(function(e){e._zod.bag.format="ipv4"})}),Fo=va("$ZodIPv6",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=pi),no.init(e,t),e._zod.onattach.push(function(e){e._zod.bag.format="ipv6"}),e._zod.check=function(n){try{new URL("http://[".concat(n.value,"]"))}catch(r){n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),Eo=va("$ZodCIDRv4",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=hi),no.init(e,t)}),bo=va("$ZodCIDRv6",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=vi),no.init(e,t),e._zod.check=function(n){var r=n.value.split("/");try{if(2!==r.length)throw new Error;var u=A(r,2),a=u[0],i=u[1];if(!i)throw new Error;var o=Number(i);if("".concat(o)!==i)throw new Error;if(o<0||o>128)throw new Error;new URL("http://[".concat(a,"]"))}catch(r){n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function Co(e){if(""===e)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch(e){return!1}}var Ao=va("$ZodBase64",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=mi),no.init(e,t),e._zod.onattach.push(function(e){e._zod.bag.contentEncoding="base64"}),e._zod.check=function(n){Co(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}}),ko=va("$ZodBase64URL",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=Di),no.init(e,t),e._zod.onattach.push(function(e){e._zod.bag.contentEncoding="base64url"}),e._zod.check=function(n){(function(e){if(!Di.test(e))return!1;var t=e.replace(/[-_]/g,function(e){return"-"===e?"+":"/"});return Co(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),wo=va("$ZodE164",function(e,t){var n;null!==(n=t.pattern)&&void 0!==n||(t.pattern=gi),no.init(e,t)}),_o=va("$ZodJWT",function(e,t){no.init(e,t),e._zod.check=function(n){(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;try{var n=e.split(".");if(3!==n.length)return!1;var r=A(n,1)[0];if(!r)return!1;var u=JSON.parse(atob(r));return!("typ"in u&&"JWT"!==(null==u?void 0:u.typ)||!u.alg||t&&(!("alg"in u)||u.alg!==t))}catch(e){return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),So=va("$ZodNumber",function(e,t){var n;eo.init(e,t),e._zod.pattern=null!==(n=e._zod.bag.pattern)&&void 0!==n?n:Ai,e._zod.parse=function(n,r){if(t.coerce)try{n.value=Number(n.value)}catch(e){}var u=n.value;if("number"==typeof u&&!Number.isNaN(u)&&Number.isFinite(u))return n;var a="number"==typeof u?Number.isNaN(u)?"NaN":Number.isFinite(u)?void 0:"Infinity":void 0;return n.issues.push(g({expected:"number",code:"invalid_type",input:u,inst:e},a?{received:a}:{})),n}}),xo=va("$ZodNumber",function(e,t){Pi.init(e,t),So.init(e,t)}),Bo=va("$ZodBoolean",function(e,t){eo.init(e,t),e._zod.pattern=ki,e._zod.parse=function(n,r){if(t.coerce)try{n.value=Boolean(n.value)}catch(e){}var u=n.value;return"boolean"==typeof u||n.issues.push({expected:"boolean",code:"invalid_type",input:u,inst:e}),n}}),Io=va("$ZodNull",function(e,t){eo.init(e,t),e._zod.pattern=wi,e._zod.values=new Set([null]),e._zod.parse=function(t,n){var r=t.value;return null===r||t.issues.push({expected:"null",code:"invalid_type",input:r,inst:e}),t}}),Oo=va("$ZodUnknown",function(e,t){eo.init(e,t),e._zod.parse=function(e){return e}}),To=va("$ZodNever",function(e,t){eo.init(e,t),e._zod.parse=function(t,n){return t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t}});function Po(e,t,n){var r;e.issues.length&&(r=t.issues).push.apply(r,k(La(n,e.issues))),t.value[n]=e.value}var jo=va("$ZodArray",function(e,t){eo.init(e,t),e._zod.parse=function(n,r){var u=n.value;if(!Array.isArray(u))return n.issues.push({expected:"array",code:"invalid_type",input:u,inst:e}),n;n.value=Array(u.length);for(var a=[],i=function(e){var i=u[e],o=t.element._zod.run({value:i,issues:[]},r);o instanceof Promise?a.push(o.then(function(t){return Po(t,n,e)})):Po(o,n,e)},o=0;o ({\n ...iss,\n path: iss.path ? [").concat(h,", ...iss.path] : [").concat(h,"]\n })));\n }\n \n \n if (").concat(p,".value === undefined) {\n if (").concat(h," in input) {\n newResult[").concat(h,"] = undefined;\n }\n } else {\n newResult[").concat(h,"] = ").concat(p,".value;\n }\n \n "))}}catch(e){l.e(e)}finally{l.f()}t.write("payload.value = newResult;"),t.write("return payload;");var v=t.compile();return function(t,n){return v(e,t,n)}}(t.shape)),l=n(l,d),c?Ro([],p,l,d,r,e):l):u(l,d):(l.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),l)}});function Lo(e,t,n,r){var u,a=f(e);try{for(a.s();!(u=a.n()).done;){var i=u.value;if(0===i.issues.length)return t.value=i.value,t}}catch(e){a.e(e)}finally{a.f()}var o=e.filter(function(e){return!Za(e)});return 1===o.length?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(function(e){return e.issues.map(function(e){return qa(e,r,ga())})})}),t)}var $o=va("$ZodUnion",function(e,t){eo.init(e,t),wa(e._zod,"optin",function(){return t.options.some(function(e){return"optional"===e._zod.optin})?"optional":void 0}),wa(e._zod,"optout",function(){return t.options.some(function(e){return"optional"===e._zod.optout})?"optional":void 0}),wa(e._zod,"values",function(){if(t.options.every(function(e){return e._zod.values}))return new Set(t.options.flatMap(function(e){return Array.from(e._zod.values)}))}),wa(e._zod,"pattern",function(){if(t.options.every(function(e){return e._zod.pattern})){var e=t.options.map(function(e){return e._zod.pattern});return new RegExp("^(".concat(e.map(function(e){return Aa(e.source)}).join("|"),")$"))}});var n=1===t.options.length,r=t.options[0]._zod.run;e._zod.parse=function(u,a){if(n)return r(u,a);var i,o=!1,s=[],c=f(t.options);try{for(c.s();!(i=c.n()).done;){var l=i.value._zod.run({value:u.value,issues:[]},a);if(l instanceof Promise)s.push(l),o=!0;else{if(0===l.issues.length)return l;s.push(l)}}}catch(e){c.e(e)}finally{c.f()}return o?Promise.all(s).then(function(t){return Lo(t,u,e,a)}):Lo(s,u,e,a)}}),qo=va("$ZodDiscriminatedUnion",function(e,t){$o.init(e,t);var n=e._zod.parse;wa(e._zod,"propValues",function(){var e,n={},r=f(t.options);try{for(r.s();!(e=r.n()).done;){var u=e.value,a=u._zod.propValues;if(!a||0===Object.keys(a).length)throw new Error('Invalid discriminated union option at index "'.concat(t.options.indexOf(u),'"'));for(var i=0,o=Object.entries(a);i0&&n.issues.push({code:"unrecognized_keys",input:u,inst:e,keys:s})}else{n.value={};var p,h=f(Reflect.ownKeys(u));try{var v=function(){var i=p.value;if("__proto__"===i)return 0;var o=t.keyType._zod.run({value:i,issues:[]},r);if(o instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(o.issues.length)return n.issues.push({code:"invalid_key",origin:"record",issues:o.issues.map(function(e){return qa(e,r,ga())}),input:i,path:[i],inst:e}),n.value[o.value]=o.value,0;var s,c=t.valueType._zod.run({value:u[i],issues:[]},r);c instanceof Promise?a.push(c.then(function(e){var t;e.issues.length&&(t=n.issues).push.apply(t,k(La(i,e.issues))),n.value[o.value]=e.value})):(c.issues.length&&(s=n.issues).push.apply(s,k(La(i,c.issues))),n.value[o.value]=c.value)};for(h.s();!(p=h.n()).done;)v()}catch(e){h.e(e)}finally{h.f()}}return a.length?Promise.all(a).then(function(){return n}):n}}),Ko=va("$ZodEnum",function(e,t){eo.init(e,t);var n=Fa(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp("^(".concat(n.filter(function(e){return ja.has(_(e))}).map(function(e){return"string"==typeof e?Na(e):e.toString()}).join("|"),")$")),e._zod.parse=function(t,u){var a=t.value;return r.has(a)||t.issues.push({code:"invalid_value",values:n,input:a,inst:e}),t}}),Wo=va("$ZodLiteral",function(e,t){if(eo.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");e._zod.values=new Set(t.values),e._zod.pattern=new RegExp("^(".concat(t.values.map(function(e){return"string"==typeof e?Na(e):e?Na(e.toString()):String(e)}).join("|"),")$")),e._zod.parse=function(n,r){var u=n.value;return e._zod.values.has(u)||n.issues.push({code:"invalid_value",values:t.values,input:u,inst:e}),n}}),Qo=va("$ZodTransform",function(e,t){eo.init(e,t),e._zod.parse=function(n,r){if("backward"===r.direction)throw new Da(e.constructor.name);var u=t.transform(n.value,n);if(r.async)return(u instanceof Promise?u:Promise.resolve(u)).then(function(e){return n.value=e,n});if(u instanceof Promise)throw new ma;return n.value=u,n}});function Go(e,t){return e.issues.length&&void 0===t?{issues:[],value:void 0}:e}var Yo=va("$ZodOptional",function(e,t){eo.init(e,t),e._zod.optin="optional",e._zod.optout="optional",wa(e._zod,"values",function(){return t.innerType._zod.values?new Set([].concat(k(t.innerType._zod.values),[void 0])):void 0}),wa(e._zod,"pattern",function(){var e=t.innerType._zod.pattern;return e?new RegExp("^(".concat(Aa(e.source),")?$")):void 0}),e._zod.parse=function(e,n){if("optional"===t.innerType._zod.optin){var r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(function(t){return Go(t,e.value)}):Go(r,e.value)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),Xo=va("$ZodNullable",function(e,t){eo.init(e,t),wa(e._zod,"optin",function(){return t.innerType._zod.optin}),wa(e._zod,"optout",function(){return t.innerType._zod.optout}),wa(e._zod,"pattern",function(){var e=t.innerType._zod.pattern;return e?new RegExp("^(".concat(Aa(e.source),"|null)$")):void 0}),wa(e._zod,"values",function(){return t.innerType._zod.values?new Set([].concat(k(t.innerType._zod.values),[null])):void 0}),e._zod.parse=function(e,n){return null===e.value?e:t.innerType._zod.run(e,n)}}),es=va("$ZodDefault",function(e,t){eo.init(e,t),e._zod.optin="optional",wa(e._zod,"values",function(){return t.innerType._zod.values}),e._zod.parse=function(e,n){if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;var r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(function(e){return ts(e,t)}):ts(r,t)}});function ts(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var ns=va("$ZodPrefault",function(e,t){eo.init(e,t),e._zod.optin="optional",wa(e._zod,"values",function(){return t.innerType._zod.values}),e._zod.parse=function(e,n){return"backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n)}}),rs=va("$ZodNonOptional",function(e,t){eo.init(e,t),wa(e._zod,"values",function(){var e=t.innerType._zod.values;return e?new Set(k(e).filter(function(e){return void 0!==e})):void 0}),e._zod.parse=function(n,r){var u=t.innerType._zod.run(n,r);return u instanceof Promise?u.then(function(t){return us(t,e)}):us(u,e)}});function us(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var as=va("$ZodCatch",function(e,t){eo.init(e,t),wa(e._zod,"optin",function(){return t.innerType._zod.optin}),wa(e._zod,"optout",function(){return t.innerType._zod.optout}),wa(e._zod,"values",function(){return t.innerType._zod.values}),e._zod.parse=function(e,n){if("backward"===n.direction)return t.innerType._zod.run(e,n);var r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(function(r){return e.value=r.value,r.issues.length&&(e.value=t.catchValue(g(g({},e),{},{error:{issues:r.issues.map(function(e){return qa(e,n,ga())})},input:e.value})),e.issues=[]),e}):(e.value=r.value,r.issues.length&&(e.value=t.catchValue(g(g({},e),{},{error:{issues:r.issues.map(function(e){return qa(e,n,ga())})},input:e.value})),e.issues=[]),e)}}),is=va("$ZodPipe",function(e,t){eo.init(e,t),wa(e._zod,"values",function(){return t.in._zod.values}),wa(e._zod,"optin",function(){return t.in._zod.optin}),wa(e._zod,"optout",function(){return t.out._zod.optout}),wa(e._zod,"propValues",function(){return t.in._zod.propValues}),e._zod.parse=function(e,n){if("backward"===n.direction){var r=t.out._zod.run(e,n);return r instanceof Promise?r.then(function(e){return os(e,t.in,n)}):os(r,t.in,n)}var u=t.in._zod.run(e,n);return u instanceof Promise?u.then(function(e){return os(e,t.out,n)}):os(u,t.out,n)}});function os(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var ss=va("$ZodReadonly",function(e,t){eo.init(e,t),wa(e._zod,"propValues",function(){return t.innerType._zod.propValues}),wa(e._zod,"values",function(){return t.innerType._zod.values}),wa(e._zod,"optin",function(){return t.innerType._zod.optin}),wa(e._zod,"optout",function(){return t.innerType._zod.optout}),e._zod.parse=function(e,n){if("backward"===n.direction)return t.innerType._zod.run(e,n);var r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(cs):cs(r)}});function cs(e){return e.value=Object.freeze(e.value),e}var ls=va("$ZodLazy",function(e,t){eo.init(e,t),wa(e._zod,"innerType",function(){return t.getter()}),wa(e._zod,"pattern",function(){return e._zod.innerType._zod.pattern}),wa(e._zod,"propValues",function(){return e._zod.innerType._zod.propValues}),wa(e._zod,"optin",function(){var t;return null!==(t=e._zod.innerType._zod.optin)&&void 0!==t?t:void 0}),wa(e._zod,"optout",function(){var t;return null!==(t=e._zod.innerType._zod.optout)&&void 0!==t?t:void 0}),e._zod.parse=function(t,n){return e._zod.innerType._zod.run(t,n)}}),ds=va("$ZodCustom",function(e,t){xi.init(e,t),eo.init(e,t),e._zod.parse=function(e,t){return e},e._zod.check=function(n){var r=n.value,u=t.fn(r);if(u instanceof Promise)return u.then(function(t){return fs(t,n,r,e)});fs(u,n,r,e)}});function fs(e,t,n,r){if(!e){var u,a={code:"custom",input:n,inst:r,path:k(null!==(u=r._zod.def.path)&&void 0!==u?u:[]),continue:!r._zod.def.abort};r._zod.def.params&&(a.params=r._zod.def.params),t.issues.push(Ha(a))}}var ps=d(function e(){s(this,e),this._map=new WeakMap,this._idmap=new Map},[{key:"add",value:function(e){var t=arguments.length<=1?void 0:arguments[1];if(this._map.set(e,t),t&&"object"===_(t)&&"id"in t){if(this._idmap.has(t.id))throw new Error("ID ".concat(t.id," already exists in the registry"));this._idmap.set(t.id,e)}return this}},{key:"clear",value:function(){return this._map=new WeakMap,this._idmap=new Map,this}},{key:"remove",value:function(e){var t=this._map.get(e);return t&&"object"===_(t)&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}},{key:"get",value:function(e){var t=e._zod.parent;if(t){var n,r=g({},null!==(n=this.get(t))&&void 0!==n?n:{});delete r.id;var u=g(g({},r),this._map.get(e));return Object.keys(u).length?u:void 0}return this._map.get(e)}},{key:"has",value:function(e){return this._map.has(e)}}]);var hs=new ps;function vs(e,t){return new e(g({type:"string",format:"guid",check:"string_format",abort:!1},Ra(t)))}function ms(e,t){return new Ii(g(g({check:"less_than"},Ra(t)),{},{value:e,inclusive:!1}))}function Ds(e,t){return new Ii(g(g({check:"less_than"},Ra(t)),{},{value:e,inclusive:!0}))}function ys(e,t){return new Oi(g(g({check:"greater_than"},Ra(t)),{},{value:e,inclusive:!1}))}function gs(e,t){return new Oi(g(g({check:"greater_than"},Ra(t)),{},{value:e,inclusive:!0}))}function Fs(e,t){return new Ti(g(g({check:"multiple_of"},Ra(t)),{},{value:e}))}function Es(e,t){return new Ri(g(g({check:"max_length"},Ra(t)),{},{maximum:e}))}function bs(e,t){return new Mi(g(g({check:"min_length"},Ra(t)),{},{minimum:e}))}function Cs(e,t){return new Zi(g(g({check:"length_equals"},Ra(t)),{},{length:e}))}function As(e,t){return new $i(g(g({check:"string_format",format:"regex"},Ra(t)),{},{pattern:e}))}function ks(e){return new qi(g({check:"string_format",format:"lowercase"},Ra(e)))}function ws(e){return new Ui(g({check:"string_format",format:"uppercase"},Ra(e)))}function _s(e,t){return new Vi(g(g({check:"string_format",format:"includes"},Ra(t)),{},{includes:e}))}function Ss(e,t){return new Hi(g(g({check:"string_format",format:"starts_with"},Ra(t)),{},{prefix:e}))}function xs(e,t){return new Ji(g(g({check:"string_format",format:"ends_with"},Ra(t)),{},{suffix:e}))}function Bs(e){return new Gi({check:"overwrite",tx:e})}function Is(e){return Bs(function(t){return t.normalize(e)})}function Os(){return Bs(function(e){return e.trim()})}function Ts(){return Bs(function(e){return e.toLowerCase()})}function Ps(){return Bs(function(e){return e.toUpperCase()})}var js=d(function e(t){var n,r,u,a,i;s(this,e),this.counter=0,this.metadataRegistry=null!==(n=null==t?void 0:t.metadata)&&void 0!==n?n:hs,this.target=null!==(r=null==t?void 0:t.target)&&void 0!==r?r:"draft-2020-12",this.unrepresentable=null!==(u=null==t?void 0:t.unrepresentable)&&void 0!==u?u:"throw",this.override=null!==(a=null==t?void 0:t.override)&&void 0!==a?a:function(){},this.io=null!==(i=null==t?void 0:t.io)&&void 0!==i?i:"output",this.seen=new Map},[{key:"process",value:function(e){var t,n,r,u,a=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{path:[],schemaPath:[]},o=e._zod.def,s=this.seen.get(e);if(s)return s.count++,i.schemaPath.includes(e)&&(s.cycle=i.path),s.schema;var c={schema:{},count:1,cycle:void 0,path:i.path};this.seen.set(e,c);var l=null===(t=(n=e._zod).toJSONSchema)||void 0===t?void 0:t.call(n);if(l)c.schema=l;else{var d=g(g({},i),{},{schemaPath:[].concat(k(i.schemaPath),[e]),path:i.path}),p=e._zod.parent;if(p)c.ref=p,this.process(p,d),this.seen.get(p).isParent=!0;else{var h=c.schema;switch(o.type){case"string":var v=h;v.type="string";var m,D=e._zod.bag,y=D.minimum,F=D.maximum,E=D.format,b=D.patterns,C=D.contentEncoding;if("number"==typeof y&&(v.minLength=y),"number"==typeof F&&(v.maxLength=F),E&&(v.format=null!==(m={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""}[E])&&void 0!==m?m:E,""===v.format&&delete v.format),C&&(v.contentEncoding=C),b&&b.size>0){var A=k(b);1===A.length?v.pattern=A[0].source:A.length>1&&(c.schema.allOf=k(A.map(function(e){return g(g({},"draft-7"===a.target||"draft-4"===a.target||"openapi-3.0"===a.target?{type:"string"}:{}),{},{pattern:e.source})})))}break;case"number":var w=h,S=e._zod.bag,x=S.minimum,B=S.maximum,I=S.format,O=S.multipleOf,T=S.exclusiveMaximum,P=S.exclusiveMinimum;"string"==typeof I&&I.includes("int")?w.type="integer":w.type="number","number"==typeof P&&("draft-4"===this.target||"openapi-3.0"===this.target?(w.minimum=P,w.exclusiveMinimum=!0):w.exclusiveMinimum=P),"number"==typeof x&&(w.minimum=x,"number"==typeof P&&"draft-4"!==this.target&&(P>=x?delete w.minimum:delete w.exclusiveMinimum)),"number"==typeof T&&("draft-4"===this.target||"openapi-3.0"===this.target?(w.maximum=T,w.exclusiveMaximum=!0):w.exclusiveMaximum=T),"number"==typeof B&&(w.maximum=B,"number"==typeof T&&"draft-4"!==this.target&&(T<=B?delete w.maximum:delete w.exclusiveMaximum)),"number"==typeof O&&(w.multipleOf=O);break;case"boolean":case"success":h.type="boolean";break;case"bigint":if("throw"===this.unrepresentable)throw new Error("BigInt cannot be represented in JSON Schema");break;case"symbol":if("throw"===this.unrepresentable)throw new Error("Symbols cannot be represented in JSON Schema");break;case"null":"openapi-3.0"===this.target?(h.type="string",h.nullable=!0,h.enum=[null]):h.type="null";break;case"any":case"unknown":break;case"undefined":if("throw"===this.unrepresentable)throw new Error("Undefined cannot be represented in JSON Schema");break;case"void":if("throw"===this.unrepresentable)throw new Error("Void cannot be represented in JSON Schema");break;case"never":h.not={};break;case"date":if("throw"===this.unrepresentable)throw new Error("Date cannot be represented in JSON Schema");break;case"array":var j=h,N=e._zod.bag,z=N.minimum,R=N.maximum;"number"==typeof z&&(j.minItems=z),"number"==typeof R&&(j.maxItems=R),j.type="array",j.items=this.process(o.element,g(g({},d),{},{path:[].concat(k(d.path),["items"])}));break;case"object":var M,Z=h;Z.type="object",Z.properties={};var L=o.shape;for(var $ in L)Z.properties[$]=this.process(L[$],g(g({},d),{},{path:[].concat(k(d.path),["properties",$])}));var q=new Set(Object.keys(L)),U=new Set(k(q).filter(function(e){var t=o.shape[e]._zod;return"input"===a.io?void 0===t.optin:void 0===t.optout}));U.size>0&&(Z.required=Array.from(U)),"never"===(null===(M=o.catchall)||void 0===M?void 0:M._zod.def.type)?Z.additionalProperties=!1:o.catchall?o.catchall&&(Z.additionalProperties=this.process(o.catchall,g(g({},d),{},{path:[].concat(k(d.path),["additionalProperties"])}))):"output"===this.io&&(Z.additionalProperties=!1);break;case"union":var V=h,H=o.options.map(function(e,t){return a.process(e,g(g({},d),{},{path:[].concat(k(d.path),["anyOf",t])}))});V.anyOf=H;break;case"intersection":var J=h,K=this.process(o.left,g(g({},d),{},{path:[].concat(k(d.path),["allOf",0])})),W=this.process(o.right,g(g({},d),{},{path:[].concat(k(d.path),["allOf",1])})),Q=function(e){return"allOf"in e&&1===Object.keys(e).length},G=[].concat(k(Q(K)?K.allOf:[K]),k(Q(W)?W.allOf:[W]));J.allOf=G;break;case"tuple":var Y=h;Y.type="array";var X="draft-2020-12"===this.target?"prefixItems":"items",ee="draft-2020-12"===this.target||"openapi-3.0"===this.target?"items":"additionalItems",te=o.items.map(function(e,t){return a.process(e,g(g({},d),{},{path:[].concat(k(d.path),[X,t])}))}),ne=o.rest?this.process(o.rest,g(g({},d),{},{path:[].concat(k(d.path),[ee],k("openapi-3.0"===this.target?[o.items.length]:[]))})):null;"draft-2020-12"===this.target?(Y.prefixItems=te,ne&&(Y.items=ne)):"openapi-3.0"===this.target?(Y.items={anyOf:te},ne&&Y.items.anyOf.push(ne),Y.minItems=te.length,ne||(Y.maxItems=te.length)):(Y.items=te,ne&&(Y.additionalItems=ne));var re=e._zod.bag,ue=re.minimum,ae=re.maximum;"number"==typeof ue&&(Y.minItems=ue),"number"==typeof ae&&(Y.maxItems=ae);break;case"record":var ie=h;ie.type="object","draft-7"!==this.target&&"draft-2020-12"!==this.target||(ie.propertyNames=this.process(o.keyType,g(g({},d),{},{path:[].concat(k(d.path),["propertyNames"])}))),ie.additionalProperties=this.process(o.valueType,g(g({},d),{},{path:[].concat(k(d.path),["additionalProperties"])}));break;case"map":if("throw"===this.unrepresentable)throw new Error("Map cannot be represented in JSON Schema");break;case"set":if("throw"===this.unrepresentable)throw new Error("Set cannot be represented in JSON Schema");break;case"enum":var oe=h,se=Fa(o.entries);se.every(function(e){return"number"==typeof e})&&(oe.type="number"),se.every(function(e){return"string"==typeof e})&&(oe.type="string"),oe.enum=se;break;case"literal":var ce,le=h,de=[],fe=f(o.values);try{for(fe.s();!(ce=fe.n()).done;){var pe=ce.value;if(void 0===pe){if("throw"===this.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof pe){if("throw"===this.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");de.push(Number(pe))}else de.push(pe)}}catch(e){fe.e(e)}finally{fe.f()}if(0===de.length);else if(1===de.length){var he=de[0];le.type=null===he?"null":_(he),"draft-4"===this.target||"openapi-3.0"===this.target?le.enum=[he]:le.const=he}else de.every(function(e){return"number"==typeof e})&&(le.type="number"),de.every(function(e){return"string"==typeof e})&&(le.type="string"),de.every(function(e){return"boolean"==typeof e})&&(le.type="string"),de.every(function(e){return null===e})&&(le.type="null"),le.enum=de;break;case"file":var ve=h,me={type:"string",format:"binary",contentEncoding:"binary"},De=e._zod.bag,ye=De.minimum,ge=De.maximum,Fe=De.mime;void 0!==ye&&(me.minLength=ye),void 0!==ge&&(me.maxLength=ge),Fe?1===Fe.length?(me.contentMediaType=Fe[0],Object.assign(ve,me)):ve.anyOf=Fe.map(function(e){return g(g({},me),{},{contentMediaType:e})}):Object.assign(ve,me);break;case"transform":if("throw"===this.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema");break;case"nullable":var Ee=this.process(o.innerType,d);"openapi-3.0"===this.target?(c.ref=o.innerType,h.nullable=!0):h.anyOf=[Ee,{type:"null"}];break;case"nonoptional":case"promise":case"optional":this.process(o.innerType,d),c.ref=o.innerType;break;case"default":this.process(o.innerType,d),c.ref=o.innerType,h.default=JSON.parse(JSON.stringify(o.defaultValue));break;case"prefault":this.process(o.innerType,d),c.ref=o.innerType,"input"===this.io&&(h._prefault=JSON.parse(JSON.stringify(o.defaultValue)));break;case"catch":var be;this.process(o.innerType,d),c.ref=o.innerType;try{be=o.catchValue(void 0)}catch(e){throw new Error("Dynamic catch values are not supported in JSON Schema")}h.default=be;break;case"nan":if("throw"===this.unrepresentable)throw new Error("NaN cannot be represented in JSON Schema");break;case"template_literal":var Ce=h,Ae=e._zod.pattern;if(!Ae)throw new Error("Pattern not found in template literal");Ce.type="string",Ce.pattern=Ae.source;break;case"pipe":var ke="input"===this.io?"transform"===o.in._zod.def.type?o.out:o.in:o.out;this.process(ke,d),c.ref=ke;break;case"readonly":this.process(o.innerType,d),c.ref=o.innerType,h.readOnly=!0;break;case"lazy":var we=e._zod.innerType;this.process(we,d),c.ref=we;break;case"custom":if("throw"===this.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema");break;case"function":if("throw"===this.unrepresentable)throw new Error("Function types cannot be represented in JSON Schema")}}}var _e=this.metadataRegistry.get(e);return _e&&Object.assign(c.schema,_e),"input"===this.io&&Ns(e)&&(delete c.schema.examples,delete c.schema.default),"input"===this.io&&c.schema._prefault&&(null!==(r=(u=c.schema).default)&&void 0!==r||(u.default=c.schema._prefault)),delete c.schema._prefault,this.seen.get(e).schema}},{key:"emit",value:function(e,t){var n,r,u,a,i,o,s=this,c={cycles:null!==(n=null==t?void 0:t.cycles)&&void 0!==n?n:"ref",reused:null!==(r=null==t?void 0:t.reused)&&void 0!==r?r:"inline",external:null!==(u=null==t?void 0:t.external)&&void 0!==u?u:void 0},l=this.seen.get(e);if(!l)throw new Error("Unprocessed schema. This is a bug in Zod.");var d=function(e){if(!e[1].schema.$ref){var t=e[1],n=function(e){var t,n="draft-2020-12"===s.target?"$defs":"definitions";if(c.external){var r,u,a,i,o=null===(r=c.external.registry.get(e[0]))||void 0===r?void 0:r.id,d=null!==(u=c.external.uri)&&void 0!==u?u:function(e){return e};if(o)return{ref:d(o)};var f=null!==(a=null!==(i=e[1].defId)&&void 0!==i?i:e[1].schema.id)&&void 0!==a?a:"schema".concat(s.counter++);return e[1].defId=f,{defId:f,ref:"".concat(d("__shared"),"#/").concat(n,"/").concat(f)}}if(e[1]===l)return{ref:"#"};var p="".concat("#","/").concat(n,"/"),h=null!==(t=e[1].schema.id)&&void 0!==t?t:"__schema".concat(s.counter++);return{defId:h,ref:p+h}}(e),r=n.ref,u=n.defId;t.def=g({},t.schema),u&&(t.defId=u);var a=t.schema;for(var i in a)delete a[i];a.$ref=r}};if("throw"===c.cycles){var p,h=f(this.seen.entries());try{for(h.s();!(p=h.n()).done;){var v,m=p.value[1];if(m.cycle)throw new Error("Cycle detected: "+"#/".concat(null===(v=m.cycle)||void 0===v?void 0:v.join("/"),"/")+'\n\nSet the `cycles` parameter to `"ref"` to resolve cyclical schemas with defs.')}}catch(e){h.e(e)}finally{h.f()}}var D,y=f(this.seen.entries());try{for(y.s();!(D=y.n()).done;){var F,E=D.value,b=E[1];if(e!==E[0]){if(c.external){var C,A=null===(C=c.external.registry.get(E[0]))||void 0===C?void 0:C.id;if(e!==E[0]&&A){d(E);continue}}((null===(F=this.metadataRegistry.get(E[0]))||void 0===F?void 0:F.id)||b.cycle||b.count>1&&"ref"===c.reused)&&d(E)}else d(E)}}catch(e){y.e(e)}finally{y.f()}var w,_=function(e,t){var n,r,u=s.seen.get(e),a=null!==(n=u.def)&&void 0!==n?n:u.schema,i=g({},a);if(null!==u.ref){var o=u.ref;if(u.ref=null,o){_(o,t);var c,l=s.seen.get(o).schema;!l.$ref||"draft-7"!==t.target&&"draft-4"!==t.target&&"openapi-3.0"!==t.target?(Object.assign(a,l),Object.assign(a,i)):(a.allOf=null!==(c=a.allOf)&&void 0!==c?c:[],a.allOf.push(l))}u.isParent||s.override({zodSchema:e,jsonSchema:a,path:null!==(r=u.path)&&void 0!==r?r:[]})}},S=f(k(this.seen.entries()).reverse());try{for(S.s();!(w=S.n()).done;){var x=w.value;_(x[0],{target:this.target})}}catch(e){S.e(e)}finally{S.f()}var B={};if("draft-2020-12"===this.target?B.$schema="https://json-schema.org/draft/2020-12/schema":"draft-7"===this.target?B.$schema="http://json-schema.org/draft-07/schema#":"draft-4"===this.target?B.$schema="http://json-schema.org/draft-04/schema#":"openapi-3.0"===this.target||console.warn("Invalid target: ".concat(this.target)),null!==(a=c.external)&&void 0!==a&&a.uri){var I,O=null===(I=c.external.registry.get(e))||void 0===I?void 0:I.id;if(!O)throw new Error("Schema is missing an `id` property");B.$id=c.external.uri(O)}Object.assign(B,l.def);var T,P=null!==(i=null===(o=c.external)||void 0===o?void 0:o.defs)&&void 0!==i?i:{},j=f(this.seen.entries());try{for(j.s();!(T=j.n()).done;){var N=T.value[1];N.def&&N.defId&&(P[N.defId]=N.def)}}catch(e){j.e(e)}finally{j.f()}c.external||Object.keys(P).length>0&&("draft-2020-12"===this.target?B.$defs=P:B.definitions=P);try{return JSON.parse(JSON.stringify(B))}catch(e){throw new Error("Error converting schema to JSON.")}}}]);function Ns(e,t){var n=null!=t?t:{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);var r=e._zod.def;switch(r.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":case"custom":case"success":case"catch":case"function":return!1;case"array":return Ns(r.element,n);case"object":for(var u in r.shape)if(Ns(r.shape[u],n))return!0;return!1;case"union":var a,i=f(r.options);try{for(i.s();!(a=i.n()).done;)if(Ns(a.value,n))return!0}catch(e){i.e(e)}finally{i.f()}return!1;case"intersection":return Ns(r.left,n)||Ns(r.right,n);case"tuple":var o,s=f(r.items);try{for(s.s();!(o=s.n()).done;)if(Ns(o.value,n))return!0}catch(e){s.e(e)}finally{s.f()}return!(!r.rest||!Ns(r.rest,n));case"record":case"map":return Ns(r.keyType,n)||Ns(r.valueType,n);case"set":return Ns(r.valueType,n);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":case"default":case"prefault":return Ns(r.innerType,n);case"lazy":return Ns(r.getter(),n);case"transform":return!0;case"pipe":return Ns(r.in,n)||Ns(r.out,n)}throw new Error("Unknown schema type: ".concat(r.type))}var zs=Object.freeze({__proto__:null,endsWith:xs,gt:ys,gte:gs,includes:_s,length:Cs,lowercase:ks,lt:ms,lte:Ds,maxLength:Es,maxSize:function(e,t){return new ji(g(g({check:"max_size"},Ra(t)),{},{maximum:e}))},mime:function(e,t){return new Qi(g({check:"mime_type",mime:e},Ra(t)))},minLength:bs,minSize:function(e,t){return new Ni(g(g({check:"min_size"},Ra(t)),{},{minimum:e}))},multipleOf:Fs,negative:function(e){return ms(0,e)},nonnegative:function(e){return gs(0,e)},nonpositive:function(e){return Ds(0,e)},normalize:Is,overwrite:Bs,positive:function(e){return ys(0,e)},property:function(e,t,n){return new Wi(g({check:"property",property:e,schema:t},Ra(n)))},regex:As,size:function(e,t){return new zi(g(g({check:"size_equals"},Ra(t)),{},{size:e}))},startsWith:Ss,toLowerCase:Ts,toUpperCase:Ps,trim:Os,uppercase:ws}),Rs=va("ZodISODateTime",function(e,t){vo.init(e,t),ic.init(e,t)});var Ms=va("ZodISODate",function(e,t){mo.init(e,t),ic.init(e,t)});var Zs=va("ZodISOTime",function(e,t){Do.init(e,t),ic.init(e,t)});var Ls=va("ZodISODuration",function(e,t){yo.init(e,t),ic.init(e,t)});var $s,qs=va("ZodError",function(e,t){Ka.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:function(t){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e.message},n={_errors:[]},r=function(e){var u,a=f(e.issues);try{for(a.s();!(u=a.n()).done;){var i=u.value;if("invalid_union"===i.code&&i.errors.length)i.errors.map(function(e){return r({issues:e})});else if("invalid_key"===i.code)r({issues:i.issues});else if("invalid_element"===i.code)r({issues:i.issues});else if(0===i.path.length)n._errors.push(t(i));else for(var o=n,s=0;s1&&void 0!==arguments[1]?arguments[1]:function(e){return e.message},r={},u=[],a=f(e.issues);try{for(a.s();!(t=a.n()).done;){var i=t.value;i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(n(i))):u.push(n(i))}}catch(e){a.e(e)}finally{a.f()}return{formErrors:u,fieldErrors:r}}(e,t)}},addIssue:{value:function(t){e.issues.push(t),e.message=JSON.stringify(e.issues,Ea,2)}},addIssues:{value:function(t){var n;(n=e.issues).push.apply(n,k(t)),e.message=JSON.stringify(e.issues,Ea,2)}},isEmpty:{get:function(){return 0===e.issues.length}}})},{Parent:Error}),Us=Qa(qs),Vs=Ga(qs),Hs=Ya(qs),Js=ei(qs),Ks=($s=qs,function(e,t,n){var r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Qa($s)(e,t,r)}),Ws=function(e){return function(t,n,r){return Qa(e)(t,n,r)}}(qs),Qs=function(e){return t=i(E().m(function t(n,r,u){var a;return E().w(function(t){for(;;)if(0===t.n)return a=u?Object.assign(u,{direction:"backward"}):{direction:"backward"},t.a(2,Ga(e)(n,r,a))},t)})),function(e,n,r){return t.apply(this,arguments)};var t}(qs),Gs=function(e){return t=i(E().m(function t(n,r,u){return E().w(function(t){for(;;)if(0===t.n)return t.a(2,Ga(e)(n,r,u))},t)})),function(e,n,r){return t.apply(this,arguments)};var t}(qs),Ys=function(e){return function(t,n,r){var u=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Ya(e)(t,n,u)}}(qs),Xs=function(e){return function(t,n,r){return Ya(e)(t,n,r)}}(qs),ec=function(e){return t=i(E().m(function t(n,r,u){var a;return E().w(function(t){for(;;)if(0===t.n)return a=u?Object.assign(u,{direction:"backward"}):{direction:"backward"},t.a(2,ei(e)(n,r,a))},t)})),function(e,n,r){return t.apply(this,arguments)};var t}(qs),tc=function(e){return t=i(E().m(function t(n,r,u){return E().w(function(t){for(;;)if(0===t.n)return t.a(2,ei(e)(n,r,u))},t)})),function(e,n,r){return t.apply(this,arguments)};var t}(qs),nc=va("ZodType",function(e,t){return eo.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=function(){for(var n,r=arguments.length,u=new Array(r),a=0;a1&&void 0!==arguments[1]?arguments[1]:{})}(t,n))},e.superRefine=function(t){return e.check(function(e){var t=function(e){var t=new xi(g({check:"custom"},Ra(void 0)));return t._zod.check=e,t}(function(n){return n.addIssue=function(e){if("string"==typeof e)n.issues.push(Ha(e,n.value,t._zod.def));else{var r,u,a,i,o=e;o.fatal&&(o.continue=!1),null!==(r=o.code)&&void 0!==r||(o.code="custom"),null!==(u=o.input)&&void 0!==u||(o.input=n.value),null!==(a=o.inst)&&void 0!==a||(o.inst=t),null!==(i=o.continue)&&void 0!==i||(o.continue=!t._zod.def.abort),n.issues.push(Ha(o))}},e(n.value,n)});return t}(t))},e.overwrite=function(t){return e.check(Bs(t))},e.optional=function(){return tl(e)},e.nullable=function(){return rl(e)},e.nullish=function(){return tl(rl(e))},e.nonoptional=function(t){return function(e,t){return new il(g({type:"nonoptional",innerType:e},Ra(t)))}(e,t)},e.array=function(){return Mc(e)},e.or=function(t){return Uc([e,t])},e.and=function(t){return new Hc({type:"intersection",left:e,right:t})},e.transform=function(t){return cl(e,new Xc({type:"transform",transform:t}))},e.default=function(t){return n=t,new ul({type:"default",innerType:e,get defaultValue(){return"function"==typeof n?n():Pa(n)}});var n},e.prefault=function(t){return n=t,new al({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof n?n():Pa(n)}});var n},e.catch=function(t){return new ol({type:"catch",innerType:e,catchValue:"function"==typeof(n=t)?n:function(){return n}});var n},e.pipe=function(t){return cl(e,t)},e.readonly=function(){return new fl({type:"readonly",innerType:e})},e.describe=function(t){var n=e.clone();return hs.add(n,{description:t}),n},Object.defineProperty(e,"description",{get:function(){var t;return null===(t=hs.get(e))||void 0===t?void 0:t.description},configurable:!0}),e.meta=function(){if(0===arguments.length)return hs.get(e);var t=e.clone();return hs.add(t,arguments.length<=0?void 0:arguments[0]),t},e.isOptional=function(){return e.safeParse(void 0).success},e.isNullable=function(){return e.safeParse(null).success},e}),rc=va("_ZodString",function(e,t){var n,r,u;to.init(e,t),nc.init(e,t);var a=e._zod.bag;e.format=null!==(n=a.format)&&void 0!==n?n:null,e.minLength=null!==(r=a.minimum)&&void 0!==r?r:null,e.maxLength=null!==(u=a.maximum)&&void 0!==u?u:null,e.regex=function(){return e.check(As.apply(zs,arguments))},e.includes=function(){return e.check(_s.apply(zs,arguments))},e.startsWith=function(){return e.check(Ss.apply(zs,arguments))},e.endsWith=function(){return e.check(xs.apply(zs,arguments))},e.min=function(){return e.check(bs.apply(zs,arguments))},e.max=function(){return e.check(Es.apply(zs,arguments))},e.length=function(){return e.check(Cs.apply(zs,arguments))},e.nonempty=function(){for(var t=arguments.length,n=new Array(t),r=0;r0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");var r=Sa(e._zod.def,{get shape(){var n=g(g({},e._zod.def.shape),t);return _a(this,"shape",n),n},checks:[]});return za(e,r)}(e,t)},e.safeExtend=function(t){return function(e,t){if(!Ta(t))throw new Error("Invalid input to safeExtend: expected a plain object");var n=g(g({},e._zod.def),{},{get shape(){var n=g(g({},e._zod.def.shape),t);return _a(this,"shape",n),n},checks:e._zod.def.checks});return za(e,n)}(e,t)},e.merge=function(t){return function(e,t){var n=Sa(e._zod.def,{get shape(){var n=g(g({},e._zod.def.shape),t._zod.def.shape);return _a(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return za(e,n)}(e,t)},e.pick=function(t){return function(e,t){var n=e._zod.def;return za(e,Sa(e._zod.def,{get shape(){var e={};for(var r in t){if(!(r in n.shape))throw new Error('Unrecognized key: "'.concat(r,'"'));t[r]&&(e[r]=n.shape[r])}return _a(this,"shape",e),e},checks:[]}))}(e,t)},e.omit=function(t){return function(e,t){var n=e._zod.def,r=Sa(e._zod.def,{get shape(){var r=g({},e._zod.def.shape);for(var u in t){if(!(u in n.shape))throw new Error('Unrecognized key: "'.concat(u,'"'));t[u]&&delete r[u]}return _a(this,"shape",r),r},checks:[]});return za(e,r)}(e,t)},e.partial=function(){return function(e,t,n){var r=Sa(t._zod.def,{get shape(){var r=t._zod.def.shape,u=g({},r);if(n)for(var a in n){if(!(a in r))throw new Error('Unrecognized key: "'.concat(a,'"'));n[a]&&(u[a]=e?new e({type:"optional",innerType:r[a]}):r[a])}else for(var i in r)u[i]=e?new e({type:"optional",innerType:r[i]}):r[i];return _a(this,"shape",u),u},checks:[]});return za(t,r)}(el,e,arguments.length<=0?void 0:arguments[0])},e.required=function(){return function(e,t,n){var r=Sa(t._zod.def,{get shape(){var r=t._zod.def.shape,u=g({},r);if(n)for(var a in n){if(!(a in u))throw new Error('Unrecognized key: "'.concat(a,'"'));n[a]&&(u[a]=new e({type:"nonoptional",innerType:r[a]}))}else for(var i in r)u[i]=new e({type:"nonoptional",innerType:r[i]});return _a(this,"shape",u),u},checks:[]});return za(t,r)}(il,e,arguments.length<=0?void 0:arguments[0])}});function Lc(e,t){var n=g({type:"object",shape:null!=e?e:{}},Ra(t));return new Zc(n)}function $c(e,t){return new Zc(g({type:"object",shape:e,catchall:zc()},Ra(t)))}var qc=va("ZodUnion",function(e,t){$o.init(e,t),nc.init(e,t),e.options=t.options});function Uc(e,t){return new qc(g({type:"union",options:e},Ra(t)))}var Vc=va("ZodDiscriminatedUnion",function(e,t){qc.init(e,t),qo.init(e,t)}),Hc=va("ZodIntersection",function(e,t){Uo.init(e,t),nc.init(e,t)}),Jc=va("ZodRecord",function(e,t){Jo.init(e,t),nc.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function Kc(e,t,n){return new Jc(g({type:"record",keyType:e,valueType:t},Ra(n)))}var Wc=va("ZodEnum",function(e,t){Ko.init(e,t),nc.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);var n=new Set(Object.keys(t.entries));e.extract=function(e,r){var u,a={},i=f(e);try{for(i.s();!(u=i.n()).done;){var o=u.value;if(!n.has(o))throw new Error("Key ".concat(o," not found in enum"));a[o]=t.entries[o]}}catch(e){i.e(e)}finally{i.f()}return new Wc(g(g(g({},t),{},{checks:[]},Ra(r)),{},{entries:a}))},e.exclude=function(e,r){var u,a=g({},t.entries),i=f(e);try{for(i.s();!(u=i.n()).done;){var o=u.value;if(!n.has(o))throw new Error("Key ".concat(o," not found in enum"));delete a[o]}}catch(e){i.e(e)}finally{i.f()}return new Wc(g(g(g({},t),{},{checks:[]},Ra(r)),{},{entries:a}))}});function Qc(e,t){var n=Array.isArray(e)?Object.fromEntries(e.map(function(e){return[e,e]})):e;return new Wc(g({type:"enum",entries:n},Ra(t)))}var Gc=va("ZodLiteral",function(e,t){Wo.init(e,t),nc.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get:function(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Yc(e,t){return new Gc(g({type:"literal",values:Array.isArray(e)?e:[e]},Ra(t)))}var Xc=va("ZodTransform",function(e,t){Qo.init(e,t),nc.init(e,t),e._zod.parse=function(n,r){if("backward"===r.direction)throw new Da(e.constructor.name);n.addIssue=function(r){if("string"==typeof r)n.issues.push(Ha(r,n.value,t));else{var u,a,i,o=r;o.fatal&&(o.continue=!1),null!==(u=o.code)&&void 0!==u||(o.code="custom"),null!==(a=o.input)&&void 0!==a||(o.input=n.value),null!==(i=o.inst)&&void 0!==i||(o.inst=e),n.issues.push(Ha(o))}};var u=t.transform(n.value,n);return u instanceof Promise?u.then(function(e){return n.value=e,n}):(n.value=u,n)}}),el=va("ZodOptional",function(e,t){Yo.init(e,t),nc.init(e,t),e.unwrap=function(){return e._zod.def.innerType}});function tl(e){return new el({type:"optional",innerType:e})}var nl=va("ZodNullable",function(e,t){Xo.init(e,t),nc.init(e,t),e.unwrap=function(){return e._zod.def.innerType}});function rl(e){return new nl({type:"nullable",innerType:e})}var ul=va("ZodDefault",function(e,t){es.init(e,t),nc.init(e,t),e.unwrap=function(){return e._zod.def.innerType},e.removeDefault=e.unwrap}),al=va("ZodPrefault",function(e,t){ns.init(e,t),nc.init(e,t),e.unwrap=function(){return e._zod.def.innerType}}),il=va("ZodNonOptional",function(e,t){rs.init(e,t),nc.init(e,t),e.unwrap=function(){return e._zod.def.innerType}}),ol=va("ZodCatch",function(e,t){as.init(e,t),nc.init(e,t),e.unwrap=function(){return e._zod.def.innerType},e.removeCatch=e.unwrap}),sl=va("ZodPipe",function(e,t){is.init(e,t),nc.init(e,t),e.in=t.in,e.out=t.out});function cl(e,t){return new sl({type:"pipe",in:e,out:t})}var ll,dl,fl=va("ZodReadonly",function(e,t){ss.init(e,t),nc.init(e,t),e.unwrap=function(){return e._zod.def.innerType}}),pl=va("ZodLazy",function(e,t){ls.init(e,t),nc.init(e,t),e.unwrap=function(){return e._zod.def.getter()}}),hl=va("ZodCustom",function(e,t){ds.init(e,t),nc.init(e,t)});function vl(e,t){return function(e,t,n){var r,u=Ra(n);return null!==(r=u.abort)&&void 0!==r||(u.abort=!0),new e(g({type:"custom",check:"custom",fn:t},u))}(hl,null!=e?e:function(){return!0},t)}function ml(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{error:"Input not instance of ".concat(e.name)},n=new hl(g({type:"custom",check:"custom",fn:function(t){return t instanceof e},abort:!0},Ra(t)));return n._zod.bag.Class=e,n}!function(e){e.assertEqual=function(e){},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=function(e){var t,n={},r=f(e);try{for(r.s();!(t=r.n()).done;){var u=t.value;n[u]=u}}catch(e){r.e(e)}finally{r.f()}return n},e.getValidEnumValues=function(t){var n,r={},u=f(e.objectKeys(t).filter(function(e){return"number"!=typeof t[t[e]]}));try{for(u.s();!(n=u.n()).done;){var a=n.value;r[a]=t[a]}}catch(e){u.e(e)}finally{u.f()}return e.objectValues(r)},e.objectValues=function(t){return e.objectKeys(t).map(function(e){return t[e]})},e.objectKeys="function"==typeof Object.keys?function(e){return Object.keys(e)}:function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=function(e,t){var n,r=f(e);try{for(r.s();!(n=r.n()).done;){var u=n.value;if(t(u))return u}}catch(e){r.e(e)}finally{r.f()}},e.isInteger="function"==typeof Number.isInteger?function(e){return Number.isInteger(e)}:function(e){return"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e},e.joinValues=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" | ";return e.map(function(e){return"string"==typeof e?"'".concat(e,"'"):e}).join(t)},e.jsonStringifyReplacer=function(e,t){return"bigint"==typeof t?t.toString():t}}(ll||(ll={})),function(e){e.mergeShapes=function(e,t){return g(g({},e),t)}}(dl||(dl={}));var Dl=ll.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),yl=function(e){switch(_(e)){case"undefined":return Dl.undefined;case"string":return Dl.string;case"number":return Number.isNaN(e)?Dl.nan:Dl.number;case"boolean":return Dl.boolean;case"function":return Dl.function;case"bigint":return Dl.bigint;case"symbol":return Dl.symbol;case"object":return Array.isArray(e)?Dl.array:null===e?Dl.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?Dl.promise:"undefined"!=typeof Map&&e instanceof Map?Dl.map:"undefined"!=typeof Set&&e instanceof Set?Dl.set:"undefined"!=typeof Date&&e instanceof Date?Dl.date:Dl.object;default:return Dl.unknown}},gl=ll.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Fl=function(){function e(t){var n;s(this,e),(n=o(this,e)).issues=[],n.addIssue=function(e){n.issues=[].concat(k(n.issues),[e])},n.addIssues=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];n.issues=[].concat(k(n.issues),k(e))};var r=(this instanceof e?this.constructor:void 0).prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,r):n.__proto__=r,n.name="ZodError",n.issues=t,n}return m(e,x(Error)),d(e,[{key:"errors",get:function(){return this.issues}},{key:"format",value:function(e){var t=e||function(e){return e.message},n={_errors:[]},r=function(e){var u,a=f(e.issues);try{for(a.s();!(u=a.n()).done;){var i=u.value;if("invalid_union"===i.code)i.unionErrors.map(r);else if("invalid_return_type"===i.code)r(i.returnTypeError);else if("invalid_arguments"===i.code)r(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else for(var o=n,s=0;s0&&void 0!==arguments[0]?arguments[0]:function(e){return e.message},n=Object.create(null),r=[],u=f(this.issues);try{for(u.s();!(e=u.n()).done;){var a=e.value;if(a.path.length>0){var i=a.path[0];n[i]=n[i]||[],n[i].push(t(a))}else r.push(t(a))}}catch(e){u.e(e)}finally{u.f()}return{formErrors:r,fieldErrors:n}}},{key:"formErrors",get:function(){return this.flatten()}}],[{key:"assert",value:function(t){if(!(t instanceof e))throw new Error("Not a ZodError: ".concat(t))}}])}();Fl.create=function(e){return new Fl(e)};var El=function(e,t){var n;switch(e.code){case gl.invalid_type:n=e.received===Dl.undefined?"Required":"Expected ".concat(e.expected,", received ").concat(e.received);break;case gl.invalid_literal:n="Invalid literal value, expected ".concat(JSON.stringify(e.expected,ll.jsonStringifyReplacer));break;case gl.unrecognized_keys:n="Unrecognized key(s) in object: ".concat(ll.joinValues(e.keys,", "));break;case gl.invalid_union:n="Invalid input";break;case gl.invalid_union_discriminator:n="Invalid discriminator value. Expected ".concat(ll.joinValues(e.options));break;case gl.invalid_enum_value:n="Invalid enum value. Expected ".concat(ll.joinValues(e.options),", received '").concat(e.received,"'");break;case gl.invalid_arguments:n="Invalid function arguments";break;case gl.invalid_return_type:n="Invalid function return type";break;case gl.invalid_date:n="Invalid date";break;case gl.invalid_string:"object"===_(e.validation)?"includes"in e.validation?(n='Invalid input: must include "'.concat(e.validation.includes,'"'),"number"==typeof e.validation.position&&(n="".concat(n," at one or more positions greater than or equal to ").concat(e.validation.position))):"startsWith"in e.validation?n='Invalid input: must start with "'.concat(e.validation.startsWith,'"'):"endsWith"in e.validation?n='Invalid input: must end with "'.concat(e.validation.endsWith,'"'):ll.assertNever(e.validation):n="regex"!==e.validation?"Invalid ".concat(e.validation):"Invalid";break;case gl.too_small:n="array"===e.type?"Array must contain ".concat(e.exact?"exactly":e.inclusive?"at least":"more than"," ").concat(e.minimum," element(s)"):"string"===e.type?"String must contain ".concat(e.exact?"exactly":e.inclusive?"at least":"over"," ").concat(e.minimum," character(s)"):"number"===e.type||"bigint"===e.type?"Number must be ".concat(e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than ").concat(e.minimum):"date"===e.type?"Date must be ".concat(e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than ").concat(new Date(Number(e.minimum))):"Invalid input";break;case gl.too_big:n="array"===e.type?"Array must contain ".concat(e.exact?"exactly":e.inclusive?"at most":"less than"," ").concat(e.maximum," element(s)"):"string"===e.type?"String must contain ".concat(e.exact?"exactly":e.inclusive?"at most":"under"," ").concat(e.maximum," character(s)"):"number"===e.type?"Number must be ".concat(e.exact?"exactly":e.inclusive?"less than or equal to":"less than"," ").concat(e.maximum):"bigint"===e.type?"BigInt must be ".concat(e.exact?"exactly":e.inclusive?"less than or equal to":"less than"," ").concat(e.maximum):"date"===e.type?"Date must be ".concat(e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"," ").concat(new Date(Number(e.maximum))):"Invalid input";break;case gl.custom:n="Invalid input";break;case gl.invalid_intersection_types:n="Intersection results could not be merged";break;case gl.not_multiple_of:n="Number must be a multiple of ".concat(e.multipleOf);break;case gl.not_finite:n="Number must be finite";break;default:n=t.defaultError,ll.assertNever(e)}return{message:n}},bl=El;function Cl(){return bl}var Al=function(e){var t=e.data,n=e.path,r=e.errorMaps,u=e.issueData,a=[].concat(k(n),k(u.path||[])),i=g(g({},u),{},{path:a});if(void 0!==u.message)return g(g({},u),{},{path:a,message:u.message});var o,s="",c=r.filter(function(e){return!!e}).slice().reverse(),l=f(c);try{for(l.s();!(o=l.n()).done;)s=(0,o.value)(i,{data:t,defaultError:s}).message}catch(e){l.e(e)}finally{l.f()}return g(g({},u),{},{path:a,message:s})};function kl(e,t){var n=Cl(),r=Al({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===El?void 0:El].filter(function(e){return!!e})});e.common.issues.push(r)}var wl,_l=function(){function e(){s(this,e),this.value="valid"}return d(e,[{key:"dirty",value:function(){"valid"===this.value&&(this.value="dirty")}},{key:"abort",value:function(){"aborted"!==this.value&&(this.value="aborted")}}],[{key:"mergeArray",value:function(e,t){var n,r=[],u=f(t);try{for(u.s();!(n=u.n()).done;){var a=n.value;if("aborted"===a.status)return Sl;"dirty"===a.status&&e.dirty(),r.push(a.value)}}catch(e){u.e(e)}finally{u.f()}return{status:e.value,value:r}}},{key:"mergeObjectAsync",value:(t=i(E().m(function t(n,r){var u,a,i,o,s,c,l;return E().w(function(t){for(;;)switch(t.p=t.n){case 0:u=[],a=f(r),t.p=1,a.s();case 2:if((i=a.n()).done){t.n=6;break}return o=i.value,t.n=3,o.key;case 3:return s=t.v,t.n=4,o.value;case 4:c=t.v,u.push({key:s,value:c});case 5:t.n=2;break;case 6:t.n=8;break;case 7:t.p=7,l=t.v,a.e(l);case 8:return t.p=8,a.f(),t.f(8);case 9:return t.a(2,e.mergeObjectSync(n,u))}},t,null,[[1,7,8,9]])})),function(e,n){return t.apply(this,arguments)})},{key:"mergeObjectSync",value:function(e,t){var n,r={},u=f(t);try{for(u.s();!(n=u.n()).done;){var a=n.value,i=a.key,o=a.value;if("aborted"===i.status)return Sl;if("aborted"===o.status)return Sl;"dirty"===i.status&&e.dirty(),"dirty"===o.status&&e.dirty(),"__proto__"===i.value||void 0===o.value&&!a.alwaysSet||(r[i.value]=o.value)}}catch(e){u.e(e)}finally{u.f()}return{status:e.value,value:r}}}]);var t}(),Sl=Object.freeze({status:"aborted"}),xl=function(e){return{status:"dirty",value:e}},Bl=function(e){return{status:"valid",value:e}},Il=function(e){return"aborted"===e.status},Ol=function(e){return"dirty"===e.status},Tl=function(e){return"valid"===e.status},Pl=function(e){return"undefined"!=typeof Promise&&e instanceof Promise};!function(e){e.errToObj=function(e){return"string"==typeof e?{message:e}:e||{}},e.toString=function(e){return"string"==typeof e?e:null==e?void 0:e.message}}(wl||(wl={}));var jl=d(function e(t,n,r,u){s(this,e),this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=u},[{key:"path",get:function(){var e,t;return this._cachedPath.length||(Array.isArray(this._key)?(e=this._cachedPath).push.apply(e,k(this._path).concat(k(this._key))):(t=this._cachedPath).push.apply(t,k(this._path).concat([this._key]))),this._cachedPath}}]),Nl=function(e,t){if(Tl(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;var t=new Fl(e.common.issues);return this._error=t,this._error}}};function zl(e){if(!e)return{};var t=e.errorMap,n=e.invalid_type_error,r=e.required_error,u=e.description;if(t&&(n||r))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');return t?{errorMap:t,description:u}:{errorMap:function(t,u){var a,i,o=e.message;return"invalid_enum_value"===t.code?{message:null!=o?o:u.defaultError}:void 0===u.data?{message:null!==(i=null!=o?o:r)&&void 0!==i?i:u.defaultError}:"invalid_type"!==t.code?{message:u.defaultError}:{message:null!==(a=null!=o?o:n)&&void 0!==a?a:u.defaultError}},description:u}}var Rl,Ml=function(){return d(function e(t){var n=this;s(this,e),this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:function(e){return n["~validate"](e)}}},[{key:"description",get:function(){return this._def.description}},{key:"_getType",value:function(e){return yl(e.data)}},{key:"_getOrReturnCtx",value:function(e,t){return t||{common:e.parent.common,data:e.data,parsedType:yl(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}},{key:"_processInputParams",value:function(e){return{status:new _l,ctx:{common:e.parent.common,data:e.data,parsedType:yl(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}},{key:"_parseSync",value:function(e){var t=this._parse(e);if(Pl(t))throw new Error("Synchronous parse encountered promise.");return t}},{key:"_parseAsync",value:function(e){var t=this._parse(e);return Promise.resolve(t)}},{key:"parse",value:function(e,t){var n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}},{key:"safeParse",value:function(e,t){var n,r={common:{issues:[],async:null!==(n=null==t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:yl(e)},u=this._parseSync({data:e,path:r.path,parent:r});return Nl(r,u)}},{key:"~validate",value:function(e){var t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:yl(e)};if(!this["~standard"].async)try{var n=this._parseSync({data:e,path:[],parent:t});return Tl(n)?{value:n.value}:{issues:t.common.issues}}catch(e){var r;null!=e&&null!==(r=e.message)&&void 0!==r&&null!==(r=r.toLowerCase())&&void 0!==r&&r.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(function(e){return Tl(e)?{value:e.value}:{issues:t.common.issues}})}},{key:"parseAsync",value:(e=i(E().m(function e(t,n){var r;return E().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.safeParseAsync(t,n);case 1:if(!(r=e.v).success){e.n=2;break}return e.a(2,r.data);case 2:throw r.error;case 3:return e.a(2)}},e,this)})),function(t,n){return e.apply(this,arguments)})},{key:"safeParseAsync",value:function(){var e=i(E().m(function e(t,n){var r,u,a;return E().w(function(e){for(;;)switch(e.n){case 0:return r={common:{issues:[],contextualErrorMap:null==n?void 0:n.errorMap,async:!0},path:(null==n?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:yl(t)},u=this._parse({data:t,path:r.path,parent:r}),e.n=1,Pl(u)?u:Promise.resolve(u);case 1:return a=e.v,e.a(2,Nl(r,a))}},e,this)}));return function(t,n){return e.apply(this,arguments)}}()},{key:"refine",value:function(e,t){return this._refinement(function(n,r){var u=e(n),a=function(){return r.addIssue(g({code:gl.custom},function(e){return"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t}(n)))};return"undefined"!=typeof Promise&&u instanceof Promise?u.then(function(e){return!!e||(a(),!1)}):!!u||(a(),!1)})}},{key:"refinement",value:function(e,t){return this._refinement(function(n,r){return!!e(n)||(r.addIssue("function"==typeof t?t(n,r):t),!1)})}},{key:"_refinement",value:function(e){return new Zd({schema:this,typeName:Hd.ZodEffects,effect:{type:"refinement",refinement:e}})}},{key:"superRefine",value:function(e){return this._refinement(e)}},{key:"optional",value:function(){return Ld.create(this,this._def)}},{key:"nullable",value:function(){return $d.create(this,this._def)}},{key:"nullish",value:function(){return this.nullable().optional()}},{key:"array",value:function(){return Ed.create(this)}},{key:"promise",value:function(){return Md.create(this,this._def)}},{key:"or",value:function(e){return Ad.create([this,e],this._def)}},{key:"and",value:function(e){return Sd.create(this,e,this._def)}},{key:"transform",value:function(e){return new Zd(g(g({},zl(this._def)),{},{schema:this,typeName:Hd.ZodEffects,effect:{type:"transform",transform:e}}))}},{key:"default",value:function(e){var t="function"==typeof e?e:function(){return e};return new qd(g(g({},zl(this._def)),{},{innerType:this,defaultValue:t,typeName:Hd.ZodDefault}))}},{key:"brand",value:function(){return new Jd(g({typeName:Hd.ZodBranded,type:this},zl(this._def)))}},{key:"catch",value:function(e){var t="function"==typeof e?e:function(){return e};return new Ud(g(g({},zl(this._def)),{},{innerType:this,catchValue:t,typeName:Hd.ZodCatch}))}},{key:"describe",value:function(e){return new(0,this.constructor)(g(g({},this._def),{},{description:e}))}},{key:"pipe",value:function(e){return Kd.create(this,e)}},{key:"readonly",value:function(){return Wd.create(this)}},{key:"isOptional",value:function(){return this.safeParse(void 0).success}},{key:"isNullable",value:function(){return this.safeParse(null).success}}]);var e}(),Zl=/^c[^\s-]{8,}$/i,Ll=/^[0-9a-z]+$/,$l=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ql=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ul=/^[a-z0-9_-]{21}$/i,Vl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Hl=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Jl=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Kl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Wl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ql=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Gl=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Yl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Xl=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ed="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",td=new RegExp("^".concat(ed,"$"));function nd(e){var t="[0-5]\\d";e.precision?t="".concat(t,"\\.\\d{").concat(e.precision,"}"):null==e.precision&&(t="".concat(t,"(\\.\\d+)?"));var n=e.precision?"+":"?";return"([01]\\d|2[0-3]):[0-5]\\d(:".concat(t,")").concat(n)}function rd(e){return new RegExp("^".concat(nd(e),"$"))}function ud(e){var t="".concat(ed,"T").concat(nd(e)),n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t="".concat(t,"(").concat(n.join("|"),")"),new RegExp("^".concat(t,"$"))}function ad(e,t){return!("v4"!==t&&t||!Kl.test(e))||!("v6"!==t&&t||!Ql.test(e))}function id(e,t){if(!Vl.test(e))return!1;try{var n=A(e.split("."),1)[0];if(!n)return!1;var r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),u=JSON.parse(atob(r));return!("object"!==_(u)||null===u||"typ"in u&&"JWT"!==(null==u?void 0:u.typ)||!u.alg||t&&u.alg!==t)}catch(e){return!1}}function od(e,t){return!("v4"!==t&&t||!Wl.test(e))||!("v6"!==t&&t||!Gl.test(e))}var sd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==Dl.string){var t=this._getOrReturnCtx(e);return kl(t,{code:gl.invalid_type,expected:Dl.string,received:t.parsedType}),Sl}var n,r=new _l,u=void 0,a=f(this._def.checks);try{for(a.s();!(n=a.n()).done;){var i=n.value;if("min"===i.kind)e.data.lengthi.value&&(kl(u=this._getOrReturnCtx(e,u),{code:gl.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if("length"===i.kind){var o=e.data.length>i.value,s=e.data.lengtht)&&(t=r.value)}}catch(e){n.e(e)}finally{n.f()}return t}},{key:"maxLength",get:function(){var e,t=null,n=f(this._def.checks);try{for(n.s();!(e=n.n()).done;){var r=e.value;"max"===r.kind&&(null===t||r.valuer?n:r;return Number.parseInt(e.toFixed(u).replace(".",""))%Number.parseInt(t.toFixed(u).replace(".",""))/Math.pow(10,u)}sd.create=function(e){var t;return new sd(g({checks:[],typeName:Hd.ZodString,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t},zl(e)))};var ld=function(){function e(){var t;return s(this,e),(t=o(this,e,arguments)).min=t.gte,t.max=t.lte,t.step=t.multipleOf,t}return m(e,Ml),d(e,[{key:"_parse",value:function(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==Dl.number){var t=this._getOrReturnCtx(e);return kl(t,{code:gl.invalid_type,expected:Dl.number,received:t.parsedType}),Sl}var n,r=void 0,u=new _l,a=f(this._def.checks);try{for(a.s();!(n=a.n()).done;){var i=n.value;"int"===i.kind?ll.isInteger(e.data)||(kl(r=this._getOrReturnCtx(e,r),{code:gl.invalid_type,expected:"integer",received:"float",message:i.message}),u.dirty()):"min"===i.kind?(i.inclusive?e.datai.value:e.data>=i.value)&&(kl(r=this._getOrReturnCtx(e,r),{code:gl.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),u.dirty()):"multipleOf"===i.kind?0!==cd(e.data,i.value)&&(kl(r=this._getOrReturnCtx(e,r),{code:gl.not_multiple_of,multipleOf:i.value,message:i.message}),u.dirty()):"finite"===i.kind?Number.isFinite(e.data)||(kl(r=this._getOrReturnCtx(e,r),{code:gl.not_finite,message:i.message}),u.dirty()):ll.assertNever(i)}}catch(e){a.e(e)}finally{a.f()}return{status:u.value,value:e.data}}},{key:"gte",value:function(e,t){return this.setLimit("min",e,!0,wl.toString(t))}},{key:"gt",value:function(e,t){return this.setLimit("min",e,!1,wl.toString(t))}},{key:"lte",value:function(e,t){return this.setLimit("max",e,!0,wl.toString(t))}},{key:"lt",value:function(e,t){return this.setLimit("max",e,!1,wl.toString(t))}},{key:"setLimit",value:function(t,n,r,u){return new e(g(g({},this._def),{},{checks:[].concat(k(this._def.checks),[{kind:t,value:n,inclusive:r,message:wl.toString(u)}])}))}},{key:"_addCheck",value:function(t){return new e(g(g({},this._def),{},{checks:[].concat(k(this._def.checks),[t])}))}},{key:"int",value:function(e){return this._addCheck({kind:"int",message:wl.toString(e)})}},{key:"positive",value:function(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:wl.toString(e)})}},{key:"negative",value:function(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:wl.toString(e)})}},{key:"nonpositive",value:function(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:wl.toString(e)})}},{key:"nonnegative",value:function(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:wl.toString(e)})}},{key:"multipleOf",value:function(e,t){return this._addCheck({kind:"multipleOf",value:e,message:wl.toString(t)})}},{key:"finite",value:function(e){return this._addCheck({kind:"finite",message:wl.toString(e)})}},{key:"safe",value:function(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:wl.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:wl.toString(e)})}},{key:"minValue",get:function(){var e,t=null,n=f(this._def.checks);try{for(n.s();!(e=n.n()).done;){var r=e.value;"min"===r.kind&&(null===t||r.value>t)&&(t=r.value)}}catch(e){n.e(e)}finally{n.f()}return t}},{key:"maxValue",get:function(){var e,t=null,n=f(this._def.checks);try{for(n.s();!(e=n.n()).done;){var r=e.value;"max"===r.kind&&(null===t||r.valuen)&&(n=u.value):"max"===u.kind&&(null===t||u.valuea.value:e.data>=a.value)&&(kl(n=this._getOrReturnCtx(e,n),{code:gl.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):"multipleOf"===a.kind?e.data%a.value!==BigInt(0)&&(kl(n=this._getOrReturnCtx(e,n),{code:gl.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):ll.assertNever(a)}}catch(e){u.e(e)}finally{u.f()}return{status:r.value,value:e.data}}},{key:"_getInvalidInput",value:function(e){var t=this._getOrReturnCtx(e);return kl(t,{code:gl.invalid_type,expected:Dl.bigint,received:t.parsedType}),Sl}},{key:"gte",value:function(e,t){return this.setLimit("min",e,!0,wl.toString(t))}},{key:"gt",value:function(e,t){return this.setLimit("min",e,!1,wl.toString(t))}},{key:"lte",value:function(e,t){return this.setLimit("max",e,!0,wl.toString(t))}},{key:"lt",value:function(e,t){return this.setLimit("max",e,!1,wl.toString(t))}},{key:"setLimit",value:function(t,n,r,u){return new e(g(g({},this._def),{},{checks:[].concat(k(this._def.checks),[{kind:t,value:n,inclusive:r,message:wl.toString(u)}])}))}},{key:"_addCheck",value:function(t){return new e(g(g({},this._def),{},{checks:[].concat(k(this._def.checks),[t])}))}},{key:"positive",value:function(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:wl.toString(e)})}},{key:"negative",value:function(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:wl.toString(e)})}},{key:"nonpositive",value:function(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:wl.toString(e)})}},{key:"nonnegative",value:function(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:wl.toString(e)})}},{key:"multipleOf",value:function(e,t){return this._addCheck({kind:"multipleOf",value:e,message:wl.toString(t)})}},{key:"minValue",get:function(){var e,t=null,n=f(this._def.checks);try{for(n.s();!(e=n.n()).done;){var r=e.value;"min"===r.kind&&(null===t||r.value>t)&&(t=r.value)}}catch(e){n.e(e)}finally{n.f()}return t}},{key:"maxValue",get:function(){var e,t=null,n=f(this._def.checks);try{for(n.s();!(e=n.n()).done;){var r=e.value;"max"===r.kind&&(null===t||r.valuei.value&&(kl(u=this._getOrReturnCtx(e,u),{code:gl.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),r.dirty()):ll.assertNever(i)}}catch(e){a.e(e)}finally{a.f()}return{status:r.value,value:new Date(e.data.getTime())}}},{key:"_addCheck",value:function(t){return new e(g(g({},this._def),{},{checks:[].concat(k(this._def.checks),[t])}))}},{key:"min",value:function(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:wl.toString(t)})}},{key:"max",value:function(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:wl.toString(t)})}},{key:"minDate",get:function(){var e,t=null,n=f(this._def.checks);try{for(n.s();!(e=n.n()).done;){var r=e.value;"min"===r.kind&&(null===t||r.value>t)&&(t=r.value)}}catch(e){n.e(e)}finally{n.f()}return null!=t?new Date(t):null}},{key:"maxDate",get:function(){var e,t=null,n=f(this._def.checks);try{for(n.s();!(e=n.n()).done;){var r=e.value;"max"===r.kind&&(null===t||r.valueu.exactLength.value,i=n.data.lengthu.maxLength.value&&(kl(n,{code:gl.too_big,maximum:u.maxLength.value,type:"array",inclusive:!0,exact:!1,message:u.maxLength.message}),r.dirty()),n.common.async)return Promise.all(k(n.data).map(function(e,t){return u.type._parseAsync(new jl(n,e,n.path,t))})).then(function(e){return _l.mergeArray(r,e)});var o=k(n.data).map(function(e,t){return u.type._parseSync(new jl(n,e,n.path,t))});return _l.mergeArray(r,o)}},{key:"element",get:function(){return this._def.type}},{key:"min",value:function(t,n){return new e(g(g({},this._def),{},{minLength:{value:t,message:wl.toString(n)}}))}},{key:"max",value:function(t,n){return new e(g(g({},this._def),{},{maxLength:{value:t,message:wl.toString(n)}}))}},{key:"length",value:function(t,n){return new e(g(g({},this._def),{},{exactLength:{value:t,message:wl.toString(n)}}))}},{key:"nonempty",value:function(e){return this.min(1,e)}}])}();function bd(e){if(e instanceof Cd){var t={};for(var n in e.shape){var r=e.shape[n];t[n]=Ld.create(bd(r))}return new Cd(g(g({},e._def),{},{shape:function(){return t}}))}return e instanceof Ed?new Ed(g(g({},e._def),{},{type:bd(e.element)})):e instanceof Ld?Ld.create(bd(e.unwrap())):e instanceof $d?$d.create(bd(e.unwrap())):e instanceof xd?xd.create(e.items.map(function(e){return bd(e)})):e}Ed.create=function(e,t){return new Ed(g({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Hd.ZodArray},zl(t)))};var Cd=function(){function e(){var t;return s(this,e),(t=o(this,e,arguments))._cached=null,t.nonstrict=t.passthrough,t.augment=t.extend,t}return m(e,Ml),d(e,[{key:"_getCached",value:function(){if(null!==this._cached)return this._cached;var e=this._def.shape(),t=ll.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}},{key:"_parse",value:function(e){if(this._getType(e)!==Dl.object){var t=this._getOrReturnCtx(e);return kl(t,{code:gl.invalid_type,expected:Dl.object,received:t.parsedType}),Sl}var n=this._processInputParams(e),r=n.status,u=n.ctx,a=this._getCached(),o=a.shape,s=a.keys,c=[];if(!(this._def.catchall instanceof gd&&"strip"===this._def.unknownKeys))for(var l in u.data)s.includes(l)||c.push(l);var d,p=[],h=f(s);try{for(h.s();!(d=h.n()).done;){var v=d.value,m=o[v],D=u.data[v];p.push({key:{status:"valid",value:v},value:m._parse(new jl(u,D,u.path,v)),alwaysSet:v in u.data})}}catch(e){h.e(e)}finally{h.f()}if(this._def.catchall instanceof gd){var y=this._def.unknownKeys;if("passthrough"===y){var g,F=f(c);try{for(F.s();!(g=F.n()).done;){var b=g.value;p.push({key:{status:"valid",value:b},value:{status:"valid",value:u.data[b]}})}}catch(e){F.e(e)}finally{F.f()}}else if("strict"===y)c.length>0&&(kl(u,{code:gl.unrecognized_keys,keys:c}),r.dirty());else if("strip"!==y)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{var C,A=this._def.catchall,k=f(c);try{for(k.s();!(C=k.n()).done;){var w=C.value,_=u.data[w];p.push({key:{status:"valid",value:w},value:A._parse(new jl(u,_,u.path,w)),alwaysSet:w in u.data})}}catch(e){k.e(e)}finally{k.f()}}return u.common.async?Promise.resolve().then(i(E().m(function e(){var t,n,r,u,a,i,o;return E().w(function(e){for(;;)switch(e.p=e.n){case 0:t=[],n=f(p),e.p=1,n.s();case 2:if((r=n.n()).done){e.n=6;break}return u=r.value,e.n=3,u.key;case 3:return a=e.v,e.n=4,u.value;case 4:i=e.v,t.push({key:a,value:i,alwaysSet:u.alwaysSet});case 5:e.n=2;break;case 6:e.n=8;break;case 7:e.p=7,o=e.v,n.e(o);case 8:return e.p=8,n.f(),e.f(8);case 9:return e.a(2,t)}},e,null,[[1,7,8,9]])}))).then(function(e){return _l.mergeObjectSync(r,e)}):_l.mergeObjectSync(r,p)}},{key:"shape",get:function(){return this._def.shape()}},{key:"strict",value:function(t){var n=this;return wl.errToObj,new e(g(g({},this._def),{},{unknownKeys:"strict"},void 0!==t?{errorMap:function(e,r){var u,a,i,o,s=null!==(u=null===(a=(i=n._def).errorMap)||void 0===a?void 0:a.call(i,e,r).message)&&void 0!==u?u:r.defaultError;return"unrecognized_keys"===e.code?{message:null!==(o=wl.errToObj(t).message)&&void 0!==o?o:s}:{message:s}}}:{}))}},{key:"strip",value:function(){return new e(g(g({},this._def),{},{unknownKeys:"strip"}))}},{key:"passthrough",value:function(){return new e(g(g({},this._def),{},{unknownKeys:"passthrough"}))}},{key:"extend",value:function(t){var n=this;return new e(g(g({},this._def),{},{shape:function(){return g(g({},n._def.shape()),t)}}))}},{key:"merge",value:function(t){var n=this;return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:function(){return g(g({},n._def.shape()),t._def.shape())},typeName:Hd.ZodObject})}},{key:"setKey",value:function(e,t){return this.augment(p({},e,t))}},{key:"catchall",value:function(t){return new e(g(g({},this._def),{},{catchall:t}))}},{key:"pick",value:function(t){var n,r={},u=f(ll.objectKeys(t));try{for(u.s();!(n=u.n()).done;){var a=n.value;t[a]&&this.shape[a]&&(r[a]=this.shape[a])}}catch(e){u.e(e)}finally{u.f()}return new e(g(g({},this._def),{},{shape:function(){return r}}))}},{key:"omit",value:function(t){var n,r={},u=f(ll.objectKeys(this.shape));try{for(u.s();!(n=u.n()).done;){var a=n.value;t[a]||(r[a]=this.shape[a])}}catch(e){u.e(e)}finally{u.f()}return new e(g(g({},this._def),{},{shape:function(){return r}}))}},{key:"deepPartial",value:function(){return bd(this)}},{key:"partial",value:function(t){var n,r={},u=f(ll.objectKeys(this.shape));try{for(u.s();!(n=u.n()).done;){var a=n.value,i=this.shape[a];t&&!t[a]?r[a]=i:r[a]=i.optional()}}catch(e){u.e(e)}finally{u.f()}return new e(g(g({},this._def),{},{shape:function(){return r}}))}},{key:"required",value:function(t){var n,r={},u=f(ll.objectKeys(this.shape));try{for(u.s();!(n=u.n()).done;){var a=n.value;if(t&&!t[a])r[a]=this.shape[a];else{for(var i=this.shape[a];i instanceof Ld;)i=i._def.innerType;r[a]=i}}}catch(e){u.e(e)}finally{u.f()}return new e(g(g({},this._def),{},{shape:function(){return r}}))}},{key:"keyof",value:function(){return Nd(ll.objectKeys(this.shape))}}])}();Cd.create=function(e,t){return new Cd(g({shape:function(){return e},unknownKeys:"strip",catchall:gd.create(),typeName:Hd.ZodObject},zl(t)))},Cd.strictCreate=function(e,t){return new Cd(g({shape:function(){return e},unknownKeys:"strict",catchall:gd.create(),typeName:Hd.ZodObject},zl(t)))},Cd.lazycreate=function(e,t){return new Cd(g({shape:e,unknownKeys:"strip",catchall:gd.create(),typeName:Hd.ZodObject},zl(t)))};var Ad=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this._processInputParams(e).ctx,n=this._def.options;if(t.common.async)return Promise.all(n.map(function(){var e=i(E().m(function e(n){var r,u,a;return E().w(function(e){for(;;)switch(e.n){case 0:return r=g(g({},t),{},{common:g(g({},t.common),{},{issues:[]}),parent:null}),e.n=1,n._parseAsync({data:t.data,path:t.path,parent:r});case 1:return u=e.v,a=r,e.a(2,{result:u,ctx:a})}},e)}));return function(t){return e.apply(this,arguments)}}())).then(function(e){var n,r=f(e);try{for(r.s();!(n=r.n()).done;){var u=n.value;if("valid"===u.result.status)return u.result}}catch(e){r.e(e)}finally{r.f()}var a,i=f(e);try{for(i.s();!(a=i.n()).done;){var o,s=a.value;if("dirty"===s.result.status)return(o=t.common.issues).push.apply(o,k(s.ctx.common.issues)),s.result}}catch(e){i.e(e)}finally{i.f()}var c=e.map(function(e){return new Fl(e.ctx.common.issues)});return kl(t,{code:gl.invalid_union,unionErrors:c}),Sl});var r,u,a=void 0,o=[],s=f(n);try{for(s.s();!(r=s.n()).done;){var c=r.value,l=g(g({},t),{},{common:g(g({},t.common),{},{issues:[]}),parent:null}),d=c._parseSync({data:t.data,path:t.path,parent:l});if("valid"===d.status)return d;"dirty"!==d.status||a||(a={result:d,ctx:l}),l.common.issues.length&&o.push(l.common.issues)}}catch(e){s.e(e)}finally{s.f()}if(a)return(u=t.common.issues).push.apply(u,k(a.ctx.common.issues)),a.result;var p=o.map(function(e){return new Fl(e)});return kl(t,{code:gl.invalid_union,unionErrors:p}),Sl}},{key:"options",get:function(){return this._def.options}}])}();Ad.create=function(e,t){return new Ad(g({options:e,typeName:Hd.ZodUnion},zl(t)))};var kd=function(e){return e instanceof Pd?kd(e.schema):e instanceof Zd?kd(e.innerType()):e instanceof jd?[e.value]:e instanceof zd?e.options:e instanceof Rd?ll.objectValues(e.enum):e instanceof qd?kd(e._def.innerType):e instanceof vd?[void 0]:e instanceof md?[null]:e instanceof Ld?[void 0].concat(k(kd(e.unwrap()))):e instanceof $d?[null].concat(k(kd(e.unwrap()))):e instanceof Jd||e instanceof Wd?kd(e.unwrap()):e instanceof Ud?kd(e._def.innerType):[]},wd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this._processInputParams(e).ctx;if(t.parsedType!==Dl.object)return kl(t,{code:gl.invalid_type,expected:Dl.object,received:t.parsedType}),Sl;var n=this.discriminator,r=t.data[n],u=this.optionsMap.get(r);return u?t.common.async?u._parseAsync({data:t.data,path:t.path,parent:t}):u._parseSync({data:t.data,path:t.path,parent:t}):(kl(t,{code:gl.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Sl)}},{key:"discriminator",get:function(){return this._def.discriminator}},{key:"options",get:function(){return this._def.options}},{key:"optionsMap",get:function(){return this._def.optionsMap}}],[{key:"create",value:function(t,n,r){var u,a=new Map,i=f(n);try{for(i.s();!(u=i.n()).done;){var o=u.value,s=kd(o.shape[t]);if(!s.length)throw new Error("A discriminator value for key `".concat(t,"` could not be extracted from all schema options"));var c,l=f(s);try{for(l.s();!(c=l.n()).done;){var d=c.value;if(a.has(d))throw new Error("Discriminator property ".concat(String(t)," has duplicate value ").concat(String(d)));a.set(d,o)}}catch(e){l.e(e)}finally{l.f()}}}catch(e){i.e(e)}finally{i.f()}return new e(g({typeName:Hd.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:a},zl(r)))}}])}();function _d(e,t){var n=yl(e),r=yl(t);if(e===t)return{valid:!0,data:e};if(n===Dl.object&&r===Dl.object){var u,a=ll.objectKeys(t),i=ll.objectKeys(e).filter(function(e){return-1!==a.indexOf(e)}),o=g(g({},e),t),s=f(i);try{for(s.s();!(u=s.n()).done;){var c=u.value,l=_d(e[c],t[c]);if(!l.valid)return{valid:!1};o[c]=l.data}}catch(e){s.e(e)}finally{s.f()}return{valid:!0,data:o}}if(n===Dl.array&&r===Dl.array){if(e.length!==t.length)return{valid:!1};for(var d=[],p=0;pthis._def.items.length&&(kl(u,{code:gl.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());var a=k(u.data).map(function(e,n){var r=t._def.items[n]||t._def.rest;return r?r._parse(new jl(u,e,u.path,n)):null}).filter(function(e){return!!e});return u.common.async?Promise.all(a).then(function(e){return _l.mergeArray(r,e)}):_l.mergeArray(r,a)}},{key:"items",get:function(){return this._def.items}},{key:"rest",value:function(t){return new e(g(g({},this._def),{},{rest:t}))}}])}();xd.create=function(e,t){if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xd(g({items:e,typeName:Hd.ZodTuple,rest:null},zl(t)))};var Bd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"keySchema",get:function(){return this._def.keyType}},{key:"valueSchema",get:function(){return this._def.valueType}},{key:"_parse",value:function(e){var t=this._processInputParams(e),n=t.status,r=t.ctx;if(r.parsedType!==Dl.object)return kl(r,{code:gl.invalid_type,expected:Dl.object,received:r.parsedType}),Sl;var u=[],a=this._def.keyType,i=this._def.valueType;for(var o in r.data)u.push({key:a._parse(new jl(r,o,r.path,o)),value:i._parse(new jl(r,r.data[o],r.path,o)),alwaysSet:o in r.data});return r.common.async?_l.mergeObjectAsync(n,u):_l.mergeObjectSync(n,u)}},{key:"element",get:function(){return this._def.valueType}}],[{key:"create",value:function(t,n,r){return new e(n instanceof Ml?g({keyType:t,valueType:n,typeName:Hd.ZodRecord},zl(r)):g({keyType:sd.create(),valueType:t,typeName:Hd.ZodRecord},zl(n)))}}])}(),Id=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"keySchema",get:function(){return this._def.keyType}},{key:"valueSchema",get:function(){return this._def.valueType}},{key:"_parse",value:function(e){var t=this._processInputParams(e),n=t.status,r=t.ctx;if(r.parsedType!==Dl.map)return kl(r,{code:gl.invalid_type,expected:Dl.map,received:r.parsedType}),Sl;var u=this._def.keyType,a=this._def.valueType,o=k(r.data.entries()).map(function(e,t){var n=A(e,2),i=n[0],o=n[1];return{key:u._parse(new jl(r,i,r.path,[t,"key"])),value:a._parse(new jl(r,o,r.path,[t,"value"]))}});if(r.common.async){var s=new Map;return Promise.resolve().then(i(E().m(function e(){var t,r,u,a,i,c;return E().w(function(e){for(;;)switch(e.p=e.n){case 0:t=f(o),e.p=1,t.s();case 2:if((r=t.n()).done){e.n=7;break}return u=r.value,e.n=3,u.key;case 3:return a=e.v,e.n=4,u.value;case 4:if(i=e.v,"aborted"!==a.status&&"aborted"!==i.status){e.n=5;break}return e.a(2,Sl);case 5:"dirty"!==a.status&&"dirty"!==i.status||n.dirty(),s.set(a.value,i.value);case 6:e.n=2;break;case 7:e.n=9;break;case 8:e.p=8,c=e.v,t.e(c);case 9:return e.p=9,t.f(),e.f(9);case 10:return e.a(2,{status:n.value,value:s})}},e,null,[[1,8,9,10]])})))}var c,l=new Map,d=f(o);try{for(d.s();!(c=d.n()).done;){var p=c.value,h=p.key,v=p.value;if("aborted"===h.status||"aborted"===v.status)return Sl;"dirty"!==h.status&&"dirty"!==v.status||n.dirty(),l.set(h.value,v.value)}}catch(e){d.e(e)}finally{d.f()}return{status:n.value,value:l}}}])}();Id.create=function(e,t,n){return new Id(g({valueType:t,keyType:e,typeName:Hd.ZodMap},zl(n)))};var Od=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this._processInputParams(e),n=t.status,r=t.ctx;if(r.parsedType!==Dl.set)return kl(r,{code:gl.invalid_type,expected:Dl.set,received:r.parsedType}),Sl;var u=this._def;null!==u.minSize&&r.data.sizeu.maxSize.value&&(kl(r,{code:gl.too_big,maximum:u.maxSize.value,type:"set",inclusive:!0,exact:!1,message:u.maxSize.message}),n.dirty());var a=this._def.valueType;function i(e){var t,r=new Set,u=f(e);try{for(u.s();!(t=u.n()).done;){var a=t.value;if("aborted"===a.status)return Sl;"dirty"===a.status&&n.dirty(),r.add(a.value)}}catch(e){u.e(e)}finally{u.f()}return{status:n.value,value:r}}var o=k(r.data.values()).map(function(e,t){return a._parse(new jl(r,e,r.path,t))});return r.common.async?Promise.all(o).then(function(e){return i(e)}):i(o)}},{key:"min",value:function(t,n){return new e(g(g({},this._def),{},{minSize:{value:t,message:wl.toString(n)}}))}},{key:"max",value:function(t,n){return new e(g(g({},this._def),{},{maxSize:{value:t,message:wl.toString(n)}}))}},{key:"size",value:function(e,t){return this.min(e,t).max(e,t)}},{key:"nonempty",value:function(e){return this.min(1,e)}}])}();Od.create=function(e,t){return new Od(g({valueType:e,minSize:null,maxSize:null,typeName:Hd.ZodSet},zl(t)))};var Td=function(){function e(){var t;return s(this,e),(t=o(this,e,arguments)).validate=t.implement,t}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this._processInputParams(e).ctx;if(t.parsedType!==Dl.function)return kl(t,{code:gl.invalid_type,expected:Dl.function,received:t.parsedType}),Sl;function n(e,n){return Al({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Cl(),El].filter(function(e){return!!e}),issueData:{code:gl.invalid_arguments,argumentsError:n}})}function r(e,n){return Al({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Cl(),El].filter(function(e){return!!e}),issueData:{code:gl.invalid_return_type,returnTypeError:n}})}var u={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Md){var o=this;return Bl(i(E().m(function e(){var t,i,s,c,l,d,f,p=arguments;return E().w(function(e){for(;;)switch(e.n){case 0:for(t=p.length,i=new Array(t),s=0;s1&&void 0!==arguments[1]?arguments[1]:this._def;return e.create(t,g(g({},this._def),n))}},{key:"exclude",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._def;return e.create(this.options.filter(function(e){return!t.includes(e)}),g(g({},this._def),n))}}])}();zd.create=Nd;var Rd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=ll.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==Dl.string&&n.parsedType!==Dl.number){var r=ll.objectValues(t);return kl(n,{expected:ll.joinValues(r),received:n.parsedType,code:gl.invalid_type}),Sl}if(this._cache||(this._cache=new Set(ll.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){var u=ll.objectValues(t);return kl(n,{received:n.data,code:gl.invalid_enum_value,options:u}),Sl}return Bl(e.data)}},{key:"enum",get:function(){return this._def.values}}])}();Rd.create=function(e,t){return new Rd(g({values:e,typeName:Hd.ZodNativeEnum},zl(t)))};var Md=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"unwrap",value:function(){return this._def.type}},{key:"_parse",value:function(e){var t=this,n=this._processInputParams(e).ctx;if(n.parsedType!==Dl.promise&&!1===n.common.async)return kl(n,{code:gl.invalid_type,expected:Dl.promise,received:n.parsedType}),Sl;var r=n.parsedType===Dl.promise?n.data:Promise.resolve(n.data);return Bl(r.then(function(e){return t._def.type.parseAsync(e,{path:n.path,errorMap:n.common.contextualErrorMap})}))}}])}();Md.create=function(e,t){return new Md(g({type:e,typeName:Hd.ZodPromise},zl(t)))};var Zd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"innerType",value:function(){return this._def.schema}},{key:"sourceType",value:function(){return this._def.schema._def.typeName===Hd.ZodEffects?this._def.schema.sourceType():this._def.schema}},{key:"_parse",value:function(e){var t=this,n=this._processInputParams(e),r=n.status,u=n.ctx,a=this._def.effect||null,o={addIssue:function(e){kl(u,e),e.fatal?r.abort():r.dirty()},get path(){return u.path}};if(o.addIssue=o.addIssue.bind(o),"preprocess"===a.type){var s=a.transform(u.data,o);if(u.common.async)return Promise.resolve(s).then(function(){var e=i(E().m(function e(n){var a;return E().w(function(e){for(;;)switch(e.n){case 0:if("aborted"!==r.value){e.n=1;break}return e.a(2,Sl);case 1:return e.n=2,t._def.schema._parseAsync({data:n,path:u.path,parent:u});case 2:if("aborted"!==(a=e.v).status){e.n=3;break}return e.a(2,Sl);case 3:if("dirty"!==a.status){e.n=4;break}return e.a(2,xl(a.value));case 4:if("dirty"!==r.value){e.n=5;break}return e.a(2,xl(a.value));case 5:return e.a(2,a)}},e)}));return function(t){return e.apply(this,arguments)}}());if("aborted"===r.value)return Sl;var c=this._def.schema._parseSync({data:s,path:u.path,parent:u});return"aborted"===c.status?Sl:"dirty"===c.status||"dirty"===r.value?xl(c.value):c}if("refinement"===a.type){var l=function(e){var t=a.refinement(e,o);if(u.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===u.common.async){var d=this._def.schema._parseSync({data:u.data,path:u.path,parent:u});return"aborted"===d.status?Sl:("dirty"===d.status&&r.dirty(),l(d.value),{status:r.value,value:d.value})}return this._def.schema._parseAsync({data:u.data,path:u.path,parent:u}).then(function(e){return"aborted"===e.status?Sl:("dirty"===e.status&&r.dirty(),l(e.value).then(function(){return{status:r.value,value:e.value}}))})}if("transform"===a.type){if(!1===u.common.async){var f=this._def.schema._parseSync({data:u.data,path:u.path,parent:u});if(!Tl(f))return Sl;var p=a.transform(f.value,o);if(p instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:p}}return this._def.schema._parseAsync({data:u.data,path:u.path,parent:u}).then(function(e){return Tl(e)?Promise.resolve(a.transform(e.value,o)).then(function(e){return{status:r.value,value:e}}):Sl})}ll.assertNever(a)}}])}();Zd.create=function(e,t,n){return new Zd(g({schema:e,typeName:Hd.ZodEffects,effect:t},zl(n)))},Zd.createWithPreprocess=function(e,t,n){return new Zd(g({schema:t,effect:{type:"preprocess",transform:e},typeName:Hd.ZodEffects},zl(n)))};var Ld=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){return this._getType(e)===Dl.undefined?Bl(void 0):this._def.innerType._parse(e)}},{key:"unwrap",value:function(){return this._def.innerType}}])}();Ld.create=function(e,t){return new Ld(g({innerType:e,typeName:Hd.ZodOptional},zl(t)))};var $d=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){return this._getType(e)===Dl.null?Bl(null):this._def.innerType._parse(e)}},{key:"unwrap",value:function(){return this._def.innerType}}])}();$d.create=function(e,t){return new $d(g({innerType:e,typeName:Hd.ZodNullable},zl(t)))};var qd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this._processInputParams(e).ctx,n=t.data;return t.parsedType===Dl.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}},{key:"removeDefault",value:function(){return this._def.innerType}}])}();qd.create=function(e,t){return new qd(g({innerType:e,typeName:Hd.ZodDefault,defaultValue:"function"==typeof t.default?t.default:function(){return t.default}},zl(t)))};var Ud=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this,n=this._processInputParams(e).ctx,r=g(g({},n),{},{common:g(g({},n.common),{},{issues:[]})}),u=this._def.innerType._parse({data:r.data,path:r.path,parent:g({},r)});return Pl(u)?u.then(function(e){return{status:"valid",value:"valid"===e.status?e.value:t._def.catchValue({get error(){return new Fl(r.common.issues)},input:r.data})}}):{status:"valid",value:"valid"===u.status?u.value:this._def.catchValue({get error(){return new Fl(r.common.issues)},input:r.data})}}},{key:"removeCatch",value:function(){return this._def.innerType}}])}();Ud.create=function(e,t){return new Ud(g({innerType:e,typeName:Hd.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:function(){return t.catch}},zl(t)))};var Vd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){if(this._getType(e)!==Dl.nan){var t=this._getOrReturnCtx(e);return kl(t,{code:gl.invalid_type,expected:Dl.nan,received:t.parsedType}),Sl}return{status:"valid",value:e.data}}}])}();Vd.create=function(e){return new Vd(g({typeName:Hd.ZodNaN},zl(e)))};var Hd,Jd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this._processInputParams(e).ctx,n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}},{key:"unwrap",value:function(){return this._def.type}}])}(),Kd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this,n=this._processInputParams(e),r=n.status,u=n.ctx;if(u.common.async){var a=function(){var e=i(E().m(function e(){var n;return E().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t._def.in._parseAsync({data:u.data,path:u.path,parent:u});case 1:if("aborted"!==(n=e.v).status){e.n=2;break}return e.a(2,Sl);case 2:if("dirty"!==n.status){e.n=3;break}return r.dirty(),e.a(2,xl(n.value));case 3:return e.a(2,t._def.out._parseAsync({data:n.value,path:u.path,parent:u}));case 4:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();return a()}var o=this._def.in._parseSync({data:u.data,path:u.path,parent:u});return"aborted"===o.status?Sl:"dirty"===o.status?(r.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:u.path,parent:u})}}],[{key:"create",value:function(t,n){return new e({in:t,out:n,typeName:Hd.ZodPipeline})}}])}(),Wd=function(){function e(){return s(this,e),o(this,e,arguments)}return m(e,Ml),d(e,[{key:"_parse",value:function(e){var t=this._def.innerType._parse(e),n=function(e){return Tl(e)&&(e.value=Object.freeze(e.value)),e};return Pl(t)?t.then(function(e){return n(e)}):n(t)}},{key:"unwrap",value:function(){return this._def.innerType}}])}();Wd.create=function(e,t){return new Wd(g({innerType:e,typeName:Hd.ZodReadonly},zl(t)))},Cd.lazycreate,function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Hd||(Hd={})),sd.create,ld.create,Vd.create,dd.create,fd.create,pd.create,hd.create,vd.create,md.create,Dd.create,yd.create,gd.create,Fd.create,Ed.create,Cd.create,Cd.strictCreate,Ad.create,wd.create,Sd.create,xd.create,Bd.create,Id.create,Od.create,Td.create,Pd.create,jd.create,zd.create,Rd.create,Md.create,Zd.create,Ld.create,$d.create,Zd.createWithPreprocess,Kd.create;var Qd=({prefix:e,size:t=16,alphabet:n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:r="-"}={})=>{const u=()=>{const e=n.length,r=new Array(t);for(let u=0;u`${e}${r}${u()}`},Gd=Qd();function Yd(e=globalThis){var t,n,r;return e.window?"runtime/browser":(null==(t=e.navigator)?void 0:t.userAgent)?`runtime/${e.navigator.userAgent.toLowerCase()}`:(null==(r=null==(n=e.process)?void 0:n.versions)?void 0:r.node)?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?"runtime/vercel-edge":"runtime/unknown"}function Xd(e){if(null==e)return{};const t={};if(e instanceof Headers)e.forEach((e,n)=>{t[n.toLowerCase()]=e});else{Array.isArray(e)||(e=Object.entries(e));for(const[n,r]of e)null!=r&&(t[n.toLowerCase()]=r)}return t}function ef(e,...t){const n=new Headers(Xd(e)),r=n.get("user-agent")||"";return n.set("user-agent",[r,...t].filter(Boolean).join(" ")),Object.fromEntries(n.entries())}var tf=/"__proto__"\s*:/,nf=/"constructor"\s*:/;function rf(e){const t=JSON.parse(e);return null===t||"object"!=typeof t||!1===tf.test(e)&&!1===nf.test(e)?t:function(e){let t=[e];for(;t.length;){const e=t;t=[];for(const n of e){if(Object.prototype.hasOwnProperty.call(n,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(n,"constructor")&&Object.prototype.hasOwnProperty.call(n.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(const e in n){const r=n[e];r&&"object"==typeof r&&t.push(r)}}}return e}(t)}var uf=Symbol.for("vercel.ai.validator");async function af({value:e,schema:t}){const n=await of({value:e,schema:t});if(!n.success)throw da.wrap({value:e,cause:n.error});return n.value}async function of({value:e,schema:t}){const n=function(e){return function(e){return"object"==typeof e&&null!==e&&uf in e&&!0===e[uf]&&"validate"in e}(e)?e:"function"==typeof e?e():(t=e,n=async e=>{const n=await t["~standard"].validate(e);return null==n.issues?{success:!0,value:n.value}:{success:!1,error:new da({value:e,cause:n.issues})}},{[uf]:!0,validate:n});var t,n}(t);try{if(null==n.validate)return{success:!0,value:e,rawValue:e};const t=await n.validate(e);return t.success?{success:!0,value:t.value,rawValue:e}:{success:!1,error:da.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:da.wrap({value:e,cause:t}),rawValue:e}}}async function sf({text:e,schema:t}){try{const n=function(e){const{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch(t){return rf(e)}try{return rf(e)}finally{Error.stackTraceLimit=t}}(e);return null==t?{success:!0,value:n,rawValue:n}:await of({value:n,schema:t})}catch(t){return{success:!1,error:ia.isInstance(t)?t:new ia({text:e,cause:t}),rawValue:void 0}}}async function cf(e){return"function"==typeof e&&(e=e()),Promise.resolve(e)}var lf=(e,t)=>{let n=0;for(;nhf(e,t,n))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return vf(e)}}var vf=e=>{const t={type:"integer",format:"unix-time"};for(const n of e.checks)switch(n.kind){case"min":t.minimum=n.value;break;case"max":t.maximum=n.value}return t},mf=void 0,Df=/^[cC][^\s-]{8,}$/,yf=/^[0-9a-z]+$/,gf=/^[0-9A-HJKMNP-TV-Z]{26}$/,Ff=/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,Ef=()=>(void 0===mf&&(mf=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),mf),bf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Cf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Af=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,wf=/^[a-zA-Z0-9_-]{21}$/,_f=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;function Sf(e,t){const n={type:"string"};if(e.checks)for(const r of e.checks)switch(r.kind){case"min":n.minLength="number"==typeof n.minLength?Math.max(n.minLength,r.value):r.value;break;case"max":n.maxLength="number"==typeof n.maxLength?Math.min(n.maxLength,r.value):r.value;break;case"email":switch(t.emailStrategy){case"format:email":If(n,"email",r.message,t);break;case"format:idn-email":If(n,"idn-email",r.message,t);break;case"pattern:zod":Of(n,Ff,r.message,t)}break;case"url":If(n,"uri",r.message,t);break;case"uuid":If(n,"uuid",r.message,t);break;case"regex":Of(n,r.regex,r.message,t);break;case"cuid":Of(n,Df,r.message,t);break;case"cuid2":Of(n,yf,r.message,t);break;case"startsWith":Of(n,RegExp(`^${xf(r.value,t)}`),r.message,t);break;case"endsWith":Of(n,RegExp(`${xf(r.value,t)}$`),r.message,t);break;case"datetime":If(n,"date-time",r.message,t);break;case"date":If(n,"date",r.message,t);break;case"time":If(n,"time",r.message,t);break;case"duration":If(n,"duration",r.message,t);break;case"length":n.minLength="number"==typeof n.minLength?Math.max(n.minLength,r.value):r.value,n.maxLength="number"==typeof n.maxLength?Math.min(n.maxLength,r.value):r.value;break;case"includes":Of(n,RegExp(xf(r.value,t)),r.message,t);break;case"ip":"v6"!==r.version&&If(n,"ipv4",r.message,t),"v4"!==r.version&&If(n,"ipv6",r.message,t);break;case"base64url":Of(n,kf,r.message,t);break;case"jwt":Of(n,_f,r.message,t);break;case"cidr":"v6"!==r.version&&Of(n,bf,r.message,t),"v4"!==r.version&&Of(n,Cf,r.message,t);break;case"emoji":Of(n,Ef(),r.message,t);break;case"ulid":Of(n,gf,r.message,t);break;case"base64":switch(t.base64Strategy){case"format:binary":If(n,"binary",r.message,t);break;case"contentEncoding:base64":n.contentEncoding="base64";break;case"pattern:zod":Of(n,Af,r.message,t)}break;case"nanoid":Of(n,wf,r.message,t)}return n}function xf(e,t){return"escape"===t.patternStrategy?function(e){let t="";for(let n=0;ne.format))?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):e.format=t}function Of(e,t,n,r){var u;e.pattern||(null==(u=e.allOf)?void 0:u.some(e=>e.pattern))?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:Tf(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):e.pattern=Tf(t,r)}function Tf(e,t){var n;if(!t.applyRegexFlags||!e.flags)return e.source;const r=e.flags.includes("i"),u=e.flags.includes("m"),a=e.flags.includes("s"),i=r?e.source.toLowerCase():e.source;let o="",s=!1,c=!1,l=!1;for(let d=0;d{switch(t){case Hd.ZodString:return Sf(e,n);case Hd.ZodNumber:return function(e){const t={type:"number"};if(!e.checks)return t;for(const n of e.checks)switch(n.kind){case"int":t.type="integer";break;case"min":n.inclusive?t.minimum=n.value:t.exclusiveMinimum=n.value;break;case"max":n.inclusive?t.maximum=n.value:t.exclusiveMaximum=n.value;break;case"multipleOf":t.multipleOf=n.value}return t}(e);case Hd.ZodObject:return function(e,t){const n={type:"object",properties:{}},r=[],u=e.shape();for(const i in u){let e=u[i];if(void 0===e||void 0===e._def)continue;const a=Nf(e),o=Rf(e._def,{...t,currentPath:[...t.currentPath,"properties",i],propertyPath:[...t.currentPath,"properties",i]});void 0!==o&&(n.properties[i]=o,a||r.push(i))}r.length&&(n.required=r);const a=function(e,t){if("ZodNever"!==e.catchall._def.typeName)return Rf(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}(e,t);return void 0!==a&&(n.additionalProperties=a),n}(e,n);case Hd.ZodBigInt:return function(e){const t={type:"integer",format:"int64"};if(!e.checks)return t;for(const n of e.checks)switch(n.kind){case"min":n.inclusive?t.minimum=n.value:t.exclusiveMinimum=n.value;break;case"max":n.inclusive?t.maximum=n.value:t.exclusiveMaximum=n.value;break;case"multipleOf":t.multipleOf=n.value}return t}(e);case Hd.ZodBoolean:return{type:"boolean"};case Hd.ZodDate:return hf(e,n);case Hd.ZodUndefined:return{not:{}};case Hd.ZodNull:return{type:"null"};case Hd.ZodArray:return function(e,t){var n,r,u;const a={type:"array"};return(null==(n=e.type)?void 0:n._def)&&(null==(u=null==(r=e.type)?void 0:r._def)?void 0:u.typeName)!==Hd.ZodAny&&(a.items=Rf(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&(a.minItems=e.minLength.value),e.maxLength&&(a.maxItems=e.maxLength.value),e.exactLength&&(a.minItems=e.exactLength.value,a.maxItems=e.exactLength.value),a}(e,n);case Hd.ZodUnion:case Hd.ZodDiscriminatedUnion:return function(e,t){const n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in jf&&(!e._def.checks||!e._def.checks.length))){const e=n.reduce((e,t)=>{const n=jf[t._def.typeName];return n&&!e.includes(n)?[...e,n]:e},[]);return{type:e.length>1?e:e[0]}}if(n.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){const e=n.reduce((e,t)=>{const n=typeof t._def.value;switch(n){case"string":case"number":case"boolean":return[...e,n];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}},[]);if(e.length===n.length){const t=e.filter((e,t,n)=>n.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:n.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(n.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:n.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return((e,t)=>{const n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>Rf(e._def,{...t,currentPath:[...t.currentPath,"anyOf",`${n}`]})).filter(e=>!!e&&(!t.strictUnions||"object"==typeof e&&Object.keys(e).length>0));return n.length?{anyOf:n}:void 0})(e,t)}(e,n);case Hd.ZodIntersection:return function(e,t){const n=[Rf(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),Rf(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(e=>!!e),r=[];return n.forEach(e=>{if("type"in(t=e)&&"string"===t.type||!("allOf"in t)){let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){const{additionalProperties:n,...r}=e;t=r}r.push(t)}else r.push(...e.allOf);var t}),r.length?{allOf:r}:void 0}(e,n);case Hd.ZodTuple:return function(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((e,n)=>Rf(e._def,{...t,currentPath:[...t.currentPath,"items",`${n}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[]),additionalItems:Rf(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>Rf(e._def,{...t,currentPath:[...t.currentPath,"items",`${n}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[])}}(e,n);case Hd.ZodRecord:return Pf(e,n);case Hd.ZodLiteral:return function(e){const t=typeof e.value;return"bigint"!==t&&"number"!==t&&"boolean"!==t&&"string"!==t?{type:Array.isArray(e.value)?"array":"object"}:{type:"bigint"===t?"integer":t,const:e.value}}(e);case Hd.ZodEnum:return function(e){return{type:"string",enum:Array.from(e.values)}}(e);case Hd.ZodNativeEnum:return function(e){const t=e.values,n=Object.keys(e.values).filter(e=>"number"!=typeof t[t[e]]).map(e=>t[e]),r=Array.from(new Set(n.map(e=>typeof e)));return{type:1===r.length?"string"===r[0]?"string":"number":["string","number"],enum:n}}(e);case Hd.ZodNullable:return function(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[jf[e.innerType._def.typeName],"null"]};const n=Rf(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}(e,n);case Hd.ZodOptional:return((e,t)=>{var n;if(t.currentPath.toString()===(null==(n=t.propertyPath)?void 0:n.toString()))return Rf(e.innerType._def,t);const r=Rf(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return r?{anyOf:[{not:{}},r]}:{}})(e,n);case Hd.ZodMap:return function(e,t){return"record"===t.mapStrategy?Pf(e,t):{type:"array",maxItems:125,items:{type:"array",items:[Rf(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||{},Rf(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||{}],minItems:2,maxItems:2}}}(e,n);case Hd.ZodSet:return function(e,t){const n={type:"array",uniqueItems:!0,items:Rf(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&(n.minItems=e.minSize.value),e.maxSize&&(n.maxItems=e.maxSize.value),n}(e,n);case Hd.ZodLazy:return()=>e.getter()._def;case Hd.ZodPromise:return function(e,t){return Rf(e.type._def,t)}(e,n);case Hd.ZodNaN:case Hd.ZodNever:return{not:{}};case Hd.ZodEffects:return function(e,t){return"input"===t.effectStrategy?Rf(e.schema._def,t):{}}(e,n);case Hd.ZodAny:case Hd.ZodUnknown:return{};case Hd.ZodDefault:return function(e,t){return{...Rf(e.innerType._def,t),default:e.defaultValue()}}(e,n);case Hd.ZodBranded:return pf(e,n);case Hd.ZodReadonly:case Hd.ZodCatch:return((e,t)=>Rf(e.innerType._def,t))(e,n);case Hd.ZodPipeline:return((e,t)=>{if("input"===t.pipeStrategy)return Rf(e.in._def,t);if("output"===t.pipeStrategy)return Rf(e.out._def,t);const n=Rf(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]});return{allOf:[n,Rf(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]})].filter(e=>void 0!==e)}})(e,n);case Hd.ZodFunction:case Hd.ZodVoid:case Hd.ZodSymbol:default:return}};function Rf(e,t,n=!1){var r;const u=t.seen.get(e);if(t.override){const a=null==(r=t.override)?void 0:r.call(t,e,t,u,n);if(a!==df)return a}if(u&&!n){const e=Mf(u,t);if(void 0!==e)return e}const a={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,a);const i=zf(e,e.typeName,t),o="function"==typeof i?Rf(i(),t):i;if(o&&Zf(e,t,o),t.postProcess){const n=t.postProcess(o,e,t);return a.jsonSchema=o,n}return a.jsonSchema=o,o}var Mf=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:lf(t.currentPath,e.path)};case"none":case"seen":return e.path.lengtht.currentPath[n]===e)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),{}):"seen"===t.$refStrategy?{}:void 0}},Zf=(e,t,n)=>(e.description&&(n.description=e.description),n),Lf=(e,t)=>{var n;const r=(e=>{const t=(e=>"string"==typeof e?{...ff,name:e}:{...ff,...e})(e),n=void 0!==t.name?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,n])=>[n._def,{def:n._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}})(t);let u="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce((e,[t,n])=>{var u;return{...e,[t]:null!=(u=Rf(n._def,{...r,currentPath:[...r.basePath,r.definitionPath,t]},!0))?u:{}}},{}):void 0;const a="string"==typeof t?t:"title"===(null==t?void 0:t.nameStrategy)||null==t?void 0:t.name,i=null!=(n=Rf(e._def,void 0===a?r:{...r,currentPath:[...r.basePath,r.definitionPath,a]},!1))?n:{},o="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==o&&(i.title=o);const s=void 0===a?u?{...i,[r.definitionPath]:u}:i:{$ref:[..."relative"===r.$refStrategy?[]:r.basePath,r.definitionPath,a].join("/"),[r.definitionPath]:{...u,[a]:i}};return s.$schema="http://json-schema.org/draft-07/schema#",s};function $f(e,t){return function(e){return"_zod"in e}(e)?function(e){return Uf(()=>function(e,t){if(e instanceof ps){var n,r=new js(t),u={},a=f(e._idmap.entries());try{for(a.s();!(n=a.n()).done;){var i=A(n.value,2),o=(i[0],i[1]);r.process(o)}}catch(e){a.e(e)}finally{a.f()}var s,c={},l={registry:e,uri:null==t?void 0:t.uri,defs:u},d=f(e._idmap.entries());try{for(d.s();!(s=d.n()).done;){var h=A(s.value,2),v=h[0],m=h[1];c[v]=r.emit(m,g(g({},t),{},{external:l}))}}catch(e){d.e(e)}finally{d.f()}if(Object.keys(u).length>0){var D="draft-2020-12"===r.target?"$defs":"definitions";c.__shared=p({},D,u)}return{schemas:c}}var y=new js(t);return y.process(e),y.emit(e,t)}(e,{target:"draft-7",io:"output",reused:"inline"}),{validate:async t=>{const n=await Js(e,t);return n.success?{success:!0,value:n.data}:{success:!1,error:n.error}}})}(e):function(e){return Uf(()=>Lf(e,{$refStrategy:"none"}),{validate:async t=>{const n=await e.safeParseAsync(t);return n.success?{success:!0,value:n.data}:{success:!1,error:n.error}}})}(e)}var qf=Symbol.for("vercel.ai.schema");function Uf(e,{validate:t}={}){return{[qf]:!0,_type:void 0,[uf]:!0,get jsonSchema(){return"function"==typeof e&&(e=e()),e},validate:t}}var Vf,Hf=Object.defineProperty,Jf="AI_NoObjectGeneratedError",Kf=`vercel.ai.error.${Jf}`,Wf=Symbol.for(Kf),Qf=class extends Wu{constructor({message:e="No object generated.",cause:t,text:n,response:r,usage:u,finishReason:a}){super({name:Jf,message:e,cause:t}),this[Vf]=!0,this.text=n,this.response=r,this.usage=u,this.finishReason=a}static isInstance(e){return Wu.hasMarker(e,Kf)}};Vf=Wf;var Gf="5.0.93",Yf=Uc([ac(),ml(Uint8Array),ml(ArrayBuffer),vl(e=>{var t,n;return null!=(n=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&n},{message:"Must be a Buffer"})]),Xf=new pl({type:"lazy",getter:()=>Uc([Tc(),ac(),_c(),Ic(),Kc(ac(),Xf),Mc(Xf)])}),ep=Kc(ac(),Kc(ac(),Xf)),tp=Lc({type:Yc("text"),text:ac(),providerOptions:ep.optional()}),np=Lc({type:Yc("image"),image:Uc([Yf,ml(URL)]),mediaType:ac().optional(),providerOptions:ep.optional()}),rp=Lc({type:Yc("file"),data:Uc([Yf,ml(URL)]),filename:ac().optional(),mediaType:ac(),providerOptions:ep.optional()}),up=Lc({type:Yc("reasoning"),text:ac(),providerOptions:ep.optional()}),ap=Lc({type:Yc("tool-call"),toolCallId:ac(),toolName:ac(),input:jc(),providerOptions:ep.optional(),providerExecuted:Ic().optional()}),ip=new Vc(g({type:"union",options:[Lc({type:Yc("text"),value:ac()}),Lc({type:Yc("json"),value:Xf}),Lc({type:Yc("error-text"),value:ac()}),Lc({type:Yc("error-json"),value:Xf}),Lc({type:Yc("content"),value:Mc(Uc([Lc({type:Yc("text"),text:ac()}),Lc({type:Yc("media"),data:ac(),mediaType:ac()})]))})],discriminator:"type"},Ra(void 0))),op=Lc({type:Yc("tool-result"),toolCallId:ac(),toolName:ac(),output:ip,providerOptions:ep.optional()}),sp=Lc({role:Yc("system"),content:ac(),providerOptions:ep.optional()}),cp=Lc({role:Yc("user"),content:Uc([ac(),Mc(Uc([tp,np,rp]))]),providerOptions:ep.optional()}),lp=Lc({role:Yc("assistant"),content:Uc([ac(),Mc(Uc([tp,rp,up,ap,op]))]),providerOptions:ep.optional()});Uc([sp,cp,lp,Lc({role:Yc("tool"),content:Mc(op),providerOptions:ep.optional()})]),Qd({prefix:"aitxt",size:24}),TransformStream;var dp=function(){let e;return()=>(null==e&&(e=$f(Uc([$c({type:Yc("text-start"),id:ac(),providerMetadata:ep.optional()}),$c({type:Yc("text-delta"),id:ac(),delta:ac(),providerMetadata:ep.optional()}),$c({type:Yc("text-end"),id:ac(),providerMetadata:ep.optional()}),$c({type:Yc("error"),errorText:ac()}),$c({type:Yc("tool-input-start"),toolCallId:ac(),toolName:ac(),providerExecuted:Ic().optional(),dynamic:Ic().optional()}),$c({type:Yc("tool-input-delta"),toolCallId:ac(),inputTextDelta:ac()}),$c({type:Yc("tool-input-available"),toolCallId:ac(),toolName:ac(),input:jc(),providerExecuted:Ic().optional(),providerMetadata:ep.optional(),dynamic:Ic().optional()}),$c({type:Yc("tool-input-error"),toolCallId:ac(),toolName:ac(),input:jc(),providerExecuted:Ic().optional(),providerMetadata:ep.optional(),dynamic:Ic().optional(),errorText:ac()}),$c({type:Yc("tool-output-available"),toolCallId:ac(),output:jc(),providerExecuted:Ic().optional(),dynamic:Ic().optional(),preliminary:Ic().optional()}),$c({type:Yc("tool-output-error"),toolCallId:ac(),errorText:ac(),providerExecuted:Ic().optional(),dynamic:Ic().optional()}),$c({type:Yc("reasoning-start"),id:ac(),providerMetadata:ep.optional()}),$c({type:Yc("reasoning-delta"),id:ac(),delta:ac(),providerMetadata:ep.optional()}),$c({type:Yc("reasoning-end"),id:ac(),providerMetadata:ep.optional()}),$c({type:Yc("source-url"),sourceId:ac(),url:ac(),title:ac().optional(),providerMetadata:ep.optional()}),$c({type:Yc("source-document"),sourceId:ac(),mediaType:ac(),title:ac(),filename:ac().optional(),providerMetadata:ep.optional()}),$c({type:Yc("file"),url:ac(),mediaType:ac(),providerMetadata:ep.optional()}),$c({type:vl(e=>"string"==typeof e&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:ac().optional(),data:jc(),transient:Ic().optional()}),$c({type:Yc("start-step")}),$c({type:Yc("finish-step")}),$c({type:Yc("start"),messageId:ac().optional(),messageMetadata:jc().optional()}),$c({type:Yc("finish"),finishReason:Qc(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:jc().optional()}),$c({type:Yc("abort")}),$c({type:Yc("message-metadata"),messageMetadata:jc()})]))),e)}();function fp(e,t){if(void 0===e&&void 0===t)return;if(void 0===e)return t;if(void 0===t)return e;const n={...e};for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){const u=t[r];if(void 0===u)continue;const a=r in e?e[r]:void 0,i=!(null===u||"object"!=typeof u||Array.isArray(u)||u instanceof Date||u instanceof RegExp),o=!(null==a||"object"!=typeof a||Array.isArray(a)||a instanceof Date||a instanceof RegExp);n[r]=i&&o?fp(a,u):u}return n}function pp(e){const t=["ROOT"];let n=-1,r=null;function u(e,u,a){switch(e){case'"':n=u,t.pop(),t.push(a),t.push("INSIDE_STRING");break;case"f":case"t":case"n":n=u,r=u,t.pop(),t.push(a),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(a),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n=u,t.pop(),t.push(a),t.push("INSIDE_NUMBER");break;case"{":n=u,t.pop(),t.push(a),t.push("INSIDE_OBJECT_START");break;case"[":n=u,t.pop(),t.push(a),t.push("INSIDE_ARRAY_START")}}function a(e,r){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":n=r,t.pop()}}function i(e,r){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":n=r,t.pop()}}for(let s=0;s=0;s--)switch(t[s]){case"INSIDE_STRING":o+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":o+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":o+="]";break;case"INSIDE_LITERAL":{const t=e.substring(r,e.length);"true".startsWith(t)?o+="true".slice(t.length):"false".startsWith(t)?o+="false".slice(t.length):"null".startsWith(t)&&(o+="null".slice(t.length))}}return o}async function hp(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await sf({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await sf({text:pp(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function vp(e){return e.type.startsWith("tool-")}function mp(e){return vp(e)||function(e){return"dynamic-tool"===e.type}(e)}function Dp(e){return e.type.split("-").slice(1).join("-")}function yp({lastMessage:e,messageId:t}){return{message:"assistant"===(null==e?void 0:e.role)?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function gp({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:r,onError:u,onToolCall:a,onData:i}){return e.pipeThrough(new TransformStream({async transform(e,o){await r(async({state:r,write:s})=>{var c,l,d,f;function p(e){const t=r.message.parts.filter(vp).find(t=>t.toolCallId===e);if(null==t)throw new Error("tool-output-error must be preceded by a tool-input-available");return t}function h(e){const t=r.message.parts.filter(e=>"dynamic-tool"===e.type).find(t=>t.toolCallId===e);if(null==t)throw new Error("tool-output-error must be preceded by a tool-input-available");return t}function v(e){var t;const n=r.message.parts.find(t=>vp(t)&&t.toolCallId===e.toolCallId),u=e,a=n;null!=n?(n.state=e.state,a.input=u.input,a.output=u.output,a.errorText=u.errorText,a.rawInput=u.rawInput,a.preliminary=u.preliminary,a.providerExecuted=null!=(t=u.providerExecuted)?t:n.providerExecuted,null!=u.providerMetadata&&"input-available"===n.state&&(n.callProviderMetadata=u.providerMetadata)):r.message.parts.push({type:`tool-${e.toolName}`,toolCallId:e.toolCallId,state:e.state,input:u.input,output:u.output,rawInput:u.rawInput,errorText:u.errorText,providerExecuted:u.providerExecuted,preliminary:u.preliminary,...null!=u.providerMetadata?{callProviderMetadata:u.providerMetadata}:{}})}function m(e){var t,n;const u=r.message.parts.find(t=>"dynamic-tool"===t.type&&t.toolCallId===e.toolCallId),a=e,i=u;null!=u?(u.state=e.state,i.toolName=e.toolName,i.input=a.input,i.output=a.output,i.errorText=a.errorText,i.rawInput=null!=(t=a.rawInput)?t:i.rawInput,i.preliminary=a.preliminary,i.providerExecuted=null!=(n=a.providerExecuted)?n:u.providerExecuted,null!=a.providerMetadata&&"input-available"===u.state&&(u.callProviderMetadata=a.providerMetadata)):r.message.parts.push({type:"dynamic-tool",toolName:e.toolName,toolCallId:e.toolCallId,state:e.state,input:a.input,output:a.output,errorText:a.errorText,preliminary:a.preliminary,providerExecuted:a.providerExecuted,...null!=a.providerMetadata?{callProviderMetadata:a.providerMetadata}:{}})}async function D(e){if(null!=e){const n=null!=r.message.metadata?fp(r.message.metadata,e):e;null!=t&&await af({value:n,schema:t}),r.message.metadata=n}}switch(e.type){case"text-start":{const t={type:"text",text:"",providerMetadata:e.providerMetadata,state:"streaming"};r.activeTextParts[e.id]=t,r.message.parts.push(t),s();break}case"text-delta":{const t=r.activeTextParts[e.id];t.text+=e.delta,t.providerMetadata=null!=(c=e.providerMetadata)?c:t.providerMetadata,s();break}case"text-end":{const t=r.activeTextParts[e.id];t.state="done",t.providerMetadata=null!=(l=e.providerMetadata)?l:t.providerMetadata,delete r.activeTextParts[e.id],s();break}case"reasoning-start":{const t={type:"reasoning",text:"",providerMetadata:e.providerMetadata,state:"streaming"};r.activeReasoningParts[e.id]=t,r.message.parts.push(t),s();break}case"reasoning-delta":{const t=r.activeReasoningParts[e.id];t.text+=e.delta,t.providerMetadata=null!=(d=e.providerMetadata)?d:t.providerMetadata,s();break}case"reasoning-end":{const t=r.activeReasoningParts[e.id];t.providerMetadata=null!=(f=e.providerMetadata)?f:t.providerMetadata,t.state="done",delete r.activeReasoningParts[e.id],s();break}case"file":r.message.parts.push({type:"file",mediaType:e.mediaType,url:e.url}),s();break;case"source-url":r.message.parts.push({type:"source-url",sourceId:e.sourceId,url:e.url,title:e.title,providerMetadata:e.providerMetadata}),s();break;case"source-document":r.message.parts.push({type:"source-document",sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename,providerMetadata:e.providerMetadata}),s();break;case"tool-input-start":{const t=r.message.parts.filter(vp);r.partialToolCalls[e.toolCallId]={text:"",toolName:e.toolName,index:t.length,dynamic:e.dynamic},e.dynamic?m({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted}):v({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted}),s();break}case"tool-input-delta":{const t=r.partialToolCalls[e.toolCallId];t.text+=e.inputTextDelta;const{value:n}=await hp(t.text);t.dynamic?m({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:n}):v({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:n}),s();break}case"tool-input-available":e.dynamic?m({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}):v({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),s(),a&&!e.providerExecuted&&await a({toolCall:e});break;case"tool-input-error":e.dynamic?m({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}):v({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:void 0,rawInput:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),s();break;case"tool-output-available":if(e.dynamic){const t=h(e.toolCallId);m({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-available",input:t.input,output:e.output,preliminary:e.preliminary})}else{const t=p(e.toolCallId);v({toolCallId:e.toolCallId,toolName:Dp(t),state:"output-available",input:t.input,output:e.output,providerExecuted:e.providerExecuted,preliminary:e.preliminary})}s();break;case"tool-output-error":if(e.dynamic){const t=h(e.toolCallId);m({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-error",input:t.input,errorText:e.errorText,providerExecuted:e.providerExecuted})}else{const t=p(e.toolCallId);v({toolCallId:e.toolCallId,toolName:Dp(t),state:"output-error",input:t.input,rawInput:t.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted})}s();break;case"start-step":r.message.parts.push({type:"step-start"});break;case"finish-step":r.activeTextParts={},r.activeReasoningParts={};break;case"start":null!=e.messageId&&(r.message.id=e.messageId),await D(e.messageMetadata),null==e.messageId&&null==e.messageMetadata||s();break;case"finish":null!=e.finishReason&&(r.finishReason=e.finishReason),await D(e.messageMetadata),null!=e.messageMetadata&&s();break;case"message-metadata":await D(e.messageMetadata),null!=e.messageMetadata&&s();break;case"error":null==u||u(new Error(e.errorText));break;default:if(function(e){return e.type.startsWith("data-")}(e)){null!=(null==n?void 0:n[e.type])&&await af({value:e.data,schema:n[e.type]});const t=e;if(t.transient){null==i||i(t);break}const u=null!=t.id?r.message.parts.find(e=>t.type===e.type&&t.id===e.id):void 0;null!=u?u.data=t.data:r.message.parts.push(t),null==i||i(t),s()}}o.enqueue(e)})}}))}Qd({prefix:"aitxt",size:24}),Qd({prefix:"aiobj",size:24});var Fp=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,n)=>{this.queue.push(async()=>{try{await e(),t()}catch(e){n(e)}}),this.processQueue()})}};Qd({prefix:"aiobj",size:24}),((e,t)=>{for(var n in t)Hf(e,n,{get:t[n],enumerable:!0})})({},{object:()=>Ap,text:()=>Cp});var Ep,bp,Cp=()=>({type:"text",responseFormat:{type:"text"},parsePartial:async({text:e})=>({partial:e}),parseOutput:async({text:e})=>e}),Ap=({schema:e})=>{const t=function(e){return null==e?Uf({properties:{},additionalProperties:!1}):"object"==typeof(t=e)&&null!==t&&qf in t&&!0===t[qf]&&"jsonSchema"in t&&"validate"in t?e:"function"==typeof e?e():$f(e);var t}(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:e}){const t=await hp(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value};default:{const e=t.state;throw new Error(`Unsupported parse state: ${e}`)}}},async parseOutput({text:e},n){const r=await sf({text:e});if(!r.success)throw new Qf({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:n.response,usage:n.usage,finishReason:n.finishReason});const u=await of({value:r.value,schema:t});if(!u.success)throw new Qf({message:"No object generated: response did not match schema.",cause:u.error,text:e,response:n.response,usage:n.usage,finishReason:n.finishReason});return u.value}}},kp=class{constructor({api:e="/api/chat",credentials:t,headers:n,body:r,fetch:u,prepareSendMessagesRequest:a,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=n,this.body=r,this.fetch=u,this.prepareSendMessagesRequest=a,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var n,r,u,a,i;const o=await cf(this.body),s=await cf(this.headers),c=await cf(this.credentials),l={...Xd(s),...Xd(t.headers)},d=await(null==(n=this.prepareSendMessagesRequest)?void 0:n.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...o,...t.body},headers:l,credentials:c,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),f=null!=(r=null==d?void 0:d.api)?r:this.api,p=void 0!==(null==d?void 0:d.headers)?Xd(d.headers):l,h=void 0!==(null==d?void 0:d.body)?d.body:{...o,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},v=null!=(u=null==d?void 0:d.credentials)?u:c,m=null!=(a=this.fetch)?a:globalThis.fetch,D=await m(f,{method:"POST",headers:ef({"Content-Type":"application/json",...p},`ai-sdk/${Gf}`,Yd()),body:JSON.stringify(h),credentials:v,signal:e});if(!D.ok)throw new Error(null!=(i=await D.text())?i:"Failed to fetch the chat response.");if(!D.body)throw new Error("The response body is empty.");return this.processResponseStream(D.body)}async reconnectToStream(e){var t,n,r,u,a;const i=await cf(this.body),o=await cf(this.headers),s=await cf(this.credentials),c={...Xd(o),...Xd(e.headers)},l=await(null==(t=this.prepareReconnectToStreamRequest)?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...i,...e.body},headers:c,credentials:s,requestMetadata:e.metadata})),d=null!=(n=null==l?void 0:l.api)?n:`${this.api}/${e.chatId}/stream`,f=void 0!==(null==l?void 0:l.headers)?Xd(l.headers):c,p=null!=(r=null==l?void 0:l.credentials)?r:s,h=null!=(u=this.fetch)?u:globalThis.fetch,v=await h(d,{method:"GET",headers:ef(f,`ai-sdk/${Gf}`,Yd()),credentials:p});if(204===v.status)return null;if(!v.ok)throw new Error(null!=(a=await v.text())?a:"Failed to fetch the chat response.");if(!v.body)throw new Error("The response body is empty.");return this.processResponseStream(v.body)}},wp=class extends kp{constructor(e={}){super(e)}processResponseStream(e){return function({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new ha).pipeThrough(new TransformStream({async transform({data:e},n){"[DONE]"!==e&&n.enqueue(await sf({text:e,schema:t}))}}))}({stream:e,schema:dp}).pipeThrough(new TransformStream({async transform(e,t){if(!e.success)throw e.error;t.enqueue(e.value)}}))}},_p=class{constructor({generateId:e=Gd,id:t=e(),transport:n=new wp,messageMetadataSchema:r,dataPartSchemas:u,state:a,onError:i,onToolCall:o,onFinish:s,onData:c,sendAutomaticallyWhen:l}){this.activeResponse=void 0,this.jobExecutor=new Fp,this.sendMessage=async(e,t)=>{var n,r,u,a;if(null==e)return void await this.makeRequest({trigger:"submit-message",messageId:null==(n=this.lastMessage)?void 0:n.id,...t});let i;if("text"in e||"files"in e){const t=Array.isArray(e.files)?e.files:await async function(e){if(null==e)return[];if(!(globalThis.FileList&&e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async e=>{const{name:t,type:n}=e;return{type:"file",mediaType:n,filename:t,url:await new Promise((t,n)=>{const r=new FileReader;r.onload=e=>{var n;t(null==(n=e.target)?void 0:n.result)},r.onerror=e=>n(e),r.readAsDataURL(e)})}}))}(e.files);i={parts:[...t,..."text"in e&&null!=e.text?[{type:"text",text:e.text}]:[]]}}else i=e;if(null!=e.messageId){const t=this.state.messages.findIndex(t=>t.id===e.messageId);if(-1===t)throw new Error(`message with id ${e.messageId} not found`);if("user"!==this.state.messages[t].role)throw new Error(`message with id ${e.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,t+1),this.state.replaceMessage(t,{...i,id:e.messageId,role:null!=(r=i.role)?r:"user",metadata:e.metadata})}else this.state.pushMessage({...i,id:null!=(u=i.id)?u:this.generateId(),role:null!=(a=i.role)?a:"user",metadata:e.metadata});await this.makeRequest({trigger:"submit-message",messageId:e.messageId,...t})},this.regenerate=async({messageId:e,...t}={})=>{const n=null==e?this.state.messages.length-1:this.state.messages.findIndex(t=>t.id===e);if(-1===n)throw new Error(`message ${e} not found`);this.state.messages=this.state.messages.slice(0,"assistant"===this.messages[n].role?n:n+1),await this.makeRequest({trigger:"regenerate-message",messageId:e,...t})},this.resumeStream=async(e={})=>{await this.makeRequest({trigger:"resume-stream",...e})},this.clearError=()=>{"error"===this.status&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolOutput=async({state:e="output-available",tool:t,toolCallId:n,output:r,errorText:u})=>this.jobExecutor.run(async()=>{var t,a;const i=this.state.messages,o=i[i.length-1];this.state.replaceMessage(i.length-1,{...o,parts:o.parts.map(t=>mp(t)&&t.toolCallId===n?{...t,state:e,output:r,errorText:u}:t)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(t=>mp(t)&&t.toolCallId===n?{...t,state:e,output:r,errorText:u}:t)),"streaming"!==this.status&&"submitted"!==this.status&&(null==(t=this.sendAutomaticallyWhen)?void 0:t.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:null==(a=this.lastMessage)?void 0:a.id})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var e;"streaming"!==this.status&&"submitted"!==this.status||(null==(e=this.activeResponse)?void 0:e.abortController)&&this.activeResponse.abortController.abort()},this.id=t,this.transport=n,this.generateId=e,this.messageMetadataSchema=r,this.dataPartSchemas=u,this.state=a,this.onError=i,this.onToolCall=o,this.onFinish=s,this.onData=c,this.sendAutomaticallyWhen=l}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async makeRequest({trigger:e,metadata:t,headers:n,body:r,messageId:u}){var a,i,o,s;this.setStatus({status:"submitted",error:void 0});const c=this.lastMessage;let l=!1,d=!1,f=!1;try{const a={state:yp({lastMessage:this.state.snapshot(c),messageId:this.generateId()}),abortController:new AbortController};let i;if(a.abortController.signal.addEventListener("abort",()=>{l=!0}),this.activeResponse=a,"resume-stream"===e){const e=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:n,body:r});if(null==e)return void this.setStatus({status:"ready"});i=e}else i=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:a.abortController.signal,metadata:t,headers:n,body:r,trigger:e,messageId:u});const o=e=>this.jobExecutor.run(()=>e({state:a.state,write:()=>{var e;this.setStatus({status:"streaming"}),a.state.message.id===(null==(e=this.lastMessage)?void 0:e.id)?this.state.replaceMessage(this.state.messages.length-1,a.state.message):this.state.pushMessage(a.state.message)}}));await async function({stream:e,onError:t}){const n=e.getReader();try{for(;;){const{done:e}=await n.read();if(e)break}}catch(e){null==t||t(e)}finally{n.releaseLock()}}({stream:gp({stream:i,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:o,onError:e=>{throw e}}),onError:e=>{throw e}}),this.setStatus({status:"ready"})}catch(e){if(l||"AbortError"===e.name)return l=!0,this.setStatus({status:"ready"}),null;f=!0,e instanceof TypeError&&(e.message.toLowerCase().includes("fetch")||e.message.toLowerCase().includes("network"))&&(d=!0),this.onError&&e instanceof Error&&this.onError(e),this.setStatus({status:"error",error:e})}finally{try{null==(i=this.onFinish)||i.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:l,isDisconnect:d,isError:f,finishReason:null==(a=this.activeResponse)?void 0:a.state.finishReason})}catch(e){console.error(e)}this.activeResponse=void 0}(null==(o=this.sendAutomaticallyWhen)?void 0:o.call(this,{messages:this.state.messages}))&&!f&&await this.makeRequest({trigger:"submit-message",messageId:null==(s=this.lastMessage)?void 0:s.id,metadata:t,headers:n,body:r})}};function Sp({messages:e}){const t=e[e.length-1];if(!t)return!1;if("assistant"!==t.role)return!1;const n=t.parts.reduce((e,t,n)=>"step-start"===t.type?n:e,-1),r=t.parts.slice(n+1).filter(mp).filter(e=>!e.providerExecuted);return r.length>0&&r.every(e=>"output-available"===e.state||"output-error"===e.state)}var xp,Bp,Ip,Op,Tp,Pp,jp,Np,zp,Rp,Mp=function(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}((bp||(bp=1,Ep=function(e,t){if("function"!=typeof e)throw new TypeError("Expected the first argument to be a `function`, got `".concat(_(e),"`."));var n,r=0;return function(){for(var u=this,a=arguments.length,i=new Array(a),o=0;o{if(!t.has(e))throw TypeError("Cannot "+n)},Lp=(e,t,n)=>(Zp(e,t,"read from private field"),n?n.call(e):t.get(e)),$p=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},qp=(e,t,n,r)=>(Zp(e,t,"write to private field"),t.set(e,n),n),Up=class{constructor(e=[]){$p(this,xp,void 0),$p(this,Bp,"ready"),$p(this,Ip,void 0),$p(this,Op,new Set),$p(this,Tp,new Set),$p(this,Pp,new Set),this.pushMessage=e=>{qp(this,xp,Lp(this,xp).concat(e)),Lp(this,jp).call(this)},this.popMessage=()=>{qp(this,xp,Lp(this,xp).slice(0,-1)),Lp(this,jp).call(this)},this.replaceMessage=(e,t)=>{qp(this,xp,[...Lp(this,xp).slice(0,e),this.snapshot(t),...Lp(this,xp).slice(e+1)]),Lp(this,jp).call(this)},this.snapshot=e=>structuredClone(e),this["~registerMessagesCallback"]=(e,t)=>{const n=t?(r=e,null!=(u=t)?Mp(r,u):r):e;var r,u;return Lp(this,Op).add(n),()=>{Lp(this,Op).delete(n)}},this["~registerStatusCallback"]=e=>(Lp(this,Tp).add(e),()=>{Lp(this,Tp).delete(e)}),this["~registerErrorCallback"]=e=>(Lp(this,Pp).add(e),()=>{Lp(this,Pp).delete(e)}),$p(this,jp,()=>{Lp(this,Op).forEach(e=>e())}),$p(this,Np,()=>{Lp(this,Tp).forEach(e=>e())}),$p(this,zp,()=>{Lp(this,Pp).forEach(e=>e())}),qp(this,xp,e)}get status(){return Lp(this,Bp)}set status(e){qp(this,Bp,e),Lp(this,Np).call(this)}get error(){return Lp(this,Ip)}set error(e){qp(this,Ip,e),Lp(this,zp).call(this)}get messages(){return Lp(this,xp)}set messages(e){qp(this,xp,[...e]),Lp(this,jp).call(this)}};xp=new WeakMap,Bp=new WeakMap,Ip=new WeakMap,Op=new WeakMap,Tp=new WeakMap,Pp=new WeakMap,jp=new WeakMap,Np=new WeakMap,zp=new WeakMap;var Vp=class extends _p{constructor({messages:e,...t}){const n=new Up(e);super({...t,state:n}),$p(this,Rp,void 0),this["~registerMessagesCallback"]=(e,t)=>Lp(this,Rp)["~registerMessagesCallback"](e,t),this["~registerStatusCallback"]=e=>Lp(this,Rp)["~registerStatusCallback"](e),this["~registerErrorCallback"]=e=>Lp(this,Rp)["~registerErrorCallback"](e),qp(this,Rp,n)}};Rp=new WeakMap;var Hp="askai_token",Jp=function(e){return"https://".concat(e,".algolia.net/agent-studio/1")},Kp=function(e){if(!e)return!0;try{var t=function(e){var t=A(e.split("."),1)[0];return JSON.parse(atob(t))}(e),n=t.exp;return Date.now()/1e3>n-30}catch(e){return!0}},Wp=null,Qp=function(){var e=i(E().m(function e(t){var n,r,u,a,i,o;return E().w(function(e){for(;;)switch(e.n){case 0:if(n=t.assistantId,r=t.abortSignal,u=t.useStagingEnv,a=void 0!==u&&u,i=sessionStorage.getItem(Hp),Kp(i)){e.n=1;break}return e.a(2,i);case 1:return o=a?Vt:Ut,Wp||(Wp=fetch("".concat(o,"/token"),{method:"POST",headers:{"x-algolia-assistant-id":n,"content-type":"application/json"},signal:r}).then(function(e){return e.json()}).then(function(e){var t=e.token,n=e.success,r=e.message;if(!n&&r)throw new Error(r);return sessionStorage.setItem(Hp,t),t}).finally(function(){return Wp=null})),e.a(2,Wp)}},e)}));return function(t){return e.apply(this,arguments)}}(),Gp=function(){var e=i(E().m(function e(t){var n,r,u,a,i,o,s,c,l,d;return E().w(function(e){for(;;)switch(e.n){case 0:return n=t.assistantId,r=t.thumbs,u=t.messageId,a=t.appId,i=t.abortSignal,o=t.useStagingEnv,s=void 0!==o&&o,(c=new Headers).set("x-algolia-assistant-id",n),c.set("content-type","application/json"),e.n=1,Qp({assistantId:n,abortSignal:i,useStagingEnv:s});case 1:return l=e.v,c.set("authorization","TOKEN ".concat(l)),d=s?Vt:Ut,e.a(2,fetch("".concat(d,"/feedback"),{method:"POST",body:JSON.stringify({appId:a,messageId:u,thumbs:r}),headers:c}))}},e)}));return function(t){return e.apply(this,arguments)}}(),Yp=function(e){var t=e.agentId,n=e.vote,r=e.messageId,u=e.appId,a=e.apiKey,i=e.abortSignal,o=new Headers;o.set("x-algolia-application-id",u),o.set("x-algolia-api-key",a),o.set("content-type","application/json");var s="".concat(Jp(u),"/feedback");return fetch(s,{method:"POST",body:JSON.stringify({messageId:r,agentId:t,vote:n}),headers:o,signal:i})},Xp=["assistantId","apiKey","appId","indexName","useStagingEnv"];function eh(e){var t,n="algolia-client-js-".concat(e.key);function r(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function u(){return JSON.parse(r().getItem(n)||"{}")}function a(e){r().setItem(n,JSON.stringify(e))}return{get:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then(function(){var n,r,i;return n=e.timeToLive?1e3*e.timeToLive:null,r=u(),a(i=Object.fromEntries(Object.entries(r).filter(function(e){return void 0!==A(e,2)[1].timestamp}))),n&&a(Object.fromEntries(Object.entries(i).filter(function(e){var t=A(e,2)[1],r=(new Date).getTime();return!(t.timestamp+n2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then(function(e){return Promise.all([e,n.miss(e)])}).then(function(e){return A(e,1)[0]})},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,r){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(e,r,u).catch(function(){return th({caches:t}).get(e,r,u)})},set:function(e,r){return n.set(e,r).catch(function(){return th({caches:t}).set(e,r)})},delete:function(e){return n.delete(e).catch(function(){return th({caches:t}).delete(e)})},clear:function(){return n.clear().catch(function(){return th({caches:t}).clear()})}}}function nh(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(n,r){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(n);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var i=r();return i.then(function(e){return u.miss(e)}).then(function(){return i})},set:function(n,r){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function rh(e){var t=e.algoliaAgents,n=e.client,r=e.version,u=function(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var n="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(n)&&(t.value="".concat(t.value).concat(n)),t}};return t}(r).add({segment:n,version:r});return t.forEach(function(e){return u.add(e)}),u}var uh=12e4;function ah(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"up",n=Date.now();return g(g({},e),{},{status:t,lastUpdate:n,isUp:function(){return"up"===t||Date.now()-n>uh},isTimedOut:function(){return"timed out"===t&&Date.now()-n<=uh}})}var ih=function(){function e(t,n){var r;return s(this,e),p(r=o(this,e,[t]),"name","AlgoliaError"),n&&(r.name=n),r}return m(e,x(Error)),d(e)}(),oh=function(){function e(t,n,r){var u;return s(this,e),p(u=o(this,e,[t,r]),"stackTrace",void 0),u.stackTrace=n,u}return m(e,ih),d(e)}(),sh=function(){function e(t){return s(this,e),o(this,e,["Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support",t,"RetryError"])}return m(e,oh),d(e)}(),ch=function(){function e(t,n,r){var u,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ApiError";return s(this,e),p(u=o(this,e,[t,r,a]),"status",void 0),u.status=n,u}return m(e,oh),d(e)}(),lh=function(){function e(t,n){var r;return s(this,e),p(r=o(this,e,[t,"DeserializationError"]),"response",void 0),r.response=n,r}return m(e,ih),d(e)}(),dh=function(){function e(t,n,r,u){var a;return s(this,e),p(a=o(this,e,[t,n,u,"DetailedApiError"]),"error",void 0),a.error=r,a}return m(e,ch),d(e)}();function fh(e,t,n){var r,u=(r=n,Object.keys(r).filter(function(e){return void 0!==r[e]}).sort().map(function(e){return"".concat(e,"=").concat(encodeURIComponent("[object Array]"===Object.prototype.toString.call(r[e])?r[e].join(","):r[e]).replace(/\+/g,"%20"))}).join("&")),a="".concat(e.protocol,"://").concat(e.url).concat(e.port?":".concat(e.port):"","/").concat("/"===t.charAt(0)?t.substring(1):t);return u.length&&(a+="?".concat(u)),a}function ph(e,t){if("GET"!==e.method&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:g(g({},e.data),t.data);return JSON.stringify(n)}}function hh(e,t,n){var r=g(g(g({Accept:"application/json"},e),t),n),u={};return Object.keys(r).forEach(function(e){var t=r[e];u[e.toLowerCase()]=t}),u}function vh(e){try{return JSON.parse(e.content)}catch(t){throw new lh(t.message,e)}}function mh(e,t){var n=e.content,r=e.status;try{var u=JSON.parse(n);return"error"in u?new dh(u.message,r,u.error,t):new ch(u.message,r,t)}catch(e){}return new ch(n,r,t)}function Dh(e){var t=e.isTimedOut,n=e.status;return t||function(e){return!e.isTimedOut&&0===~~e.status}({isTimedOut:t,status:n})||2!=~~(n/100)&&4!=~~(n/100)}function yh(e){return 2==~~(e.status/100)}function gh(e){return e.map(function(e){return Fh(e)})}function Fh(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return g(g({},e),{},{request:g(g({},e.request),{},{headers:g(g({},e.request.headers),t)})})}var Eh=["appId","apiKey","authMode","algoliaAgents"],bh=["params"],Ch="5.43.0";function Ah(e){return[{url:"".concat(e,"-dsn.algolia.net"),accept:"read",protocol:"https"},{url:"".concat(e,".algolia.net"),accept:"write",protocol:"https"}].concat(function(e){for(var t=e,n=e.length-1;n>0;n--){var r=Math.floor(Math.random()*(n+1)),u=e[n];t[n]=e[r],t[r]=u}return t}([{url:"".concat(e,"-1.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-2.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-3.algolianet.com"),accept:"readWrite",protocol:"https"}]))}var kh="4.7.0";function wh(e,t,n){var u=r.useMemo(function(){var r=function(e,t){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!t||"string"!=typeof t)throw new Error("`apiKey` is missing.");return function(e){var t=e.appId,n=e.apiKey,r=e.authMode,u=e.algoliaAgents,a=F(e,Eh),o=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"WithinHeaders",r={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:function(){return"WithinHeaders"===n?r:{}},queryParameters:function(){return"WithinQueryParameters"===n?r:{}}}}(t,n,r),s=function(e){var t=e.hosts,n=e.hostsCache,r=e.baseHeaders,u=e.logger,a=e.baseQueryParameters,o=e.algoliaAgent,s=e.timeouts,c=e.requester,l=e.requestsCache,d=e.responsesCache;function f(e){return p.apply(this,arguments)}function p(){return(p=i(E().m(function e(t){var r,u,a,i,o;return E().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.all(t.map(function(e){return n.get(e,function(){return Promise.resolve(ah(e))})}));case 1:return r=e.v,u=r.filter(function(e){return e.isUp()}),a=r.filter(function(e){return e.isTimedOut()}),i=[].concat(k(u),k(a)),o=i.length>0?i:t,e.a(2,{hosts:o,getTimeout:function(e,t){return(0===a.length&&0===e?1:a.length+3+e)*t}})}},e)}))).apply(this,arguments)}function h(e,t){return v.apply(this,arguments)}function v(){return v=i(E().m(function e(l,d){var p,h,v,m,D,y,F,b,C,A,w,_,S,x=arguments;return E().w(function(e){for(;;)switch(e.n){case 0:if(p=!(x.length>2&&void 0!==x[2])||x[2],h=[],v=ph(l,d),m=hh(r,l.headers,d.headers),D="GET"===l.method?g(g({},l.data),d.data):{},y=g(g(g({},a),l.queryParameters),D),o.value&&(y["x-algolia-agent"]=o.value),d&&d.queryParameters)for(F=0,b=Object.keys(d.queryParameters);F1&&void 0!==arguments[1]?arguments[1]:{},n=e.useReadTransporter||"GET"===e.method;if(!n)return h(e,t,n);var u=function(){return h(e,t)};if(!0!==(t.cacheable||e.cacheable))return u();var i={request:e,requestOptions:t,transporter:{queryParameters:a,headers:r}};return d.get(i,function(){return l.get(i,function(){return l.set(i,u()).then(function(e){return Promise.all([l.delete(i),e])},function(e){return Promise.all([l.delete(i),Promise.reject(e)])}).then(function(e){var t=A(e,2);return t[0],t[1]})})},{miss:function(e){return d.set(i,e)}})},requestsCache:l,responsesCache:d}}(g(g({hosts:Ah(t)},a),{},{algoliaAgent:rh({algoliaAgents:u,client:"Lite",version:Ch}),baseHeaders:g(g({"content-type":"text/plain"},o.headers()),a.baseHeaders),baseQueryParameters:g(g({},o.queryParameters()),a.baseQueryParameters)}));return{transporter:s,appId:t,apiKey:n,clearCache:function(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then(function(){})},get _ua(){return s.algoliaAgent.value},addAlgoliaAgent:function(e,t){s.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;r&&"WithinHeaders"!==r?s.baseQueryParameters["x-algolia-api-key"]=t:s.baseHeaders["x-algolia-api-key"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var n=e.path,r=e.parameters,u=e.body;if(!n)throw new Error("Parameter `path` is required when calling `customPost`.");var a={method:"POST",path:"/{path}".replace("{path}",n),queryParameters:r||{},headers:{},data:u||{}};return s.request(a,t)},getRecommendations:function(e,t){if(e&&Array.isArray(e)&&(e={requests:e}),!e)throw new Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!e.requests)throw new Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");var n={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return s.request(n,t)},search:function(e,t){if(e&&Array.isArray(e)){var n={requests:e.map(function(e){var t=e.params,n=F(e,bh);return"facet"===n.type?g(g(g({},n),t),{},{type:"facet"}):g(g(g({},n),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})})};e=n}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");var r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return s.request(r,t)}}}(g({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise(function(t){var n=new XMLHttpRequest;n.open(e.method,e.url,!0),Object.keys(e.headers).forEach(function(t){return n.setRequestHeader(t,e.headers[t])});var r,u=function(e,r){return setTimeout(function(){n.abort(),t({status:0,content:r,isTimedOut:!0})},e)},a=u(e.connectTimeout,"Connection timeout");n.onreadystatechange=function(){n.readyState>n.OPENED&&void 0===r&&(clearTimeout(a),r=u(e.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(a),clearTimeout(r),t({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(a),clearTimeout(r),t({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(e.data)})}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:nh(),requestsCache:nh({serializable:!1}),hostsCache:th({caches:[eh({key:"".concat(Ch,"-").concat(e)}),nh()]})},void 0))}(e,t);return r.addAlgoliaAgent("docsearch",kh),!1===/docsearch.js \(.*\)/.test(r.transporter.algoliaAgent.value)&&r.addAlgoliaAgent("docsearch-react",kh),n(r)},[e,t,n]);return u}var _h=["appId","apiKey","askAi","maxResultsPerGroup","theme","onClose","transformItems","hitComponent","resultsFooterComponent","navigator","initialScrollY","transformSearchClient","disableUserPersonalization","initialQuery","translations","getMissingResultsUrl","insights","onAskAiToggle","interceptAskAiEvent","isAskAiActive","recentSearchesLimit","recentSearchesWithFavoritesLimit","indices","indexName","searchParameters","isHybridModeSupported"],Sh=["footer","searchBox"],xh=function(){var e=i(E().m(function e(t){var n,r,u,a,i,o,s,c,l,d,f,p,h,v,m,D,y,F;return E().w(function(e){for(;;)switch(e.p=e.n){case 0:return n=t.query,r=t.state,u=t.setContext,a=t.setStatus,i=t.searchClient,o=t.indexes,s=t.insights,c=t.appId,l=t.apiKey,d=t.maxResultsPerGroup,f=t.transformItems,p=void 0===f?bu:f,h=t.saveRecentSearch,v=t.onClose,m=s,e.p=1,e.n=2,i.search({requests:o.map(function(e){var t,r,u,a,i,o,s,c="string"==typeof e?e:e.name,l="string"==typeof e?{}:e.searchParameters;return g({query:n,indexName:c,attributesToRetrieve:null!==(t=null==l?void 0:l.attributesToRetrieve)&&void 0!==t?t:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:null!==(r=null==l?void 0:l.attributesToSnippet)&&void 0!==r?r:["hierarchy.lvl1:".concat(qt),"hierarchy.lvl2:".concat(qt),"hierarchy.lvl3:".concat(qt),"hierarchy.lvl4:".concat(qt),"hierarchy.lvl5:".concat(qt),"hierarchy.lvl6:".concat(qt),"content:".concat(qt)],snippetEllipsisText:null!==(u=null==l?void 0:l.snippetEllipsisText)&&void 0!==u?u:"\u2026",highlightPreTag:null!==(a=null==l?void 0:l.highlightPreTag)&&void 0!==a?a:"",highlightPostTag:null!==(i=null==l?void 0:l.highlightPostTag)&&void 0!==i?i:"",hitsPerPage:null!==(o=null==l?void 0:l.hitsPerPage)&&void 0!==o?o:20,clickAnalytics:null!==(s=null==l?void 0:l.clickAnalytics)&&void 0!==s?s:m},null!=l?l:{})})});case 2:return D=e.v,y=D.results,e.a(2,y.flatMap(function(e){var t,n=e,a=n.hits,i=n.nbHits,o=Eu(p(a),function(e){return _u(e)},d);if(r.context.searchSuggestions.length0&&G.forEach(function(e){Se.push("string"==typeof e?{name:e}:e)}),Se.length<1)throw new Error("Must supply either `indexName` or `indices` for DocSearch to work");var xe=Se[0].name,Be=r.useRef(Uu({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(xe),limit:10})).current,Ie=r.useRef(Uu({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(xe),limit:0===Be.getAll().length?J:W})).current,Oe=A(r.useState(!1),2),Te=Oe[0],Pe=Oe[1],je=function(e){var t=e.assistantId,n=e.apiKey,u=e.appId,a=e.indexName,o=e.useStagingEnv,s=void 0!==o&&o,c=F(e,Xp),l=(0,r.useRef)(new AbortController),d=A((0,r.useState)(function(){return Gd()}),2),f=d[0],p=d[1],h=(0,r.useRef)(null),v=(0,r.useRef)(null),m=(0,r.useRef)(null),D=(0,r.useMemo)(function(){return c.agentStudio?function(e){var t=e.appId,n=e.apiKey,r=e.assistantId,u=e.searchParameters;return new wp({api:"".concat(Jp(t),"/agents/").concat(r,"/completions?stream=true&compatibilityMode=ai-sdk-5"),headers:{"x-algolia-application-id":t,"x-algolia-api-key":n},body:u?{algolia:{searchParameters:u}}:{}})}({apiKey:n,appId:u,assistantId:null!=t?t:"",searchParameters:c.searchParameters}):function(e){var t,n=e.assistantId,r=e.apiKey,u=e.indexName,a=e.searchParameters,o=e.appId,s=e.abortControllerRef,c=e.useStagingEnv;return new wp({api:c?Vt:Ut,headers:(t=i(E().m(function e(){var t;return E().w(function(e){for(;;)switch(e.n){case 0:if(n){e.n=1;break}throw new Error("Ask AI assistant ID is required");case 1:return e.n=2,Qp({assistantId:n,abortSignal:s.current.signal,useStagingEnv:c});case 2:return t=e.v,e.a(2,g(g({},t?{authorization:"TOKEN ".concat(t)}:{}),{},{"X-Algolia-API-Key":r,"X-Algolia-Application-Id":o,"X-Algolia-Index-Name":u,"X-Algolia-Assistant-Id":n||"","X-AI-SDK-Version":"v5"}))}},e)})),function(){return t.apply(this,arguments)}),body:a?{searchParameters:a}:{}})}({assistantId:null!=t?t:"",apiKey:n,appId:u,indexName:a,searchParameters:c.searchParameters,abortControllerRef:l,useStagingEnv:s})},[n,u,t,a,s,c]),y=function({experimental_throttle:e,resume:t=!1,...n}={}){const u=(0,r.useRef)("chat"in n?n.chat:new Vp(n));("chat"in n&&n.chat!==u.current||"id"in n&&u.current.id!==n.id)&&(u.current="chat"in n?n.chat:new Vp(n));const a="id"in n?n.id:null,i=(0,r.useCallback)(t=>u.current["~registerMessagesCallback"](t,e),[e,a]),o=(0,r.useSyncExternalStore)(i,()=>u.current.messages,()=>u.current.messages),s=(0,r.useSyncExternalStore)(u.current["~registerStatusCallback"],()=>u.current.status,()=>u.current.status),c=(0,r.useSyncExternalStore)(u.current["~registerErrorCallback"],()=>u.current.error,()=>u.current.error),l=(0,r.useCallback)(e=>{"function"==typeof e&&(e=e(u.current.messages)),u.current.messages=e},[u]);return(0,r.useEffect)(()=>{t&&u.current.resumeStream()},[t,u]),{id:u.current.id,messages:o,setMessages:l,sendMessage:u.current.sendMessage,regenerate:u.current.regenerate,clearError:u.current.clearError,stop:u.current.stop,error:c,resumeStream:u.current.resumeStream,status:s,addToolResult:u.current.addToolOutput,addToolOutput:u.current.addToolOutput}}((0,r.useMemo)(function(){return{id:f,sendAutomaticallyWhen:Sp,transport:D}},[f,D])),b=y.messages,C=y.sendMessage,k=y.status,w=y.setMessages,S=y.error,x=y.stop,B=y.clearError;v.current=C,m.current=w;var I=(0,r.useRef)(function(e){var t=e.limit,n=void 0===t?5:t,r=$u(e.key),u=r.getItem().slice(0,n);return{add:function(e){var t=e.objectID,a=e.query,i=u.findIndex(function(e){return e.objectID===t||e.query===a});i>-1?u[i]=e:(u.unshift(e),u=u.slice(0,n)),r.setItem(u)},addFeedback:function(e,t){var n=u.find(function(t){var n;return null===(n=t.messages)||void 0===n?void 0:n.some(function(t){return t.id===e})});if(n&&n.messages){var a=n.messages.find(function(t){return t.id===e});a&&(a.feedback=t,r.setItem(u))}},getOne:function(e){var t,n=u.find(function(t){var n;return null===(n=t.messages)||void 0===n?void 0:n.some(function(t){return t.id===e})});return null==n||null===(t=n.messages)||void 0===t?void 0:t.find(function(t){return t.id===e})},getAll:function(){return u},remove:function(e){u=u.filter(function(t){return t.objectID!==e.objectID}),r.setItem(u)},getConversation:function(e){var t=u.find(function(t){var n;return null===(n=t.messages)||void 0===n?void 0:n.some(function(t){return t.id===e})});if(t&&t.messages)return t}}}({key:"__DOCSEARCH_ASKAI_CONVERSATIONS__".concat(a),limit:10})).current,O=(0,r.useCallback)(function(){var e=i(E().m(function e(r,a){var i;return E().w(function(e){for(;;)switch(e.n){case 0:if(t){e.n=1;break}return e.a(2);case 1:return e.n=2,c.agentStudio?Yp({agentId:t,vote:a,messageId:r,appId:u,apiKey:n,abortSignal:l.current.signal}):Gp({assistantId:t,thumbs:a,messageId:r,appId:u,abortSignal:l.current.signal,useStagingEnv:s});case 2:if(!(e.v.status>=300)){e.n=3;break}throw new Error("Failed, try again later.");case 3:null===(i=I.addFeedback)||void 0===i||i.call(I,r,1===a?"like":"dislike");case 4:return e.a(2)}},e)}));return function(t,n){return e.apply(this,arguments)}}(),[t,c.agentStudio,u,n,s,I]),T=(0,r.useCallback)(function(){l.current.abort(),l.current=new AbortController},[]),P=(0,r.useCallback)(function(e){T(),h.current=null!=e?e:null,p(Gd())},[T]);(0,r.useEffect)(function(){var e=h.current;if(null!==e){var t=v.current,n=m.current;if("sendText"===e.kind){var r;if(!t)return;return h.current=null,void t({text:e.text},null!==(r=e.requestOptions)&&void 0!==r?r:{})}if("sendUserMessage"===e.kind){var u;if(!t)return;return h.current=null,void t(e.message,null!==(u=e.requestOptions)&&void 0!==u?u:{})}n&&(h.current=null,n(e.messages))}},[f]);var j=function(){var e=i(E().m(function e(){return E().w(function(e){for(;;)switch(e.n){case 0:return l.current.abort(),e.n=1,x();case 1:l.current=new AbortController;case 2:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}(),N=(0,r.useMemo)(function(){for(var e=[],t=0;t0){var d=c.detail[0],f=d.msg,p=d.loc.at(-1);l="".concat(f,": ").concat(p)}return new Error(l)}o=Qr(r)||("string"==typeof s.message&&""!==s.message.trim()?s.message.trim():"string"==typeof s.error&&""!==s.error.trim()?s.error.trim():r);var h=null!==(t=s.code)&&void 0!==t?t:s.errorCode;if("string"==typeof h&&""!==h.trim()){var v=h.trim();o.toUpperCase().includes(v.toUpperCase())||(o="".concat(o," (").concat(v,")"))}return new Error(o)}(S):S},[S,c.agentStudio]);return{messages:b,sendMessage:C,status:k,setMessages:w,clearError:B,resetAskAiAbortScope:T,resetAskAiChatSession:P,askAiError:R,stopAskAiStreaming:j,isStreaming:z,exchanges:N,conversations:I,sendFeedback:O}}({assistantId:Fe,apiKey:(null==ge?void 0:ge.apiKey)||s,appId:(null==ge?void 0:ge.appId)||o,indexName:(null==ge?void 0:ge.indexName)||xe,searchParameters:Ee,useStagingEnv:be,agentStudio:_e}),Ne=je.messages,ze=je.status,Re=je.sendMessage,Me=je.stopAskAiStreaming,Ze=je.askAiError,Le=je.sendFeedback,$e=je.conversations,qe=je.clearError,Ue=je.resetAskAiAbortScope,Ve=je.resetAskAiChatSession,He=r.useRef(ze);r.useEffect(function(){if(!P){if("streaming"===He.current&&"ready"===ze){Te&&Ne.at(-1)&&(Ne.at(-1).metadata={stopped:!0});var e=Ne[0];if(null!=e&&e.parts){var t,n=f(e.parts);try{for(n.s();!(t=n.n()).done;){var r=t.value;"text"===r.type&&$e.add(Ur(r.text,Ne))}}catch(e){n.e(e)}finally{n.f()}}}He.current=ze}},[ze,Ne,$e,P,Te]);var Je=r.useMemo(function(){return"error"===ze&&Kr(Ze,_e)},[ze,Ze,_e]),Ke=r.useMemo(function(){if(Je&&"new-conversation"!==Ae)return Wr(Ze)?"minimal":"thread-depth"},[Je,Ae,Ze]),We=r.useCallback(function(e){var t=e.hierarchy,n=["lvl6","lvl5","lvl4","lvl3","lvl2","lvl1","lvl0"].find(function(e){return t[e]});return g(g({},e),{},{type:n||"lvl0",content:null})},[]),Qe=r.useCallback(function(e){if(!P){var t="content"===e.type?e.__docsearch_parent||We(e):e;t&&-1===Be.getAll().findIndex(function(e){return e.objectID===t.objectID})&&Ie.add(t)}},[Be,Ie,P,We]),Ge=r.useCallback(function(e){if(oe.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,n={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};oe.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(n)}},[oe.context.algoliaInsightsPlugin]),Ye=r.useRef(void 0),Xe=r.useCallback(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if(e){var r={query:t,suggestedQuestionId:null==n?void 0:n.objectID};if(null!=q&&q(r))return void(Ye.current&&Ye.current.setQuery(""))}if(e&&"new-conversation"===Ae&&ke("initial"),$(e,{query:t,suggestedQuestionId:null==n?void 0:n.objectID}),!te){Pe(!1),Ue(),qe();var u={};if(n&&(u.body={suggestedQuestionId:n.objectID}),Re({role:"user",parts:[{type:"text",text:t}]},u),he.current){var a=he.current;"function"==typeof a.scrollTo?a.scrollTo({top:0,behavior:"smooth"}):a.scrollTop=0}Ye.current&&Ye.current.setQuery("")}},[$,q,Ae,ke,te,qe,Ue,Re]),et=r.useCallback(function(){var e=i(E().m(function e(t,n){return E().w(function(e){for(;;)switch(e.n){case 0:if(Fe&&o){e.n=1;break}return e.a(2);case 1:return e.n=2,Le(t,n);case 2:return e.a(2)}},e)}));return function(t,n){return e.apply(this,arguments)}}(),[Fe,o,Le]);Ye.current||(Ye.current=$t({id:"docsearch",defaultActiveItemId:0,openOnFocus:!0,initialState:{query:De,context:{searchSuggestions:[]}},insights:Boolean(L),navigator:S,onStateChange:function(e){se(e.state)},getSources:function(e){var t=e.query,n=e.state,r=e.setContext,u=e.setStatus;if(!t){var a=function(e){var t=e.recentSearches,n=e.favoriteSearches,r=e.saveRecentSearch,u=e.onClose;return e.disableUserPersonalization?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,n=e.event;r(t),Cu(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return t.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,n=e.event;r(t),Cu(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return n.getAll()}}]}({recentSearches:Ie,favoriteSearches:Be,saveRecentSearch:Qe,onClose:v,disableUserPersonalization:P}),i=ce?[{sourceId:"recentConversations",getItems:function(){return P?[]:$e.getAll()},onSelect:function(e){var t=e.item;t.messages&&(Ve({kind:"setMessages",messages:t.messages}),$(!0))}}]:[];return[].concat(k(a),i)}var c={context:n.context},d=xh({query:t,state:c,setContext:r,setStatus:u,searchClient:ye,indexes:Se,insights:Boolean(L),appId:o,apiKey:s,maxResultsPerGroup:l,transformItems:D,saveRecentSearch:Qe,onClose:v}),f=ce?[{sourceId:"askAI",getItems:function(){return[{type:"askAI",query:t,url_without_anchor:"",objectID:"ask-ai-button",content:null,url:"",anchor:null,hierarchy:{lvl0:"Ask AI",lvl1:t,lvl2:null,lvl3:null,lvl4:null,lvl5:null,lvl6:null},_highlightResult:{},_snippetResult:{},__docsearch_parent:null}]},onSelect:function(e){var t=e.item;"askAI"===t.type&&t.query&&Xe(!0,t.query)}}]:[];return d.then(function(e){return[].concat(f,k(e))})}}));var tt,nt,rt=Ye.current,ut=rt.getEnvironmentProps,at=rt.getRootProps,it=rt.refresh;!function(e){var t=e.getEnvironmentProps,n=e.panelElement,u=e.formElement,a=e.inputElement;r.useEffect(function(){if(n&&u&&a){var e=t({panelElement:n,formElement:u,inputElement:a}),r=e.onTouchStart,i=e.onTouchMove;return window.addEventListener("touchstart",r),window.addEventListener("touchmove",i),function(){window.removeEventListener("touchstart",r),window.removeEventListener("touchmove",i)}}},[t,n,u,a])}({getEnvironmentProps:ut,panelElement:he.current,formElement:pe.current,inputElement:ve.current}),tt={container:de.current},nt=tt.container,r.useEffect(function(){if(nt){var e=nt.querySelectorAll("a[href]:not([disabled]), button:not([disabled]), input:not([disabled])"),t=e[0],n=e[e.length-1];return nt.addEventListener("keydown",r),function(){nt.removeEventListener("keydown",r)}}function r(e){"Tab"===e.key&&(e.shiftKey?document.activeElement===t&&(e.preventDefault(),n.focus()):document.activeElement===n&&(e.preventDefault(),t.focus()))}},[nt]),function(e){var t=e.theme;(0,r.useEffect)(function(){if(t){var e=document.documentElement.dataset.theme;if(t!==e)return document.documentElement.dataset.theme=t,function(){void 0===e?delete document.documentElement.dataset.theme:document.documentElement.dataset.theme=e}}},[t])}({theme:d}),r.useEffect(function(){return document.body.classList.add("DocSearch--active"),function(){var e,t;document.body.classList.remove("DocSearch--active"),null===(e=(t=window).scrollTo)||void 0===e||e.call(t,0,B)}},[]),r.useEffect(function(){"undefined"!=typeof window&&window.localStorage&&function(){if("undefined"==typeof window||!window.localStorage)return 0;var e=0;for(var t in window.localStorage)window.localStorage.hasOwnProperty(t)&&(e+=window.localStorage[t].length+t.length);return e}()>4194304&&Lu()},[]),r.useLayoutEffect(function(){var e=window.innerWidth-document.body.clientWidth;return document.body.style.marginInlineEnd="".concat(e,"px"),function(){document.body.style.marginInlineEnd="0px"}},[]),r.useEffect(function(){var e;he.current&&!V&&("function"==typeof(e=he.current).scrollTo?e.scrollTo({top:0,behavior:"smooth"}):e.scrollTop=0)},[oe.query,V]),r.useEffect(function(){De.length>0&&(it(),ve.current&&ve.current.focus())},[De,it]),r.useEffect(function(){function e(){if(fe.current){var e=.01*window.innerHeight;fe.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}},[]);var ot=r.useRef(V);r.useEffect(function(){ot.current&&!V&&(rt.refresh(),qe(),Ve()),ot.current=V},[V,rt,qe,Ve]),r.useEffect(function(){ke("initial")},[V,ke]);var st=function(){var e=i(E().m(function e(){return E().w(function(e){for(;;)switch(e.n){case 0:return Pe(!0),e.n=1,Me();case 1:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}(),ct=function(){qe(),Ve(),ke("new-conversation")},lt=!0,dt=oe.collections.some(function(e){return e.items.length>0});return"idle"!==oe.status||!1!==dt||0!==oe.query.length||V||(lt=!1),r.createElement("div",h({ref:de},at({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===oe.status&&"DocSearch-Container--Stalled","error"===oe.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&v()}}),r.createElement("div",{className:"DocSearch-Modal",ref:fe},r.createElement("header",{className:"DocSearch-SearchBar",ref:pe},r.createElement(Zu,h({},rt,{state:oe,placeholder:le||"Search docs",autoFocus:0===De.length,inputRef:ve,isFromSelection:Boolean(De)&&De===me,translations:ue,isAskAiActive:V,askAiStatus:ze,askAiError:Ze,askAiState:Ae,setAskAiState:ke,isThreadDepthError:Je&&"new-conversation"!==Ae,askAiBlockingChrome:Ke,onClose:v,onAskAiToggle:$,onAskAgain:function(e){Xe(!0,e)},onStopAskAiStreaming:st,onNewConversation:ct,onViewConversationHistory:function(){ke("conversation-history")}}))),lt&&r.createElement("div",{className:"DocSearch-Dropdown",ref:he},r.createElement(Tu,h({},rt,{indexName:xe,state:oe,hitComponent:b,resultsFooterComponent:w,disableUserPersonalization:P,recentSearches:Ie,favoriteSearches:Be,conversations:$e,inputRef:ve,translations:ae,getMissingResultsUrl:M,isAskAiActive:V,canHandleAskAi:ce,messages:Ne,askAiError:Ze,status:ze,hasCollections:dt,askAiState:Ae,selectAskAiQuestion:Xe,suggestedQuestions:we,selectSuggestedQuestion:function(e){Xe(!0,e.question,e)},agentStudio:_e,onAskAiToggle:$,onNewConversation:ct,onItemClick:function(e,t){if("askAI"===e.type&&e.query){if("stored"===e.anchor&&"messages"in e){Ve({kind:"setMessages",messages:e.messages});var n={query:e.query,messageId:e.messages[0].id};if(null!=q&&q(n))return Ye.current&&Ye.current.setQuery(""),void t.preventDefault();$(!0,n)}else Xe(!0,e.query);return ke("initial"),void t.preventDefault()}Ge(e),Qe(e),Cu(t)||v()},onFeedback:et}))),r.createElement("footer",{className:"DocSearch-Footer"},r.createElement(Kt,{translations:re,isAskAiActive:V}))))}}}]); \ No newline at end of file diff --git a/assets/js/2693.1a09296a.js.LICENSE.txt b/assets/js/2693.1a09296a.js.LICENSE.txt new file mode 100644 index 0000000..775d393 --- /dev/null +++ b/assets/js/2693.1a09296a.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ diff --git a/assets/js/2ab9e231.0b47aa42.js b/assets/js/2ab9e231.0b47aa42.js new file mode 100644 index 0000000..c3fb7d8 --- /dev/null +++ b/assets/js/2ab9e231.0b47aa42.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrescript_react_native_github_io||=[]).push([[9666],{6271(t){t.exports=JSON.parse('{"tag":{"label":"rescript","permalink":"/blog/tags/rescript","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/rescript","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/31975ed7.4104e827.js b/assets/js/31975ed7.4104e827.js new file mode 100644 index 0000000..aa31ac3 --- /dev/null +++ b/assets/js/31975ed7.4104e827.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrescript_react_native_github_io||=[]).push([[2614],{8569(t,e,i){i.r(e),i.d(e,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>c,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"pushnotificationios","title":"PushNotificationIOS","description":"PushNotificationIOS has been deprecated and will be removed from React Native","source":"@site/docs/pushnotificationios.md","sourceDirName":".","slug":"/pushnotificationios","permalink":"/docs/pushnotificationios","draft":false,"unlisted":false,"editUrl":"https://github.com/rescript-react-native/rescript-react-native.github.io/edit/src/docs/pushnotificationios.md","tags":[],"version":"current","frontMatter":{"id":"pushnotificationios","title":"PushNotificationIOS"}}');var o=i(4848),s=i(8453);const c={id:"pushnotificationios",title:"PushNotificationIOS"},r=void 0,a={},u=[];function d(t){const e={a:"a",code:"code",p:"p",...(0,s.R)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.code,{children:"PushNotificationIOS"})," has been deprecated and will be removed from React Native\nin the future."]}),"\n",(0,o.jsxs)(e.p,{children:["Please refer to\n",(0,o.jsx)(e.a,{href:"https://github.com/rescript-react-native/push-notification-ios",children:"bindings"})," for the\nreplacement\n",(0,o.jsx)(e.a,{href:"https://github.com/react-native-community/push-notification-ios",children:"community package"}),"."]})]})}function h(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(d,{...t})}):d(t)}},8453(t,e,i){i.d(e,{R:()=>c,x:()=>r});var n=i(6540);const o={},s=n.createContext(o);function c(t){const e=n.useContext(s);return n.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:c(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/32bec6ce.85df34ca.js b/assets/js/32bec6ce.85df34ca.js new file mode 100644 index 0000000..7278fc8 --- /dev/null +++ b/assets/js/32bec6ce.85df34ca.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkrescript_react_native_github_io||=[]).push([[7348],{6806(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"layoutanimation","title":"LayoutAnimation","description":"LayoutAnimation API offers a simpler alternative to Animated API. Instead of","source":"@site/docs/layoutanimation.md","sourceDirName":".","slug":"/layoutanimation","permalink":"/docs/layoutanimation","draft":false,"unlisted":false,"editUrl":"https://github.com/rescript-react-native/rescript-react-native.github.io/edit/src/docs/layoutanimation.md","tags":[],"version":"current","frontMatter":{"id":"layoutanimation","title":"LayoutAnimation"},"sidebar":"api","previous":{"title":"Keyboard","permalink":"/docs/keyboard"},"next":{"title":"Linking","permalink":"/docs/linking"}}');var a=t(4848),o=t(8453);const s={id:"layoutanimation",title:"LayoutAnimation"},r=void 0,c={},l=[{value:"Methods",id:"methods",level:2},{value:"Types",id:"types",level:2},{value:"Presets",id:"presets",level:2},{value:"Example",id:"example",level:2}];function d(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.code,{children:"LayoutAnimation"})," API offers a simpler alternative to ",(0,a.jsx)(n.code,{children:"Animated"})," API. Instead of\ndirectly manipulating values for various style props, it suffices to specify the\nanimation to be run before the next render. Specification of the animation\nshould happen in the reducer, before ",(0,a.jsx)(n.code,{children:"state"})," is updated."]}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.code,{children:"LayoutAnimation"})," is still experimental on Android and needs to be explicitly\nenabled with the ",(0,a.jsx)(n.code,{children:"UIManager"})," method ",(0,a.jsx)(n.code,{children:"setLayoutAnimationEnabledExperimental"}),".\nHowever, as that method should be removed when ",(0,a.jsx)(n.code,{children:"LayoutAnimation"})," is no longer\nexperimental, the external declaration for it wraps its type in ",(0,a.jsx)(n.code,{children:"option"})," to\navoid runtime errors when that happens. ",(0,a.jsx)(n.code,{children:"LayoutAnimation"})," may be enabled, if it\nis not already enabled by default, by means of a statement such as:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:"switch UIManager.setLayoutAnimationEnabledExperimental {\n| None => ()\n| Some(setEnabled) => setEnabled(true)\n}\n"})}),"\n",(0,a.jsx)(n.h2,{id:"methods",children:"Methods"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"configureNext"})," is the method to specify the animation, takes an argument of\ntype ",(0,a.jsx)(n.code,{children:"layoutAnimationConfig"}),"."]}),"\n"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:"configureNext: layoutAnimationConfig => unit\n"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"configureNextWithEndCallback"})," is a convenience function, which allows\nspecification of a callback function (of type ",(0,a.jsx)(n.code,{children:"unit => unit"}),") to be run after\nthe animation, in addition to ",(0,a.jsx)(n.code,{children:"layoutAnimationConfig"}),"."]}),"\n"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:"configureNextWithEndCallback: (layoutAnimationConfig, unit => unit) => unit\n"})}),"\n",(0,a.jsx)(n.h2,{id:"types",children:"Types"}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.code,{children:"layoutAnimationConfig"})," can be created with the ",(0,a.jsx)(n.code,{children:"layoutAnimationConfig"}),"\nconstructor"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:"layoutAnimationConfig:\n (\n ~duration: float,\n ~create: animationConfig=?,\n ~update: animationConfig=?,\n ~delete: animationConfig=?,\n unit\n ) => layoutAnimationConfig\n"})}),"\n",(0,a.jsxs)(n.p,{children:["or by means of the helper function ",(0,a.jsx)(n.code,{children:"create"})]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:"create:\n (\n ~duration: float,\n ~_type: [\n | #spring\n | #linear\n | #easeInEaseOut\n | #easeIn\n | #easeOut\n | #keyboard\n ],\n ~property: [ | #opacity | #scaleX | #scaleY | #scaleXY]\n ) => layoutAnimationConfig\n"})}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.code,{children:"animationConfig"})," can in turn be created with the ",(0,a.jsx)(n.code,{children:"animationConfig"})," constructor"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:"animationConfig:\n (\n ~duration: float=?,\n ~delay: float=?,\n ~springDamping: float=?,\n ~initialVelocity: float=?,\n ~_type: [\n | #spring\n | #linear\n | #easeInEaseOut\n | #easeIn\n | #easeOut\n | #keyboard\n ]=?,\n ~property: [ | #opacity | #scaleX | #scaleY | #scaleXY]=?,\n unit\n ) => animationConfig\n"})}),"\n",(0,a.jsx)(n.h2,{id:"presets",children:"Presets"}),"\n",(0,a.jsxs)(n.p,{children:["There are presets for ",(0,a.jsx)(n.code,{children:"linear"}),", ",(0,a.jsx)(n.code,{children:"spring"})," and ",(0,a.jsx)(n.code,{children:"easeInEaseOut"})," transitions which\nallow a very straightforward way to setup animation. Presets may either be\npassed as ready-made ",(0,a.jsx)(n.code,{children:"layoutAnimationConfig"})," to ",(0,a.jsx)(n.code,{children:"configureNext"})," and\n",(0,a.jsx)(n.code,{children:"configureNextWithEndCallback"})," as below"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:"LayoutAnimation.configureNext(LayoutAnimation.Presets.spring)\n"})}),"\n",(0,a.jsxs)(n.p,{children:["or equivalently as already passed to ",(0,a.jsx)(n.code,{children:"configureNext"})," as"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:"LayoutAnimation.spring()\n\n"})}),"\n",(0,a.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,a.jsxs)(n.p,{children:["The example below illustrates animated transition (",(0,a.jsx)(n.code,{children:"spring"}),") between two views,\nsuch as registration and login forms. Animation is specified in the reducer, as\nbelow, before state is returned."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-rescript",children:'open ReactNative\n\nlet windowWidth = Dimensions.get(#window).width\n\ntype state = {register: bool}\n\ntype action = ToggleRegister\n\nlet styles = {\n open Style\n StyleSheet.create({\n "container": s({flex: 1., flexDirection: #column}),\n "screen": s({width: windowWidth->dp}),\n })\n}\n\n@react.component\nlet make = () => {\n let (state, dispatch) = React.useReducer((state, action) =>\n switch action {\n | ToggleRegister =>\n // Animation should be specified here, before state is updated:\n LayoutAnimation.configureNext(\n LayoutAnimation.create(\n ~duration=500.,\n ~_type=#spring,\n ~property=#opacity,\n ),\n )\n // update of the state happens below:\n {register: !state.register}\n }\n , {register: false})\n\n \n dp,\n left: (state.register ? 0. : 0. -. windowWidth)->dp,\n flexDirection: #row,\n })}>\n \n \n \n ReScript React NativeDocsComponentsAPIs

Hello Reason React Native

· 6 min read
MoOx
ReScript React Native Core Team

Today is a big day for the ReasonML community as we are releasing the fruits of +a long effort started about 4 months ago.

+

As more and more people were starting to use ReasonML on production apps using +React Native, we wanted to make the ReScript / BuckleScript bindings for React Native, +known has bs-react-native, more accessible. This would have involved several +breaking changes in order to simplify some APIs that have been designed with a +high level of security in mind, but at some costs. The cost of being harder to +start with (for newcomers to ReasonML) as well as the cost in terms of code size +and performance.

+

While some of us were thinking about some simplifications, some others, involved +in Reason React incoming changes, directly started a new approach for this +bindings, following +the zero-cost approach offered by reason-react 0.7.0.

+

CCA started this effort on what is now know as the new +reason-react-native bindings, that eliminates a huge part of the additional +JavaScript code produced by the bindings.

+

Zero-cost​

+

By zero-cost, we means zero additional cost. The JavaScript code ReScript / BuckleScript +produces using this bindings will most of the time directly hit React Native +JavaScript code without creating an unnecessary abstraction above it 🙌.

+

Here are some random examples:

+ +

Some modules are even empty or with some minor require() that can be +themselves almost empty and easily removed by some JavaScript bundlers.

+

How cool is that?

+

But why reason-react-native ?​

+

bs-react-native already had multiple breaking changes in the past and we +didn't really want to offer a poor experience by creating a new release with +tons of changes that won't be easy to codemod (or would require much more work +from us).

+

On top of that, reason-react latest release already added an important +breaking change with +JSX 3.

+

That's why we had this idea about offering an easy and smooth transition by +offering 2 packages to say goodbye to bs-react-native without pain.

+
    +
  • bs-react-native-jsx3-compat (0.11.1)
  • +
  • reason-react-native +(0.60.0)
  • +
+

Wait, what is bs-react-native-jsx3-compat ?​

+

bs-react-native is using JSX 2 so in order to use it with JSX 3 we would have +to create an additional layer on top of the current bindings to offer both JSX 2 +and 3 bindings. And since we wanted to do away with some current APIs of +bs-react-native we started to think about a new approach.

+

We knew that we wanted to:

+
    +
  • offer to bs-react-native users a migration plan, so they can start very +easily to use JSX 3 and new reason-react (so they can use hooks),
  • +
  • offer new reason-react-native bindings, more accessible and with a zero cost +approach.
  • +
  • offer a smooth transition between these two packages so people can slowly +upgrade their codebase without having to make an insane PR that switches from +one to the other.
  • +
+

We don't want your co-workers to hate you with a PR that comes directly from +hell 😅.

+

That's where we thought about offering bs-react-native-jsx3-compat. It's a +package that has the same APIs bs-react-native has but that uses +reason-react-native under the hood.

+

This means you will have to make a migration from JSX 2 to 3. That's the +only thing you will have to do, then with a single change from bs-react-native +with bs-react-native-jsx3-compat in your bs-dependencies you will be ready +to use hooks and directly benefit of (almost) zero-cost bindings!

+

And since we care about you and don't want you to upgrade from JSX 2 to 3 by +hand, we got you covered with a script made with love to help you with that.

+

You will find all the required instructions to migrate from bs-react-native to bs-react-native-jsx3-compat in our documentation.

+

tl;dr​

+ +

Thanks​

+

This required effort has been keeping us busy for weeks and wouldn't have been +possible without the following people:

+
    +
  • CCA team and especially @cknitt for leading us to +the right direction for the new zero-cost bindings and all the contributions +that come with this move
  • +
  • @sgny for all his contributions to the new bindings
  • +
  • @MoOx for leading the effort, the compat layer and +the new website you are seeing here
  • +
  • @bloodyowl for his magical +reason-react-compat layer +and +the alternate JSX 3 upgrade path +that goes with it
  • +
  • all the people that helped us on Discord and GitHub in various code reviews +and improvements like the react native template (thanks +@dawee)
  • +
+

What's next?​

+

Now that reason-react-native is ready to be used and that our migration plan +is usable, we will probably be focused on documentation as lots of APIs and +Components need to be documented. We really want to offer the best developer +experience possible and that's definitely part of it.

+

👉Now it's time for you to check our +Getting Started with Reason React Native documentation

+ + \ No newline at end of file diff --git a/blog/2021-05-04-hello-rescript-react-native/index.html b/blog/2021-05-04-hello-rescript-react-native/index.html new file mode 100644 index 0000000..308bca5 --- /dev/null +++ b/blog/2021-05-04-hello-rescript-react-native/index.html @@ -0,0 +1,68 @@ + + + + + +Hello ReScript React Native | ReScript React Native + + + + + + + + + + + + + +

Hello ReScript React Native

· 6 min read
MoOx
ReScript React Native Core Team

Following BuckleScript & Reason Rebranding to offer a unified experience, what was know as Reason React Native is now ReScript React Native.

+

To make this short: all packages that were published on the behalf of Reason React Native organisation are now published as the ReScript React Native organisation.

+

This means:

+ +

Should I migrate now all my packages?​

+

It depends on what version of React Native your are using. There is no rush, really.

+

You use React Native 0.63​

+

You can keep using reason-react-native and friends for now. Revisit this post when you will need to upgrade to 0.64.

+

You use React Native 0.64​

+

Here you have 2 possibles upgrades path:

+

Keep using reason-react-native​

+

Before renaming all packages, we offered a last release for reason-react-native to cover React Native 0.64. You can use that until you are ready to switch to ReScript named packages. If you want to know what this will involve, keep reading.

+

Switch to rescript-react-native​

+

The package rescript-react-native starts with version 0.64.1. You can try to use it for earlier version of React Native of course, but you might end up to minor inconsistencies, especially for bindings that have been tuned for 0.64. Check out breaking changes in release notes to know what this is all about.

+

If you are ready to move to ReScript naming, you can use all the new packages. Except rescript-react-native, other packages of this organisation have just been renamed for most of them, without any changes.

+

You can expects minor change between reason-react-native@0.64 & rescript-react-native@0.64 but this should not cause you any major trouble to switch. +You will probably notice some Js.t have been converted to record syntax, some polymorphic variants changes and minor things like that, but compiler should just tell you what to do.

+

Please note that @rescript/react is required for switching​

+

You cannot use reason-react and @rescript/react as they exposes the same module. +This means this will be "all or nothing". +Some bindings rely on React module, so they now depend on @rescript/react. This is true for rescript-react-native and some other modules.

+

This is briefly mentionned in rescript-react-native@0.64.1 release notes but you will also need bs-platform@^9.0.0.

+

Before you ask, rescript package is now a thing and up for testing (you can track this using the ReScript forum, Announcements section). This is considered beta at the time of writing this post, so we will change this peer dependency in a near future, when it's officially stable. This will replace bs-platform, probably in next "major" release (0.65 or maybe a 0.64.x-rescript).

+

tl;dr​

+

If you want to switch to the new naming, you need to be ready to use

+
    +
  • React 17 and @rescript/react@^0.10
  • +
  • React Native 0.64 with rescript-react-native@^0.64.1
  • +
  • ReScript 9 via bs-platform@^9.0.0
  • +
+

If you have any questions regarding these changes and how to proceed, feel free to open a discussion on GitHub, or use ReScript forum.

+

Wait.. That's it?​

+

You might have a question that is still pending: "where is gone the promise of cross-platform code that ReasonML was supposed to offer? I was thinking I could someday use my Reason React Native code to compile it to a lower level language that JavaScript to have blazing fast performance... "

+

Like I did in the past in my sweet dreams, you may be looking for this. And maybe this will be a reality one day in the future. Some people want this JSX like convenience to build native apps. Some will argue that there are things that you can use today. +But React Native ecosytem is more mature than existing solutions.

+

React Native can safely be used in production today, and it is for many successful companies. All the modules availables (from the core or the community) make it very easy to avoid writing specific code per platform. +Performance is better and better for every release. Recently Hermes JavaScript engine was released for iOS and it's really fast. And don't forget TurboModules!

+

You can not only write mobile apps this days, but also web apps, thanks to React Native for Web, and even native desktop apps, thanks to React Native Windows + macOS. More than enough to ship amazing products to production, today.

+

What's next​

+

I guess for the near future, nothing crazy will happen for ReScript React Native. We have to update some bindings from time to time, but beside having to switch from bs-platform to rescript, things should go smoothly. +Feel free to open a discussion if you want bindings for some modules (or just help to write them).

+

When stars are not correctly aligned and some package have incorrect bindings, remember that you can always use the fantastic patch-package to fix things real quick, and then open an issue at the right place.

+

❤️ I mostly maintain all this packages all by myself this days, so feel free to Sponsor Me on GitHub and just share kind words on Twitter to keep me motivated. I hope you enjoy this work like I do.

+ + \ No newline at end of file diff --git a/blog/archive/index.html b/blog/archive/index.html new file mode 100644 index 0000000..41a4b39 --- /dev/null +++ b/blog/archive/index.html @@ -0,0 +1,22 @@ + + + + + +Archive | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml new file mode 100644 index 0000000..19c2c6f --- /dev/null +++ b/blog/atom.xml @@ -0,0 +1,195 @@ + + + https://rescript-react-native.github.io/blog + ReScript React Native Blog + 2021-05-04T00:00:00.000Z + https://github.com/jpmonette/feed + + ReScript React Native Blog + https://rescript-react-native.github.io/favicon.ico + + <![CDATA[Hello ReScript React Native]]> + https://rescript-react-native.github.io/blog/2021-05-04-hello-rescript-react-native + + 2021-05-04T00:00:00.000Z + + Following BuckleScript & Reason Rebranding to offer a unified experience, what was know as Reason React Native is now ReScript React Native.

+

To make this short: all packages that were published on the behalf of Reason React Native organisation are now published as the ReScript React Native organisation.

+

This means:

+ +

Should I migrate now all my packages?​

+

It depends on what version of React Native your are using. There is no rush, really.

+

You use React Native 0.63​

+

You can keep using reason-react-native and friends for now. Revisit this post when you will need to upgrade to 0.64.

+

You use React Native 0.64​

+

Here you have 2 possibles upgrades path:

+

Keep using reason-react-native​

+

Before renaming all packages, we offered a last release for reason-react-native to cover React Native 0.64. You can use that until you are ready to switch to ReScript named packages. If you want to know what this will involve, keep reading.

+

Switch to rescript-react-native​

+

The package rescript-react-native starts with version 0.64.1. You can try to use it for earlier version of React Native of course, but you might end up to minor inconsistencies, especially for bindings that have been tuned for 0.64. Check out breaking changes in release notes to know what this is all about.

+

If you are ready to move to ReScript naming, you can use all the new packages. Except rescript-react-native, other packages of this organisation have just been renamed for most of them, without any changes.

+

You can expects minor change between reason-react-native@0.64 & rescript-react-native@0.64 but this should not cause you any major trouble to switch. +You will probably notice some Js.t have been converted to record syntax, some polymorphic variants changes and minor things like that, but compiler should just tell you what to do.

+

Please note that @rescript/react is required for switching​

+

You cannot use reason-react and @rescript/react as they exposes the same module. +This means this will be "all or nothing". +Some bindings rely on React module, so they now depend on @rescript/react. This is true for rescript-react-native and some other modules.

+

This is briefly mentionned in rescript-react-native@0.64.1 release notes but you will also need bs-platform@^9.0.0.

+

Before you ask, rescript package is now a thing and up for testing (you can track this using the ReScript forum, Announcements section). This is considered beta at the time of writing this post, so we will change this peer dependency in a near future, when it's officially stable. This will replace bs-platform, probably in next "major" release (0.65 or maybe a 0.64.x-rescript).

+

tl;dr​

+

If you want to switch to the new naming, you need to be ready to use

+
    +
  • React 17 and @rescript/react@^0.10
  • +
  • React Native 0.64 with rescript-react-native@^0.64.1
  • +
  • ReScript 9 via bs-platform@^9.0.0
  • +
+

If you have any questions regarding these changes and how to proceed, feel free to open a discussion on GitHub, or use ReScript forum.

+

Wait.. That's it?​

+

You might have a question that is still pending: "where is gone the promise of cross-platform code that ReasonML was supposed to offer? I was thinking I could someday use my Reason React Native code to compile it to a lower level language that JavaScript to have blazing fast performance... "

+

Like I did in the past in my sweet dreams, you may be looking for this. And maybe this will be a reality one day in the future. Some people want this JSX like convenience to build native apps. Some will argue that there are things that you can use today. +But React Native ecosytem is more mature than existing solutions.

+

React Native can safely be used in production today, and it is for many successful companies. All the modules availables (from the core or the community) make it very easy to avoid writing specific code per platform. +Performance is better and better for every release. Recently Hermes JavaScript engine was released for iOS and it's really fast. And don't forget TurboModules!

+

You can not only write mobile apps this days, but also web apps, thanks to React Native for Web, and even native desktop apps, thanks to React Native Windows + macOS. More than enough to ship amazing products to production, today.

+

What's next​

+

I guess for the near future, nothing crazy will happen for ReScript React Native. We have to update some bindings from time to time, but beside having to switch from bs-platform to rescript, things should go smoothly. +Feel free to open a discussion if you want bindings for some modules (or just help to write them).

+

When stars are not correctly aligned and some package have incorrect bindings, remember that you can always use the fantastic patch-package to fix things real quick, and then open an issue at the right place.

+

❤️ I mostly maintain all this packages all by myself this days, so feel free to Sponsor Me on GitHub and just share kind words on Twitter to keep me motivated. I hope you enjoy this work like I do.

]]>
+ + MoOx + https://github.com/MoOx + + + +
+ + <![CDATA[Hello Reason React Native]]> + https://rescript-react-native.github.io/blog/2019-06-17-hello-reason-react-native + + 2019-06-17T00:00:00.000Z + + Today is a big day for the ReasonML community as we are releasing the fruits of +a long effort started about 4 months ago.

+

As more and more people were starting to use ReasonML on production apps using +React Native, we wanted to make the ReScript / BuckleScript bindings for React Native, +known has bs-react-native, more accessible. This would have involved several +breaking changes in order to simplify some APIs that have been designed with a +high level of security in mind, but at some costs. The cost of being harder to +start with (for newcomers to ReasonML) as well as the cost in terms of code size +and performance.

+

While some of us were thinking about some simplifications, some others, involved +in Reason React incoming changes, directly started a new approach for this +bindings, following +the zero-cost approach offered by reason-react 0.7.0.

+

CCA started this effort on what is now know as the new +reason-react-native bindings, that eliminates a huge part of the additional +JavaScript code produced by the bindings.

+

Zero-cost​

+

By zero-cost, we means zero additional cost. The JavaScript code ReScript / BuckleScript +produces using this bindings will most of the time directly hit React Native +JavaScript code without creating an unnecessary abstraction above it 🙌.

+

Here are some random examples:

+ +

Some modules are even empty or with some minor require() that can be +themselves almost empty and easily removed by some JavaScript bundlers.

+

How cool is that?

+

But why reason-react-native ?​

+

bs-react-native already had multiple breaking changes in the past and we +didn't really want to offer a poor experience by creating a new release with +tons of changes that won't be easy to codemod (or would require much more work +from us).

+

On top of that, reason-react latest release already added an important +breaking change with +JSX 3.

+

That's why we had this idea about offering an easy and smooth transition by +offering 2 packages to say goodbye to bs-react-native without pain.

+
    +
  • bs-react-native-jsx3-compat (0.11.1)
  • +
  • reason-react-native +(0.60.0)
  • +
+

Wait, what is bs-react-native-jsx3-compat ?​

+

bs-react-native is using JSX 2 so in order to use it with JSX 3 we would have +to create an additional layer on top of the current bindings to offer both JSX 2 +and 3 bindings. And since we wanted to do away with some current APIs of +bs-react-native we started to think about a new approach.

+

We knew that we wanted to:

+
    +
  • offer to bs-react-native users a migration plan, so they can start very +easily to use JSX 3 and new reason-react (so they can use hooks),
  • +
  • offer new reason-react-native bindings, more accessible and with a zero cost +approach.
  • +
  • offer a smooth transition between these two packages so people can slowly +upgrade their codebase without having to make an insane PR that switches from +one to the other.
  • +
+

We don't want your co-workers to hate you with a PR that comes directly from +hell 😅.

+

That's where we thought about offering bs-react-native-jsx3-compat. It's a +package that has the same APIs bs-react-native has but that uses +reason-react-native under the hood.

+

This means you will have to make a migration from JSX 2 to 3. That's the +only thing you will have to do, then with a single change from bs-react-native +with bs-react-native-jsx3-compat in your bs-dependencies you will be ready +to use hooks and directly benefit of (almost) zero-cost bindings!

+

And since we care about you and don't want you to upgrade from JSX 2 to 3 by +hand, we got you covered with a script made with love to help you with that.

+

You will find all the required instructions to migrate from bs-react-native to bs-react-native-jsx3-compat in our documentation.

+

tl;dr​

+ +

Thanks​

+

This required effort has been keeping us busy for weeks and wouldn't have been +possible without the following people:

+
    +
  • CCA team and especially @cknitt for leading us to +the right direction for the new zero-cost bindings and all the contributions +that come with this move
  • +
  • @sgny for all his contributions to the new bindings
  • +
  • @MoOx for leading the effort, the compat layer and +the new website you are seeing here
  • +
  • @bloodyowl for his magical +reason-react-compat layer +and +the alternate JSX 3 upgrade path +that goes with it
  • +
  • all the people that helped us on Discord and GitHub in various code reviews +and improvements like the react native template (thanks +@dawee)
  • +
+

What's next?​

+

Now that reason-react-native is ready to be used and that our migration plan +is usable, we will probably be focused on documentation as lots of APIs and +Components need to be documented. We really want to offer the best developer +experience possible and that's definitely part of it.

+

👉Now it's time for you to check our +Getting Started with Reason React Native documentation

]]>
+ + MoOx + https://github.com/MoOx + + + +
+
\ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000..ddcc848 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,179 @@ + + + + + +Blog | ReScript React Native + + + + + + + + + + + + + +

Hello ReScript React Native

· 6 min read
MoOx
ReScript React Native Core Team

Following BuckleScript & Reason Rebranding to offer a unified experience, what was know as Reason React Native is now ReScript React Native.

+

To make this short: all packages that were published on the behalf of Reason React Native organisation are now published as the ReScript React Native organisation.

+

This means:

+ +

Should I migrate now all my packages?​

+

It depends on what version of React Native your are using. There is no rush, really.

+

You use React Native 0.63​

+

You can keep using reason-react-native and friends for now. Revisit this post when you will need to upgrade to 0.64.

+

You use React Native 0.64​

+

Here you have 2 possibles upgrades path:

+

Keep using reason-react-native​

+

Before renaming all packages, we offered a last release for reason-react-native to cover React Native 0.64. You can use that until you are ready to switch to ReScript named packages. If you want to know what this will involve, keep reading.

+

Switch to rescript-react-native​

+

The package rescript-react-native starts with version 0.64.1. You can try to use it for earlier version of React Native of course, but you might end up to minor inconsistencies, especially for bindings that have been tuned for 0.64. Check out breaking changes in release notes to know what this is all about.

+

If you are ready to move to ReScript naming, you can use all the new packages. Except rescript-react-native, other packages of this organisation have just been renamed for most of them, without any changes.

+

You can expects minor change between reason-react-native@0.64 & rescript-react-native@0.64 but this should not cause you any major trouble to switch. +You will probably notice some Js.t have been converted to record syntax, some polymorphic variants changes and minor things like that, but compiler should just tell you what to do.

+

Please note that @rescript/react is required for switching​

+

You cannot use reason-react and @rescript/react as they exposes the same module. +This means this will be "all or nothing". +Some bindings rely on React module, so they now depend on @rescript/react. This is true for rescript-react-native and some other modules.

+

This is briefly mentionned in rescript-react-native@0.64.1 release notes but you will also need bs-platform@^9.0.0.

+

Before you ask, rescript package is now a thing and up for testing (you can track this using the ReScript forum, Announcements section). This is considered beta at the time of writing this post, so we will change this peer dependency in a near future, when it's officially stable. This will replace bs-platform, probably in next "major" release (0.65 or maybe a 0.64.x-rescript).

+

tl;dr​

+

If you want to switch to the new naming, you need to be ready to use

+
    +
  • React 17 and @rescript/react@^0.10
  • +
  • React Native 0.64 with rescript-react-native@^0.64.1
  • +
  • ReScript 9 via bs-platform@^9.0.0
  • +
+

If you have any questions regarding these changes and how to proceed, feel free to open a discussion on GitHub, or use ReScript forum.

+

Wait.. That's it?​

+

You might have a question that is still pending: "where is gone the promise of cross-platform code that ReasonML was supposed to offer? I was thinking I could someday use my Reason React Native code to compile it to a lower level language that JavaScript to have blazing fast performance... "

+

Like I did in the past in my sweet dreams, you may be looking for this. And maybe this will be a reality one day in the future. Some people want this JSX like convenience to build native apps. Some will argue that there are things that you can use today. +But React Native ecosytem is more mature than existing solutions.

+

React Native can safely be used in production today, and it is for many successful companies. All the modules availables (from the core or the community) make it very easy to avoid writing specific code per platform. +Performance is better and better for every release. Recently Hermes JavaScript engine was released for iOS and it's really fast. And don't forget TurboModules!

+

You can not only write mobile apps this days, but also web apps, thanks to React Native for Web, and even native desktop apps, thanks to React Native Windows + macOS. More than enough to ship amazing products to production, today.

+

What's next​

+

I guess for the near future, nothing crazy will happen for ReScript React Native. We have to update some bindings from time to time, but beside having to switch from bs-platform to rescript, things should go smoothly. +Feel free to open a discussion if you want bindings for some modules (or just help to write them).

+

When stars are not correctly aligned and some package have incorrect bindings, remember that you can always use the fantastic patch-package to fix things real quick, and then open an issue at the right place.

+

❤️ I mostly maintain all this packages all by myself this days, so feel free to Sponsor Me on GitHub and just share kind words on Twitter to keep me motivated. I hope you enjoy this work like I do.

Hello Reason React Native

· 6 min read
MoOx
ReScript React Native Core Team

Today is a big day for the ReasonML community as we are releasing the fruits of +a long effort started about 4 months ago.

+

As more and more people were starting to use ReasonML on production apps using +React Native, we wanted to make the ReScript / BuckleScript bindings for React Native, +known has bs-react-native, more accessible. This would have involved several +breaking changes in order to simplify some APIs that have been designed with a +high level of security in mind, but at some costs. The cost of being harder to +start with (for newcomers to ReasonML) as well as the cost in terms of code size +and performance.

+

While some of us were thinking about some simplifications, some others, involved +in Reason React incoming changes, directly started a new approach for this +bindings, following +the zero-cost approach offered by reason-react 0.7.0.

+

CCA started this effort on what is now know as the new +reason-react-native bindings, that eliminates a huge part of the additional +JavaScript code produced by the bindings.

+

Zero-cost​

+

By zero-cost, we means zero additional cost. The JavaScript code ReScript / BuckleScript +produces using this bindings will most of the time directly hit React Native +JavaScript code without creating an unnecessary abstraction above it 🙌.

+

Here are some random examples:

+ +

Some modules are even empty or with some minor require() that can be +themselves almost empty and easily removed by some JavaScript bundlers.

+

How cool is that?

+

But why reason-react-native ?​

+

bs-react-native already had multiple breaking changes in the past and we +didn't really want to offer a poor experience by creating a new release with +tons of changes that won't be easy to codemod (or would require much more work +from us).

+

On top of that, reason-react latest release already added an important +breaking change with +JSX 3.

+

That's why we had this idea about offering an easy and smooth transition by +offering 2 packages to say goodbye to bs-react-native without pain.

+
    +
  • bs-react-native-jsx3-compat (0.11.1)
  • +
  • reason-react-native +(0.60.0)
  • +
+

Wait, what is bs-react-native-jsx3-compat ?​

+

bs-react-native is using JSX 2 so in order to use it with JSX 3 we would have +to create an additional layer on top of the current bindings to offer both JSX 2 +and 3 bindings. And since we wanted to do away with some current APIs of +bs-react-native we started to think about a new approach.

+

We knew that we wanted to:

+
    +
  • offer to bs-react-native users a migration plan, so they can start very +easily to use JSX 3 and new reason-react (so they can use hooks),
  • +
  • offer new reason-react-native bindings, more accessible and with a zero cost +approach.
  • +
  • offer a smooth transition between these two packages so people can slowly +upgrade their codebase without having to make an insane PR that switches from +one to the other.
  • +
+

We don't want your co-workers to hate you with a PR that comes directly from +hell 😅.

+

That's where we thought about offering bs-react-native-jsx3-compat. It's a +package that has the same APIs bs-react-native has but that uses +reason-react-native under the hood.

+

This means you will have to make a migration from JSX 2 to 3. That's the +only thing you will have to do, then with a single change from bs-react-native +with bs-react-native-jsx3-compat in your bs-dependencies you will be ready +to use hooks and directly benefit of (almost) zero-cost bindings!

+

And since we care about you and don't want you to upgrade from JSX 2 to 3 by +hand, we got you covered with a script made with love to help you with that.

+

You will find all the required instructions to migrate from bs-react-native to bs-react-native-jsx3-compat in our documentation.

+

tl;dr​

+ +

Thanks​

+

This required effort has been keeping us busy for weeks and wouldn't have been +possible without the following people:

+
    +
  • CCA team and especially @cknitt for leading us to +the right direction for the new zero-cost bindings and all the contributions +that come with this move
  • +
  • @sgny for all his contributions to the new bindings
  • +
  • @MoOx for leading the effort, the compat layer and +the new website you are seeing here
  • +
  • @bloodyowl for his magical +reason-react-compat layer +and +the alternate JSX 3 upgrade path +that goes with it
  • +
  • all the people that helped us on Discord and GitHub in various code reviews +and improvements like the react native template (thanks +@dawee)
  • +
+

What's next?​

+

Now that reason-react-native is ready to be used and that our migration plan +is usable, we will probably be focused on documentation as lots of APIs and +Components need to be documented. We really want to offer the best developer +experience possible and that's definitely part of it.

+

👉Now it's time for you to check our +Getting Started with Reason React Native documentation

+ + \ No newline at end of file diff --git a/blog/rss.xml b/blog/rss.xml new file mode 100644 index 0000000..34a7af4 --- /dev/null +++ b/blog/rss.xml @@ -0,0 +1,189 @@ + + + + ReScript React Native Blog + https://rescript-react-native.github.io/blog + ReScript React Native Blog + Tue, 04 May 2021 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[Hello ReScript React Native]]> + https://rescript-react-native.github.io/blog/2021-05-04-hello-rescript-react-native + https://rescript-react-native.github.io/blog/2021-05-04-hello-rescript-react-native + Tue, 04 May 2021 00:00:00 GMT + + Following BuckleScript & Reason Rebranding to offer a unified experience, what was know as Reason React Native is now ReScript React Native.

+

To make this short: all packages that were published on the behalf of Reason React Native organisation are now published as the ReScript React Native organisation.

+

This means:

+ +

Should I migrate now all my packages?​

+

It depends on what version of React Native your are using. There is no rush, really.

+

You use React Native 0.63​

+

You can keep using reason-react-native and friends for now. Revisit this post when you will need to upgrade to 0.64.

+

You use React Native 0.64​

+

Here you have 2 possibles upgrades path:

+

Keep using reason-react-native​

+

Before renaming all packages, we offered a last release for reason-react-native to cover React Native 0.64. You can use that until you are ready to switch to ReScript named packages. If you want to know what this will involve, keep reading.

+

Switch to rescript-react-native​

+

The package rescript-react-native starts with version 0.64.1. You can try to use it for earlier version of React Native of course, but you might end up to minor inconsistencies, especially for bindings that have been tuned for 0.64. Check out breaking changes in release notes to know what this is all about.

+

If you are ready to move to ReScript naming, you can use all the new packages. Except rescript-react-native, other packages of this organisation have just been renamed for most of them, without any changes.

+

You can expects minor change between reason-react-native@0.64 & rescript-react-native@0.64 but this should not cause you any major trouble to switch. +You will probably notice some Js.t have been converted to record syntax, some polymorphic variants changes and minor things like that, but compiler should just tell you what to do.

+

Please note that @rescript/react is required for switching​

+

You cannot use reason-react and @rescript/react as they exposes the same module. +This means this will be "all or nothing". +Some bindings rely on React module, so they now depend on @rescript/react. This is true for rescript-react-native and some other modules.

+

This is briefly mentionned in rescript-react-native@0.64.1 release notes but you will also need bs-platform@^9.0.0.

+

Before you ask, rescript package is now a thing and up for testing (you can track this using the ReScript forum, Announcements section). This is considered beta at the time of writing this post, so we will change this peer dependency in a near future, when it's officially stable. This will replace bs-platform, probably in next "major" release (0.65 or maybe a 0.64.x-rescript).

+

tl;dr​

+

If you want to switch to the new naming, you need to be ready to use

+
    +
  • React 17 and @rescript/react@^0.10
  • +
  • React Native 0.64 with rescript-react-native@^0.64.1
  • +
  • ReScript 9 via bs-platform@^9.0.0
  • +
+

If you have any questions regarding these changes and how to proceed, feel free to open a discussion on GitHub, or use ReScript forum.

+

Wait.. That's it?​

+

You might have a question that is still pending: "where is gone the promise of cross-platform code that ReasonML was supposed to offer? I was thinking I could someday use my Reason React Native code to compile it to a lower level language that JavaScript to have blazing fast performance... "

+

Like I did in the past in my sweet dreams, you may be looking for this. And maybe this will be a reality one day in the future. Some people want this JSX like convenience to build native apps. Some will argue that there are things that you can use today. +But React Native ecosytem is more mature than existing solutions.

+

React Native can safely be used in production today, and it is for many successful companies. All the modules availables (from the core or the community) make it very easy to avoid writing specific code per platform. +Performance is better and better for every release. Recently Hermes JavaScript engine was released for iOS and it's really fast. And don't forget TurboModules!

+

You can not only write mobile apps this days, but also web apps, thanks to React Native for Web, and even native desktop apps, thanks to React Native Windows + macOS. More than enough to ship amazing products to production, today.

+

What's next​

+

I guess for the near future, nothing crazy will happen for ReScript React Native. We have to update some bindings from time to time, but beside having to switch from bs-platform to rescript, things should go smoothly. +Feel free to open a discussion if you want bindings for some modules (or just help to write them).

+

When stars are not correctly aligned and some package have incorrect bindings, remember that you can always use the fantastic patch-package to fix things real quick, and then open an issue at the right place.

+

❤️ I mostly maintain all this packages all by myself this days, so feel free to Sponsor Me on GitHub and just share kind words on Twitter to keep me motivated. I hope you enjoy this work like I do.

]]>
+ hello + rescript +
+ + <![CDATA[Hello Reason React Native]]> + https://rescript-react-native.github.io/blog/2019-06-17-hello-reason-react-native + https://rescript-react-native.github.io/blog/2019-06-17-hello-reason-react-native + Mon, 17 Jun 2019 00:00:00 GMT + + Today is a big day for the ReasonML community as we are releasing the fruits of +a long effort started about 4 months ago.

+

As more and more people were starting to use ReasonML on production apps using +React Native, we wanted to make the ReScript / BuckleScript bindings for React Native, +known has bs-react-native, more accessible. This would have involved several +breaking changes in order to simplify some APIs that have been designed with a +high level of security in mind, but at some costs. The cost of being harder to +start with (for newcomers to ReasonML) as well as the cost in terms of code size +and performance.

+

While some of us were thinking about some simplifications, some others, involved +in Reason React incoming changes, directly started a new approach for this +bindings, following +the zero-cost approach offered by reason-react 0.7.0.

+

CCA started this effort on what is now know as the new +reason-react-native bindings, that eliminates a huge part of the additional +JavaScript code produced by the bindings.

+

Zero-cost​

+

By zero-cost, we means zero additional cost. The JavaScript code ReScript / BuckleScript +produces using this bindings will most of the time directly hit React Native +JavaScript code without creating an unnecessary abstraction above it 🙌.

+

Here are some random examples:

+ +

Some modules are even empty or with some minor require() that can be +themselves almost empty and easily removed by some JavaScript bundlers.

+

How cool is that?

+

But why reason-react-native ?​

+

bs-react-native already had multiple breaking changes in the past and we +didn't really want to offer a poor experience by creating a new release with +tons of changes that won't be easy to codemod (or would require much more work +from us).

+

On top of that, reason-react latest release already added an important +breaking change with +JSX 3.

+

That's why we had this idea about offering an easy and smooth transition by +offering 2 packages to say goodbye to bs-react-native without pain.

+
    +
  • bs-react-native-jsx3-compat (0.11.1)
  • +
  • reason-react-native +(0.60.0)
  • +
+

Wait, what is bs-react-native-jsx3-compat ?​

+

bs-react-native is using JSX 2 so in order to use it with JSX 3 we would have +to create an additional layer on top of the current bindings to offer both JSX 2 +and 3 bindings. And since we wanted to do away with some current APIs of +bs-react-native we started to think about a new approach.

+

We knew that we wanted to:

+
    +
  • offer to bs-react-native users a migration plan, so they can start very +easily to use JSX 3 and new reason-react (so they can use hooks),
  • +
  • offer new reason-react-native bindings, more accessible and with a zero cost +approach.
  • +
  • offer a smooth transition between these two packages so people can slowly +upgrade their codebase without having to make an insane PR that switches from +one to the other.
  • +
+

We don't want your co-workers to hate you with a PR that comes directly from +hell 😅.

+

That's where we thought about offering bs-react-native-jsx3-compat. It's a +package that has the same APIs bs-react-native has but that uses +reason-react-native under the hood.

+

This means you will have to make a migration from JSX 2 to 3. That's the +only thing you will have to do, then with a single change from bs-react-native +with bs-react-native-jsx3-compat in your bs-dependencies you will be ready +to use hooks and directly benefit of (almost) zero-cost bindings!

+

And since we care about you and don't want you to upgrade from JSX 2 to 3 by +hand, we got you covered with a script made with love to help you with that.

+

You will find all the required instructions to migrate from bs-react-native to bs-react-native-jsx3-compat in our documentation.

+

tl;dr​

+ +

Thanks​

+

This required effort has been keeping us busy for weeks and wouldn't have been +possible without the following people:

+
    +
  • CCA team and especially @cknitt for leading us to +the right direction for the new zero-cost bindings and all the contributions +that come with this move
  • +
  • @sgny for all his contributions to the new bindings
  • +
  • @MoOx for leading the effort, the compat layer and +the new website you are seeing here
  • +
  • @bloodyowl for his magical +reason-react-compat layer +and +the alternate JSX 3 upgrade path +that goes with it
  • +
  • all the people that helped us on Discord and GitHub in various code reviews +and improvements like the react native template (thanks +@dawee)
  • +
+

What's next?​

+

Now that reason-react-native is ready to be used and that our migration plan +is usable, we will probably be focused on documentation as lots of APIs and +Components need to be documented. We really want to offer the best developer +experience possible and that's definitely part of it.

+

👉Now it's time for you to check our +Getting Started with Reason React Native documentation

]]>
+ hello + reason +
+
+
\ No newline at end of file diff --git a/blog/tags/hello/index.html b/blog/tags/hello/index.html new file mode 100644 index 0000000..ea66320 --- /dev/null +++ b/blog/tags/hello/index.html @@ -0,0 +1,179 @@ + + + + + +2 posts tagged with "hello" | ReScript React Native + + + + + + + + + + + + + +

2 posts tagged with "hello"

View All Tags

Hello ReScript React Native

· 6 min read
MoOx
ReScript React Native Core Team

Following BuckleScript & Reason Rebranding to offer a unified experience, what was know as Reason React Native is now ReScript React Native.

+

To make this short: all packages that were published on the behalf of Reason React Native organisation are now published as the ReScript React Native organisation.

+

This means:

+ +

Should I migrate now all my packages?​

+

It depends on what version of React Native your are using. There is no rush, really.

+

You use React Native 0.63​

+

You can keep using reason-react-native and friends for now. Revisit this post when you will need to upgrade to 0.64.

+

You use React Native 0.64​

+

Here you have 2 possibles upgrades path:

+

Keep using reason-react-native​

+

Before renaming all packages, we offered a last release for reason-react-native to cover React Native 0.64. You can use that until you are ready to switch to ReScript named packages. If you want to know what this will involve, keep reading.

+

Switch to rescript-react-native​

+

The package rescript-react-native starts with version 0.64.1. You can try to use it for earlier version of React Native of course, but you might end up to minor inconsistencies, especially for bindings that have been tuned for 0.64. Check out breaking changes in release notes to know what this is all about.

+

If you are ready to move to ReScript naming, you can use all the new packages. Except rescript-react-native, other packages of this organisation have just been renamed for most of them, without any changes.

+

You can expects minor change between reason-react-native@0.64 & rescript-react-native@0.64 but this should not cause you any major trouble to switch. +You will probably notice some Js.t have been converted to record syntax, some polymorphic variants changes and minor things like that, but compiler should just tell you what to do.

+

Please note that @rescript/react is required for switching​

+

You cannot use reason-react and @rescript/react as they exposes the same module. +This means this will be "all or nothing". +Some bindings rely on React module, so they now depend on @rescript/react. This is true for rescript-react-native and some other modules.

+

This is briefly mentionned in rescript-react-native@0.64.1 release notes but you will also need bs-platform@^9.0.0.

+

Before you ask, rescript package is now a thing and up for testing (you can track this using the ReScript forum, Announcements section). This is considered beta at the time of writing this post, so we will change this peer dependency in a near future, when it's officially stable. This will replace bs-platform, probably in next "major" release (0.65 or maybe a 0.64.x-rescript).

+

tl;dr​

+

If you want to switch to the new naming, you need to be ready to use

+
    +
  • React 17 and @rescript/react@^0.10
  • +
  • React Native 0.64 with rescript-react-native@^0.64.1
  • +
  • ReScript 9 via bs-platform@^9.0.0
  • +
+

If you have any questions regarding these changes and how to proceed, feel free to open a discussion on GitHub, or use ReScript forum.

+

Wait.. That's it?​

+

You might have a question that is still pending: "where is gone the promise of cross-platform code that ReasonML was supposed to offer? I was thinking I could someday use my Reason React Native code to compile it to a lower level language that JavaScript to have blazing fast performance... "

+

Like I did in the past in my sweet dreams, you may be looking for this. And maybe this will be a reality one day in the future. Some people want this JSX like convenience to build native apps. Some will argue that there are things that you can use today. +But React Native ecosytem is more mature than existing solutions.

+

React Native can safely be used in production today, and it is for many successful companies. All the modules availables (from the core or the community) make it very easy to avoid writing specific code per platform. +Performance is better and better for every release. Recently Hermes JavaScript engine was released for iOS and it's really fast. And don't forget TurboModules!

+

You can not only write mobile apps this days, but also web apps, thanks to React Native for Web, and even native desktop apps, thanks to React Native Windows + macOS. More than enough to ship amazing products to production, today.

+

What's next​

+

I guess for the near future, nothing crazy will happen for ReScript React Native. We have to update some bindings from time to time, but beside having to switch from bs-platform to rescript, things should go smoothly. +Feel free to open a discussion if you want bindings for some modules (or just help to write them).

+

When stars are not correctly aligned and some package have incorrect bindings, remember that you can always use the fantastic patch-package to fix things real quick, and then open an issue at the right place.

+

❤️ I mostly maintain all this packages all by myself this days, so feel free to Sponsor Me on GitHub and just share kind words on Twitter to keep me motivated. I hope you enjoy this work like I do.

Hello Reason React Native

· 6 min read
MoOx
ReScript React Native Core Team

Today is a big day for the ReasonML community as we are releasing the fruits of +a long effort started about 4 months ago.

+

As more and more people were starting to use ReasonML on production apps using +React Native, we wanted to make the ReScript / BuckleScript bindings for React Native, +known has bs-react-native, more accessible. This would have involved several +breaking changes in order to simplify some APIs that have been designed with a +high level of security in mind, but at some costs. The cost of being harder to +start with (for newcomers to ReasonML) as well as the cost in terms of code size +and performance.

+

While some of us were thinking about some simplifications, some others, involved +in Reason React incoming changes, directly started a new approach for this +bindings, following +the zero-cost approach offered by reason-react 0.7.0.

+

CCA started this effort on what is now know as the new +reason-react-native bindings, that eliminates a huge part of the additional +JavaScript code produced by the bindings.

+

Zero-cost​

+

By zero-cost, we means zero additional cost. The JavaScript code ReScript / BuckleScript +produces using this bindings will most of the time directly hit React Native +JavaScript code without creating an unnecessary abstraction above it 🙌.

+

Here are some random examples:

+ +

Some modules are even empty or with some minor require() that can be +themselves almost empty and easily removed by some JavaScript bundlers.

+

How cool is that?

+

But why reason-react-native ?​

+

bs-react-native already had multiple breaking changes in the past and we +didn't really want to offer a poor experience by creating a new release with +tons of changes that won't be easy to codemod (or would require much more work +from us).

+

On top of that, reason-react latest release already added an important +breaking change with +JSX 3.

+

That's why we had this idea about offering an easy and smooth transition by +offering 2 packages to say goodbye to bs-react-native without pain.

+
    +
  • bs-react-native-jsx3-compat (0.11.1)
  • +
  • reason-react-native +(0.60.0)
  • +
+

Wait, what is bs-react-native-jsx3-compat ?​

+

bs-react-native is using JSX 2 so in order to use it with JSX 3 we would have +to create an additional layer on top of the current bindings to offer both JSX 2 +and 3 bindings. And since we wanted to do away with some current APIs of +bs-react-native we started to think about a new approach.

+

We knew that we wanted to:

+
    +
  • offer to bs-react-native users a migration plan, so they can start very +easily to use JSX 3 and new reason-react (so they can use hooks),
  • +
  • offer new reason-react-native bindings, more accessible and with a zero cost +approach.
  • +
  • offer a smooth transition between these two packages so people can slowly +upgrade their codebase without having to make an insane PR that switches from +one to the other.
  • +
+

We don't want your co-workers to hate you with a PR that comes directly from +hell 😅.

+

That's where we thought about offering bs-react-native-jsx3-compat. It's a +package that has the same APIs bs-react-native has but that uses +reason-react-native under the hood.

+

This means you will have to make a migration from JSX 2 to 3. That's the +only thing you will have to do, then with a single change from bs-react-native +with bs-react-native-jsx3-compat in your bs-dependencies you will be ready +to use hooks and directly benefit of (almost) zero-cost bindings!

+

And since we care about you and don't want you to upgrade from JSX 2 to 3 by +hand, we got you covered with a script made with love to help you with that.

+

You will find all the required instructions to migrate from bs-react-native to bs-react-native-jsx3-compat in our documentation.

+

tl;dr​

+ +

Thanks​

+

This required effort has been keeping us busy for weeks and wouldn't have been +possible without the following people:

+
    +
  • CCA team and especially @cknitt for leading us to +the right direction for the new zero-cost bindings and all the contributions +that come with this move
  • +
  • @sgny for all his contributions to the new bindings
  • +
  • @MoOx for leading the effort, the compat layer and +the new website you are seeing here
  • +
  • @bloodyowl for his magical +reason-react-compat layer +and +the alternate JSX 3 upgrade path +that goes with it
  • +
  • all the people that helped us on Discord and GitHub in various code reviews +and improvements like the react native template (thanks +@dawee)
  • +
+

What's next?​

+

Now that reason-react-native is ready to be used and that our migration plan +is usable, we will probably be focused on documentation as lots of APIs and +Components need to be documented. We really want to offer the best developer +experience possible and that's definitely part of it.

+

👉Now it's time for you to check our +Getting Started with Reason React Native documentation

+ + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html new file mode 100644 index 0000000..20a3a74 --- /dev/null +++ b/blog/tags/index.html @@ -0,0 +1,22 @@ + + + + + +Tags | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/reason/index.html b/blog/tags/reason/index.html new file mode 100644 index 0000000..15b89b1 --- /dev/null +++ b/blog/tags/reason/index.html @@ -0,0 +1,133 @@ + + + + + +One post tagged with "reason" | ReScript React Native + + + + + + + + + + + + + +

One post tagged with "reason"

View All Tags

Hello Reason React Native

· 6 min read
MoOx
ReScript React Native Core Team

Today is a big day for the ReasonML community as we are releasing the fruits of +a long effort started about 4 months ago.

+

As more and more people were starting to use ReasonML on production apps using +React Native, we wanted to make the ReScript / BuckleScript bindings for React Native, +known has bs-react-native, more accessible. This would have involved several +breaking changes in order to simplify some APIs that have been designed with a +high level of security in mind, but at some costs. The cost of being harder to +start with (for newcomers to ReasonML) as well as the cost in terms of code size +and performance.

+

While some of us were thinking about some simplifications, some others, involved +in Reason React incoming changes, directly started a new approach for this +bindings, following +the zero-cost approach offered by reason-react 0.7.0.

+

CCA started this effort on what is now know as the new +reason-react-native bindings, that eliminates a huge part of the additional +JavaScript code produced by the bindings.

+

Zero-cost​

+

By zero-cost, we means zero additional cost. The JavaScript code ReScript / BuckleScript +produces using this bindings will most of the time directly hit React Native +JavaScript code without creating an unnecessary abstraction above it 🙌.

+

Here are some random examples:

+ +

Some modules are even empty or with some minor require() that can be +themselves almost empty and easily removed by some JavaScript bundlers.

+

How cool is that?

+

But why reason-react-native ?​

+

bs-react-native already had multiple breaking changes in the past and we +didn't really want to offer a poor experience by creating a new release with +tons of changes that won't be easy to codemod (or would require much more work +from us).

+

On top of that, reason-react latest release already added an important +breaking change with +JSX 3.

+

That's why we had this idea about offering an easy and smooth transition by +offering 2 packages to say goodbye to bs-react-native without pain.

+
    +
  • bs-react-native-jsx3-compat (0.11.1)
  • +
  • reason-react-native +(0.60.0)
  • +
+

Wait, what is bs-react-native-jsx3-compat ?​

+

bs-react-native is using JSX 2 so in order to use it with JSX 3 we would have +to create an additional layer on top of the current bindings to offer both JSX 2 +and 3 bindings. And since we wanted to do away with some current APIs of +bs-react-native we started to think about a new approach.

+

We knew that we wanted to:

+
    +
  • offer to bs-react-native users a migration plan, so they can start very +easily to use JSX 3 and new reason-react (so they can use hooks),
  • +
  • offer new reason-react-native bindings, more accessible and with a zero cost +approach.
  • +
  • offer a smooth transition between these two packages so people can slowly +upgrade their codebase without having to make an insane PR that switches from +one to the other.
  • +
+

We don't want your co-workers to hate you with a PR that comes directly from +hell 😅.

+

That's where we thought about offering bs-react-native-jsx3-compat. It's a +package that has the same APIs bs-react-native has but that uses +reason-react-native under the hood.

+

This means you will have to make a migration from JSX 2 to 3. That's the +only thing you will have to do, then with a single change from bs-react-native +with bs-react-native-jsx3-compat in your bs-dependencies you will be ready +to use hooks and directly benefit of (almost) zero-cost bindings!

+

And since we care about you and don't want you to upgrade from JSX 2 to 3 by +hand, we got you covered with a script made with love to help you with that.

+

You will find all the required instructions to migrate from bs-react-native to bs-react-native-jsx3-compat in our documentation.

+

tl;dr​

+ +

Thanks​

+

This required effort has been keeping us busy for weeks and wouldn't have been +possible without the following people:

+
    +
  • CCA team and especially @cknitt for leading us to +the right direction for the new zero-cost bindings and all the contributions +that come with this move
  • +
  • @sgny for all his contributions to the new bindings
  • +
  • @MoOx for leading the effort, the compat layer and +the new website you are seeing here
  • +
  • @bloodyowl for his magical +reason-react-compat layer +and +the alternate JSX 3 upgrade path +that goes with it
  • +
  • all the people that helped us on Discord and GitHub in various code reviews +and improvements like the react native template (thanks +@dawee)
  • +
+

What's next?​

+

Now that reason-react-native is ready to be used and that our migration plan +is usable, we will probably be focused on documentation as lots of APIs and +Components need to be documented. We really want to offer the best developer +experience possible and that's definitely part of it.

+

👉Now it's time for you to check our +Getting Started with Reason React Native documentation

+ + \ No newline at end of file diff --git a/blog/tags/rescript/index.html b/blog/tags/rescript/index.html new file mode 100644 index 0000000..41faafd --- /dev/null +++ b/blog/tags/rescript/index.html @@ -0,0 +1,68 @@ + + + + + +One post tagged with "rescript" | ReScript React Native + + + + + + + + + + + + + +

One post tagged with "rescript"

View All Tags

Hello ReScript React Native

· 6 min read
MoOx
ReScript React Native Core Team

Following BuckleScript & Reason Rebranding to offer a unified experience, what was know as Reason React Native is now ReScript React Native.

+

To make this short: all packages that were published on the behalf of Reason React Native organisation are now published as the ReScript React Native organisation.

+

This means:

+ +

Should I migrate now all my packages?​

+

It depends on what version of React Native your are using. There is no rush, really.

+

You use React Native 0.63​

+

You can keep using reason-react-native and friends for now. Revisit this post when you will need to upgrade to 0.64.

+

You use React Native 0.64​

+

Here you have 2 possibles upgrades path:

+

Keep using reason-react-native​

+

Before renaming all packages, we offered a last release for reason-react-native to cover React Native 0.64. You can use that until you are ready to switch to ReScript named packages. If you want to know what this will involve, keep reading.

+

Switch to rescript-react-native​

+

The package rescript-react-native starts with version 0.64.1. You can try to use it for earlier version of React Native of course, but you might end up to minor inconsistencies, especially for bindings that have been tuned for 0.64. Check out breaking changes in release notes to know what this is all about.

+

If you are ready to move to ReScript naming, you can use all the new packages. Except rescript-react-native, other packages of this organisation have just been renamed for most of them, without any changes.

+

You can expects minor change between reason-react-native@0.64 & rescript-react-native@0.64 but this should not cause you any major trouble to switch. +You will probably notice some Js.t have been converted to record syntax, some polymorphic variants changes and minor things like that, but compiler should just tell you what to do.

+

Please note that @rescript/react is required for switching​

+

You cannot use reason-react and @rescript/react as they exposes the same module. +This means this will be "all or nothing". +Some bindings rely on React module, so they now depend on @rescript/react. This is true for rescript-react-native and some other modules.

+

This is briefly mentionned in rescript-react-native@0.64.1 release notes but you will also need bs-platform@^9.0.0.

+

Before you ask, rescript package is now a thing and up for testing (you can track this using the ReScript forum, Announcements section). This is considered beta at the time of writing this post, so we will change this peer dependency in a near future, when it's officially stable. This will replace bs-platform, probably in next "major" release (0.65 or maybe a 0.64.x-rescript).

+

tl;dr​

+

If you want to switch to the new naming, you need to be ready to use

+
    +
  • React 17 and @rescript/react@^0.10
  • +
  • React Native 0.64 with rescript-react-native@^0.64.1
  • +
  • ReScript 9 via bs-platform@^9.0.0
  • +
+

If you have any questions regarding these changes and how to proceed, feel free to open a discussion on GitHub, or use ReScript forum.

+

Wait.. That's it?​

+

You might have a question that is still pending: "where is gone the promise of cross-platform code that ReasonML was supposed to offer? I was thinking I could someday use my Reason React Native code to compile it to a lower level language that JavaScript to have blazing fast performance... "

+

Like I did in the past in my sweet dreams, you may be looking for this. And maybe this will be a reality one day in the future. Some people want this JSX like convenience to build native apps. Some will argue that there are things that you can use today. +But React Native ecosytem is more mature than existing solutions.

+

React Native can safely be used in production today, and it is for many successful companies. All the modules availables (from the core or the community) make it very easy to avoid writing specific code per platform. +Performance is better and better for every release. Recently Hermes JavaScript engine was released for iOS and it's really fast. And don't forget TurboModules!

+

You can not only write mobile apps this days, but also web apps, thanks to React Native for Web, and even native desktop apps, thanks to React Native Windows + macOS. More than enough to ship amazing products to production, today.

+

What's next​

+

I guess for the near future, nothing crazy will happen for ReScript React Native. We have to update some bindings from time to time, but beside having to switch from bs-platform to rescript, things should go smoothly. +Feel free to open a discussion if you want bindings for some modules (or just help to write them).

+

When stars are not correctly aligned and some package have incorrect bindings, remember that you can always use the fantastic patch-package to fix things real quick, and then open an issue at the right place.

+

❤️ I mostly maintain all this packages all by myself this days, so feel free to Sponsor Me on GitHub and just share kind words on Twitter to keep me motivated. I hope you enjoy this work like I do.

+ + \ No newline at end of file diff --git a/browserconfig.xml b/browserconfig.xml new file mode 100644 index 0000000..b9639ca --- /dev/null +++ b/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #000000 + + + diff --git a/docs/accessibilityinfo/index.html b/docs/accessibilityinfo/index.html new file mode 100644 index 0000000..21c7a5b --- /dev/null +++ b/docs/accessibilityinfo/index.html @@ -0,0 +1,46 @@ + + + + + +AccessibilityInfo | ReScript React Native + + + + + + + + + + + + + +

AccessibilityInfo

Types​

+

announcementResult​

+

Passed to the handler of the #announcementFinished event.

+
type announcementResult = {
announcement: string,
success: bool,
}
+

where announcement is the string announced by the screen reader and success +is a bool indicating whether the announcement was successfully made.

+

Methods​

+

Query methods​

+

Each of these returns promise<bool>:

+
MethodNotes
isBoldTextEnablediOS
isGrayscaleEnablediOS
isInvertColorsEnablediOS
isReduceMotionEnabled
isReduceTransparencyEnablediOS
isScreenReaderEnabled
isHighTextContrastEnabled
isDarkerSystemColorsEnabled
isAccessibilityServiceEnabled
prefersCrossFadeTransitions
+
isScreenReaderEnabled: unit => promise<bool>
+

getRecommendedTimeoutMillis​

+
getRecommendedTimeoutMillis: float => promise<float>
+

announceForAccessibility​

+
announceForAccessibility: string => unit
announceForAccessibilityWithOptions: (string, {queue?: bool}) => unit
+

setAccessibilityFocus​

+

@deprecated Prefer sendAccessibilityEvent with #focus.

+
setAccessibilityFocus: NativeTypes.nodeHandle => unit
+

sendAccessibilityEvent​

+
sendAccessibilityEvent: (
Ref.t<DOMAPI.element<'nativeElement>>,
[#click | #focus | #viewHoverEnter | #windowStateChange],
) => unit
+

addEventListener​

+

Add an event handler. Returns an EventSubscription +— call .remove() to unsubscribe.

+
addEventListener: [
| #boldTextChanged(bool => unit)
| #grayscaleChanged(bool => unit)
| #invertColorsChanged(bool => unit)
| #reduceMotionChanged(bool => unit)
| #screenReaderChanged(bool => unit)
| #reduceTransparencyChanged(bool => unit)
| #highTextContrastChanged(bool => unit)
| #darkerSystemColorsChanged(bool => unit)
| #accessibilityServiceChanged(bool => unit)
| #announcementFinished(announcementResult => unit)
] => EventSubscription.t
+
React.useEffect0(() => {
let sub = AccessibilityInfo.addEventListener(#screenReaderChanged(enabled => {
Console.log(enabled)
}))
Some(() => sub->EventSubscription.remove)
})
+ + \ No newline at end of file diff --git a/docs/actionsheetios/index.html b/docs/actionsheetios/index.html new file mode 100644 index 0000000..c4901ad --- /dev/null +++ b/docs/actionsheetios/index.html @@ -0,0 +1,28 @@ + + + + + +ActionSheetIOS | ReScript React Native + + + + + + + + + + + + + +

ActionSheetIOS

iOS-only action sheet / share sheet.

+

showActionSheetWithOptions​

+
ActionSheetIOS.showActionSheetWithOptions(
{
options: ["Cancel", "Delete"],
cancelButtonIndex: 0,
destructiveButtonIndex: [1],
title: "Confirm",
},
buttonIndex => Console.log(buttonIndex),
)
+

showShareActionSheetWithOptions​

+
ActionSheetIOS.showShareActionSheetWithOptions(
{url: "https://rescript-lang.org", message: "ReScript"},
error => Console.warn(error),
(completed, activityType) => Console.log((completed, activityType)),
)
+

dismissActionSheet​

+
ActionSheetIOS.dismissActionSheet()
+ + \ No newline at end of file diff --git a/docs/activityindicator/index.html b/docs/activityindicator/index.html new file mode 100644 index 0000000..51a76ab --- /dev/null +++ b/docs/activityindicator/index.html @@ -0,0 +1,22 @@ + + + + + +ActivityIndicator | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/alert/index.html b/docs/alert/index.html new file mode 100644 index 0000000..539002f --- /dev/null +++ b/docs/alert/index.html @@ -0,0 +1,37 @@ + + + + + +Alert | ReScript React Native + + + + + + + + + + + + + +

Alert

Types​

+
type style = [#default | #cancel | #destructive]

type button = {
text?: string,
onPress?: unit => unit,
style?: style,
isPreferred?: bool,
}

type options = {
cancelable?: bool,
userInterfaceStyle?: Appearance.t,
onDismiss?: unit => unit,
}
+

Methods​

+

alert​

+

Launches an alert dialog with the specified title and optional message. +Optionally, an array of buttons can be provided: on Android the maximum is 3, +on iOS any number is okay.

+

On Android, the dialog can be dismissed by tapping outside of the alert box. +This triggers the onDismiss callback available in the options. With the +cancelable option, this behavior can be deactivated altogether.

+
alert: (
~title: string,
~message: string=?,
~buttons: array<button>=?,
~options: options=?,
) => unit
+

Example​

+
open ReactNative

Alert.alert(
~title="Do you really want to quit?",
~message="We miss you already.",
~buttons=[
{text: "OK", style: #destructive, onPress: () => Console.log("Bye!")},
{text: "Cancel", style: #cancel},
],
~options={cancelable: true, onDismiss: () => Console.log("Dismissed.")},
)
+

prompt​

+

iOS only — prompt the user for text input.

+
prompt: (
~title: string,
~message: string=?,
~callbackOrButtons: [
| #callback(string => unit)
| #buttons(array<button>)
]=?,
~type_: [#default | #"plain-text" | #"secure-text" | #"login-password"]=?,
~defaultValue: string=?,
~keyboardType: string=?,
~options: options=?,
) => unit
+ + \ No newline at end of file diff --git a/docs/animated/index.html b/docs/animated/index.html new file mode 100644 index 0000000..e78e06f --- /dev/null +++ b/docs/animated/index.html @@ -0,0 +1,29 @@ + + + + + +Animated | ReScript React Native + + + + + + + + + + + + + +

Animated

ReScript bindings mirror the React Native Animated API (Value, ValueXY, +timing / spring / decay, parallel, sequence, loop, +Animated.View / Text / Image / ScrollView, interpolation, …).

+
open ReactNative
open Animated

@react.component
let make = () => {
let fade = useAnimatedValue(~initialValue=0.)

React.useEffect0(() => {
timing(
fade,
{
toValue: Value.Timing.fromRawValue(1.),
duration: 500.,
useNativeDriver: true,
},
)->start
None
})

<View style={Style.s({opacity: fade->StyleProp.float})}>
<Text> {"Fade in"->React.string} </Text>
</View>
}
+

With open Animated, View refers to Animated.View.

+

See +src/apis/Animated.res +for the full surface.

+ + \ No newline at end of file diff --git a/docs/animationframe/index.html b/docs/animationframe/index.html new file mode 100644 index 0000000..122ec3c --- /dev/null +++ b/docs/animationframe/index.html @@ -0,0 +1,37 @@ + + + + + +AnimationFrame | ReScript React Native + + + + + + + + + + + + + +

AnimationFrame

request​

+

AnimationFrame.request is just the well known +requestAnimationFrame.

+

In React Native, requestAnimationFrame has been polyfilled +from the browser. It accepts a function as its only argument and calls that +function before the next repaint.

+

Note that calback doesn't receive an argument unlike the +window.requestAnimationFrame implementation.

+

This method returns a requestID so you can cancel if needed. If you don't need +it, you can just ignore the result.

+
AnimationFrame.request(() => {
// do whatever you need on next paint
})->ignore
+

cancel​

+

AnimationFrame.cancel method cancels an animation frame request previously +scheduled. It's just calling +cancelAnimationFrame.

+
let requestID = AnimationFrame.request(() => {
// do whatever you need on next paint
})

// elsewhere or later
if whatever {
AnimationFrame.cancel(requestID);
}
+ + \ No newline at end of file diff --git a/docs/apis/index.html b/docs/apis/index.html new file mode 100644 index 0000000..2228022 --- /dev/null +++ b/docs/apis/index.html @@ -0,0 +1,22 @@ + + + + + +APIs | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/appearance/index.html b/docs/appearance/index.html new file mode 100644 index 0000000..b64a2ce --- /dev/null +++ b/docs/appearance/index.html @@ -0,0 +1,44 @@ + + + + + +Appearance | ReScript React Native + + + + + + + + + + + + + +

Appearance

Appearance exposes information about the preferred color scheme (light or +dark).

+

Types​

+

t​

+
type t = [#dark | #light]
+

Returned from getColorScheme / useColorScheme as option<t> (None when no +preference is available).

+
Appearance.getColorScheme() == Some(#dark)
+

Methods​

+

getColorScheme​

+

Query the current preferred color scheme. Note that the preference may be +updated later, either through user action or automatically.

+
getColorScheme: unit => option<t>
+

useColorScheme​

+

Query the current preferred color scheme and subscribe to updates (React hook).

+
useColorScheme: unit => option<t>
+

setColorScheme​

+

Force the app color scheme.

+
setColorScheme: t => unit
+

addChangeListener​

+

Subscribe to appearance changes. Returns an +EventSubscription.

+
addChangeListener: (unit => unit) => EventSubscription.t
+ + \ No newline at end of file diff --git a/docs/appregistry/index.html b/docs/appregistry/index.html new file mode 100644 index 0000000..aea09c5 --- /dev/null +++ b/docs/appregistry/index.html @@ -0,0 +1,26 @@ + + + + + +AppRegistry | ReScript React Native + + + + + + + + + + + + + +

AppRegistry

Entry point to register and run React Native apps.

+

Common usage​

+
AppRegistry.registerComponent("MyApp", () => App.make)
AppRegistry.runApplication("MyApp", {"initialProps": {}})
+

Other methods​

+
AppRegistry.getAppKeys() // array<string>
AppRegistry.registerRunnable(appKey, params => ())
AppRegistry.registerSection(appKey, () => Section.make)
AppRegistry.unmountApplicationComponentAtRootTag(rootTag)

// Android headless tasks
AppRegistry.registerHeadlessTask(taskKey, () => data => promise)
AppRegistry.startHeadlessTask(taskId, taskKey, data)
+ + \ No newline at end of file diff --git a/docs/appstate/index.html b/docs/appstate/index.html new file mode 100644 index 0000000..cfd271b --- /dev/null +++ b/docs/appstate/index.html @@ -0,0 +1,29 @@ + + + + + +AppState | ReScript React Native + + + + + + + + + + + + + +

AppState

Types​

+
type t = [#active | #background | #inactive | #unknown | #extension]
+

Values​

+
AppState.currentState // t
AppState.isAvailable // bool
+

Methods​

+

addEventListener​

+
addEventListener: [
| #change(t => unit)
| #focus(unit => unit)
| #blur(unit => unit)
| #memoryWarning(unit => unit)
] => EventSubscription.t
+
React.useEffect0(() => {
let sub = AppState.addEventListener(#change(next => Console.log(next)))
Some(() => sub->EventSubscription.remove)
})
+ + \ No newline at end of file diff --git a/docs/asyncstorage/index.html b/docs/asyncstorage/index.html new file mode 100644 index 0000000..eb46002 --- /dev/null +++ b/docs/asyncstorage/index.html @@ -0,0 +1,26 @@ + + + + + +AsyncStorage | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/backhandler/index.html b/docs/backhandler/index.html new file mode 100644 index 0000000..c8a5cfb --- /dev/null +++ b/docs/backhandler/index.html @@ -0,0 +1,30 @@ + + + + + +BackHandler | ReScript React Native + + + + + + + + + + + + + +

BackHandler

Android-only API to listen to the hardware back button.

+

Methods​

+

exitApp​

+
exitApp: unit => unit
+

addEventListener​

+
addEventListener: ([#hardwareBackPress], unit => nullable<bool>) => {remove: unit => unit}
+

Return Nullable.make(true) from the handler to prevent the default back +behavior.

+
React.useEffect0(() => {
let subscription = BackHandler.addEventListener(#hardwareBackPress, () => {
// handle back...
Nullable.make(true)
})
Some(() => subscription.remove())
})
+ + \ No newline at end of file diff --git a/docs/button/index.html b/docs/button/index.html new file mode 100644 index 0000000..c332c80 --- /dev/null +++ b/docs/button/index.html @@ -0,0 +1,23 @@ + + + + + +Button | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/cheatsheet/index.html b/docs/cheatsheet/index.html new file mode 100644 index 0000000..c852007 --- /dev/null +++ b/docs/cheatsheet/index.html @@ -0,0 +1,78 @@ + + + + + +Cheatsheet | ReScript React Native + + + + + + + + + + + + + +

Cheatsheet

If you are not familiar with ReScript / Reason, be sure to check ReScript Overview to learn how to interop with JavaScript

+

JSX String​

+

JavaScript JSX String​

+
<Text>Hello, world!</Text>
+

JSX String​

+
<Text> {"Hello, world!"->React.string} </Text>
+

JSX Number (int)​

+

JavaScript JSX Number (int)​

+
<Text>42</Text>
+

JSX Number (int)​

+
<Text> {Int.toString(42)->React.string} </Text>
+

JSX Number (float)​

+

JavaScript JSX Number (float)​

+
<Text>4.2</Text>
+

JSX Number (float)​

+
<Text> {Float.toString(4.2)->React.string} </Text>
+

JSX Array (of string)​

+

JavaScript JSX Array (of string)​

+
{items.map((item, i) =>
<Text key={i++item}>
{item}
</Text>
)}
+

JSX Array (of string)​

+
{items
->Array.mapWithIndex((item, index) =>
<Text key={Int.toString(index) ++ item}> {item->React.string} </Text>
)
->React.array}
+

JSX conditional string​

+

JavaScript JSX conditional string​

+
<Text>{condition && something}</Text>
+

JSX conditional string​

+
<Text>
{
condition ? something->React.string : React.null
}
</Text>
+

JSX optional value​

+

JavaScript JSX optional string​

+

Assuming something is a string that can be undefined.

+
{
something && <Text>{something.toUpperCase()}</Text>;
}
+

JSX optional string​

+

Recommended: Assuming something is an +optional string.

+
{
something
->Option.map(thing =>
<Text> {thing->String.toUpperCase->React.string} </Text>
)
->Option.getOr(React.null)
}
+

If you have to work with JavaScript/JSON: Assuming something is a JavaScript +string that can be undefined.

+
{
something
->Nullable.toOption
->Option.map(thing =>
<Text> {thing->String.toUpperCase->React.string} </Text>
)
->Option.getOr(React.null)
}
+

React Native StyleSheet​

+

JavaScript React Native StyleSheet​

+
import { StyleSheet } from "react-native";

const styles = StyleSheet.create({
container: {
maxHeight: 600,
width: 800,
justifyContent: "flex-start",
alignItems: "center",
margin: "auto",
},
cornerThing: {
position: "absolute",
top: 100,
right: -20,
transform: [{ rotate: "4deg" }],
},
text: {
textTransform: "uppercase",
},
});

console.log(StyleSheet.flatten([styles.container]));
+

ReScript React Native StyleSheet​

+
open ReactNative
open Style // units & Style.s come from the Style module

let styles = StyleSheet.create({
"container": s({
maxHeight: 600.->dp,
width: 80.->pct,
justifyContent: #"flex-start",
alignItems: #center,
margin: auto,
}),
"cornerThing": s({
position: #absolute,
top: 100.->dp,
right: -20.->dp,
transform: [rotate(~rotate=4.->deg)],
}),
"text": s({textTransform: #uppercase}),
})

Console.log(StyleSheet.flatten([styles["container"]]))
+

Concatenated styles​

+

JavaScript Concatenated styles​

+
<View style={[styles.container, styles.containerAdditionalStyles]} />
+

Concatenated styles​

+
open ReactNative
open Style

<View style={array([styles["container"], styles["containerAdditionalStyles"]])} />
+

Optional styles​

+

JavaScript Optional styles​

+
<View
style={[
styles.container,
condition && styles.containerAdditionalStyles,
condition2 && { width: 40 },
]}
/>
+

Optional styles​

+
open ReactNative
open Style

<View
style={arrayOption([
Some(styles["container"]),
condition ? Some(styles["containerAdditionalStyles"]) : None,
condition2 ? Some(s({width: 40.->dp})) : None,
])}
/>
+

Hello world​

+

JavaScript Hello World​

+
/* App.js */
import React from "react";
import { Text, View } from "react-native";

export default function HelloWorld({ name }) {
return (
<View
style={{
flex: 1,
justifyContent: "center",
alignItems: "center",
}}
>
<Text>Hello, {name || "world"}!</Text>
</View>
);
}
+

Hello World​

+
/* App.res */
open ReactNative
open Style

@react.component
let make = (~name=?) => {
<View style={s({flex: 1., justifyContent: #center, alignItems: #center})}>
<Text>
{("Hello, " ++ name->Option.getOr("world") ++ "!")->React.string}
</Text>
</View>
}
+ + \ No newline at end of file diff --git a/docs/clipboard/index.html b/docs/clipboard/index.html new file mode 100644 index 0000000..a899145 --- /dev/null +++ b/docs/clipboard/index.html @@ -0,0 +1,34 @@ + + + + + +Clipboard | ReScript React Native + + + + + + + + + + + + + +

Clipboard

Clipboard has been deprecated and will be removed from React Native in the +future.

+

Please refer to bindings for +the replacement +community package.

+
+

Methods​

+

getString​

+

Attempt reading content from the Clipboard.

+
getString: unit => promise<string>
+

setString​

+

Copy a string to the Clipboard.

+
setString: string => unit
+ + \ No newline at end of file diff --git a/docs/components/index.html b/docs/components/index.html new file mode 100644 index 0000000..0b8b9fe --- /dev/null +++ b/docs/components/index.html @@ -0,0 +1,48 @@ + + + + + +Components | ReScript React Native + + + + + + + + + + + + + +

Components

React Native provides a number of built-in Core Componentsready for you to use in your app. You can find them all in the left sidebar (or menu above, if you are on a narrow screen). If you're not sure where to get started, take a look at the following categories:

+ +

Basic Components​

+

Most apps will end up using one of these basic components.

+ +

User Interface​

+

These common user interface controls will render on any platform.

+ +

List Views​

+

Unlike the more generic ScrollView, the following list view components only render elements that are currently showing on the screen. This makes them a performant choice for displaying long lists of data.

+ +

Android Components and APIs​

+

Many of the following components provide wrappers for commonly used Android classes.

+ +

iOS Components and APIs​

+

Many of the following components provide wrappers for commonly used UIKit classes.

+ +

Others​

+

These components may be useful for certain applications. For an exhaustive list of components and APIs, check out the sidebar to the left (or menu above, if you are on a narrow screen).

+
+ + \ No newline at end of file diff --git a/docs/datepickerandroid/index.html b/docs/datepickerandroid/index.html new file mode 100644 index 0000000..8428d6b --- /dev/null +++ b/docs/datepickerandroid/index.html @@ -0,0 +1,27 @@ + + + + + +DatePickerAndroid | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/datepickerios/index.html b/docs/datepickerios/index.html new file mode 100644 index 0000000..bc89a96 --- /dev/null +++ b/docs/datepickerios/index.html @@ -0,0 +1,27 @@ + + + + + +DatePickerIOS | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/devsettings/index.html b/docs/devsettings/index.html new file mode 100644 index 0000000..44331f9 --- /dev/null +++ b/docs/devsettings/index.html @@ -0,0 +1,42 @@ + + + + + +DevSettings | ReScript React Native + + + + + + + + + + + + + +

DevSettings

DevSettings provides methods for developers.

+

Types​

+

handler​

+

Alias for unit => unit.

+

reason​

+

Alias for string.

+

title​

+

Alias for string.

+

Methods​

+

addMenuItem​

+

To add a custom entry to the developer menu. As arguments, takes a title (of +type string) and a handler function (of type unit => unit) to be called +when the menu item is pressed.

+
addMenuItem: (title, handler) => unit
+

reload​

+

To trigger a reload of the application.

+
reload: unit => unit
+

reloadWithReason​

+

To trigger a reload of the application, with a reason (of type string) which +may be useful for debugging.

+
reloadWithReason: reason => unit
+ + \ No newline at end of file diff --git a/docs/dimensions/index.html b/docs/dimensions/index.html new file mode 100644 index 0000000..3bca589 --- /dev/null +++ b/docs/dimensions/index.html @@ -0,0 +1,33 @@ + + + + + +Dimensions | ReScript React Native + + + + + + + + + + + + + +

Dimensions

Types​

+
type displayMetrics = {
width: float,
height: float,
scale: float,
fontScale: float,
}

type handler = {
screen: displayMetrics,
window: displayMetrics,
}
+

Methods​

+

get​

+
get: [#window | #screen] => displayMetrics
+
let {width, height} = Dimensions.get(#window)
+

addEventListener​

+
addEventListener: ([#change], handler => unit) => EventSubscription.t
+

useWindowDimensions​

+

React hook that updates when window dimensions change.

+
useWindowDimensions: unit => displayMetrics
+
let metrics = useWindowDimensions()
+ + \ No newline at end of file diff --git a/docs/drawerlayoutandroid/index.html b/docs/drawerlayoutandroid/index.html new file mode 100644 index 0000000..b7deb95 --- /dev/null +++ b/docs/drawerlayoutandroid/index.html @@ -0,0 +1,23 @@ + + + + + +DrawerLayoutAndroid | ReScript React Native + + + + + + + + + + + + + +

DrawerLayoutAndroid

Android-only drawer layout.

+
<DrawerLayoutAndroid
drawerWidth=300.
drawerPosition=#left
renderNavigationView={() =>
<View>
<Text> {"Menu"->React.string} </Text>
</View>}
onDrawerClose={() => Console.log("closed")}>
<Text> {"Content"->React.string} </Text>
</DrawerLayoutAndroid>
+ + \ No newline at end of file diff --git a/docs/dynamiccolorios/index.html b/docs/dynamiccolorios/index.html new file mode 100644 index 0000000..8804712 --- /dev/null +++ b/docs/dynamiccolorios/index.html @@ -0,0 +1,30 @@ + + + + + +DynamicColorIOS | ReScript React Native + + + + + + + + + + + + + +

DynamicColorIOS

DynamicColorIOS takes a single argument as an record with two keys: dark and light. These correspond to the colors you want to use for "light mode" and "dark mode" on iOS.

+

Types​

+
type t = {
dark: Color.t,
light: Color.t
}
+

Methods​

+

make​

+

make takes an record with dark and light, and returns a color corresponding to the user's dark mode configuration.

+
make: t => Color.t
+

Example​

+
open ReactNative

let labelColor = DynamicColorIOS.make({ light: "black", dark: "white" })
+ + \ No newline at end of file diff --git a/docs/easing/index.html b/docs/easing/index.html new file mode 100644 index 0000000..a02adf2 --- /dev/null +++ b/docs/easing/index.html @@ -0,0 +1,28 @@ + + + + + +Easing | ReScript React Native + + + + + + + + + + + + + +

Easing

Easing functions for animations. Type: float => float.

+

Presets​

+
Easing.linear
Easing.ease
Easing.quad
Easing.cubic
Easing.poly(4.)
Easing.sin
Easing.circle
Easing.exp
Easing.elastic(1.)
Easing.back(1.7)
Easing.bounce
Easing.bezier(0.42, 0., 1., 1.)
+

Modifiers​

+
Easing.in_(Easing.ease)
Easing.out(Easing.ease)
Easing.inOut(Easing.ease)
+

Steps​

+
Easing.step0(0.5) // int
Easing.step1(0.5)
+ + \ No newline at end of file diff --git a/docs/event/index.html b/docs/event/index.html new file mode 100644 index 0000000..4be1dfd --- /dev/null +++ b/docs/event/index.html @@ -0,0 +1,52 @@ + + + + + +Event | ReScript React Native + + + + + + + + + + + + + +

Event

These are the types of objects returned in event callbacks. Concrete aliases +(layoutEvent, pressEvent, …) are instances of SyntheticEvent / +ResponderSyntheticEvent modules.

+

nullable<'a> below is ReScript's stdlib nullable type.

+

Parametrised Types​

+

SyntheticEvent​

+
type t = {
bubbles: nullable<bool>,
cancelable: nullable<bool>,
currentTarget: float,
defaultPrevented: nullable<bool>,
dispatchConfig: registrationName,
eventPhase: nullable<float>,
isTrusted: nullable<bool>,
nativeEvent: 'payload,
target: nullable<float>,
timeStamp: float,
\"type": nullable<string>,
}
+

Helpers such as preventDefault, stopPropagation, persist, etc. are +available on the event value.

+

ResponderSyntheticEvent​

+

Same fields as SyntheticEvent, plus touchHistory.

+

Types​

+

layoutEvent​

+

nativeEvent.layout is a Layout.rectangle (x, y, width, height).

+

pressEvent​

+

Responder event whose payload includes locationX / locationY, pageX / +pageY, touches, changedTouches, etc.

+

scrollEvent​

+

Payload uses shared layout types:

+
type payload = {
contentInset: Layout.insets,
contentOffset: Layout.point,
contentSize: Layout.size,
layoutMeasurement: Layout.size,
}
+

switchChangeEvent​

+
type payload = {value: bool}
+

targetEvent​

+
type payload = {target: int}
+

textLayoutEvent​

+
type payload = {
lines: array<{
...Layout.rectangle,
ascender: float,
capHeight: float,
descender: float,
text: string,
xHeight: float,
}>,
}
+

pointerEvent​

+

W3C pointer event payload (pointerId, pointerType, coordinates, modifiers, +…). See also View.pointerEventProps.

+

blurEvent / focusEvent​

+

Payload: {target: float}.

+ + \ No newline at end of file diff --git a/docs/eventsubscription/index.html b/docs/eventsubscription/index.html new file mode 100644 index 0000000..66c321c --- /dev/null +++ b/docs/eventsubscription/index.html @@ -0,0 +1,25 @@ + + + + + +EventSubscription | ReScript React Native + + + + + + + + + + + + + +

EventSubscription

Many React Native APIs return an EventSubscription from addEventListener / +addListener. Call remove to unsubscribe.

+
type t = {remove: unit => unit}

remove: t => unit
+
React.useEffect0(() => {
let sub = AppState.addEventListener(#change(state => Console.log(state)))
Some(() => sub->EventSubscription.remove)
})
+ + \ No newline at end of file diff --git a/docs/example/index.html b/docs/example/index.html new file mode 100644 index 0000000..cb66b3f --- /dev/null +++ b/docs/example/index.html @@ -0,0 +1,72 @@ + + + + + +Example | ReScript React Native + + + + + + + + + + + + + +

Example

As soon as you +installed ReScript React Native properly +and have your ./package.json and ./rescript.json ready, you can create two +files:

+
    +
  • ./App.js: a proxy for React Native to reference your ReScript compiled +app component
  • +
  • ./src/App.res: the actual React Native entry point, in ReScript
  • +
+

If you used our template as explained in the installation guide, you should +already have these files.

+

No worries, you can copy paste this if needed without understanding the content +for now. Documentation will explain everything 😇.

+

./App.js​

+

This can be your only JavaScript file if you want to be full ReScript! It's just +a proxy to App.res.

+
/**
* Do not modify this file — it is a proxy to your `src/App.res` file.
*/
export {make as default} from './src/App.res.js';
+

./src/App.res​

+

Please directly grab the +App.res +of our template, which matches the React Native default Hello World for 0.84 +(including NewAppScreen and safe-area support).

+

Differences with React Native JavaScript​

+

Beside ReScript syntax that is a bit different from JavaScript, you may have +noticed these major differences:

+
    +
  • Modules are not imported, but opened instead (without reference to the +filesystem file) and this is due to +how modules work in ReScript +(filename must be unique),
  • +
  • Component definition must be preceded with @react.component,
  • +
  • const is not a thing in ReScript, & let is the default as ReScript has a +specific way to allow mutable variables,
  • +
  • String in JSX must be quoted and explicitly referenced as React.string (you +will find similar specific React.* helpers such as React.null, +React.array...),
  • +
  • Styles are usually created with Style.s({ ... }) and accessed with +styles["container"] (record / object field access),
  • +
  • You won't see any explicit export like in JavaScript. By default every +value defined in a ReScript module is exposed. The JS entry uses +export {make as default} from the compiled .res.js file.
  • +
+

Start this example​

+

Now let's run this example.

+

In comparison with standard React Native development, the only extra step is to +make sure you have successfully compiled App.res as App.res.js like we +explained in the usage section.

+

As soon as ReScript compilation is successful, nothing else should change for your +development process. You can normally start your React Native app via +npm run ios, npm run android or your classic web workflow +if you use react-native-web!

+ + \ No newline at end of file diff --git a/docs/flatlist/index.html b/docs/flatlist/index.html new file mode 100644 index 0000000..2a86118 --- /dev/null +++ b/docs/flatlist/index.html @@ -0,0 +1,23 @@ + + + + + +FlatList | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/geolocation/index.html b/docs/geolocation/index.html new file mode 100644 index 0000000..733750e --- /dev/null +++ b/docs/geolocation/index.html @@ -0,0 +1,29 @@ + + + + + +GeoLocation | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/global/index.html b/docs/global/index.html new file mode 100644 index 0000000..eb0052a --- /dev/null +++ b/docs/global/index.html @@ -0,0 +1,32 @@ + + + + + +Global | ReScript React Native + + + + + + + + + + + + + +

Global

This module contains various APIs & flags that are in JavaScript global scope.

+

Global.__DEV__​

+

This is the development flag known in JavaScript as just +__DEV__.

+

You can use it like this:

+
open ReactNative

let environmentText = if Global.__DEV__ {
"This is development"
}
else {
"This is production"
}
+

Global.hermesInternal​

+

This is the HermesInternal value known in JavaScript as +global.HermesInternal.

+

You can use it like this:

+
open ReactNative

let isHermes = () => Global.hermesInternal != None
+ + \ No newline at end of file diff --git a/docs/image/index.html b/docs/image/index.html new file mode 100644 index 0000000..4d2db3a --- /dev/null +++ b/docs/image/index.html @@ -0,0 +1,26 @@ + + + + + +Image | ReScript React Native + + + + + + + + + + + + + +

Image

Image.Source​

+
module Source = {
@unboxed
type t =
| Require(Packager.required)
| URISource(imageURISource)
| URISources(array<imageURISource>)
}
+
<Image
source={Image.Source.Require(Packager.require("./logo.png"))}
style={Style.s({width: 100.->dp, height: 100.->dp})}
/>

<Image
source={Image.Source.URISource({uri: "https://example.com/a.png"})}
alt="example"
/>
+

Static methods​

+
Image.getSize(~uri="https://example.com/a.png") // promise<Layout.size>

Image.getSizeWithHeaders(~uri, ~header=dict{("Authorization", "…")})

Image.prefetch(~uri)->ignore

Image.resolveAssetSource(Image.Source.Require(asset))
// => {width, height, uri}
+ + \ No newline at end of file diff --git a/docs/imagebackground/index.html b/docs/imagebackground/index.html new file mode 100644 index 0000000..b26ff91 --- /dev/null +++ b/docs/imagebackground/index.html @@ -0,0 +1,24 @@ + + + + + +ImageBackground | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/imageeditor/index.html b/docs/imageeditor/index.html new file mode 100644 index 0000000..28815a0 --- /dev/null +++ b/docs/imageeditor/index.html @@ -0,0 +1,25 @@ + + + + + +ImageEditor | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/imagepickerios/index.html b/docs/imagepickerios/index.html new file mode 100644 index 0000000..abcf936 --- /dev/null +++ b/docs/imagepickerios/index.html @@ -0,0 +1,29 @@ + + + + + +ImagePickerIOS | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..713f91c --- /dev/null +++ b/docs/index.html @@ -0,0 +1,64 @@ + + + + + +Getting Started | ReScript React Native + + + + + + + + + + + + + +

Getting Started

ReScript React Native is a safe & simple way to build +React Native apps, in +ReScript, using +ReScript React.

+

Why ReScript React Native ?​

+

By leveraging the ReScript great type system, expressive language features and +smooth interoperability with JavaScript (thanks to +ReScript, ReScript React Native provide +bindings for React Native features as components & APIs that are:

+
    +
  • Safe and statically typed
  • +
  • Simple and lean
  • +
  • Familiar and easy to insert into an existing React Native codebase
  • +
+

It is often said that writing ReactJS code feels like "just using JavaScript". +The same applies to ReScript React with ReScript React Native: you will feel +like you are "just using ReScript".

+

How to use ReScript React Native ?​

+

Like ReScript React for React, ReScript React Native is a ReScript package that exposes +bindings for React Native.

+

On your side, you write ReScript code that use the ReactNative module exposed by +rescript-react-native package that you will find on npm.

+

The current major line is 0.84, aligned with React Native 0.84, +ReScript 12, and @rescript/react 0.15. See +installation for details.

+

ReScript will compile this code to safe JavaScript that React Native can +consume like standard JavaScript.

+

Introduction

+

If you are familiar with Flow or TypeScript, you can see ReScript as the next +level of strongly typed JavaScript.

+

In short, you write safer code that will be compiled to safe JavaScript & end up +with a safer React Native app!

+

Zero-Cost​

+

What is awesome about ReScript React Native bindings is that they don't +introduce an additional cost. The JavaScript code produced by ReScript will +directly hit React & React Native JavaScript implementation, without any extra +runtime & bundle cost.

+

Using ReScript & ReScript React​

+

ReScript React Native is a package that works with +ReScript & use +ReScript React. For this reasons, +if you are unfamiliar with one of these two, we encourage you to have a look to +their documentations as soon as you don't find an answer you might have here.

+ + \ No newline at end of file diff --git a/docs/inputaccessoryview/index.html b/docs/inputaccessoryview/index.html new file mode 100644 index 0000000..917bec1 --- /dev/null +++ b/docs/inputaccessoryview/index.html @@ -0,0 +1,23 @@ + + + + + +InputAccessoryView | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/install/index.html b/docs/install/index.html new file mode 100644 index 0000000..2e19143 --- /dev/null +++ b/docs/install/index.html @@ -0,0 +1,102 @@ + + + + + +Installation | ReScript React Native + + + + + + + + + + + + + +

Installation

Depending on how you want to start with ReScript React Native, you have +different options:

+ +

All options will basically help you to have:

+ +

Below we assume you are already familiar with React Native. If you are new to +React Native, please have a quick look at the +React Native environment setup +guide in order to get the minimal requirements.

+

Create a new project with ReScript React Native​

+

React Native allows creating a new project from a template, so we made one. By +choosing this option you will get a hello world project that already includes +all the requirements.

+

Requirements:

+ +
npx @react-native-community/cli@latest init MyApp --template @rescript-react-native/template
cd MyApp
+

Then run the ReScript watcher alongside Metro:

+
npm run res:watch
npm start
+

💖 Your project is set up — you can check +how to use ReScript React Native right away!

+
+

⚠️ We don't provide yet instructions for Expo users. If you are familiar with +Expo, feel free to open +an issue +so we can discuss that.

+

If you are an Expo user, just have a look at the instructions below when your +Expo app is ready.

+

Add ReScript React Native to an existing project​

+

If you already have an existing React Native 0.84+ project, it's quick to +add ReScript React Native.

+

👉 You can decide to use ReScript React Native for certain components only as +the compilation process generates normal JavaScript.

+

Go into your project root & then install the requirements:

+
npm install rescript@^12 @rescript/react@^0.15 rescript-react-native@^0.84
+

Then create a file named rescript.json at the same level as your +package.json with the following content:

+
{
"name": "my-rescript-react-native-app",
"jsx": {
"version": 4
},
"package-specs": {
"module": "esmodule",
"in-source": true
},
"suffix": ".res.js",
"sources": [
{
"dir": "src",
"subdirs": true
}
],
"dependencies": ["@rescript/react", "rescript-react-native"]
}
+

You will also want scripts in package.json:

+
{
"scripts": {
"res:clean": "rescript clean",
"res:build": "rescript",
"res:watch": "rescript build -w",
"prepare": "rescript"
}
}
+

The main things you should notice here:

+
    +
  • JavaScript generated will use ES modules (import / export).
  • +
  • JavaScript generated files will have a .res.js extension.
  • +
  • ReScript code will be compiled from the src folder.
  • +
  • ReScript will use @rescript/react & rescript-react-native as dependencies.
  • +
+

👀 For details about this file, please refer to +ReScript Configuration documentation +if needed.

+

When it's done, you are ready to +use ReScript React Native!

+
+

Note about rescript-react-native version number​

+

We decided to try something simple for you:

+

⚛️ rescript-react-native 0.84.* means it should work with react-native +^0.84.0.

+

We keep the patch number for bindings fixes. react-native patches should not +affect our bindings. This means the last digit doesn't need to match:

+
    +
  • react-native@0.84.1 should work with rescript-react-native@0.84.0
  • +
  • react-native@0.84.0 should work with rescript-react-native@0.84.0
  • +
+

👉 In short: rescript-react-native 0.x.* means it should work with +react-native@^0.x.*.

+

Current peer dependencies for 0.84:

+
    +
  • react-native ≥ 0.84.0
  • +
  • rescript ≥ 12.0.0
  • +
  • @rescript/react ≥ 0.15.0
  • +
+ + \ No newline at end of file diff --git a/docs/interactionmanager/index.html b/docs/interactionmanager/index.html new file mode 100644 index 0000000..ac8a924 --- /dev/null +++ b/docs/interactionmanager/index.html @@ -0,0 +1,23 @@ + + + + + +InteractionManager | ReScript React Native + + + + + + + + + + + + + +

InteractionManager

Schedule work to run after animations / interactions complete.

+
InteractionManager.runAfterInteractions(() => {
// heavy work
})

let handle = InteractionManager.createInteractionHandle()
// ...
InteractionManager.clearInteractionHandle(handle)

InteractionManager.setDeadline(100.)
+ + \ No newline at end of file diff --git a/docs/keyboard/index.html b/docs/keyboard/index.html new file mode 100644 index 0000000..8e6edba --- /dev/null +++ b/docs/keyboard/index.html @@ -0,0 +1,36 @@ + + + + + +Keyboard | ReScript React Native + + + + + + + + + + + + + +

Keyboard

Types​

+
type keyboardMetrics = {
screenX: float,
screenY: float,
width: float,
height: float,
}

type eventType = [
| #keyboardWillShow
| #keyboardDidShow
| #keyboardWillHide
| #keyboardDidHide
| #keyboardWillChangeFrame
| #keyboardDidChangeFrame
]

type keyboardEvent = {
duration: float,
easing: LayoutAnimation.animationType,
endCoordinates: keyboardMetrics,
startCoordinates: keyboardMetrics,
isEventFromThisApp: bool,
}
+

Methods​

+

addListener​

+
addListener: (eventType, keyboardEvent => unit) => EventSubscription.t
+

removeAllListeners​

+
removeAllListeners: eventType => unit
+

dismiss​

+
dismiss: unit => unit
+

isVisible​

+
isVisible: unit => bool
+

metrics​

+
metrics: unit => option<keyboardMetrics>
+

scheduleLayoutAnimation​

+
scheduleLayoutAnimation: keyboardEvent => unit
+ + \ No newline at end of file diff --git a/docs/keyboardavoidingview/index.html b/docs/keyboardavoidingview/index.html new file mode 100644 index 0000000..1cdec2c --- /dev/null +++ b/docs/keyboardavoidingview/index.html @@ -0,0 +1,22 @@ + + + + + +KeyboardAvoidingView | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/layoutanimation/index.html b/docs/layoutanimation/index.html new file mode 100644 index 0000000..cadfefc --- /dev/null +++ b/docs/layoutanimation/index.html @@ -0,0 +1,70 @@ + + + + + +LayoutAnimation | ReScript React Native + + + + + + + + + + + + + +

LayoutAnimation

LayoutAnimation API offers a simpler alternative to Animated API. Instead of +directly manipulating values for various style props, it suffices to specify the +animation to be run before the next render. Specification of the animation +should happen in the reducer, before state is updated.

+

LayoutAnimation is still experimental on Android and needs to be explicitly +enabled with the UIManager method setLayoutAnimationEnabledExperimental. +However, as that method should be removed when LayoutAnimation is no longer +experimental, the external declaration for it wraps its type in option to +avoid runtime errors when that happens. LayoutAnimation may be enabled, if it +is not already enabled by default, by means of a statement such as:

+
switch UIManager.setLayoutAnimationEnabledExperimental {
| None => ()
| Some(setEnabled) => setEnabled(true)
}
+

Methods​

+
    +
  • configureNext is the method to specify the animation, takes an argument of +type layoutAnimationConfig.
  • +
+
configureNext: layoutAnimationConfig => unit
+
    +
  • configureNextWithEndCallback is a convenience function, which allows +specification of a callback function (of type unit => unit) to be run after +the animation, in addition to layoutAnimationConfig.
  • +
+
configureNextWithEndCallback: (layoutAnimationConfig, unit => unit) => unit
+

Types​

+

layoutAnimationConfig can be created with the layoutAnimationConfig +constructor

+
layoutAnimationConfig:
(
~duration: float,
~create: animationConfig=?,
~update: animationConfig=?,
~delete: animationConfig=?,
unit
) => layoutAnimationConfig
+

or by means of the helper function create

+
create:
(
~duration: float,
~_type: [
| #spring
| #linear
| #easeInEaseOut
| #easeIn
| #easeOut
| #keyboard
],
~property: [ | #opacity | #scaleX | #scaleY | #scaleXY]
) => layoutAnimationConfig
+

animationConfig can in turn be created with the animationConfig constructor

+
animationConfig:
(
~duration: float=?,
~delay: float=?,
~springDamping: float=?,
~initialVelocity: float=?,
~_type: [
| #spring
| #linear
| #easeInEaseOut
| #easeIn
| #easeOut
| #keyboard
]=?,
~property: [ | #opacity | #scaleX | #scaleY | #scaleXY]=?,
unit
) => animationConfig
+

Presets​

+

There are presets for linear, spring and easeInEaseOut transitions which +allow a very straightforward way to setup animation. Presets may either be +passed as ready-made layoutAnimationConfig to configureNext and +configureNextWithEndCallback as below

+
LayoutAnimation.configureNext(LayoutAnimation.Presets.spring)
+

or equivalently as already passed to configureNext as

+
LayoutAnimation.spring()

+

Example​

+

The example below illustrates animated transition (spring) between two views, +such as registration and login forms. Animation is specified in the reducer, as +below, before state is returned.

+
open ReactNative

let windowWidth = Dimensions.get(#window).width

type state = {register: bool}

type action = ToggleRegister

let styles = {
open Style
StyleSheet.create({
"container": s({flex: 1., flexDirection: #column}),
"screen": s({width: windowWidth->dp}),
})
}

@react.component
let make = () => {
let (state, dispatch) = React.useReducer((state, action) =>
switch action {
| ToggleRegister =>
// Animation should be specified here, before state is updated:
LayoutAnimation.configureNext(
LayoutAnimation.create(
~duration=500.,
~_type=#spring,
~property=#opacity,
),
)
// update of the state happens below:
{register: !state.register}
}
, {register: false})

<View style={styles["container"]}>
<View
style={Style.s({
flex: 1.,
width: (2.0 *. windowWidth)->dp,
left: (state.register ? 0. : 0. -. windowWidth)->dp,
flexDirection: #row,
})}>
<View style={styles["screen"]}> <Register /> </View>
<View style={styles["screen"]}> <Login /> </View>
</View>
<Button onPress={_ => dispatch(ToggleRegister)} title="Toggle" />
</View>
}
+

Note that above animation specification is that of the spring preset. +Accordingly, the animation could have been specified as

+
LayoutAnimation.configureNext(LayoutAnimation.Presets.spring)
+

or equivalently as

+
LayoutAnimation.spring()
+ + \ No newline at end of file diff --git a/docs/linking/index.html b/docs/linking/index.html new file mode 100644 index 0000000..b7118e9 --- /dev/null +++ b/docs/linking/index.html @@ -0,0 +1,66 @@ + + + + + +Linking | ReScript React Native + + + + + + + + + + + + + +

Linking

Only for projects supporting Native Code. Requires the project to have been +created using react-native init or ejected afterwards if created using +expo init or create-react-native-app.

+

Types​

+

extra​

+

To be used with sendIntent for sending text and data.

+
type extra = {key: string, value: ExtraValue.t}
+

ExtraValue.t is an unboxed variant:

+
module ExtraValue = {
type t = String(string) | Number(float) | Bool(bool)
}
+

url​

+
type url = {url: string}
+

Methods​

+

openURL​

+

To attempt opening a URL. URL should be specified as string. Promise is +resolved if the user approves the request (through the open dialog) or the +link is opened automatically. If the user rejects the request or there are no +registered applications supporting the URL, the promise is rejected. It is +recommended to use the canOpenURL method beforehand, to verify that the URL +can indeed be opened.

+
openURL: string => promise<unit>
+

canOpenURL​

+

To determine whether a URL can be opened by registered applications. URL should +be specified as string. The promise will be rejected if it is impossible to +check if the URL can be opened on Android or for iOS 9 and later, an appropriate +entry does not exist for the LSApplicationQueriesSchemes key in Info.plist.

+
canOpenURL: string => promise<bool>
+

getInitialURL​

+

Returns a nullable string wrapped in a promise. If the app was launched to open +a link, that link will be returned, otherwise null.

+
getInitialURL: unit => promise<null<string>>
+

openSettings​

+

Attempts to open the Settings app and display custom settings for the app, if +any.

+
openSettings: unit => promise<unit>
+

sendIntent​

+

To use Intent actions on Android for sending text (and optional extras) to +other apps.

+
sendIntent: (string, ~extras: array<extra>=?) => promise<unit>
+
Linking.sendIntent("android.intent.action.SEND")->ignore

Linking.sendIntent(
"android.intent.action.SEND",
~extras=[{key: "key1", value: String("test"),}],
)->ignore
+

addEventListener​

+

To specify a handler for the specified event type. Only the #url event is +supported. Returns an EventSubscription.t (call .remove() to unsubscribe).

+
addEventListener: (eventType, url => unit) => EventSubscription.t
+

Example​

+
open ReactNative
open Style

let windowHeight = Dimensions.get(#window).height
let windowWidth = Dimensions.get(#window).width

let containerStyle = s({
width: windowWidth->dp,
height: windowHeight->dp,
justifyContent: #center,
alignItems: #center,
})

type state = {url: option<string>}

type action = SetURL(option<string>)

@react.component
let make = () => {
let (state, dispatch) = React.useReducer((state, action) =>
switch action {
| SetURL(v) => {url: v}
}
, {url: None})

let handler = s => Console.warn(s.url)

let handlePromise = async url => {
try {
await Linking.openURL(url)
dispatch(SetURL(Some(url)))
} catch {
| Exn.Error(err) => Console.warn(err)
}
}

// Listener will only receive URLs which your app is
// registered to handle
// https:// resource below will not be captured here
React.useEffect0(() => {
let subscription = Linking.addEventListener(#url, handler)
Some(() => subscription.remove())
})

<View style=containerStyle>
<Text>
{state.url->Option.getOr("No URL requested")->React.string}
</Text>
<Button
onPress={_ =>
handlePromise(
"https://github.com/rescript-react-native/rescript-react-native/",
)->ignore}
title="Open Repo"
/>
// This will only work if you have registered myapp:// as
// custom URL scheme for your app
// Otherwise this will throw an error on the Yellow Box
<Button
onPress={_ => handlePromise("myapp://screen")->ignore} title="Internal URL"
/>
</View>
}
+ + \ No newline at end of file diff --git a/docs/logbox/index.html b/docs/logbox/index.html new file mode 100644 index 0000000..b6c79e5 --- /dev/null +++ b/docs/logbox/index.html @@ -0,0 +1,38 @@ + + + + + +LogBox | ReScript React Native + + + + + + + + + + + + + +

LogBox

Errors and warnings in development builds are displayed in LogBox inside your +app.

+
+

LogBox is automatically disabled in release (production) builds.

+
+

ignoreLogs​

+

Ignore logs whose message starts with one of the given prefixes (or matches a +regex).

+
ignoreLogs: array<string> => unit
ignoreLogsRegex: array<RegExp.t> => unit
+
open ReactNative

LogBox.ignoreLogs([
"Require cycle:",
"Remote debugger",
"Accessing view manager configs",
])
+

ignoreAllLogs​

+

Hide all LogBox notifications (useful for demos). Optionally pass +~ignore=false to re-enable.

+
ignoreAllLogs: (~ignore: bool=?) => unit
+
LogBox.ignoreAllLogs()
+

Ignore logs as a last resort and create a task to fix any logs that are +ignored.

+ + \ No newline at end of file diff --git a/docs/maskedviewios/index.html b/docs/maskedviewios/index.html new file mode 100644 index 0000000..4151fdb --- /dev/null +++ b/docs/maskedviewios/index.html @@ -0,0 +1,25 @@ + + + + + +MaskedViewIOS | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/modal/index.html b/docs/modal/index.html new file mode 100644 index 0000000..014a67d --- /dev/null +++ b/docs/modal/index.html @@ -0,0 +1,22 @@ + + + + + +Modal | ReScript React Native + + + + + + + + + + + + + +

Modal

let (visible, setVisible) = React.useState(() => false)

<Modal
animationType=#slide
transparent=false
visible
backdropColor="#000"
onRequestClose={_ => setVisible(_ => false)}>
<View>
<Text> {"Hello Modal"->React.string} </Text>
<Button title="Close" onPress={_ => setVisible(_ => false)} />
</View>
</Modal>
+ + \ No newline at end of file diff --git a/docs/nativeeventemitter/index.html b/docs/nativeeventemitter/index.html new file mode 100644 index 0000000..a27deb1 --- /dev/null +++ b/docs/nativeeventemitter/index.html @@ -0,0 +1,22 @@ + + + + + +NativeEventEmitter | ReScript React Native + + + + + + + + + + + + + +

NativeEventEmitter

let emitter = NativeEventEmitter.make(myNativeModule)

let sub = emitter->NativeEventEmitter.addListener("onSomething", payload => {
Console.log(payload)
})

emitter->NativeEventEmitter.listenerCount("onSomething") // int
emitter->NativeEventEmitter.removeAllListeners("onSomething")
sub->EventSubscription.remove
+ + \ No newline at end of file diff --git a/docs/nativemodules/index.html b/docs/nativemodules/index.html new file mode 100644 index 0000000..8ffe17e --- /dev/null +++ b/docs/nativemodules/index.html @@ -0,0 +1,25 @@ + + + + + +NativeModules | ReScript React Native + + + + + + + + + + + + + +

NativeModules

Prefer binding your own modules explicitly:

+
@module("react-native") @scope(("NativeModules", "MyCustomModule"))
external myFunc: unit => unit = "myFunc"
+

Low-level access also exists:

+
NativeModules.nativeModules // dict<'a>
requireNativeComponent("RCTMyView", ()) // React.component<'a>
+ + \ No newline at end of file diff --git a/docs/netinfo/index.html b/docs/netinfo/index.html new file mode 100644 index 0000000..d00e11e --- /dev/null +++ b/docs/netinfo/index.html @@ -0,0 +1,25 @@ + + + + + +NetInfo | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/packager/index.html b/docs/packager/index.html new file mode 100644 index 0000000..33b4c9e --- /dev/null +++ b/docs/packager/index.html @@ -0,0 +1,27 @@ + + + + + +Packager | ReScript React Native + + + + + + + + + + + + + +

Packager

Packager.require​

+

Packager.require is the exact same require() you know in React Native. It +returns a type Packager.required (a Metro asset id, typed as float).

+
let asset = Packager.require("./some/asset.jpg")
+

You can use this with components like Image, for example via +Image.Source.Require(asset).

+ + \ No newline at end of file diff --git a/docs/panresponder/index.html b/docs/panresponder/index.html new file mode 100644 index 0000000..d7f98b9 --- /dev/null +++ b/docs/panresponder/index.html @@ -0,0 +1,111 @@ + + + + + +PanResponder | ReScript React Native + + + + + + + + + + + + + +

PanResponder

PanResponder allows more fine-grained control of the +Gesture Responder System, +as the handlers can depend also on gestureState, in addition to the +Event.pressEvent which are passed to the Gesture Responder System handlers. +In essence, by means of a custom PanResponder, Gesture Responder System +handlers are extended to also depend upon the gestureState.

+

Types​

+

Event.pressEvent​

+

see Event

+

gestureState​

+

gestureState contains additional information on the state of the Gesture +Responder System:

+
type gestureState = {
stateID: float,
moveX: float,
moveY: float,
x0: float,
y0: float,
dx: float,
dy: float,
vx: float,
vy: float,
numberActiveTouches: int,
}
+

t​

+

Abstract type for a PanResponder, created with create from a config +record.

+

config​

+
type config = {
onMoveShouldSetPanResponder?: (Event.pressEvent, gestureState) => bool,
onMoveShouldSetPanResponderCapture?: (Event.pressEvent, gestureState) => bool,
onStartShouldSetPanResponder?: (Event.pressEvent, gestureState) => bool,
onStartShouldSetPanResponderCapture?: (Event.pressEvent, gestureState) => bool,
onPanResponderReject?: (Event.pressEvent, gestureState) => unit,
onPanResponderGrant?: (Event.pressEvent, gestureState) => unit,
onPanResponderStart?: (Event.pressEvent, gestureState) => unit,
onPanResponderEnd?: (Event.pressEvent, gestureState) => unit,
onPanResponderRelease?: (Event.pressEvent, gestureState) => unit,
onPanResponderMove?: (Event.pressEvent, gestureState) => unit,
onPanResponderTerminate?: (Event.pressEvent, gestureState) => unit,
onPanResponderTerminationRequest?: (Event.pressEvent, gestureState) => bool,
onShouldBlockNativeResponder?: (Event.pressEvent, gestureState) => bool,
}
+

panHandlers​

+

panHandlers is the abstract type for panHandlers of a PanResponder, which +can be accessed by means of the getter method panHandlers

+

callback<'a>​

+

callback<'a> is the type of the usual callback function specified for each +Gesture Responder System handler defined as

+
type callback<'a> = Event.pressEvent => 'a
+

where 'a is either bool or unit

+

Methods​

+

create​

+

create allows creation of a PanResponder given a config

+
create: config => t
+

panHandlers​

+

panHandlers is a getter method to access panHandlers within a PanResponder

+
panHandlers: t => panHandlers
+

onMoveShouldSetResponder​

+

onMoveShouldSetResponder is a getter method to access the +onMoveShouldSetResponder callback of a panHandlers object

+
onMoveShouldSetResponder: panHandlers => callback(bool)
+

onMoveShouldSetResponderCapture​

+

onMoveShouldSetResponderCapture is a getter method to access the +onMoveShouldSetResponderCapture callback of a panHandlers object

+
onMoveShouldSetResponderCapture: panHandlers => callback(bool)
+

onStartShouldSetResponder​

+

onStartShouldSetResponder is a getter method to access the +onStartShouldSetResponder callback of a panHandlers object

+
onStartShouldSetResponder: panHandlers => callback(bool)
+

onStartShouldSetResponderCapture​

+

onStartShouldSetResponderCapture is a getter method to access the +onStartShouldSetResponderCapture callback of a panHandlers object

+
onStartShouldSetResponderCapture: panHandlers => callback(bool)
+

onResponderReject​

+

onResponderReject is a getter method to access the onResponderReject +callback of a panHandlers object

+
onResponderReject: panHandlers => callback(unit)
+

onResponderGrant​

+

onResponderGrant is a getter method to access the onResponderGrant callback +of a panHandlers object

+
onResponderGrant: panHandlers => callback(unit)
+

onResponderRelease​

+

onResponderRelease is a getter method to access the onResponderRelease +callback of a panHandlers object

+
onResponderRelease: panHandlers => callback(unit)
+

onResponderMove​

+

onResponderMove is a getter method to access the onResponderMove callback of +a panHandlers object

+
onResponderMove: panHandlers => callback(unit)
+

onResponderTerminate​

+

onResponderTerminate is a getter method to access the onResponderTerminate +callback of a panHandlers object

+
onResponderTerminate: panHandlers => callback(unit)
+

onResponderStart​

+

onResponderStart is a getter method to access the onResponderStart callback +of a panHandlers object

+
onResponderStart: panHandlers => callback(unit)
+

onResponderTerminationRequest​

+

onResponderTerminationRequest is a getter method to access the +onResponderTerminationRequest callback of a panHandlers object

+
onResponderTerminationRequest: panHandlers => callback(bool)
+

onResponderEnd​

+

onResponderEnd is a getter method to access the onResponderEnd callback of a +panHandlers object

+
onResponderEnd: panHandlers => callback(unit)
+

Example​

+

As props spread is not possible with ReScript JSX for arbitrary objects, each +Gesture Responder System callback needs to be separately specified, with the +relevant value obtained by means of the associated getter.

+

While props spread may not be available, copy-paste is probably supported by +your editor...

+
onMoveShouldSetResponder={
panHandlers->PanResponder.onMoveShouldSetResponder
}
onMoveShouldSetResponderCapture={
panHandlers->PanResponder.onMoveShouldSetResponderCapture
}
onStartShouldSetResponder={
panHandlers->PanResponder.onStartShouldSetResponder
}
onStartShouldSetResponderCapture={
panHandlers->PanResponder.onStartShouldSetResponderCapture
}
onResponderReject={panHandlers->PanResponder.onResponderReject}
onResponderGrant={panHandlers->PanResponder.onResponderGrant}
onResponderRelease={panHandlers->PanResponder.onResponderRelease}
onResponderMove={panHandlers->PanResponder.onResponderMove}
onResponderTerminate={panHandlers->PanResponder.onResponderTerminate}
onResponderStart={panHandlers->PanResponder.onResponderStart}
onResponderTerminationRequest={
panHandlers->PanResponder.onResponderTerminationRequest
}
onResponderEnd={panHandlers->PanResponder.onResponderEnd}
+

Then, the custom PanResponder can be used as below:

+
open ReactNative
open Style

let windowHeight = Dimensions.get(#window).height
let windowWidth = Dimensions.get(#window).width

let containerStyle = s({
width: windowWidth->dp,
height: windowHeight->dp,
justifyContent: #center,
alignItems: #center,
})

let panResponder = PanResponder.create({
onMoveShouldSetPanResponder: (_e, _g) => true,
onPanResponderRelease: (_e, g) =>
if g.dx > 0. {
Console.warn("You swiped right")
} else {
Console.warn("You swiped left")
},
})

let panHandlers = panResponder->PanResponder.panHandlers

@react.component
let make = () =>
<View
style=containerStyle
onMoveShouldSetResponder={panHandlers->PanResponder.onMoveShouldSetResponder}
onMoveShouldSetResponderCapture={panHandlers->PanResponder.onMoveShouldSetResponderCapture}
onStartShouldSetResponder={panHandlers->PanResponder.onStartShouldSetResponder}
onStartShouldSetResponderCapture={panHandlers->PanResponder.onStartShouldSetResponderCapture}
onResponderReject={panHandlers->PanResponder.onResponderReject}
onResponderGrant={panHandlers->PanResponder.onResponderGrant}
onResponderRelease={panHandlers->PanResponder.onResponderRelease}
onResponderMove={panHandlers->PanResponder.onResponderMove}
onResponderTerminate={panHandlers->PanResponder.onResponderTerminate}
onResponderStart={panHandlers->PanResponder.onResponderStart}
onResponderTerminationRequest={panHandlers->PanResponder.onResponderTerminationRequest}
onResponderEnd={panHandlers->PanResponder.onResponderEnd}>
<Text> {"Please swipe"->React.string} </Text>
</View>
+ + \ No newline at end of file diff --git a/docs/permissionsandroid/index.html b/docs/permissionsandroid/index.html new file mode 100644 index 0000000..c420699 --- /dev/null +++ b/docs/permissionsandroid/index.html @@ -0,0 +1,47 @@ + + + + + +PermissionsAndroid | ReScript React Native + + + + + + + + + + + + + +

PermissionsAndroid

Android-only API for the runtime permissions model (Android M+). While certain +permissions are granted by default as long as they are listed in +AndroidManifest.xml, dangerous permissions require a dialog. This API helps +manage those permissions.

+

Types​

+

Permission.t​

+

Examples of available permissions (see the binding for the full list):

+
Permission.camera
Permission.recordAudio
Permission.accessFineLocation
Permission.postNotifications
Permission.readMediaImages
Permission.bluetoothConnect
// ...
+

Result.t​

+
Result.granted
Result.denied
Result.neverAskAgain
+

rationale​

+

Optional explanation dialog shown when re-requesting a permission.

+
type rationale = {
title: string,
message: string,
buttonPositive: string,
buttonNegative?: string,
buttonNeutral?: string,
}
+

dict​

+

Result map returned by requestMultiple. Values are accessed with get.

+

Methods​

+

check​

+
check: Permission.t => promise<bool>
+

request​

+

Request a single permission. Optionally pass a rationale.

+
request: (Permission.t, ~rationale: rationale=?) => promise<Result.t>
+
let result = await PermissionsAndroid.request(
PermissionsAndroid.Permission.camera,
~rationale={
title: "Camera",
message: "We need the camera to scan QR codes",
buttonPositive: "OK",
},
)
+

requestMultiple​

+
requestMultiple: array<Permission.t> => promise<dict>
+

get​

+
get: (dict, Permission.t) => option<Result.t>
+ + \ No newline at end of file diff --git a/docs/picker/index.html b/docs/picker/index.html new file mode 100644 index 0000000..b192eab --- /dev/null +++ b/docs/picker/index.html @@ -0,0 +1,26 @@ + + + + + +Picker | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/pixelratio/index.html b/docs/pixelratio/index.html new file mode 100644 index 0000000..c250d63 --- /dev/null +++ b/docs/pixelratio/index.html @@ -0,0 +1,23 @@ + + + + + +PixelRatio | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/platform/index.html b/docs/platform/index.html new file mode 100644 index 0000000..04fd041 --- /dev/null +++ b/docs/platform/index.html @@ -0,0 +1,42 @@ + + + + + +Platform | ReScript React Native + + + + + + + + + + + + + +

Platform

Platform.os​

+

React Native provides a module that detects the platform in which the app is +running. You can use the detection logic to implement platform-specific code. +Use this option when only small parts of a component are platform-specific.

+
if Platform.os === Platform.ios {
// your code
}
+

Platform.os can be

+
    +
  • Platform.ios when running on iOS
  • +
  • Platform.android when running on Android.
  • +
  • Platform.web when running on the web (via +react-native-web).
  • +
+

If you need an unsupported platform, you can use Platform.unsafe(string).

+

For conditional style depending on the platform, you can do the following:

+
open Style

let styles = StyleSheet.create({
"wrapper": s({width: (Platform.os == Platform.ios ? 100. : 200.)->pct}),
})
+

Platform.select​

+

⚠️ Unsupported.

+

This feature isn't relevant with ReScript. Instead you can do the following:

+
open Style

let styles = StyleSheet.create({
"wrapper": s({
width: switch Platform.os {
| os if os == Platform.ios => 100.
| os if os == Platform.android => 200.
| os if os == Platform.web => 250.
| os if os == Platform.unsafe("windows") => 300.
| _ => 150.
}->pct,
}),
})
+

Also since spreading things in ReScript is not supported (because of the +unsafety aspect), it's even less relevant to have this binding.

+ + \ No newline at end of file diff --git a/docs/platformcolor/index.html b/docs/platformcolor/index.html new file mode 100644 index 0000000..fd2cb96 --- /dev/null +++ b/docs/platformcolor/index.html @@ -0,0 +1,54 @@ + + + + + +PlatformColor | ReScript React Native + + + + + + + + + + + + + +

PlatformColor

Functions to access native colors on the target platform by supplying the native +color’s corresponding value.

+

PlatformColor.ios​

+

PlatformColor.ios is used to get color information from iOS UI Element Colors +(and related UIKit colors).

+
ios: array<Ios.t> => Color.t
+

Pass one or more fallbacks; the first supported value wins:

+
PlatformColor.ios([#label, #black])
+

PlatformColor.android​

+

PlatformColor.android is used to get color information from Android colors or +attributes.

+
android: array<Android.t> => Color.t
+

Colors use the full resource form (e.g. #"@android:color/primary_text_dark"). +Attributes use forms like #"?android:attr/colorPrimary".

+

You may mix colors and attributes. The first value is treated as default and the +rest as fallbacks:

+
PlatformColor.android([
#"@android:color/primary_text_dark",
#"?android:attr/colorPrimary",
])
+

See also:

+ +

PlatformColor.unsafe​

+

Depending on platform & OS version (and for Android you can have user-defined +attrs for colors), this function is used for getting platform colors from +strings.

+
unsafe: array<string> => Color.t
+

This can be any Android resource query, for example: "?attr/colorPrimary" or +"?android:attr/colorPrimary", even resources defined within your Android app. +The first value will be treated as default and the rest as fallbacks.

+
PlatformColor.unsafe(["?attr/colorPrimary", "?android:attr/colorPrimary"])
+

Example​

+
open ReactNative
open Style

let styles = StyleSheet.create({
"container": s({
color: switch Platform.os {
| os if os == Platform.android =>
PlatformColor.android([
#"@android:color/primary_text_dark",
#"?android:attr/colorPrimary",
])
| os if os == Platform.ios => PlatformColor.ios([#label])
| _ => "black"
},
}),
})
+ + \ No newline at end of file diff --git a/docs/pressable/index.html b/docs/pressable/index.html new file mode 100644 index 0000000..d9f873d --- /dev/null +++ b/docs/pressable/index.html @@ -0,0 +1,31 @@ + + + + + +Pressable | ReScript React Native + + + + + + + + + + + + + +

Pressable

Pressable is a Core Component wrapper that can detect various stages of press interactions on any of it's defined children.

+

How it works​

+

On an element wrapped by Pressable:

+
    +
  1. onPressIn is called when a press is activated.
  2. +
  3. onPressOut is called when the press gesture is deactivated.
  4. +
+

You can read more about this on the official Pressable documentation.

+

Example​

+
open ReactNative
open Style

@react.component
let make = () =>
<Pressable
onPress={_ => Console.log("Pressed")}
style={({pressed}) =>
s({backgroundColor: pressed ? "rgb(210, 230, 255)" : "white"})}>
{({pressed}) =>
<Text> {(pressed ? "Pressed!" : "Press Me")->React.string} </Text>}
</Pressable>
+ + \ No newline at end of file diff --git a/docs/progressbarandroid/index.html b/docs/progressbarandroid/index.html new file mode 100644 index 0000000..dc0d6c2 --- /dev/null +++ b/docs/progressbarandroid/index.html @@ -0,0 +1,25 @@ + + + + + +ProgressBarAndroid | ReScript React Native + + + + + + + + + + + + + +

ProgressBarAndroid

ProgressBarAndroid has been deprecated and will be removed from React Native +in the future.

+

Please refer to the +community package.

+ + \ No newline at end of file diff --git a/docs/progressviewios/index.html b/docs/progressviewios/index.html new file mode 100644 index 0000000..c47d801 --- /dev/null +++ b/docs/progressviewios/index.html @@ -0,0 +1,25 @@ + + + + + +ProgressViewIOS | ReScript React Native + + + + + + + + + + + + + +

ProgressViewIOS

ProgressViewIOS has been deprecated and will be removed from React Native in +the future.

+

Please refer to the +community package.

+ + \ No newline at end of file diff --git a/docs/pushnotificationios/index.html b/docs/pushnotificationios/index.html new file mode 100644 index 0000000..06f2424 --- /dev/null +++ b/docs/pushnotificationios/index.html @@ -0,0 +1,27 @@ + + + + + +PushNotificationIOS | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/refreshcontrol/index.html b/docs/refreshcontrol/index.html new file mode 100644 index 0000000..fedbe4b --- /dev/null +++ b/docs/refreshcontrol/index.html @@ -0,0 +1,23 @@ + + + + + +RefreshControl | ReScript React Native + + + + + + + + + + + + + +

RefreshControl

Used inside a ScrollView / list for pull-to-refresh.

+
let (refreshing, setRefreshing) = React.useState(() => false)

<ScrollView
refreshControl={
<RefreshControl
refreshing
onRefresh={() => {
setRefreshing(_ => true)
// fetch...
setRefreshing(_ => false)
}}
tintColor="#999"
/>
}>
<Text> {"Content"->React.string} </Text>
</ScrollView>
+ + \ No newline at end of file diff --git a/docs/safeareaview/index.html b/docs/safeareaview/index.html new file mode 100644 index 0000000..161fbde --- /dev/null +++ b/docs/safeareaview/index.html @@ -0,0 +1,29 @@ + + + + + +SafeAreaView | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/scrollview/index.html b/docs/scrollview/index.html new file mode 100644 index 0000000..e758420 --- /dev/null +++ b/docs/scrollview/index.html @@ -0,0 +1,35 @@ + + + + + +ScrollView | ReScript React Native + + + + + + + + + + + + + +

ScrollView

Methods​

+

scrollTo​

+

Scrolls to a given x, y offset, either immediately or with animation +(animated). On Android you may also pass duration.

+
type scrollToOptions = {
x: float,
y: float,
animated?: bool,
duration?: float,
}

scrollTo: (element, scrollToOptions) => unit
+

Example​

+
open ReactNative

@react.component
let make = () => {
let scrollViewRef = React.useRef(Nullable.null)

<ScrollView ref={scrollViewRef->Ref.value}>
<TouchableOpacity
onPress={_ =>
switch scrollViewRef.current->Nullable.toOption {
| Some(scrollView) =>
scrollView->ScrollView.scrollTo({x: 0., y: 0., animated: true})
| None => ()
}}>
<Text> {"ScrollTo 0, 0"->React.string} </Text>
</TouchableOpacity>
</ScrollView>
}
+

scrollToEnd​

+

Scrolls to the end of the ScrollView (bottom for vertical, right for +horizontal). Optional animation options:

+
type scrollToEndOptions = {animated?: bool, duration?: float}

scrollToEnd: (element, ~options: scrollToEndOptions=?) => unit
+
scrollView->ScrollView.scrollToEnd(~options={animated: true})
+

flashScrollIndicators​

+
flashScrollIndicators: element => unit
+ + \ No newline at end of file diff --git a/docs/sectionlist/index.html b/docs/sectionlist/index.html new file mode 100644 index 0000000..76cd6f9 --- /dev/null +++ b/docs/sectionlist/index.html @@ -0,0 +1,22 @@ + + + + + +SectionList | ReScript React Native + + + + + + + + + + + + + +

SectionList

type item = {id: string, title: string}
type section = {title: string, data: array<item>}

let sections = [
{title: "A", data: [{id: "1", title: "Apple"}]},
{title: "B", data: [{id: "2", title: "Banana"}]},
]

<SectionList
sections
keyExtractor={(item, _index) => item.id}
renderItem={({item}) => <Text> {item.title->React.string} </Text>}
renderSectionHeader={({section}) =>
<Text> {section.title->React.string} </Text>}
/>
+ + \ No newline at end of file diff --git a/docs/segmentedcontrolios/index.html b/docs/segmentedcontrolios/index.html new file mode 100644 index 0000000..178c420 --- /dev/null +++ b/docs/segmentedcontrolios/index.html @@ -0,0 +1,25 @@ + + + + + +SegmentedControlIOS | ReScript React Native + + + + + + + + + + + + + +

SegmentedControlIOS

SegmentedControlIOS has been deprecated and will be removed from React Native +in the future.

+

Please refer to the +community package.

+ + \ No newline at end of file diff --git a/docs/settings/index.html b/docs/settings/index.html new file mode 100644 index 0000000..7fdec82 --- /dev/null +++ b/docs/settings/index.html @@ -0,0 +1,23 @@ + + + + + +Settings | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/share/index.html b/docs/share/index.html new file mode 100644 index 0000000..a15080c --- /dev/null +++ b/docs/share/index.html @@ -0,0 +1,28 @@ + + + + + +Share | ReScript React Native + + + + + + + + + + + + + +

Share

Types​

+
type content = {
title?: string,
message?: string,
url?: string,
}

type options = {
subject?: string,
tintColor?: string,
excludedActivityTypes?: array<string>,
dialogTitle?: string,
anchor?: int,
}

type shareResult = {
action: action,
activityType: option<string>,
}
+

Constants: Share.sharedAction, Share.dismissedAction.

+

Methods​

+

share​

+
share: (content, ~options: options=?) => promise<shareResult>
+
let result = await Share.share(
{message: "Check this out", url: "https://rescript-react-native.github.io"},
~options={dialogTitle: "Share"},
)

if result.action == Share.sharedAction {
Console.log("shared")
}
+ + \ No newline at end of file diff --git a/docs/slider/index.html b/docs/slider/index.html new file mode 100644 index 0000000..ce21bd2 --- /dev/null +++ b/docs/slider/index.html @@ -0,0 +1,26 @@ + + + + + +Slider | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/snapshotviewios/index.html b/docs/snapshotviewios/index.html new file mode 100644 index 0000000..1ca8a3f --- /dev/null +++ b/docs/snapshotviewios/index.html @@ -0,0 +1,23 @@ + + + + + +SnapshotViewIOS | ReScript React Native + + + + + + + + + + + + + +

SnapshotViewIOS

This component is no longer part of modern React Native / +rescript-react-native 0.84 bindings.

+ + \ No newline at end of file diff --git a/docs/soundmanager/index.html b/docs/soundmanager/index.html new file mode 100644 index 0000000..51d765c --- /dev/null +++ b/docs/soundmanager/index.html @@ -0,0 +1,24 @@ + + + + + +SoundManager | ReScript React Native + + + + + + + + + + + + + +

SoundManager

This module is no longer part of modern React Native / rescript-react-native +0.84 bindings.

+

Use a community audio package instead if you need sound playback.

+ + \ No newline at end of file diff --git a/docs/statusbar/index.html b/docs/statusbar/index.html new file mode 100644 index 0000000..e3c762e --- /dev/null +++ b/docs/statusbar/index.html @@ -0,0 +1,25 @@ + + + + + +StatusBar | ReScript React Native + + + + + + + + + + + + + +

StatusBar

Component​

+
type barStyle = [#default | #"light-content" | #"dark-content"]
type showHideTransition = [#fade | #none | #slide]

<StatusBar
animated=true
barStyle=#"dark-content"
backgroundColor="#fff"
translucent=false
/>
+

Imperative API​

+
StatusBar.setHidden(true, #fade)
StatusBar.setBarStyle(#"light-content", true)
StatusBar.setNetworkActivityIndicatorVisible(true) // iOS
StatusBar.setBackgroundColor("blue", true) // Android
StatusBar.setTranslucent(true) // Android
StatusBar.currentHeight // Android float
+ + \ No newline at end of file diff --git a/docs/style/index.html b/docs/style/index.html new file mode 100644 index 0000000..a26cfba --- /dev/null +++ b/docs/style/index.html @@ -0,0 +1,983 @@ + + + + + +Style | ReScript React Native + + + + + + + + + + + + + +

Style

Styles accepted by most components (thanks to a style prop) are defined using +Style.s, which turns a style record into the object React Native expects. The +style names and values usually match how CSS works on the web, except names are +written using camel casing, e.g backgroundColor rather than background-color.

+

The style prop accepts values returned by Style.s({ ... }). That's the +simplest way to pass styles. You can also pass an array of styles — the last +style in the array has precedence, so you can use this to mix & inherit styles.

+

⚠️ Note that when a component grows in complexity, it is often cleaner to use +StyleSheet.create to define several styles in one +place.

+

Table of Contents​

+

Style Example​

+

Since an example is worth a thousand words...

+
open ReactNative
open Style

let styles = StyleSheet.create({
"container": s({
maxHeight: 600.->dp,
width: 80.->pct,
justifyContent: #"flex-start",
alignItems: #center,
margin: auto,
}),
"cornerThing": s({
position: #absolute,
top: 100.->dp,
right: -20.->dp,
transform: [rotate(~rotate=4.->deg)],
}),
"text": s({textTransform: #uppercase}),
})

@react.component
let make = (~isSomething) =>
<View style={styles["container"]}>
<View style={styles["cornerThing"]}>
<Text
style={arrayOption([
Some(styles["text"]),
isSomething ? Some(s({opacity: 0.05})) : None,
])}
/>
</View>
</View>
+

Style Units​

+

size​

+

size is required in various style props, to be specified as +density-independant pixels, (dp function - also known as logical pixels), +percentage (pct function) or also auto (inline string, edge case for +margin).

+

As soon as Style module is open, you can make size values in various ways:

+
    +
  • height: 10.5->dp (= height: dp(10.5))
  • +
  • width: 55.->pct (= width: pct(55.))
  • +
  • margin: auto
  • +
+

offset​

+

offset is used for shadowOffset & textShadowOffset. It is a +Layout.size record:

+
~shadowOffset={width: 4., height: 2.}
+

angle​

+

angle is used for transforms. It can be expressed in degrees (deg function) +or in radians (rad function):

+
    +
  • 20.->deg (eg: rotateX(~rotateX=20.->deg)
  • +
  • 0.5.->rad (eg: rotateZ(~rotateZ=0.5->rad)
  • +
+

Style Functions​

+

Style.s​

+

Style.s is the main constructor: pass a style record and get a Style.t +usable in a style prop.

+
open Style

let box = s({flex: 1., backgroundColor: "white", padding: 16.->dp})
+

The record can include any of the Style Props documented below:

+ +

⚠️ Passing a text-only prop like color to a View can still trigger a React +Native error at runtime — prefer only the props relevant to the component you +style.

+

Helpers​

+
    +
  • Style.array — concatenate styles (same idea as a JS style array)
  • +
  • Style.arrayOption — concatenate optional styles
  • +
  • Style.empty — empty style value
  • +
+

Style Props​

+

Layout Style Props​

+

Official documentation

+

alignContent​

+

Accepts one of the following values:

+
    +
  • #"flex-start" (default)
  • +
  • #"flex-end"
  • +
  • #center
  • +
  • #stretch
  • +
  • #"space-around"
  • +
  • #"space-between"
  • +
+

Controls how rows align in the cross direction, overriding the alignContent of +the parent.

+ +

alignItems​

+

Accepts one of the following values:

+
    +
  • #"flex-start"
  • +
  • #"flex-end"
  • +
  • #center
  • +
  • #stretch (default)
  • +
  • #baseline
  • +
+

Aligns children in the cross direction. For example, if children are flowing +vertically, alignItems controls how they align horizontally.

+ +

alignSelf​

+

Accepts one of the following values:

+
    +
  • #auto (default)
  • +
  • #"flex-start"
  • +
  • #"flex-end"
  • +
  • #center
  • +
  • #stretch
  • +
  • #baseline
  • +
+

Controls how a child aligns in the cross direction, overriding the alignItems +of the parent.

+ +

aspectRatio​

+

Accepts a float.

+

Aspect ratio controls the size of the undefined dimension of a node. Aspect +ratio is a non-standard property only available in react native and not CSS.

+
    +
  • On a node with a set width/height, aspect ratio controls the size of the unset +dimension
  • +
  • On a node with a set flex basis, aspect ratio controls the size of the node in +the cross axis if unset
  • +
  • On a node with a measure function, aspect ratio works as though the measure +function measures the flex basis
  • +
  • On a node with flex grow/shrink, aspect ratio controls the size of the node in +the cross axis if unset
  • +
  • Aspect ratio takes min/max dimensions into account
  • +
+ +

bottom​

+

Accepts a size.

+

Number of logical pixels to offset the bottom edge of this component.

+ +

direction​

+

Accepts one of the following values:

+
    +
  • #inherit (default)
  • +
  • #ltr
  • +
  • #rtl
  • +
+

direction specifies the directional flow of the user interface. The default is +#inherit, except for root node which will have value based on the current +locale.

+ +

Only for

+
    +
  • iOS
  • +
+

display​

+

Accepts one of the following values:

+
    +
  • #flex (default)
  • +
  • #none
  • +
+

Sets the display type of this component. It works similarly to display in CSS, +but only supports flex and none.

+ +

_end​

+

Accepts a size

+

When the direction is ltr, end is equivalent to right. When the direction +is rtl, end is equivalent to left. This style takes precedence over the +left and right styles.

+ +

flex​

+

Accepts a float.

+

In React Native flex does not work the same way that it does in CSS. flex is +a number rather than a string, and it works according to the Yoga +implementation.

+

When flex is a positive number, it makes the component flexible and it will be +sized proportional to its flex value. So a component with flex set to 2 will +take twice the space as a component with flex set to 1.

+

When flex is 0, the component is sized according to width and height and +it is inflexible.

+

When flex is -1, the component is normally sized according width and +height. However, if there's not enough space, the component will shrink to its +minWidth and minHeight.

+ +

flexBasis​

+

Accepts a margin.

+ +

flexDirection​

+

Accepts one of the following values:

+
    +
  • #row
  • +
  • #"row-reverse"
  • +
  • #column (default)
  • +
  • #"column-reverse"
  • +
+

flexDirection controls which directions children of a container go. row goes +left to right, column goes top to bottom, and you may be able to guess what +the other two do.

+ +

flexGrow​

+

Accepts a float.

+ +

flexShrink​

+

Accepts a float.

+ +

flexWrap​

+

Accepts one of the following values:

+
    +
  • #wrap (default)
  • +
  • #nowrap
  • +
+

flexWrap controls whether children can wrap around after they hit the end of a +flex container.

+ +

height​

+

Accepts a size.

+

sets the height of this component.

+ +

justifyContent​

+

Accepts one of the following values:

+
    +
  • #"flex-start" (default)
  • +
  • #"flex-end"
  • +
  • #center
  • +
  • #"space-around"
  • +
  • #"space-between"
  • +
  • #"space-evenly"
  • +
+

justifyContent aligns children in the main direction. For example, if children +are flowing vertically, justifyContent controls how they align vertically.

+ +

left​

+

Accepts a size.

+

number of logical pixels to offset the left edge of this component.

+ +

margin​

+

Accepts a margin.

+

Setting margin has the same effect as setting each of marginTop, +marginLeft, marginBottom, and marginRight.

+ +

marginBottom​

+

Accepts a margin.

+ +

marginEnd​

+

Accepts a margin.

+

When direction is ltr, marginEnd is equivalent to marginRight. When +direction is rtl, marginEnd is equivalent to marginLeft.

+ +

marginHorizontal​

+

Accepts a margin.

+

Setting marginHorizontal has the same effect as setting both marginLeft and +marginRight.

+ +

marginLeft​

+

Accepts a margin.

+ +

marginRight​

+

Accepts a margin.

+ +

marginStart​

+

Accepts a margin.

+

When direction is ltr, marginStart is equivalent to marginLeft. When +direction is rtl, marginStart is equivalent to marginRight.

+ +

marginTop​

+

Accepts a margin.

+ +

marginVertical​

+

Accepts a margin.

+

Setting marginVertical has the same effect as setting both marginTop and +marginBottom.

+ +

maxHeight​

+

Accepts a size.

+

maximum height for this component, in logical pixels.

+ +

maxWidth​

+

Accepts a size.

+

Maximum width for this component, in logical pixels.

+ +

minHeight​

+

Accepts a size.

+

Minimum height for this component, in logical pixels.

+ +

minWidth​

+

Accepts a size.

+

Minimum width for this component, in logical pixels.

+ +

overflow​

+

Accepts one of the following values:

+
    +
  • #visible (default)
  • +
  • #hidden
  • +
  • #scroll
  • +
+

overflow controls how children are measured and displayed. #hidden +causes views to be clipped while #scroll causes views to be measured +independently of their parents main axis.

+ +

padding​

+

Accepts a size.

+

Setting padding has the same effect as setting each of paddingTop, +paddingBottom, paddingLeft, and paddingRight.

+ +

paddingBottom​

+

Accepts a size.

+ +

paddingEnd​

+

Accepts a size.

+

When direction is ltr, paddingEnd is equivalent to paddingRight. When +direction is rtl, paddingEnd is equivalent to paddingLeft.

+ +

paddingHorizontal​

+

Accepts a size.

+

Setting paddingHorizontal is like setting both of paddingLeft and +paddingRight.

+ +

paddingLeft​

+

Accepts a size.

+ +

paddingRight​

+

Accepts a size.

+ +

paddingStart​

+

Accepts a size.

+

When direction is ltr, paddingStart is equivalent to paddingLeft. When +direction is rtl, paddingStart is equivalent to paddingRight.

+ +

paddingTop​

+

Accepts a size.

+ +

paddingVertical​

+

Accepts a size.

+

Setting paddingVertical is like setting both of paddingTop and +paddingBottom.

+ +

position​

+

Accepts one of the following values:

+
    +
  • #absolute
  • +
  • #relative (default)
  • +
+

position in React Native is similar to regular CSS, but everything is set to +relative by default, so absolute positioning is always just relative to the +parent.

+

If you want to position a child using specific numbers of logical pixels +relative to its parent, set the child to have absolute position.

+

If you want to position a child relative to something that is not its parent, +just don't use styles for that. Use the component tree.

+ + +

Accepts a size.

+

Number of logical pixels to offset the right edge of this component.

+ +

start​

+

Accepts a size.

+

When the direction is ltr, start is equivalent to left. When the direction +is rtl, start is equivalent to right.

+

This style takes precedence over the left, right, and end styles.

+ +

top​

+

Accepts a size.

+

Number of logical pixels to offset the top edge of this component.

+ +

width​

+

Accepts a size.

+

Sets the width of this component.

+ +

zIndex​

+

Accepts an int.

+

zIndex controls which components display on top of others. Normally, you don't +use zIndex. Components render according to their order in the document tree, +so later components draw over earlier ones. zIndex may be useful if you have +animations or custom modal interfaces where you don't want this behavior.

+

It works like the CSS z-index property - components with a larger zIndex +will render on top. Think of the z-direction like it's pointing from the phone +into your eyeball.

+ +

Shadow Style Props​

+

Official documentation

+

Use elevation style props for Android.

+

shadowColor​

+

Accepts a Color.t (string).

+

Sets the drop shadow color

+

Only for

+
    +
  • iOS
  • +
+

You can see it as CSS box-shadow color

+ +

shadowOffset​

+

Accepts an offset.

+

Sets the drop shadow offset

+

Only for

+
    +
  • iOS
  • +
+

You can see it as CSS box-shadow offsets

+ +

shadowOpacity​

+

Accepts a float.

+

Sets the drop shadow opacity (multiplied by the color's alpha component)

+

Only for

+
    +
  • iOS
  • +
+

You can see it as CSS box-shadow color alpha value

+ +

shadowRadius​

+

Accepts a float.

+

Sets the drop shadow blur radius

+

Only for

+
    +
  • iOS
  • +
+

You can see it as CSS box-shadow blur radius

+ +

Transform Style Props​

+

Official documentation

+

⚠️ We only included transform prop as other have been deprecated.

+

transform​

+

Accepts an array of transform.

+

Keep in mind that order or transformation matters.

+
    +
  • perspective(~perspective=float)
  • +
  • rotate(~rotate=angle)
  • +
  • rotateX(~rotateX=angle)
  • +
  • rotateY(~rotateY=angle)
  • +
  • rotateZ(~rotateZ=angle)
  • +
  • scale(~scale=float)
  • +
  • scaleX(~scaleX=float)
  • +
  • scaleY(~scaleY=float)
  • +
  • translateX(~translateX=size)
  • +
  • translateY(~translateY=size)
  • +
  • skewX(~skewX=angle)
  • +
  • skewY(~skewY=angle)
  • +
+
Transform Examples​
+
Transform with multiple transform​
+
open Style

s({
transform: [
perspective(~perspective=1000.),
rotateX(~rotateX=20.->deg),
rotateZ(~rotateZ=0.5->rad),
scale(~scale=0.95),
],
})
+
Transform with an animated value​
+
open Style

s({
transform: [
rotateY(
~rotateY={
open Animated.Interpolation
scrollYAnimatedValue->interpolate(
config(
~inputRange=[0., 200.],
~outputRange=["-10deg", "-14deg"]->fromStringArray,
~extrapolateLeft=#clamp,
~extrapolate=#identity,
~extrapolateRight=#extend,
),
)
}->Animated.StyleProp.angle,
),
scale(
~scale={
open Animated.Interpolation
scrollYAnimatedValue->interpolate(
config(
~inputRange=[0., 200.],
~outputRange=[0.8, 0.75]->fromFloatArray,
),
)
}->Animated.StyleProp.float,
),
],
})
+

If you need something unsupported by this binding, you can use +unsafeTransform.

+
open Style

s({transform: [unsafeTransform({"translateZ": "0"})]})
+

View Style Props​

+

Official documentation

+

backfaceVisibility​

+

Accepts one of the following values:

+ +

backgroundColor​

+

Accepts a Color.t (string).

+ +

borderBottomColor​

+

Accepts a Color.t (string).

+ +

borderBottomEndRadius​

+

Accepts a float.

+

When direction is ltr, borderBottomEndRadius is equivalent to +borderBottomRightRadius. When direction is rtl, borderBottomEndRadius is +equivalent to borderBottomLeftRadius.

+

borderBottomLeftRadius​

+

Accepts a float.

+ +

borderBottomRightRadius​

+

Accepts a float.

+ +

borderBottomStartRadius​

+

Accepts a float.

+

When direction is ltr, borderBottomStartRadius is equivalent to +borderBottomLeftRadius. When direction is rtl, borderBottomStartRadius is +equivalent to borderBottomRightRadius.

+

borderBottomWidth​

+

Accepts a float.

+ +

borderColor​

+

Accepts a Color.t (string).

+ +

borderEndColor​

+

Accepts a Color.t (string).

+

When direction is ltr, borderEndColor is equivalent to borderRightColor. +When direction is rtl, borderEndColor is equivalent to borderLeftColor.

+

borderEndWidth​

+

Accepts a float.

+

When direction is ltr, borderEndWidth is equivalent to borderRightWidth. +When direction is rtl, borderEndWidth is equivalent to borderLeftWidth.

+

borderLeftColor​

+

Accepts a Color.t (string).

+ +

borderLeftWidth​

+

Accepts a float.

+ +

borderRadius​

+

Accepts a float.

+

Rounds the corners of an element's outer border edge.

+ +

borderRightColor​

+

Accepts a Color.t (string).

+ +

borderRightWidth​

+

Accepts a float.

+ +

borderStartColor​

+

Accepts a Color.t (string).

+

When direction is ltr, borderStartColor is equivalent to borderLeftColor. +When direction is rtl, borderStartColor is equivalent to borderRightColor.

+

borderStartWidth​

+

Accepts a float.

+

When direction is ltr, borderStartWidth is equivalent to borderLeftWidth. +When direction is rtl, borderStartWidth is equivalent to borderRightWidth.

+

borderStyle​

+

Accepts one of the following values:

+
    +
  • +

    #solid (default)

    +
  • +
  • +

    #dotted

    +
  • +
  • +

    #dashed

    +
  • +
  • +

    Web reference

    +
  • +
+

borderTopColor​

+

Accepts a Color.t (string).

+ +

borderTopEndRadius​

+

Accepts a float.

+

When direction is ltr, borderTopEndRadius is equivalent to +borderTopRightRadius. When direction is rtl, borderTopEndRadius is +equivalent to borderTopLeftRadius.

+

borderTopLeftRadius​

+

Accepts a float.

+ +

borderTopRightRadius​

+

Accepts a float.

+ +

borderTopStartRadius​

+

Accepts a float.

+

When direction is ltr, borderTopStartRadius is equivalent to +borderTopLeftRadius. When direction is rtl, borderTopStartRadius is +equivalent to borderTopRightRadius.

+

borderTopWidth​

+

Accepts a float.

+ +

borderWidth​

+

Accepts a float.

+ +

elevation​

+

Accepts a float.

+

Sets the elevation of a view, using Android's underlying +elevation API. +This adds a drop shadow to the item and affects z-order for overlapping views. +Only supported on Android 5.0+, has no effect on earlier versions.

+

Only for

+
    +
  • Android
  • +
+

Use shadow* style props for iOS.

+

opacity​

+

Accepts a float.

+ +

Text Style Props​

+

color​

+

Accepts a Color.t (string).

+ +

fontFamily​

+

Accepts a string.

+ +

fontSize​

+

Accepts a float.

+ +

fontStyle​

+

Accepts one of the following values:

+ +

fontVariant​

+

Accepts an array of FontVariant.t.

+ +

fontWeight​

+

Accepts one of the following values:

+
    +
  • +

    `normal (default)

    +
  • +
  • +

    `bold

    +
  • +
  • +

    `_100

    +
  • +
  • +

    `_200

    +
  • +
  • +

    `_300

    +
  • +
  • +

    `_400

    +
  • +
  • +

    `_500

    +
  • +
  • +

    `_600

    +
  • +
  • +

    `_700

    +
  • +
  • +

    `_800

    +
  • +
  • +

    `_900

    +
  • +
  • +

    Web reference

    +
  • +
+

includeFontPadding​

+

Accepts a bool.

+

letterSpacing​

+

Accepts a float.

+ +

lineHeight​

+

Accepts a float.

+

Only accepts logical pixels.

+ +

textAlign​

+

Accepts one of the following values:

+
    +
  • +

    #auto (default)

    +
  • +
  • +

    #left

    +
  • +
  • +

    #right

    +
  • +
  • +

    #center

    +
  • +
  • +

    #justify

    +
  • +
  • +

    Web reference

    +
  • +
+

textAlignVertical​

+

Accepts one of the following values:

+
    +
  • #auto (default)
  • +
  • #top
  • +
  • #bottom
  • +
  • #center
  • +
+

textDecorationColor​

+

Accepts a Color.t (string).

+ +

textDecorationLine​

+

Accepts one of the following values:

+
    +
  • +

    #none (default)

    +
  • +
  • +

    #underline

    +
  • +
  • +

    #"line-through"

    +
  • +
  • +

    #"underline line-through"

    +
  • +
  • +

    Web reference

    +
  • +
+

textDecorationStyle​

+

Accepts one of the following values:

+
    +
  • +

    #solid

    +
  • +
  • +

    #double

    +
  • +
  • +

    #dotted

    +
  • +
  • +

    #dashed

    +
  • +
  • +

    Web reference

    +
  • +
+

textShadowColor​

+

Accepts a Color.t (string).

+

You can see it as CSS text-shadow blur radius.

+ +

textShadowOffset​

+

Accepts an offset.

+

You can see it as CSS text-shadow offsets.

+ +

textShadowRadius​

+

Accepts a float.

+

You can see it as CSS text-shadow blur radius.

+ +

textTransform​

+

Accepts one of the following values:

+
    +
  • +

    #none (default)

    +
  • +
  • +

    #uppercase

    +
  • +
  • +

    #lowercase

    +
  • +
  • +

    #capitalize

    +
  • +
  • +

    Web reference

    +
  • +
+

writingDirection​

+

Accepts one of the following values:

+
    +
  • #auto (default)
  • +
  • #ltr
  • +
  • #rtl
  • +
+

Image Style Props​

+

resizeMode​

+

Accepts one of the following values:

+
    +
  • #cover
  • +
  • #contain
  • +
  • #stretch
  • +
  • #repeat
  • +
  • #center
  • +
+

Similar to CSS background-size values

+ +

overlayColor​

+

Accepts a Color.t (string).

+

tintColor​

+

Accepts a Color.t (string).

+

Unsafe Style Props​

+

⚠️ Use only as an escape hatch. Don't overuse these functions.

+

In case you want to use something unsupported by this binding, you can use +unsafeAddStyle & unsafeStyle.

+

For example, if you want to use position: fixed on the web, you can do the +following

+
open Style

unsafeStyle({"position": "fixed", "top": "5em", "left": 0, "right": 0})
+

If you only want to add some properties to a safe style, you can also do

+
open Style

s({left: 0.->dp, right: 0.->dp})->unsafeAddStyle({
"position": "fixed",
"top": "5em",
})
+
+

Style Helpers​

+

Style.array​

+

Accepts an array of styles as a single style.

+
<View style={Style.array([styles["thing"], styles["whatever"]])} />
+

Style.arrayOption​

+

Accepts an array of optional styles as a single style.

+
open Style

<View
style={arrayOption([
Some(styles["thing"]),
Some(styles["whatever"]),
optionalStyle,
cond ? Some(s({opacity: 0.5})) : None,
])}
/>
+ + \ No newline at end of file diff --git a/docs/stylesheet/index.html b/docs/stylesheet/index.html new file mode 100644 index 0000000..70ab824 --- /dev/null +++ b/docs/stylesheet/index.html @@ -0,0 +1,64 @@ + + + + + +StyleSheet | ReScript React Native + + + + + + + + + + + + + +

StyleSheet

StyleSheet mainly has a method to create an object containing many +styles, similar to a CSS StyleSheet. This is helpful to keep style definitions +at fewer locations, away from the render function. Separating concerns in your +code in this manner should help readability. Named styles might also help +differentiate between your components. Finally, allowing components to refer to +styles by ID, it also reduces the amount of data transferred over the JS bridge.

+

There is also a flatten method to merge multiple styles into a +single style and several constants for commonly used style +definitions.

+

Methods​

+

create​

+

Takes and returns an object with string keys and Style.t values. +Individual styles can be accessed with styles["name"].

+

Note that using Style.array to pass array<Style.t> is illegal within a +StyleSheet, even though arrays are valid style props for components. You +may, however, use the flatten method to convert array<Style.t> +into a valid Style.t value.

+
create: ({..} as 'a) => ({..} as 'a)
+

flatten​

+

Takes an array of styles (of type Style.t) and returns a single style (also of +type Style.t). Creates a Style.t value which is valid in a StyleSheet.

+
flatten: array<Style.t> => Style.t
+

Constants​

+

hairlineWidth​

+

To ensure the resulting line will look sharp, this specifies an integer number +of pixels which should approximate the standard thickness of a thin line on the +platform given the screen density.

+
hairlineWidth: float
+

absoluteFill​

+

This is the style

+
{
position: 'absolute',
left: 0,
right: 0,
top: 0,
bottom: 0
}
+

which is frequently used to create overlays. A common use is to add these props +to a style using the spread operator (...), but as ReScript does not allow the +operator when fields are not explicitly set, you may use the flatten method +instead.

+
absoluteFill: Style.t
+

absoluteFillObject​

+

This is identical to absoluteFill when used with pure functions.

+
absoluteFillObject: Style.t
+

Example​

+

Please also see the example in documentation of the +Style API.

+
open ReactNative
open Style

let borderStyle = s({borderWidth: StyleSheet.hairlineWidth})

let styles = StyleSheet.create({
// style may be defined inline
"container": s({flex: 1., flexDirection: #column}),
"screen": s({width: windowWidth->dp}),
// or already defined elsewhere
"borderStyle": borderStyle,
"overlay": StyleSheet.absoluteFill,
})

let flatStyle = StyleSheet.flatten([styles["container"], styles["screen"]])
+ + \ No newline at end of file diff --git a/docs/switch/index.html b/docs/switch/index.html new file mode 100644 index 0000000..670e706 --- /dev/null +++ b/docs/switch/index.html @@ -0,0 +1,22 @@ + + + + + +Switch | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/text/index.html b/docs/text/index.html new file mode 100644 index 0000000..668a11e --- /dev/null +++ b/docs/text/index.html @@ -0,0 +1,23 @@ + + + + + +Text | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/textinput/index.html b/docs/textinput/index.html new file mode 100644 index 0000000..fe762bd --- /dev/null +++ b/docs/textinput/index.html @@ -0,0 +1,24 @@ + + + + + +TextInput | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/timepickerandroid/index.html b/docs/timepickerandroid/index.html new file mode 100644 index 0000000..3874335 --- /dev/null +++ b/docs/timepickerandroid/index.html @@ -0,0 +1,25 @@ + + + + + +TimePickerAndroid | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/toastandroid/index.html b/docs/toastandroid/index.html new file mode 100644 index 0000000..9fc2351 --- /dev/null +++ b/docs/toastandroid/index.html @@ -0,0 +1,32 @@ + + + + + +ToastAndroid | ReScript React Native + + + + + + + + + + + + + +

ToastAndroid

Android-only toast messages.

+

Constants​

+
ToastAndroid.short // duration
ToastAndroid.long

ToastAndroid.top // gravity
ToastAndroid.bottom
ToastAndroid.center
+

Methods​

+

show​

+
show: (string, duration) => unit
+
ToastAndroid.show("Saved", ToastAndroid.short)
+

showWithGravity​

+
showWithGravity: (string, duration, gravity) => unit
+

showWithGravityAndOffset​

+
showWithGravityAndOffset: (
string,
duration,
gravity,
~xOffset: float,
~yOffset: float,
) => unit
+ + \ No newline at end of file diff --git a/docs/toolbarandroid/index.html b/docs/toolbarandroid/index.html new file mode 100644 index 0000000..0db643a --- /dev/null +++ b/docs/toolbarandroid/index.html @@ -0,0 +1,26 @@ + + + + + +ToolbarAndroid | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/touchablehighlight/index.html b/docs/touchablehighlight/index.html new file mode 100644 index 0000000..94dc274 --- /dev/null +++ b/docs/touchablehighlight/index.html @@ -0,0 +1,25 @@ + + + + + +TouchableHighlight | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/touchablenativefeedback/index.html b/docs/touchablenativefeedback/index.html new file mode 100644 index 0000000..b28009e --- /dev/null +++ b/docs/touchablenativefeedback/index.html @@ -0,0 +1,26 @@ + + + + + +TouchableNativeFeedback | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/touchableopacity/index.html b/docs/touchableopacity/index.html new file mode 100644 index 0000000..e3971f4 --- /dev/null +++ b/docs/touchableopacity/index.html @@ -0,0 +1,25 @@ + + + + + +TouchableOpacity | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/touchablewithoutfeedback/index.html b/docs/touchablewithoutfeedback/index.html new file mode 100644 index 0000000..1305b1e --- /dev/null +++ b/docs/touchablewithoutfeedback/index.html @@ -0,0 +1,25 @@ + + + + + +TouchableWithoutFeedback | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/uimanager/index.html b/docs/uimanager/index.html new file mode 100644 index 0000000..f93c291 --- /dev/null +++ b/docs/uimanager/index.html @@ -0,0 +1,23 @@ + + + + + +UIManager | ReScript React Native + + + + + + + + + + + + + +

UIManager

// Android experimental layout animations
switch UIManager.setLayoutAnimationEnabledExperimental {
| Some(enable) => enable(true)
| None => ()
}

UIManager.setJSResponder(reactTag, true)
UIManager.clearJSResponder()
+

Popup menu constants (Android): UIManager.itemSelected, UIManager.dismissed.

+ + \ No newline at end of file diff --git a/docs/usage/index.html b/docs/usage/index.html new file mode 100644 index 0000000..e422aa0 --- /dev/null +++ b/docs/usage/index.html @@ -0,0 +1,101 @@ + + + + + +Usage | ReScript React Native + + + + + + + + + + + + + +

Usage

When rescript, @rescript/react and rescript-react-native are installed, you +can run:

+
npm run res:build
+

⚠️ If this process looks fast to you, don't be surprised — ReScript is fast!

+

This command compiles all .res files to their .res.js counterparts.

+

This means if you have an src/App.res file, you should now have src/App.res.js +as well.

+

You may also notice some compilation artifacts:

+
    +
  • lib/
  • +
  • *.res.js / *.res.js.map
  • +
  • .bsb.lock (legacy lock file name still used by some tooling)
  • +
+

You may want to gitignore these:

+
lib/
*.res.js
*.res.js.map
.bsb.lock
+

If you used our template, this should already be done.

+

Automate compilation of *.res files​

+

You have multiple ways to avoid thinking about compilation for your daily +workflow.

+

Compile ReScript files via IDE​

+

To get the best development experience possible, we recommend +VSCode with the +ReScript plugin.

+

⚠️ If you don’t want to use VSCode, we still recommend you +get a ReScript editor plugin.

+

🎉 By having an IDE that handles ReScript compilation, you will not have to run a +command in the terminal for day-to-day edits & can follow the standard +React Native workflow, your ReScript files being compiled to JavaScript.

+

You will also have inline errors & more features than a pure CLI workflow.

+

VS Code workflow​

+

When you open VS Code with the ReScript plugin, you won't have to do anything. +The plugin will detect ReScript & will offer you to handle compilation by just clicking a button.

+

VSCode ReScript plugin

+

⛑ Even if you decide to use VS Code or a similar IDE to ease your day to day +development workflow, you should have a look at the CLI workflow so you know how it +works.

+

Compile ReScript files via CLI​

+

When you use React Native, you usually always have a terminal opened with +Metro Bundler running, which bundles the JavaScript files.

+

You also need a process watching your ReScript files to compile them to +JavaScript. The easiest way is to rely on ReScript's watch option -w:

+
npm run res:watch
+

If you are not familiar with ReScript you should know that you might +sometimes have weird compilation errors due to outdated build artifacts. This +should not happen often but if you face something weird, try cleaning:

+
npm run res:clean
+

Recommended package.json scripts (already included in the template):

+
{
"scripts": {
"res:clean": "rescript clean",
"res:build": "rescript",
"res:watch": "rescript build -w",
"start": "react-native start",
"ios": "react-native run-ios",
"android": "react-native run-android"
}
}
+

CLI Development workflow​

+

In one terminal:

+
npm run res:watch
+

As soon as .res files are being compiled to .res.js, you can start Metro and +the app:

+

In another terminal:

+
npm start
+

Then, in a third terminal (or after Metro is up):

+
npm run ios
+

or

+
npm run android
+

These commands should open a simulator/emulator & start React Native +Metro. Metro serves the compiled ReScript +code to the React Native client.

+

Now you can start coding by editing files in src/!

+

Read more about starting the project in your environment of choice.

+

Note: as soon as you have the app installed in a simulator/emulator, you can +just run

+
npm start
+

alongside npm run res:watch. This avoids rebuilding the entire native parts & +will just start Metro.

+
+

Interoperability with JavaScript​

+

Using JavaScript components from ReScript​

+

Check out +ReScript Import from/Export to JS.

+

You can also browse the source of +rescript-react-native +because that's exactly what this project is doing!

+

Using ReScript React Native components from JavaScript​

+

Check out +ReScript Import from/Export to JS.

+ + \ No newline at end of file diff --git a/docs/vibration/index.html b/docs/vibration/index.html new file mode 100644 index 0000000..f8a5458 --- /dev/null +++ b/docs/vibration/index.html @@ -0,0 +1,30 @@ + + + + + +Vibration | ReScript React Native + + + + + + + + + + + + + +

Vibration

Types​

+
@unboxed
type pattern = Number(int) | Array(array<int>)
+

Methods​

+

vibrate​

+
vibrate: (~pattern: pattern=?, ~repeat: bool=?) => unit
+
Vibration.vibrate()
Vibration.vibrate(~pattern=Number(400))
Vibration.vibrate(~pattern=Array([0, 500, 200, 500]), ~repeat=true)
+

cancel​

+

Stop a repeating vibration.

+
cancel: unit => unit
+ + \ No newline at end of file diff --git a/docs/view/index.html b/docs/view/index.html new file mode 100644 index 0000000..186116f --- /dev/null +++ b/docs/view/index.html @@ -0,0 +1,25 @@ + + + + + +View | ReScript React Native + + + + + + + + + + + + + +

View

The most fundamental building block. Accepts layout / view style props via +Style.s, accessibility props, gesture responder handlers, and +W3C pointer events (onPointerDown, …).

+
open ReactNative
open Style

<View
style={s({flex: 1., padding: 16.->dp, backgroundColor: "white"})}
onPointerDown={_ => Console.log("pointer down")}>
<Text> {"Hello"->React.string} </Text>
</View>
+ + \ No newline at end of file diff --git a/docs/viewpagerandroid/index.html b/docs/viewpagerandroid/index.html new file mode 100644 index 0000000..c1cfdd5 --- /dev/null +++ b/docs/viewpagerandroid/index.html @@ -0,0 +1,25 @@ + + + + + +ViewPagerAndroid | ReScript React Native + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/docs/virtualizedlist/index.html b/docs/virtualizedlist/index.html new file mode 100644 index 0000000..b2727de --- /dev/null +++ b/docs/virtualizedlist/index.html @@ -0,0 +1,27 @@ + + + + + +VirtualizedList | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/virtualizedsectionlist/index.html b/docs/virtualizedsectionlist/index.html new file mode 100644 index 0000000..b50295c --- /dev/null +++ b/docs/virtualizedsectionlist/index.html @@ -0,0 +1,25 @@ + + + + + +VirtualizedSectionList | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/webview/index.html b/docs/webview/index.html new file mode 100644 index 0000000..86a732a --- /dev/null +++ b/docs/webview/index.html @@ -0,0 +1,25 @@ + + + + + +WebView | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/yellowbox/index.html b/docs/yellowbox/index.html new file mode 100644 index 0000000..4da7ba3 --- /dev/null +++ b/docs/yellowbox/index.html @@ -0,0 +1,34 @@ + + + + + +YellowBox | ReScript React Native + + + + + + + + + + + + + +

YellowBox

+

YellowBox has been replaced by LogBox. Prefer LogBox in +modern React Native apps.

+
+

Warning messages used to be displayed in white on a yellow background +(YellowBox). Warnings may be triggered with Console.warn.

+

Methods​

+

ignoreWarnings​

+

Allows setting an array of prefixes to be ignored; any warning message which +begins with a string in that array will not be displayed.

+
ignoreWarnings: array<string> => unit
+

Example​

+
YellowBox.ignoreWarnings([
"Possible Unhandled Promise Rejection",
"Remote debugger",
])
+ + \ No newline at end of file diff --git a/favicon-16x16.png b/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..ec8d66a00ca958ad2668bf0d9aae3cc2147e9422 GIT binary patch literal 655 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`x9R#$a9nC2}GJC8?;Dtq+Rj$zVG$uj=;=tu07#1+^){jiwWW|l+$raGK8omKZz>gd*0K~q1?nQfeSs_{@ZyW86pFBJuqpZzsh_Ih!$=+4ZU z&NFq>FS*>F$9r7v=cC^3`=kr94zuU3ydoQV#Wq;DysT5=;Wr{02rjIC9V-ADTyVi zR>?)FK#IZ0z{o(?&`{UVJjBq*%Fx8hz(m`?(8|DIZ*!YAiiX_$l+3hB+#1f@vzrdo z5MC7$Q4*9`u24{vpO%@Es!&o{kgAYbP?F5RP%-E6CmxQ%Fb$1U{-@7)J`G}ER_4}A z<`z~K_MR-lEUe(tU~)KxS$T7a!s#1VP8>ONMCJ(l=?0GlUV03##05(}IhjrcTEXDy L>gTe~DWM4fT4nu) literal 0 HcmV?d00001 diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..b80b8e06570c213d09aa44b280d2080e0b727942 GIT binary patch literal 1232 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-G$+Qd;gjJKpuOE zr>`sf6K+8sK32>2OS>2tm`gof978;g&z)NBb2U}sxV^oGgVmf5MivSJ$8Vo=d^_)M z( zZj%1t%T2ewhw^P;Nnoqam$2E%KbbL=$MUY`r;KHjWbC|Wo(jxTI>;d^raL7entO#( zzo1jiu}GE(on=#wE-^k)wySUrU$_0qp4%%;3=S+`vT4rpjAauwq$50y)j5Lu=J&R| zWl6S(|5qk^HK%yqdfTiEd2c75uekFohF@jbLzDSobI;CNE?*MpYIfdT%U8jpXxWrw z5pU-BHC&c?9D2v_zDA}W11HPj9UB-ntWfDMzuDHUt1`QS?Jy^cx#iiqXAjib_3f@* za@L)2mMiU|tGxZghtvP7c_i8SZ|bRH+n|wVe%FWLq>h4voS@B*7ti?h3=F3(XqdjE z+s}$K$lrATC&tHW)6V4NJu5vG>C9#QV%bD*LoUTFKJi(z^Ms?8yV))&``Hqsb>%G@so%Hq#E^0T^VXK_6w&%0q?uz>z+vneTZGKs|#n*39Urknr!I5(_ zzO_HD|GAa(&0o7idb2zpOSUELGjUt~!lCT5(atl5&s+B#_G}6XOtH!1N?tF&|KNnT zhZj!2UwO7>m4Cq;{}~Ck))`MN5>ItrczMKK=a%NS>SuwjjNzPx6N;Zje-AztlxA?C z%*n6Gctc~sqlA-T%U+)Sk+3uLW-$9{4aS0v|Lgm=>HnLn>1}c51aI?ki&J+e&)l(c zLG#AUX5~4G2Yedp8T#tH&ngAXGy&#G)e_f;l9a@fRIB8oR3OD*WME{VYiOuzXdYr{ zWMyb#WnijpU}$AvApNCxK8l9i{FKbJO57Txlq$-qD z7Nja<7L+72FjUNW{E3I7Fib<^l>g~7o=<}qn3cKplDUPIg}o<>FbgZVG?*MtVOHK8 sqHy}gl@mwK9FaM~e!9V9ftMb`D{;Y+Pfn&&fmSehy85}Sb4q9e0262uZ~y=R literal 0 HcmV?d00001 diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..595be019ec5aa083f838cbb12303fa90c674342f GIT binary patch literal 15086 zcmeI33Aj#G7l1!=WR?;Qmyk+G(P(I(RGJ5+0i{P$nkNlcNhOquq(Kx(6U`;Mex>q@ zq=X_v3K@R$Z2jw9wZ6_ho$q|#b+7b4&wrk0-F?2j_t|^xwb#7&O(Y5>iX<8|NNAar z7*Q*cXq-qSvag}oddy(dEF>P<6Fi2sp z!d3;@MX*ihU7#>jp@l*Tg}A4xHuh0iqOhxQPBrfe#c7~Ib%m&>jaE)p*shRjjDJG? zbj7cuLhz}gKPD*r6Y$FfhiQsyjXxGpSj(ROL%93;;HBaUjT9E<75^edib(nL<)vc9 zic-9IaUV0|vRJWVQlUZxgQ7)?X8c_M&t>}FQlWRCE~9bk*RLJ0RPoFOD zzWc6RfBp4RqecxWRH#tw82j$KuUvig)iQeYX!+)wZwy|1@kKf6sH0-POM&AMt)H5r zEpogD4I0Rd88c+=+`01DV~@$*ci%0{|KpE8%Iw**< zY%$qRH*e|ErHzNOv$NBVoo=jD?YG==i%gj^#q?&XKGdIb$|>^m&p*q{FTZShYRQr% za=`@`#NxHvZo3)ZAs=yL=cnzu>#j4|jidizhaD!fX3a8L+-tABY^|&VxoO(8X-eFX z+ldn=%6<3Um$FZOaOc~LFTU9H9J(fItiAW%TR!>Z6Zz_^uLPaqeX3QfX0)9=d9v9E zuMd`c?zyMwR%jHgFUWW3hmJVrm}6`X^l9bFmF3`r50>W5o14sT+qTW@+5Pw5FTHy8 zl1CnSM0)h-VKPh`vV7u+CraJAb%p(L+l`Ke=gvCoteu8`&6+i3{`~pUzkh$*XY4Mv zj5V!Ww@x;1-YmcT@{8HBnKNe^J+W83qg%jl)22-(*NYb~w)zi0{7@cz@IhNA<1}p8 zu)y($#%JwSB=31AI>%>mM>? zh<(q#V7p&=#vjRf9IWd1l>jd{PGU-!jDs@PBj`sZ}=PeJn+B+%@*N%4Hz)M zu4^KNMwwL`trc0JAY5o$rADO`hzxn2yvS`sFqtETP-@ZfZz>Z=oKmGJm!5?_^ z(MQc60M}DbJym}D?Kk6L=+mlID_OB(h1_=AZGXWXTO0HfoSq#!c9d1CR+&Daj&;LN zmt1m*(FEV5XV0Ey!;$&ZPd`0!93L-Of_vMxZH)%d0(}^?`Pf!?x=)`zf=@PP%ow8^ z`oqV8uIT%rLx&1H#@f(9-p+R)eDHzbQ?SQ(+;NA@n>SAmIN*R}AMn7=;~Qc>I(P1z z(HfvT`}f2XPZ)kaXRyTY#16B+D_5>G+3eaGw<3{o4qmMq4efHTWi64H^ z^5x3~dkf!yXVhMmDpkt#7i&nTn@W@@VSeI-2@@iHV8^jpvu5VotX;d->{OXDWs-O` zZrs@T>4g_wkc%$5$oRz9(5+jyWIyJ@mql;EOL4g2TfF`D+cJLq_>?pSx2&uz>7N5?sY#j$RpT1@c-hAFD#A>;}iUS#T8eW z-U!AW!FJy9q27AyE!!vJ+Hkx7#t!2fv-jw0_Sf6c@x)@phu2@r&ez6$$A zo%g|KLHDqRa^=d&*s){HZ$uAzANph8kcF;Yy9)Bo-g-N9Ay!1Uqj!;OVq)Td@8e^j z2hcsl9#QM_{=t%OPde!&!wY{0TaRDD_t-1!7wvp=+G(fR9uOM@$B27}m)R5S75#{n z!4bQ|-1v6*(R1d^G24IUnP+B#%jf z@1x%Nj(h`t4|;$;*aiHD&p!Lid@N)IzmR%vCkw|Rbwck0k@&p-dXeUERA-NgnF)4Bf&Um@qL3HoG$U#5M~E!cVJjemj; zWiQx!{8IEhv?C7${m5+r$U6Oq!SJ71Kk|rA&3?k4ef#z`A8}{+&%Qp7UyeQYSfdL% zkiEgCptsN=+qZ9*_uqft)(1`i{ylp`{K6jMJCMU8Uc(MEK0MFb;dP&{pv!deBR)Ge z9=#Iu#i+;chELeTD7=t0_6(a5)m{*FnZ)n-!tf7v4V=)i@HloIdz%W6zaxInG=D;j zfDem(efsIAjo0zzQsGYh-;qDTh9Hk|`4h*nef#z%r}#)W+;Br$UE=gdm-!e4U1Gn{ zA?fmm$TazNd?aAx$dN*f7>5t~5`Bctj_ViEmT~?Tyy4?ibD*!WrT7&11LvQAzS(Qy zU3?t$S1^_f;)2h#gZbN)!Exf=(U-%A54ST1^quzwC-Sq{OZEp{LmcDn=vU+!8;;#T z2L;!GuEO@Bci|)dE`xH5_L-DHzvP(M7wkViGCn0fD7j{I4t3bnDEZ*5315zHIr~7i zS?@y+J!JL`yNI8c7hJUO9EBbVc{(%2&jDw*t=Qq4Z@$^+n$G64Pw05|13wnqOfJQ9 zdU?d3GxquloU`X??ZoNCIMCW{XkNyE7d^ifj4AUl#$xT;RDq|PLdJ5eee<-|oz$Ou z0(x7*o=W<6jKV(wuS{@2W~&+IfBtE$uj3SU<$aBGxFe?%6}amV^;FbKcxj#jebbHi zceR7dA_eXVaMvO3;XXk<1@zLt6|fJxLN>sevt7=oIb-LZKoNyp56qHimPq`EvfS^4 z=ax+lzqNNZWuZSye*XVSO@VBhlwLW(Qt3F4-%8hwluBo(JNLA*6q+j}?`i2>u9&B+ zwslf~w>Bvhv;61i<{r$VSJr9KY}*mGW_feY&R^!UW|{Mo7@*ZJ9&D}vGA*iv4eQ8|v`2$P41Pa(;mSl*Vs` z7gE{-#v->B_B+7^yf`20*RP-XoUA{%R`Ri&(d^*;9~-N6>(=trQ%~g@*XLkg@DuTk z!*hEd{OEM?t@n*8iF3%OhTF*9l1CmiXplVl2Kn7<_PoJ zO*h?Sc^~o+%8Qw1wM|VE%zeG z0ea56MT-^|?{fZ3K7!n+*a+PUTFEesQHoc;QZt}&^_Eu zgIC~x^fF`l{OJF%JjTuM^haL><=yE&ZrnK2@65sZ0Q<}R2=dp^ZNL5Yv-z2-+9Z|?j^Yq&O(tH-y`^sTp@8da_BaVGp`d)IKj?o&_j&DxXg>LKo>awv2VyS z{0HrPzNnIQAZIQ!;7eY>m%RjRCFskhBFHGf?N-P zY@&bB_uRomKA01HcQAiqd&HUCGtWGeiyz@lWQ}#Q@Azc!A38a_#>XFjJYV)FmHmbP zSu1?W9N5UH^WXg1U;GdBebgQmp#PE9|016h!~s5j?z!j8E^r@(y8tei-Y*aS*Gm5; zT;hL{&*PklIpITO5nq$@Pkc*!A>`ca$f-gb_<_6BY5Y%o@Uh`}gTKki;%nl6{*>C)B`a%=8i^1_i@8o;hDy#|B=b|_EoO4d>UYs8R9>_!R{4Hi&Vm;!` zk_v-k`sKo<0Q(VdmQmoTtpE;d6?WEqKJI#*W4Hn_Z}2IlKiG?L3ZzX^%7wQ1SecfL zwOZj{3hfn$dF|1O%H?QACOeTR1X$%x{NwZF=$y<=o`N7aOCg!3@a(D91s?Ka{S;Eh zi`o{Z2W#%H!2fUcRoJ3nebAwtzXtDrAn)+5-#_@HFDVtqSQh*iTZD}T&^`G3#5(-u z94RFCx%Lye^gA!u5bQlV1{q@x&Z^_?BViZ0XG34!@4D+Q1HY$4#lNML!>72lp?j4|b4$miqkgcaVRfGxwrcFMtmf;$LiJ sF9mXVwx6lw2bl_ei_9Unl@%BxDM$LAi@zd%FV{Ncwn}zBG!x(c7o634>Hq)$ literal 0 HcmV?d00001 diff --git a/home/react-native-and-more.svg b/home/react-native-and-more.svg new file mode 100644 index 0000000..cf50a04 --- /dev/null +++ b/home/react-native-and-more.svg @@ -0,0 +1,7 @@ + + + home/react-native-and-more + + + + \ No newline at end of file diff --git a/home/rescript.svg b/home/rescript.svg new file mode 100644 index 0000000..cf104bc --- /dev/null +++ b/home/rescript.svg @@ -0,0 +1,7 @@ + + + home/rescript + + + + \ No newline at end of file diff --git a/home/safe.svg b/home/safe.svg new file mode 100644 index 0000000..f670b52 --- /dev/null +++ b/home/safe.svg @@ -0,0 +1,8 @@ + + + home/safe + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..1b0adaf --- /dev/null +++ b/index.html @@ -0,0 +1,22 @@ + + + + + +Hello from ReScript React Native | ReScript React Native + + + + + + + + + + + + + +

ReScript React Native

The safest way to build React Native apps

React Native Core & More

React Native Core & More

ReScript React Native cover the core of React Native, and lots of community modules, including React Navigation and most famous libraries.

Zero-cost bindings

Zero-cost bindings

ReScript help us to produce code that directly hit React Native modules without any additional indirection. The bindings don't take the risk to introduce unecessary bugs.

Safe and sound

Safe and sound

ReScript React Native allows you to avoid most of React red screens during development. Your code is secured before it runs thanks to ReScript compiler.

+ + \ No newline at end of file diff --git a/mstile-150x150.png b/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8c9889c03b1e1bd40261cd87ec7bd2763ae08b GIT binary patch literal 6515 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 k9sSDi6>lU|Jzqlrut!Y>J604+y + + ReScript React Native + Search ReScript React Native + UTF-8 + https://rescript-react-native.github.io/favicon.ico + + + https://rescript-react-native.github.io/ + \ No newline at end of file diff --git a/safari-pinned-tab.svg b/safari-pinned-tab.svg new file mode 100644 index 0000000..6d2cb4a --- /dev/null +++ b/safari-pinned-tab.svg @@ -0,0 +1,72 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + + + + + + + + + + + + + diff --git a/schemas/introduction.svg b/schemas/introduction.svg new file mode 100644 index 0000000..e343a90 --- /dev/null +++ b/schemas/introduction.svg @@ -0,0 +1,85 @@ + + + introduction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 📱 + + + 👩‍💻 + + + + + + + + + + + + + + + diff --git a/search/index.html b/search/index.html new file mode 100644 index 0000000..0c8f0dd --- /dev/null +++ b/search/index.html @@ -0,0 +1,22 @@ + + + + + +Search the documentation | ReScript React Native + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/site.webmanifest b/site.webmanifest new file mode 100644 index 0000000..b20abb7 --- /dev/null +++ b/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..68a4677 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://rescript-react-native.github.io/blogweekly0.5https://rescript-react-native.github.io/blog/2019-06-17-hello-reason-react-nativeweekly0.5https://rescript-react-native.github.io/blog/2021-05-04-hello-rescript-react-nativeweekly0.5https://rescript-react-native.github.io/blog/archiveweekly0.5https://rescript-react-native.github.io/blog/tagsweekly0.5https://rescript-react-native.github.io/blog/tags/helloweekly0.5https://rescript-react-native.github.io/blog/tags/reasonweekly0.5https://rescript-react-native.github.io/blog/tags/rescriptweekly0.5https://rescript-react-native.github.io/searchweekly0.5https://rescript-react-native.github.io/docs/weekly0.5https://rescript-react-native.github.io/docs/accessibilityinfoweekly0.5https://rescript-react-native.github.io/docs/actionsheetiosweekly0.5https://rescript-react-native.github.io/docs/activityindicatorweekly0.5https://rescript-react-native.github.io/docs/alertweekly0.5https://rescript-react-native.github.io/docs/animatedweekly0.5https://rescript-react-native.github.io/docs/animationframeweekly0.5https://rescript-react-native.github.io/docs/apisweekly0.5https://rescript-react-native.github.io/docs/appearanceweekly0.5https://rescript-react-native.github.io/docs/appregistryweekly0.5https://rescript-react-native.github.io/docs/appstateweekly0.5https://rescript-react-native.github.io/docs/asyncstorageweekly0.5https://rescript-react-native.github.io/docs/backhandlerweekly0.5https://rescript-react-native.github.io/docs/buttonweekly0.5https://rescript-react-native.github.io/docs/cheatsheetweekly0.5https://rescript-react-native.github.io/docs/clipboardweekly0.5https://rescript-react-native.github.io/docs/componentsweekly0.5https://rescript-react-native.github.io/docs/datepickerandroidweekly0.5https://rescript-react-native.github.io/docs/datepickeriosweekly0.5https://rescript-react-native.github.io/docs/devsettingsweekly0.5https://rescript-react-native.github.io/docs/dimensionsweekly0.5https://rescript-react-native.github.io/docs/drawerlayoutandroidweekly0.5https://rescript-react-native.github.io/docs/dynamiccoloriosweekly0.5https://rescript-react-native.github.io/docs/easingweekly0.5https://rescript-react-native.github.io/docs/eventweekly0.5https://rescript-react-native.github.io/docs/eventsubscriptionweekly0.5https://rescript-react-native.github.io/docs/exampleweekly0.5https://rescript-react-native.github.io/docs/flatlistweekly0.5https://rescript-react-native.github.io/docs/geolocationweekly0.5https://rescript-react-native.github.io/docs/globalweekly0.5https://rescript-react-native.github.io/docs/imageweekly0.5https://rescript-react-native.github.io/docs/imagebackgroundweekly0.5https://rescript-react-native.github.io/docs/imageeditorweekly0.5https://rescript-react-native.github.io/docs/imagepickeriosweekly0.5https://rescript-react-native.github.io/docs/inputaccessoryviewweekly0.5https://rescript-react-native.github.io/docs/installweekly0.5https://rescript-react-native.github.io/docs/interactionmanagerweekly0.5https://rescript-react-native.github.io/docs/keyboardweekly0.5https://rescript-react-native.github.io/docs/keyboardavoidingviewweekly0.5https://rescript-react-native.github.io/docs/layoutanimationweekly0.5https://rescript-react-native.github.io/docs/linkingweekly0.5https://rescript-react-native.github.io/docs/logboxweekly0.5https://rescript-react-native.github.io/docs/maskedviewiosweekly0.5https://rescript-react-native.github.io/docs/modalweekly0.5https://rescript-react-native.github.io/docs/nativeeventemitterweekly0.5https://rescript-react-native.github.io/docs/nativemodulesweekly0.5https://rescript-react-native.github.io/docs/netinfoweekly0.5https://rescript-react-native.github.io/docs/packagerweekly0.5https://rescript-react-native.github.io/docs/panresponderweekly0.5https://rescript-react-native.github.io/docs/permissionsandroidweekly0.5https://rescript-react-native.github.io/docs/pickerweekly0.5https://rescript-react-native.github.io/docs/pixelratioweekly0.5https://rescript-react-native.github.io/docs/platformweekly0.5https://rescript-react-native.github.io/docs/platformcolorweekly0.5https://rescript-react-native.github.io/docs/pressableweekly0.5https://rescript-react-native.github.io/docs/progressbarandroidweekly0.5https://rescript-react-native.github.io/docs/progressviewiosweekly0.5https://rescript-react-native.github.io/docs/pushnotificationiosweekly0.5https://rescript-react-native.github.io/docs/refreshcontrolweekly0.5https://rescript-react-native.github.io/docs/safeareaviewweekly0.5https://rescript-react-native.github.io/docs/scrollviewweekly0.5https://rescript-react-native.github.io/docs/sectionlistweekly0.5https://rescript-react-native.github.io/docs/segmentedcontroliosweekly0.5https://rescript-react-native.github.io/docs/settingsweekly0.5https://rescript-react-native.github.io/docs/shareweekly0.5https://rescript-react-native.github.io/docs/sliderweekly0.5https://rescript-react-native.github.io/docs/snapshotviewiosweekly0.5https://rescript-react-native.github.io/docs/soundmanagerweekly0.5https://rescript-react-native.github.io/docs/statusbarweekly0.5https://rescript-react-native.github.io/docs/styleweekly0.5https://rescript-react-native.github.io/docs/stylesheetweekly0.5https://rescript-react-native.github.io/docs/switchweekly0.5https://rescript-react-native.github.io/docs/textweekly0.5https://rescript-react-native.github.io/docs/textinputweekly0.5https://rescript-react-native.github.io/docs/timepickerandroidweekly0.5https://rescript-react-native.github.io/docs/toastandroidweekly0.5https://rescript-react-native.github.io/docs/toolbarandroidweekly0.5https://rescript-react-native.github.io/docs/touchablehighlightweekly0.5https://rescript-react-native.github.io/docs/touchablenativefeedbackweekly0.5https://rescript-react-native.github.io/docs/touchableopacityweekly0.5https://rescript-react-native.github.io/docs/touchablewithoutfeedbackweekly0.5https://rescript-react-native.github.io/docs/uimanagerweekly0.5https://rescript-react-native.github.io/docs/usageweekly0.5https://rescript-react-native.github.io/docs/vibrationweekly0.5https://rescript-react-native.github.io/docs/viewweekly0.5https://rescript-react-native.github.io/docs/viewpagerandroidweekly0.5https://rescript-react-native.github.io/docs/virtualizedlistweekly0.5https://rescript-react-native.github.io/docs/virtualizedsectionlistweekly0.5https://rescript-react-native.github.io/docs/webviewweekly0.5https://rescript-react-native.github.io/docs/yellowboxweekly0.5https://rescript-react-native.github.io/weekly0.5 \ No newline at end of file diff --git a/usage/vscode-alert.png b/usage/vscode-alert.png new file mode 100644 index 0000000000000000000000000000000000000000..1feeef1d40c70591c1f6ab6a1b836000ac501392 GIT binary patch literal 115076 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�lKPs2pIKorOU^E?TUy?r8w6X2;bdYBt-=XG@WZ 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