@react-x11/components 0.8.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 +105 -38
- package/dist/charts/node.d.ts +12 -2
- package/dist/charts/node.d.ts.map +1 -1
- package/dist/charts/node.js +50 -16
- 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/embed/client.d.ts +48 -3
- package/dist/embed/client.d.ts.map +1 -1
- package/dist/embed/client.js +79 -5
- package/dist/embed/client.js.map +1 -1
- package/dist/embed/index.d.ts +1 -1
- package/dist/embed/index.d.ts.map +1 -1
- package/dist/embed/index.js +1 -1
- package/dist/embed/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 +172 -5
- package/dist/html/node.d.ts.map +1 -1
- package/dist/html/node.js +1336 -103
- 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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +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/{markdown → internal/markdown}/ast.d.ts +23 -0
- package/dist/internal/markdown/ast.d.ts.map +1 -0
- package/dist/internal/markdown/ast.js +22 -0
- package/dist/internal/markdown/ast.js.map +1 -0
- package/dist/internal/markdown/parse.d.ts.map +1 -0
- package/dist/{markdown → internal/markdown}/parse.js +221 -30
- package/dist/internal/markdown/parse.js.map +1 -0
- package/dist/internal/markdown/stringify.d.ts +4 -0
- package/dist/internal/markdown/stringify.d.ts.map +1 -0
- package/dist/internal/markdown/stringify.js +684 -0
- package/dist/internal/markdown/stringify.js.map +1 -0
- package/dist/internal/markdown/tags.d.ts.map +1 -0
- package/dist/internal/markdown/tags.js.map +1 -0
- 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/scroll.d.ts +3 -2
- package/dist/internal/scroll.d.ts.map +1 -1
- package/dist/internal/scroll.js +1 -0
- package/dist/internal/scroll.js.map +1 -1
- 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 +103 -0
- package/dist/maps/anchors.d.ts.map +1 -0
- package/dist/maps/anchors.js +790 -0
- package/dist/maps/anchors.js.map +1 -0
- package/dist/maps/controller.d.ts +340 -0
- package/dist/maps/controller.d.ts.map +1 -0
- package/dist/maps/controller.js +822 -0
- package/dist/maps/controller.js.map +1 -0
- package/dist/maps/gl/buckets.d.ts +99 -0
- package/dist/maps/gl/buckets.d.ts.map +1 -0
- package/dist/maps/gl/buckets.js +365 -0
- package/dist/maps/gl/buckets.js.map +1 -0
- package/dist/maps/gl/build-worker.d.ts +15 -0
- package/dist/maps/gl/build-worker.d.ts.map +1 -0
- package/dist/maps/gl/build-worker.js +44 -0
- package/dist/maps/gl/build-worker.js.map +1 -0
- package/dist/maps/gl/color.d.ts +8 -0
- package/dist/maps/gl/color.d.ts.map +1 -0
- package/dist/maps/gl/color.js +57 -0
- package/dist/maps/gl/color.js.map +1 -0
- package/dist/maps/gl/cover.d.ts +70 -0
- package/dist/maps/gl/cover.d.ts.map +1 -0
- package/dist/maps/gl/cover.js +137 -0
- package/dist/maps/gl/cover.js.map +1 -0
- package/dist/maps/gl/index.d.ts +3 -0
- package/dist/maps/gl/index.d.ts.map +1 -0
- package/dist/maps/gl/index.js +20 -0
- package/dist/maps/gl/index.js.map +1 -0
- package/dist/maps/gl/markers.d.ts +28 -0
- package/dist/maps/gl/markers.d.ts.map +1 -0
- package/dist/maps/gl/markers.js +60 -0
- package/dist/maps/gl/markers.js.map +1 -0
- package/dist/maps/gl/overlays.d.ts +68 -0
- package/dist/maps/gl/overlays.d.ts.map +1 -0
- package/dist/maps/gl/overlays.js +300 -0
- package/dist/maps/gl/overlays.js.map +1 -0
- package/dist/maps/gl/pane.d.ts +12 -0
- package/dist/maps/gl/pane.d.ts.map +1 -0
- package/dist/maps/gl/pane.js +37 -0
- package/dist/maps/gl/pane.js.map +1 -0
- package/dist/maps/gl/placement.d.ts +124 -0
- package/dist/maps/gl/placement.d.ts.map +1 -0
- package/dist/maps/gl/placement.js +642 -0
- package/dist/maps/gl/placement.js.map +1 -0
- package/dist/maps/gl/renderer.d.ts +384 -0
- package/dist/maps/gl/renderer.d.ts.map +1 -0
- package/dist/maps/gl/renderer.js +1184 -0
- package/dist/maps/gl/renderer.js.map +1 -0
- package/dist/maps/gl/shaders.d.ts +121 -0
- package/dist/maps/gl/shaders.d.ts.map +1 -0
- package/dist/maps/gl/shaders.js +453 -0
- package/dist/maps/gl/shaders.js.map +1 -0
- package/dist/maps/gl/store.d.ts +125 -0
- package/dist/maps/gl/store.d.ts.map +1 -0
- package/dist/maps/gl/store.js +512 -0
- package/dist/maps/gl/store.js.map +1 -0
- package/dist/maps/gl/text.d.ts +283 -0
- package/dist/maps/gl/text.d.ts.map +1 -0
- package/dist/maps/gl/text.js +698 -0
- package/dist/maps/gl/text.js.map +1 -0
- package/dist/maps/gl/view.d.ts +345 -0
- package/dist/maps/gl/view.d.ts.map +1 -0
- package/dist/maps/gl/view.js +1209 -0
- package/dist/maps/gl/view.js.map +1 -0
- 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 +3 -1
- package/dist/maps/index.d.ts.map +1 -1
- package/dist/maps/index.js +218 -52
- package/dist/maps/index.js.map +1 -1
- package/dist/maps/labels.d.ts +91 -18
- package/dist/maps/labels.d.ts.map +1 -1
- package/dist/maps/labels.js +376 -140
- package/dist/maps/labels.js.map +1 -1
- package/dist/maps/node.d.ts +179 -56
- package/dist/maps/node.d.ts.map +1 -1
- package/dist/maps/node.js +663 -537
- package/dist/maps/node.js.map +1 -1
- package/dist/maps/overlay.d.ts +72 -9
- package/dist/maps/overlay.d.ts.map +1 -1
- package/dist/maps/overlay.js +108 -28
- package/dist/maps/overlay.js.map +1 -1
- package/dist/maps/paint.d.ts +3 -0
- package/dist/maps/paint.d.ts.map +1 -1
- package/dist/maps/paint.js.map +1 -1
- package/dist/maps/proj.d.ts +62 -0
- package/dist/maps/proj.d.ts.map +1 -1
- package/dist/maps/proj.js +101 -0
- package/dist/maps/proj.js.map +1 -1
- package/dist/maps/renderer.d.ts +69 -0
- package/dist/maps/renderer.d.ts.map +1 -0
- package/dist/maps/renderer.js +66 -0
- package/dist/maps/renderer.js.map +1 -0
- package/dist/maps/sources.d.ts +30 -6
- package/dist/maps/sources.d.ts.map +1 -1
- package/dist/maps/sources.js +22 -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/theme.d.ts +19 -0
- package/dist/maps/theme.d.ts.map +1 -0
- package/dist/maps/theme.js +44 -0
- package/dist/maps/theme.js.map +1 -0
- package/dist/maps/tiles.d.ts +147 -27
- package/dist/maps/tiles.d.ts.map +1 -1
- package/dist/maps/tiles.js +221 -54
- package/dist/maps/tiles.js.map +1 -1
- package/dist/maps/types.d.ts +213 -21
- package/dist/maps/types.d.ts.map +1 -1
- package/dist/markdown/expressions.d.ts +1 -1
- package/dist/markdown/expressions.d.ts.map +1 -1
- package/dist/markdown/expressions.js.map +1 -1
- package/dist/markdown/index.d.ts +7 -6
- package/dist/markdown/index.d.ts.map +1 -1
- package/dist/markdown/index.js +121 -50
- package/dist/markdown/index.js.map +1 -1
- package/dist/markdown/spans.d.ts +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/media-player/index.d.ts +11 -3
- package/dist/media-player/index.d.ts.map +1 -1
- package/dist/media-player/index.js +13 -2
- package/dist/media-player/index.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/clipboard.d.ts +23 -0
- package/dist/rich-text-editor/clipboard.d.ts.map +1 -0
- package/dist/rich-text-editor/clipboard.js +307 -0
- package/dist/rich-text-editor/clipboard.js.map +1 -0
- package/dist/rich-text-editor/collab.d.ts +32 -0
- package/dist/rich-text-editor/collab.d.ts.map +1 -0
- package/dist/rich-text-editor/collab.js +55 -0
- package/dist/rich-text-editor/collab.js.map +1 -0
- package/dist/rich-text-editor/commands.d.ts +50 -0
- package/dist/rich-text-editor/commands.d.ts.map +1 -0
- package/dist/rich-text-editor/commands.js +376 -0
- package/dist/rich-text-editor/commands.js.map +1 -0
- package/dist/rich-text-editor/drag.d.ts +68 -0
- package/dist/rich-text-editor/drag.d.ts.map +1 -0
- package/dist/rich-text-editor/drag.js +148 -0
- package/dist/rich-text-editor/drag.js.map +1 -0
- package/dist/rich-text-editor/html.d.ts +145 -0
- package/dist/rich-text-editor/html.d.ts.map +1 -0
- package/dist/rich-text-editor/html.js +516 -0
- package/dist/rich-text-editor/html.js.map +1 -0
- package/dist/rich-text-editor/index.d.ts +252 -0
- package/dist/rich-text-editor/index.d.ts.map +1 -0
- package/dist/rich-text-editor/index.js +856 -0
- package/dist/rich-text-editor/index.js.map +1 -0
- package/dist/rich-text-editor/inline.d.ts +94 -0
- package/dist/rich-text-editor/inline.d.ts.map +1 -0
- package/dist/rich-text-editor/inline.js +252 -0
- package/dist/rich-text-editor/inline.js.map +1 -0
- package/dist/rich-text-editor/keymap.d.ts +71 -0
- package/dist/rich-text-editor/keymap.d.ts.map +1 -0
- package/dist/rich-text-editor/keymap.js +394 -0
- package/dist/rich-text-editor/keymap.js.map +1 -0
- package/dist/rich-text-editor/keys.d.ts +40 -0
- package/dist/rich-text-editor/keys.d.ts.map +1 -0
- package/dist/rich-text-editor/keys.js +202 -0
- package/dist/rich-text-editor/keys.js.map +1 -0
- package/dist/rich-text-editor/look.d.ts +71 -0
- package/dist/rich-text-editor/look.d.ts.map +1 -0
- package/dist/rich-text-editor/look.js +342 -0
- package/dist/rich-text-editor/look.js.map +1 -0
- package/dist/rich-text-editor/markdown.d.ts +18 -0
- package/dist/rich-text-editor/markdown.d.ts.map +1 -0
- package/dist/rich-text-editor/markdown.js +496 -0
- package/dist/rich-text-editor/markdown.js.map +1 -0
- 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/nodes.d.ts +135 -0
- package/dist/rich-text-editor/nodes.d.ts.map +1 -0
- package/dist/rich-text-editor/nodes.js +397 -0
- package/dist/rich-text-editor/nodes.js.map +1 -0
- package/dist/rich-text-editor/render.d.ts +68 -0
- package/dist/rich-text-editor/render.d.ts.map +1 -0
- package/dist/rich-text-editor/render.js +518 -0
- package/dist/rich-text-editor/render.js.map +1 -0
- package/dist/rich-text-editor/schema.d.ts +16 -0
- package/dist/rich-text-editor/schema.d.ts.map +1 -0
- package/dist/rich-text-editor/schema.js +386 -0
- package/dist/rich-text-editor/schema.js.map +1 -0
- package/dist/rich-text-editor/store.d.ts +11 -0
- package/dist/rich-text-editor/store.d.ts.map +1 -0
- package/dist/rich-text-editor/store.js +43 -0
- package/dist/rich-text-editor/store.js.map +1 -0
- package/dist/rich-text-editor/suggest.d.ts +127 -0
- package/dist/rich-text-editor/suggest.d.ts.map +1 -0
- package/dist/rich-text-editor/suggest.js +0 -0
- package/dist/rich-text-editor/suggest.js.map +1 -0
- package/dist/rich-text-editor/tables.d.ts +41 -0
- package/dist/rich-text-editor/tables.d.ts.map +1 -0
- package/dist/rich-text-editor/tables.js +204 -0
- package/dist/rich-text-editor/tables.js.map +1 -0
- package/dist/rich-text-editor/toolbar.d.ts +58 -0
- package/dist/rich-text-editor/toolbar.d.ts.map +1 -0
- package/dist/rich-text-editor/toolbar.js +548 -0
- package/dist/rich-text-editor/toolbar.js.map +1 -0
- package/dist/rich-text-editor/view.d.ts +368 -0
- package/dist/rich-text-editor/view.d.ts.map +1 -0
- package/dist/rich-text-editor/view.js +1968 -0
- package/dist/rich-text-editor/view.js.map +1 -0
- package/dist/rich-text-editor/virtual.d.ts +54 -0
- package/dist/rich-text-editor/virtual.d.ts.map +1 -0
- package/dist/rich-text-editor/virtual.js +279 -0
- package/dist/rich-text-editor/virtual.js.map +1 -0
- package/dist/richtext/node.d.ts +71 -4
- package/dist/richtext/node.d.ts.map +1 -1
- package/dist/richtext/node.js +233 -28
- 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/backends.d.ts +4 -1
- package/dist/terminal/backends.d.ts.map +1 -1
- package/dist/terminal/backends.js.map +1 -1
- package/dist/terminal/index.d.ts +18 -7
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +32 -11
- 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 +59 -31
- package/src/charts/node.ts +68 -28
- 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/embed/client.ts +102 -8
- package/src/embed/index.ts +2 -0
- 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 +1486 -121
- 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 +4 -0
- package/src/internal/collate.ts +12 -0
- package/src/{markdown → internal/markdown}/ast.ts +35 -7
- package/src/{markdown → internal/markdown}/parse.ts +288 -35
- package/src/internal/markdown/stringify.ts +772 -0
- package/src/internal/prewarm.ts +45 -0
- package/src/internal/scroll.ts +5 -3
- 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 +913 -0
- package/src/maps/controller.ts +1084 -0
- package/src/maps/gl/buckets.ts +461 -0
- package/src/maps/gl/build-worker.ts +66 -0
- package/src/maps/gl/color.ts +62 -0
- package/src/maps/gl/cover.ts +205 -0
- package/src/maps/gl/index.ts +23 -0
- package/src/maps/gl/markers.ts +83 -0
- package/src/maps/gl/overlays.ts +379 -0
- package/src/maps/gl/pane.ts +42 -0
- package/src/maps/gl/placement.ts +968 -0
- package/src/maps/gl/renderer.ts +1660 -0
- package/src/maps/gl/shaders.ts +489 -0
- package/src/maps/gl/store.ts +615 -0
- package/src/maps/gl/text.ts +868 -0
- package/src/maps/gl/view.ts +1489 -0
- package/src/maps/icons.ts +183 -0
- package/src/maps/index.ts +274 -81
- package/src/maps/labels.ts +457 -144
- package/src/maps/node.ts +832 -665
- package/src/maps/overlay.ts +148 -43
- package/src/maps/paint.ts +3 -0
- package/src/maps/proj.ts +118 -0
- package/src/maps/renderer.ts +155 -0
- package/src/maps/sources.ts +43 -6
- package/src/maps/style.ts +32 -0
- package/src/maps/styles.ts +215 -4
- package/src/maps/theme.ts +51 -0
- package/src/maps/tiles.ts +253 -62
- package/src/maps/types.ts +213 -21
- package/src/markdown/expressions.ts +5 -1
- package/src/markdown/index.ts +163 -78
- package/src/markdown/spans.ts +6 -1
- package/src/media-player/index.ts +18 -4
- 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/clipboard.ts +439 -0
- package/src/rich-text-editor/collab.ts +91 -0
- package/src/rich-text-editor/commands.ts +448 -0
- package/src/rich-text-editor/dom-globals.d.ts +23 -0
- package/src/rich-text-editor/drag.ts +211 -0
- package/src/rich-text-editor/html.ts +619 -0
- package/src/rich-text-editor/index.ts +1364 -0
- package/src/rich-text-editor/inline.ts +345 -0
- package/src/rich-text-editor/keymap.ts +510 -0
- package/src/rich-text-editor/keys.ts +228 -0
- package/src/rich-text-editor/look.ts +427 -0
- package/src/rich-text-editor/markdown.ts +653 -0
- package/src/rich-text-editor/marks.ts +101 -0
- package/src/rich-text-editor/nodes.ts +497 -0
- package/src/rich-text-editor/render.ts +837 -0
- package/src/rich-text-editor/schema.ts +431 -0
- package/src/rich-text-editor/store.ts +39 -0
- package/src/rich-text-editor/suggest.ts +597 -0
- package/src/rich-text-editor/tables.ts +272 -0
- package/src/rich-text-editor/toolbar.ts +724 -0
- package/src/rich-text-editor/view.ts +2287 -0
- package/src/rich-text-editor/virtual.ts +372 -0
- package/src/richtext/node.ts +294 -44
- package/src/richtext/runs.ts +23 -12
- package/src/table/index.ts +29 -0
- package/src/table/rows.ts +18 -8
- package/src/terminal/backends.ts +4 -1
- package/src/terminal/index.ts +47 -15
- 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/markdown/ast.d.ts.map +0 -1
- package/dist/markdown/ast.js +0 -17
- package/dist/markdown/ast.js.map +0 -1
- package/dist/markdown/parse.d.ts.map +0 -1
- package/dist/markdown/parse.js.map +0 -1
- package/dist/markdown/tags.d.ts.map +0 -1
- package/dist/markdown/tags.js.map +0 -1
- /package/dist/{markdown → internal/markdown}/parse.d.ts +0 -0
- /package/dist/{markdown → internal/markdown}/tags.d.ts +0 -0
- /package/dist/{markdown → internal/markdown}/tags.js +0 -0
- /package/src/{markdown → internal/markdown}/tags.ts +0 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
// The GL renderer's four programs.
|
|
2
|
+
//
|
|
3
|
+
// GLSL ES 1.00, for the reason `src/maps/gl/shaders.ts` gives: it is the one
|
|
4
|
+
// dialect both direct backends compile, Apple's GL 4.1 core through
|
|
5
|
+
// ARB_ES2_compatibility and every Linux GLES driver natively.
|
|
6
|
+
//
|
|
7
|
+
// Every program shares one coordinate contract, and it is the whole of what
|
|
8
|
+
// the vertex shaders agree on. Positions arrive in the scene's units —
|
|
9
|
+
// **logical window pixels**, what `../scene.ts` builds in — and leave in
|
|
10
|
+
// clip space via device pixels:
|
|
11
|
+
//
|
|
12
|
+
// device = (logical * u_zoom + u_offset - u_origin) * u_scale
|
|
13
|
+
//
|
|
14
|
+
// where `u_origin` is where the surface's top-left sits in the window (the
|
|
15
|
+
// pane's content box, which the surface covers exactly) and `u_scale` is the
|
|
16
|
+
// display scale. `u_offset` is the pan: the graph's world is built at a
|
|
17
|
+
// pinned origin and moved here, so a pan is this one uniform and nothing
|
|
18
|
+
// else (`./renderer.ts`). `u_zoom` is the part of a zoom the world was not
|
|
19
|
+
// built at — 1 at rest, and while a zoom gesture moves, the view's zoom over
|
|
20
|
+
// the one the world on the GPU was built for, so a step of the gesture is a
|
|
21
|
+
// uniform too, and every length an instance carries is multiplied by it
|
|
22
|
+
// with its position. The overlay, pinned to the pane and built every frame,
|
|
23
|
+
// draws with no offset and a zoom of 1. So the one multiply `../draw.ts`
|
|
24
|
+
// does on the way to the 2D context happens here, per vertex, and every
|
|
25
|
+
// antialiasing ramp below is measured in device pixels — which is what makes
|
|
26
|
+
// a 1px line one pixel of coverage on any panel.
|
|
27
|
+
import { SDF_EDGE, SDF_INK_BIAS_PX } from '../../internal/sdf.js';
|
|
28
|
+
|
|
29
|
+
/** Attribute locations, shared so one quad buffer feeds every program. */
|
|
30
|
+
export const ATTRIBUTES = {
|
|
31
|
+
a_corner: 0,
|
|
32
|
+
a_i0: 1,
|
|
33
|
+
a_i1: 2,
|
|
34
|
+
a_i2: 3,
|
|
35
|
+
a_i3: 4,
|
|
36
|
+
} as const;
|
|
37
|
+
|
|
38
|
+
const PRELUDE = `precision highp float;
|
|
39
|
+
uniform vec2 u_origin;
|
|
40
|
+
uniform vec2 u_offset;
|
|
41
|
+
uniform float u_scale;
|
|
42
|
+
uniform float u_zoom;
|
|
43
|
+
uniform vec2 u_viewport;
|
|
44
|
+
vec2 device(vec2 logical) {
|
|
45
|
+
return (logical * u_zoom + u_offset - u_origin) * u_scale;
|
|
46
|
+
}
|
|
47
|
+
vec4 clip(vec2 d) {
|
|
48
|
+
return vec4(d.x / u_viewport.x * 2.0 - 1.0,
|
|
49
|
+
1.0 - d.y / u_viewport.y * 2.0, 0.0, 1.0);
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* A line segment as a capsule: the quad round it, widened by half the line
|
|
55
|
+
* plus a pixel of fringe, shaded by distance to the segment.
|
|
56
|
+
*
|
|
57
|
+
* Clamping the pixel's position along the segment before measuring is what
|
|
58
|
+
* gives round caps and round joins for nothing — two consecutive capsules
|
|
59
|
+
* overlap in exactly the disc a round join is — and the same distance is the
|
|
60
|
+
* antialiasing ramp. The cost of that is a translucent line, which would lay
|
|
61
|
+
* its colour down twice where two capsules overlap; every line a graph draws
|
|
62
|
+
* by default is opaque, and `src/maps/gl/shaders.ts` has the stencil pass
|
|
63
|
+
* that fixes it if one ever is not.
|
|
64
|
+
*
|
|
65
|
+
* Instance: a_i0 = ends, a_i1 = half-width, distance along at the first end,
|
|
66
|
+
* dash on, dash off; a_i2 = dash offset, and 1 where the dash marches — by
|
|
67
|
+
* `u_phase`, the timer's, in logical pixels; a_i3 = colour.
|
|
68
|
+
*/
|
|
69
|
+
export const LINE_VERTEX = `${PRELUDE}
|
|
70
|
+
uniform float u_phase;
|
|
71
|
+
attribute vec2 a_corner;
|
|
72
|
+
attribute vec4 a_i0;
|
|
73
|
+
attribute vec4 a_i1;
|
|
74
|
+
attribute vec4 a_i2;
|
|
75
|
+
attribute vec4 a_i3;
|
|
76
|
+
varying vec2 v_local;
|
|
77
|
+
varying float v_len;
|
|
78
|
+
varying float v_half;
|
|
79
|
+
varying float v_along;
|
|
80
|
+
varying vec3 v_dash;
|
|
81
|
+
varying vec4 v_color;
|
|
82
|
+
void main() {
|
|
83
|
+
vec2 a = device(a_i0.xy);
|
|
84
|
+
vec2 b = device(a_i0.zw);
|
|
85
|
+
vec2 d = b - a;
|
|
86
|
+
float len = length(d);
|
|
87
|
+
vec2 t = len > 0.0001 ? d / len : vec2(1.0, 0.0);
|
|
88
|
+
vec2 n = vec2(-t.y, t.x);
|
|
89
|
+
float half_ = a_i1.x * u_zoom * u_scale;
|
|
90
|
+
float e = half_ + 1.0;
|
|
91
|
+
float along = mix(-e, len + e, a_corner.x);
|
|
92
|
+
float across = a_corner.y * e;
|
|
93
|
+
v_local = vec2(along, across);
|
|
94
|
+
v_len = len;
|
|
95
|
+
v_half = half_;
|
|
96
|
+
v_along = a_i1.y * u_zoom * u_scale + along;
|
|
97
|
+
// a marching dash takes the timer's phase from a uniform, so a tick moves
|
|
98
|
+
// every dash on the GPU without a byte uploaded — and the phase is the
|
|
99
|
+
// view's, already at its zoom, where the pattern is the world's
|
|
100
|
+
v_dash = (vec3(a_i1.z, a_i1.w, a_i2.x) * u_zoom +
|
|
101
|
+
vec3(0.0, 0.0, a_i2.y * u_phase)) * u_scale;
|
|
102
|
+
v_color = a_i3;
|
|
103
|
+
gl_Position = clip(a + t * along + n * across);
|
|
104
|
+
}
|
|
105
|
+
`;
|
|
106
|
+
|
|
107
|
+
export const LINE_FRAGMENT = `precision highp float;
|
|
108
|
+
varying vec2 v_local;
|
|
109
|
+
varying float v_len;
|
|
110
|
+
varying float v_half;
|
|
111
|
+
varying float v_along;
|
|
112
|
+
varying vec3 v_dash;
|
|
113
|
+
varying vec4 v_color;
|
|
114
|
+
void main() {
|
|
115
|
+
float x = clamp(v_local.x, 0.0, v_len);
|
|
116
|
+
float dist = length(vec2(v_local.x - x, v_local.y));
|
|
117
|
+
float alpha = clamp(v_half - dist + 0.5, 0.0, 1.0);
|
|
118
|
+
float period = v_dash.x + v_dash.y;
|
|
119
|
+
if (period > 0.0) {
|
|
120
|
+
// Where in the pattern this pixel is, the canvas way: the offset shifts
|
|
121
|
+
// the pattern's start along the line. Covered by how far the pixel is
|
|
122
|
+
// inside the nearer end of its dash, so a dash's ends antialias too.
|
|
123
|
+
float m = mod(v_along + v_dash.z, period);
|
|
124
|
+
alpha *= clamp(min(m, v_dash.x - m) + 0.5, 0.0, 1.0);
|
|
125
|
+
}
|
|
126
|
+
if (alpha <= 0.0) discard;
|
|
127
|
+
gl_FragColor = v_color * alpha;
|
|
128
|
+
}
|
|
129
|
+
`;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* A rounded box: fill, border and antialiased edge out of one distance.
|
|
133
|
+
*
|
|
134
|
+
* The 2D painter fills the whole box and strokes a border *inset* by half
|
|
135
|
+
* its pen (`../draw.ts`), so the ink band runs from the edge inward by the
|
|
136
|
+
* pen's width with the fill beneath it. This composites the same way — the
|
|
137
|
+
* border *over* the fill across the band, not in place of it — which only
|
|
138
|
+
* differs when the border is translucent, and a hovered card's is.
|
|
139
|
+
*
|
|
140
|
+
* A disc is a box whose side is twice its corner radius, which is why
|
|
141
|
+
* handles are drawn here too — and a label is a box that samples its
|
|
142
|
+
* distance field in the atlas (`./text.ts`) instead, flagged in `a_i1.z`,
|
|
143
|
+
* which is what keeps every label in the box stream at exactly the place in
|
|
144
|
+
* the order the 2D painter draws it.
|
|
145
|
+
*
|
|
146
|
+
* Instance: a_i0 = x, y, width, height; a_i1 = corner radius, border width;
|
|
147
|
+
* a_i2 = fill; a_i3 = border colour. For a label: a_i0 = the text's corner
|
|
148
|
+
* and the quad's size; a_i1 = the quad's margin before that corner, its
|
|
149
|
+
* field's page, 1, and the logical pixels a field texel covers; a_i2 = ink; a_i3 = its rect
|
|
150
|
+
* in the atlas.
|
|
151
|
+
*/
|
|
152
|
+
export const BOX_VERTEX = `${PRELUDE}
|
|
153
|
+
attribute vec2 a_corner;
|
|
154
|
+
attribute vec4 a_i0;
|
|
155
|
+
attribute vec4 a_i1;
|
|
156
|
+
attribute vec4 a_i2;
|
|
157
|
+
attribute vec4 a_i3;
|
|
158
|
+
varying vec2 v_local;
|
|
159
|
+
varying vec2 v_half;
|
|
160
|
+
varying vec2 v_shape;
|
|
161
|
+
varying vec4 v_fill;
|
|
162
|
+
varying vec4 v_border;
|
|
163
|
+
varying vec2 v_uv;
|
|
164
|
+
varying float v_text;
|
|
165
|
+
void main() {
|
|
166
|
+
vec2 corner = vec2(a_corner.x, a_corner.y * 0.5 + 0.5);
|
|
167
|
+
v_text = a_i1.z;
|
|
168
|
+
if (a_i1.z > 1.5) {
|
|
169
|
+
// a label whose field is still being set: nothing, until it lands
|
|
170
|
+
gl_Position = vec4(0.0, 0.0, 2.0, 1.0);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (a_i1.z > 0.5) {
|
|
174
|
+
// A label: its field, scaled to the size it is drawn at. The text's
|
|
175
|
+
// corner goes on the device grid *after* the pan's offset, which is
|
|
176
|
+
// where the grid is — the 2D painter rounds the same corner — and the
|
|
177
|
+
// quad reaches its margin before it.
|
|
178
|
+
float k = u_zoom * u_scale;
|
|
179
|
+
vec2 origin = floor(device(a_i0.xy) + 0.5) - a_i1.x * k;
|
|
180
|
+
v_uv = mix(a_i3.xy, a_i3.zw, corner);
|
|
181
|
+
v_fill = a_i2;
|
|
182
|
+
v_local = vec2(0.0);
|
|
183
|
+
v_half = vec2(0.0);
|
|
184
|
+
// device pixels a field texel covers, for the fragment's ramp, and the
|
|
185
|
+
// page its field is on
|
|
186
|
+
v_shape = vec2(a_i1.w * k, a_i1.y);
|
|
187
|
+
v_border = vec4(0.0);
|
|
188
|
+
gl_Position = clip(origin + corner * a_i0.zw * k);
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
v_uv = vec2(0.0);
|
|
192
|
+
vec2 size = a_i0.zw * u_zoom * u_scale;
|
|
193
|
+
vec2 half_ = size * 0.5;
|
|
194
|
+
// a pixel of fringe all round, for the antialiased edge to fade into
|
|
195
|
+
vec2 local = (corner - 0.5) * (size + 2.0);
|
|
196
|
+
v_local = local;
|
|
197
|
+
v_half = half_;
|
|
198
|
+
v_shape = vec2(a_i1.x, a_i1.y) * u_zoom * u_scale;
|
|
199
|
+
v_fill = a_i2;
|
|
200
|
+
v_border = a_i3;
|
|
201
|
+
gl_Position = clip(device(a_i0.xy) + half_ + local);
|
|
202
|
+
}
|
|
203
|
+
`;
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* A label's field says how far a pixel is from the glyphs' edge — in texels,
|
|
207
|
+
* `u_spread` of them across the byte range, and so in device pixels once
|
|
208
|
+
* scaled by how many a texel covers — and ink is that distance ramped across
|
|
209
|
+
* one device pixel, whatever size the label is drawn at.
|
|
210
|
+
*/
|
|
211
|
+
export const BOX_FRAGMENT = `precision highp float;
|
|
212
|
+
uniform sampler2D u_atlas;
|
|
213
|
+
uniform float u_spread;
|
|
214
|
+
varying vec2 v_local;
|
|
215
|
+
varying vec2 v_half;
|
|
216
|
+
varying vec2 v_shape;
|
|
217
|
+
varying vec4 v_fill;
|
|
218
|
+
varying vec4 v_border;
|
|
219
|
+
varying vec2 v_uv;
|
|
220
|
+
varying float v_text;
|
|
221
|
+
void main() {
|
|
222
|
+
if (v_text > 0.5) {
|
|
223
|
+
// Four pages, one a channel: alpha is page 0, red, green and blue
|
|
224
|
+
// pages 1 to 3 (CHANNELS in ./text.ts).
|
|
225
|
+
vec4 pages = texture2D(u_atlas, v_uv);
|
|
226
|
+
vec4 pick = 1.0 - min(abs(vec4(v_shape.y) - vec4(1.0, 2.0, 3.0, 0.0)), 1.0);
|
|
227
|
+
float field = dot(pages, pick);
|
|
228
|
+
// device pixels past the glyphs' edge: positive outside, negative in
|
|
229
|
+
float d = (${SDF_EDGE.toFixed(4)} - field) * u_spread * v_shape.x;
|
|
230
|
+
float ink = clamp(0.5 + ${SDF_INK_BIAS_PX.toFixed(2)} - d, 0.0, 1.0);
|
|
231
|
+
if (ink <= 0.0) discard;
|
|
232
|
+
gl_FragColor = v_fill * ink;
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
float r = min(v_shape.x, min(v_half.x, v_half.y));
|
|
236
|
+
vec2 q = abs(v_local) - (v_half - r);
|
|
237
|
+
float d = length(max(q, 0.0)) + min(max(q.x, q.y), 0.0) - r;
|
|
238
|
+
float outside = clamp(0.5 - d, 0.0, 1.0);
|
|
239
|
+
vec4 color = v_fill * outside;
|
|
240
|
+
if (v_shape.y > 0.0) {
|
|
241
|
+
float inner = clamp(0.5 - (d + v_shape.y), 0.0, 1.0);
|
|
242
|
+
float band = outside - inner;
|
|
243
|
+
color = v_border * band + color * (1.0 - v_border.a * band);
|
|
244
|
+
}
|
|
245
|
+
if (color.a <= 0.0) discard;
|
|
246
|
+
gl_FragColor = color;
|
|
247
|
+
}
|
|
248
|
+
`;
|
|
249
|
+
|
|
250
|
+
/** A flat triangle: the fill of a closed arrowhead. Its edge is
|
|
251
|
+
* antialiased by the hairline `./pack.ts` strokes round it. */
|
|
252
|
+
export const TRI_VERTEX = `${PRELUDE}
|
|
253
|
+
attribute vec2 a_corner;
|
|
254
|
+
attribute vec4 a_i0;
|
|
255
|
+
varying vec4 v_color;
|
|
256
|
+
void main() {
|
|
257
|
+
v_color = a_i0;
|
|
258
|
+
gl_Position = clip(device(a_corner));
|
|
259
|
+
}
|
|
260
|
+
`;
|
|
261
|
+
|
|
262
|
+
export const TRI_FRAGMENT = `precision mediump float;
|
|
263
|
+
varying vec4 v_color;
|
|
264
|
+
void main() {
|
|
265
|
+
gl_FragColor = v_color;
|
|
266
|
+
}
|
|
267
|
+
`;
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* The grid, worked out per pixel: no tile, no pattern and no pile of runs —
|
|
271
|
+
* and none of the 2D path's integral-pitch restriction, because nothing here
|
|
272
|
+
* is a pixmap that has to repeat on whole pixels.
|
|
273
|
+
*
|
|
274
|
+
* Distances are to the nearest grid point in each axis, in logical pixels,
|
|
275
|
+
* and each mark's coverage ramps across one *device* pixel, so a dot is as
|
|
276
|
+
* sharp as the panel draws it.
|
|
277
|
+
*/
|
|
278
|
+
export const GRID_VERTEX = `precision highp float;
|
|
279
|
+
attribute vec2 a_corner;
|
|
280
|
+
uniform vec2 u_viewport;
|
|
281
|
+
varying vec2 v_device;
|
|
282
|
+
void main() {
|
|
283
|
+
v_device = vec2(a_corner.x * u_viewport.x,
|
|
284
|
+
(a_corner.y * 0.5 + 0.5) * u_viewport.y);
|
|
285
|
+
gl_Position = vec4(a_corner.x * 2.0 - 1.0, -a_corner.y, 0.0, 1.0);
|
|
286
|
+
}
|
|
287
|
+
`;
|
|
288
|
+
|
|
289
|
+
export const GRID_FRAGMENT = `precision highp float;
|
|
290
|
+
uniform vec2 u_origin;
|
|
291
|
+
uniform float u_scale;
|
|
292
|
+
// the grid's origin (logical window pixels) and its pitch on screen
|
|
293
|
+
uniform vec3 u_grid;
|
|
294
|
+
// 0 dots, 1 lines, 2 cross; then a mark's size on screen (logical)
|
|
295
|
+
uniform vec2 u_mark;
|
|
296
|
+
uniform vec4 u_color;
|
|
297
|
+
varying vec2 v_device;
|
|
298
|
+
float cover(float edge, float dist) {
|
|
299
|
+
return clamp((edge - dist) * u_scale + 0.5, 0.0, 1.0);
|
|
300
|
+
}
|
|
301
|
+
void main() {
|
|
302
|
+
vec2 logical = v_device / u_scale + u_origin;
|
|
303
|
+
float step = u_grid.z;
|
|
304
|
+
vec2 rel = logical - u_grid.xy;
|
|
305
|
+
vec2 dist = abs(mod(rel + step * 0.5, step) - step * 0.5);
|
|
306
|
+
float a;
|
|
307
|
+
if (u_mark.x < 0.5) {
|
|
308
|
+
float h = u_mark.y * 0.5;
|
|
309
|
+
a = cover(h, dist.x) * cover(h, dist.y);
|
|
310
|
+
} else if (u_mark.x < 1.5) {
|
|
311
|
+
a = max(cover(0.5, dist.x), cover(0.5, dist.y));
|
|
312
|
+
} else {
|
|
313
|
+
float arm = u_mark.y;
|
|
314
|
+
a = max(cover(0.5, dist.x) * cover(arm, dist.y),
|
|
315
|
+
cover(0.5, dist.y) * cover(arm, dist.x));
|
|
316
|
+
}
|
|
317
|
+
if (a <= 0.0) discard;
|
|
318
|
+
gl_FragColor = u_color * a;
|
|
319
|
+
}
|
|
320
|
+
`;
|
|
321
|
+
|
|
322
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
323
|
+
export type GL = any;
|
|
324
|
+
|
|
325
|
+
/** A linked program and its uniform locations, looked up once. */
|
|
326
|
+
export interface Program {
|
|
327
|
+
program: unknown;
|
|
328
|
+
uniforms: Record<string, unknown>;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
function compile(gl: GL, type: number, source: string): unknown {
|
|
332
|
+
const shader = gl.createShader(type);
|
|
333
|
+
gl.shaderSource(shader, source);
|
|
334
|
+
gl.compileShader(shader);
|
|
335
|
+
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
336
|
+
const log = gl.getShaderInfoLog(shader);
|
|
337
|
+
gl.deleteShader(shader);
|
|
338
|
+
throw new Error(`@react-x11/components flow/gl: shader failed: ${log}`);
|
|
339
|
+
}
|
|
340
|
+
return shader;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/** Compile, bind the shared locations, link, and look the uniforms up. */
|
|
344
|
+
export function linkProgram(
|
|
345
|
+
gl: GL,
|
|
346
|
+
vertex: string,
|
|
347
|
+
fragment: string,
|
|
348
|
+
uniforms: readonly string[],
|
|
349
|
+
): Program {
|
|
350
|
+
const program = gl.createProgram();
|
|
351
|
+
const vs = compile(gl, gl.VERTEX_SHADER, vertex);
|
|
352
|
+
const fs = compile(gl, gl.FRAGMENT_SHADER, fragment);
|
|
353
|
+
gl.attachShader(program, vs);
|
|
354
|
+
gl.attachShader(program, fs);
|
|
355
|
+
for (const [name, location] of Object.entries(ATTRIBUTES)) {
|
|
356
|
+
gl.bindAttribLocation(program, location, name);
|
|
357
|
+
}
|
|
358
|
+
gl.linkProgram(program);
|
|
359
|
+
gl.deleteShader(vs);
|
|
360
|
+
gl.deleteShader(fs);
|
|
361
|
+
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
362
|
+
const log = gl.getProgramInfoLog(program);
|
|
363
|
+
gl.deleteProgram(program);
|
|
364
|
+
throw new Error(`@react-x11/components flow/gl: link failed: ${log}`);
|
|
365
|
+
}
|
|
366
|
+
const found: Record<string, unknown> = {};
|
|
367
|
+
for (const name of uniforms) {
|
|
368
|
+
found[name] = gl.getUniformLocation(program, name);
|
|
369
|
+
}
|
|
370
|
+
return { program, uniforms: found };
|
|
371
|
+
}
|