@react-x11/components 0.1.0 → 0.2.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 +979 -21
- package/dist/ansi/cast.d.ts +48 -0
- package/dist/ansi/cast.d.ts.map +1 -0
- package/dist/ansi/cast.js +135 -0
- package/dist/ansi/cast.js.map +1 -0
- package/dist/ansi/index.d.ts +10 -0
- package/dist/ansi/index.d.ts.map +1 -0
- package/dist/ansi/index.js +27 -0
- package/dist/ansi/index.js.map +1 -0
- package/dist/ansi/palette.d.ts +79 -0
- package/dist/ansi/palette.d.ts.map +1 -0
- package/dist/ansi/palette.js +155 -0
- package/dist/ansi/palette.js.map +1 -0
- package/dist/ansi/parse.d.ts +114 -0
- package/dist/ansi/parse.d.ts.map +1 -0
- package/dist/ansi/parse.js +687 -0
- package/dist/ansi/parse.js.map +1 -0
- package/dist/ansi/sgr.d.ts +87 -0
- package/dist/ansi/sgr.d.ts.map +1 -0
- package/dist/ansi/sgr.js +302 -0
- package/dist/ansi/sgr.js.map +1 -0
- package/dist/ansi/utf8.d.ts +15 -0
- package/dist/ansi/utf8.d.ts.map +1 -0
- package/dist/ansi/utf8.js +82 -0
- package/dist/ansi/utf8.js.map +1 -0
- package/dist/calendar/Calendar.d.ts +136 -0
- package/dist/calendar/Calendar.d.ts.map +1 -0
- package/dist/calendar/Calendar.js +460 -0
- package/dist/calendar/Calendar.js.map +1 -0
- package/dist/calendar/DatePicker.d.ts +52 -0
- package/dist/calendar/DatePicker.d.ts.map +1 -0
- package/dist/calendar/DatePicker.js +257 -0
- package/dist/calendar/DatePicker.js.map +1 -0
- package/dist/calendar/dates.d.ts +90 -0
- package/dist/calendar/dates.d.ts.map +1 -0
- package/dist/calendar/dates.js +236 -0
- package/dist/calendar/dates.js.map +1 -0
- package/dist/calendar/index.d.ts +8 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/index.js +15 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/charts/components.d.ts +141 -0
- package/dist/charts/components.d.ts.map +1 -0
- package/dist/charts/components.js +580 -0
- package/dist/charts/components.js.map +1 -0
- package/dist/charts/data.d.ts +198 -0
- package/dist/charts/data.d.ts.map +1 -0
- package/dist/charts/data.js +616 -0
- package/dist/charts/data.js.map +1 -0
- package/dist/charts/hx.d.ts +21 -0
- package/dist/charts/hx.d.ts.map +1 -0
- package/dist/charts/hx.js +15 -0
- package/dist/charts/hx.js.map +1 -0
- package/dist/charts/index.d.ts +27 -0
- package/dist/charts/index.d.ts.map +1 -0
- package/dist/charts/index.js +38 -0
- package/dist/charts/index.js.map +1 -0
- package/dist/charts/node.d.ts +96 -0
- package/dist/charts/node.d.ts.map +1 -0
- package/dist/charts/node.js +720 -0
- package/dist/charts/node.js.map +1 -0
- package/dist/charts/render.d.ts +153 -0
- package/dist/charts/render.d.ts.map +1 -0
- package/dist/charts/render.js +762 -0
- package/dist/charts/render.js.map +1 -0
- package/dist/charts/scale.d.ts +42 -0
- package/dist/charts/scale.d.ts.map +1 -0
- package/dist/charts/scale.js +173 -0
- package/dist/charts/scale.js.map +1 -0
- package/dist/charts/spec.d.ts +91 -0
- package/dist/charts/spec.d.ts.map +1 -0
- package/dist/charts/spec.js +33 -0
- package/dist/charts/spec.js.map +1 -0
- package/dist/charts/timers.d.ts +6 -0
- package/dist/charts/timers.d.ts.map +1 -0
- package/dist/charts/timers.js +14 -0
- package/dist/charts/timers.js.map +1 -0
- package/dist/code/hx.d.ts +24 -0
- package/dist/code/hx.d.ts.map +1 -0
- package/dist/code/hx.js +25 -0
- package/dist/code/hx.js.map +1 -0
- package/dist/code/index.d.ts +45 -0
- package/dist/code/index.d.ts.map +1 -0
- package/dist/code/index.js +93 -0
- package/dist/code/index.js.map +1 -0
- package/dist/code-editor/completion.d.ts +26 -0
- package/dist/code-editor/completion.d.ts.map +1 -0
- package/dist/code-editor/completion.js +129 -0
- package/dist/code-editor/completion.js.map +1 -0
- package/dist/code-editor/doc.d.ts +35 -0
- package/dist/code-editor/doc.d.ts.map +1 -0
- package/dist/code-editor/doc.js +162 -0
- package/dist/code-editor/doc.js.map +1 -0
- package/dist/code-editor/hx.d.ts +13 -0
- package/dist/code-editor/hx.d.ts.map +1 -0
- package/dist/code-editor/hx.js +10 -0
- package/dist/code-editor/hx.js.map +1 -0
- package/dist/code-editor/index.d.ts +88 -0
- package/dist/code-editor/index.d.ts.map +1 -0
- package/dist/code-editor/index.js +401 -0
- package/dist/code-editor/index.js.map +1 -0
- package/dist/code-editor/node.d.ts +343 -0
- package/dist/code-editor/node.d.ts.map +1 -0
- package/dist/code-editor/node.js +1521 -0
- package/dist/code-editor/node.js.map +1 -0
- package/dist/code-language/hljs.d.ts +47 -0
- package/dist/code-language/hljs.d.ts.map +1 -0
- package/dist/code-language/hljs.js +211 -0
- package/dist/code-language/hljs.js.map +1 -0
- package/dist/code-language/index.d.ts +22 -0
- package/dist/code-language/index.d.ts.map +1 -0
- package/dist/code-language/index.js +20 -0
- package/dist/code-language/index.js.map +1 -0
- package/dist/code-language/languages/glsl.d.ts +4 -0
- package/dist/code-language/languages/glsl.d.ts.map +1 -0
- package/dist/code-language/languages/glsl.js +99 -0
- package/dist/code-language/languages/glsl.js.map +1 -0
- package/dist/code-language/languages/javascript.d.ts +10 -0
- package/dist/code-language/languages/javascript.d.ts.map +1 -0
- package/dist/code-language/languages/javascript.js +360 -0
- package/dist/code-language/languages/javascript.js.map +1 -0
- package/dist/code-language/languages/json.d.ts +4 -0
- package/dist/code-language/languages/json.d.ts.map +1 -0
- package/dist/code-language/languages/json.js +68 -0
- package/dist/code-language/languages/json.js.map +1 -0
- package/dist/code-language/languages/shell.d.ts +4 -0
- package/dist/code-language/languages/shell.d.ts.map +1 -0
- package/dist/code-language/languages/shell.js +189 -0
- package/dist/code-language/languages/shell.js.map +1 -0
- package/dist/code-language/languages/sql.d.ts +11 -0
- package/dist/code-language/languages/sql.d.ts.map +1 -0
- package/dist/code-language/languages/sql.js +133 -0
- package/dist/code-language/languages/sql.js.map +1 -0
- package/dist/code-language/lezer.d.ts +24 -0
- package/dist/code-language/lezer.d.ts.map +1 -0
- package/dist/code-language/lezer.js +148 -0
- package/dist/code-language/lezer.js.map +1 -0
- package/dist/code-language/registry.d.ts +19 -0
- package/dist/code-language/registry.d.ts.map +1 -0
- package/dist/code-language/registry.js +56 -0
- package/dist/code-language/registry.js.map +1 -0
- package/dist/code-language/runs.d.ts +35 -0
- package/dist/code-language/runs.d.ts.map +1 -0
- package/dist/code-language/runs.js +88 -0
- package/dist/code-language/runs.js.map +1 -0
- package/dist/code-language/stream.d.ts +70 -0
- package/dist/code-language/stream.d.ts.map +1 -0
- package/dist/code-language/stream.js +243 -0
- package/dist/code-language/stream.js.map +1 -0
- package/dist/code-language/textmate.d.ts +27 -0
- package/dist/code-language/textmate.d.ts.map +1 -0
- package/dist/code-language/textmate.js +86 -0
- package/dist/code-language/textmate.js.map +1 -0
- package/dist/code-language/theme.d.ts +26 -0
- package/dist/code-language/theme.d.ts.map +1 -0
- package/dist/code-language/theme.js +108 -0
- package/dist/code-language/theme.js.map +1 -0
- package/dist/code-language/timers.d.ts +7 -0
- package/dist/code-language/timers.d.ts.map +1 -0
- package/dist/code-language/timers.js +22 -0
- package/dist/code-language/timers.js.map +1 -0
- package/dist/code-language/types.d.ts +173 -0
- package/dist/code-language/types.d.ts.map +1 -0
- package/dist/code-language/types.js +41 -0
- package/dist/code-language/types.js.map +1 -0
- package/dist/codeblock/index.d.ts +69 -0
- package/dist/codeblock/index.d.ts.map +1 -0
- package/dist/codeblock/index.js +85 -0
- package/dist/codeblock/index.js.map +1 -0
- package/dist/color-picker/ColorField.d.ts +39 -0
- package/dist/color-picker/ColorField.d.ts.map +1 -0
- package/dist/color-picker/ColorField.js +239 -0
- package/dist/color-picker/ColorField.js.map +1 -0
- package/dist/color-picker/ColorPicker.d.ts +109 -0
- package/dist/color-picker/ColorPicker.d.ts.map +1 -0
- package/dist/color-picker/ColorPicker.js +757 -0
- package/dist/color-picker/ColorPicker.js.map +1 -0
- package/dist/color-picker/color.d.ts +105 -0
- package/dist/color-picker/color.d.ts.map +1 -0
- package/dist/color-picker/color.js +313 -0
- package/dist/color-picker/color.js.map +1 -0
- package/dist/color-picker/index.d.ts +8 -0
- package/dist/color-picker/index.d.ts.map +1 -0
- package/dist/color-picker/index.js +19 -0
- package/dist/color-picker/index.js.map +1 -0
- package/dist/desktop-calendar/eds.d.ts +102 -0
- package/dist/desktop-calendar/eds.d.ts.map +1 -0
- package/dist/desktop-calendar/eds.js +356 -0
- package/dist/desktop-calendar/eds.js.map +1 -0
- package/dist/desktop-calendar/ical.d.ts +63 -0
- package/dist/desktop-calendar/ical.d.ts.map +1 -0
- package/dist/desktop-calendar/ical.js +57 -0
- package/dist/desktop-calendar/ical.js.map +1 -0
- package/dist/desktop-calendar/index.d.ts +72 -0
- package/dist/desktop-calendar/index.d.ts.map +1 -0
- package/dist/desktop-calendar/index.js +213 -0
- package/dist/desktop-calendar/index.js.map +1 -0
- package/dist/embed/client.d.ts +121 -0
- package/dist/embed/client.d.ts.map +1 -0
- package/dist/embed/client.js +203 -0
- package/dist/embed/client.js.map +1 -0
- package/dist/embed/host.d.ts +96 -0
- package/dist/embed/host.d.ts.map +1 -0
- package/dist/embed/host.js +266 -0
- package/dist/embed/host.js.map +1 -0
- package/dist/embed/index.d.ts +5 -0
- package/dist/embed/index.d.ts.map +1 -0
- package/dist/embed/index.js +13 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed/timers.d.ts +6 -0
- package/dist/embed/timers.d.ts.map +1 -0
- package/dist/embed/timers.js +16 -0
- package/dist/embed/timers.js.map +1 -0
- package/dist/flow/draw.d.ts +45 -0
- package/dist/flow/draw.d.ts.map +1 -0
- package/dist/flow/draw.js +295 -0
- package/dist/flow/draw.js.map +1 -0
- package/dist/flow/index.d.ts +64 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +306 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/model.d.ts +158 -0
- package/dist/flow/model.d.ts.map +1 -0
- package/dist/flow/model.js +566 -0
- package/dist/flow/model.js.map +1 -0
- package/dist/flow/node.d.ts +429 -0
- package/dist/flow/node.d.ts.map +1 -0
- package/dist/flow/node.js +3025 -0
- package/dist/flow/node.js.map +1 -0
- package/dist/flow/paths.d.ts +43 -0
- package/dist/flow/paths.d.ts.map +1 -0
- package/dist/flow/paths.js +327 -0
- package/dist/flow/paths.js.map +1 -0
- package/dist/flow/types.d.ts +561 -0
- package/dist/flow/types.d.ts.map +1 -0
- package/dist/flow/types.js +2 -0
- package/dist/flow/types.js.map +1 -0
- package/dist/formula/hx.d.ts +24 -0
- package/dist/formula/hx.d.ts.map +1 -0
- package/dist/formula/hx.js +25 -0
- package/dist/formula/hx.js.map +1 -0
- package/dist/formula/index.d.ts +74 -0
- package/dist/formula/index.d.ts.map +1 -0
- package/dist/formula/index.js +155 -0
- package/dist/formula/index.js.map +1 -0
- package/dist/formula/katex.d.ts +78 -0
- package/dist/formula/katex.d.ts.map +1 -0
- package/dist/formula/katex.js +130 -0
- package/dist/formula/katex.js.map +1 -0
- package/dist/formula/layout.d.ts +103 -0
- package/dist/formula/layout.d.ts.map +1 -0
- package/dist/formula/layout.js +716 -0
- package/dist/formula/layout.js.map +1 -0
- package/dist/formula/node.d.ts +50 -0
- package/dist/formula/node.d.ts.map +1 -0
- package/dist/formula/node.js +351 -0
- package/dist/formula/node.js.map +1 -0
- package/dist/html/controls.d.ts +48 -0
- package/dist/html/controls.d.ts.map +1 -0
- package/dist/html/controls.js +195 -0
- package/dist/html/controls.js.map +1 -0
- package/dist/html/css/cascade.d.ts +51 -0
- package/dist/html/css/cascade.d.ts.map +1 -0
- package/dist/html/css/cascade.js +552 -0
- package/dist/html/css/cascade.js.map +1 -0
- package/dist/html/css/parse.d.ts +74 -0
- package/dist/html/css/parse.d.ts.map +1 -0
- package/dist/html/css/parse.js +464 -0
- package/dist/html/css/parse.js.map +1 -0
- package/dist/html/css/style.d.ts +142 -0
- package/dist/html/css/style.d.ts.map +1 -0
- package/dist/html/css/style.js +1145 -0
- package/dist/html/css/style.js.map +1 -0
- package/dist/html/css/ua.d.ts +5 -0
- package/dist/html/css/ua.d.ts.map +1 -0
- package/dist/html/css/ua.js +171 -0
- package/dist/html/css/ua.js.map +1 -0
- package/dist/html/css/values.d.ts +78 -0
- package/dist/html/css/values.d.ts.map +1 -0
- package/dist/html/css/values.js +330 -0
- package/dist/html/css/values.js.map +1 -0
- package/dist/html/dom.d.ts +112 -0
- package/dist/html/dom.d.ts.map +1 -0
- package/dist/html/dom.js +374 -0
- package/dist/html/dom.js.map +1 -0
- package/dist/html/hx.d.ts +24 -0
- package/dist/html/hx.d.ts.map +1 -0
- package/dist/html/hx.js +29 -0
- package/dist/html/hx.js.map +1 -0
- package/dist/html/index.d.ts +137 -0
- package/dist/html/index.d.ts.map +1 -0
- package/dist/html/index.js +339 -0
- package/dist/html/index.js.map +1 -0
- package/dist/html/layout/block.d.ts +58 -0
- package/dist/html/layout/block.d.ts.map +1 -0
- package/dist/html/layout/block.js +724 -0
- package/dist/html/layout/block.js.map +1 -0
- package/dist/html/layout/boxes.d.ts +261 -0
- package/dist/html/layout/boxes.d.ts.map +1 -0
- package/dist/html/layout/boxes.js +725 -0
- package/dist/html/layout/boxes.js.map +1 -0
- package/dist/html/layout/flex.d.ts +16 -0
- package/dist/html/layout/flex.d.ts.map +1 -0
- package/dist/html/layout/flex.js +242 -0
- package/dist/html/layout/flex.js.map +1 -0
- package/dist/html/layout/floats.d.ts +50 -0
- package/dist/html/layout/floats.d.ts.map +1 -0
- package/dist/html/layout/floats.js +110 -0
- package/dist/html/layout/floats.js.map +1 -0
- package/dist/html/layout/inline.d.ts +44 -0
- package/dist/html/layout/inline.d.ts.map +1 -0
- package/dist/html/layout/inline.js +700 -0
- package/dist/html/layout/inline.js.map +1 -0
- package/dist/html/layout/table.d.ts +5 -0
- package/dist/html/layout/table.d.ts.map +1 -0
- package/dist/html/layout/table.js +340 -0
- package/dist/html/layout/table.js.map +1 -0
- package/dist/html/node.d.ts +149 -0
- package/dist/html/node.d.ts.map +1 -0
- package/dist/html/node.js +861 -0
- package/dist/html/node.js.map +1 -0
- package/dist/html/paint.d.ts +48 -0
- package/dist/html/paint.d.ts.map +1 -0
- package/dist/html/paint.js +495 -0
- package/dist/html/paint.js.map +1 -0
- package/dist/html/resources.d.ts +48 -0
- package/dist/html/resources.d.ts.map +1 -0
- package/dist/html/resources.js +156 -0
- package/dist/html/resources.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/heights.d.ts +81 -0
- package/dist/internal/heights.d.ts.map +1 -0
- package/dist/internal/heights.js +193 -0
- package/dist/internal/heights.js.map +1 -0
- package/dist/internal/hx.d.ts +24 -0
- package/dist/internal/hx.d.ts.map +1 -0
- package/dist/internal/hx.js +27 -0
- package/dist/internal/hx.js.map +1 -0
- package/dist/internal/text.d.ts +6 -0
- package/dist/internal/text.d.ts.map +1 -0
- package/dist/internal/text.js +44 -0
- package/dist/internal/text.js.map +1 -0
- package/dist/internal/timers.d.ts +8 -0
- package/dist/internal/timers.d.ts.map +1 -0
- package/dist/internal/timers.js +22 -0
- package/dist/internal/timers.js.map +1 -0
- package/dist/internal/widget.d.ts +40 -0
- package/dist/internal/widget.d.ts.map +1 -0
- package/dist/internal/widget.js +44 -0
- package/dist/internal/widget.js.map +1 -0
- package/dist/markdown/ast.d.ts +126 -0
- package/dist/markdown/ast.d.ts.map +1 -0
- package/dist/markdown/ast.js +8 -0
- package/dist/markdown/ast.js.map +1 -0
- package/dist/markdown/hx.d.ts +24 -0
- package/dist/markdown/hx.d.ts.map +1 -0
- package/dist/markdown/hx.js +25 -0
- package/dist/markdown/hx.js.map +1 -0
- package/dist/markdown/index.d.ts +90 -0
- package/dist/markdown/index.d.ts.map +1 -0
- package/dist/markdown/index.js +413 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/markdown/parse.d.ts +8 -0
- package/dist/markdown/parse.d.ts.map +1 -0
- package/dist/markdown/parse.js +911 -0
- package/dist/markdown/parse.js.map +1 -0
- package/dist/markdown/spans.d.ts +20 -0
- package/dist/markdown/spans.d.ts.map +1 -0
- package/dist/markdown/spans.js +96 -0
- package/dist/markdown/spans.js.map +1 -0
- package/dist/media-player/backends.d.ts +64 -0
- package/dist/media-player/backends.d.ts.map +1 -0
- package/dist/media-player/backends.js +110 -0
- package/dist/media-player/backends.js.map +1 -0
- package/dist/media-player/control.d.ts +40 -0
- package/dist/media-player/control.d.ts.map +1 -0
- package/dist/media-player/control.js +44 -0
- package/dist/media-player/control.js.map +1 -0
- package/dist/media-player/hx.d.ts +24 -0
- package/dist/media-player/hx.d.ts.map +1 -0
- package/dist/media-player/hx.js +25 -0
- package/dist/media-player/hx.js.map +1 -0
- package/dist/media-player/index.d.ts +107 -0
- package/dist/media-player/index.d.ts.map +1 -0
- package/dist/media-player/index.js +219 -0
- package/dist/media-player/index.js.map +1 -0
- package/dist/media-player/mpv.d.ts +4 -0
- package/dist/media-player/mpv.d.ts.map +1 -0
- package/dist/media-player/mpv.js +120 -0
- package/dist/media-player/mpv.js.map +1 -0
- package/dist/media-player/vlc.d.ts +8 -0
- package/dist/media-player/vlc.d.ts.map +1 -0
- package/dist/media-player/vlc.js +83 -0
- package/dist/media-player/vlc.js.map +1 -0
- package/dist/richtext/index.d.ts +19 -0
- package/dist/richtext/index.d.ts.map +1 -0
- package/dist/richtext/index.js +4 -0
- package/dist/richtext/index.js.map +1 -0
- package/dist/richtext/links.d.ts +12 -0
- package/dist/richtext/links.d.ts.map +1 -0
- package/dist/richtext/links.js +64 -0
- package/dist/richtext/links.js.map +1 -0
- package/dist/richtext/menu.d.ts +11 -0
- package/dist/richtext/menu.d.ts.map +1 -0
- package/dist/richtext/menu.js +43 -0
- package/dist/richtext/menu.js.map +1 -0
- package/dist/richtext/node.d.ts +151 -0
- package/dist/richtext/node.d.ts.map +1 -0
- package/dist/richtext/node.js +255 -0
- package/dist/richtext/node.js.map +1 -0
- package/dist/richtext/runs.d.ts +92 -0
- package/dist/richtext/runs.d.ts.map +1 -0
- package/dist/richtext/runs.js +158 -0
- package/dist/richtext/runs.js.map +1 -0
- package/dist/table/hx.d.ts +24 -0
- package/dist/table/hx.d.ts.map +1 -0
- package/dist/table/hx.js +25 -0
- package/dist/table/hx.js.map +1 -0
- package/dist/table/index.d.ts +169 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/index.js +844 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/rows.d.ts +136 -0
- package/dist/table/rows.d.ts.map +1 -0
- package/dist/table/rows.js +146 -0
- package/dist/table/rows.js.map +1 -0
- package/dist/terminal/backends.d.ts +105 -0
- package/dist/terminal/backends.d.ts.map +1 -0
- package/dist/terminal/backends.js +185 -0
- package/dist/terminal/backends.js.map +1 -0
- package/dist/terminal/hx.d.ts +24 -0
- package/dist/terminal/hx.d.ts.map +1 -0
- package/dist/terminal/hx.js +25 -0
- package/dist/terminal/hx.js.map +1 -0
- package/dist/terminal/index.d.ts +160 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +344 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/title.d.ts +24 -0
- package/dist/terminal/title.d.ts.map +1 -0
- package/dist/terminal/title.js +129 -0
- package/dist/terminal/title.js.map +1 -0
- package/dist/terminal/vt/colors.d.ts +63 -0
- package/dist/terminal/vt/colors.d.ts.map +1 -0
- package/dist/terminal/vt/colors.js +203 -0
- package/dist/terminal/vt/colors.js.map +1 -0
- package/dist/terminal/vt/diff.d.ts +117 -0
- package/dist/terminal/vt/diff.d.ts.map +1 -0
- package/dist/terminal/vt/diff.js +358 -0
- package/dist/terminal/vt/diff.js.map +1 -0
- package/dist/terminal/vt/fonts.d.ts +92 -0
- package/dist/terminal/vt/fonts.d.ts.map +1 -0
- package/dist/terminal/vt/fonts.js +178 -0
- package/dist/terminal/vt/fonts.js.map +1 -0
- package/dist/terminal/vt/index.d.ts +78 -0
- package/dist/terminal/vt/index.d.ts.map +1 -0
- package/dist/terminal/vt/index.js +312 -0
- package/dist/terminal/vt/index.js.map +1 -0
- package/dist/terminal/vt/keys.d.ts +74 -0
- package/dist/terminal/vt/keys.d.ts.map +1 -0
- package/dist/terminal/vt/keys.js +309 -0
- package/dist/terminal/vt/keys.js.map +1 -0
- package/dist/terminal/vt/mouse.d.ts +44 -0
- package/dist/terminal/vt/mouse.d.ts.map +1 -0
- package/dist/terminal/vt/mouse.js +106 -0
- package/dist/terminal/vt/mouse.js.map +1 -0
- package/dist/terminal/vt/node.d.ts +246 -0
- package/dist/terminal/vt/node.d.ts.map +1 -0
- package/dist/terminal/vt/node.js +1068 -0
- package/dist/terminal/vt/node.js.map +1 -0
- package/dist/terminal/vt/pty.d.ts +81 -0
- package/dist/terminal/vt/pty.d.ts.map +1 -0
- package/dist/terminal/vt/pty.js +201 -0
- package/dist/terminal/vt/pty.js.map +1 -0
- package/dist/terminal/vt/renderer.d.ts +179 -0
- package/dist/terminal/vt/renderer.d.ts.map +1 -0
- package/dist/terminal/vt/renderer.js +357 -0
- package/dist/terminal/vt/renderer.js.map +1 -0
- package/dist/terminal/vt/timers.d.ts +6 -0
- package/dist/terminal/vt/timers.d.ts.map +1 -0
- package/dist/terminal/vt/timers.js +16 -0
- package/dist/terminal/vt/timers.js.map +1 -0
- package/dist/terminal/vt/xterm.d.ts +142 -0
- package/dist/terminal/vt/xterm.d.ts.map +1 -0
- package/dist/terminal/vt/xterm.js +32 -0
- package/dist/terminal/vt/xterm.js.map +1 -0
- package/dist/terminal-output/hx.d.ts +24 -0
- package/dist/terminal-output/hx.d.ts.map +1 -0
- package/dist/terminal-output/hx.js +25 -0
- package/dist/terminal-output/hx.js.map +1 -0
- package/dist/terminal-output/index.d.ts +92 -0
- package/dist/terminal-output/index.d.ts.map +1 -0
- package/dist/terminal-output/index.js +179 -0
- package/dist/terminal-output/index.js.map +1 -0
- package/dist/terminal-output/runs.d.ts +27 -0
- package/dist/terminal-output/runs.d.ts.map +1 -0
- package/dist/terminal-output/runs.js +66 -0
- package/dist/terminal-output/runs.js.map +1 -0
- package/dist/three/canvas.d.ts +46 -0
- package/dist/three/canvas.d.ts.map +1 -0
- package/dist/three/canvas.js +305 -0
- package/dist/three/canvas.js.map +1 -0
- package/dist/three/events.d.ts +64 -0
- package/dist/three/events.d.ts.map +1 -0
- package/dist/three/events.js +146 -0
- package/dist/three/events.js.map +1 -0
- package/dist/three/geometries.d.ts +89 -0
- package/dist/three/geometries.d.ts.map +1 -0
- package/dist/three/geometries.js +345 -0
- package/dist/three/geometries.js.map +1 -0
- package/dist/three/globals.d.ts +7 -0
- package/dist/three/globals.d.ts.map +1 -0
- package/dist/three/globals.js +20 -0
- package/dist/three/globals.js.map +1 -0
- package/dist/three/hx.d.ts +9 -0
- package/dist/three/hx.d.ts.map +1 -0
- package/dist/three/hx.js +10 -0
- package/dist/three/hx.js.map +1 -0
- package/dist/three/index.d.ts +22 -0
- package/dist/three/index.d.ts.map +1 -0
- package/dist/three/index.js +24 -0
- package/dist/three/index.js.map +1 -0
- package/dist/three/jsx-dev-runtime.d.ts +19 -0
- package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/three/jsx-dev-runtime.js +2 -0
- package/dist/three/jsx-dev-runtime.js.map +1 -0
- package/dist/three/jsx-runtime.d.ts +19 -0
- package/dist/three/jsx-runtime.d.ts.map +1 -0
- package/dist/three/jsx-runtime.js +2 -0
- package/dist/three/jsx-runtime.js.map +1 -0
- package/dist/three/jsx.d.ts +198 -0
- package/dist/three/jsx.d.ts.map +1 -0
- package/dist/three/jsx.js +2 -0
- package/dist/three/jsx.js.map +1 -0
- package/dist/three/materials.d.ts +125 -0
- package/dist/three/materials.d.ts.map +1 -0
- package/dist/three/materials.js +229 -0
- package/dist/three/materials.js.map +1 -0
- package/dist/three/math.d.ts +146 -0
- package/dist/three/math.d.ts.map +1 -0
- package/dist/three/math.js +464 -0
- package/dist/three/math.js.map +1 -0
- package/dist/three/objects.d.ts +185 -0
- package/dist/three/objects.d.ts.map +1 -0
- package/dist/three/objects.js +309 -0
- package/dist/three/objects.js.map +1 -0
- package/dist/three/passes.d.ts +54 -0
- package/dist/three/passes.d.ts.map +1 -0
- package/dist/three/passes.js +78 -0
- package/dist/three/passes.js.map +1 -0
- package/dist/three/postprocess.d.ts +85 -0
- package/dist/three/postprocess.d.ts.map +1 -0
- package/dist/three/postprocess.js +503 -0
- package/dist/three/postprocess.js.map +1 -0
- package/dist/three/raycast.d.ts +24 -0
- package/dist/three/raycast.d.ts.map +1 -0
- package/dist/three/raycast.js +138 -0
- package/dist/three/raycast.js.map +1 -0
- package/dist/three/reconciler.d.ts +48 -0
- package/dist/three/reconciler.d.ts.map +1 -0
- package/dist/three/reconciler.js +416 -0
- package/dist/three/reconciler.js.map +1 -0
- package/dist/three/renderer-direct.d.ts +102 -0
- package/dist/three/renderer-direct.d.ts.map +1 -0
- package/dist/three/renderer-direct.js +782 -0
- package/dist/three/renderer-direct.js.map +1 -0
- package/dist/three/renderer-indirect.d.ts +68 -0
- package/dist/three/renderer-indirect.d.ts.map +1 -0
- package/dist/three/renderer-indirect.js +438 -0
- package/dist/three/renderer-indirect.js.map +1 -0
- package/dist/three/store.d.ts +81 -0
- package/dist/three/store.d.ts.map +1 -0
- package/dist/three/store.js +110 -0
- package/dist/three/store.js.map +1 -0
- package/dist/timeline/hx.d.ts +18 -0
- package/dist/timeline/hx.d.ts.map +1 -0
- package/dist/timeline/hx.js +10 -0
- package/dist/timeline/hx.js.map +1 -0
- package/dist/timeline/index.d.ts +152 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +383 -0
- package/dist/timeline/index.js.map +1 -0
- package/dist/tray-host/hx.d.ts +24 -0
- package/dist/tray-host/hx.d.ts.map +1 -0
- package/dist/tray-host/hx.js +25 -0
- package/dist/tray-host/hx.js.map +1 -0
- package/dist/tray-host/index.d.ts +110 -0
- package/dist/tray-host/index.d.ts.map +1 -0
- package/dist/tray-host/index.js +191 -0
- package/dist/tray-host/index.js.map +1 -0
- package/dist/tray-host/manager.d.ts +137 -0
- package/dist/tray-host/manager.d.ts.map +1 -0
- package/dist/tray-host/manager.js +462 -0
- package/dist/tray-host/manager.js.map +1 -0
- package/dist/tray-host/notify.d.ts +22 -0
- package/dist/tray-host/notify.d.ts.map +1 -0
- package/dist/tray-host/notify.js +74 -0
- package/dist/tray-host/notify.js.map +1 -0
- package/dist/tray-host/protocol.d.ts +106 -0
- package/dist/tray-host/protocol.d.ts.map +1 -0
- package/dist/tray-host/protocol.js +191 -0
- package/dist/tray-host/protocol.js.map +1 -0
- package/dist/tree/hx.d.ts +24 -0
- package/dist/tree/hx.d.ts.map +1 -0
- package/dist/tree/hx.js +25 -0
- package/dist/tree/hx.js.map +1 -0
- package/dist/tree/index.d.ts +221 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/index.js +716 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree/internal.d.ts +18 -0
- package/dist/tree/internal.d.ts.map +1 -0
- package/dist/tree/internal.js +66 -0
- package/dist/tree/internal.js.map +1 -0
- package/dist/tree/rows.d.ts +177 -0
- package/dist/tree/rows.d.ts.map +1 -0
- package/dist/tree/rows.js +179 -0
- package/dist/tree/rows.js.map +1 -0
- package/package.json +166 -12
- package/src/ansi/cast.ts +159 -0
- package/src/ansi/index.ts +53 -0
- package/src/ansi/palette.ts +226 -0
- package/src/ansi/parse.ts +780 -0
- package/src/ansi/sgr.ts +380 -0
- package/src/ansi/utf8.ts +84 -0
- package/src/calendar/Calendar.ts +744 -0
- package/src/calendar/DatePicker.ts +368 -0
- package/src/calendar/dates.ts +307 -0
- package/src/calendar/index.ts +51 -0
- package/src/charts/components.ts +864 -0
- package/src/charts/data.ts +776 -0
- package/src/charts/hx.ts +39 -0
- package/src/charts/index.ts +99 -0
- package/src/charts/node.ts +932 -0
- package/src/charts/render.ts +982 -0
- package/src/charts/scale.ts +214 -0
- package/src/charts/spec.ts +122 -0
- package/src/charts/timers.ts +24 -0
- package/src/code/hx.ts +51 -0
- package/src/code/index.ts +174 -0
- package/src/code-editor/completion.ts +161 -0
- package/src/code-editor/doc.ts +198 -0
- package/src/code-editor/hx.ts +26 -0
- package/src/code-editor/index.ts +615 -0
- package/src/code-editor/node.ts +1926 -0
- package/src/code-language/hljs.ts +302 -0
- package/src/code-language/index.ts +51 -0
- package/src/code-language/languages/glsl.ts +120 -0
- package/src/code-language/languages/javascript.ts +419 -0
- package/src/code-language/languages/json.ts +72 -0
- package/src/code-language/languages/shell.ts +221 -0
- package/src/code-language/languages/sql.ts +165 -0
- package/src/code-language/lezer.ts +190 -0
- package/src/code-language/registry.ts +66 -0
- package/src/code-language/runs.ts +128 -0
- package/src/code-language/stream.ts +306 -0
- package/src/code-language/textmate.ts +134 -0
- package/src/code-language/theme.ts +124 -0
- package/src/code-language/timers.ts +36 -0
- package/src/code-language/types.ts +252 -0
- package/src/codeblock/index.ts +146 -0
- package/src/color-picker/ColorField.ts +333 -0
- package/src/color-picker/ColorPicker.ts +1069 -0
- package/src/color-picker/color.ts +399 -0
- package/src/color-picker/index.ts +50 -0
- package/src/desktop-calendar/eds.ts +484 -0
- package/src/desktop-calendar/ical.ts +119 -0
- package/src/desktop-calendar/index.ts +287 -0
- package/src/embed/client.ts +311 -0
- package/src/embed/host.ts +432 -0
- package/src/embed/index.ts +33 -0
- package/src/embed/timers.ts +32 -0
- package/src/flow/draw.ts +418 -0
- package/src/flow/index.ts +473 -0
- package/src/flow/model.ts +687 -0
- package/src/flow/node.ts +3694 -0
- package/src/flow/paths.ts +403 -0
- package/src/flow/types.ts +634 -0
- package/src/formula/hx.ts +51 -0
- package/src/formula/index.ts +243 -0
- package/src/formula/katex.ts +209 -0
- package/src/formula/layout.ts +876 -0
- package/src/formula/node.ts +467 -0
- package/src/html/controls.ts +244 -0
- package/src/html/css/cascade.ts +606 -0
- package/src/html/css/parse.ts +500 -0
- package/src/html/css/style.ts +1371 -0
- package/src/html/css/ua.ts +174 -0
- package/src/html/css/values.ts +358 -0
- package/src/html/dom.ts +410 -0
- package/src/html/hx.ts +55 -0
- package/src/html/index.ts +545 -0
- package/src/html/layout/block.ts +876 -0
- package/src/html/layout/boxes.ts +981 -0
- package/src/html/layout/flex.ts +297 -0
- package/src/html/layout/floats.ts +125 -0
- package/src/html/layout/inline.ts +870 -0
- package/src/html/layout/table.ts +380 -0
- package/src/html/node.ts +967 -0
- package/src/html/paint.ts +605 -0
- package/src/html/resources.ts +214 -0
- package/src/index.ts +638 -0
- package/src/internal/heights.ts +211 -0
- package/src/internal/hx.ts +53 -0
- package/src/internal/text.ts +44 -0
- package/src/internal/timers.ts +44 -0
- package/src/internal/widget.ts +92 -0
- package/src/markdown/ast.ts +163 -0
- package/src/markdown/hx.ts +51 -0
- package/src/markdown/index.ts +686 -0
- package/src/markdown/parse.ts +1037 -0
- package/src/markdown/spans.ts +143 -0
- package/src/media-player/backends.ts +155 -0
- package/src/media-player/control.ts +70 -0
- package/src/media-player/hx.ts +51 -0
- package/src/media-player/index.ts +378 -0
- package/src/media-player/mpv.ts +146 -0
- package/src/media-player/vlc.ts +97 -0
- package/src/richtext/index.ts +42 -0
- package/src/richtext/links.ts +78 -0
- package/src/richtext/menu.ts +49 -0
- package/src/richtext/node.ts +406 -0
- package/src/richtext/runs.ts +253 -0
- package/src/table/hx.ts +51 -0
- package/src/table/index.ts +1219 -0
- package/src/table/rows.ts +275 -0
- package/src/terminal/backends.ts +242 -0
- package/src/terminal/hx.ts +51 -0
- package/src/terminal/index.ts +574 -0
- package/src/terminal/title.ts +172 -0
- package/src/terminal/vt/colors.ts +247 -0
- package/src/terminal/vt/diff.ts +467 -0
- package/src/terminal/vt/fonts.ts +233 -0
- package/src/terminal/vt/index.ts +443 -0
- package/src/terminal/vt/keys.ts +369 -0
- package/src/terminal/vt/mouse.ts +144 -0
- package/src/terminal/vt/node.ts +1242 -0
- package/src/terminal/vt/pty.ts +334 -0
- package/src/terminal/vt/renderer.ts +555 -0
- package/src/terminal/vt/timers.ts +31 -0
- package/src/terminal/vt/xterm.ts +193 -0
- package/src/terminal-output/hx.ts +51 -0
- package/src/terminal-output/index.ts +340 -0
- package/src/terminal-output/runs.ts +79 -0
- package/src/three/canvas.ts +451 -0
- package/src/three/events.ts +197 -0
- package/src/three/geometries.ts +429 -0
- package/src/three/globals.ts +34 -0
- package/src/three/hx.ts +22 -0
- package/src/three/index.ts +98 -0
- package/src/three/jsx-dev-runtime.ts +27 -0
- package/src/three/jsx-runtime.ts +38 -0
- package/src/three/jsx.ts +275 -0
- package/src/three/materials.ts +270 -0
- package/src/three/math.ts +585 -0
- package/src/three/objects.ts +397 -0
- package/src/three/passes.ts +90 -0
- package/src/three/postprocess.ts +677 -0
- package/src/three/raycast.ts +189 -0
- package/src/three/react-reconciler.d.ts +50 -0
- package/src/three/reconciler.ts +624 -0
- package/src/three/renderer-direct.ts +1055 -0
- package/src/three/renderer-indirect.ts +570 -0
- package/src/three/store.ts +207 -0
- package/src/timeline/hx.ts +31 -0
- package/src/timeline/index.ts +603 -0
- package/src/tray-host/hx.ts +51 -0
- package/src/tray-host/index.ts +331 -0
- package/src/tray-host/manager.ts +639 -0
- package/src/tray-host/notify.ts +102 -0
- package/src/tray-host/protocol.ts +235 -0
- package/src/tree/hx.ts +51 -0
- package/src/tree/index.ts +1087 -0
- package/src/tree/internal.ts +87 -0
- package/src/tree/rows.ts +334 -0
- package/src/index.d.ts +0 -2
- package/src/index.js +0 -9
- package/src/sparkline/index.d.ts +0 -29
- package/src/sparkline/index.js +0 -50
- package/src/sparkline/node.js +0 -72
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
function zeroStats() {
|
|
2
|
+
return {
|
|
3
|
+
fillRequests: 0,
|
|
4
|
+
glyphRequests: 0,
|
|
5
|
+
copies: 0,
|
|
6
|
+
blits: 0,
|
|
7
|
+
cellsFilled: 0,
|
|
8
|
+
glyphsDrawn: 0,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function css(rgb) {
|
|
12
|
+
return `#${(rgb & 0xffffff).toString(16).padStart(6, '0')}`;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The batching half, shared by both renderers.
|
|
16
|
+
*
|
|
17
|
+
* Order within a frame is fixed and is the whole of the "two colours per
|
|
18
|
+
* cell" model: backgrounds first, then glyphs over them, then decorations
|
|
19
|
+
* (which are foreground-coloured rules) over those.
|
|
20
|
+
*/
|
|
21
|
+
class BatchingRenderer {
|
|
22
|
+
frame = null;
|
|
23
|
+
ctx = null;
|
|
24
|
+
/** Where this renderer's coordinates sit relative to the paint context. */
|
|
25
|
+
offsetX = 0;
|
|
26
|
+
offsetY = 0;
|
|
27
|
+
_fills = new Map();
|
|
28
|
+
_decorations = new Map();
|
|
29
|
+
_runs = new Map();
|
|
30
|
+
stats = zeroStats();
|
|
31
|
+
totals = zeroStats();
|
|
32
|
+
/** Every counter goes through here, so a total can never drift from the
|
|
33
|
+
* per-frame number it was added to. */
|
|
34
|
+
count(key, by = 1) {
|
|
35
|
+
this.stats[key] += by;
|
|
36
|
+
this.totals[key] += by;
|
|
37
|
+
}
|
|
38
|
+
begin(ctx, frame) {
|
|
39
|
+
this.ctx = ctx;
|
|
40
|
+
this.frame = frame;
|
|
41
|
+
this._fills.clear();
|
|
42
|
+
this._decorations.clear();
|
|
43
|
+
this._runs.clear();
|
|
44
|
+
this.stats.fillRequests = 0;
|
|
45
|
+
this.stats.glyphRequests = 0;
|
|
46
|
+
this.stats.copies = 0;
|
|
47
|
+
this.stats.blits = 0;
|
|
48
|
+
this.stats.cellsFilled = 0;
|
|
49
|
+
this.stats.glyphsDrawn = 0;
|
|
50
|
+
}
|
|
51
|
+
fillCells(row, col, count, rgb) {
|
|
52
|
+
const frame = this.frame;
|
|
53
|
+
if (!frame || count <= 0)
|
|
54
|
+
return;
|
|
55
|
+
const { cellWidth, cellHeight } = frame.metrics;
|
|
56
|
+
push(this._fills, rgb, [
|
|
57
|
+
this.offsetX + col * cellWidth,
|
|
58
|
+
this.offsetY + row * cellHeight,
|
|
59
|
+
count * cellWidth,
|
|
60
|
+
cellHeight,
|
|
61
|
+
]);
|
|
62
|
+
this.count('cellsFilled', count);
|
|
63
|
+
}
|
|
64
|
+
drawRun(row, col, run, rgb) {
|
|
65
|
+
const frame = this.frame;
|
|
66
|
+
if (!frame)
|
|
67
|
+
return;
|
|
68
|
+
const { cellWidth, cellHeight, baseline } = frame.metrics;
|
|
69
|
+
let list = this._runs.get(rgb);
|
|
70
|
+
if (!list) {
|
|
71
|
+
list = [];
|
|
72
|
+
this._runs.set(rgb, list);
|
|
73
|
+
}
|
|
74
|
+
// Grid-computed, per cell: a fractional font advance can never accumulate
|
|
75
|
+
// into drift, because nothing ever advances a pen across the row.
|
|
76
|
+
list.push({
|
|
77
|
+
run,
|
|
78
|
+
x: this.offsetX + col * cellWidth,
|
|
79
|
+
y: this.offsetY + row * cellHeight + baseline,
|
|
80
|
+
});
|
|
81
|
+
this.count('glyphsDrawn', run.glyphs.length);
|
|
82
|
+
}
|
|
83
|
+
decorate(row, col, count, kind, rgb) {
|
|
84
|
+
const frame = this.frame;
|
|
85
|
+
if (!frame || count <= 0)
|
|
86
|
+
return;
|
|
87
|
+
const { cellWidth, cellHeight, baseline, underline, ruleHeight } = frame.metrics;
|
|
88
|
+
const x = this.offsetX + col * cellWidth;
|
|
89
|
+
const y = this.offsetY + row * cellHeight;
|
|
90
|
+
const w = count * cellWidth;
|
|
91
|
+
switch (kind) {
|
|
92
|
+
case 'underline':
|
|
93
|
+
push(this._decorations, rgb, [x, y + underline, w, ruleHeight]);
|
|
94
|
+
break;
|
|
95
|
+
case 'strike':
|
|
96
|
+
push(this._decorations, rgb, [
|
|
97
|
+
x,
|
|
98
|
+
y + Math.round(baseline - baseline / 3),
|
|
99
|
+
w,
|
|
100
|
+
ruleHeight,
|
|
101
|
+
]);
|
|
102
|
+
break;
|
|
103
|
+
case 'overline':
|
|
104
|
+
push(this._decorations, rgb, [x, y, w, ruleHeight]);
|
|
105
|
+
break;
|
|
106
|
+
case 'bar':
|
|
107
|
+
push(this._decorations, rgb, [
|
|
108
|
+
x,
|
|
109
|
+
y,
|
|
110
|
+
Math.max(1, ruleHeight * 2),
|
|
111
|
+
cellHeight,
|
|
112
|
+
]);
|
|
113
|
+
break;
|
|
114
|
+
case 'cursorUnderline':
|
|
115
|
+
push(this._decorations, rgb, [
|
|
116
|
+
x,
|
|
117
|
+
y + cellHeight - Math.max(2, ruleHeight * 2),
|
|
118
|
+
w,
|
|
119
|
+
Math.max(2, ruleHeight * 2),
|
|
120
|
+
]);
|
|
121
|
+
break;
|
|
122
|
+
case 'box': {
|
|
123
|
+
// The unfocused cursor: an outline, so the cell keeps its own
|
|
124
|
+
// colours and the character under it stays readable.
|
|
125
|
+
const t = ruleHeight;
|
|
126
|
+
push(this._decorations, rgb, [x, y, w, t]);
|
|
127
|
+
push(this._decorations, rgb, [x, y + cellHeight - t, w, t]);
|
|
128
|
+
push(this._decorations, rgb, [x, y, t, cellHeight]);
|
|
129
|
+
push(this._decorations, rgb, [x + w - t, y, t, cellHeight]);
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
end() {
|
|
135
|
+
const ctx = this.target();
|
|
136
|
+
if (ctx) {
|
|
137
|
+
this._flushRects(ctx, this._fills);
|
|
138
|
+
this._flushGlyphs(ctx);
|
|
139
|
+
this._flushRects(ctx, this._decorations);
|
|
140
|
+
}
|
|
141
|
+
this.present();
|
|
142
|
+
this._fills.clear();
|
|
143
|
+
this._decorations.clear();
|
|
144
|
+
this._runs.clear();
|
|
145
|
+
}
|
|
146
|
+
_flushRects(ctx, batches) {
|
|
147
|
+
for (const [rgb, rects] of batches) {
|
|
148
|
+
if (!rects.length)
|
|
149
|
+
continue;
|
|
150
|
+
ctx.fillStyle = css(rgb);
|
|
151
|
+
if (typeof ctx.fillRects === 'function') {
|
|
152
|
+
// One `Render.FillRectangles` for the whole colour (ntk#253), where
|
|
153
|
+
// a `fillRect` loop is one composite per rectangle.
|
|
154
|
+
ctx.fillRects(rects);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
for (let i = 0; i < rects.length; i += 4) {
|
|
158
|
+
ctx.fillRect(rects[i], rects[i + 1], rects[i + 2], rects[i + 3]);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
this.count('fillRequests');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
_flushGlyphs(ctx) {
|
|
165
|
+
if (!this._runs.size)
|
|
166
|
+
return;
|
|
167
|
+
if (typeof ctx.drawGlyphs !== 'function' ||
|
|
168
|
+
typeof ctx.createSolidPicture !== 'function') {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const op = ctx.Render?.PictOp?.Over ?? 3;
|
|
172
|
+
for (const [rgb, runs] of this._runs) {
|
|
173
|
+
if (!runs.length)
|
|
174
|
+
continue;
|
|
175
|
+
// Premultiplied 0..1, which is what XRender solids are. Opaque, so the
|
|
176
|
+
// premultiplication is the identity.
|
|
177
|
+
const src = ctx.createSolidPicture(((rgb >> 16) & 0xff) / 255, ((rgb >> 8) & 0xff) / 255, (rgb & 0xff) / 255, 1);
|
|
178
|
+
ctx.drawGlyphs(op, src, runs);
|
|
179
|
+
this.count('glyphRequests');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function push(batches, key, rect) {
|
|
184
|
+
const list = batches.get(key);
|
|
185
|
+
if (list)
|
|
186
|
+
list.push(rect[0], rect[1], rect[2], rect[3]);
|
|
187
|
+
else
|
|
188
|
+
batches.set(key, rect.slice());
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The default: a retained `Surface` the size of the grid.
|
|
192
|
+
*
|
|
193
|
+
* Why a surface of our own rather than `Window#scrollRegion` on the window's
|
|
194
|
+
* backing store: the window's backing store is where react-x11 paints every
|
|
195
|
+
* *other* node too, so scrolling it would make our correctness depend on
|
|
196
|
+
* nothing overlapping the band mid-frame and on core's damage bookkeeping not
|
|
197
|
+
* repainting our rect after we moved it. The surface decouples us from both
|
|
198
|
+
* for the price of one composite per frame.
|
|
199
|
+
*/
|
|
200
|
+
export class RetainedRenderer extends BatchingRenderer {
|
|
201
|
+
kind = 'retained';
|
|
202
|
+
_app;
|
|
203
|
+
_Surface;
|
|
204
|
+
_surface = null;
|
|
205
|
+
_surfaceCtx = null;
|
|
206
|
+
_cols = 0;
|
|
207
|
+
_metrics = null;
|
|
208
|
+
constructor(app, Surface) {
|
|
209
|
+
super();
|
|
210
|
+
this._app = app;
|
|
211
|
+
this._Surface = Surface;
|
|
212
|
+
}
|
|
213
|
+
ensure(cols, rows, metrics) {
|
|
214
|
+
const width = Math.max(1, cols * metrics.cellWidth);
|
|
215
|
+
const height = Math.max(1, rows * metrics.cellHeight);
|
|
216
|
+
const fits = this._surface !== null &&
|
|
217
|
+
this._surface.width >= width &&
|
|
218
|
+
this._surface.height >= height &&
|
|
219
|
+
this._metrics?.cellWidth === metrics.cellWidth &&
|
|
220
|
+
this._metrics?.cellHeight === metrics.cellHeight;
|
|
221
|
+
this._cols = cols;
|
|
222
|
+
this._metrics = metrics;
|
|
223
|
+
if (fits)
|
|
224
|
+
return true;
|
|
225
|
+
this._release();
|
|
226
|
+
// Grown with headroom, the way ntk grows a window's backing store: a
|
|
227
|
+
// drag-resize is a stream of sizes, and reallocating on each one throws
|
|
228
|
+
// the whole screen away every frame of the drag.
|
|
229
|
+
const alloc = (n) => Math.ceil((n * 5) / 4);
|
|
230
|
+
try {
|
|
231
|
+
this._surface = new this._Surface(this._app, {
|
|
232
|
+
width: alloc(width),
|
|
233
|
+
height: alloc(height),
|
|
234
|
+
format: 'argb32',
|
|
235
|
+
});
|
|
236
|
+
// One context for the surface's whole life: a context is much heavier
|
|
237
|
+
// than it looks (a GC and a Picture), and `Surface#render` would build
|
|
238
|
+
// and destroy one per frame.
|
|
239
|
+
this._surfaceCtx = this._surface.getContext('2d');
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
this._surface = null;
|
|
243
|
+
this._surfaceCtx = null;
|
|
244
|
+
}
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
target() {
|
|
248
|
+
return this._surfaceCtx;
|
|
249
|
+
}
|
|
250
|
+
copyRows(srcRow, dstRow, count) {
|
|
251
|
+
const surface = this._surface;
|
|
252
|
+
const metrics = this._metrics;
|
|
253
|
+
if (!surface || !metrics || count <= 0 || srcRow === dstRow)
|
|
254
|
+
return false;
|
|
255
|
+
const h = metrics.cellHeight;
|
|
256
|
+
const ok = surface.copyWithin({
|
|
257
|
+
x: 0,
|
|
258
|
+
y: srcRow * h,
|
|
259
|
+
width: this._cols * metrics.cellWidth,
|
|
260
|
+
height: count * h,
|
|
261
|
+
}, 0, (dstRow - srcRow) * h);
|
|
262
|
+
if (ok)
|
|
263
|
+
this.count('copies');
|
|
264
|
+
return ok;
|
|
265
|
+
}
|
|
266
|
+
present() {
|
|
267
|
+
const ctx = this.ctx;
|
|
268
|
+
const frame = this.frame;
|
|
269
|
+
const surface = this._surface;
|
|
270
|
+
if (!ctx || !frame || !surface || typeof ctx.drawImage !== 'function') {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
const width = frame.cols * frame.metrics.cellWidth;
|
|
274
|
+
const height = frame.rows * frame.metrics.cellHeight;
|
|
275
|
+
if (width <= 0 || height <= 0)
|
|
276
|
+
return;
|
|
277
|
+
// The whole grid, one composite. It is the whole grid rather than the
|
|
278
|
+
// frame's dirty bands because `Node.paint` has just filled this node's
|
|
279
|
+
// background across everything the damage clip covers, and the damage we
|
|
280
|
+
// claimed is the grid rect — the diff decides what is *rendered*, which
|
|
281
|
+
// is where the cost is, and the blit is one request either way.
|
|
282
|
+
ctx.drawImage(surface, 0, 0, width, height, frame.originX, frame.originY, width, height);
|
|
283
|
+
this.count('blits');
|
|
284
|
+
}
|
|
285
|
+
_release() {
|
|
286
|
+
this._surfaceCtx?.destroy?.();
|
|
287
|
+
this._surface?.destroy();
|
|
288
|
+
this._surfaceCtx = null;
|
|
289
|
+
this._surface = null;
|
|
290
|
+
}
|
|
291
|
+
destroy() {
|
|
292
|
+
this._release();
|
|
293
|
+
}
|
|
294
|
+
/** Whether the surface actually exists — the probe the factory reads. */
|
|
295
|
+
get usable() {
|
|
296
|
+
return this._surface !== null;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* No buffer: draw the frame straight into the paint context.
|
|
301
|
+
*
|
|
302
|
+
* `copyRows` refuses, so the caller repaints what moved. That is not a
|
|
303
|
+
* degradation to apologise for — `Node.paint` fills this node's background
|
|
304
|
+
* before we draw, so there are no old pixels to shift in the first place.
|
|
305
|
+
*/
|
|
306
|
+
export class DirectRenderer extends BatchingRenderer {
|
|
307
|
+
kind = 'direct';
|
|
308
|
+
ensure() {
|
|
309
|
+
// Nothing is retained between frames, so every frame is a fresh one and
|
|
310
|
+
// the caller has to treat its mirror as empty.
|
|
311
|
+
return false;
|
|
312
|
+
}
|
|
313
|
+
begin(ctx, frame) {
|
|
314
|
+
super.begin(ctx, frame);
|
|
315
|
+
this.offsetX = frame.originX;
|
|
316
|
+
this.offsetY = frame.originY;
|
|
317
|
+
}
|
|
318
|
+
target() {
|
|
319
|
+
return this.ctx;
|
|
320
|
+
}
|
|
321
|
+
copyRows() {
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
present() {
|
|
325
|
+
// already in the window
|
|
326
|
+
}
|
|
327
|
+
destroy() {
|
|
328
|
+
// nothing owned
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Pick a renderer for this context, or `null` when there is nothing to draw
|
|
333
|
+
* with — the mock backend's context has no pixel API at all, and a component
|
|
334
|
+
* that throws there cannot be tested headlessly (AGENTS.md).
|
|
335
|
+
*/
|
|
336
|
+
const PROBE_METRICS = {
|
|
337
|
+
cellWidth: 1,
|
|
338
|
+
cellHeight: 1,
|
|
339
|
+
baseline: 1,
|
|
340
|
+
underline: 1,
|
|
341
|
+
ruleHeight: 1,
|
|
342
|
+
};
|
|
343
|
+
export function createRenderer(app, ctx, Surface) {
|
|
344
|
+
if (typeof ctx.fillRect !== 'function')
|
|
345
|
+
return null;
|
|
346
|
+
if (Surface && typeof ctx.drawImage === 'function') {
|
|
347
|
+
const retained = new RetainedRenderer(app, Surface);
|
|
348
|
+
// Probing by construction rather than by feature-sniffing the server:
|
|
349
|
+
// whether a pixmap can be made on this connection is the actual question.
|
|
350
|
+
retained.ensure(1, 1, PROBE_METRICS);
|
|
351
|
+
if (retained.usable)
|
|
352
|
+
return retained;
|
|
353
|
+
retained.destroy();
|
|
354
|
+
}
|
|
355
|
+
return new DirectRenderer();
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/terminal/vt/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type TimerId = unknown;
|
|
2
|
+
export declare function startInterval(fn: () => void, ms: number): TimerId;
|
|
3
|
+
export declare function stopInterval(id: TimerId): void;
|
|
4
|
+
/** Off the current stack — how paint tells React that the grid resized. */
|
|
5
|
+
export declare function microtask(fn: () => void): void;
|
|
6
|
+
//# sourceMappingURL=timers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../../src/terminal/vt/timers.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC;AAE9B,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAG9C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const g = globalThis;
|
|
2
|
+
export function startInterval(fn, ms) {
|
|
3
|
+
return g.setInterval?.(fn, ms) ?? null;
|
|
4
|
+
}
|
|
5
|
+
export function stopInterval(id) {
|
|
6
|
+
if (id != null)
|
|
7
|
+
g.clearInterval?.(id);
|
|
8
|
+
}
|
|
9
|
+
/** Off the current stack — how paint tells React that the grid resized. */
|
|
10
|
+
export function microtask(fn) {
|
|
11
|
+
if (g.queueMicrotask)
|
|
12
|
+
g.queueMicrotask(fn);
|
|
13
|
+
else
|
|
14
|
+
void Promise.resolve().then(fn);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=timers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../src/terminal/vt/timers.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,GAAG,UAA0B,CAAC;AAIrC,MAAM,UAAU,aAAa,CAAC,EAAc,EAAE,EAAU;IACtD,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAW;IACtC,IAAI,EAAE,IAAI,IAAI;QAAE,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,EAAc;IACtC,IAAI,CAAC,CAAC,cAAc;QAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;;QACtC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/** What every xterm listener registration hands back. */
|
|
2
|
+
export interface XtermDisposable {
|
|
3
|
+
dispose(): void;
|
|
4
|
+
}
|
|
5
|
+
/** xterm's event shape: call it with a listener, get a disposable. */
|
|
6
|
+
export type XtermEvent<T> = (listener: (arg: T) => void) => XtermDisposable;
|
|
7
|
+
/**
|
|
8
|
+
* One cell of the buffer.
|
|
9
|
+
*
|
|
10
|
+
* The `is*` predicates return numbers rather than booleans (the attribute
|
|
11
|
+
* bits, unshifted) — `isUnderline()` in particular carries the *style*
|
|
12
|
+
* variant, which is why it is read as a number here too.
|
|
13
|
+
*/
|
|
14
|
+
export interface XtermCell {
|
|
15
|
+
getWidth(): number;
|
|
16
|
+
getChars(): string;
|
|
17
|
+
getCode(): number;
|
|
18
|
+
getFgColor(): number;
|
|
19
|
+
getBgColor(): number;
|
|
20
|
+
getFgColorMode(): number;
|
|
21
|
+
getBgColorMode(): number;
|
|
22
|
+
isFgRGB(): boolean;
|
|
23
|
+
isBgRGB(): boolean;
|
|
24
|
+
isFgPalette(): boolean;
|
|
25
|
+
isBgPalette(): boolean;
|
|
26
|
+
isFgDefault(): boolean;
|
|
27
|
+
isBgDefault(): boolean;
|
|
28
|
+
isBold(): number;
|
|
29
|
+
isDim(): number;
|
|
30
|
+
isItalic(): number;
|
|
31
|
+
isUnderline(): number;
|
|
32
|
+
isBlink(): number;
|
|
33
|
+
isInverse(): number;
|
|
34
|
+
isInvisible(): number;
|
|
35
|
+
isStrikethrough(): number;
|
|
36
|
+
isOverline(): number;
|
|
37
|
+
}
|
|
38
|
+
export interface XtermLine {
|
|
39
|
+
readonly isWrapped: boolean;
|
|
40
|
+
readonly length: number;
|
|
41
|
+
/**
|
|
42
|
+
* `cell` is the reuse slot the diff loop depends on: one work cell for the
|
|
43
|
+
* whole viewport instead of an object per cell per frame. The API documents
|
|
44
|
+
* the reuse, so this is the intended shape rather than a trick.
|
|
45
|
+
*/
|
|
46
|
+
getCell(x: number, cell?: XtermCell): XtermCell | undefined;
|
|
47
|
+
translateToString(trimRight?: boolean, startColumn?: number, endColumn?: number): string;
|
|
48
|
+
}
|
|
49
|
+
export interface XtermBuffer {
|
|
50
|
+
readonly type: 'normal' | 'alternate';
|
|
51
|
+
readonly cursorX: number;
|
|
52
|
+
readonly cursorY: number;
|
|
53
|
+
/** Buffer-absolute index of the line at the top of the viewport. */
|
|
54
|
+
readonly viewportY: number;
|
|
55
|
+
/** Buffer-absolute index of the top of the bottom page. */
|
|
56
|
+
readonly baseY: number;
|
|
57
|
+
readonly length: number;
|
|
58
|
+
getLine(y: number): XtermLine | undefined;
|
|
59
|
+
getNullCell(): XtermCell;
|
|
60
|
+
}
|
|
61
|
+
export interface XtermBuffers {
|
|
62
|
+
readonly active: XtermBuffer;
|
|
63
|
+
readonly normal: XtermBuffer;
|
|
64
|
+
readonly alternate: XtermBuffer;
|
|
65
|
+
readonly onBufferChange: XtermEvent<XtermBuffer>;
|
|
66
|
+
}
|
|
67
|
+
/** The modes the encoders branch on. All public in `IModes`. */
|
|
68
|
+
export interface XtermModes {
|
|
69
|
+
readonly applicationCursorKeysMode: boolean;
|
|
70
|
+
readonly applicationKeypadMode: boolean;
|
|
71
|
+
readonly bracketedPasteMode: boolean;
|
|
72
|
+
readonly insertMode: boolean;
|
|
73
|
+
readonly mouseTrackingMode: 'none' | 'x10' | 'vt200' | 'drag' | 'any';
|
|
74
|
+
readonly originMode: boolean;
|
|
75
|
+
readonly reverseWraparoundMode: boolean;
|
|
76
|
+
readonly sendFocusMode: boolean;
|
|
77
|
+
readonly wraparoundMode: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface XtermFunctionIdentifier {
|
|
80
|
+
prefix?: string;
|
|
81
|
+
intermediates?: string;
|
|
82
|
+
final: string;
|
|
83
|
+
}
|
|
84
|
+
export interface XtermParser {
|
|
85
|
+
registerCsiHandler(id: XtermFunctionIdentifier, callback: (params: (number | number[])[]) => boolean): XtermDisposable;
|
|
86
|
+
registerOscHandler(ident: number, callback: (data: string) => boolean): XtermDisposable;
|
|
87
|
+
}
|
|
88
|
+
/** The options we set. A subset — xterm has many more, none of them ours. */
|
|
89
|
+
export interface XtermOptions {
|
|
90
|
+
cols?: number;
|
|
91
|
+
rows?: number;
|
|
92
|
+
scrollback?: number;
|
|
93
|
+
cursorStyle?: 'block' | 'underline' | 'bar';
|
|
94
|
+
cursorBlink?: boolean;
|
|
95
|
+
drawBoldTextInBrightColors?: boolean;
|
|
96
|
+
allowProposedApi?: boolean;
|
|
97
|
+
convertEol?: boolean;
|
|
98
|
+
windowsPty?: unknown;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The emulator itself: bytes in, screen state out, and the events that say
|
|
102
|
+
* something changed.
|
|
103
|
+
*
|
|
104
|
+
* `onData` is the *reply* channel — DA, DSR, focus reports, mouse reports the
|
|
105
|
+
* core encodes itself — and it has to reach the pty, or an application that
|
|
106
|
+
* asks the terminal a question waits forever.
|
|
107
|
+
*/
|
|
108
|
+
export interface XtermTerminal {
|
|
109
|
+
readonly cols: number;
|
|
110
|
+
readonly rows: number;
|
|
111
|
+
readonly buffer: XtermBuffers;
|
|
112
|
+
readonly parser: XtermParser;
|
|
113
|
+
readonly modes: XtermModes;
|
|
114
|
+
options: XtermOptions;
|
|
115
|
+
readonly onBell: XtermEvent<void>;
|
|
116
|
+
readonly onBinary: XtermEvent<string>;
|
|
117
|
+
readonly onCursorMove: XtermEvent<void>;
|
|
118
|
+
readonly onData: XtermEvent<string>;
|
|
119
|
+
readonly onLineFeed: XtermEvent<void>;
|
|
120
|
+
readonly onResize: XtermEvent<{
|
|
121
|
+
cols: number;
|
|
122
|
+
rows: number;
|
|
123
|
+
}>;
|
|
124
|
+
readonly onScroll: XtermEvent<number>;
|
|
125
|
+
readonly onTitleChange: XtermEvent<string>;
|
|
126
|
+
readonly onWriteParsed: XtermEvent<void>;
|
|
127
|
+
write(data: string | Uint8Array, callback?: () => void): void;
|
|
128
|
+
input(data: string, wasUserInput?: boolean): void;
|
|
129
|
+
resize(cols: number, rows: number): void;
|
|
130
|
+
scrollLines(amount: number): void;
|
|
131
|
+
scrollToBottom(): void;
|
|
132
|
+
scrollToTop(): void;
|
|
133
|
+
clear(): void;
|
|
134
|
+
reset(): void;
|
|
135
|
+
dispose(): void;
|
|
136
|
+
}
|
|
137
|
+
/** The module's shape: one constructor. */
|
|
138
|
+
export interface XtermModule {
|
|
139
|
+
Terminal: new (options?: XtermOptions) => XtermTerminal;
|
|
140
|
+
}
|
|
141
|
+
export declare function loadXterm(): Promise<XtermModule | null>;
|
|
142
|
+
//# sourceMappingURL=xterm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xterm.d.ts","sourceRoot":"","sources":["../../../src/terminal/vt/xterm.ts"],"names":[],"mappings":"AAcA,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,sEAAsE;AACtE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,KAAK,eAAe,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,IAAI,MAAM,CAAC;IACnB,OAAO,IAAI,MAAM,CAAC;IAClB,UAAU,IAAI,MAAM,CAAC;IACrB,UAAU,IAAI,MAAM,CAAC;IACrB,cAAc,IAAI,MAAM,CAAC;IACzB,cAAc,IAAI,MAAM,CAAC;IACzB,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC;IACnB,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC;IACvB,MAAM,IAAI,MAAM,CAAC;IACjB,KAAK,IAAI,MAAM,CAAC;IAChB,QAAQ,IAAI,MAAM,CAAC;IACnB,WAAW,IAAI,MAAM,CAAC;IACtB,OAAO,IAAI,MAAM,CAAC;IAClB,SAAS,IAAI,MAAM,CAAC;IACpB,WAAW,IAAI,MAAM,CAAC;IACtB,eAAe,IAAI,MAAM,CAAC;IAC1B,UAAU,IAAI,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5D,iBAAiB,CACf,SAAS,CAAC,EAAE,OAAO,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,WAAW,IAAI,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAClD;AAED,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACtE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAChB,EAAE,EAAE,uBAAuB,EAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,OAAO,GACnD,eAAe,CAAC;IACnB,kBAAkB,CAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAClC,eAAe,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC;IAEtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEzC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC9D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,IAAI,IAAI,CAAC;IACvB,WAAW,IAAI,IAAI,CAAC;IACpB,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,OAAO,CAAC,EAAE,YAAY,KAAK,aAAa,CAAC;CACzD;AAWD,wBAAgB,SAAS,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAQvD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// `@xterm/headless`, as an interface.
|
|
2
|
+
//
|
|
3
|
+
// The emulator core is an **optional dependency**: it installs by default
|
|
4
|
+
// (nothing else would bring it, and the terminal is a flagship), but an app
|
|
5
|
+
// that ran `npm install --no-optional` must still type-check against this
|
|
6
|
+
// package. `import type { Terminal } from '@xterm/headless'` would put the
|
|
7
|
+
// package in the type graph and break exactly that app, so the slice we use
|
|
8
|
+
// is written out structurally here — the rule `../../desktop-calendar/ical.ts`
|
|
9
|
+
// established for `ical.js`, for the same reason.
|
|
10
|
+
//
|
|
11
|
+
// Everything below is public API in the 6.0.0 typings. Nothing here reaches
|
|
12
|
+
// into `term._core`: xterm.js internals churn between majors, and a renderer
|
|
13
|
+
// that depends on them is a renderer that breaks on an upgrade nobody made.
|
|
14
|
+
/**
|
|
15
|
+
* Load `@xterm/headless`, or answer `null` if it is not installed.
|
|
16
|
+
*
|
|
17
|
+
* A dynamic `import()` that is allowed to fail, exactly like
|
|
18
|
+
* `../../desktop-calendar/ical.ts`: "the optional dependency is missing" is an
|
|
19
|
+
* ordinary state of a healthy machine, and the component reports it as
|
|
20
|
+
* `status: 'unavailable'` plus the `fallback`, never as a throw.
|
|
21
|
+
*/
|
|
22
|
+
let cached = null;
|
|
23
|
+
export function loadXterm() {
|
|
24
|
+
cached ??= import('@xterm/headless')
|
|
25
|
+
.then((mod) => {
|
|
26
|
+
const m = mod;
|
|
27
|
+
return typeof m.Terminal === 'function' ? m : null;
|
|
28
|
+
})
|
|
29
|
+
.catch(() => null);
|
|
30
|
+
return cached;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=xterm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xterm.js","sourceRoot":"","sources":["../../../src/terminal/vt/xterm.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,kDAAkD;AAClD,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAmK5E;;;;;;;GAOG;AACH,IAAI,MAAM,GAAuC,IAAI,CAAC;AACtD,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC;SACjC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,GAAsC,CAAC;QACjD,OAAO,OAAO,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,CAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Key, ReactElement, ReactNode } from 'react';
|
|
2
|
+
import type { ReactX11Elements, Theme } from 'react-x11';
|
|
3
|
+
/** The host elements, by name. */
|
|
4
|
+
export type Host = ReactX11Elements;
|
|
5
|
+
/**
|
|
6
|
+
* What every element takes on top of its own props.
|
|
7
|
+
*
|
|
8
|
+
* `theme` is honoured by **every** node — `Node.theme` merges `props.theme`
|
|
9
|
+
* over the inherited palette, whatever the kind — but react-x11's element
|
|
10
|
+
* declarations only put it on `<window>`. A widget re-declares the theme it
|
|
11
|
+
* read from context onto its own root so that `$token` values still resolve
|
|
12
|
+
* inside a `<popup>`, which is a separate window and does not inherit the
|
|
13
|
+
* trigger's node tree. So the prop is real; only the declaration is narrow.
|
|
14
|
+
*/
|
|
15
|
+
interface CommonProps {
|
|
16
|
+
key?: Key;
|
|
17
|
+
/** `Theme` is listed alongside the record because it is an interface, and
|
|
18
|
+
* an interface has no implicit index signature — so the palette `useTheme`
|
|
19
|
+
* hands back is not assignable to the record react-x11 declares. */
|
|
20
|
+
theme?: Theme | Record<string, string | number>;
|
|
21
|
+
}
|
|
22
|
+
export declare function hx<K extends keyof Host>(type: K, props?: (Omit<Host[K], 'theme'> & CommonProps) | null, ...children: ReactNode[]): ReactElement;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=hx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx.d.ts","sourceRoot":"","sources":["../../src/terminal-output/hx.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEzD,kCAAkC;AAClC,MAAM,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAEpC;;;;;;;;;GASG;AACH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV;;yEAEqE;IACrE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACjD;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,IAAI,EACrC,IAAI,EAAE,CAAC,EAIP,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,EACrD,GAAG,QAAQ,EAAE,SAAS,EAAE,GACvB,YAAY,CAKd"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// `React.createElement`, typed against react-x11's host elements.
|
|
2
|
+
//
|
|
3
|
+
// The library writes `h(...)` rather than JSX — a convention inherited from
|
|
4
|
+
// core, and worth keeping so moving code between the two repos stays a
|
|
5
|
+
// rename. But `React.createElement`'s own overloads are `@types/react`'s, and
|
|
6
|
+
// they describe the DOM: a `<box onKeyDown>` handler is checked against
|
|
7
|
+
// React's `KeyboardEvent`, not react-x11's, and the whole props object is
|
|
8
|
+
// measured against `DOMAttributes`. Everything interesting fails.
|
|
9
|
+
//
|
|
10
|
+
// So the element name is looked up in react-x11's own element table instead.
|
|
11
|
+
// `hx('box', …)` gets `<box>`'s real props — `ev.keysym` on a key handler,
|
|
12
|
+
// `onDraw` on a `<canvas>` — and `hx('div', …)` is an error, which is the
|
|
13
|
+
// same guarantee the JSX namespace gives `examples/` and `test/types/`.
|
|
14
|
+
import React from 'react';
|
|
15
|
+
export function hx(type,
|
|
16
|
+
// `theme` is dropped from the element's own props before the merge:
|
|
17
|
+
// `<window>` and `<popup>` already declare it, narrower, and intersecting
|
|
18
|
+
// the two would demand a value satisfying both.
|
|
19
|
+
props, ...children) {
|
|
20
|
+
// The cast is the whole point of the wrapper: `createElement`'s string
|
|
21
|
+
// overload insists on DOM props, and the signature above has already
|
|
22
|
+
// checked these against the element that will actually receive them.
|
|
23
|
+
return React.createElement(type, props, ...children);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=hx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx.js","sourceRoot":"","sources":["../../src/terminal-output/hx.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAyB1B,MAAM,UAAU,EAAE,CAChB,IAAO;AACP,oEAAoE;AACpE,0EAA0E;AAC1E,gDAAgD;AAChD,KAAqD,EACrD,GAAG,QAAqB;IAExB,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,OAAO,KAAK,CAAC,aAAa,CAAC,IAAc,EAAE,KAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1E,CAAC"}
|