@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/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,mEAAmE;AACnE,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,wEAAwE;AACxE,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,eAAe;AACf,uEAAuE;AACvE,uEAAuE;AACvE,iEAAiE;AACjE,OAAO,EACP,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,cAAc,EACd,WAAW,EACX,eAAe,EACf,SAAS,EACT,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACL,aAAa,GACd,MAAM,qBAAqB,CAAC;AAiB7B,6EAA6E;AAC7E,6EAA6E;AAC7E,4DAA4D;AAC5D,OAAO,EACL,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,iBAAiB;AACjB,4EAA4E;AAC5E,0DAA0D;AAC1D,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,WAAW,EACX,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,OAAO,GACR,MAAM,yBAAyB,CAAC;AAYjC,2EAA2E;AAC3E,2EAA2E;AAC3E,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAyB3B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGvC,6EAA6E;AAC7E,yEAAyE;AACzE,iBAAiB;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAM5D,8EAA8E;AAC9E,6DAA6D;AAC7D,OAAO,EACL,OAAO,EACP,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,SAAS,GACV,MAAM,iBAAiB,CAAC;AAkBzB,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,gEAAgE;AAChE,4EAA4E;AAC5E,6EAA6E;AAC7E,wDAAwD;AACxD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,IAAI,YAAY,EACxB,gBAAgB,IAAI,oBAAoB,EACxC,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAkBzB,OAAO,EACL,IAAI,EACJ,aAAa,EACb,YAAY;AACZ,sEAAsE;AACtE,oDAAoD;AACpD,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
import type { Style } from 'react-x11/style';
|
|
3
|
+
import type { TextRun } from '../richtext/index.js';
|
|
4
|
+
/** Lines a block of code holds. */
|
|
5
|
+
export declare const CODE_BLOCK_LINES = 256;
|
|
6
|
+
/**
|
|
7
|
+
* Runs split into blocks of `lines` whole lines: the text cut at every
|
|
8
|
+
* `lines`th newline, that newline left out, so the blocks stacked are the
|
|
9
|
+
* text again. A newline that ends the whole text stays in its block, where
|
|
10
|
+
* it draws the empty last line it always drew.
|
|
11
|
+
*/
|
|
12
|
+
export declare function codeBlocks(runs: readonly TextRun[], lines?: number): TextRun[][];
|
|
13
|
+
export interface CodeLinesProps {
|
|
14
|
+
runs: readonly TextRun[];
|
|
15
|
+
/** Every block's style, compared by value: a style object built afresh
|
|
16
|
+
* each render keeps the blocks. */
|
|
17
|
+
style: Style;
|
|
18
|
+
/** `false` lays each block out unwrapped, as `<richtext>` takes it. */
|
|
19
|
+
wrap?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The runs of a block of code, drawn as blocks of lines (`codeBlocks`),
|
|
23
|
+
* each a `<richtext>` kept while its runs are the same. A selection runs
|
|
24
|
+
* across the blocks and copies as one text, since core joins text elements
|
|
25
|
+
* stacked one above the other with a newline.
|
|
26
|
+
*/
|
|
27
|
+
export declare function CodeLines(props: CodeLinesProps): ReactElement;
|
|
28
|
+
export interface CodeGutterProps {
|
|
29
|
+
/** Lines in the code beside it. */
|
|
30
|
+
lines: number;
|
|
31
|
+
/** How a number is set: the code's family and size, a dimmer colour. */
|
|
32
|
+
run: Omit<TextRun, 'text'>;
|
|
33
|
+
style: Style;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The line numbers beside `CodeLines`, blocked the same way so that the two
|
|
37
|
+
* stay in register a block at a time, and a number not rebuilt for a line
|
|
38
|
+
* appended far below it. Each number is followed by a newline, the last as
|
|
39
|
+
* well, as the gutter always was.
|
|
40
|
+
*/
|
|
41
|
+
export declare function CodeGutter(props: CodeGutterProps): ReactElement;
|
|
42
|
+
//# sourceMappingURL=codelines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codelines.d.ts","sourceRoot":"","sources":["../../src/internal/codelines.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAInE,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,KAAK,SAAmB,GACvB,OAAO,EAAE,EAAE,CA6Bb;AA0BD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IACzB;wCACoC;IACpC,KAAK,EAAE,KAAK,CAAC;IACb,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAUD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAyB7D;AAED,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAgD/D"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// Code drawn as a column of blocks of lines, under `<Code>` and
|
|
2
|
+
// `<Markdown>`'s fences.
|
|
3
|
+
//
|
|
4
|
+
// One `<richtext>` for a whole block of code is laid out whole whenever any
|
|
5
|
+
// of it changes, and a code block that streams — a model writing a fence a
|
|
6
|
+
// token at a time, a log of source — changes at its end every time: 0.4 s
|
|
7
|
+
// for a line appended to 5,000 in either component. As blocks, a change
|
|
8
|
+
// lays out the blocks it touches. The runs are tokenized afresh on every
|
|
9
|
+
// change, so a block is kept by what it holds rather than by identity: while
|
|
10
|
+
// its runs are the same text in the same styles, its element is the one
|
|
11
|
+
// already drawn.
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { RICHTEXT_ELEMENT } from '../richtext/index.js';
|
|
14
|
+
const h = React.createElement;
|
|
15
|
+
/** Lines a block of code holds. */
|
|
16
|
+
export const CODE_BLOCK_LINES = 256;
|
|
17
|
+
/**
|
|
18
|
+
* Runs split into blocks of `lines` whole lines: the text cut at every
|
|
19
|
+
* `lines`th newline, that newline left out, so the blocks stacked are the
|
|
20
|
+
* text again. A newline that ends the whole text stays in its block, where
|
|
21
|
+
* it draws the empty last line it always drew.
|
|
22
|
+
*/
|
|
23
|
+
export function codeBlocks(runs, lines = CODE_BLOCK_LINES) {
|
|
24
|
+
let last = runs.length - 1;
|
|
25
|
+
while (last >= 0 && runs[last].text === '')
|
|
26
|
+
last--;
|
|
27
|
+
const blocks = [];
|
|
28
|
+
let block = [];
|
|
29
|
+
let count = 0;
|
|
30
|
+
for (let r = 0; r < runs.length; r++) {
|
|
31
|
+
const run = runs[r];
|
|
32
|
+
let from = 0;
|
|
33
|
+
let search = 0;
|
|
34
|
+
for (;;) {
|
|
35
|
+
const nl = run.text.indexOf('\n', search);
|
|
36
|
+
if (nl < 0)
|
|
37
|
+
break;
|
|
38
|
+
search = nl + 1;
|
|
39
|
+
if (++count < lines)
|
|
40
|
+
continue;
|
|
41
|
+
// the text's own last newline is a line of its own, and stays
|
|
42
|
+
if (r === last && nl === run.text.length - 1)
|
|
43
|
+
break;
|
|
44
|
+
if (nl > from)
|
|
45
|
+
block.push(piece(run, from, nl));
|
|
46
|
+
blocks.push(block);
|
|
47
|
+
block = [];
|
|
48
|
+
count = 0;
|
|
49
|
+
from = nl + 1;
|
|
50
|
+
}
|
|
51
|
+
if (from < run.text.length) {
|
|
52
|
+
block.push(from === 0 ? run : piece(run, from, run.text.length));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
blocks.push(block);
|
|
56
|
+
return blocks;
|
|
57
|
+
}
|
|
58
|
+
function piece(run, from, to) {
|
|
59
|
+
return { ...run, text: run.text.slice(from, to) };
|
|
60
|
+
}
|
|
61
|
+
/** Whether two runs are the same text in the same style, field for field. */
|
|
62
|
+
function sameRun(a, b) {
|
|
63
|
+
if (a === b)
|
|
64
|
+
return true;
|
|
65
|
+
const x = a;
|
|
66
|
+
const y = b;
|
|
67
|
+
for (const key in x)
|
|
68
|
+
if (x[key] !== y[key])
|
|
69
|
+
return false;
|
|
70
|
+
for (const key in y)
|
|
71
|
+
if (!(key in x) && y[key] !== undefined)
|
|
72
|
+
return false;
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
function sameRuns(a, b) {
|
|
76
|
+
if (a.length !== b.length)
|
|
77
|
+
return false;
|
|
78
|
+
for (let i = 0; i < a.length; i++)
|
|
79
|
+
if (!sameRun(a[i], b[i]))
|
|
80
|
+
return false;
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
function sameStyle(a, b) {
|
|
84
|
+
return sameRun(a, b);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The runs of a block of code, drawn as blocks of lines (`codeBlocks`),
|
|
88
|
+
* each a `<richtext>` kept while its runs are the same. A selection runs
|
|
89
|
+
* across the blocks and copies as one text, since core joins text elements
|
|
90
|
+
* stacked one above the other with a newline.
|
|
91
|
+
*/
|
|
92
|
+
export function CodeLines(props) {
|
|
93
|
+
const { style, wrap } = props;
|
|
94
|
+
const kept = React.useRef(null);
|
|
95
|
+
const was = kept.current &&
|
|
96
|
+
kept.current.wrap === wrap &&
|
|
97
|
+
sameStyle(kept.current.style, style)
|
|
98
|
+
? kept.current
|
|
99
|
+
: null;
|
|
100
|
+
const blocks = codeBlocks(props.runs);
|
|
101
|
+
const elements = blocks.map((block, i) => {
|
|
102
|
+
const before = was?.blocks[i];
|
|
103
|
+
if (before && sameRuns(before, block)) {
|
|
104
|
+
blocks[i] = before;
|
|
105
|
+
return was.elements[i];
|
|
106
|
+
}
|
|
107
|
+
const blockProps = { runs: block, style };
|
|
108
|
+
if (wrap === false)
|
|
109
|
+
blockProps.wrap = false;
|
|
110
|
+
return h(RICHTEXT_ELEMENT, {
|
|
111
|
+
key: i,
|
|
112
|
+
...blockProps,
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
kept.current = { style, wrap, blocks, elements };
|
|
116
|
+
return h(React.Fragment, null, ...elements);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The line numbers beside `CodeLines`, blocked the same way so that the two
|
|
120
|
+
* stay in register a block at a time, and a number not rebuilt for a line
|
|
121
|
+
* appended far below it. Each number is followed by a newline, the last as
|
|
122
|
+
* well, as the gutter always was.
|
|
123
|
+
*/
|
|
124
|
+
export function CodeGutter(props) {
|
|
125
|
+
const { lines, run, style } = props;
|
|
126
|
+
const kept = React.useRef(null);
|
|
127
|
+
if (!kept.current ||
|
|
128
|
+
!sameRun(kept.current.run, run) ||
|
|
129
|
+
!sameStyle(kept.current.style, style)) {
|
|
130
|
+
kept.current = { run, style, byStart: new Map() };
|
|
131
|
+
}
|
|
132
|
+
const byStart = kept.current.byStart;
|
|
133
|
+
const elements = [];
|
|
134
|
+
const used = new Set();
|
|
135
|
+
for (let start = 0; start < lines || start === 0; start += CODE_BLOCK_LINES) {
|
|
136
|
+
const end = Math.min(start + CODE_BLOCK_LINES, lines);
|
|
137
|
+
const key = `${start}:${end}`;
|
|
138
|
+
used.add(key);
|
|
139
|
+
let element = byStart.get(key);
|
|
140
|
+
if (!element) {
|
|
141
|
+
const runs = [];
|
|
142
|
+
for (let i = start; i < end; i++) {
|
|
143
|
+
runs.push({ ...run, text: `${i + 1}\n` });
|
|
144
|
+
}
|
|
145
|
+
// the newline that ends a block is the gap to the next one
|
|
146
|
+
if (end < lines && runs.length > 0) {
|
|
147
|
+
const tail = runs[runs.length - 1];
|
|
148
|
+
runs[runs.length - 1] = { ...tail, text: tail.text.slice(0, -1) };
|
|
149
|
+
}
|
|
150
|
+
element = h(RICHTEXT_ELEMENT, {
|
|
151
|
+
key: start,
|
|
152
|
+
// The numbering is chrome, not text: `selectable={false}` keeps it
|
|
153
|
+
// out of a drag and out of the copied text.
|
|
154
|
+
selectable: false,
|
|
155
|
+
runs,
|
|
156
|
+
wrap: false,
|
|
157
|
+
style,
|
|
158
|
+
});
|
|
159
|
+
byStart.set(key, element);
|
|
160
|
+
}
|
|
161
|
+
elements.push(element);
|
|
162
|
+
if (lines === 0)
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
for (const key of byStart.keys())
|
|
166
|
+
if (!used.has(key))
|
|
167
|
+
byStart.delete(key);
|
|
168
|
+
return h(React.Fragment, null, ...elements);
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=codelines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codelines.js","sourceRoot":"","sources":["../../src/internal/codelines.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collate.d.ts","sourceRoot":"","sources":["../../src/internal/collate.ts"],"names":[],"mappings":"AAQA,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Text compared the way `String#localeCompare` with no locale compares it,
|
|
2
|
+
// with one collator for every comparison. ECMA-402 defines that call as a
|
|
3
|
+
// new `Intl.Collator()`'s `compare`, and V8 made the collator on every call:
|
|
4
|
+
// most of a 100,000-row table sort, and all of a completion list's with
|
|
5
|
+
// nothing typed yet. Made on first use, so importing constructs nothing.
|
|
6
|
+
let collator = null;
|
|
7
|
+
/** `a.localeCompare(b)`, without a collator a call. */
|
|
8
|
+
export function compareText(a, b) {
|
|
9
|
+
return (collator ??= new Intl.Collator()).compare(a, b);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=collate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collate.js","sourceRoot":"","sources":["../../src/internal/collate.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,6EAA6E;AAC7E,wEAAwE;AACxE,yEAAyE;AAEzE,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAE1C,uDAAuD;AACvD,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS;IAC9C,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -208,5 +208,16 @@ export interface ParseOptions {
|
|
|
208
208
|
* evaluates nothing — an expression is kept as source.
|
|
209
209
|
*/
|
|
210
210
|
expressions?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* What this document last parsed into, when the new source is an edit of
|
|
213
|
+
* that one: the parse then reads only the blocks around the change and
|
|
214
|
+
* takes the rest from `previous`, the same objects. The answer is the
|
|
215
|
+
* one a parse from scratch gives, whatever the edit; `previous` only
|
|
216
|
+
* decides how much of it has to be worked out again. Ignored when it came
|
|
217
|
+
* from different options or from somewhere other than `parse`, and with
|
|
218
|
+
* `isComponent`: a component's open tag looks for its close as far as the
|
|
219
|
+
* end of the document, so no block before an edit is settled.
|
|
220
|
+
*/
|
|
221
|
+
previous?: Document;
|
|
211
222
|
}
|
|
212
223
|
//# sourceMappingURL=ast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../src/internal/markdown/ast.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../src/internal/markdown/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/internal/markdown/parse.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAGV,QAAQ,EACR,UAAU,EAGV,YAAY,EAEb,MAAM,UAAU,CAAC;AA4IlB,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/internal/markdown/parse.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAGV,QAAQ,EACR,UAAU,EAGV,YAAY,EAEb,MAAM,UAAU,CAAC;AA4IlB,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,QAAQ,CAgC1E;AA0xBD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,WAAW,UAAQ,GAClB,UAAU,EAAE,CA2Qd"}
|
|
@@ -121,25 +121,120 @@ function indentOf(line) {
|
|
|
121
121
|
// --- entry -----------------------------------------------------------------
|
|
122
122
|
export function parse(source, options = {}) {
|
|
123
123
|
const partial = options.partial !== false;
|
|
124
|
+
const isComponent = options.isComponent ?? NO_COMPONENTS;
|
|
125
|
+
const expressions = options.expressions === true;
|
|
124
126
|
const normalized = source.replace(/\r\n?/g, '\n');
|
|
125
127
|
const lines = normalized.split('\n').map(expandLeadingTabs);
|
|
128
|
+
const previous = options.previous;
|
|
129
|
+
const was = previous ? resumable.get(previous) : undefined;
|
|
130
|
+
// Not with components: an open tag looks for its close to the end of the
|
|
131
|
+
// document (`componentCloseLine`), so a close added anywhere below can
|
|
132
|
+
// change what it is, and the block before an edit is no longer settled.
|
|
133
|
+
if (previous &&
|
|
134
|
+
was &&
|
|
135
|
+
was.partial === partial &&
|
|
136
|
+
was.expressions === expressions &&
|
|
137
|
+
isComponent === NO_COMPONENTS &&
|
|
138
|
+
was.isComponent === NO_COMPONENTS) {
|
|
139
|
+
return resume(previous, was, lines);
|
|
140
|
+
}
|
|
126
141
|
const blocks = [];
|
|
127
142
|
const ranges = [];
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
};
|
|
143
|
+
const blanks = new Uint8Array(lines.length);
|
|
144
|
+
parseBlocks(lines, partial, blocks, ranges, isComponent, expressions, {
|
|
145
|
+
from: 0,
|
|
146
|
+
blanks,
|
|
147
|
+
});
|
|
148
|
+
return remember({ blocks, raws: ranges.map(([a, b]) => lines.slice(a, b).join('\n')) }, { lines, ranges, blanks, partial, isComponent, expressions });
|
|
149
|
+
}
|
|
150
|
+
/** Kept beside the documents rather than in them, so a Document stays the
|
|
151
|
+
* plain data every caller and test compares. */
|
|
152
|
+
const resumable = new WeakMap();
|
|
153
|
+
function remember(doc, state) {
|
|
154
|
+
resumable.set(doc, state);
|
|
155
|
+
return doc;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Parse `lines` as an edit of `previous`: from one block before the first
|
|
159
|
+
* line that changed, until the loop stands where the previous parse stood
|
|
160
|
+
* in the lines the edit left alone — or to the end, when it never does (an
|
|
161
|
+
* unclosed fence swallows the rest of a document either way).
|
|
162
|
+
*/
|
|
163
|
+
function resume(previous, was, lines) {
|
|
164
|
+
const old = was.lines;
|
|
165
|
+
const oldN = old.length;
|
|
166
|
+
const n = lines.length;
|
|
167
|
+
const shortest = Math.min(oldN, n);
|
|
168
|
+
let first = 0;
|
|
169
|
+
while (first < shortest && old[first] === lines[first])
|
|
170
|
+
first += 1;
|
|
171
|
+
if (first === oldN && first === n)
|
|
172
|
+
return previous;
|
|
173
|
+
// lines at the end the edit did not touch, never counting the prefix twice
|
|
174
|
+
let same = 0;
|
|
175
|
+
while (same < shortest - first &&
|
|
176
|
+
old[oldN - 1 - same] === lines[n - 1 - same]) {
|
|
177
|
+
same += 1;
|
|
178
|
+
}
|
|
179
|
+
const shift = n - oldN;
|
|
180
|
+
const suffix = n - same;
|
|
181
|
+
// The first block that reaches the change, and the one before it: a
|
|
182
|
+
// block's extent is decided by the lines up to the next block's first —
|
|
183
|
+
// a list looks past blank lines to see whether it goes on — so the block
|
|
184
|
+
// before the first one touched cannot have depended on the change.
|
|
185
|
+
const { ranges } = was;
|
|
186
|
+
let lo = 0;
|
|
187
|
+
let hi = ranges.length;
|
|
188
|
+
while (lo < hi) {
|
|
189
|
+
const mid = (lo + hi) >> 1;
|
|
190
|
+
if (ranges[mid][1] <= first)
|
|
191
|
+
lo = mid + 1;
|
|
192
|
+
else
|
|
193
|
+
hi = mid;
|
|
194
|
+
}
|
|
195
|
+
const kept = Math.max(0, lo - 1);
|
|
196
|
+
const from = kept === 0 ? 0 : ranges[kept][0];
|
|
197
|
+
const blanks = new Uint8Array(n);
|
|
198
|
+
blanks.set(was.blanks.subarray(0, from));
|
|
199
|
+
const blocks = previous.blocks.slice(0, kept);
|
|
200
|
+
const raws = previous.raws.slice(0, kept);
|
|
201
|
+
const next = ranges.slice(0, kept);
|
|
202
|
+
const fresh = [];
|
|
203
|
+
const stop = parseBlocks(lines, was.partial, blocks, fresh, was.isComponent, was.expressions, {
|
|
204
|
+
from,
|
|
205
|
+
blanks,
|
|
206
|
+
resync: (i) => i >= suffix && was.blanks[i - shift] === 1,
|
|
207
|
+
});
|
|
208
|
+
for (const [a, b] of fresh) {
|
|
209
|
+
raws.push(lines.slice(a, b).join('\n'));
|
|
210
|
+
next.push([a, b]);
|
|
211
|
+
}
|
|
212
|
+
if (stop < n) {
|
|
213
|
+
// the previous parse from the same place over the same lines: its
|
|
214
|
+
// blocks, where they now are
|
|
215
|
+
const at = stop - shift;
|
|
216
|
+
blanks.set(was.blanks.subarray(at), stop);
|
|
217
|
+
let j = ranges.length;
|
|
218
|
+
while (j > 0 && ranges[j - 1][0] >= at)
|
|
219
|
+
j -= 1;
|
|
220
|
+
for (; j < ranges.length; j += 1) {
|
|
221
|
+
blocks.push(previous.blocks[j]);
|
|
222
|
+
raws.push(previous.raws[j]);
|
|
223
|
+
next.push([ranges[j][0] + shift, ranges[j][1] + shift]);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return remember({ blocks, raws }, { ...was, lines, ranges: next, blanks });
|
|
133
227
|
}
|
|
134
|
-
// --- block layer -----------------------------------------------------------
|
|
135
228
|
/**
|
|
136
229
|
* Parse a run of lines into blocks. `tailOpen` says the end of `lines` is
|
|
137
230
|
* the live end of a streaming document — the license for every "complete it
|
|
138
231
|
* anyway" rule. `ranges`, when given, receives each block's [start, endExcl)
|
|
139
232
|
* line range (only the top-level call wants them, for the streaming cache).
|
|
233
|
+
* Returns the line it stopped at: the end, or where `top.resync` said the
|
|
234
|
+
* rest would come out as it did before.
|
|
140
235
|
*/
|
|
141
|
-
function parseBlocks(lines, tailOpen, out, ranges, isComponent = NO_COMPONENTS, expressions = false) {
|
|
142
|
-
let i = 0;
|
|
236
|
+
function parseBlocks(lines, tailOpen, out, ranges, isComponent = NO_COMPONENTS, expressions = false, top) {
|
|
237
|
+
let i = top?.from ?? 0;
|
|
143
238
|
const n = lines.length;
|
|
144
239
|
let paraStart = -1;
|
|
145
240
|
const para = [];
|
|
@@ -165,6 +260,11 @@ function parseBlocks(lines, tailOpen, out, ranges, isComponent = NO_COMPONENTS,
|
|
|
165
260
|
const held = tailOpen && isLast; // "might still grow" applies
|
|
166
261
|
if (RE_BLANK.test(line)) {
|
|
167
262
|
flushPara(i);
|
|
263
|
+
if (top) {
|
|
264
|
+
if (top.resync?.(i))
|
|
265
|
+
return i;
|
|
266
|
+
top.blanks[i] = 1;
|
|
267
|
+
}
|
|
168
268
|
i += 1;
|
|
169
269
|
continue;
|
|
170
270
|
}
|
|
@@ -429,6 +529,7 @@ function parseBlocks(lines, tailOpen, out, ranges, isComponent = NO_COMPONENTS,
|
|
|
429
529
|
i += 1;
|
|
430
530
|
}
|
|
431
531
|
flushPara(n);
|
|
532
|
+
return n;
|
|
432
533
|
}
|
|
433
534
|
function parseList(lines, from, tailOpen, isComponent = NO_COMPONENTS, expressions = false) {
|
|
434
535
|
const n = lines.length;
|