From d04ab46504c24eb811eed955aeb4375d1f736c49 Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Mon, 24 Apr 2023 21:28:22 +0200 Subject: [PATCH] Deploy to GitHub Pages --- .nojekyll | 0 404.html | 21 ++++ 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.38fd7656.css | 1 + ...ction-f371744e623bab317b3bc3be11b60603.svg | 85 ++++++++++++++ ...alert-1a4e9aea9b7f3d273857fe682a83e4bb.png | Bin 0 -> 115076 bytes assets/js/01a85c17.e8224f56.js | 1 + assets/js/023ce613.02c19b83.js | 1 + assets/js/043073c4.a592e5d7.js | 1 + assets/js/07399c65.7fe7e5d0.js | 1 + assets/js/08f097a5.f2b4ffeb.js | 1 + assets/js/0d92630e.4035fc34.js | 1 + assets/js/0ebdde8d.0dd16e92.js | 1 + assets/js/136caa6d.c7c46ab7.js | 1 + assets/js/13ae4a8c.99e40c8c.js | 1 + assets/js/17284fae.e532dc91.js | 1 + assets/js/17896441.7eefb5f5.js | 1 + assets/js/1a4e3797.be7ec7a3.js | 2 + assets/js/1a4e3797.be7ec7a3.js.LICENSE.txt | 1 + assets/js/1a7bce55.43a69167.js | 1 + assets/js/1be78505.7dbed66e.js | 1 + assets/js/1ea31af0.c28a80c4.js | 1 + assets/js/1f5d8a3a.dca8b681.js | 1 + assets/js/1f7c204c.94488286.js | 1 + assets/js/213d7e18.c4de8737.js | 1 + assets/js/23b8615d.048299ea.js | 1 + assets/js/30a24c52.dd7a04bf.js | 1 + assets/js/31975ed7.b9b31075.js | 1 + assets/js/32bec6ce.c66c747a.js | 1 + assets/js/354b32a0.88567bea.js | 1 + assets/js/3b49011b.03371fb4.js | 1 + assets/js/3cf831d4.eb058313.js | 1 + assets/js/3f722a83.9268fe16.js | 1 + assets/js/3f8f8288.b5ff3b9b.js | 1 + assets/js/46f31c24.deba3e2a.js | 1 + assets/js/496cd6aa.a5015655.js | 1 + assets/js/4972.43721ae2.js | 1 + assets/js/4a3ceabd.11e7de55.js | 1 + assets/js/4af7c48a.ee1dd622.js | 1 + assets/js/4ef4424e.6d4accc4.js | 1 + assets/js/54dd43bc.34ccfe76.js | 1 + assets/js/566a3be1.5707c308.js | 1 + assets/js/586b6d0e.3b20b6de.js | 1 + assets/js/6048.c2667ecd.js | 1 + assets/js/63b91972.2b3c128b.js | 1 + assets/js/63cd80c7.54c70b1c.js | 1 + assets/js/6476eba6.11784a5b.js | 1 + assets/js/65b9bd76.351658d8.js | 1 + assets/js/66406991.f9666ba6.js | 1 + assets/js/66803638.8c86196e.js | 1 + assets/js/6780.21ea0212.js | 1 + assets/js/6875c492.52a02902.js | 1 + assets/js/687ca549.44612ac7.js | 1 + assets/js/6945.e567b678.js | 1 + assets/js/696ff8b8.b6fc8eda.js | 1 + assets/js/6973453b.c51bf6e4.js | 1 + assets/js/69e63e76.743049a7.js | 1 + assets/js/6b839bb6.02f0dbb6.js | 1 + assets/js/7436d3b1.54d3b3ec.js | 1 + assets/js/755faf69.5ade5d66.js | 1 + assets/js/7ca9eab1.ca70ae1a.js | 1 + assets/js/7d9dbb4d.e2ec8e12.js | 1 + assets/js/7da2c827.d1fee591.js | 1 + assets/js/7f2c42ba.56eff17f.js | 1 + assets/js/814f3328.8c6c2d05.js | 1 + assets/js/831a125e.c9e95dd7.js | 1 + assets/js/833cca9a.1f5b685b.js | 1 + assets/js/85175863.8b2429d5.js | 1 + assets/js/857ca036.159dbf13.js | 1 + assets/js/86395a61.3a8df578.js | 1 + assets/js/86fdf6b1.affd3fed.js | 1 + assets/js/8894.d13b31a7.js | 1 + assets/js/8928.141e86c6.js | 1 + assets/js/8a46b2c1.3bf47a44.js | 1 + assets/js/8ed8566e.132ba976.js | 1 + assets/js/90e0c90f.88809d17.js | 1 + assets/js/935f2afb.074329d7.js | 1 + assets/js/945545dd.9d049370.js | 1 + assets/js/95521f4f.2fb49c04.js | 1 + assets/js/989fc69f.c5a97cd0.js | 1 + assets/js/99bdbcf8.be46a41c.js | 1 + assets/js/9baa118e.8a4c1d04.js | 1 + assets/js/9e4087bc.60f07517.js | 1 + assets/js/9e908f88.678bbee9.js | 1 + assets/js/9f05bbac.faba0c17.js | 1 + assets/js/a184b298.b13910d2.js | 1 + assets/js/a2026f74.625205cb.js | 1 + assets/js/a6aa9e1f.953dce49.js | 1 + assets/js/a7023ddc.026ee4bb.js | 1 + assets/js/a70ca05f.b2e30d32.js | 1 + assets/js/a7603ff3.a9ea2ea8.js | 1 + assets/js/ab3e6658.80f7cdaf.js | 1 + assets/js/ab533f1c.3c81dd05.js | 1 + assets/js/b008b754.8f73dd04.js | 1 + assets/js/b2b675dd.8927c3f2.js | 1 + assets/js/b2f554cd.8383c60d.js | 1 + assets/js/b773a522.dddbc4cd.js | 1 + assets/js/bb0b273b.c05f7cef.js | 1 + assets/js/bb27e23e.1ce8cf30.js | 1 + assets/js/bc11f42d.9aa9e79a.js | 1 + assets/js/bccc4a8f.15d8084e.js | 1 + assets/js/becc5eb6.869f8143.js | 1 + assets/js/c377a04b.fb051e58.js | 1 + assets/js/c4de80f8.050a7b10.js | 1 + assets/js/c4f5d8e4.adbe5782.js | 1 + assets/js/c87c7738.c82eb01f.js | 1 + assets/js/cc32403b.fa86d8ec.js | 1 + assets/js/ccc49370.dceb25e1.js | 1 + assets/js/ccf72db0.b683b725.js | 1 + assets/js/cda5dd21.cf0dfe9d.js | 1 + assets/js/d6d19194.86259927.js | 1 + assets/js/d72f28cf.271c6400.js | 1 + assets/js/d7a571a3.4e9008b3.js | 1 + assets/js/d996a518.2a85579c.js | 1 + assets/js/daf19b82.ed1dfc21.js | 1 + assets/js/dce59a70.ee91a889.js | 1 + assets/js/dec09136.45c5ae71.js | 1 + assets/js/e2187fa8.a6cfb129.js | 1 + assets/js/e2bc8ad8.913933a8.js | 1 + assets/js/e7bffab0.f3ba4005.js | 1 + assets/js/e92a9231.c2c9e2c3.js | 1 + assets/js/ea2d43a7.e64ee7e0.js | 1 + assets/js/eada822e.73cbaaa8.js | 1 + assets/js/eb5289e7.99038072.js | 1 + assets/js/ed636e79.26199b99.js | 1 + assets/js/f45adc36.6e91d65d.js | 1 + assets/js/f7cded51.f8aca574.js | 1 + assets/js/f9843ad8.aad430b1.js | 1 + assets/js/fa06e55d.64ec18ea.js | 1 + assets/js/fada0ee8.10bbf30c.js | 1 + assets/js/fdd6151e.5fd3d9d4.js | 1 + assets/js/main.366fde84.js | 2 + assets/js/main.366fde84.js.LICENSE.txt | 63 +++++++++++ assets/js/runtime~main.a0e5966b.js | 1 + .../index.html | 79 +++++++++++++ .../index.html | 27 +++++ blog/archive/index.html | 21 ++++ blog/atom.xml | 102 +++++++++++++++++ blog/index.html | 85 ++++++++++++++ blog/rss.xml | 96 ++++++++++++++++ blog/tags/hello/index.html | 85 ++++++++++++++ blog/tags/index.html | 21 ++++ blog/tags/reason/index.html | 79 +++++++++++++ blog/tags/rescript/index.html | 27 +++++ browserconfig.xml | 9 ++ docs/accessibilityinfo/index.html | 47 ++++++++ docs/actionsheetios/index.html | 21 ++++ docs/activityindicator/index.html | 21 ++++ docs/alert/index.html | 25 ++++ docs/animated/index.html | 21 ++++ docs/animationframe/index.html | 28 +++++ docs/apis/index.html | 21 ++++ docs/appearance/index.html | 29 +++++ docs/appregistry/index.html | 21 ++++ docs/appstate/index.html | 21 ++++ docs/asyncstorage/index.html | 24 ++++ docs/backhandler/index.html | 21 ++++ docs/button/index.html | 21 ++++ docs/cheatsheet/index.html | 23 ++++ docs/clipboard/index.html | 25 ++++ docs/components/index.html | 21 ++++ docs/datepickerandroid/index.html | 25 ++++ docs/datepickerios/index.html | 25 ++++ docs/devsettings/index.html | 24 ++++ docs/dimensions/index.html | 21 ++++ docs/drawerlayoutandroid/index.html | 21 ++++ docs/dynamiccolorios/index.html | 21 ++++ docs/easing/index.html | 21 ++++ docs/event/index.html | 23 ++++ docs/eventsubscription/index.html | 21 ++++ docs/example/index.html | 45 ++++++++ docs/flatlist/index.html | 21 ++++ docs/geolocation/index.html | 26 +++++ docs/global/index.html | 23 ++++ docs/image/index.html | 21 ++++ docs/imagebackground/index.html | 21 ++++ docs/imageeditor/index.html | 23 ++++ docs/imagepickerios/index.html | 50 ++++++++ docs/index.html | 41 +++++++ docs/inputaccessoryview/index.html | 21 ++++ docs/install/index.html | 45 ++++++++ docs/interactionmanager/index.html | 21 ++++ docs/keyboard/index.html | 21 ++++ docs/keyboardavoidingview/index.html | 21 ++++ docs/layoutanimation/index.html | 39 +++++++ docs/linking/index.html | 45 ++++++++ docs/logbox/index.html | 21 ++++ docs/maskedviewios/index.html | 23 ++++ docs/modal/index.html | 21 ++++ docs/nativeeventemitter/index.html | 21 ++++ docs/nativemodules/index.html | 21 ++++ docs/netinfo/index.html | 23 ++++ docs/packager/index.html | 22 ++++ docs/panresponder/index.html | 46 ++++++++ docs/permissionsandroid/index.html | 36 ++++++ docs/picker/index.html | 24 ++++ docs/pixelratio/index.html | 21 ++++ docs/platform/index.html | 25 ++++ docs/platformcolor/index.html | 21 ++++ docs/pressable/index.html | 21 ++++ docs/progressbarandroid/index.html | 23 ++++ docs/progressviewios/index.html | 23 ++++ docs/pushnotificationios/index.html | 25 ++++ docs/refreshcontrol/index.html | 21 ++++ docs/safeareaview/index.html | 21 ++++ docs/scrollview/index.html | 25 ++++ docs/sectionlist/index.html | 21 ++++ docs/segmentedcontrolios/index.html | 23 ++++ docs/settings/index.html | 21 ++++ docs/share/index.html | 21 ++++ docs/slider/index.html | 24 ++++ docs/snapshotviewios/index.html | 21 ++++ docs/soundmanager/index.html | 21 ++++ docs/statusbar/index.html | 21 ++++ docs/style/index.html | 107 ++++++++++++++++++ docs/stylesheet/index.html | 40 +++++++ docs/switch/index.html | 21 ++++ docs/text/index.html | 21 ++++ docs/textinput/index.html | 21 ++++ docs/timepickerandroid/index.html | 23 ++++ docs/toastandroid/index.html | 21 ++++ docs/toolbarandroid/index.html | 24 ++++ docs/touchablehighlight/index.html | 21 ++++ docs/touchablenativefeedback/index.html | 21 ++++ docs/touchableopacity/index.html | 21 ++++ docs/touchablewithoutfeedback/index.html | 21 ++++ docs/uimanager/index.html | 21 ++++ docs/usage/index.html | 54 +++++++++ docs/vibration/index.html | 21 ++++ docs/view/index.html | 21 ++++ docs/viewpagerandroid/index.html | 23 ++++ docs/virtualizedlist/index.html | 21 ++++ docs/virtualizedsectionlist/index.html | 21 ++++ docs/webview/index.html | 23 ++++ docs/yellowbox/index.html | 24 ++++ 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 | 21 ++++ mstile-150x150.png | Bin 0 -> 6515 bytes opensearch.xml | 11 ++ safari-pinned-tab.svg | 72 ++++++++++++ schemas/introduction.svg | 85 ++++++++++++++ search/index.html | 21 ++++ site.webmanifest | 19 ++++ sitemap.xml | 1 + usage/vscode-alert.png | Bin 0 -> 115076 bytes 253 files changed, 3510 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.38fd7656.css create mode 100644 assets/images/introduction-f371744e623bab317b3bc3be11b60603.svg create mode 100644 assets/images/vscode-alert-1a4e9aea9b7f3d273857fe682a83e4bb.png create mode 100644 assets/js/01a85c17.e8224f56.js create mode 100644 assets/js/023ce613.02c19b83.js create mode 100644 assets/js/043073c4.a592e5d7.js create mode 100644 assets/js/07399c65.7fe7e5d0.js create mode 100644 assets/js/08f097a5.f2b4ffeb.js create mode 100644 assets/js/0d92630e.4035fc34.js create mode 100644 assets/js/0ebdde8d.0dd16e92.js create mode 100644 assets/js/136caa6d.c7c46ab7.js create mode 100644 assets/js/13ae4a8c.99e40c8c.js create mode 100644 assets/js/17284fae.e532dc91.js create mode 100644 assets/js/17896441.7eefb5f5.js create mode 100644 assets/js/1a4e3797.be7ec7a3.js create mode 100644 assets/js/1a4e3797.be7ec7a3.js.LICENSE.txt create mode 100644 assets/js/1a7bce55.43a69167.js create mode 100644 assets/js/1be78505.7dbed66e.js create mode 100644 assets/js/1ea31af0.c28a80c4.js create mode 100644 assets/js/1f5d8a3a.dca8b681.js create mode 100644 assets/js/1f7c204c.94488286.js create mode 100644 assets/js/213d7e18.c4de8737.js create mode 100644 assets/js/23b8615d.048299ea.js create mode 100644 assets/js/30a24c52.dd7a04bf.js create mode 100644 assets/js/31975ed7.b9b31075.js create mode 100644 assets/js/32bec6ce.c66c747a.js create mode 100644 assets/js/354b32a0.88567bea.js create mode 100644 assets/js/3b49011b.03371fb4.js create mode 100644 assets/js/3cf831d4.eb058313.js create mode 100644 assets/js/3f722a83.9268fe16.js create mode 100644 assets/js/3f8f8288.b5ff3b9b.js create mode 100644 assets/js/46f31c24.deba3e2a.js create mode 100644 assets/js/496cd6aa.a5015655.js create mode 100644 assets/js/4972.43721ae2.js create mode 100644 assets/js/4a3ceabd.11e7de55.js create mode 100644 assets/js/4af7c48a.ee1dd622.js create mode 100644 assets/js/4ef4424e.6d4accc4.js create mode 100644 assets/js/54dd43bc.34ccfe76.js create mode 100644 assets/js/566a3be1.5707c308.js create mode 100644 assets/js/586b6d0e.3b20b6de.js create mode 100644 assets/js/6048.c2667ecd.js create mode 100644 assets/js/63b91972.2b3c128b.js create mode 100644 assets/js/63cd80c7.54c70b1c.js create mode 100644 assets/js/6476eba6.11784a5b.js create mode 100644 assets/js/65b9bd76.351658d8.js create mode 100644 assets/js/66406991.f9666ba6.js create mode 100644 assets/js/66803638.8c86196e.js create mode 100644 assets/js/6780.21ea0212.js create mode 100644 assets/js/6875c492.52a02902.js create mode 100644 assets/js/687ca549.44612ac7.js create mode 100644 assets/js/6945.e567b678.js create mode 100644 assets/js/696ff8b8.b6fc8eda.js create mode 100644 assets/js/6973453b.c51bf6e4.js create mode 100644 assets/js/69e63e76.743049a7.js create mode 100644 assets/js/6b839bb6.02f0dbb6.js create mode 100644 assets/js/7436d3b1.54d3b3ec.js create mode 100644 assets/js/755faf69.5ade5d66.js create mode 100644 assets/js/7ca9eab1.ca70ae1a.js create mode 100644 assets/js/7d9dbb4d.e2ec8e12.js create mode 100644 assets/js/7da2c827.d1fee591.js create mode 100644 assets/js/7f2c42ba.56eff17f.js create mode 100644 assets/js/814f3328.8c6c2d05.js create mode 100644 assets/js/831a125e.c9e95dd7.js create mode 100644 assets/js/833cca9a.1f5b685b.js create mode 100644 assets/js/85175863.8b2429d5.js create mode 100644 assets/js/857ca036.159dbf13.js create mode 100644 assets/js/86395a61.3a8df578.js create mode 100644 assets/js/86fdf6b1.affd3fed.js create mode 100644 assets/js/8894.d13b31a7.js create mode 100644 assets/js/8928.141e86c6.js create mode 100644 assets/js/8a46b2c1.3bf47a44.js create mode 100644 assets/js/8ed8566e.132ba976.js create mode 100644 assets/js/90e0c90f.88809d17.js create mode 100644 assets/js/935f2afb.074329d7.js create mode 100644 assets/js/945545dd.9d049370.js create mode 100644 assets/js/95521f4f.2fb49c04.js create mode 100644 assets/js/989fc69f.c5a97cd0.js create mode 100644 assets/js/99bdbcf8.be46a41c.js create mode 100644 assets/js/9baa118e.8a4c1d04.js create mode 100644 assets/js/9e4087bc.60f07517.js create mode 100644 assets/js/9e908f88.678bbee9.js create mode 100644 assets/js/9f05bbac.faba0c17.js create mode 100644 assets/js/a184b298.b13910d2.js create mode 100644 assets/js/a2026f74.625205cb.js create mode 100644 assets/js/a6aa9e1f.953dce49.js create mode 100644 assets/js/a7023ddc.026ee4bb.js create mode 100644 assets/js/a70ca05f.b2e30d32.js create mode 100644 assets/js/a7603ff3.a9ea2ea8.js create mode 100644 assets/js/ab3e6658.80f7cdaf.js create mode 100644 assets/js/ab533f1c.3c81dd05.js create mode 100644 assets/js/b008b754.8f73dd04.js create mode 100644 assets/js/b2b675dd.8927c3f2.js create mode 100644 assets/js/b2f554cd.8383c60d.js create mode 100644 assets/js/b773a522.dddbc4cd.js create mode 100644 assets/js/bb0b273b.c05f7cef.js create mode 100644 assets/js/bb27e23e.1ce8cf30.js create mode 100644 assets/js/bc11f42d.9aa9e79a.js create mode 100644 assets/js/bccc4a8f.15d8084e.js create mode 100644 assets/js/becc5eb6.869f8143.js create mode 100644 assets/js/c377a04b.fb051e58.js create mode 100644 assets/js/c4de80f8.050a7b10.js create mode 100644 assets/js/c4f5d8e4.adbe5782.js create mode 100644 assets/js/c87c7738.c82eb01f.js create mode 100644 assets/js/cc32403b.fa86d8ec.js create mode 100644 assets/js/ccc49370.dceb25e1.js create mode 100644 assets/js/ccf72db0.b683b725.js create mode 100644 assets/js/cda5dd21.cf0dfe9d.js create mode 100644 assets/js/d6d19194.86259927.js create mode 100644 assets/js/d72f28cf.271c6400.js create mode 100644 assets/js/d7a571a3.4e9008b3.js create mode 100644 assets/js/d996a518.2a85579c.js create mode 100644 assets/js/daf19b82.ed1dfc21.js create mode 100644 assets/js/dce59a70.ee91a889.js create mode 100644 assets/js/dec09136.45c5ae71.js create mode 100644 assets/js/e2187fa8.a6cfb129.js create mode 100644 assets/js/e2bc8ad8.913933a8.js create mode 100644 assets/js/e7bffab0.f3ba4005.js create mode 100644 assets/js/e92a9231.c2c9e2c3.js create mode 100644 assets/js/ea2d43a7.e64ee7e0.js create mode 100644 assets/js/eada822e.73cbaaa8.js create mode 100644 assets/js/eb5289e7.99038072.js create mode 100644 assets/js/ed636e79.26199b99.js create mode 100644 assets/js/f45adc36.6e91d65d.js create mode 100644 assets/js/f7cded51.f8aca574.js create mode 100644 assets/js/f9843ad8.aad430b1.js create mode 100644 assets/js/fa06e55d.64ec18ea.js create mode 100644 assets/js/fada0ee8.10bbf30c.js create mode 100644 assets/js/fdd6151e.5fd3d9d4.js create mode 100644 assets/js/main.366fde84.js create mode 100644 assets/js/main.366fde84.js.LICENSE.txt create mode 100644 assets/js/runtime~main.a0e5966b.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..abe05d6 --- /dev/null +++ b/404.html @@ -0,0 +1,21 @@ + + + + + +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}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}: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%;--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:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.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{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;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);text-rendering:optimizelegibility}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]){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_EoeP .wordWrapButtonIcon_Bwma{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}.admonitionHeading_tbUL,.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,body,html{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);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)}.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);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,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{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]){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);text-decoration:none}.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_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[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);text-decoration:none}.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);text-decoration:none}.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__items--right>:last-child{padding-right:0}.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);text-decoration:none}.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{-webkit-appearance:none;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:.9rem;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__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;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);text-decoration:none}.DocSearch-Hit[aria-selected=true] mark,.content_knG7 a{text-decoration:underline}.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,.sidebarItemTitle_pO2u,.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:#f5f6f7;--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:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#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{grid-column-gap:22px;display:grid}}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,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}.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)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.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}.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}.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{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.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}.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}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.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}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.authorCol_Hf19{flex-grow:1!important;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}.DocSearch-Button,.DocSearch-Button-Container,.buttons_pzbO,.features_keug{align-items:center;display:flex}.features_keug{padding:2rem 0;width:100%}.featureImage_yA8i{height:128px;width:128px}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.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-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-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 ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.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:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);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 li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.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)}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{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)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius: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}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx 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__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}: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:a;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(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.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);text-decoration:none}.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}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{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}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.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)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{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:"#"}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.blogPostFooterDetailsFull_mRVl{flex-direction:column}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.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_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.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_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.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);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{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_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);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_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{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}.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}.searchBox_ZlJk{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-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@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 screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.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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.d(t,{Z:()=>p});var l=a(7294),r=a(6010),n=a(7452),s=a(7524),i=a(9960),c=a(5999);const m={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};function o(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,r.Z)(m.sidebar,"thin-scrollbar"),"aria-label":(0,c.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,r.Z)(m.sidebarItemTitle,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,r.Z)(m.sidebarItemList,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:m.sidebarItem},l.createElement(i.Z,{isNavLink:!0,to:e.permalink,className:m.sidebarItemLink,activeClassName:m.sidebarItemLinkActive},e.title)))))))}var u=a(3102);function g(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(i.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function b(e){return l.createElement(u.Zo,{component:g,props:e})}function d(e){let{sidebar:t}=e;const a=(0,s.i)();return t?.items.length?"mobile"===a?l.createElement(b,{sidebar:t}):l.createElement(o,{sidebar:t}):null}function p(e){const{sidebar:t,toc:a,children:s,...i}=e,c=t&&t.items.length>0;return l.createElement(n.Z,i,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(d,{sidebar:t}),l.createElement("main",{className:(0,r.Z)("col",{"col--7":c,"col--9 col--offset-1":!c}),itemScope:!0,itemType:"http://schema.org/Blog"},s),a&&l.createElement("div",{className:"col col--2"},a))))}},1223:(e,t,a)=>{a.r(t),a.d(t,{default:()=>p});var l=a(7294),r=a(6010),n=a(5999);const s=()=>(0,n.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});var i=a(833),c=a(5281),m=a(9058),o=a(3008);const u={tag:"tag_Nnez"};function g(e){let{letterEntry:t}=e;return l.createElement("article",null,l.createElement("h2",null,t.letter),l.createElement("ul",{className:"padding--none"},t.tags.map((e=>l.createElement("li",{key:e.permalink,className:u.tag},l.createElement(o.Z,e))))),l.createElement("hr",null))}function b(e){let{tags:t}=e;const a=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)=>{let[a]=e,[l]=t;return a.localeCompare(l)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}(t);return l.createElement("section",{className:"margin-vert--lg"},a.map((e=>l.createElement(g,{key:e.letter,letterEntry:e}))))}var d=a(197);function p(e){let{tags:t,sidebar:a}=e;const n=s();return l.createElement(i.FG,{className:(0,r.Z)(c.k.wrapper.blogPages,c.k.page.blogTagsListPage)},l.createElement(i.d,{title:n}),l.createElement(d.Z,{tag:"blog_tags_list"}),l.createElement(m.Z,{sidebar:a},l.createElement("h1",null,n),l.createElement(b,{tags:t})))}},3008:(e,t,a)=>{a.d(t,{Z:()=>i});var l=a(7294),r=a(6010),n=a(9960);const s={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function i(e){let{permalink:t,label:a,count:i}=e;return l.createElement(n.Z,{href:t,className:(0,r.Z)(s.tag,i?s.tagWithCount:s.tagRegular)},a,i&&l.createElement("span",null,i))}}}]); \ No newline at end of file diff --git a/assets/js/023ce613.02c19b83.js b/assets/js/023ce613.02c19b83.js new file mode 100644 index 0000000..631c162 --- /dev/null +++ b/assets/js/023ce613.02c19b83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrescript_react_native_github_io=self.webpackChunkrescript_react_native_github_io||[]).push([[5315],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>d});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),f=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=f(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=f(n),m=o,d=u["".concat(p,".").concat(m)]||u[m]||s[m]||i;return n?r.createElement(d,a(a({ref:t},l),{},{components:n})):r.createElement(d,a({ref:t},l))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var f=2;f{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>f});var r=n(7462),o=(n(7294),n(3905));const i={id:"netinfo",title:"NetInfo"},a=void 0,c={unversionedId:"netinfo",id:"netinfo",title:"NetInfo",description:"NetInfo has been removed from React Native.",source:"@site/docs/netinfo.md",sourceDirName:".",slug:"/netinfo",permalink:"/docs/netinfo",draft:!1,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"}},p={},f=[],l={toc:f},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"NetInfo")," has been removed from React Native."),(0,o.kt)("p",null,"Please use ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/rescript-react-native/netinfo"},"bindings")," to the\nreplacement\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/react-native-community/react-native-netinfo"},"community package"),"."))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/043073c4.a592e5d7.js b/assets/js/043073c4.a592e5d7.js new file mode 100644 index 0000000..6061a85 --- /dev/null +++ b/assets/js/043073c4.a592e5d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrescript_react_native_github_io=self.webpackChunkrescript_react_native_github_io||[]).push([[2486],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=s(r),d=i,m=u["".concat(l,".").concat(d)]||u[d]||f[d]||o;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:i,a[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(7462),i=(r(7294),r(3905));const o={id:"flatlist",title:"FlatList",wip:!0},a=void 0,c={unversionedId:"flatlist",id:"flatlist",title:"FlatList",description:"",source:"@site/docs/flatlist.md",sourceDirName:".",slug:"/flatlist",permalink:"/docs/flatlist",draft:!1,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",wip:!0},sidebar:"components",previous:{title:"DrawerLayoutAndroid",permalink:"/docs/drawerlayoutandroid"},next:{title:"Image",permalink:"/docs/image"}},l={},s=[],p={toc:s},u="wrapper";function f(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/07399c65.7fe7e5d0.js b/assets/js/07399c65.7fe7e5d0.js new file mode 100644 index 0000000..155ce63 --- /dev/null +++ b/assets/js/07399c65.7fe7e5d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrescript_react_native_github_io=self.webpackChunkrescript_react_native_github_io||[]).push([[3069],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,m=u["".concat(s,".").concat(d)]||u[d]||f[d]||i;return r?n.createElement(m,c(c({ref:t},l),{},{components:r})):n.createElement(m,c({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=d;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>f,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var n=r(7462),o=(r(7294),r(3905));const i={id:"actionsheetios",title:"ActionSheetIOS",wip:!0},c=void 0,a={unversionedId:"actionsheetios",id:"actionsheetios",title:"ActionSheetIOS",description:"",source:"@site/docs/actionsheetios.md",sourceDirName:".",slug:"/actionsheetios",permalink:"/docs/actionsheetios",draft:!1,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",wip:!0},sidebar:"api",previous:{title:"AccessibilityInfo",permalink:"/docs/accessibilityinfo"},next:{title:"Alert",permalink:"/docs/alert"}},s={},p=[],l={toc:p},u="wrapper";function f(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/08f097a5.f2b4ffeb.js b/assets/js/08f097a5.f2b4ffeb.js new file mode 100644 index 0000000..96ff06c --- /dev/null +++ b/assets/js/08f097a5.f2b4ffeb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrescript_react_native_github_io=self.webpackChunkrescript_react_native_github_io||[]).push([[1707],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,m=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(7462),o=(r(7294),r(3905));const a={id:"button",title:"Button",wip:!0},i=void 0,c={unversionedId:"button",id:"button",title:"Button",description:"Example",source:"@site/docs/button.md",sourceDirName:".",slug:"/button",permalink:"/docs/button",draft:!1,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",wip:!0},sidebar:"components",previous:{title:"ActivityIndicator",permalink:"/docs/activityindicator"},next:{title:"DrawerLayoutAndroid",permalink:"/docs/drawerlayoutandroid"}},l={},p=[{value:"Example",id:"example",level:2}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-res"},'open ReactNative \n \nReScript React NativeDocsComponentsAPIs

