basalt-core 0.0.0-rc5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cli/basalt.d.ts +3 -0
- package/dist/cli/basalt.d.ts.map +1 -0
- package/dist/cli/basalt.js +47 -0
- package/dist/cli/basalt.js.map +1 -0
- package/dist/cli/bundle-cli.d.ts +12 -0
- package/dist/cli/bundle-cli.d.ts.map +1 -0
- package/dist/cli/bundle-cli.js +124 -0
- package/dist/cli/bundle-cli.js.map +1 -0
- package/dist/cli/bundleWithAssets.d.ts +79 -0
- package/dist/cli/bundleWithAssets.d.ts.map +1 -0
- package/dist/cli/bundleWithAssets.js +198 -0
- package/dist/cli/bundleWithAssets.js.map +1 -0
- package/dist/cli/desktop.d.ts +339 -0
- package/dist/cli/desktop.d.ts.map +1 -0
- package/dist/cli/desktop.js +1029 -0
- package/dist/cli/desktop.js.map +1 -0
- package/dist/cli/doctor.d.ts +31 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +283 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/init.d.ts +77 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +442 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/metro.d.ts +49 -0
- package/dist/cli/metro.d.ts.map +1 -0
- package/dist/cli/metro.js +148 -0
- package/dist/cli/metro.js.map +1 -0
- package/dist/cli/packageApp.d.ts +102 -0
- package/dist/cli/packageApp.d.ts.map +1 -0
- package/dist/cli/packageApp.js +319 -0
- package/dist/cli/packageApp.js.map +1 -0
- package/dist/cli/steps.d.ts +34 -0
- package/dist/cli/steps.d.ts.map +1 -0
- package/dist/cli/steps.js +53 -0
- package/dist/cli/steps.js.map +1 -0
- package/dist/metro-config.d.ts +168 -0
- package/dist/metro-config.d.ts.map +1 -0
- package/dist/metro-config.js +671 -0
- package/dist/metro-config.js.map +1 -0
- package/dist/react-native.config.d.ts +7 -0
- package/dist/react-native.config.d.ts.map +1 -0
- package/dist/react-native.config.js +80 -0
- package/dist/react-native.config.js.map +1 -0
- package/dist/src/DragSource.d.ts +52 -0
- package/dist/src/DragSource.d.ts.map +1 -0
- package/dist/src/DragSource.js +97 -0
- package/dist/src/DragSource.js.map +1 -0
- package/dist/src/DropTarget.d.ts +58 -0
- package/dist/src/DropTarget.d.ts.map +1 -0
- package/dist/src/DropTarget.js +131 -0
- package/dist/src/DropTarget.js.map +1 -0
- package/dist/src/KeyHandler.d.ts +57 -0
- package/dist/src/KeyHandler.d.ts.map +1 -0
- package/dist/src/KeyHandler.js +48 -0
- package/dist/src/KeyHandler.js.map +1 -0
- package/dist/src/Menu.d.ts +72 -0
- package/dist/src/Menu.d.ts.map +1 -0
- package/dist/src/Menu.js +179 -0
- package/dist/src/Menu.js.map +1 -0
- package/dist/src/TitleBar.d.ts +75 -0
- package/dist/src/TitleBar.d.ts.map +1 -0
- package/dist/src/TitleBar.js +236 -0
- package/dist/src/TitleBar.js.map +1 -0
- package/dist/src/Window.d.ts +87 -0
- package/dist/src/Window.d.ts.map +1 -0
- package/dist/src/Window.js +248 -0
- package/dist/src/Window.js.map +1 -0
- package/dist/src/closeRequest.d.ts +55 -0
- package/dist/src/closeRequest.d.ts.map +1 -0
- package/dist/src/closeRequest.js +134 -0
- package/dist/src/closeRequest.js.map +1 -0
- package/dist/src/index.d.ts +45 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +92 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/overrides/Alert.d.ts +69 -0
- package/dist/src/overrides/Alert.d.ts.map +1 -0
- package/dist/src/overrides/Alert.js +112 -0
- package/dist/src/overrides/Alert.js.map +1 -0
- package/dist/src/overrides/BaseViewConfig.d.ts +28 -0
- package/dist/src/overrides/BaseViewConfig.d.ts.map +1 -0
- package/dist/src/overrides/BaseViewConfig.js +72 -0
- package/dist/src/overrides/BaseViewConfig.js.map +1 -0
- package/dist/src/overrides/Platform.linux.d.ts +10 -0
- package/dist/src/overrides/Platform.linux.d.ts.map +1 -0
- package/dist/src/overrides/Platform.linux.js +15 -0
- package/dist/src/overrides/Platform.linux.js.map +1 -0
- package/dist/src/overrides/Platform.macos.d.ts +10 -0
- package/dist/src/overrides/Platform.macos.d.ts.map +1 -0
- package/dist/src/overrides/Platform.macos.js +15 -0
- package/dist/src/overrides/Platform.macos.js.map +1 -0
- package/dist/src/overrides/Platform.windows.d.ts +10 -0
- package/dist/src/overrides/Platform.windows.d.ts.map +1 -0
- package/dist/src/overrides/Platform.windows.js +15 -0
- package/dist/src/overrides/Platform.windows.js.map +1 -0
- package/dist/src/overrides/ReactDevToolsSettingsManager.d.ts +24 -0
- package/dist/src/overrides/ReactDevToolsSettingsManager.d.ts.map +1 -0
- package/dist/src/overrides/ReactDevToolsSettingsManager.js +30 -0
- package/dist/src/overrides/ReactDevToolsSettingsManager.js.map +1 -0
- package/dist/src/overrides/RefreshControl.d.ts +52 -0
- package/dist/src/overrides/RefreshControl.d.ts.map +1 -0
- package/dist/src/overrides/RefreshControl.js +92 -0
- package/dist/src/overrides/RefreshControl.js.map +1 -0
- package/dist/src/overrides/ScrollView.d.ts +39 -0
- package/dist/src/overrides/ScrollView.d.ts.map +1 -0
- package/dist/src/overrides/ScrollView.js +59 -0
- package/dist/src/overrides/ScrollView.js.map +1 -0
- package/dist/src/overrides/Share.d.ts +96 -0
- package/dist/src/overrides/Share.d.ts.map +1 -0
- package/dist/src/overrides/Share.js +97 -0
- package/dist/src/overrides/Share.js.map +1 -0
- package/dist/src/overrides/TextInput.d.ts +81 -0
- package/dist/src/overrides/TextInput.d.ts.map +1 -0
- package/dist/src/overrides/TextInput.js +213 -0
- package/dist/src/overrides/TextInput.js.map +1 -0
- package/dist/src/overrides/View.d.ts +36 -0
- package/dist/src/overrides/View.d.ts.map +1 -0
- package/dist/src/overrides/View.js +99 -0
- package/dist/src/overrides/View.js.map +1 -0
- package/dist/src/overrides/createPlatform.d.ts +32 -0
- package/dist/src/overrides/createPlatform.d.ts.map +1 -0
- package/dist/src/overrides/createPlatform.js +84 -0
- package/dist/src/overrides/createPlatform.js.map +1 -0
- package/dist/src/overrides/setUpDeveloperTools.d.ts +28 -0
- package/dist/src/overrides/setUpDeveloperTools.d.ts.map +1 -0
- package/dist/src/overrides/setUpDeveloperTools.js +84 -0
- package/dist/src/overrides/setUpDeveloperTools.js.map +1 -0
- package/dist/src/overrides/setUpXHR.d.ts +46 -0
- package/dist/src/overrides/setUpXHR.d.ts.map +1 -0
- package/dist/src/overrides/setUpXHR.js +236 -0
- package/dist/src/overrides/setUpXHR.js.map +1 -0
- package/dist/src/quitRequest.d.ts +55 -0
- package/dist/src/quitRequest.d.ts.map +1 -0
- package/dist/src/quitRequest.js +121 -0
- package/dist/src/quitRequest.js.map +1 -0
- package/dist/src/resourcePath.d.ts +18 -0
- package/dist/src/resourcePath.d.ts.map +1 -0
- package/dist/src/resourcePath.js +31 -0
- package/dist/src/resourcePath.js.map +1 -0
- package/dist/src/responseBody.d.ts +76 -0
- package/dist/src/responseBody.d.ts.map +1 -0
- package/dist/src/responseBody.js +94 -0
- package/dist/src/responseBody.js.map +1 -0
- package/dist/src/responseHeaders.d.ts +40 -0
- package/dist/src/responseHeaders.d.ts.map +1 -0
- package/dist/src/responseHeaders.js +75 -0
- package/dist/src/responseHeaders.js.map +1 -0
- package/dist/src/titleBarState.d.ts +43 -0
- package/dist/src/titleBarState.d.ts.map +1 -0
- package/dist/src/titleBarState.js +77 -0
- package/dist/src/titleBarState.js.map +1 -0
- package/dist/src/useContextMenu.d.ts +113 -0
- package/dist/src/useContextMenu.d.ts.map +1 -0
- package/dist/src/useContextMenu.js +109 -0
- package/dist/src/useContextMenu.js.map +1 -0
- package/dist/src/useDialog.d.ts +98 -0
- package/dist/src/useDialog.d.ts.map +1 -0
- package/dist/src/useDialog.js +112 -0
- package/dist/src/useDialog.js.map +1 -0
- package/dist/src/useDisplays.d.ts +70 -0
- package/dist/src/useDisplays.d.ts.map +1 -0
- package/dist/src/useDisplays.js +118 -0
- package/dist/src/useDisplays.js.map +1 -0
- package/dist/src/useHandledKeys.d.ts +38 -0
- package/dist/src/useHandledKeys.d.ts.map +1 -0
- package/dist/src/useHandledKeys.js +70 -0
- package/dist/src/useHandledKeys.js.map +1 -0
- package/dist/src/useWindow.d.ts +140 -0
- package/dist/src/useWindow.d.ts.map +1 -0
- package/dist/src/useWindow.js +233 -0
- package/dist/src/useWindow.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/native/CMakeLists.txt +355 -0
- package/native/bootstrap.sh +613 -0
- package/native/cmake/CompilerFlags.cmake +49 -0
- package/native/cmake/Expo.cmake +125 -0
- package/native/cmake/ReactNativeCore.cmake +612 -0
- package/native/cmake/Reanimated.cmake +108 -0
- package/native/cmake/Skia.cmake +379 -0
- package/native/cmake/ThirdParty.cmake +290 -0
- package/native/cmake/Worklets.cmake +67 -0
- package/native/cmake/codegen/CMakeLists.txt +32 -0
- package/native/core/AppIdentity.cpp +85 -0
- package/native/core/AppIdentity.h +59 -0
- package/native/core/AppPaths.cpp +96 -0
- package/native/core/AppPaths.h +53 -0
- package/native/core/AppearanceModule.cpp +60 -0
- package/native/core/AppearanceModule.h +40 -0
- package/native/core/Backface.h +59 -0
- package/native/core/BlobModule.cpp +283 -0
- package/native/core/BlobModule.h +76 -0
- package/native/core/BlobRegistry.cpp +75 -0
- package/native/core/BlobRegistry.h +44 -0
- package/native/core/ColorScheme.cpp +105 -0
- package/native/core/ColorScheme.h +59 -0
- package/native/core/ComponentRegistry.h +30 -0
- package/native/core/ControlMetrics.h +37 -0
- package/native/core/CoreModules.cpp +592 -0
- package/native/core/CoreModules.h +308 -0
- package/native/core/DebuggingOverlay.cpp +106 -0
- package/native/core/DebuggingOverlay.h +65 -0
- package/native/core/DesktopControls.cpp +232 -0
- package/native/core/DesktopControls.h +170 -0
- package/native/core/DevBundle.cpp +108 -0
- package/native/core/DevBundle.h +69 -0
- package/native/core/DevMenu.cpp +99 -0
- package/native/core/DevMenu.h +75 -0
- package/native/core/DialogModule.cpp +150 -0
- package/native/core/DialogModule.h +51 -0
- package/native/core/DragAndDrop.cpp +45 -0
- package/native/core/DragAndDrop.h +225 -0
- package/native/core/ExpoImageComponent.cpp +79 -0
- package/native/core/ExpoImageComponent.h +80 -0
- package/native/core/ExpoModules.cpp +415 -0
- package/native/core/ExpoModules.h +115 -0
- package/native/core/ExpoRuntime.cpp +366 -0
- package/native/core/ExpoRuntime.h +42 -0
- package/native/core/FocusRing.h +36 -0
- package/native/core/FontRegistry.h +51 -0
- package/native/core/GestureHandlerModule.cpp +136 -0
- package/native/core/GestureHandlerModule.h +71 -0
- package/native/core/Gestures.cpp +533 -0
- package/native/core/Gestures.h +145 -0
- package/native/core/HoverTracker.cpp +69 -0
- package/native/core/HoverTracker.h +109 -0
- package/native/core/HttpClient.cpp +282 -0
- package/native/core/ImageBytes.cpp +205 -0
- package/native/core/ImageBytes.h +29 -0
- package/native/core/ImageCache.cpp +51 -0
- package/native/core/ImageCache.h +89 -0
- package/native/core/JsRuntimeAccess.cpp +70 -0
- package/native/core/JsRuntimeAccess.h +60 -0
- package/native/core/JsiPromise.h +51 -0
- package/native/core/KeyEvents.cpp +116 -0
- package/native/core/KeyEvents.h +144 -0
- package/native/core/LogBoxSurface.cpp +46 -0
- package/native/core/LogBoxSurface.h +68 -0
- package/native/core/MenuModel.h +117 -0
- package/native/core/MenuModule.cpp +209 -0
- package/native/core/MenuModule.h +66 -0
- package/native/core/MountingWalk.h +524 -0
- package/native/core/PackageModules.cpp.in +25 -0
- package/native/core/PackageModules.h +50 -0
- package/native/core/PlatformConstantsModule.cpp +63 -0
- package/native/core/PlatformConstantsModule.h +64 -0
- package/native/core/PlatformServices.h +213 -0
- package/native/core/PointerButtons.h +63 -0
- package/native/core/PullToRefresh.cpp +57 -0
- package/native/core/PullToRefresh.h +73 -0
- package/native/core/ReanimatedCompat.h +47 -0
- package/native/core/ReanimatedModule.cpp +203 -0
- package/native/core/ReanimatedModule.h +55 -0
- package/native/core/ScrollAnimation.cpp +59 -0
- package/native/core/ScrollAnimation.h +70 -0
- package/native/core/ScrollBounds.cpp +26 -0
- package/native/core/ScrollBounds.h +68 -0
- package/native/core/ScrollIndicator.cpp +50 -0
- package/native/core/ScrollIndicator.h +69 -0
- package/native/core/ScrollMomentum.cpp +71 -0
- package/native/core/ScrollMomentum.h +73 -0
- package/native/core/ScrollSnap.cpp +123 -0
- package/native/core/ScrollSnap.h +80 -0
- package/native/core/ShareFallback.cpp +101 -0
- package/native/core/ShareFallback.h +45 -0
- package/native/core/SkiaPictureViewComponent.cpp +11 -0
- package/native/core/SkiaPictureViewComponent.h +47 -0
- package/native/core/SourceCodeModule.cpp +55 -0
- package/native/core/SourceCodeModule.h +53 -0
- package/native/core/StatusBarModule.cpp +23 -0
- package/native/core/StatusBarModule.h +42 -0
- package/native/core/TestDialog.cpp +148 -0
- package/native/core/TestDialog.h +96 -0
- package/native/core/TestKeys.cpp +78 -0
- package/native/core/TestKeys.h +50 -0
- package/native/core/TestQuitFile.cpp +33 -0
- package/native/core/TestQuitFile.h +60 -0
- package/native/core/TestSettle.h +192 -0
- package/native/core/TitleBarRegions.h +31 -0
- package/native/core/TurboModuleProxy.cpp +51 -0
- package/native/core/TurboModuleProxy.h +46 -0
- package/native/core/UIManagerAccess.cpp +43 -0
- package/native/core/UIManagerAccess.h +43 -0
- package/native/core/WindowBoundsCache.cpp +319 -0
- package/native/core/WindowControl.h +235 -0
- package/native/core/WindowHost.h +158 -0
- package/native/core/WindowMethods.cpp +167 -0
- package/native/core/WindowMethods.h +84 -0
- package/native/core/WindowsModule.cpp +448 -0
- package/native/core/WindowsModule.h +133 -0
- package/native/core/WorkletsModule.cpp +199 -0
- package/native/core/WorkletsModule.h +57 -0
- package/native/core/portability_probe.cpp +210 -0
- package/native/tests/EventRecorder.h +124 -0
- package/native/tests/TestHarness.cpp +109 -0
- package/native/tests/TestHarness.h +89 -0
- package/native/tests/TreeDump.h +49 -0
- package/native/tests/test_app_identity.cpp +114 -0
- package/native/tests/test_app_paths.cpp +48 -0
- package/native/tests/test_appearance.cpp +107 -0
- package/native/tests/test_backface.cpp +79 -0
- package/native/tests/test_blobs.cpp +157 -0
- package/native/tests/test_controls.cpp +185 -0
- package/native/tests/test_devbundle.cpp +103 -0
- package/native/tests/test_drag_and_drop.cpp +143 -0
- package/native/tests/test_gestures.cpp +331 -0
- package/native/tests/test_hover.cpp +92 -0
- package/native/tests/test_image_cache.cpp +109 -0
- package/native/tests/test_js_runtime_access.cpp +137 -0
- package/native/tests/test_key_events.cpp +235 -0
- package/native/tests/test_momentum.cpp +138 -0
- package/native/tests/test_quit_file.cpp +104 -0
- package/native/tests/test_scroll_animation.cpp +120 -0
- package/native/tests/test_scroll_bounds.cpp +66 -0
- package/native/tests/test_scroll_indicator.cpp +149 -0
- package/native/tests/test_scroll_snap.cpp +112 -0
- package/native/tests/test_settle.cpp +115 -0
- package/native/tests/test_share.cpp +75 -0
- package/native/tests/test_sourcecode.cpp +62 -0
- package/native/tests/test_window_close.cpp +119 -0
- package/native/tests/test_window_limits.cpp +123 -0
- package/package.json +43 -0
- package/react-native.config.js +86 -0
- package/supported-versions.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../metro-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native.config.d.ts","sourceRoot":"","sources":["../react-native.config.js"],"names":[],"mappings":"4BAiCc;IAAC,aAAa,EAAE,MAAM,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,IAAI,CAAA;CAAC;AAwCzE,4CAA4C;AAC5C,wBADW,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CACnB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What React Native's CLI reads out of this package.
|
|
3
|
+
*
|
|
4
|
+
* An entry per platform, without which the CLI does not believe these are
|
|
5
|
+
* platforms and `react-native bundle --platform macos` is rejected before Metro
|
|
6
|
+
* sees it.
|
|
7
|
+
*
|
|
8
|
+
* Commands are not here. `run-linux` needs a GTK host to run, so it belongs to
|
|
9
|
+
* basalt-gtk -- the CLI reads a react-native.config.js out of every
|
|
10
|
+
* dependency, so an app that has only the AppKit package never sees a command it
|
|
11
|
+
* could not have used.
|
|
12
|
+
*
|
|
13
|
+
* `projectConfig` returning null for a project with no native directory is how
|
|
14
|
+
* the CLI is told "this project does not target that platform", and is what
|
|
15
|
+
* keeps the command out of the way in an app that only builds for iOS. Today
|
|
16
|
+
* every project targets all three, because there is no per-project native code
|
|
17
|
+
* to look for yet; when there is, this is where the check goes.
|
|
18
|
+
*
|
|
19
|
+
* @format
|
|
20
|
+
*/
|
|
21
|
+
// Checked, not compiled.
|
|
22
|
+
//
|
|
23
|
+
// This file stays JavaScript on purpose, and it is the only one in the package
|
|
24
|
+
// that does. React Native's CLI reads it from `node_modules/<package>/` by
|
|
25
|
+
// path convention rather than through `exports`, so it has to be loadable as
|
|
26
|
+
// CommonJS at exactly this path -- and what it exports is a data structure,
|
|
27
|
+
// which is the one shape types buy nothing to write and everything to check.
|
|
28
|
+
// `@ts-check` gives the checking without putting a tool this project does not
|
|
29
|
+
// control behind a build step.
|
|
30
|
+
// @ts-check
|
|
31
|
+
'use strict';
|
|
32
|
+
/** @typedef {{projectConfig: () => object, dependencyConfig: () => null}} PlatformEntry */
|
|
33
|
+
// `./dist/metro-config`, not `./metro-config`: that file is TypeScript now and
|
|
34
|
+
// this one is not compiled, so the sibling it used to sit beside is no longer
|
|
35
|
+
// there. This is the file React Native's CLI loads from the package root, so
|
|
36
|
+
// it must resolve with nothing but Node.
|
|
37
|
+
// Required from `dist` at runtime, typed from the source.
|
|
38
|
+
//
|
|
39
|
+
// They are the same module. Splitting them this way is what stops checking
|
|
40
|
+
// this file from depending on the output of the very compilation that checks
|
|
41
|
+
// it -- `./dist/metro-config.d.ts` does not exist yet on a clean build, and a
|
|
42
|
+
// config file that only type-checks on the second run is a trap.
|
|
43
|
+
//
|
|
44
|
+
// The path is built rather than written so that TypeScript does not try to
|
|
45
|
+
// resolve it; the cast beside it says what it is.
|
|
46
|
+
const metroConfig = /** @type {typeof import('./metro-config')} */ (require(`${__dirname}/dist/metro-config`));
|
|
47
|
+
const DESKTOP_PLATFORMS = metroConfig.DESKTOP_PLATFORMS;
|
|
48
|
+
// The same entry for each. They differ in their view layer and in nothing the
|
|
49
|
+
// CLI can see, which is the whole argument of this project restated as four
|
|
50
|
+
// lines of configuration.
|
|
51
|
+
//
|
|
52
|
+
// Deliberately no `npmPackageName`, which is the one field that looks obviously
|
|
53
|
+
// right and is wrong here.
|
|
54
|
+
//
|
|
55
|
+
// Setting it tells the CLI this is an *out-of-tree platform* in the
|
|
56
|
+
// react-native-macos and react-native-windows sense: a fork. It then installs
|
|
57
|
+
// `reactNativePlatformResolver`, which rewrites every `react-native/...` import
|
|
58
|
+
// to `basalt-core/...` when bundling, and requires this package to
|
|
59
|
+
// export `./setup-env`. Both are correct for a fork that vendors React Native's
|
|
60
|
+
// JavaScript. This package vendors none of it -- it redirects nine of React
|
|
61
|
+
// Native's own shims to their existing `.android.js` siblings and overrides two
|
|
62
|
+
// files -- so the rewrite sends every import into a package that does not
|
|
63
|
+
// contain it.
|
|
64
|
+
//
|
|
65
|
+
// Without the field these are still platforms the CLI accepts, and resolution
|
|
66
|
+
// stays with `withDesktopPlatforms` in metro-config.js, which is where the
|
|
67
|
+
// actual policy lives.
|
|
68
|
+
/** @type {Record<string, PlatformEntry>} */
|
|
69
|
+
const platforms = {};
|
|
70
|
+
for (const name of DESKTOP_PLATFORMS) {
|
|
71
|
+
platforms[name] = {
|
|
72
|
+
projectConfig: () => ({}),
|
|
73
|
+
// No autolinking: nothing here has native code to link yet, and claiming
|
|
74
|
+
// otherwise would make the CLI generate references to files that do not
|
|
75
|
+
// exist.
|
|
76
|
+
dependencyConfig: () => null,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
module.exports = { platforms };
|
|
80
|
+
//# sourceMappingURL=react-native.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native.config.js","sourceRoot":"","sources":["../react-native.config.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,yBAAyB;AACzB,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,+BAA+B;AAC/B,YAAY;AACZ,YAAY,CAAC;AAEb,2FAA2F;AAE3F,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,yCAAyC;AACzC,0DAA0D;AAC1D,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,iEAAiE;AACjE,EAAE;AACF,2EAA2E;AAC3E,kDAAkD;AAClD,MAAM,WAAW,GAAG,8CAA8C,CAAC,CACjE,OAAO,CAAC,GAAG,SAAS,oBAAoB,CAAC,CAC1C,CAAC;AACF,MAAM,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;AAExD,8EAA8E;AAC9E,4EAA4E;AAC5E,0BAA0B;AAC1B,EAAE;AACF,gFAAgF;AAChF,2BAA2B;AAC3B,EAAE;AACF,oEAAoE;AACpE,8EAA8E;AAC9E,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAChF,4EAA4E;AAC5E,gFAAgF;AAChF,0EAA0E;AAC1E,cAAc;AACd,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,uBAAuB;AACvB,4CAA4C;AAC5C,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;IACrC,SAAS,CAAC,IAAI,CAAC,GAAG;QAChB,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACzB,yEAAyE;QACzE,wEAAwE;QACxE,SAAS;QACT,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,EAAC,SAAS,EAAC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `<DragSource>` -- a view that can be dragged out of the app.
|
|
3
|
+
*
|
|
4
|
+
* The other direction from `<DropTarget>`, and the half people forget: a file
|
|
5
|
+
* manager needs it, and so does anything that lets you drag a row into another
|
|
6
|
+
* application.
|
|
7
|
+
*
|
|
8
|
+
* ## Why the payload is a prop and not a callback
|
|
9
|
+
*
|
|
10
|
+
* Every toolkit owns the gesture. `GtkDragSource`,
|
|
11
|
+
* `beginDraggingSessionWithItems:` and `DoDragDrop` all start the drag
|
|
12
|
+
* themselves and ask what is being dragged *synchronously*, on the UI thread.
|
|
13
|
+
* An app asked at that moment would have to answer from JavaScript on another
|
|
14
|
+
* thread -- the same problem `useCloseRequest` has, solved the same way: say it
|
|
15
|
+
* beforehand.
|
|
16
|
+
*
|
|
17
|
+
* So this is declarative. A view says what it represents, and the drag carries
|
|
18
|
+
* that. Changing the prop changes what the next drag carries; there is no
|
|
19
|
+
* moment at which an app is consulted.
|
|
20
|
+
*
|
|
21
|
+
* ## What can be dragged
|
|
22
|
+
*
|
|
23
|
+
* A file path or a line of text, which are the two every desktop understands.
|
|
24
|
+
* A file is offered as a file URL, so another application receives it as a
|
|
25
|
+
* file rather than as its name.
|
|
26
|
+
*
|
|
27
|
+
* Like `<DropTarget>`, this uses `nativeID` and therefore cannot also carry an
|
|
28
|
+
* app's own -- see that file for why the trade is worth it.
|
|
29
|
+
*
|
|
30
|
+
* @format
|
|
31
|
+
*/
|
|
32
|
+
import * as React from 'react';
|
|
33
|
+
import type { ViewProps } from 'react-native';
|
|
34
|
+
export type DragSourceProps = ViewProps & {
|
|
35
|
+
/** An absolute path. Dragged out as a file URL. */
|
|
36
|
+
file?: string;
|
|
37
|
+
/** A line of text. Ignored when `file` is set. */
|
|
38
|
+
text?: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* The nativeID a view carries to be draggable.
|
|
42
|
+
*
|
|
43
|
+
* Files win over text where both are given, which is what the host does too:
|
|
44
|
+
* a desktop dragging a file offers its name as text anyway, so the file is the
|
|
45
|
+
* more specific answer.
|
|
46
|
+
*/
|
|
47
|
+
export declare function dragSourceId({ file, text }: {
|
|
48
|
+
file?: string;
|
|
49
|
+
text?: string;
|
|
50
|
+
}): string;
|
|
51
|
+
export declare function DragSource({ file, text, ...rest }: DragSourceProps): React.ReactElement;
|
|
52
|
+
//# sourceMappingURL=DragSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DragSource.d.ts","sourceRoot":"","sources":["../../src/DragSource.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACxC,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAKF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,EAAE;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAWjF;AAED,wBAAgB,UAAU,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAC,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAGrF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.dragSourceId = dragSourceId;
|
|
37
|
+
exports.DragSource = DragSource;
|
|
38
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
+
/**
|
|
40
|
+
* `<DragSource>` -- a view that can be dragged out of the app.
|
|
41
|
+
*
|
|
42
|
+
* The other direction from `<DropTarget>`, and the half people forget: a file
|
|
43
|
+
* manager needs it, and so does anything that lets you drag a row into another
|
|
44
|
+
* application.
|
|
45
|
+
*
|
|
46
|
+
* ## Why the payload is a prop and not a callback
|
|
47
|
+
*
|
|
48
|
+
* Every toolkit owns the gesture. `GtkDragSource`,
|
|
49
|
+
* `beginDraggingSessionWithItems:` and `DoDragDrop` all start the drag
|
|
50
|
+
* themselves and ask what is being dragged *synchronously*, on the UI thread.
|
|
51
|
+
* An app asked at that moment would have to answer from JavaScript on another
|
|
52
|
+
* thread -- the same problem `useCloseRequest` has, solved the same way: say it
|
|
53
|
+
* beforehand.
|
|
54
|
+
*
|
|
55
|
+
* So this is declarative. A view says what it represents, and the drag carries
|
|
56
|
+
* that. Changing the prop changes what the next drag carries; there is no
|
|
57
|
+
* moment at which an app is consulted.
|
|
58
|
+
*
|
|
59
|
+
* ## What can be dragged
|
|
60
|
+
*
|
|
61
|
+
* A file path or a line of text, which are the two every desktop understands.
|
|
62
|
+
* A file is offered as a file URL, so another application receives it as a
|
|
63
|
+
* file rather than as its name.
|
|
64
|
+
*
|
|
65
|
+
* Like `<DropTarget>`, this uses `nativeID` and therefore cannot also carry an
|
|
66
|
+
* app's own -- see that file for why the trade is worth it.
|
|
67
|
+
*
|
|
68
|
+
* @format
|
|
69
|
+
*/
|
|
70
|
+
const React = __importStar(require("react"));
|
|
71
|
+
const react_native_1 = require("react-native");
|
|
72
|
+
// Must match kDragSourceIdPrefix in native/core/DragAndDrop.h.
|
|
73
|
+
const MARKER_PREFIX = 'basalt-drag:';
|
|
74
|
+
/**
|
|
75
|
+
* The nativeID a view carries to be draggable.
|
|
76
|
+
*
|
|
77
|
+
* Files win over text where both are given, which is what the host does too:
|
|
78
|
+
* a desktop dragging a file offers its name as text anyway, so the file is the
|
|
79
|
+
* more specific answer.
|
|
80
|
+
*/
|
|
81
|
+
function dragSourceId({ file, text }) {
|
|
82
|
+
if (file != null && file !== '') {
|
|
83
|
+
return `${MARKER_PREFIX}files:${file}`;
|
|
84
|
+
}
|
|
85
|
+
if (text != null && text !== '') {
|
|
86
|
+
return `${MARKER_PREFIX}text:${text}`;
|
|
87
|
+
}
|
|
88
|
+
// No payload: a marker the host reads as nothing, so the view is simply not
|
|
89
|
+
// draggable. Better than omitting the prop, which would leave a stale
|
|
90
|
+
// marker from a previous render.
|
|
91
|
+
return MARKER_PREFIX;
|
|
92
|
+
}
|
|
93
|
+
function DragSource({ file, text, ...rest }) {
|
|
94
|
+
const nativeID = React.useMemo(() => dragSourceId({ file, text }), [file, text]);
|
|
95
|
+
return (0, jsx_runtime_1.jsx)(react_native_1.View, { ...rest, nativeID: nativeID });
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=DragSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DragSource.js","sourceRoot":"","sources":["../../src/DragSource.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,oCAWC;AAED,gCAGC;;AArED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,6CAA+B;AAE/B,+CAAkC;AASlC,+DAA+D;AAC/D,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,EAAC,IAAI,EAAE,IAAI,EAAiC;IACvE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChC,OAAO,GAAG,aAAa,SAAS,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChC,OAAO,GAAG,aAAa,QAAQ,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,4EAA4E;IAC5E,sEAAsE;IACtE,iCAAiC;IACjC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAgB,UAAU,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAkB;IAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/E,OAAO,uBAAC,mBAAI,OAAK,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `<DropTarget>` -- a view the desktop may drop files or text onto.
|
|
3
|
+
*
|
|
4
|
+
* React Native has no API for this, because a phone has no pointer to drag
|
|
5
|
+
* with. What a desktop application is expected to do is accept a file dropped
|
|
6
|
+
* on it from the file manager, and this is that.
|
|
7
|
+
*
|
|
8
|
+
* ## How a view says so
|
|
9
|
+
*
|
|
10
|
+
* By its `nativeID`, which is the one prop a plain `<View>` carries to the
|
|
11
|
+
* host on every platform -- so there is no registration call, no ref, and no
|
|
12
|
+
* lifetime to get wrong. `<TitleBar.DragRegion>` marks views the same way.
|
|
13
|
+
* The strings are written here and read in `native/core/DragAndDrop.h`, whose
|
|
14
|
+
* tests round-trip them precisely because these two files cannot import each
|
|
15
|
+
* other.
|
|
16
|
+
*
|
|
17
|
+
* It follows that a `<DropTarget>` cannot also carry an app's own `nativeID`.
|
|
18
|
+
* That is a real limit and the honest one to take: the alternative was a
|
|
19
|
+
* registration protocol whose failure mode is a target that silently stops
|
|
20
|
+
* accepting after a re-render.
|
|
21
|
+
*
|
|
22
|
+
* ## What the handlers get
|
|
23
|
+
*
|
|
24
|
+
* `onDragOver` and `onDragLeave` are for the "you may drop here" state, and
|
|
25
|
+
* carry no contents -- no desktop reveals what is being dragged until it
|
|
26
|
+
* lands, and one that did should not tempt an app into reading it early.
|
|
27
|
+
* `onDrop` carries the files and the text.
|
|
28
|
+
*
|
|
29
|
+
* @format
|
|
30
|
+
*/
|
|
31
|
+
import * as React from 'react';
|
|
32
|
+
import type { ViewProps } from 'react-native';
|
|
33
|
+
/** What was dropped. Both may be present; see native/core/DragAndDrop.h. */
|
|
34
|
+
export type DropPayload = {
|
|
35
|
+
/** Absolute paths, not URIs. */
|
|
36
|
+
files: string[];
|
|
37
|
+
text: string;
|
|
38
|
+
};
|
|
39
|
+
export type DropPoint = {
|
|
40
|
+
/** In the window's coordinates, like a touch. */
|
|
41
|
+
x: number;
|
|
42
|
+
y: number;
|
|
43
|
+
};
|
|
44
|
+
export type DropTargetProps = ViewProps & {
|
|
45
|
+
/**
|
|
46
|
+
* Which kinds this view takes. A drag offering none of them is not offered
|
|
47
|
+
* to this view at all, so the cursor says no rather than the app refusing
|
|
48
|
+
* after the fact.
|
|
49
|
+
*/
|
|
50
|
+
accepts?: ReadonlyArray<'files' | 'text'>;
|
|
51
|
+
onDragOver?: (point: DropPoint) => void;
|
|
52
|
+
onDragLeave?: () => void;
|
|
53
|
+
onDrop?: (payload: DropPayload, point: DropPoint) => void;
|
|
54
|
+
};
|
|
55
|
+
/** The nativeID a view carries to accept these kinds. */
|
|
56
|
+
export declare function dropTargetId(accepts: ReadonlyArray<'files' | 'text'>): string;
|
|
57
|
+
export declare function DropTarget({ accepts, onDragOver, onDragLeave, onDrop, ...rest }: DropTargetProps): React.ReactElement;
|
|
58
|
+
//# sourceMappingURL=DropTarget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropTarget.d.ts","sourceRoot":"","sources":["../../src/DropTarget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG;IACxB,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,iDAAiD;IACjD,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC3D,CAAC;AA0BF,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,CAW7E;AAED,wBAAgB,UAAU,CAAC,EACzB,OAA2B,EAC3B,UAAU,EACV,WAAW,EACX,MAAM,EACN,GAAG,IAAI,EACR,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAuCtC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.dropTargetId = dropTargetId;
|
|
37
|
+
exports.DropTarget = DropTarget;
|
|
38
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
+
/**
|
|
40
|
+
* `<DropTarget>` -- a view the desktop may drop files or text onto.
|
|
41
|
+
*
|
|
42
|
+
* React Native has no API for this, because a phone has no pointer to drag
|
|
43
|
+
* with. What a desktop application is expected to do is accept a file dropped
|
|
44
|
+
* on it from the file manager, and this is that.
|
|
45
|
+
*
|
|
46
|
+
* ## How a view says so
|
|
47
|
+
*
|
|
48
|
+
* By its `nativeID`, which is the one prop a plain `<View>` carries to the
|
|
49
|
+
* host on every platform -- so there is no registration call, no ref, and no
|
|
50
|
+
* lifetime to get wrong. `<TitleBar.DragRegion>` marks views the same way.
|
|
51
|
+
* The strings are written here and read in `native/core/DragAndDrop.h`, whose
|
|
52
|
+
* tests round-trip them precisely because these two files cannot import each
|
|
53
|
+
* other.
|
|
54
|
+
*
|
|
55
|
+
* It follows that a `<DropTarget>` cannot also carry an app's own `nativeID`.
|
|
56
|
+
* That is a real limit and the honest one to take: the alternative was a
|
|
57
|
+
* registration protocol whose failure mode is a target that silently stops
|
|
58
|
+
* accepting after a re-render.
|
|
59
|
+
*
|
|
60
|
+
* ## What the handlers get
|
|
61
|
+
*
|
|
62
|
+
* `onDragOver` and `onDragLeave` are for the "you may drop here" state, and
|
|
63
|
+
* carry no contents -- no desktop reveals what is being dragged until it
|
|
64
|
+
* lands, and one that did should not tempt an app into reading it early.
|
|
65
|
+
* `onDrop` carries the files and the text.
|
|
66
|
+
*
|
|
67
|
+
* @format
|
|
68
|
+
*/
|
|
69
|
+
const React = __importStar(require("react"));
|
|
70
|
+
const react_native_1 = require("react-native");
|
|
71
|
+
// Asked for, and the answer thrown away, because *getting* the module is what
|
|
72
|
+
// constructs it -- and its constructor is what registers the host-side drop
|
|
73
|
+
// listener. Without this an app that uses only <DropTarget> never instantiates
|
|
74
|
+
// BasaltWindows, the listener is never set, and every drop is found by the
|
|
75
|
+
// host, reported into a null std::function, and silently discarded. Which is
|
|
76
|
+
// exactly what happened: the C++ said "onto tag 18" and JavaScript heard
|
|
77
|
+
// nothing.
|
|
78
|
+
react_native_1.TurboModuleRegistry.get('BasaltWindows');
|
|
79
|
+
// Must match kDropTargetIdPrefix in native/core/DragAndDrop.h.
|
|
80
|
+
const MARKER_PREFIX = 'basalt-drop:';
|
|
81
|
+
// Must match kDropEvent in native/core/WindowsModule.h.
|
|
82
|
+
const DROP_EVENT = 'basaltDrop';
|
|
83
|
+
/** The nativeID a view carries to accept these kinds. */
|
|
84
|
+
function dropTargetId(accepts) {
|
|
85
|
+
// Ordered rather than as given: the host parses either order, and a stable
|
|
86
|
+
// string keeps the prop from changing identity on every render.
|
|
87
|
+
const kinds = [];
|
|
88
|
+
if (accepts.includes('files')) {
|
|
89
|
+
kinds.push('files');
|
|
90
|
+
}
|
|
91
|
+
if (accepts.includes('text')) {
|
|
92
|
+
kinds.push('text');
|
|
93
|
+
}
|
|
94
|
+
return MARKER_PREFIX + kinds.join(',');
|
|
95
|
+
}
|
|
96
|
+
function DropTarget({ accepts = ['files', 'text'], onDragOver, onDragLeave, onDrop, ...rest }) {
|
|
97
|
+
// The tag is not known until the view is mounted, and the event carries it
|
|
98
|
+
// -- so what the subscription matches on is the ref's current tag rather
|
|
99
|
+
// than anything captured at render.
|
|
100
|
+
const ref = React.useRef(null);
|
|
101
|
+
// Handlers through refs, so an app passing new closures every render does
|
|
102
|
+
// not re-subscribe.
|
|
103
|
+
const handlers = React.useRef({ onDragOver, onDragLeave, onDrop });
|
|
104
|
+
handlers.current = { onDragOver, onDragLeave, onDrop };
|
|
105
|
+
React.useEffect(() => {
|
|
106
|
+
const subscription = react_native_1.DeviceEventEmitter.addListener(DROP_EVENT, (event) => {
|
|
107
|
+
// `__nativeTag`, with two underscores: that is what the new renderer
|
|
108
|
+
// puts on a host component's ref. `_nativeTag` is the old one and is
|
|
109
|
+
// simply undefined here, which made every event match nothing --
|
|
110
|
+
// silently, because an event for another view is also no match.
|
|
111
|
+
const tag = ref.current?.__nativeTag;
|
|
112
|
+
if (tag == null || event.tag !== tag) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const point = { x: event.x, y: event.y };
|
|
116
|
+
if (event.phase === 'over') {
|
|
117
|
+
handlers.current.onDragOver?.(point);
|
|
118
|
+
}
|
|
119
|
+
else if (event.phase === 'leave') {
|
|
120
|
+
handlers.current.onDragLeave?.();
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
handlers.current.onDrop?.({ files: event.files ?? [], text: event.text ?? '' }, point);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return () => subscription.remove();
|
|
127
|
+
}, []);
|
|
128
|
+
const nativeID = React.useMemo(() => dropTargetId(accepts), [accepts.join(',')]);
|
|
129
|
+
return (0, jsx_runtime_1.jsx)(react_native_1.View, { ...rest, ref: ref, nativeID: nativeID });
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=DropTarget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropTarget.js","sourceRoot":"","sources":["../../src/DropTarget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `<KeyHandler>` -- a view that declares keyboard shortcuts.
|
|
3
|
+
*
|
|
4
|
+
* `onKeyPress` exists on a `<TextInput>` and a `<View>` had nothing, so an app
|
|
5
|
+
* could not bind a shortcut to anything it draws. On a phone that is no loss; on
|
|
6
|
+
* a desktop it is most of the interface.
|
|
7
|
+
*
|
|
8
|
+
* ## The names are a browser's
|
|
9
|
+
*
|
|
10
|
+
* `key` is what `KeyboardEvent.key` reports: `'a'`, `'A'`, `' '`, `'ArrowLeft'`,
|
|
11
|
+
* `'Escape'`. react-native-macos and react-native-windows both use these, so a
|
|
12
|
+
* binding means the same thing on every platform an app might run on. Case
|
|
13
|
+
* follows the character, as in a browser: Shift+A is `'A'` *and* has `shiftKey`.
|
|
14
|
+
*
|
|
15
|
+
* ## Why the keys are declared and not just listened for
|
|
16
|
+
*
|
|
17
|
+
* Because a key nothing handled has to go on -- to the menu, to a focused text
|
|
18
|
+
* field, to a scroll view that scrolls on arrows -- and a key that was handled
|
|
19
|
+
* must not. The host decides that synchronously, inside `keyDown:`, and cannot
|
|
20
|
+
* ask JavaScript at that moment. So the list is what answers, and a combination
|
|
21
|
+
* absent from it is one this view will never be told about.
|
|
22
|
+
*
|
|
23
|
+
* ## Why not `nativeID`, which is how `<DropTarget>` does it
|
|
24
|
+
*
|
|
25
|
+
* Two reasons, both about this feature rather than taste. The list is long and it
|
|
26
|
+
* changes -- an editor registers twenty-odd combinations and adds to them as
|
|
27
|
+
* panes mount -- and `nativeID` holds one thing, which `<DropTarget>` already
|
|
28
|
+
* documents as a limit. A timeline that accepts dropped media *and* has shortcuts
|
|
29
|
+
* is an ordinary thing to want, and two features competing for one string would
|
|
30
|
+
* make it impossible.
|
|
31
|
+
*
|
|
32
|
+
* So this registers by the view's tag and unregisters on unmount. The failure
|
|
33
|
+
* mode that trade brings -- silently stopping after a re-render -- is what
|
|
34
|
+
* `keys` being in the effect's dependencies is for, and what a scenario asserts.
|
|
35
|
+
*/
|
|
36
|
+
import React from 'react';
|
|
37
|
+
import { type ViewProps } from 'react-native';
|
|
38
|
+
import type { HandledKey, PressedKey } from './useHandledKeys';
|
|
39
|
+
export type { HandledKey, PressedKey } from './useHandledKeys';
|
|
40
|
+
export type KeyHandlerProps = ViewProps & {
|
|
41
|
+
/** The combinations this view handles. Anything else passes through. */
|
|
42
|
+
keys: ReadonlyArray<HandledKey>;
|
|
43
|
+
onKeyDown?: (pressed: PressedKey) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Whether to take keyboard focus when it mounts, which defaults to true.
|
|
46
|
+
*
|
|
47
|
+
* A key press arrives at whatever has focus and is offered to that view and
|
|
48
|
+
* its ancestors, so a `<KeyHandler>` nothing ever focuses is never asked. For
|
|
49
|
+
* a window-level shortcut holder -- the common case, and the reason this
|
|
50
|
+
* exists -- that would mean no shortcut ever fires, which is the wrong default
|
|
51
|
+
* to have. Set it false for a handler inside a pane that should only be live
|
|
52
|
+
* while that pane has focus.
|
|
53
|
+
*/
|
|
54
|
+
focusOnMount?: boolean;
|
|
55
|
+
};
|
|
56
|
+
export declare function KeyHandler({ keys, onKeyDown, focusOnMount, children, ...viewProps }: KeyHandlerProps): React.ReactElement;
|
|
57
|
+
//# sourceMappingURL=KeyHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyHandler.d.ts","sourceRoot":"","sources":["../../src/KeyHandler.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAO,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAIlD,OAAO,KAAK,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG7D,YAAY,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACxC,wEAAwE;IACxE,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,SAAS,EACT,YAAmB,EACnB,QAAQ,EACR,GAAG,SAAS,EACb,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAQtC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyHandler = KeyHandler;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
/**
|
|
6
|
+
* `<KeyHandler>` -- a view that declares keyboard shortcuts.
|
|
7
|
+
*
|
|
8
|
+
* `onKeyPress` exists on a `<TextInput>` and a `<View>` had nothing, so an app
|
|
9
|
+
* could not bind a shortcut to anything it draws. On a phone that is no loss; on
|
|
10
|
+
* a desktop it is most of the interface.
|
|
11
|
+
*
|
|
12
|
+
* ## The names are a browser's
|
|
13
|
+
*
|
|
14
|
+
* `key` is what `KeyboardEvent.key` reports: `'a'`, `'A'`, `' '`, `'ArrowLeft'`,
|
|
15
|
+
* `'Escape'`. react-native-macos and react-native-windows both use these, so a
|
|
16
|
+
* binding means the same thing on every platform an app might run on. Case
|
|
17
|
+
* follows the character, as in a browser: Shift+A is `'A'` *and* has `shiftKey`.
|
|
18
|
+
*
|
|
19
|
+
* ## Why the keys are declared and not just listened for
|
|
20
|
+
*
|
|
21
|
+
* Because a key nothing handled has to go on -- to the menu, to a focused text
|
|
22
|
+
* field, to a scroll view that scrolls on arrows -- and a key that was handled
|
|
23
|
+
* must not. The host decides that synchronously, inside `keyDown:`, and cannot
|
|
24
|
+
* ask JavaScript at that moment. So the list is what answers, and a combination
|
|
25
|
+
* absent from it is one this view will never be told about.
|
|
26
|
+
*
|
|
27
|
+
* ## Why not `nativeID`, which is how `<DropTarget>` does it
|
|
28
|
+
*
|
|
29
|
+
* Two reasons, both about this feature rather than taste. The list is long and it
|
|
30
|
+
* changes -- an editor registers twenty-odd combinations and adds to them as
|
|
31
|
+
* panes mount -- and `nativeID` holds one thing, which `<DropTarget>` already
|
|
32
|
+
* documents as a limit. A timeline that accepts dropped media *and* has shortcuts
|
|
33
|
+
* is an ordinary thing to want, and two features competing for one string would
|
|
34
|
+
* make it impossible.
|
|
35
|
+
*
|
|
36
|
+
* So this registers by the view's tag and unregisters on unmount. The failure
|
|
37
|
+
* mode that trade brings -- silently stopping after a re-render -- is what
|
|
38
|
+
* `keys` being in the effect's dependencies is for, and what a scenario asserts.
|
|
39
|
+
*/
|
|
40
|
+
const react_1 = require("react");
|
|
41
|
+
const react_native_1 = require("react-native");
|
|
42
|
+
const useHandledKeys_1 = require("./useHandledKeys");
|
|
43
|
+
function KeyHandler({ keys, onKeyDown, focusOnMount = true, children, ...viewProps }) {
|
|
44
|
+
const ref = (0, react_1.useRef)(null);
|
|
45
|
+
(0, useHandledKeys_1.useHandledKeys)(ref, keys, onKeyDown);
|
|
46
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.View, { ref: ref, focusable: focusOnMount, ...viewProps, children: children }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=KeyHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyHandler.js","sourceRoot":"","sources":["../../src/KeyHandler.tsx"],"names":[],"mappings":";;AA8DA,gCAcC;;AA5ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,iCAAoC;AACpC,+CAAkD;AAKlD,qDAAgD;AAqBhD,SAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,SAAS,EACT,YAAY,GAAG,IAAI,EACnB,QAAQ,EACR,GAAG,SAAS,EACI;IAChB,MAAM,GAAG,GAAG,IAAA,cAAM,EAAyC,IAAI,CAAC,CAAC;IACjE,IAAA,+BAAc,EAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,OAAO,CACL,uBAAC,mBAAI,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,KAAM,SAAS,YACnD,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC"}
|