@react-x11/components 0.9.0 → 0.10.0
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/README.md +10 -4
- package/dist/charts/node.d.ts +11 -1
- package/dist/charts/node.d.ts.map +1 -1
- package/dist/charts/node.js +44 -14
- package/dist/charts/node.js.map +1 -1
- package/dist/charts/render.d.ts +12 -3
- package/dist/charts/render.d.ts.map +1 -1
- package/dist/charts/render.js +94 -25
- package/dist/charts/render.js.map +1 -1
- package/dist/code/index.d.ts.map +1 -1
- package/dist/code/index.js +3 -1
- package/dist/code/index.js.map +1 -1
- package/dist/code-editor/completion.d.ts.map +1 -1
- package/dist/code-editor/completion.js +3 -2
- package/dist/code-editor/completion.js.map +1 -1
- package/dist/code-editor/index.d.ts.map +1 -1
- package/dist/code-editor/index.js +19 -0
- package/dist/code-editor/index.js.map +1 -1
- package/dist/code-editor/node.d.ts +177 -7
- package/dist/code-editor/node.d.ts.map +1 -1
- package/dist/code-editor/node.js +1329 -164
- package/dist/code-editor/node.js.map +1 -1
- package/dist/code-language/languages/glsl.d.ts.map +1 -1
- package/dist/code-language/languages/glsl.js +10 -2
- package/dist/code-language/languages/glsl.js.map +1 -1
- package/dist/code-language/languages/javascript.d.ts.map +1 -1
- package/dist/code-language/languages/javascript.js +18 -3
- package/dist/code-language/languages/javascript.js.map +1 -1
- package/dist/code-language/languages/json.d.ts.map +1 -1
- package/dist/code-language/languages/json.js +10 -2
- package/dist/code-language/languages/json.js.map +1 -1
- package/dist/code-language/languages/shell.d.ts.map +1 -1
- package/dist/code-language/languages/shell.js +10 -2
- package/dist/code-language/languages/shell.js.map +1 -1
- package/dist/code-language/languages/sql.d.ts.map +1 -1
- package/dist/code-language/languages/sql.js +20 -2
- package/dist/code-language/languages/sql.js.map +1 -1
- package/dist/code-language/stream.d.ts +22 -0
- package/dist/code-language/stream.d.ts.map +1 -1
- package/dist/code-language/stream.js +259 -9
- package/dist/code-language/stream.js.map +1 -1
- package/dist/code-language/types.d.ts +5 -4
- package/dist/code-language/types.d.ts.map +1 -1
- package/dist/codeblock/index.d.ts +13 -2
- package/dist/codeblock/index.d.ts.map +1 -1
- package/dist/codeblock/index.js +20 -3
- package/dist/codeblock/index.js.map +1 -1
- package/dist/flow/draw.d.ts +50 -0
- package/dist/flow/draw.d.ts.map +1 -1
- package/dist/flow/draw.js +132 -33
- package/dist/flow/draw.js.map +1 -1
- package/dist/flow/gl/color.d.ts +13 -0
- package/dist/flow/gl/color.d.ts.map +1 -0
- package/dist/flow/gl/color.js +82 -0
- package/dist/flow/gl/color.js.map +1 -0
- package/dist/flow/gl/index.d.ts +60 -0
- package/dist/flow/gl/index.d.ts.map +1 -0
- package/dist/flow/gl/index.js +283 -0
- package/dist/flow/gl/index.js.map +1 -0
- package/dist/flow/gl/pack.d.ts +133 -0
- package/dist/flow/gl/pack.d.ts.map +1 -0
- package/dist/flow/gl/pack.js +408 -0
- package/dist/flow/gl/pack.js.map +1 -0
- package/dist/flow/gl/renderer.d.ts +95 -0
- package/dist/flow/gl/renderer.d.ts.map +1 -0
- package/dist/flow/gl/renderer.js +459 -0
- package/dist/flow/gl/renderer.js.map +1 -0
- package/dist/flow/gl/shaders.d.ts +79 -0
- package/dist/flow/gl/shaders.d.ts.map +1 -0
- package/dist/flow/gl/shaders.js +346 -0
- package/dist/flow/gl/shaders.js.map +1 -0
- package/dist/flow/gl/text.d.ts +318 -0
- package/dist/flow/gl/text.d.ts.map +1 -0
- package/dist/flow/gl/text.js +1103 -0
- package/dist/flow/gl/text.js.map +1 -0
- package/dist/flow/index.d.ts +1 -1
- package/dist/flow/index.d.ts.map +1 -1
- package/dist/flow/index.js +619 -64
- package/dist/flow/index.js.map +1 -1
- package/dist/flow/node.d.ts +621 -72
- package/dist/flow/node.d.ts.map +1 -1
- package/dist/flow/node.js +2253 -1018
- package/dist/flow/node.js.map +1 -1
- package/dist/flow/paint.d.ts +35 -0
- package/dist/flow/paint.d.ts.map +1 -0
- package/dist/flow/paint.js +393 -0
- package/dist/flow/paint.js.map +1 -0
- package/dist/flow/paths.d.ts +14 -0
- package/dist/flow/paths.d.ts.map +1 -1
- package/dist/flow/paths.js +45 -19
- package/dist/flow/paths.js.map +1 -1
- package/dist/flow/scene.d.ts +584 -0
- package/dist/flow/scene.d.ts.map +1 -0
- package/dist/flow/scene.js +1453 -0
- package/dist/flow/scene.js.map +1 -0
- package/dist/flow/types.d.ts +111 -1
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/html/controls.d.ts +28 -0
- package/dist/html/controls.d.ts.map +1 -1
- package/dist/html/controls.js +52 -2
- package/dist/html/controls.js.map +1 -1
- package/dist/html/css/calc.d.ts +14 -0
- package/dist/html/css/calc.d.ts.map +1 -0
- package/dist/html/css/calc.js +344 -0
- package/dist/html/css/calc.js.map +1 -0
- package/dist/html/css/cascade.d.ts +240 -6
- package/dist/html/css/cascade.d.ts.map +1 -1
- package/dist/html/css/cascade.js +1327 -66
- package/dist/html/css/cascade.js.map +1 -1
- package/dist/html/css/color.d.ts +23 -0
- package/dist/html/css/color.d.ts.map +1 -0
- package/dist/html/css/color.js +740 -0
- package/dist/html/css/color.js.map +1 -0
- package/dist/html/css/content.d.ts +92 -0
- package/dist/html/css/content.d.ts.map +1 -0
- package/dist/html/css/content.js +388 -0
- package/dist/html/css/content.js.map +1 -0
- package/dist/html/css/counter-styles.d.ts +76 -0
- package/dist/html/css/counter-styles.d.ts.map +1 -0
- package/dist/html/css/counter-styles.js +893 -0
- package/dist/html/css/counter-styles.js.map +1 -0
- package/dist/html/css/decode.d.ts +12 -0
- package/dist/html/css/decode.d.ts.map +1 -0
- package/dist/html/css/decode.js +116 -0
- package/dist/html/css/decode.js.map +1 -0
- package/dist/html/css/parse.d.ts +110 -10
- package/dist/html/css/parse.d.ts.map +1 -1
- package/dist/html/css/parse.js +1473 -180
- package/dist/html/css/parse.js.map +1 -1
- package/dist/html/css/style.d.ts +498 -15
- package/dist/html/css/style.d.ts.map +1 -1
- package/dist/html/css/style.js +3698 -206
- package/dist/html/css/style.js.map +1 -1
- package/dist/html/css/ua.d.ts.map +1 -1
- package/dist/html/css/ua.js +57 -11
- package/dist/html/css/ua.js.map +1 -1
- package/dist/html/css/values.d.ts +37 -3
- package/dist/html/css/values.d.ts.map +1 -1
- package/dist/html/css/values.js +122 -48
- package/dist/html/css/values.js.map +1 -1
- package/dist/html/css/vars.d.ts +52 -0
- package/dist/html/css/vars.d.ts.map +1 -0
- package/dist/html/css/vars.js +358 -0
- package/dist/html/css/vars.js.map +1 -0
- package/dist/html/dom.d.ts +30 -4
- package/dist/html/dom.d.ts.map +1 -1
- package/dist/html/dom.js +278 -17
- package/dist/html/dom.js.map +1 -1
- package/dist/html/fonts.d.ts +106 -0
- package/dist/html/fonts.d.ts.map +1 -0
- package/dist/html/fonts.js +565 -0
- package/dist/html/fonts.js.map +1 -0
- package/dist/html/gif.d.ts +15 -0
- package/dist/html/gif.d.ts.map +1 -0
- package/dist/html/gif.js +229 -0
- package/dist/html/gif.js.map +1 -0
- package/dist/html/index.d.ts +50 -11
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +115 -9
- package/dist/html/index.js.map +1 -1
- package/dist/html/layout/block.d.ts +226 -3
- package/dist/html/layout/block.d.ts.map +1 -1
- package/dist/html/layout/block.js +2937 -197
- package/dist/html/layout/block.js.map +1 -1
- package/dist/html/layout/boxes.d.ts +340 -17
- package/dist/html/layout/boxes.d.ts.map +1 -1
- package/dist/html/layout/boxes.js +1714 -182
- package/dist/html/layout/boxes.js.map +1 -1
- package/dist/html/layout/cache.d.ts +58 -0
- package/dist/html/layout/cache.d.ts.map +1 -0
- package/dist/html/layout/cache.js +224 -0
- package/dist/html/layout/cache.js.map +1 -0
- package/dist/html/layout/collapse.d.ts +45 -0
- package/dist/html/layout/collapse.d.ts.map +1 -0
- package/dist/html/layout/collapse.js +246 -0
- package/dist/html/layout/collapse.js.map +1 -0
- package/dist/html/layout/css-grid.d.ts +7 -0
- package/dist/html/layout/css-grid.d.ts.map +1 -0
- package/dist/html/layout/css-grid.js +900 -0
- package/dist/html/layout/css-grid.js.map +1 -0
- package/dist/html/layout/flex.d.ts.map +1 -1
- package/dist/html/layout/flex.js +1025 -89
- package/dist/html/layout/flex.js.map +1 -1
- package/dist/html/layout/floats.d.ts +45 -6
- package/dist/html/layout/floats.d.ts.map +1 -1
- package/dist/html/layout/floats.js +113 -14
- package/dist/html/layout/floats.js.map +1 -1
- package/dist/html/layout/grid-lines.d.ts +39 -0
- package/dist/html/layout/grid-lines.d.ts.map +1 -0
- package/dist/html/layout/grid-lines.js +119 -0
- package/dist/html/layout/grid-lines.js.map +1 -0
- package/dist/html/layout/grid.d.ts +53 -0
- package/dist/html/layout/grid.d.ts.map +1 -0
- package/dist/html/layout/grid.js +153 -0
- package/dist/html/layout/grid.js.map +1 -0
- package/dist/html/layout/inline.d.ts +151 -1
- package/dist/html/layout/inline.d.ts.map +1 -1
- package/dist/html/layout/inline.js +3375 -174
- package/dist/html/layout/inline.js.map +1 -1
- package/dist/html/layout/shaping.d.ts +6 -0
- package/dist/html/layout/shaping.d.ts.map +1 -0
- package/dist/html/layout/shaping.js +100 -0
- package/dist/html/layout/shaping.js.map +1 -0
- package/dist/html/layout/table.d.ts +3 -0
- package/dist/html/layout/table.d.ts.map +1 -1
- package/dist/html/layout/table.js +681 -175
- package/dist/html/layout/table.js.map +1 -1
- package/dist/html/layout/tracks.d.ts +44 -0
- package/dist/html/layout/tracks.d.ts.map +1 -0
- package/dist/html/layout/tracks.js +349 -0
- package/dist/html/layout/tracks.js.map +1 -0
- package/dist/html/node.d.ts +169 -4
- package/dist/html/node.d.ts.map +1 -1
- package/dist/html/node.js +1331 -100
- package/dist/html/node.js.map +1 -1
- package/dist/html/paint.d.ts +92 -3
- package/dist/html/paint.d.ts.map +1 -1
- package/dist/html/paint.js +3503 -141
- package/dist/html/paint.js.map +1 -1
- package/dist/html/resources.d.ts +60 -14
- package/dist/html/resources.d.ts.map +1 -1
- package/dist/html/resources.js +122 -36
- package/dist/html/resources.js.map +1 -1
- package/dist/html/surfaces.d.ts +23 -0
- package/dist/html/surfaces.d.ts.map +1 -0
- package/dist/html/surfaces.js +68 -0
- package/dist/html/surfaces.js.map +1 -0
- package/dist/html/svg.d.ts +80 -0
- package/dist/html/svg.d.ts.map +1 -0
- package/dist/html/svg.js +435 -0
- package/dist/html/svg.js.map +1 -0
- package/dist/html/url.d.ts +23 -0
- package/dist/html/url.d.ts.map +1 -0
- package/dist/html/url.js +80 -0
- package/dist/html/url.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/collate.d.ts +3 -0
- package/dist/internal/collate.d.ts.map +1 -0
- package/dist/internal/collate.js +11 -0
- package/dist/internal/collate.js.map +1 -0
- package/dist/internal/markdown/ast.d.ts +11 -0
- package/dist/internal/markdown/ast.d.ts.map +1 -1
- package/dist/internal/markdown/parse.d.ts.map +1 -1
- package/dist/internal/markdown/parse.js +109 -8
- package/dist/internal/markdown/parse.js.map +1 -1
- package/dist/internal/prewarm.d.ts +18 -0
- package/dist/internal/prewarm.d.ts.map +1 -0
- package/dist/internal/prewarm.js +42 -0
- package/dist/internal/prewarm.js.map +1 -0
- package/dist/internal/sdf.d.ts +20 -0
- package/dist/internal/sdf.d.ts.map +1 -0
- package/dist/internal/sdf.js +216 -0
- package/dist/internal/sdf.js.map +1 -0
- package/dist/internal/splice.d.ts +12 -0
- package/dist/internal/splice.d.ts.map +1 -0
- package/dist/internal/splice.js +23 -0
- package/dist/internal/splice.js.map +1 -0
- package/dist/internal/window.d.ts +12 -0
- package/dist/internal/window.d.ts.map +1 -1
- package/dist/internal/window.js +23 -6
- package/dist/internal/window.js.map +1 -1
- package/dist/maps/anchors.d.ts +6 -1
- package/dist/maps/anchors.d.ts.map +1 -1
- package/dist/maps/anchors.js +260 -1
- package/dist/maps/anchors.js.map +1 -1
- package/dist/maps/controller.d.ts +57 -0
- package/dist/maps/controller.d.ts.map +1 -1
- package/dist/maps/controller.js +97 -18
- package/dist/maps/controller.js.map +1 -1
- package/dist/maps/gl/buckets.d.ts +5 -1
- package/dist/maps/gl/buckets.d.ts.map +1 -1
- package/dist/maps/gl/buckets.js +5 -2
- package/dist/maps/gl/buckets.js.map +1 -1
- package/dist/maps/gl/build-worker.d.ts +2 -0
- package/dist/maps/gl/build-worker.d.ts.map +1 -1
- package/dist/maps/gl/build-worker.js +1 -1
- package/dist/maps/gl/build-worker.js.map +1 -1
- package/dist/maps/gl/cover.d.ts +23 -4
- package/dist/maps/gl/cover.d.ts.map +1 -1
- package/dist/maps/gl/cover.js +61 -48
- package/dist/maps/gl/cover.js.map +1 -1
- package/dist/maps/gl/placement.d.ts +21 -8
- package/dist/maps/gl/placement.d.ts.map +1 -1
- package/dist/maps/gl/placement.js +133 -58
- package/dist/maps/gl/placement.js.map +1 -1
- package/dist/maps/gl/renderer.d.ts +36 -4
- package/dist/maps/gl/renderer.d.ts.map +1 -1
- package/dist/maps/gl/renderer.js +81 -24
- package/dist/maps/gl/renderer.js.map +1 -1
- package/dist/maps/gl/shaders.d.ts +18 -17
- package/dist/maps/gl/shaders.d.ts.map +1 -1
- package/dist/maps/gl/shaders.js +34 -32
- package/dist/maps/gl/shaders.js.map +1 -1
- package/dist/maps/gl/store.d.ts +10 -0
- package/dist/maps/gl/store.d.ts.map +1 -1
- package/dist/maps/gl/store.js +47 -4
- package/dist/maps/gl/store.js.map +1 -1
- package/dist/maps/gl/text.d.ts +153 -24
- package/dist/maps/gl/text.d.ts.map +1 -1
- package/dist/maps/gl/text.js +379 -63
- package/dist/maps/gl/text.js.map +1 -1
- package/dist/maps/gl/view.d.ts +293 -2
- package/dist/maps/gl/view.d.ts.map +1 -1
- package/dist/maps/gl/view.js +317 -82
- package/dist/maps/gl/view.js.map +1 -1
- package/dist/maps/icons.d.ts +32 -0
- package/dist/maps/icons.d.ts.map +1 -0
- package/dist/maps/icons.js +151 -0
- package/dist/maps/icons.js.map +1 -0
- package/dist/maps/index.d.ts +2 -0
- package/dist/maps/index.d.ts.map +1 -1
- package/dist/maps/index.js +2 -0
- package/dist/maps/index.js.map +1 -1
- package/dist/maps/labels.d.ts +56 -4
- package/dist/maps/labels.d.ts.map +1 -1
- package/dist/maps/labels.js +213 -46
- package/dist/maps/labels.js.map +1 -1
- package/dist/maps/node.d.ts +17 -0
- package/dist/maps/node.d.ts.map +1 -1
- package/dist/maps/node.js +64 -30
- package/dist/maps/node.js.map +1 -1
- package/dist/maps/proj.d.ts +48 -0
- package/dist/maps/proj.d.ts.map +1 -1
- package/dist/maps/proj.js +73 -0
- package/dist/maps/proj.js.map +1 -1
- package/dist/maps/sources.d.ts +5 -3
- package/dist/maps/sources.d.ts.map +1 -1
- package/dist/maps/sources.js +5 -3
- package/dist/maps/sources.js.map +1 -1
- package/dist/maps/style.d.ts +35 -0
- package/dist/maps/style.d.ts.map +1 -1
- package/dist/maps/style.js.map +1 -1
- package/dist/maps/styles.d.ts +12 -0
- package/dist/maps/styles.d.ts.map +1 -1
- package/dist/maps/styles.js +120 -6
- package/dist/maps/styles.js.map +1 -1
- package/dist/maps/tiles.d.ts +31 -11
- package/dist/maps/tiles.d.ts.map +1 -1
- package/dist/maps/tiles.js +61 -27
- package/dist/maps/tiles.js.map +1 -1
- package/dist/maps/types.d.ts +28 -4
- package/dist/maps/types.d.ts.map +1 -1
- package/dist/markdown/index.d.ts.map +1 -1
- package/dist/markdown/index.js +112 -43
- package/dist/markdown/index.js.map +1 -1
- package/dist/markdown/spans.d.ts.map +1 -1
- package/dist/markdown/spans.js +6 -0
- package/dist/markdown/spans.js.map +1 -1
- package/dist/qml/containers.d.ts.map +1 -1
- package/dist/qml/containers.js +6 -1
- package/dist/qml/containers.js.map +1 -1
- package/dist/qml/interaction.d.ts.map +1 -1
- package/dist/qml/interaction.js +38 -5
- package/dist/qml/interaction.js.map +1 -1
- package/dist/qml/layouts.d.ts.map +1 -1
- package/dist/qml/layouts.js +21 -6
- package/dist/qml/layouts.js.map +1 -1
- package/dist/qml/qtquick.d.ts.map +1 -1
- package/dist/qml/qtquick.js +9 -2
- package/dist/qml/qtquick.js.map +1 -1
- package/dist/qml/react.d.ts.map +1 -1
- package/dist/qml/react.js +9 -7
- package/dist/qml/react.js.map +1 -1
- package/dist/reorder/clock.d.ts +7 -0
- package/dist/reorder/clock.d.ts.map +1 -0
- package/dist/reorder/clock.js +26 -0
- package/dist/reorder/clock.js.map +1 -0
- package/dist/reorder/index.d.ts +25 -3
- package/dist/reorder/index.d.ts.map +1 -1
- package/dist/reorder/index.js +64 -19
- package/dist/reorder/index.js.map +1 -1
- package/dist/rich-text-editor/index.d.ts +0 -11
- package/dist/rich-text-editor/index.d.ts.map +1 -1
- package/dist/rich-text-editor/index.js +35 -1
- package/dist/rich-text-editor/index.js.map +1 -1
- package/dist/rich-text-editor/keymap.d.ts.map +1 -1
- package/dist/rich-text-editor/keymap.js +2 -1
- package/dist/rich-text-editor/keymap.js.map +1 -1
- package/dist/rich-text-editor/keys.d.ts +17 -6
- package/dist/rich-text-editor/keys.d.ts.map +1 -1
- package/dist/rich-text-editor/keys.js +135 -26
- package/dist/rich-text-editor/keys.js.map +1 -1
- package/dist/rich-text-editor/marks.d.ts +9 -0
- package/dist/rich-text-editor/marks.d.ts.map +1 -0
- package/dist/rich-text-editor/marks.js +83 -0
- package/dist/rich-text-editor/marks.js.map +1 -0
- package/dist/rich-text-editor/render.d.ts.map +1 -1
- package/dist/rich-text-editor/render.js +28 -10
- package/dist/rich-text-editor/render.js.map +1 -1
- package/dist/rich-text-editor/toolbar.d.ts.map +1 -1
- package/dist/rich-text-editor/toolbar.js +1 -1
- package/dist/rich-text-editor/toolbar.js.map +1 -1
- package/dist/rich-text-editor/virtual.d.ts.map +1 -1
- package/dist/rich-text-editor/virtual.js +17 -0
- package/dist/rich-text-editor/virtual.js.map +1 -1
- package/dist/richtext/node.d.ts +46 -2
- package/dist/richtext/node.d.ts.map +1 -1
- package/dist/richtext/node.js +187 -4
- package/dist/richtext/node.js.map +1 -1
- package/dist/richtext/runs.d.ts +13 -8
- package/dist/richtext/runs.d.ts.map +1 -1
- package/dist/richtext/runs.js +18 -8
- package/dist/richtext/runs.js.map +1 -1
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +23 -0
- package/dist/table/index.js.map +1 -1
- package/dist/table/rows.d.ts +3 -2
- package/dist/table/rows.d.ts.map +1 -1
- package/dist/table/rows.js +20 -6
- package/dist/table/rows.js.map +1 -1
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +4 -0
- package/dist/terminal/index.js.map +1 -1
- package/dist/terminal/vt/pty.d.ts +13 -2
- package/dist/terminal/vt/pty.d.ts.map +1 -1
- package/dist/terminal/vt/pty.js +18 -3
- package/dist/terminal/vt/pty.js.map +1 -1
- package/dist/terminal-output/index.d.ts.map +1 -1
- package/dist/terminal-output/index.js +6 -1
- package/dist/terminal-output/index.js.map +1 -1
- package/dist/three/canvas.d.ts.map +1 -1
- package/dist/three/canvas.js +85 -7
- package/dist/three/canvas.js.map +1 -1
- package/dist/three/events.d.ts +22 -4
- package/dist/three/events.d.ts.map +1 -1
- package/dist/three/events.js +34 -4
- package/dist/three/events.js.map +1 -1
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +17 -0
- package/dist/tree/index.js.map +1 -1
- package/package.json +42 -33
- package/src/charts/node.ts +62 -26
- package/src/charts/render.ts +120 -30
- package/src/code/index.ts +3 -1
- package/src/code-editor/completion.ts +3 -2
- package/src/code-editor/index.ts +19 -0
- package/src/code-editor/node.ts +1574 -184
- package/src/code-language/languages/glsl.ts +12 -2
- package/src/code-language/languages/javascript.ts +21 -4
- package/src/code-language/languages/json.ts +12 -2
- package/src/code-language/languages/shell.ts +12 -2
- package/src/code-language/languages/sql.ts +22 -2
- package/src/code-language/stream.ts +257 -17
- package/src/code-language/types.ts +5 -4
- package/src/codeblock/index.ts +20 -3
- package/src/flow/draw.ts +167 -41
- package/src/flow/gl/color.ts +85 -0
- package/src/flow/gl/index.ts +342 -0
- package/src/flow/gl/pack.ts +585 -0
- package/src/flow/gl/renderer.ts +679 -0
- package/src/flow/gl/shaders.ts +371 -0
- package/src/flow/gl/text.ts +1295 -0
- package/src/flow/index.ts +794 -67
- package/src/flow/node.ts +2496 -1256
- package/src/flow/paint.ts +511 -0
- package/src/flow/paths.ts +80 -15
- package/src/flow/scene.ts +2199 -0
- package/src/flow/types.ts +113 -1
- package/src/html/controls.ts +73 -2
- package/src/html/css/calc.ts +385 -0
- package/src/html/css/cascade.ts +1403 -62
- package/src/html/css/color.ts +755 -0
- package/src/html/css/content.ts +417 -0
- package/src/html/css/counter-styles.ts +973 -0
- package/src/html/css/decode.ts +130 -0
- package/src/html/css/parse.ts +1514 -160
- package/src/html/css/style.ts +4102 -222
- package/src/html/css/ua.ts +58 -12
- package/src/html/css/values.ts +150 -50
- package/src/html/css/vars.ts +348 -0
- package/src/html/dom.ts +284 -17
- package/src/html/fonts.ts +641 -0
- package/src/html/gif.ts +233 -0
- package/src/html/index.ts +180 -20
- package/src/html/layout/block.ts +3456 -230
- package/src/html/layout/boxes.ts +2100 -190
- package/src/html/layout/cache.ts +289 -0
- package/src/html/layout/collapse.ts +317 -0
- package/src/html/layout/css-grid.ts +1063 -0
- package/src/html/layout/flex.ts +1115 -106
- package/src/html/layout/floats.ts +128 -14
- package/src/html/layout/grid-lines.ts +141 -0
- package/src/html/layout/grid.ts +181 -0
- package/src/html/layout/inline.ts +3943 -192
- package/src/html/layout/shaping.ts +140 -0
- package/src/html/layout/table.ts +696 -186
- package/src/html/layout/tracks.ts +437 -0
- package/src/html/node.ts +1481 -118
- package/src/html/paint.ts +4293 -169
- package/src/html/resources.ts +161 -50
- package/src/html/surfaces.ts +81 -0
- package/src/html/svg.ts +493 -0
- package/src/html/url.ts +86 -0
- package/src/index.ts +2 -0
- package/src/internal/collate.ts +12 -0
- package/src/internal/markdown/ast.ts +11 -0
- package/src/internal/markdown/parse.ts +154 -11
- package/src/internal/prewarm.ts +45 -0
- package/src/internal/sdf.ts +227 -0
- package/src/internal/splice.ts +25 -0
- package/src/internal/window.ts +36 -5
- package/src/maps/anchors.ts +307 -1
- package/src/maps/controller.ts +116 -31
- package/src/maps/gl/buckets.ts +5 -1
- package/src/maps/gl/build-worker.ts +13 -2
- package/src/maps/gl/cover.ts +79 -44
- package/src/maps/gl/placement.ts +221 -69
- package/src/maps/gl/renderer.ts +104 -20
- package/src/maps/gl/shaders.ts +35 -32
- package/src/maps/gl/store.ts +66 -17
- package/src/maps/gl/text.ts +444 -71
- package/src/maps/gl/view.ts +361 -96
- package/src/maps/icons.ts +183 -0
- package/src/maps/index.ts +4 -0
- package/src/maps/labels.ts +269 -49
- package/src/maps/node.ts +82 -49
- package/src/maps/proj.ts +87 -0
- package/src/maps/sources.ts +5 -3
- package/src/maps/style.ts +32 -0
- package/src/maps/styles.ts +215 -4
- package/src/maps/tiles.ts +64 -31
- package/src/maps/types.ts +28 -4
- package/src/markdown/index.ts +149 -67
- package/src/markdown/spans.ts +5 -0
- package/src/qml/containers.tsx +6 -1
- package/src/qml/interaction.tsx +42 -5
- package/src/qml/layouts.tsx +21 -6
- package/src/qml/qtquick.tsx +9 -2
- package/src/qml/react.tsx +7 -5
- package/src/reorder/clock.ts +27 -0
- package/src/reorder/index.ts +100 -27
- package/src/rich-text-editor/index.ts +34 -1
- package/src/rich-text-editor/keymap.ts +1 -1
- package/src/rich-text-editor/keys.ts +135 -26
- package/src/rich-text-editor/marks.ts +101 -0
- package/src/rich-text-editor/render.ts +49 -12
- package/src/rich-text-editor/toolbar.ts +1 -1
- package/src/rich-text-editor/virtual.ts +25 -0
- package/src/richtext/node.ts +235 -14
- package/src/richtext/runs.ts +23 -12
- package/src/table/index.ts +29 -0
- package/src/table/rows.ts +18 -8
- package/src/terminal/index.ts +4 -0
- package/src/terminal/vt/pty.ts +16 -2
- package/src/terminal-output/index.ts +6 -1
- package/src/three/canvas.ts +102 -8
- package/src/three/events.ts +49 -9
- package/src/tree/index.ts +19 -0
package/dist/flow/draw.d.ts
CHANGED
|
@@ -3,6 +3,18 @@ interface LayoutLike {
|
|
|
3
3
|
width: number;
|
|
4
4
|
height: number;
|
|
5
5
|
draw(ctx: unknown, x: number, y: number): void;
|
|
6
|
+
/** The engine's own coverage of the layout, one byte a device pixel, with
|
|
7
|
+
* `pad` round its box — where the engine answers it (react-x11#673). */
|
|
8
|
+
coverage?(options?: {
|
|
9
|
+
pad?: number;
|
|
10
|
+
}): TextCoverage | null;
|
|
11
|
+
}
|
|
12
|
+
/** A layout's coverage: `width` × `height` bytes, the layout's origin at
|
|
13
|
+
* (pad, pad). */
|
|
14
|
+
export interface TextCoverage {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
data: Uint8Array;
|
|
6
18
|
}
|
|
7
19
|
/** One shaped string, kept between frames. `width` and `height` are
|
|
8
20
|
* logical; the layout itself was shaped at device size. */
|
|
@@ -39,6 +51,14 @@ export interface PainterOptions {
|
|
|
39
51
|
* no amount of batching on the wire would have fixed.
|
|
40
52
|
*/
|
|
41
53
|
cache: Map<string, CachedText>;
|
|
54
|
+
/**
|
|
55
|
+
* While a zoom gesture moves: a label may be drawn from a layout shaped
|
|
56
|
+
* at another size, scaled to the one asked for, rather than shaped again
|
|
57
|
+
* at every step. The pane sets it only where the context scales text
|
|
58
|
+
* with its transform (`scalesText`), and paints the exact sizes once the
|
|
59
|
+
* gesture rests.
|
|
60
|
+
*/
|
|
61
|
+
approximateText?: boolean;
|
|
42
62
|
}
|
|
43
63
|
/**
|
|
44
64
|
* A logical value on the device grid.
|
|
@@ -50,10 +70,40 @@ export interface PainterOptions {
|
|
|
50
70
|
* of a bezier's control point is not something to snap.
|
|
51
71
|
*/
|
|
52
72
|
export declare function toDevice(value: number, scale: number): number;
|
|
73
|
+
/**
|
|
74
|
+
* `Math.round` for a place on the device grid, deaf to floating-point noise
|
|
75
|
+
* at a half. A pan moves the graph by whole device pixels, and its blit
|
|
76
|
+
* takes a shift within a hair of whole as whole (`toDevice`: the viewport
|
|
77
|
+
* `-66.4` panned 27 down is `-39.400000000000006`). A place worked out from
|
|
78
|
+
* the new viewport can then sit a hair below the half the old one sat on,
|
|
79
|
+
* or above it, and round the other way — a node or a label a pixel from
|
|
80
|
+
* where the copy put it. Nudged past any such hair, a half rounds up on
|
|
81
|
+
* both sides of the blit.
|
|
82
|
+
*/
|
|
83
|
+
export declare function snapToGrid(value: number): number;
|
|
84
|
+
/**
|
|
85
|
+
* Text metrics without a drawing context. The pane needs these *outside* a
|
|
86
|
+
* repaint — a node with no explicit size is measured when the graph changes,
|
|
87
|
+
* which is also when a hit test has to know how big it is — so measuring
|
|
88
|
+
* cannot live behind the painter the way drawing does.
|
|
89
|
+
*
|
|
90
|
+
* Exported for the GL renderer's label atlas (`./gl/text.ts`), which draws
|
|
91
|
+
* the layout it measured onto a staging surface of its own.
|
|
92
|
+
*/
|
|
93
|
+
export declare function shape(opts: PainterOptions, text: string, options: TextOptions | undefined): CachedText | null;
|
|
53
94
|
export declare function measureText(opts: PainterOptions, text: string, options?: TextOptions): {
|
|
54
95
|
width: number;
|
|
55
96
|
height: number;
|
|
56
97
|
};
|
|
98
|
+
/**
|
|
99
|
+
* Cut a string to fit `max` logical pixels, with an ellipsis. Linear from
|
|
100
|
+
* the end rather than a binary search: labels that need it are short, and
|
|
101
|
+
* the widths it walks through are the ones the cache already holds.
|
|
102
|
+
*
|
|
103
|
+
* Both renderers call this, so a label cut on one is cut the same on the
|
|
104
|
+
* other — the GL one sets whatever this returns as a raster.
|
|
105
|
+
*/
|
|
106
|
+
export declare function fitText(opts: PainterOptions, text: string, options: TextOptions | undefined, max: number): string;
|
|
57
107
|
/**
|
|
58
108
|
* A painter over this context, or `null` when the backend cannot draw paths
|
|
59
109
|
* — which is the signal to skip drawing entirely rather than to throw.
|
package/dist/flow/draw.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw.d.ts","sourceRoot":"","sources":["../../src/flow/draw.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,WAAW,EAGX,WAAW,EAEZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"draw.d.ts","sourceRoot":"","sources":["../../src/flow/draw.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,WAAW,EAGX,WAAW,EAEZ,MAAM,YAAY,CAAC;AA4BpB,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C;6EACyE;IACzE,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,GAAG,IAAI,CAAC;CAC5D;AAED;kBACkB;AAClB,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;2DAC2D;AAC3D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,MAAM,CACJ,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,UAAU,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GAAG,SAAS,GAC/B,UAAU,GAAG,IAAI,CA8BnB;AAqCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAUnC;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,GACV,MAAM,CASR;AA2SD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,cAAc,GACtB,WAAW,GAAG,IAAI,CAGpB"}
|
package/dist/flow/draw.js
CHANGED
|
@@ -4,6 +4,9 @@ function isCanvas(ctx) {
|
|
|
4
4
|
}
|
|
5
5
|
/** Bound, so a pathological graph cannot turn the width cache into a leak. */
|
|
6
6
|
const CACHE_LIMIT = 4000;
|
|
7
|
+
/** The sizes each string has been shaped at, per cache — what a label drawn
|
|
8
|
+
* mid-zoom looks for instead of shaping itself again (`approximateText`). */
|
|
9
|
+
const shapedSizes = new WeakMap();
|
|
7
10
|
/**
|
|
8
11
|
* A logical value on the device grid.
|
|
9
12
|
*
|
|
@@ -18,6 +21,19 @@ export function toDevice(value, scale) {
|
|
|
18
21
|
const whole = Math.round(out);
|
|
19
22
|
return Math.abs(out - whole) < 1e-6 ? whole : out;
|
|
20
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* `Math.round` for a place on the device grid, deaf to floating-point noise
|
|
26
|
+
* at a half. A pan moves the graph by whole device pixels, and its blit
|
|
27
|
+
* takes a shift within a hair of whole as whole (`toDevice`: the viewport
|
|
28
|
+
* `-66.4` panned 27 down is `-39.400000000000006`). A place worked out from
|
|
29
|
+
* the new viewport can then sit a hair below the half the old one sat on,
|
|
30
|
+
* or above it, and round the other way — a node or a label a pixel from
|
|
31
|
+
* where the copy put it. Nudged past any such hair, a half rounds up on
|
|
32
|
+
* both sides of the blit.
|
|
33
|
+
*/
|
|
34
|
+
export function snapToGrid(value) {
|
|
35
|
+
return Math.round(value + 1e-4);
|
|
36
|
+
}
|
|
21
37
|
function fontStyle(opts, options) {
|
|
22
38
|
return {
|
|
23
39
|
family: options?.family ?? opts.family,
|
|
@@ -34,8 +50,11 @@ function fontStyle(opts, options) {
|
|
|
34
50
|
* repaint — a node with no explicit size is measured when the graph changes,
|
|
35
51
|
* which is also when a hit test has to know how big it is — so measuring
|
|
36
52
|
* cannot live behind the painter the way drawing does.
|
|
53
|
+
*
|
|
54
|
+
* Exported for the GL renderer's label atlas (`./gl/text.ts`), which draws
|
|
55
|
+
* the layout it measured onto a staging surface of its own.
|
|
37
56
|
*/
|
|
38
|
-
function shape(opts, text, options) {
|
|
57
|
+
export function shape(opts, text, options) {
|
|
39
58
|
const { fonts, cache } = opts;
|
|
40
59
|
if (!fonts)
|
|
41
60
|
return null;
|
|
@@ -44,13 +63,17 @@ function shape(opts, text, options) {
|
|
|
44
63
|
// The colour is part of the key: it is baked into the layout, so two
|
|
45
64
|
// labels that differ only in ink are two shaped runs. The scale is not:
|
|
46
65
|
// it is constant for the life of the pane that owns the cache.
|
|
47
|
-
const
|
|
66
|
+
const base = `${family}|${options?.weight ?? 400}|${options?.color ?? opts.color}|${text}`;
|
|
67
|
+
const key = `${size}|${base}`;
|
|
48
68
|
const hit = cache.get(key);
|
|
49
69
|
if (hit)
|
|
50
70
|
return hit;
|
|
51
71
|
const layout = fonts.layout(text, fontStyle(opts, options));
|
|
52
|
-
|
|
72
|
+
let sizes = shapedSizes.get(cache);
|
|
73
|
+
if (cache.size >= CACHE_LIMIT) {
|
|
53
74
|
cache.clear();
|
|
75
|
+
sizes?.clear();
|
|
76
|
+
}
|
|
54
77
|
const s = opts.scale;
|
|
55
78
|
const entry = {
|
|
56
79
|
width: layout.width / s,
|
|
@@ -58,17 +81,77 @@ function shape(opts, text, options) {
|
|
|
58
81
|
layout,
|
|
59
82
|
};
|
|
60
83
|
cache.set(key, entry);
|
|
84
|
+
if (!sizes)
|
|
85
|
+
shapedSizes.set(cache, (sizes = new Map()));
|
|
86
|
+
const shaped = sizes.get(base);
|
|
87
|
+
if (shaped)
|
|
88
|
+
shaped.push(size);
|
|
89
|
+
else
|
|
90
|
+
sizes.set(base, [size]);
|
|
61
91
|
return entry;
|
|
62
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* The layout a label is drawn from, and the scale it is drawn at: its own
|
|
95
|
+
* size where it has one, and mid-zoom (`approximateText`) the size nearest
|
|
96
|
+
* it that was shaped already — the one the gesture started from, for every
|
|
97
|
+
* label on screen. Shaping is most of what a zoom step costs in text, and
|
|
98
|
+
* a step that re-shapes every label at a size the next step moves off was
|
|
99
|
+
* paying it for nothing.
|
|
100
|
+
*/
|
|
101
|
+
function shapeNear(opts, text, options) {
|
|
102
|
+
if (opts.approximateText) {
|
|
103
|
+
const size = options?.size ?? 13;
|
|
104
|
+
const family = options?.family ?? opts.family;
|
|
105
|
+
const base = `${family}|${options?.weight ?? 400}|${options?.color ?? opts.color}|${text}`;
|
|
106
|
+
const exact = opts.cache.get(`${size}|${base}`);
|
|
107
|
+
if (exact)
|
|
108
|
+
return { entry: exact, scale: 1 };
|
|
109
|
+
const shaped = shapedSizes.get(opts.cache)?.get(base);
|
|
110
|
+
if (shaped && shaped.length > 0) {
|
|
111
|
+
let best = shaped[0];
|
|
112
|
+
for (const at of shaped) {
|
|
113
|
+
if (Math.abs(Math.log(at / size)) < Math.abs(Math.log(best / size))) {
|
|
114
|
+
best = at;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const entry = opts.cache.get(`${best}|${base}`);
|
|
118
|
+
if (entry)
|
|
119
|
+
return { entry, scale: size / best };
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const entry = shape(opts, text, options);
|
|
123
|
+
return entry ? { entry, scale: 1 } : null;
|
|
124
|
+
}
|
|
63
125
|
export function measureText(opts, text, options) {
|
|
64
126
|
const size = options?.size ?? 13;
|
|
65
|
-
const
|
|
66
|
-
if (!
|
|
127
|
+
const near = shapeNear(opts, text, options);
|
|
128
|
+
if (!near) {
|
|
67
129
|
// No font stack to ask. An estimate keeps layout plausible rather than
|
|
68
130
|
// collapsing every node to its own padding.
|
|
69
131
|
return { width: text.length * size * 0.55, height: size * 1.3 };
|
|
70
132
|
}
|
|
71
|
-
|
|
133
|
+
const { entry, scale } = near;
|
|
134
|
+
return { width: entry.width * scale, height: entry.height * scale };
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Cut a string to fit `max` logical pixels, with an ellipsis. Linear from
|
|
138
|
+
* the end rather than a binary search: labels that need it are short, and
|
|
139
|
+
* the widths it walks through are the ones the cache already holds.
|
|
140
|
+
*
|
|
141
|
+
* Both renderers call this, so a label cut on one is cut the same on the
|
|
142
|
+
* other — the GL one sets whatever this returns as a raster.
|
|
143
|
+
*/
|
|
144
|
+
export function fitText(opts, text, options, max) {
|
|
145
|
+
if (measureText(opts, text, options).width <= max)
|
|
146
|
+
return text;
|
|
147
|
+
let cut = text.length;
|
|
148
|
+
while (cut > 1) {
|
|
149
|
+
cut--;
|
|
150
|
+
const candidate = `${text.slice(0, cut).trimEnd()}…`;
|
|
151
|
+
if (measureText(opts, candidate, options).width <= max)
|
|
152
|
+
return candidate;
|
|
153
|
+
}
|
|
154
|
+
return '…';
|
|
72
155
|
}
|
|
73
156
|
class Painter {
|
|
74
157
|
raw;
|
|
@@ -106,6 +189,14 @@ class Painter {
|
|
|
106
189
|
const { ctx } = this;
|
|
107
190
|
ctx.strokeStyle = options.stroke ?? this.opts.color;
|
|
108
191
|
ctx.lineWidth = this.d(options.lineWidth ?? 1);
|
|
192
|
+
// Every stroke says how it joins and ends; `polyline` and `strokeRuns`
|
|
193
|
+
// then round both. A context keeps whatever the last stroke set, so a
|
|
194
|
+
// pass that drew an edge before a handle stroked the handle with round
|
|
195
|
+
// joins and caps, and one that reached no edge — a node's own box,
|
|
196
|
+
// repainted by itself — stroked it mitred and butt-ended, and the same
|
|
197
|
+
// ring came out two ways depending on what else the pass drew.
|
|
198
|
+
ctx.lineJoin = 'miter';
|
|
199
|
+
ctx.lineCap = 'butt';
|
|
109
200
|
if (typeof ctx.setLineDash === 'function') {
|
|
110
201
|
ctx.setLineDash(options.dash ? options.dash.map((v) => this.d(v)) : []);
|
|
111
202
|
if ('lineDashOffset' in ctx) {
|
|
@@ -175,6 +266,10 @@ class Painter {
|
|
|
175
266
|
const { ctx } = this;
|
|
176
267
|
ctx.beginPath();
|
|
177
268
|
ctx.arc(this.d(x), this.d(y), this.d(r), 0, Math.PI * 2);
|
|
269
|
+
// Closed, so the ring is one loop with a join where it started: open,
|
|
270
|
+
// its two ends meet edge to edge, and a stroke with butt ends shows a
|
|
271
|
+
// hairline where they touch.
|
|
272
|
+
ctx.closePath();
|
|
178
273
|
if (options.fill) {
|
|
179
274
|
ctx.fillStyle = options.fill;
|
|
180
275
|
ctx.fill();
|
|
@@ -219,6 +314,15 @@ class Painter {
|
|
|
219
314
|
if (!any)
|
|
220
315
|
return;
|
|
221
316
|
this.applyStroke(options);
|
|
317
|
+
// Set, not inherited: this was whatever the last `polyline` left, so a
|
|
318
|
+
// pass that stroked an edge alone before the zoom controls drew their
|
|
319
|
+
// glyphs with round ends, and one that reached only the controls drew
|
|
320
|
+
// them square — a panel repainted by itself, as a pan repaints its
|
|
321
|
+
// pinned furniture every frame, came out lighter than the panel it
|
|
322
|
+
// replaced. The same for batched edges, whose joins changed with what
|
|
323
|
+
// the pass had drawn first.
|
|
324
|
+
ctx.lineJoin = 'round';
|
|
325
|
+
ctx.lineCap = 'round';
|
|
222
326
|
ctx.stroke();
|
|
223
327
|
this.clearDash();
|
|
224
328
|
}
|
|
@@ -276,40 +380,35 @@ class Painter {
|
|
|
276
380
|
measureText(text, options) {
|
|
277
381
|
return measureText(this.opts, text, options);
|
|
278
382
|
}
|
|
279
|
-
/** Cut a string to fit, with an ellipsis. Linear from the end rather than
|
|
280
|
-
* a binary search: labels that need it are short, and the widths it walks
|
|
281
|
-
* through are the ones the cache already holds. */
|
|
282
|
-
fit(text, options, max) {
|
|
283
|
-
if (this.measureText(text, options).width <= max)
|
|
284
|
-
return text;
|
|
285
|
-
let cut = text.length;
|
|
286
|
-
while (cut > 1) {
|
|
287
|
-
cut--;
|
|
288
|
-
const candidate = `${text.slice(0, cut).trimEnd()}…`;
|
|
289
|
-
if (this.measureText(candidate, options).width <= max)
|
|
290
|
-
return candidate;
|
|
291
|
-
}
|
|
292
|
-
return '…';
|
|
293
|
-
}
|
|
294
383
|
text(text, x, y, options) {
|
|
295
384
|
if (!text)
|
|
296
385
|
return;
|
|
297
386
|
const shown = options?.maxWidth
|
|
298
|
-
? this.
|
|
387
|
+
? fitText(this.opts, text, options, options.maxWidth)
|
|
299
388
|
: text;
|
|
300
|
-
const
|
|
301
|
-
if (!
|
|
389
|
+
const near = shapeNear(this.opts, shown, options);
|
|
390
|
+
if (!near)
|
|
302
391
|
return;
|
|
303
|
-
const
|
|
392
|
+
const { entry, scale } = near;
|
|
393
|
+
const width = entry.width * scale;
|
|
394
|
+
const height = entry.height * scale;
|
|
304
395
|
const align = options?.align ?? 'left';
|
|
305
|
-
const dx = align === 'center'
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
396
|
+
const dx = align === 'center' ? -width / 2 : align === 'right' ? -width : 0;
|
|
397
|
+
const dy = options?.baseline === 'middle' ? -height / 2 : 0;
|
|
398
|
+
if (scale === 1) {
|
|
399
|
+
// Rounded on the device grid, where the glyphs land.
|
|
400
|
+
entry.layout.draw(this.raw, snapToGrid(this.d(x + dx)), snapToGrid(this.d(y + dy)));
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
// Mid-zoom, a layout shaped at another size, scaled through the context
|
|
404
|
+
// — which draws it as outlines, glyphs and all (`scalesText`). Not on
|
|
405
|
+
// the grid: the whole label is moving, and it is set exactly at rest.
|
|
406
|
+
const ctx = this.ctx;
|
|
407
|
+
ctx.save();
|
|
408
|
+
ctx.translate(this.d(x + dx), this.d(y + dy));
|
|
409
|
+
ctx.scale(scale, scale);
|
|
410
|
+
entry.layout.draw(this.raw, 0, 0);
|
|
411
|
+
ctx.restore();
|
|
313
412
|
}
|
|
314
413
|
}
|
|
315
414
|
/**
|
package/dist/flow/draw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw.js","sourceRoot":"","sources":["../../src/flow/draw.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"draw.js","sourceRoot":"","sources":["../../src/flow/draw.ts"],"names":[],"mappings":"AA4HA,SAAS,QAAQ,CAAC,GAAY;IAC5B,MAAM,CAAC,GAAG,GAA6C,CAAC;IACxD,OAAO,CACL,OAAO,CAAC,EAAE,SAAS,KAAK,UAAU,IAAI,OAAO,CAAC,EAAE,QAAQ,KAAK,UAAU,CACxE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB;8EAC8E;AAC9E,MAAM,WAAW,GAAG,IAAI,OAAO,EAG5B,CAAC;AAEJ;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,KAAa;IACnD,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,SAAS,CAChB,IAAoB,EACpB,OAAgC;IAEhC,OAAO;QACL,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;QACtC,oEAAoE;QACpE,oEAAoE;QACpE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK;QACxC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG;QAC9B,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,KAAK,CACnB,IAAoB,EACpB,IAAY,EACZ,OAAgC;IAEhC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9C,qEAAqE;IACrE,wEAAwE;IACxE,+DAA+D;IAC/D,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;IAC3F,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,EAAE,KAAK,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACrB,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG;QACtD,MAAM;KACP,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK;QAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;QACzB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CAChB,IAAoB,EACpB,IAAY,EACZ,OAAgC;IAEhC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;oBACpE,IAAI,GAAG,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,KAAK;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAoB,EACpB,IAAY,EACZ,OAAqB;IAErB,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,uEAAuE;QACvE,4CAA4C;QAC5C,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;IAClE,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,IAAoB,EACpB,IAAY,EACZ,OAAgC,EAChC,GAAW;IAEX,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACf,GAAG,EAAE,CAAC;QACN,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;QACrD,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,GAAG;YAAE,OAAO,SAAS,CAAC;IAC3E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO;IACF,GAAG,CAAU;IACb,KAAK,CAAS;IACN,GAAG,CAAa;IAChB,IAAI,CAAiB;IAEtC,YAAY,GAAe,EAAE,IAAoB;QAC/C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,8DAA8D;IACtD,CAAC,CAAC,KAAa;QACrB,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAI;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,MAAM,GAAG,CAAC;QAC7D,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACtD,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,GAAG,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAEO,WAAW,CAAC,OAAsB;QACxC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACpD,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAC/C,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,mEAAmE;QACnE,uEAAuE;QACvE,+DAA+D;QAC/D,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;QACvB,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;QACrB,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAC1C,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAC;gBAC5B,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS;QACf,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAC1C,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,gBAAgB,IAAI,GAAG;gBAAE,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,IAAI,CACF,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,MAAc,EACd,OAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC;QAClE,uEAAuE;QACvE,wEAAwE;QACxE,gEAAgE;QAChE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAChD,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAC7B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QACD,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,SAAU,CACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EACT,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EACT,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EACT,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EACT,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CACf,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAC7B,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,kEAAkE;YAClE,oEAAoE;YACpE,wDAAwD;YACxD,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;gBACtB,GAAG,CAAC,SAAS,EAAE,CAAC;gBAChB,IAAI,OAAO,EAAE,CAAC;oBACZ,GAAG,CAAC,SAAU,CACZ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EACf,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EACf,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CACpC,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CACN,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EACf,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAChB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,OAAqB;QAC3D,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QACnB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,sEAAsE;QACtE,sEAAsE;QACtE,6BAA6B;QAC7B,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAC7B,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,MAA6B,EAAE,KAAc;QACzD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK;YAAE,GAAG,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,MAA6B,EAAE,OAAsB;QAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1B,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;QACvB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACtB,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,UAAU,CACR,IAAwC,EACxC,OAAsB;QAEtB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAC7B,GAAG,GAAG,IAAI,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1B,uEAAuE;QACvE,sEAAsE;QACtE,sEAAsE;QACtE,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,4BAA4B;QAC5B,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;QACvB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACtB,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,OAA8B,EAAE,IAAY,EAAE,KAAa;QAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QACtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED,QAAQ,CACN,MAA0C,EAC1C,OAAqB;QAErB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAChC,GAAG,GAAG,IAAI,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAC7B,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAA6B,EAAE,OAAqB;QAC1D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAC7B,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,WAAW,CACT,IAAY,EACZ,OAAqB;QAErB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,OAAqB;QAC5D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ;YAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;YACrD,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC;QACvC,MAAM,EAAE,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,EAAE,GAAG,OAAO,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,qDAAqD;YACrD,KAAK,CAAC,MAAM,CAAC,IAAI,CACf,IAAI,CAAC,GAAG,EACR,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAC1B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAC3B,CAAC;YACF,OAAO;QACT,CAAC;QACD,wEAAwE;QACxE,sEAAsE;QACtE,sEAAsE;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAY,EACZ,OAAuB;IAEvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** `[r, g, b, a]`, premultiplied, each in `0..1`. */
|
|
2
|
+
export type Rgba = readonly [number, number, number, number];
|
|
3
|
+
/**
|
|
4
|
+
* A colour cache. A frame asks for the same few colours thousands of times —
|
|
5
|
+
* every edge in one pen, every card in one fill — so parsing is once per
|
|
6
|
+
* distinct string, and the cache is bounded against an application that
|
|
7
|
+
* generates colours.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ColorCache {
|
|
10
|
+
private readonly map;
|
|
11
|
+
get(value: string | undefined): Rgba;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/flow/gl/color.ts"],"names":[],"mappings":"AAaA,qDAAqD;AACrD,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AA4C7D;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAE/C,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgBnC;CACF"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// CSS colours as the premultiplied floats a blend of ONE, ONE_MINUS_SRC_ALPHA
|
|
2
|
+
// wants.
|
|
3
|
+
//
|
|
4
|
+
// Through ntk's own parser where it can be reached, because a graph's colours
|
|
5
|
+
// come from three places and only one of them is ours: the palette (hex and
|
|
6
|
+
// `rgba()`), `tint()` (`rgba()`), and an application's node and edge styles —
|
|
7
|
+
// which are CSS, so `red` and `hsl(...)` are fair game and the 2D renderer
|
|
8
|
+
// draws them. `cssColorStraight` is exported by ntk at runtime but not
|
|
9
|
+
// declared by `react-x11/ntk`'s types, so it is probed rather than imported,
|
|
10
|
+
// the way `src/flow/index.ts` probes the reconciler's escape hatch; the local
|
|
11
|
+
// parser below is what a core that drops it degrades to.
|
|
12
|
+
import * as ntk from 'react-x11/ntk';
|
|
13
|
+
const CLEAR = [0, 0, 0, 0];
|
|
14
|
+
const ntkParser = (() => {
|
|
15
|
+
const candidate = ntk
|
|
16
|
+
.cssColorStraight;
|
|
17
|
+
return typeof candidate === 'function' ? candidate : null;
|
|
18
|
+
})();
|
|
19
|
+
/** Hex and `rgb()`/`rgba()` — every colour the default palette produces. */
|
|
20
|
+
function localParse(value) {
|
|
21
|
+
const v = value.trim().toLowerCase();
|
|
22
|
+
if (v === 'transparent')
|
|
23
|
+
return [0, 0, 0, 0];
|
|
24
|
+
if (v.startsWith('#')) {
|
|
25
|
+
const h = v.slice(1);
|
|
26
|
+
if (!/^[0-9a-f]+$/.test(h))
|
|
27
|
+
return null;
|
|
28
|
+
if (h.length === 3 || h.length === 4) {
|
|
29
|
+
const c = (i) => parseInt(h[i] + h[i], 16) / 255;
|
|
30
|
+
return [c(0), c(1), c(2), h.length === 4 ? c(3) : 1];
|
|
31
|
+
}
|
|
32
|
+
if (h.length === 6 || h.length === 8) {
|
|
33
|
+
const c = (i) => parseInt(h.slice(i * 2, i * 2 + 2), 16) / 255;
|
|
34
|
+
return [c(0), c(1), c(2), h.length === 8 ? c(3) : 1];
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const m = /^rgba?\(([^)]*)\)$/.exec(v);
|
|
39
|
+
if (!m)
|
|
40
|
+
return null;
|
|
41
|
+
const parts = m[1].split(/[\s,/]+/).filter(Boolean);
|
|
42
|
+
if (parts.length < 3)
|
|
43
|
+
return null;
|
|
44
|
+
const channel = (p) => p.endsWith('%') ? parseFloat(p) / 100 : parseFloat(p) / 255;
|
|
45
|
+
const alpha = parts[3] === undefined
|
|
46
|
+
? 1
|
|
47
|
+
: parts[3].endsWith('%')
|
|
48
|
+
? parseFloat(parts[3]) / 100
|
|
49
|
+
: parseFloat(parts[3]);
|
|
50
|
+
return [channel(parts[0]), channel(parts[1]), channel(parts[2]), alpha];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* A colour cache. A frame asks for the same few colours thousands of times —
|
|
54
|
+
* every edge in one pen, every card in one fill — so parsing is once per
|
|
55
|
+
* distinct string, and the cache is bounded against an application that
|
|
56
|
+
* generates colours.
|
|
57
|
+
*/
|
|
58
|
+
export class ColorCache {
|
|
59
|
+
map = new Map();
|
|
60
|
+
get(value) {
|
|
61
|
+
if (!value)
|
|
62
|
+
return CLEAR;
|
|
63
|
+
let rgba = this.map.get(value);
|
|
64
|
+
if (rgba)
|
|
65
|
+
return rgba;
|
|
66
|
+
const parsed = (ntkParser ?? localParse)(value) ?? localParse(value);
|
|
67
|
+
// An unknown colour draws nothing rather than black: the same answer
|
|
68
|
+
// the 2D context gives a `fillStyle` it cannot read.
|
|
69
|
+
if (!parsed) {
|
|
70
|
+
rgba = CLEAR;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const a = parsed[3] ?? 1;
|
|
74
|
+
rgba = [parsed[0] * a, parsed[1] * a, parsed[2] * a, a];
|
|
75
|
+
}
|
|
76
|
+
if (this.map.size > 512)
|
|
77
|
+
this.map.clear();
|
|
78
|
+
this.map.set(value, rgba);
|
|
79
|
+
return rgba;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/flow/gl/color.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import type { FlowFrameStats } from '../types.js';
|
|
3
|
+
import type { TextSource } from './text.js';
|
|
4
|
+
import type { FlowGlFrame, FlowGlTarget } from './renderer.js';
|
|
5
|
+
/** What the surface needs of the pane — `FlowGraphNode`, structurally. */
|
|
6
|
+
export interface FlowGlSource {
|
|
7
|
+
glFrame(lastKey: string | null, lastLifted?: string | null): (FlowGlFrame & {
|
|
8
|
+
key: string;
|
|
9
|
+
liftedKey?: string | null;
|
|
10
|
+
}) | null;
|
|
11
|
+
glText?(): TextSource | null;
|
|
12
|
+
setGlRequest(request: (() => void) | null): void;
|
|
13
|
+
bodyBudget(): FlowFrameStats['bodies'];
|
|
14
|
+
}
|
|
15
|
+
export interface FlowGlSurfaceProps {
|
|
16
|
+
pane: {
|
|
17
|
+
readonly current: FlowGlSource | null;
|
|
18
|
+
};
|
|
19
|
+
/** The colour a frame starts from — the palette's background, so the
|
|
20
|
+
* instant before the first frame is the graph's ground, not black. */
|
|
21
|
+
clearColor: string;
|
|
22
|
+
onFrame?: (stats: FlowFrameStats) => void;
|
|
23
|
+
/** The surface could not draw; `<Flow>` goes back to the 2D renderer. */
|
|
24
|
+
onError: (error: Error) => void;
|
|
25
|
+
/** Drawn over the surface: the mounted node bodies. */
|
|
26
|
+
children?: ReactNode;
|
|
27
|
+
}
|
|
28
|
+
/** What core's `<glarea>` hands `onDraw` (react-x11 ≥ 2.18.0 passes the
|
|
29
|
+
* display scale — sidorares/react-x11#634). */
|
|
30
|
+
export interface DrawInfoLike {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
scale: number;
|
|
34
|
+
node: {
|
|
35
|
+
abs: {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Where the surface sits, from what `onDraw` was handed.
|
|
43
|
+
*
|
|
44
|
+
* The scene is in logical window pixels and the surface is a box of its own
|
|
45
|
+
* in device ones; the node's `abs` is device pixels too, so its origin in
|
|
46
|
+
* logical ones is `abs / scale`. Taking `scale` from `DrawInfo`, where its
|
|
47
|
+
* type puts it, made that `abs / undefined`: every vertex `NaN`, a blank
|
|
48
|
+
* pane — and every counter the renderer keeps, draw calls and instances and
|
|
49
|
+
* frames a second, exactly what a correct frame reports. So a target that
|
|
50
|
+
* is not finite throws here, and a surface that cannot place itself fails
|
|
51
|
+
* back to the 2D renderer through `onError` rather than drawing nothing.
|
|
52
|
+
*/
|
|
53
|
+
export declare function targetOf(info: DrawInfoLike): FlowGlTarget;
|
|
54
|
+
/**
|
|
55
|
+
* The surface. Mounted by `<Flow>` as the pane's sibling, after it, filling
|
|
56
|
+
* the same box: a `<glarea>` is stacked over everything 2D in its window, so
|
|
57
|
+
* it lands on the pane wherever it is in the tree.
|
|
58
|
+
*/
|
|
59
|
+
export declare function FlowGlSurface(props: FlowGlSurfaceProps): ReactElement;
|
|
60
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/flow/gl/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE/D,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,OAAO,CACL,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB,CAAC,WAAW,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACrE,MAAM,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACjD,UAAU,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;KAAE,CAAC;IAChD;2EACuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,yEAAyE;IACzE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD;gDACgD;AAChD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE;QAAE,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAwBzD;AAiOD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAmBrE"}
|