Hello Reason React Native

· 5 min read
MoOx

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..379e279 --- /dev/null +++ b/blog/2021-05-04-hello-rescript-react-native/index.html @@ -0,0 +1,27 @@ + + + + + +Hello ReScript React Native | ReScript React Native + + + + + + + + + +
+

Hello ReScript React Native

· 5 min read
MoOx

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..27b73b5 --- /dev/null +++ b/blog/archive/index.html @@ -0,0 +1,21 @@ + + + + + +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..8574b6a --- /dev/null +++ b/blog/atom.xml @@ -0,0 +1,102 @@ + + + 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..3a4a166 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,85 @@ + + + + + +Blog | ReScript React Native + + + + + + + + + +
+

· 5 min read
MoOx

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.

· 5 min read
MoOx

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..e5db92a --- /dev/null +++ b/blog/rss.xml @@ -0,0 +1,96 @@ + + + + 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..8ab6cee --- /dev/null +++ b/blog/tags/hello/index.html @@ -0,0 +1,85 @@ + + + + + +2 posts tagged with "hello" | ReScript React Native + + + + + + + + + +
+

2 posts tagged with "hello"

View All Tags

· 5 min read
MoOx

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.

· 5 min read
MoOx

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..ae86fab --- /dev/null +++ b/blog/tags/index.html @@ -0,0 +1,21 @@ + + + + + +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..e159aa8 --- /dev/null +++ b/blog/tags/reason/index.html @@ -0,0 +1,79 @@ + + + + + +One post tagged with "reason" | ReScript React Native + + + + + + + + + +
+

