gitextract_o1re1h8t/ ├── .ci/ │ ├── .gitattributes │ ├── create-docs.yml │ ├── esy-bench.yml │ ├── esy-build-steps.yml │ ├── esy-check-hygiene.yml │ ├── format.sh │ ├── publish-build-cache.yml │ ├── publish-release.yml │ ├── restore-build-cache.yml │ └── use-node.yml ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ └── ISSUE_TEMPLATE/ │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── Revery.opam ├── ReveryBench.opam ├── ReveryExampleJs.opam ├── ReveryExamples.opam ├── ReveryTest.opam ├── ThirdPartyLicenses.txt ├── azure-pipelines.yml ├── bench/ │ ├── exe/ │ │ ├── Bench.re │ │ └── dune │ └── lib/ │ ├── BenchFramework.re │ ├── DrawBench.re │ ├── LayoutBench.re │ ├── NodeUtility.re │ ├── PaintBench.re │ ├── RecalculateBench.re │ ├── SurfaceUtility.re │ ├── ViewNodeBench.re │ └── dune ├── bench.json ├── doc.json ├── dune ├── dune-project ├── dune-workspace ├── examples/ │ ├── AnalogClock.re │ ├── Border.re │ ├── Boxshadow.re │ ├── Calculator.re │ ├── CanQuitExample.re │ ├── CanvasExample.re │ ├── CheckboxExample.re │ ├── DefaultButton.re │ ├── DropdownExample.re │ ├── Examples.re │ ├── FileDragAndDrop.re │ ├── Flexbox.re │ ├── FocusExample.re │ ├── FontAwesome5FreeSolid.otf │ ├── FontsExample.re │ ├── GameOfLife.re │ ├── Hello.re │ ├── HitTests.re │ ├── HoverExample.re │ ├── ImageQualityExample.re │ ├── Info.plist │ ├── InputExample.re │ ├── LayerExample.re │ ├── MarkdownExample.re │ ├── NativeFileExample.re │ ├── NativeIconExample.re │ ├── NativeInputExample.re │ ├── NativeMenuExample.re │ ├── NativeNotificationExample.re │ ├── NestedClickable.re │ ├── RadioButtonExample.re │ ├── RichTextExample.re │ ├── SVGExample.re │ ├── ScreenCapture.re │ ├── ScrollView.re │ ├── Slider.re │ ├── SpringExample.re │ ├── Stopwatch.re │ ├── TextExample.re │ ├── TodoExample.re │ ├── TreeView.re │ ├── URLFileOpen.re │ ├── WavFilePlaybackExample.re │ ├── WindowControl.re │ ├── ZoomExample.re │ ├── dune │ ├── gl-matrix-min.js │ ├── index.html │ └── stubs/ │ ├── ExampleStubs.re │ ├── dune │ ├── example_stubs.c │ └── example_stubs.js ├── examples.json ├── include/ │ ├── COPYING.txt │ ├── KHR/ │ │ └── khrplatform.h │ ├── glad/ │ │ └── glad.h │ └── stb_image.h ├── js.json ├── lsan.supp ├── package.json ├── packages/ │ ├── reason-harfbuzz/ │ │ ├── examples/ │ │ │ └── harfbuzz-cli/ │ │ │ ├── HarfbuzzCli.re │ │ │ ├── dune │ │ │ └── run-harfbuzz.sh │ │ ├── src/ │ │ │ ├── Harfbuzz.re │ │ │ ├── Harfbuzz.rei │ │ │ ├── config/ │ │ │ │ ├── discover.re │ │ │ │ └── dune │ │ │ ├── dune │ │ │ └── harfbuzz.cpp │ │ └── test/ │ │ ├── FeaturesTest.re │ │ ├── ShapingTest.re │ │ ├── TestFramework.re │ │ └── dune │ ├── reason-sdl2/ │ │ └── src/ │ │ ├── Float32Array.re │ │ ├── Uint16Array.re │ │ ├── config/ │ │ │ ├── discover.re │ │ │ └── dune │ │ ├── dune │ │ ├── sdl2.re │ │ ├── sdl2_stubs.js │ │ ├── sdl2_wrapper.cpp │ │ └── stb_image.cpp │ ├── reason-skia/ │ │ ├── bench/ │ │ │ ├── BenchFramework.re │ │ │ ├── CanvasBench.re │ │ │ ├── ColorBench.re │ │ │ ├── MatrixBench.re │ │ │ ├── RectBench.re │ │ │ ├── SkiaPaintBench.re │ │ │ └── dune │ │ ├── examples/ │ │ │ ├── skia-cli/ │ │ │ │ ├── LICENSE_FiraCode.txt │ │ │ │ ├── LICENSE_ORBITRON.md │ │ │ │ ├── SkiaCli.re │ │ │ │ └── dune │ │ │ ├── skia-font-manager-cli/ │ │ │ │ ├── SkiaFontManagerCli.re │ │ │ │ ├── dune │ │ │ │ └── run-skia-fontmanager.sh │ │ │ └── skia-sdl2/ │ │ │ ├── SkiaSdl.re │ │ │ └── dune │ │ ├── src/ │ │ │ ├── Skia.re │ │ │ ├── Skia.rei │ │ │ ├── config/ │ │ │ │ ├── discover.re │ │ │ │ └── dune │ │ │ ├── dune │ │ │ └── wrapped/ │ │ │ ├── bindings/ │ │ │ │ ├── SkiaWrappedBindings.re │ │ │ │ └── dune │ │ │ ├── c/ │ │ │ │ ├── c_stubs.c │ │ │ │ ├── c_stubs.h │ │ │ │ └── dune │ │ │ ├── lib/ │ │ │ │ ├── SkiaWrapped.re │ │ │ │ ├── dune │ │ │ │ └── raw_bindings.c │ │ │ ├── stubgen/ │ │ │ │ ├── dune │ │ │ │ ├── stubgen.ml │ │ │ │ └── types_stubgen.ml │ │ │ └── types/ │ │ │ ├── SkiaWrappedTypes.re │ │ │ └── dune │ │ └── test/ │ │ ├── ColorTest.re │ │ ├── MatrixTest.re │ │ ├── PaintTest.re │ │ ├── RectTest.re │ │ ├── TestFramework.re │ │ └── dune │ ├── revery-text-wrap/ │ │ ├── examples/ │ │ │ └── text-wrap-cli/ │ │ │ ├── ReveryTextWrapCli.re │ │ │ └── dune │ │ └── src/ │ │ ├── Revery_TextWrap.re │ │ ├── Revery_TextWrap.rei │ │ ├── Tokenize.re │ │ └── dune │ └── zed/ │ └── src/ │ ├── dune │ ├── zed_utf8.ml │ └── zed_utf8.mli ├── reason-harfbuzz.opam ├── reason-sdl2.opam ├── reason-skia.opam ├── scripts/ │ ├── docker/ │ │ ├── archlinux/ │ │ │ └── Dockerfile │ │ └── centos/ │ │ └── Dockerfile │ ├── docker-build.sh │ ├── make-binary-file.js │ └── release.sh ├── src/ │ ├── Core/ │ │ ├── App.re │ │ ├── App.rei │ │ ├── Color.re │ │ ├── Color.rei │ │ ├── Colors.re │ │ ├── Environment.re │ │ ├── Environment.rei │ │ ├── Event.re │ │ ├── Events.re │ │ ├── GarbageCollector.re │ │ ├── Key.re │ │ ├── Key.rei │ │ ├── Log.re │ │ ├── Log.rei │ │ ├── MouseButton.re │ │ ├── MouseButton.rei │ │ ├── MouseCursors.re │ │ ├── MouseCursors.rei │ │ ├── Performance.re │ │ ├── Revery_Core.re │ │ ├── TextOverflow.re │ │ ├── TextWrapping.re │ │ ├── Tick.re │ │ ├── Time.re │ │ ├── Time.rei │ │ ├── UniqueId.re │ │ ├── Vsync.re │ │ ├── Window.re │ │ ├── Window.rei │ │ ├── WindowCreateOptions.re │ │ ├── WindowStyles.re │ │ └── dune │ ├── Draw/ │ │ ├── CanvasContext.re │ │ ├── DebugDraw.re │ │ ├── ImageResizeMode.re │ │ ├── Revery_Draw.re │ │ ├── Text.re │ │ ├── Text.rei │ │ └── dune │ ├── Font/ │ │ ├── Discovery.re │ │ ├── Feature.re │ │ ├── Feature.rei │ │ ├── Features.re │ │ ├── Features.rei │ │ ├── FontCache.re │ │ ├── FontCache.rei │ │ ├── FontFamily.re │ │ ├── FontFamily.rei │ │ ├── FontManager.re │ │ ├── FontMetrics.re │ │ ├── FontRenderer.re │ │ ├── FontWeight.re │ │ ├── FontWidth.re │ │ ├── Revery_Font.re │ │ ├── ShapeResult.re │ │ ├── Smoothing.re │ │ ├── dune │ │ └── files/ │ │ └── Inconsolata.otf │ ├── IO/ │ │ ├── File.re │ │ ├── File.rei │ │ ├── Image.re │ │ ├── Image.rei │ │ ├── LwtLetOperators.re │ │ ├── Revery_IO.re │ │ └── dune │ ├── Lwt/ │ │ ├── Revery_Lwt.re │ │ └── dune │ ├── Math/ │ │ ├── Angle.re │ │ ├── BoundingBox2d.re │ │ ├── BoundingBox2d.rei │ │ ├── Revery_Math.re │ │ └── dune │ ├── Native/ │ │ ├── Dialog.re │ │ ├── Environment.re │ │ ├── Gtk.re │ │ ├── Icon.re │ │ ├── Initialization.re │ │ ├── Input.re │ │ ├── Input.rei │ │ ├── Locale.re │ │ ├── Menu.re │ │ ├── Menu.rei │ │ ├── NSObject.re │ │ ├── NSView.re │ │ ├── Notification.re │ │ ├── ReveryCocoa.h │ │ ├── ReveryGtk.h │ │ ├── ReveryLinux.h │ │ ├── ReveryMac.h │ │ ├── ReveryNSObject.c │ │ ├── ReveryWin32.h │ │ ├── ReveryWindows.h │ │ ├── Revery_Native.c │ │ ├── Revery_Native.re │ │ ├── Shell.re │ │ ├── Window.re │ │ ├── caml_values.h │ │ ├── cocoa/ │ │ │ ├── ReveryAppDelegate.c │ │ │ ├── ReveryAppDelegate.h │ │ │ ├── ReveryAppDelegate_func.c │ │ │ ├── ReveryAppDelegate_func.h │ │ │ ├── ReveryButtonTarget.c │ │ │ ├── ReveryButtonTarget.h │ │ │ ├── ReveryMenuItemTarget.c │ │ │ ├── ReveryMenuItemTarget.h │ │ │ ├── ReveryNSView.c │ │ │ ├── ReveryNSViewCoords.c │ │ │ ├── ReveryNSViewCoords.h │ │ │ ├── ReveryProgressBar.c │ │ │ ├── ReveryProgressBar.h │ │ │ └── SDLAppDelegate.h │ │ ├── config/ │ │ │ ├── discover.re │ │ │ └── dune │ │ ├── dialog.c │ │ ├── dialog.js │ │ ├── dialog_cocoa.c │ │ ├── dialog_gtk.c │ │ ├── dialog_win32.c │ │ ├── dune │ │ ├── environment.c │ │ ├── environment_linux.c │ │ ├── environment_mac.c │ │ ├── environment_windows.c │ │ ├── gtk/ │ │ │ ├── ReveryGtk.c │ │ │ └── ReveryGtk_Widget.c │ │ ├── icon.c │ │ ├── icon_cocoa.c │ │ ├── icon_win32.c │ │ ├── input.c │ │ ├── input_cocoa.c │ │ ├── locale.c │ │ ├── locale_cocoa.c │ │ ├── locale_win32.c │ │ ├── menu.c │ │ ├── menu.h │ │ ├── menu_cocoa.c │ │ ├── notification.c │ │ ├── notification_cocoa.c │ │ ├── shell.c │ │ ├── shell_cocoa.c │ │ ├── shell_gtk.c │ │ ├── shell_win32.c │ │ ├── utilities.c │ │ ├── utilities.h │ │ ├── win32_target.h │ │ ├── window.c │ │ └── window_cocoa.c │ ├── Platform.re │ ├── Revery.re │ ├── UI/ │ │ ├── Animation.re │ │ ├── Animation.rei │ │ ├── CanvasNode.re │ │ ├── Container.re │ │ ├── Dimensions.re │ │ ├── Easing.re │ │ ├── FileDrop.re │ │ ├── Focus.re │ │ ├── Focus.rei │ │ ├── HitTest.re │ │ ├── ImageNode.re │ │ ├── ImageResizeMode.re │ │ ├── Keyboard.re │ │ ├── LayerNode.re │ │ ├── Layout.re │ │ ├── Mouse.re │ │ ├── Mouse.rei │ │ ├── NativeButtonNode.re │ │ ├── Node.re │ │ ├── NodeDrawContext.re │ │ ├── NodeEvents.re │ │ ├── Offset.re │ │ ├── Overflow.re │ │ ├── React.re │ │ ├── Reconciler.re │ │ ├── Render.re │ │ ├── RenderCondition.re │ │ ├── RenderContainer.re │ │ ├── Revery_UI.re │ │ ├── RichText.re │ │ ├── RichText.rei │ │ ├── Selector.re │ │ ├── Spring.re │ │ ├── Spring.rei │ │ ├── Style.re │ │ ├── TextNode.re │ │ ├── Transform.re │ │ ├── Transform.rei │ │ ├── Ui.re │ │ ├── Ui.rei │ │ ├── UiEvents.re │ │ ├── ViewNode.re │ │ └── dune │ ├── UI_Components/ │ │ ├── Button.re │ │ ├── Button.rei │ │ ├── Center.re │ │ ├── Checkbox.re │ │ ├── Checkbox.rei │ │ ├── Clickable.re │ │ ├── Clickable.rei │ │ ├── ClickableText.re │ │ ├── ClipContainer.re │ │ ├── ClipContainer.rei │ │ ├── Column.re │ │ ├── Container.re │ │ ├── Container.rei │ │ ├── Dropdown.re │ │ ├── ExpandContainer.re │ │ ├── Input.re │ │ ├── Link.re │ │ ├── Markdown.re │ │ ├── Markdown.rei │ │ ├── Positioned.re │ │ ├── Positioned.rei │ │ ├── RadioButtons.re │ │ ├── Revery_UI_Components.re │ │ ├── RichTextView.re │ │ ├── Row.re │ │ ├── SVG.re │ │ ├── ScrollView.re │ │ ├── Slider.re │ │ ├── Stack.re │ │ ├── Ticker.re │ │ ├── Ticker.rei │ │ ├── Tree.re │ │ └── dune │ ├── UI_Hooks/ │ │ ├── Effect.re │ │ ├── Effect.rei │ │ ├── Reducer.re │ │ ├── Reducer.rei │ │ ├── Ref.re │ │ ├── Ref.rei │ │ ├── Revery_UI_Hooks.re │ │ ├── Spring.re │ │ ├── State.re │ │ ├── State.rei │ │ ├── Tick.re │ │ ├── Tick.rei │ │ ├── Timer.re │ │ └── dune │ ├── UI_Primitives/ │ │ ├── AllowPointer.re │ │ ├── BoxShadow.re │ │ ├── Canvas.re │ │ ├── IgnorePointer.re │ │ ├── Image.re │ │ ├── Image.rei │ │ ├── Layer.re │ │ ├── NativeButton.re │ │ ├── Opacity.re │ │ ├── Padding.re │ │ ├── PrimitiveNodeFactory.re │ │ ├── Revery_UI_Primitives.re │ │ ├── Text.re │ │ ├── View.re │ │ └── dune │ ├── Utility/ │ │ ├── HeadlessWindow.re │ │ ├── HeadlessWindow.rei │ │ ├── Revery_Utility.re │ │ └── dune │ ├── dune │ └── index.mld ├── test/ │ ├── Core/ │ │ ├── ColorTests.re │ │ ├── EnvironmentTests.re │ │ ├── TestFramework.re │ │ ├── TextTests.re │ │ ├── TickTest.re │ │ └── dune │ ├── Font/ │ │ ├── FamilyTest.re │ │ ├── FontCacheTest.re │ │ ├── TestFramework.re │ │ └── dune │ ├── Math/ │ │ ├── BoundingBox2dTests.re │ │ ├── ClampTest.re │ │ ├── InterpolateTest.re │ │ ├── TestFramework.re │ │ └── dune │ ├── TestRunner.re │ ├── UI/ │ │ ├── AnimationTest.re │ │ ├── HooksTest.re │ │ ├── MouseTest.re │ │ ├── NodeTests.re │ │ ├── ReconcilerTests.re │ │ ├── StyleTest.re │ │ ├── TestFramework.re │ │ └── dune │ ├── collateral/ │ │ ├── FiraCode-LICENSE.txt │ │ ├── JetBrainsMono-LICENSE.txt │ │ ├── dune │ │ └── test-asset.txt │ └── dune ├── test.json └── update-lockfiles.sh