@react-x11/components 0.9.0 → 0.11.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 +27 -24
- 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/index.d.ts +1 -1
- package/dist/code-language/index.d.ts.map +1 -1
- package/dist/code-language/index.js +1 -1
- package/dist/code-language/index.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/runs.d.ts +31 -0
- package/dist/code-language/runs.d.ts.map +1 -1
- package/dist/code-language/runs.js +105 -0
- package/dist/code-language/runs.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 +26 -2
- package/dist/codeblock/index.d.ts.map +1 -1
- package/dist/codeblock/index.js +57 -4
- 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 +262 -6
- package/dist/html/css/cascade.d.ts.map +1 -1
- package/dist/html/css/cascade.js +1373 -67
- 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 +501 -15
- package/dist/html/css/style.d.ts.map +1 -1
- package/dist/html/css/style.js +3729 -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 +65 -16
- 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 +3077 -219
- package/dist/html/layout/block.js.map +1 -1
- package/dist/html/layout/boxes.d.ts +367 -17
- package/dist/html/layout/boxes.d.ts.map +1 -1
- package/dist/html/layout/boxes.js +1742 -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 +154 -1
- package/dist/html/layout/inline.d.ts.map +1 -1
- package/dist/html/layout/inline.js +3598 -175
- 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 +1429 -137
- 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 +3635 -107
- 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 +442 -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/codelines.d.ts +42 -0
- package/dist/internal/codelines.d.ts.map +1 -0
- package/dist/internal/codelines.js +170 -0
- package/dist/internal/codelines.js.map +1 -0
- 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 +209 -68
- 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 +38 -9
- 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/markdown.d.ts.map +1 -1
- package/dist/rich-text-editor/markdown.js +30 -1
- package/dist/rich-text-editor/markdown.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/replace.d.ts +13 -0
- package/dist/rich-text-editor/replace.d.ts.map +1 -0
- package/dist/rich-text-editor/replace.js +64 -0
- package/dist/rich-text-editor/replace.js.map +1 -0
- 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 +103 -23
- package/dist/terminal-output/index.js.map +1 -1
- package/dist/terminal-output/runs.d.ts +4 -1
- package/dist/terminal-output/runs.d.ts.map +1 -1
- package/dist/terminal-output/runs.js +5 -1
- package/dist/terminal-output/runs.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 +36 -32
- 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/index.ts +1 -1
- 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/runs.ts +111 -1
- package/src/code-language/stream.ts +257 -17
- package/src/code-language/types.ts +5 -4
- package/src/codeblock/index.ts +68 -4
- 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 +1481 -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 +4131 -223
- package/src/html/css/ua.ts +66 -17
- 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 +3560 -208
- package/src/html/layout/boxes.ts +2141 -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 +4187 -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 +1585 -156
- package/src/html/paint.ts +4582 -267
- package/src/html/resources.ts +161 -50
- package/src/html/surfaces.ts +81 -0
- package/src/html/svg.ts +504 -0
- package/src/html/url.ts +86 -0
- package/src/index.ts +2 -0
- package/src/internal/codelines.ts +200 -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 +293 -92
- 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 +37 -12
- package/src/rich-text-editor/keymap.ts +1 -1
- package/src/rich-text-editor/keys.ts +135 -26
- package/src/rich-text-editor/markdown.ts +36 -1
- package/src/rich-text-editor/marks.ts +101 -0
- package/src/rich-text-editor/render.ts +49 -12
- package/src/rich-text-editor/replace.ts +85 -0
- 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 +129 -31
- package/src/terminal-output/runs.ts +16 -2
- package/src/three/canvas.ts +102 -8
- package/src/three/events.ts +49 -9
- package/src/tree/index.ts +19 -0
package/src/maps/gl/placement.ts
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
// fits its street at this zoom, it would be cut by the edge, or something
|
|
18
18
|
// that outranks it arrives.
|
|
19
19
|
// - **Labels fade**, in and out, over {@link FADE_MS}. A label never pops;
|
|
20
|
-
// one whose
|
|
20
|
+
// one whose field is still being set waits, invisibly, and fades in
|
|
21
21
|
// when it lands.
|
|
22
22
|
// - **Labels do not slide.** Anchors are fixed ground, so a label moves
|
|
23
23
|
// exactly with the map; when a street's label leaves the view another
|
|
@@ -42,8 +42,16 @@ import {
|
|
|
42
42
|
estimateWidth,
|
|
43
43
|
} from '../anchors.js';
|
|
44
44
|
import type { GlLabelData } from '../anchors.js';
|
|
45
|
-
import {
|
|
45
|
+
import { fieldReach } from './text.js';
|
|
46
46
|
import type { AtlasEntry, LabelAtlas } from './text.js';
|
|
47
|
+
import {
|
|
48
|
+
DEFAULT_ICON_COLOR,
|
|
49
|
+
DEFAULT_ICON_GLYPH_COLOR,
|
|
50
|
+
DEFAULT_ICON_SIZE,
|
|
51
|
+
ICON_GAP,
|
|
52
|
+
isMapIcon,
|
|
53
|
+
} from '../icons.js';
|
|
54
|
+
import type { MapIcon } from '../icons.js';
|
|
47
55
|
|
|
48
56
|
/** A rectangle in device pixels. */
|
|
49
57
|
interface Rect {
|
|
@@ -85,23 +93,25 @@ export interface PlacementFrame {
|
|
|
85
93
|
* must, and what the zoom uncovers is named once it stops — not labels
|
|
86
94
|
* arriving and leaving at every step of it. `true` by default. */
|
|
87
95
|
admit?: boolean;
|
|
88
|
-
/** The camera is moving: a label keeps the raster it has, rather than
|
|
89
|
-
* asking for one at each size its zoom ramp passes through. */
|
|
90
|
-
moving?: boolean;
|
|
91
96
|
}
|
|
92
97
|
|
|
93
98
|
/** Floats per label instance; the layout `renderer.ts` binds. */
|
|
94
|
-
export const LABEL_INSTANCE =
|
|
99
|
+
export const LABEL_INSTANCE = 19;
|
|
95
100
|
|
|
96
101
|
/** The frame's labels, ready to draw. */
|
|
97
102
|
export interface LabelBatch {
|
|
98
103
|
atlas: LabelAtlas;
|
|
99
104
|
/** {@link LABEL_INSTANCE} floats per label: centre x, y (device
|
|
100
|
-
* pixels); cos, sin of the baseline; the
|
|
101
|
-
* and halo colour, premultiplied and faded; halo
|
|
102
|
-
* the label on whole pixels
|
|
105
|
+
* pixels); cos, sin of the baseline; the field's rect in the atlas x,
|
|
106
|
+
* y, w, h (texels); ink and halo colour, premultiplied and faded; halo
|
|
107
|
+
* radius (device pixels); `1` to set the label on whole pixels; and
|
|
108
|
+
* device pixels per field texel — the drawn size over the atlas's
|
|
109
|
+
* base. */
|
|
103
110
|
instances: Float32Array;
|
|
104
111
|
count: number;
|
|
112
|
+
/** Labels drawn: fewer than `count` where an icon is two instances of
|
|
113
|
+
* its own beside its name's. `count` where absent. */
|
|
114
|
+
labels?: number;
|
|
105
115
|
}
|
|
106
116
|
|
|
107
117
|
export interface PlacementStats {
|
|
@@ -130,12 +140,23 @@ const CELL = 64;
|
|
|
130
140
|
interface LayerLabels {
|
|
131
141
|
id: string;
|
|
132
142
|
rank: number;
|
|
133
|
-
/** Device pixels
|
|
143
|
+
/** Device pixels — not rounded: one field draws any size. */
|
|
134
144
|
size: number;
|
|
135
145
|
repeat: number;
|
|
136
146
|
ink: Rgba;
|
|
137
147
|
halo: Rgba | null;
|
|
138
148
|
haloPx: number;
|
|
149
|
+
icon: LayerIcon | null;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** A layer's icon at a zoom: device pixels across, the gap to the name,
|
|
153
|
+
* and its two colours. */
|
|
154
|
+
interface LayerIcon {
|
|
155
|
+
name: MapIcon;
|
|
156
|
+
size: number;
|
|
157
|
+
gap: number;
|
|
158
|
+
plate: Rgba;
|
|
159
|
+
glyph: Rgba;
|
|
139
160
|
}
|
|
140
161
|
|
|
141
162
|
/** A label on screen, or fading. Its ground is mercator, so it outlives
|
|
@@ -158,8 +179,6 @@ interface Shown {
|
|
|
158
179
|
priority: number;
|
|
159
180
|
opacity: number;
|
|
160
181
|
placed: boolean;
|
|
161
|
-
/** The size it has a raster at — drawn until the current size's lands. */
|
|
162
|
-
drawn: number;
|
|
163
182
|
}
|
|
164
183
|
|
|
165
184
|
interface Candidate {
|
|
@@ -172,6 +191,9 @@ interface Candidate {
|
|
|
172
191
|
point: boolean;
|
|
173
192
|
sx: number;
|
|
174
193
|
sy: number;
|
|
194
|
+
/** How far right of `sx` its box's centre is: an icon's name is set
|
|
195
|
+
* beside it. Device pixels; set once the box is measured. */
|
|
196
|
+
ox: number;
|
|
175
197
|
angle: number;
|
|
176
198
|
cos: number;
|
|
177
199
|
sin: number;
|
|
@@ -226,7 +248,7 @@ export class LabelPlacer {
|
|
|
226
248
|
|
|
227
249
|
/**
|
|
228
250
|
* Choose the frame's labels. Asks `atlas` for each contender's box, as
|
|
229
|
-
* the frame's budget allows, and for each winner's
|
|
251
|
+
* the frame's budget allows, and for each winner's field.
|
|
230
252
|
*/
|
|
231
253
|
place(frame: PlacementFrame, atlas: LabelAtlas): void {
|
|
232
254
|
const started = now();
|
|
@@ -372,18 +394,28 @@ export class LabelPlacer {
|
|
|
372
394
|
}
|
|
373
395
|
const box = atlas.measure(c.text, c.size);
|
|
374
396
|
if (!box || box.width === 0) continue;
|
|
375
|
-
|
|
376
|
-
|
|
397
|
+
let w = box.width;
|
|
398
|
+
let h = box.height;
|
|
377
399
|
if (!c.point) {
|
|
378
400
|
const need = w / 2 + h * LINE_MARGIN;
|
|
379
401
|
if (c.avail < (c.shown ? need * 0.9 : need)) continue;
|
|
380
402
|
}
|
|
403
|
+
// An icon on the point and the name beside it are one box, placed
|
|
404
|
+
// and given way as one.
|
|
405
|
+
const icon = this._icon(layers[c.layer], c.point, atlas);
|
|
406
|
+
if (icon) {
|
|
407
|
+
const full = icon.size + icon.gap + w;
|
|
408
|
+
c.ox = (full - icon.size) / 2;
|
|
409
|
+
w = full;
|
|
410
|
+
h = Math.max(h, icon.size);
|
|
411
|
+
}
|
|
412
|
+
const bx = c.sx + c.ox;
|
|
381
413
|
const hw = (Math.abs(c.cos) * w + Math.abs(c.sin) * h) / 2;
|
|
382
414
|
const hh = (Math.abs(c.sin) * w + Math.abs(c.cos) * h) / 2;
|
|
383
415
|
if (
|
|
384
|
-
|
|
416
|
+
bx - hw < inset ||
|
|
385
417
|
c.sy - hh < inset ||
|
|
386
|
-
|
|
418
|
+
bx + hw > width - inset ||
|
|
387
419
|
c.sy + hh > height - inset
|
|
388
420
|
) {
|
|
389
421
|
continue;
|
|
@@ -425,7 +457,6 @@ export class LabelPlacer {
|
|
|
425
457
|
size: c.size,
|
|
426
458
|
opacity: 0,
|
|
427
459
|
placed: false,
|
|
428
|
-
drawn: 0,
|
|
429
460
|
} as Shown);
|
|
430
461
|
fresh.mx = c.mx;
|
|
431
462
|
fresh.my = c.my;
|
|
@@ -442,8 +473,12 @@ export class LabelPlacer {
|
|
|
442
473
|
}
|
|
443
474
|
shown.placed = true;
|
|
444
475
|
shown.size = c.size;
|
|
445
|
-
|
|
446
|
-
|
|
476
|
+
atlas.entry(shown.text);
|
|
477
|
+
const icon = this._icon(layers[shown.layer], shown.point, atlas);
|
|
478
|
+
if (icon) {
|
|
479
|
+
atlas.icon(icon.name, 'plate');
|
|
480
|
+
atlas.icon(icon.name, 'glyph');
|
|
481
|
+
}
|
|
447
482
|
}
|
|
448
483
|
|
|
449
484
|
this.stats = {
|
|
@@ -464,24 +499,27 @@ export class LabelPlacer {
|
|
|
464
499
|
this._last = frame.now;
|
|
465
500
|
const step = dt / FADE_MS;
|
|
466
501
|
const layers = this._layersAt(frame.style, frame.zoom, frame.scale);
|
|
467
|
-
|
|
502
|
+
// How far past its glyphs a field sees, in its own texels: the widest
|
|
503
|
+
// halo it can draw, times the label's scale.
|
|
504
|
+
const reach = fieldReach(atlas.pad);
|
|
468
505
|
const halfW = frame.width / 2;
|
|
469
506
|
const halfH = frame.height / 2;
|
|
470
507
|
let count = 0;
|
|
508
|
+
let labels = 0;
|
|
471
509
|
for (const shown of [...this._shown]) {
|
|
472
510
|
const layer = layers[shown.layer];
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
511
|
+
// One field for every size: a zoom ramp that grows the type draws the
|
|
512
|
+
// same raster larger, the frame it changes.
|
|
513
|
+
const entry = atlas.entry(shown.text);
|
|
514
|
+
// A name set beside an icon waits for the icon as well: the name
|
|
515
|
+
// alone is what the icon is there to explain.
|
|
516
|
+
const icon = this._icon(layer, shown.point, atlas);
|
|
517
|
+
const plate = icon ? atlas.icon(icon.name, 'plate') : null;
|
|
518
|
+
const glyph = icon ? atlas.icon(icon.name, 'glyph') : null;
|
|
519
|
+
const ready =
|
|
520
|
+
entry !== null && (!icon || (plate !== null && glyph !== null));
|
|
483
521
|
// Nothing to show yet: wait at zero rather than fade in unseen.
|
|
484
|
-
if (
|
|
522
|
+
if (ready && layer) {
|
|
485
523
|
shown.opacity = shown.placed
|
|
486
524
|
? Math.min(1, shown.opacity + step)
|
|
487
525
|
: Math.max(0, shown.opacity - step);
|
|
@@ -492,44 +530,111 @@ export class LabelPlacer {
|
|
|
492
530
|
this._shown.delete(shown);
|
|
493
531
|
continue;
|
|
494
532
|
}
|
|
495
|
-
if (!entry || !layer || shown.opacity <= 0) continue;
|
|
533
|
+
if (!ready || !entry || !layer || shown.opacity <= 0) continue;
|
|
496
534
|
let dx = shown.mx - frame.centerX;
|
|
497
535
|
dx -= Math.round(dx);
|
|
498
536
|
const sx = halfW + dx * frame.world;
|
|
499
537
|
const sy = halfH + (shown.my - frame.centerY) * frame.world;
|
|
500
538
|
const eased = shown.opacity * shown.opacity * (3 - 2 * shown.opacity);
|
|
501
|
-
if (this._instances.length < (count + 1) * LABEL_INSTANCE) {
|
|
502
|
-
const grown = new Float32Array(this._instances.length * 2);
|
|
503
|
-
grown.set(this._instances);
|
|
504
|
-
this._instances = grown;
|
|
505
|
-
}
|
|
506
|
-
const d = this._instances;
|
|
507
|
-
const at = count * LABEL_INSTANCE;
|
|
508
|
-
const level = shown.angle === 0;
|
|
509
|
-
d[at] = sx;
|
|
510
|
-
d[at + 1] = sy;
|
|
511
|
-
d[at + 2] = level ? 1 : Math.cos(shown.angle);
|
|
512
|
-
d[at + 3] = level ? 0 : Math.sin(shown.angle);
|
|
513
|
-
d[at + 4] = entry.x;
|
|
514
|
-
d[at + 5] = entry.y;
|
|
515
|
-
d[at + 6] = entry.width;
|
|
516
|
-
d[at + 7] = entry.height;
|
|
517
539
|
const ink = premultiplied(layer.ink, eased);
|
|
518
|
-
d[at + 8] = ink[0];
|
|
519
|
-
d[at + 9] = ink[1];
|
|
520
|
-
d[at + 10] = ink[2];
|
|
521
|
-
d[at + 11] = ink[3];
|
|
522
540
|
const halo = layer.halo ? premultiplied(layer.halo, eased) : ZERO;
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
541
|
+
const k = shown.size / atlas.base;
|
|
542
|
+
const haloPx = layer.halo ? Math.min(layer.haloPx, reach * k) : 0;
|
|
543
|
+
if (icon && plate && glyph) {
|
|
544
|
+
// The plate under its halo, the glyph on it, and the name level
|
|
545
|
+
// beside it: the string is its field less the margin, and its
|
|
546
|
+
// left edge goes the gap past the plate's right.
|
|
547
|
+
const ki = icon.size / atlas.base;
|
|
548
|
+
const plateHalo = layer.halo ? Math.min(layer.haloPx, reach * ki) : 0;
|
|
549
|
+
count = this._put(
|
|
550
|
+
count,
|
|
551
|
+
sx,
|
|
552
|
+
sy,
|
|
553
|
+
0,
|
|
554
|
+
plate,
|
|
555
|
+
premultiplied(icon.plate, eased),
|
|
556
|
+
halo,
|
|
557
|
+
plateHalo,
|
|
558
|
+
ki,
|
|
559
|
+
);
|
|
560
|
+
count = this._put(
|
|
561
|
+
count,
|
|
562
|
+
sx,
|
|
563
|
+
sy,
|
|
564
|
+
0,
|
|
565
|
+
glyph,
|
|
566
|
+
premultiplied(icon.glyph, eased),
|
|
567
|
+
ZERO,
|
|
568
|
+
0,
|
|
569
|
+
ki,
|
|
570
|
+
);
|
|
571
|
+
const tx =
|
|
572
|
+
sx +
|
|
573
|
+
icon.size / 2 +
|
|
574
|
+
icon.gap +
|
|
575
|
+
((entry.width - 2 * atlas.pad) * k) / 2;
|
|
576
|
+
count = this._put(count, tx, sy, 0, entry, ink, halo, haloPx, k);
|
|
577
|
+
} else {
|
|
578
|
+
count = this._put(
|
|
579
|
+
count,
|
|
580
|
+
sx,
|
|
581
|
+
sy,
|
|
582
|
+
shown.angle,
|
|
583
|
+
entry,
|
|
584
|
+
ink,
|
|
585
|
+
halo,
|
|
586
|
+
haloPx,
|
|
587
|
+
k,
|
|
588
|
+
);
|
|
589
|
+
}
|
|
590
|
+
labels++;
|
|
530
591
|
}
|
|
531
|
-
this.stats.drawn =
|
|
532
|
-
return { atlas, instances: this._instances, count };
|
|
592
|
+
this.stats.drawn = labels;
|
|
593
|
+
return { atlas, instances: this._instances, count, labels };
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
/** One instance — a label's string, or a piece of its icon — written at
|
|
597
|
+
* `count`: answers the count after it. Level (`angle` 0) is set on
|
|
598
|
+
* whole pixels. */
|
|
599
|
+
private _put(
|
|
600
|
+
count: number,
|
|
601
|
+
x: number,
|
|
602
|
+
y: number,
|
|
603
|
+
angle: number,
|
|
604
|
+
entry: AtlasEntry,
|
|
605
|
+
ink: Rgba,
|
|
606
|
+
halo: Rgba,
|
|
607
|
+
haloPx: number,
|
|
608
|
+
scale: number,
|
|
609
|
+
): number {
|
|
610
|
+
if (this._instances.length < (count + 1) * LABEL_INSTANCE) {
|
|
611
|
+
const grown = new Float32Array(this._instances.length * 2);
|
|
612
|
+
grown.set(this._instances);
|
|
613
|
+
this._instances = grown;
|
|
614
|
+
}
|
|
615
|
+
const d = this._instances;
|
|
616
|
+
const at = count * LABEL_INSTANCE;
|
|
617
|
+
const level = angle === 0;
|
|
618
|
+
d[at] = x;
|
|
619
|
+
d[at + 1] = y;
|
|
620
|
+
d[at + 2] = level ? 1 : Math.cos(angle);
|
|
621
|
+
d[at + 3] = level ? 0 : Math.sin(angle);
|
|
622
|
+
d[at + 4] = entry.x;
|
|
623
|
+
d[at + 5] = entry.y;
|
|
624
|
+
d[at + 6] = entry.width;
|
|
625
|
+
d[at + 7] = entry.height;
|
|
626
|
+
d[at + 8] = ink[0];
|
|
627
|
+
d[at + 9] = ink[1];
|
|
628
|
+
d[at + 10] = ink[2];
|
|
629
|
+
d[at + 11] = ink[3];
|
|
630
|
+
d[at + 12] = halo[0];
|
|
631
|
+
d[at + 13] = halo[1];
|
|
632
|
+
d[at + 14] = halo[2];
|
|
633
|
+
d[at + 15] = halo[3];
|
|
634
|
+
d[at + 16] = haloPx;
|
|
635
|
+
d[at + 17] = level ? 1 : 0;
|
|
636
|
+
d[at + 18] = scale;
|
|
637
|
+
return count + 1;
|
|
533
638
|
}
|
|
534
639
|
|
|
535
640
|
// --- internals -------------------------------------------------------------
|
|
@@ -587,6 +692,7 @@ export class LabelPlacer {
|
|
|
587
692
|
point,
|
|
588
693
|
sx,
|
|
589
694
|
sy,
|
|
695
|
+
ox: 0,
|
|
590
696
|
angle: a,
|
|
591
697
|
cos: Math.cos(a),
|
|
592
698
|
sin: Math.sin(a),
|
|
@@ -607,6 +713,18 @@ export class LabelPlacer {
|
|
|
607
713
|
};
|
|
608
714
|
}
|
|
609
715
|
|
|
716
|
+
/** The icon a label of `layer` is set with: none for a name along a
|
|
717
|
+
* street, and none where the atlas cannot draw it — the name is then set
|
|
718
|
+
* alone rather than not at all. */
|
|
719
|
+
private _icon(
|
|
720
|
+
layer: LayerLabels | null | undefined,
|
|
721
|
+
point: boolean,
|
|
722
|
+
atlas: LabelAtlas,
|
|
723
|
+
): LayerIcon | null {
|
|
724
|
+
const icon = point ? (layer?.icon ?? null) : null;
|
|
725
|
+
return icon && !atlas.iconFailed(icon.name) ? icon : null;
|
|
726
|
+
}
|
|
727
|
+
|
|
610
728
|
/** Each symbol layer's labelling at this zoom, by layer index — null
|
|
611
729
|
* where it does not label. */
|
|
612
730
|
private _layersAt(
|
|
@@ -630,13 +748,13 @@ export class LabelPlacer {
|
|
|
630
748
|
symbol.textHaloWidth === undefined
|
|
631
749
|
? 1
|
|
632
750
|
: resolveZoomed(symbol.textHaloWidth, zoom);
|
|
751
|
+
// Not rounded: a field draws any size, so a ramp grows the type
|
|
752
|
+
// continuously rather than a whole pixel at a time.
|
|
633
753
|
const size = Math.max(
|
|
634
754
|
1,
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
: resolveZoomed(symbol.textSize, zoom)) * scale,
|
|
639
|
-
),
|
|
755
|
+
(symbol.textSize === undefined
|
|
756
|
+
? 12
|
|
757
|
+
: resolveZoomed(symbol.textSize, zoom)) * scale,
|
|
640
758
|
);
|
|
641
759
|
return {
|
|
642
760
|
id: layer.id,
|
|
@@ -646,10 +764,43 @@ export class LabelPlacer {
|
|
|
646
764
|
ink,
|
|
647
765
|
halo: halo && haloWidth > 0 ? halo : null,
|
|
648
766
|
haloPx: haloWidth * scale,
|
|
767
|
+
icon: this._iconOf(symbol, zoom, scale),
|
|
649
768
|
};
|
|
650
769
|
});
|
|
651
770
|
}
|
|
652
771
|
|
|
772
|
+
/** A layer's icon at this zoom, or null where it sets none — or names
|
|
773
|
+
* one this version does not draw, or a colour that does not parse. */
|
|
774
|
+
private _iconOf(
|
|
775
|
+
symbol: SymbolLayer,
|
|
776
|
+
zoom: number,
|
|
777
|
+
scale: number,
|
|
778
|
+
): LayerIcon | null {
|
|
779
|
+
if (!isMapIcon(symbol.icon)) return null;
|
|
780
|
+
const plate = this._color(
|
|
781
|
+
symbol.iconColor
|
|
782
|
+
? resolveZoomed(symbol.iconColor, zoom)
|
|
783
|
+
: DEFAULT_ICON_COLOR,
|
|
784
|
+
);
|
|
785
|
+
const glyph = this._color(
|
|
786
|
+
symbol.iconGlyphColor
|
|
787
|
+
? resolveZoomed(symbol.iconGlyphColor, zoom)
|
|
788
|
+
: DEFAULT_ICON_GLYPH_COLOR,
|
|
789
|
+
);
|
|
790
|
+
if (!plate || !glyph) return null;
|
|
791
|
+
const size =
|
|
792
|
+
symbol.iconSize === undefined
|
|
793
|
+
? DEFAULT_ICON_SIZE
|
|
794
|
+
: resolveZoomed(symbol.iconSize, zoom);
|
|
795
|
+
return {
|
|
796
|
+
name: symbol.icon,
|
|
797
|
+
size: Math.max(1, Math.round(size * scale)),
|
|
798
|
+
gap: ICON_GAP * scale,
|
|
799
|
+
plate,
|
|
800
|
+
glyph,
|
|
801
|
+
};
|
|
802
|
+
}
|
|
803
|
+
|
|
653
804
|
private _color(value: string): Rgba | null {
|
|
654
805
|
let color = this._colors.get(value);
|
|
655
806
|
if (color === undefined) {
|
|
@@ -743,11 +894,12 @@ class CollisionGrid {
|
|
|
743
894
|
const out = this._scratch;
|
|
744
895
|
out.length = 0;
|
|
745
896
|
if (c.angle === 0) {
|
|
897
|
+
const x = c.sx + c.ox;
|
|
746
898
|
out.push(
|
|
747
899
|
0,
|
|
748
|
-
|
|
900
|
+
x - w / 2 - pad,
|
|
749
901
|
c.sy - h / 2 - pad,
|
|
750
|
-
|
|
902
|
+
x + w / 2 + pad,
|
|
751
903
|
c.sy + h / 2 + pad,
|
|
752
904
|
);
|
|
753
905
|
return out;
|