One post tagged with "reason"

View All Tags

· 5 min read
MoOx

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..a3f4d3c --- /dev/null +++ b/blog/tags/rescript/index.html @@ -0,0 +1,27 @@ + + + + + +One post tagged with "rescript" | ReScript React Native + + + + + + + + + +
+

One post tagged with "rescript"

View All Tags

· 5 min read
MoOx

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..02f30d6 --- /dev/null +++ b/docs/accessibilityinfo/index.html @@ -0,0 +1,47 @@ + + + + + +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

isBoldTextEnabled

iOS only

To query whether bold text is currently enabled. Promise resolves to true when +bold text is enabled and false otherwise.

isBoldTextEnabled: unit => Js.Promise.t(bool)

isGrayscaleEnabled

iOS only

To query whether grayscale is currently enabled. Promise resolves to true when +grayscale is enabled and false otherwise.

isGrayscaleEnabled: unit => Js.Promise.t(bool)

isInvertColorsEnabled

iOS only

To query whether invert colors is currently enabled. Promise resolves to true +when invert colors is enabled and false otherwise.

isInvertColorsEnabled: unit => Js.Promise.t(bool)

isReduceMotionEnabled

To query whether reduce motion is currently enabled. Promise resolves to true +when reduce motion is enabled and false otherwise.

isReduceMotionEnabled: unit => Js.Promise.t(bool)

isReduceTransparencyEnabled

iOS only

To query whether reduce transparency is currently enabled. Promise resolves to +true when reduce transparency is enabled and false otherwise.

isReduceTransparencyEnabled: unit => Js.Promise.t(bool)

isScreenReaderEnabled

To query whether screen reader is currently enabled. Promise resolves to true +when screen reader is enabled and false otherwise.

isScreenReaderEnabled: unit => Js.Promise.t(bool)

setAccessibilityFocus

To set accessibility focus to a React component, identified by its nodeHandle. +On Android, this is equivalent to +UIManager.sendAccessibilityEvent(reactTag, UIManager.AccessibilityEventTypes.typeViewFocused)

setAccessibilityFocus: NativeTypes.nodeHandle => unit

announceForAccessibility

To post a string to be announced by the screen reader.

announceForAccessibility: string => unit

addEventListener

Add an event handler.

addEventListener: [
| #boldTextChanged(bool => unit)
| #grayscaleChanged(bool => unit)
| #invertColorsChanged(bool => unit)
| #reduceMotionChanged(bool => unit)
| #screenReaderChanged(bool => unit)
| #reduceTransparencyChanged(bool => unit)
| #announcementFinished(announcementResult => unit)
] => unit

Supported events:

  • boldTextChanged(bool => unit): iOS only. Fires when state of the bold text +toggle changes. The argument to the event handler is a bool which is true +when bold text is enabled and false otherwise.
  • grayscaleChanged(bool => unit): iOS only. Fires when state of the gray +scale toggle changes. The argument to the event handler is a bool which is +true when gray scale is enabled and false otherwise.
  • invertColorsChanged(bool => unit): iOS only. Fires when state of the +invert colors toggle changes. The argument to the event handler is a bool +which is true when invert colors is enabled and false otherwise.
  • reduceMotionChanged(bool => unit): Fires when state of the reduce motion +toggle changes. The argument to the event handler is a bool which is true +when reduce motion is enabled (or when "Transition Animation Scale" in +"Developer options" is "Animation off") and false otherwise.
  • screenReaderChanged(bool => unit): Fires when state of the screen reader +changes. The argument to the event handler is a bool which is true when a +screen reader is enabled and false otherwise.
  • reduceTransparencyChanged(bool => unit): iOS only. Fires when state of the +reduce transparency toggle changes. The argument to the event handler is a +bool which is true when reduce transparency is enabled and false +otherwise.
  • announcementFinished(announcementResult => unit): iOS only. Fires when the +screen reader has finished making an announcement. The argument to the event +handler is of type announcementResult.

removeEventListener

To remove an event handler.

See addEventListener for more details on supported +events.

+ + + + \ No newline at end of file diff --git a/docs/actionsheetios/index.html b/docs/actionsheetios/index.html new file mode 100644 index 0000000..f76a430 --- /dev/null +++ b/docs/actionsheetios/index.html @@ -0,0 +1,21 @@ + + + + + +ActionSheetIOS | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/activityindicator/index.html b/docs/activityindicator/index.html new file mode 100644 index 0000000..df6b740 --- /dev/null +++ b/docs/activityindicator/index.html @@ -0,0 +1,21 @@ + + + + + +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..c8f4f7a --- /dev/null +++ b/docs/alert/index.html @@ -0,0 +1,25 @@ + + + + + +Alert | ReScript React Native + + + + + + + + + +
+

Alert

Methods

alert

Launches an alert dialog with the specified title and 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 Example

open ReactNative

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

+ + + + \ No newline at end of file diff --git a/docs/animated/index.html b/docs/animated/index.html new file mode 100644 index 0000000..1a6a0b6 --- /dev/null +++ b/docs/animated/index.html @@ -0,0 +1,21 @@ + + + + + +Animated | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/animationframe/index.html b/docs/animationframe/index.html new file mode 100644 index 0000000..6a904fe --- /dev/null +++ b/docs/animationframe/index.html @@ -0,0 +1,28 @@ + + + + + +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..98644aa --- /dev/null +++ b/docs/apis/index.html @@ -0,0 +1,21 @@ + + + + + +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..453f926 --- /dev/null +++ b/docs/appearance/index.html @@ -0,0 +1,29 @@ + + + + + +Appearance | ReScript React Native + + + + + + + + + +
+

Appearance

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

Types

t

Returned from the getColorScheme method or useColorScheme hook, wrapped in +Js.Null.t to handle the allowed value null, which is returned when no +preference has been indicated. Other allowed values are "dark" and "light", +encapsulated as

Appearance.dark
Appearance.light

These values may be compared against what is returned by the method or hook, as +in the below example:

Appearance.getColorScheme() === Js.Null.return(Appearance.dark)

Methods

getColorScheme

To query the current preferred color scheme. Note that the preference may be +updated later, either through user action or automatically (e.g. on a schedule +based on the time of day).

getColorScheme: unit => Js.Null(t)

useColorScheme

To query the current preferred color scheme and subscribe to color scheme +updates.

useColorScheme: unit => Js.Null(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..22715a9 --- /dev/null +++ b/docs/appregistry/index.html @@ -0,0 +1,21 @@ + + + + + +AppRegistry | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/appstate/index.html b/docs/appstate/index.html new file mode 100644 index 0000000..8f22e7c --- /dev/null +++ b/docs/appstate/index.html @@ -0,0 +1,21 @@ + + + + + +AppState | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/asyncstorage/index.html b/docs/asyncstorage/index.html new file mode 100644 index 0000000..3ffd70b --- /dev/null +++ b/docs/asyncstorage/index.html @@ -0,0 +1,24 @@ + + + + + +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..2d4f583 --- /dev/null +++ b/docs/backhandler/index.html @@ -0,0 +1,21 @@ + + + + + +BackHandler | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/button/index.html b/docs/button/index.html new file mode 100644 index 0000000..de027e2 --- /dev/null +++ b/docs/button/index.html @@ -0,0 +1,21 @@ + + + + + +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..826bfff --- /dev/null +++ b/docs/cheatsheet/index.html @@ -0,0 +1,23 @@ + + + + + +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>
{42
->Js.Int.toString
->React.string}
</Text>

JSX Number (float)

JavaScript JSX Number (float)

<Text>4.2</Text>

JSX Number (float)

<Text>
{4.2
->Js.Float.toString
->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
->Belt.Array.mapWithIndex((item, index) =>
<Text
key=((index->Js.Int.toString)++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
->Belt.Option.map(thing =>
<Text>
{thing
->Js.String.toUpperCase
->React.string}
</Text>
)
->Belt.Option.getWithDefault(React.null)
}

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

{
something
->Js.Nullable.toOption /* convert undefined || string as option(string) */
->Belt.Option.map(thing =>
<Text>
{thing
->Js.String.toUpperCase
->React.string}
</Text>
)
->Belt.Option.getWithDefault(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 ReactNative.Style // this is useful since all units & style methods comes from Style module

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

Js.log(StyleSheet.flatten([|styles##container|]))

Concatenated styles

JavaScript Concatenated styles

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

Concatenated styles

open ReactNative.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.Style

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

Hello world

JavaScript Hello World

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

export default class HelloWorld extends Component {
render() {
return (
<View
style={{
flex: 1,
justifyContent: "center",
alignItems: "center",
}}
>
<Text>Hello, {this.props.name || "world"}!</Text>
</View>
);
}
}

Hello World

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

[@react.component]
let make = (~name=?) => {
<View
style={
viewStyle(~flex=1., ~justifyContent=`center, ~alignItems=`center, ())
}>
<Text>
{("Hello, " ++ name->Option.getWithDefault("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..931fba9 --- /dev/null +++ b/docs/clipboard/index.html @@ -0,0 +1,25 @@ + + + + + +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

To attempt reading content from the Clipboard; resolves to a string if +successful.

getString: unit => Js.Promise.t(string)

setString

To copy a string to the Clipbard.

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..539b86e --- /dev/null +++ b/docs/components/index.html @@ -0,0 +1,21 @@ + + + + + +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..42a0983 --- /dev/null +++ b/docs/datepickerandroid/index.html @@ -0,0 +1,25 @@ + + + + + +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..6ae5833 --- /dev/null +++ b/docs/datepickerios/index.html @@ -0,0 +1,25 @@ + + + + + +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..da212d3 --- /dev/null +++ b/docs/devsettings/index.html @@ -0,0 +1,24 @@ + + + + + +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..5ab5349 --- /dev/null +++ b/docs/dimensions/index.html @@ -0,0 +1,21 @@ + + + + + +Dimensions | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/drawerlayoutandroid/index.html b/docs/drawerlayoutandroid/index.html new file mode 100644 index 0000000..edfd768 --- /dev/null +++ b/docs/drawerlayoutandroid/index.html @@ -0,0 +1,21 @@ + + + + + +DrawerLayoutAndroid | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/dynamiccolorios/index.html b/docs/dynamiccolorios/index.html new file mode 100644 index 0000000..e630009 --- /dev/null +++ b/docs/dynamiccolorios/index.html @@ -0,0 +1,21 @@ + + + + + +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..91676fc --- /dev/null +++ b/docs/easing/index.html @@ -0,0 +1,21 @@ + + + + + +Easing | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/event/index.html b/docs/event/index.html new file mode 100644 index 0000000..596b583 --- /dev/null +++ b/docs/event/index.html @@ -0,0 +1,23 @@ + + + + + +Event | ReScript React Native + + + + + + + + + +
+

Event

These are the types of objects returned in Event callbacks. Types are +instances of syntheticEvent<'a> and responderSyntheticEvent<'a>.

Parametrised Types

syntheticEvent<'a>

type syntheticEvent<'a> = {
bubbles: Js.Nullable.t<bool>,
cancelable: Js.Nullable.t<bool>,
currentTarget: float,
defaultPrevented: Js.Nullable.t<bool>,
dispatchConfig: registrationName,
eventPhase: Js.Nullable.t<float>,
isTrusted: Js.Nullable.t<bool>,
nativeEvent: T._payload,
target: Js.Nullable.t<float>,
timeStamp: float,
_type: Js.Nullable.t<string>,
}

responderSyntheticEvent<'a>

responderSyntheticEvent<'a> adds the touchHistory key to +syntheticEvent<'a>

type responderSyntheticEvent<'a> = {
bubbles: Js.Nullable.t<bool>,
cancelable: Js.Nullable.t<bool>,
currentTarget: float,
defaultPrevented: Js.Nullable.t<bool>,
dispatchConfig: registrationName,
eventPhase: Js.Nullable.t<float>,
isTrusted: Js.Nullable.t<bool>,
nativeEvent: T._payload,
target: Js.Nullable.t<float>,
timeStamp: float,
_type: Js.Nullable.t<string>,
touchHistory: touchHistory,
}

Types

layoutEvent

type layoutEvent = syntheticEvent<layout>

where layout is defined as

type layout = {
x: float,
y: float,
width: float,
height: float,
}

pressEvent

type pressEvent = responderSyntheticEvent<pressEventPayload>

where pressEventPayload is defined as

type pressEventPayload = {
changedTouches: array(pressEventPayload),
force: float,
identifier: int,
locationX: float,
locationY: float,
pageX: float,
pageY: float,
target: Js.Nullable.t(float),
timestamp: float,
touches: array(pressEventPayload),
}

scrollEvent

type scrollEvent = syntheticEvent<scrollEventPayload>

where scrollEventPayload is defined as

type scrollEventPayload = {
contentInset,
contentOffset,
contentSize: dimensions,
layoutMeasurement: dimensions,
}

and contentInset, contentOffset and dimensions are defined as

type contentInset = {
bottom: float,
left: float,
right: float,
top: float,
}
type contentOffset = {
x: float,
y: float,
}
type dimensions = {
height: float,
width: float,
}

switchChangeEvent

type switchChangeEvent = syntheticEvent<switchChangePayload>

where switchChangePayload is defined as

type switchChangePayload = {value: bool}

targetEvent

type targetEvent = syntheticEvent<targetPayload>

where targetPayload is defined as

type targetPayload = {target: int}

textLayoutEvent

type textLayoutEvent = syntheticEvent<textLayouts>

where textLayouts and textLayout are defined as

type textLayouts = {lines: array(textLayout)}

and

type textLayout = {
x: float,
y: float,
width: float,
height: float,
ascender: float, // verify
capHeight: float, // verify
descender: float, // verify
text: string,
xHeight: float // verify
}
+ + + + \ No newline at end of file diff --git a/docs/eventsubscription/index.html b/docs/eventsubscription/index.html new file mode 100644 index 0000000..22db0dc --- /dev/null +++ b/docs/eventsubscription/index.html @@ -0,0 +1,21 @@ + + + + + +EventSubscription | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/example/index.html b/docs/example/index.html new file mode 100644 index 0000000..3d6f040 --- /dev/null +++ b/docs/example/index.html @@ -0,0 +1,45 @@ + + + + + +Example | ReScript React Native + + + + + + + + + +
+

Example

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

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

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 you only JavaScript file if you want to be full ReScript! It's just +a proxy to App.res application wrapper.

/**
* Do not modify this file - it is a proxy to your `App.re` file
* located in the `src/` folder.
*/
export { app as default } from "./src/App.bs.js";

./src/App.res

Please directly grab the +App.res +of our template, which will match React Native default Hello World!

Differences with React Native JavaScript

Beside ReScript syntax that is a bit different with JavaScript, you may have +noticed this 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 Reason, & let is the default as ReScript have a +specific way to allow mutable variables,
  • String in JSX must be quoted and explicitely referenced as React.string (you +will find similar specific React.* to specify null value (React.null), +children from an array React.array...)
  • References to styles keys aren't using dot notation like in JavaScript but +## instead thanks to ReScript syntax sugar for +direct JavaScript object access
  • You won't see any explicit export like in JavaScript. By default every +variables defined in a ReScript module is exposed.

Start this example

Now let's run this example.

In comparison with standard React Native development, the only thing you need to +be sure that you have successfully compiled App.res as App.bs.js like we +explained in the usage section.

As soon as ReScript compilation is successful, nothing should change for your +development process. You can normally start your React Native app via +react-native run-ios, react-native 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..37a6bd1 --- /dev/null +++ b/docs/flatlist/index.html @@ -0,0 +1,21 @@ + + + + + +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..e6fa773 --- /dev/null +++ b/docs/geolocation/index.html @@ -0,0 +1,26 @@ + + + + + +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..ffaac79 --- /dev/null +++ b/docs/global/index.html @@ -0,0 +1,23 @@ + + + + + +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..e69d699 --- /dev/null +++ b/docs/image/index.html @@ -0,0 +1,21 @@ + + + + + +Image | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/imagebackground/index.html b/docs/imagebackground/index.html new file mode 100644 index 0000000..126eb5e --- /dev/null +++ b/docs/imagebackground/index.html @@ -0,0 +1,21 @@ + + + + + +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..0b65b9e --- /dev/null +++ b/docs/imageeditor/index.html @@ -0,0 +1,23 @@ + + + + + +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..c15819c --- /dev/null +++ b/docs/imagepickerios/index.html @@ -0,0 +1,50 @@ + + + + + +ImagePickerIOS | ReScript React Native + + + + + + + + + +
+

ImagePickerIOS

Note

This API will be removed from React Native as part of the +Lean Core effort. +Please refer to the +community package +if you wish to use this component.

However note that more current packages such as • +react-native-image-picker +for which bindings are +available, or • +expo-image-picker are +recommended instead.


Before you may use this API, you need to link the RCTCameraRoll library to +your app and provide a description for your use of the Photo Library.

  • you need to add RCTCameraRoll.xcodeproj (located in the +node_modules/react-native/Libraries/CameraRoll subdirectory of your app) to +your project's Libraries tree in XCode, then
  • you need to specify libRCTCameraRoll.a under Link Binary with Libraries in +your app's Build Phases tab.
  • you also need to set the Privacy - Photo Library Usage Description (or +NSPhotoLibraryUsageDescription) key under Custom iOS Target Properties in +your apps' Info tab.

Types

imageUri

An alias for the string type

type imageUri = string

cameraDialogConfig

An abstract type which can be created using the constructor of the same name. +You may call the constructor as cameraDialogConfig() to use the default +values.

cameraDialogConfig: (~videoMode: bool=?, unit) => cameraDialogConfig

selectDialogConfig

An abstract type which can be created using the constructor of the same name. +You may call the constructor as selectDialogConfig() to use the default +values.

selectDialogConfig:
(~showImages: bool=?, ~showVideos: bool=?, unit) => selectDialogConfig

Methods

canUseCamera

Method to check whether the app has permissions to use the camera, takes a +callback of type bool => unit.

canUseCamera: (bool => unit) => unit

canRecordVideos

Method to check whether the app has permissions to record videos, takes a +callback of type bool => unit.

canRecordVideos: (bool => unit) => unit

openCameraDialog

Method to request the Camera dialog given a config (of type +cameraDialogConfig) to specify whether the camera is +launched in video mode. When an image or video is captured, onSuccess callback +is passed the returned imageUri, height and width; onError callback is +applied otherwise. As'error is an abstract type

openCameraDialog:
(
~config: cameraDialogConfig,
~onSuccess: (imageUri, ~height: float, ~width: float, unit) => unit,
~onError: 'error => unit
) =>
unit

openSelectDialog

Method to request the Image Gallery given a config (of type +openSelectDialog) to specify whether images and/or videos +should be listed. When an image or video is selected, onSuccess callback is +passed the returned imageUri, height and width; onError callback is +executed otherwise. As'error is an abstract type

openSelectDialog:
(
~config: selectDialogConfig,
~onSuccess: (imageUri, ~height: float, ~width: float, unit) => unit,
~onError: 'error => unit
) =>
unit
+ + + + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..484df2e --- /dev/null +++ b/docs/index.html @@ -0,0 +1,41 @@ + + + + + +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.

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..48be521 --- /dev/null +++ b/docs/inputaccessoryview/index.html @@ -0,0 +1,21 @@ + + + + + +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..5f009b4 --- /dev/null +++ b/docs/install/index.html @@ -0,0 +1,45 @@ + + + + + +Installation | ReScript React Native + + + + + + + + + +
+

Installation

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

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 to +React Native Getting Started documentation +in order to get the minimal requirements.

Create a new project with ReScript React Native

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

When you have correctly +react-native-cli +installed, you can run the following command:

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

💖 Your project is setup, you can just 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 about 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 project, it's really fast to get all the thing +you need to start using ReScript React Native right away!

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

Go into your project root & then install the requirements:

npm install rescript --save-dev
npm install @rescript/react rescript-react-native

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

{
"name": "my-rescript-react-native-app",
"reason": { "react-jsx": 3 },
"package-specs": {
"module": "es6",
"in-source": true
},
"suffix": ".bs.js",
"sources": [
{
"dir": "src",
"subdirs": true
}
],
"bs-dependencies": ["@rescript/react", "rescript-react-native"]
}

The main things you should notice here:

  • JavaScript generated will be using import & export (es6).
  • JavaScript generated files will have .bs.js extension (easy to find)
  • ReScript code will be compiled from src folder.
  • ReScript will use @rescript/react & rescript-react-native packages 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.60.* means it should work with react-native +^0.60.0.

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

  • react-native@0.60.8 should work with rescript-react-native@0.60.0
  • react-native@0.60.2 should work with rescript-react-native@0.60.4

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

+ + + + \ No newline at end of file diff --git a/docs/interactionmanager/index.html b/docs/interactionmanager/index.html new file mode 100644 index 0000000..a03a798 --- /dev/null +++ b/docs/interactionmanager/index.html @@ -0,0 +1,21 @@ + + + + + +InteractionManager | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/keyboard/index.html b/docs/keyboard/index.html new file mode 100644 index 0000000..d38c272 --- /dev/null +++ b/docs/keyboard/index.html @@ -0,0 +1,21 @@ + + + + + +Keyboard | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/keyboardavoidingview/index.html b/docs/keyboardavoidingview/index.html new file mode 100644 index 0000000..f022fb5 --- /dev/null +++ b/docs/keyboardavoidingview/index.html @@ -0,0 +1,21 @@ + + + + + +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..d3e529c --- /dev/null +++ b/docs/layoutanimation/index.html @@ -0,0 +1,39 @@ + + + + + +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": style(~flex=1., ~flexDirection=#column, ()),
"screen": style(~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={
open Style
style(
~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..396ce5e --- /dev/null +++ b/docs/linking/index.html @@ -0,0 +1,45 @@ + + + + + +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 the sendIntentWithExtras method for +sending text and data. May be created by the constructor of the same name.

external extra: (~key: string, ~value: 'a) => extra

url

type url = {url: string}

Methods

openURL

To attempt opening a URL. URL should be specified as string, and the method +returns unit wrapped in a promise. 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 => Js.Promise.t(unit)

canOpenURL

To determine whether a URL can be opened by registered applications. URL should +be specified as string, and the method returns bool wrapped in a promise. +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 => Js.Promise.t(bool)

getInitialURL

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

getInitialURL: unit => Js.Promise.t(Js.Null.t(string))

openSettings

As of React Native 0.60

Attempts to open the Settings app and display custom settings for the app, if +any. This method returns an unspecified object (type any) wrapped in a +promise.

openSettings: unit => Js.Promise.t<'a>

sendIntent

As of React Native 0.59.8

sendIntent: string => unit

To use Intent actions on Android for sending text to other apps. This method +returns unit.

sendIntentWithExtras

As of React Native 0.59.8

To use Intent actions on Android for sending text and data (to be provided as +an array of type extra objects) to other apps. This method returns unit.

sendIntentWithExtras: (string, array(extra)) => unit

where the type extra can be created with the extra constructor

extra: (~key: string, ~value: 'a) => extra

addEventListener

To specify a handler for the specified event type. Only the "url" event is +supported, which should be specified using the polymorphic variant `url. +The handler should be of type url => unit. The URL can be obtained +from the returned object using the .url property. This method returns unit.

addEventListener: ([ `url], url => unit) => unit

removeEventListener

To remove a handler for the specified event type. Only the "url" event is +supported, which should be specified using the polymorphic variant `url. +The handler should be of type url => unit. This method returns +unit.

removeEventListener([ `url], url => unit) => unit

Example

open ReactNative

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

let containerStyle = {
open Style
style(
~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 => s.url->Js.Console.warn

let handlePromise = url => {
open Js.Promise
Linking.openURL(url)
|> then_(() => resolve(dispatch(SetURL(Some(url)))))
|> catch(err => resolve(err->Js.Console.warn))
|> ignore
}

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

<View style=containerStyle>
<Text>
{Belt.Option.getWithDefault(state.url, "No URL requested")->React.string}
</Text>
<Button
onPress={_ =>
handlePromise(
"https://github.com/rescript-react-native/rescript-react-native/",
)}
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")} 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..8027b49 --- /dev/null +++ b/docs/logbox/index.html @@ -0,0 +1,21 @@ + + + + + +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

Console errors and warnings are displayed as on-screen notifications with a red or yellow badge, and the number of errors or warning in the console respectively. To view a console error or warnings, tap the notification to view the full screen information about the log and to paginiate through all of the logs in the console.

type signature

ignoreLogs: array(string) => unit

example

open ReactNative

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

ignoreAllLogs

These notifications can be hidden using ReactNative.LogBox.ignoreAllLogs(). This is useful when giving product demos, for example. Additionally, notifications can be hidden on a per-log basis via ReactNative.LogBox.ignoreLogs([|"Require cycle:"|]). This is useful when there's a noisy warning that cannot be fixed, like those in a third-party dependency.

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

type signature

ignoreAllLogs: unit => unit

example

open ReactNative

LogBox.ignoreAllLogs()
+ + + + \ No newline at end of file diff --git a/docs/maskedviewios/index.html b/docs/maskedviewios/index.html new file mode 100644 index 0000000..c7d0c00 --- /dev/null +++ b/docs/maskedviewios/index.html @@ -0,0 +1,23 @@ + + + + + +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..6643342 --- /dev/null +++ b/docs/modal/index.html @@ -0,0 +1,21 @@ + + + + + +Modal | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/nativeeventemitter/index.html b/docs/nativeeventemitter/index.html new file mode 100644 index 0000000..2f11bea --- /dev/null +++ b/docs/nativeeventemitter/index.html @@ -0,0 +1,21 @@ + + + + + +NativeEventEmitter | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/nativemodules/index.html b/docs/nativemodules/index.html new file mode 100644 index 0000000..53ff5b6 --- /dev/null +++ b/docs/nativemodules/index.html @@ -0,0 +1,21 @@ + + + + + +NativeModules | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/netinfo/index.html b/docs/netinfo/index.html new file mode 100644 index 0000000..4dfebb6 --- /dev/null +++ b/docs/netinfo/index.html @@ -0,0 +1,23 @@ + + + + + +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..625618f --- /dev/null +++ b/docs/packager/index.html @@ -0,0 +1,22 @@ + + + + + +Packager | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/panresponder/index.html b/docs/panresponder/index.html new file mode 100644 index 0000000..4ce102f --- /dev/null +++ b/docs/panresponder/index.html @@ -0,0 +1,46 @@ + + + + + +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

t is the abstract type for a PanResponder, which can be created by means of +the create method, given a config object

config

config is the abstract type for a custom PanResponder configuration; it can +be created by means of the config constructor

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=?,
unit
) => config

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 the ReScript JSX 3 syntax, 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

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

let containerStyle = {
open Style
style(
~width=windowWidth->dp,
~height=windowHeight->dp,
~justifyContent=#center,
~alignItems=#centerà
(),
)
}

let config = PanResponder.config(
~onMoveShouldSetPanResponder=(_e, _g) => true,
~onPanResponderRelease=(_e, g) =>
g["dx"] > 0.
? "You swiped right"->Js.Console.warn
: "You swiped left"->Js.Console.warn,
(),
)

let panResponder = PanResponder.create(config)

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..808e2d2 --- /dev/null +++ b/docs/permissionsandroid/index.html @@ -0,0 +1,36 @@ + + + + + +PermissionsAndroid | ReScript React Native + + + + + + + + + +
+

PermissionsAndroid

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.

PermissionsAndroid provides access to the permissions model avaiable since +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 will allow you to manage such permissions.

Types

Permission.t

Type for permissions that may be granted to the app. Available permissions are:

Permission.readCalendar
Permission.writeCalendar
Permission.camera
Permission.readContacts
Permission.writeContacts
Permission.getAccounts
Permission.accessFineLocation
Permission.accessCoarseLocation
Permission.recordAudio
Permission.readPhoneState
Permission.callPhone
Permission.readCallLog
Permission.writeCallLog
Permission.addVoicemail
Permission.useSip
Permission.processOutgoingCalls
Permission.bodySensors
Permission.sendSms
Permission.receiveSms
Permission.readSms
Permission.receiveWapPush
Permission.receiveMms
Permission.readExternalStorage
Permission.writeExternalStorage

Result.t

Type for the result of a request for some permission. Possible results are:

Result.granted
Result.denied
Result.neverAskAgain

rationale

To be used with the requestWithRationale method. May +be created by the constructor of the same name.

rationale:
(
~title: string,
~message: string,
~buttonPositive: string,
~buttonNegative: string=?,
~buttonNeutral: string=?,
unit
) =>
rationale

where

  • title is the title of the dialog,
  • message is the message of the dialog,
  • buttonPositive is the text of the positive button,
  • buttonNegative is the text of the negative button (optional), and
  • buttonNeutral is the text of the neutral button (optional).

dict

An extension of the Js.Dict.t type to allow keys of type Permission.t. +Values of keys may be accessed by the get method.

Methods

check

Method to check whether the specified permission has been granted to the app, +returns a bool wrapped in a promise.

check: Permission.t => Js.Promise.t(bool)

request

Method to request the specified permission, returns Result.t wrapped in a +promise.

request: Permission.t => Js.Promise.t(Result.t)

requestWithRationale

Method to request the specified permission with a rationale, returns Result.t +wrapped in a promise. It is advised to provide a rationale if users have +previously turned off the permission. Rationale will be presented to the user +only when necessary. For further information, please refer to the +official Android documentation.

requestWithRationale: (Permission.t, rationale) => Js.Promise.t(Result.t)

requestMultiple

Method to request multiple permissions within the same dialog prompted to the +user, returns dict wrapped in a promise.

requestMultiple: array(Permission.t) => Js.Promise.t(dict)

get

Getter method to access value of the specified permission in the dict +object returned by the requestMultiple method.

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..f2eb05b --- /dev/null +++ b/docs/picker/index.html @@ -0,0 +1,24 @@ + + + + + +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..3b1ba68 --- /dev/null +++ b/docs/pixelratio/index.html @@ -0,0 +1,21 @@ + + + + + +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..4d03e07 --- /dev/null +++ b/docs/platform/index.html @@ -0,0 +1,25 @@ + + + + + +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:

let styles = StyleSheet.create({
open Style
{
"wrapper": style(~width=pct(Platform.os == Platform.ios ? 100. : 200.), ()),
}
})

Platform.select

⚠️ Unsupported.

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

open Style
let styles = {
"wrapper": style(
~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,
(),
),
}->StyleSheet.create

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..bd15c44 --- /dev/null +++ b/docs/platformcolor/index.html @@ -0,0 +1,21 @@ + + + + + +PlatformColor | ReScript React Native + + + + + + + + + +
+

PlatformColor

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

Ios

Ios.get

Ios.get is used to get color information from UI Element Colors.

get: Ios.t => Color.t

Ios.get{n}

Methods to send fallbacks.

Android

Android.getAttr

Android.getAttr is used to get color information from android attributes.

getAttr: Android.t => Color.t

See: R.attr

Android.getColor

Android.getColor is used to get color information from android colors.

getColor: Android.t => Color.t

See: R.color

Android.get

Allow to get color or attr.

Android.get{n}

You may want to get multiple platform colors in case one is not supported by the system. In this case, you can use the get{n} function to retrieve the values. You can mix and match Android color and attributes in this call. The first value will be treated as default and rest will be treated as fallback.

Defined up to 7 arguments.

unsafeGet

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.

unsafeGet: string => Color.t

unsafeGet{n}

The unsafe version of get{n} where a string can be passed in. 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 rest will be treated as fallback.

Defined up to 7 arguments.

unsafeGetMultiple

The array version of unsafeGet{n} supporting arbitrary number of fallbacks.

unsafeGetMultiple: array(string) => Color.t

Example

open ReactNative
let styles = {
open Style
StyleSheet.create({
"container": style(
~color=switch Platform.os {
| os if os == Platform.android =>
PlatformColor.Android.get2(#primary_text_dark, #colorPrimary)
| os if os == Platform.ios => PlatformColor.Ios.get(#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..f3b6492 --- /dev/null +++ b/docs/pressable/index.html @@ -0,0 +1,21 @@ + + + + + +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. onPressOut is called when the press gesture is deactivated.

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

Example

open ReactNative

@react.component
let make = () =>
<Pressable
onPress={_ => Js.log("Pressed")}
style={({pressed}) => {
open Style
style(~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..666d813 --- /dev/null +++ b/docs/progressbarandroid/index.html @@ -0,0 +1,23 @@ + + + + + +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..867d9d5 --- /dev/null +++ b/docs/progressviewios/index.html @@ -0,0 +1,23 @@ + + + + + +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..ef5ee69 --- /dev/null +++ b/docs/pushnotificationios/index.html @@ -0,0 +1,25 @@ + + + + + +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..09d74f4 --- /dev/null +++ b/docs/refreshcontrol/index.html @@ -0,0 +1,21 @@ + + + + + +RefreshControl | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/safeareaview/index.html b/docs/safeareaview/index.html new file mode 100644 index 0000000..25eec78 --- /dev/null +++ b/docs/safeareaview/index.html @@ -0,0 +1,21 @@ + + + + + +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..5ac6ac8 --- /dev/null +++ b/docs/scrollview/index.html @@ -0,0 +1,25 @@ + + + + + +ScrollView | ReScript React Native + + + + + + + + + +
+

ScrollView

Methods

scrollTo

Scrolls to a given x, y offset, either immediately, with a smooth animation, +or, for Android only, a custom animation duration time.

let scrollParams = (~x: float, ~y: float, ~animated: bool=?, ~duration: float=?, unit) => unit

let scrollTo = (scrollView, scrollParams) => unit

scrollTo Example

open ReactNative

@react.component
let make = () => {
let scrollViewRef = React.useRef(Js.Nullable.null)
<ScrollView ref={scrollViewRef->Ref.value}>
<TouchableOpacity
onPress={_ =>
switch scrollViewRef.current->Js.Nullable.toOption {
| Some(scrollView) =>
scrollView->ScrollView.scrollTo(
ScrollView.scrollToParams(~x=0., ~y=0., ~animated=true, ()),
)
| _ => ()
}}>
<Text> {"ScrollTo 0, 0"->React.string} </Text>
</TouchableOpacity>
</ScrollView>
}

scrollToEnd

Scrolls to the end of the ScrollView with an animation. If this is a vertical +ScrollView scrolls to the bottom. If this is a horizontal ScrollView scrolls +to the right.

let scrollToEnd = (scrollView) => unit

scrollToEndWithOptions

Similar to scrollToEnd, with options for animation or, for Android only +duration.

let scrollToEndOptions = (~animated: bool=?, ~duration: float=?, unit) => unit

let scrollToEndWithOptions = (scrollView, scrollParams) => 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..9b63f14 --- /dev/null +++ b/docs/sectionlist/index.html @@ -0,0 +1,21 @@ + + + + + +SectionList | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/segmentedcontrolios/index.html b/docs/segmentedcontrolios/index.html new file mode 100644 index 0000000..6fb3546 --- /dev/null +++ b/docs/segmentedcontrolios/index.html @@ -0,0 +1,23 @@ + + + + + +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..836b72d --- /dev/null +++ b/docs/settings/index.html @@ -0,0 +1,21 @@ + + + + + +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..4b97245 --- /dev/null +++ b/docs/share/index.html @@ -0,0 +1,21 @@ + + + + + +Share | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/slider/index.html b/docs/slider/index.html new file mode 100644 index 0000000..8012e39 --- /dev/null +++ b/docs/slider/index.html @@ -0,0 +1,24 @@ + + + + + +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..6f3bd50 --- /dev/null +++ b/docs/snapshotviewios/index.html @@ -0,0 +1,21 @@ + + + + + +SnapshotViewIOS | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/soundmanager/index.html b/docs/soundmanager/index.html new file mode 100644 index 0000000..a5cf02d --- /dev/null +++ b/docs/soundmanager/index.html @@ -0,0 +1,21 @@ + + + + + +SoundManager | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/statusbar/index.html b/docs/statusbar/index.html new file mode 100644 index 0000000..18e9e8a --- /dev/null +++ b/docs/statusbar/index.html @@ -0,0 +1,21 @@ + + + + + +StatusBar | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/style/index.html b/docs/style/index.html new file mode 100644 index 0000000..00cfc73 --- /dev/null +++ b/docs/style/index.html @@ -0,0 +1,107 @@ + + + + + +Style | ReScript React Native + + + + + + + + + +
+

Style

Styles accepted by most components (thanks to a style prop) are defined using +style functions that prepare required object for React Native. 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 the style() constructor. That's +the simplest way to pass styles. You can also pass an array or list 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.

We have made different style constructors because React Native have various +components that accept different styles props. For example View doesn't accept +color (only Text does).

Table of Contents

Style Example

Since an example is worth a thousand words...

open ReactNative

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

@react.component
let make = (~isSomething) =>
<View style={styles["container"]}>
<View style={styles["cornerThing"]}>
<Text
style={
open Style
arrayOption([
Some(styles["text"]),
isSomething ? Some(style(~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 in various ways as you +can see in these random examples

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

offset

offset is used for shadowOffset & textShadowOffset.

Eg: ~shadowOffset=offset(~height=2., ~width=4.)

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.style

For convenience, this function allows you to prepare a style object with all +styles available in React Native. The nice side of this is that you can use this +function & not think about what component is going to use it. On the other hand, +this function can trigger React Native error screen (eg: if you pass color to +a View component).

style accepts all the Style Props:

⚠️ Internally, React Native codebase types for this function are called +____DangerouslyImpreciseStyle_Internal. That's why we created new functions: +viewStyle, textStyle & +imageStyle.

Style.viewStyle

This function accepts all React Native styles below:

Style.textStyle

This function accepts all React Native styles below:

Style.imageStyle

This function accepts all React Native styles below:

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=float)
  • translateY(~translateY=float)
  • skewX(~skewX=angle)
  • skewY(~skewY=angle)
Transform Examples
Transform with multiple transform
open Style
style(
~transform=[
perspective(~perspective=1000.),
rotateX(~rotateX=20.->deg),
rotateZ(~rotateZ=0.5->rad),
scale(~scale=0.95),
],
(),
)
Transform with an animated value
open Style
style(
~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
style(~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:

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:

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:

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:

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
style(~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={
open Style
array([styles["thing"], styles["whatever"]])
}
/>


Style.arrayOption

Accepts an array of optional styles as a single style.

<View
style={
open Style
arrayOption([
Some(styles["thing"]),
Some(styles["whatever"]),
optionalStyle,
cond ? Some(style(~prop=value, ())) : 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..c7e10e3 --- /dev/null +++ b/docs/stylesheet/index.html @@ -0,0 +1,40 @@ + + + + + +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 Js.t<'a> objects, with string keys and Style.t values. +Individual styles can be accessed using ##, followed by the name specified as +the key.

Note that using Style.array or Style.list to pass array<Style.t> or +list<Style.t> is illegal within a StyleSheet, even those are valid style +props for components. You may, howevever, use the flatten method +to convert array<Style.t> into a valid Style.t object.

create: Js.t<'a> => Js.t<'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 object 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

let borderStyle = {
open Style
style(~borderWidth=StyleSheet.hairlineWidth, ())
}

let styles = {
open Style
StyleSheet.create({
// style may be defined inline
"container": style(~flex=1., ~flexDirection=#column, ()),
"screen": style(~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..0af38e5 --- /dev/null +++ b/docs/switch/index.html @@ -0,0 +1,21 @@ + + + + + +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..a77a3a5 --- /dev/null +++ b/docs/text/index.html @@ -0,0 +1,21 @@ + + + + + +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..04b410e --- /dev/null +++ b/docs/textinput/index.html @@ -0,0 +1,21 @@ + + + + + +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..04b406b --- /dev/null +++ b/docs/timepickerandroid/index.html @@ -0,0 +1,23 @@ + + + + + +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..966caed --- /dev/null +++ b/docs/toastandroid/index.html @@ -0,0 +1,21 @@ + + + + + +ToastAndroid | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/toolbarandroid/index.html b/docs/toolbarandroid/index.html new file mode 100644 index 0000000..e8d41a5 --- /dev/null +++ b/docs/toolbarandroid/index.html @@ -0,0 +1,24 @@ + + + + + +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..46c7abe --- /dev/null +++ b/docs/touchablehighlight/index.html @@ -0,0 +1,21 @@ + + + + + +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..32945a3 --- /dev/null +++ b/docs/touchablenativefeedback/index.html @@ -0,0 +1,21 @@ + + + + + +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..40a3631 --- /dev/null +++ b/docs/touchableopacity/index.html @@ -0,0 +1,21 @@ + + + + + +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..ed8ec57 --- /dev/null +++ b/docs/touchablewithoutfeedback/index.html @@ -0,0 +1,21 @@ + + + + + +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..481776d --- /dev/null +++ b/docs/uimanager/index.html @@ -0,0 +1,21 @@ + + + + + +UIManager | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/usage/index.html b/docs/usage/index.html new file mode 100644 index 0000000..5a21e4e --- /dev/null +++ b/docs/usage/index.html @@ -0,0 +1,54 @@ + + + + + +Usage | ReScript React Native + + + + + + + + + +
+

Usage

When rescript, @rescript/react and rescript-react-native are installed, you +can run the following command

npm run rescript

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

This command should compile all .res files to their .bs.js counterparts.

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

You may also notice some compilation artifacts:

  • .bsb.lock
  • .merlin
  • lib/bs

You may want to gitignore all of these:

*.bs.js
.bsb.lock
.merlin
lib/bs

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

Automate compilation of *.res files

You have multipes way to not have to think about compilation for your daily +workflow

Compile ReScript files via IDE

To get the best development experience possible, we recommend you to use +VSCode with +ReScript plugin +extension. Optionally you can add +Flow Language Server +extension if you have existing JavaScript covered by Flow.

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

🎉 By having an IDE that handle ReScript compilation, you will not have to run a +command in the terminal to handle this & will just have to follow the standard +React Native workflow, your ReScript files being compiled to JavaScript.

You will also have inline errors & much more feature that won't be provided by +using a CLI workflow.

Vscode workflow

When you open VSCode 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 Vscode or a smiliar IDE to ease your day to day +development workflow, you should have a look to 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 around with +Metro Bundler running, which bundle the JavaScript files.

Now you need to also have a process watching for your ReScript files to compile +then to JavaScript. The easiest way is to rely on ReScript rescript watch +option -w:

npm run rescript build -w

If you are not familiar with ReScript rescript you should know that you might +sometimes have weird compilation errors due to outdated build artifacts. This +should not happen often but in case you are facing something weird, you can try +using rescript clean option

npm run rescript clean

You might want to add this two commands in your package.json scripts:

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

Note: you probably have start already.

If you are doing this change in your scripts, you can now use this development +workflow

CLI Development workflow

In one terminal:

npm run res:watch

As soon as .res files are being compiled to .bs.js, you can either start the +project on iOS Simulator (included in Xcode) or an Android Emulator (if you +are unfamiliar with Android Studio, you might be interested by +Genymotion).

In another terminal:

npm run ios

or

npm run android

This commands should open up a virtual device & start React Native +metro bundler. This packager will 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

This avoid rebuilding the entire native parts & will just start React Native +metro bundler.


Interoperability with JavaScript

Using JavaScript components from Reason

Check out +ReScript Import from/Export to JS page.

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 page

+ + + + \ No newline at end of file diff --git a/docs/vibration/index.html b/docs/vibration/index.html new file mode 100644 index 0000000..ef42389 --- /dev/null +++ b/docs/vibration/index.html @@ -0,0 +1,21 @@ + + + + + +Vibration | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/view/index.html b/docs/view/index.html new file mode 100644 index 0000000..fff50c6 --- /dev/null +++ b/docs/view/index.html @@ -0,0 +1,21 @@ + + + + + +View | ReScript React Native + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/viewpagerandroid/index.html b/docs/viewpagerandroid/index.html new file mode 100644 index 0000000..cced8bf --- /dev/null +++ b/docs/viewpagerandroid/index.html @@ -0,0 +1,23 @@ + + + + + +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..5c2de92 --- /dev/null +++ b/docs/virtualizedlist/index.html @@ -0,0 +1,21 @@ + + + + + +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..3943c06 --- /dev/null +++ b/docs/virtualizedsectionlist/index.html @@ -0,0 +1,21 @@ + + + + + +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..3db8ac9 --- /dev/null +++ b/docs/webview/index.html @@ -0,0 +1,23 @@ + + + + + +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..4b66b48 --- /dev/null +++ b/docs/yellowbox/index.html @@ -0,0 +1,24 @@ + + + + + +YellowBox | ReScript React Native + + + + + + + + + +
+

YellowBox

Warning messages are displayed in white on a yellow background; which is known +as a YellowBox. Warnings may be trigged with the Js.Console.warn function +included in ReScript.

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 in the YellowBox.

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 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 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..86ee630 --- /dev/null +++ b/index.html @@ -0,0 +1,21 @@ + + + + + +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..2ecfb8c --- /dev/null +++ b/search/index.html @@ -0,0 +1,21 @@ + + + + + +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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