@react-x11/components 0.1.0 → 0.2.1
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 +88 -0
- package/dist/internal/heights.d.ts.map +1 -0
- package/dist/internal/heights.js +203 -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/scroll.d.ts +62 -0
- package/dist/internal/scroll.d.ts.map +1 -0
- package/dist/internal/scroll.js +224 -0
- package/dist/internal/scroll.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 +890 -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 +751 -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 +222 -0
- package/src/internal/hx.ts +53 -0
- package/src/internal/scroll.ts +288 -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 +1270 -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 +1127 -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 @@
|
|
|
1
|
+
{"version":3,"file":"backends.js","sourceRoot":"","sources":["../../src/terminal/backends.ts"],"names":[],"mappings":"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"}
|
|
@@ -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/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/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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode, Ref } from 'react';
|
|
2
|
+
import type { Style } from 'react-x11/style';
|
|
3
|
+
import type { EmbedStatus, ExitInfo, ProcessHost } from '../embed/index.js';
|
|
4
|
+
import type { TerminalBackendName, TerminalColors } from './backends.js';
|
|
5
|
+
import type { PtyHost } from './vt/pty.js';
|
|
6
|
+
export { TERMINAL_BACKENDS, alacritty, backendsFor, urxvt, xterm, } from './backends.js';
|
|
7
|
+
export type { TerminalBackend, TerminalBackendName, TerminalColors, TerminalLaunch, } from './backends.js';
|
|
8
|
+
/** What a `ref` on `<Terminal>` gets. */
|
|
9
|
+
export interface TerminalHandle {
|
|
10
|
+
/** Stop the emulator and start a new one. The scrollback is the old
|
|
11
|
+
* process's and does not survive; nothing else was ours to keep. */
|
|
12
|
+
restart(): void;
|
|
13
|
+
/** Signal the emulator process. `SIGTERM` by default; `false` when there
|
|
14
|
+
* is no process to signal. */
|
|
15
|
+
signal(signal?: string): boolean;
|
|
16
|
+
/** The emulator's pid, or `null`. */
|
|
17
|
+
readonly pid: number | null;
|
|
18
|
+
/** The `<foreign>` container's X window id — what the emulator was given.
|
|
19
|
+
* `null` on the vt backend, which has no child X window. */
|
|
20
|
+
readonly windowId: number | null;
|
|
21
|
+
/** Which backend was chosen, once one has been. */
|
|
22
|
+
readonly backend: string | null;
|
|
23
|
+
readonly status: EmbedStatus;
|
|
24
|
+
/**
|
|
25
|
+
* Type into the terminal. **vt backend only** — `false` everywhere else,
|
|
26
|
+
* for the reason at the top of this file, so an app can feature-test with
|
|
27
|
+
* the call itself.
|
|
28
|
+
*/
|
|
29
|
+
write(data: string): boolean;
|
|
30
|
+
/** Re-derive the grid from the current layout now, rather than at the next
|
|
31
|
+
* paint. vt only. */
|
|
32
|
+
resizeToFit(): void;
|
|
33
|
+
/** Columns and rows the emulator currently has. vt only. */
|
|
34
|
+
readonly cols: number | null;
|
|
35
|
+
readonly rows: number | null;
|
|
36
|
+
/** The selected text, or null. vt only. */
|
|
37
|
+
selection(): string | null;
|
|
38
|
+
clearSelection(): void;
|
|
39
|
+
scrollToBottom(): void;
|
|
40
|
+
/** Move the viewport by `n` lines — negative is back into the scrollback. */
|
|
41
|
+
scrollLines(n: number): void;
|
|
42
|
+
/** The visible screen as text: "copy all", and what a test asserts on. */
|
|
43
|
+
serialize(): string | null;
|
|
44
|
+
}
|
|
45
|
+
export interface TerminalProps {
|
|
46
|
+
/**
|
|
47
|
+
* argv to run, `['bash', '-lc', 'npm test']`. Omit it for the user's login
|
|
48
|
+
* shell, which is what every emulator here does with no `-e`.
|
|
49
|
+
*
|
|
50
|
+
* **Changing this restarts the terminal**, because an emulator cannot be
|
|
51
|
+
* handed a new command. Pass a stable array (or a stable `useMemo`) unless a
|
|
52
|
+
* restart is what you mean — the component keys on the *contents*, not the
|
|
53
|
+
* identity, so an inline literal is fine as long as its contents are.
|
|
54
|
+
*/
|
|
55
|
+
command?: readonly string[];
|
|
56
|
+
cwd?: string;
|
|
57
|
+
/** Added to the ambient environment, not a replacement for it. */
|
|
58
|
+
env?: Record<string, string | undefined>;
|
|
59
|
+
/**
|
|
60
|
+
* Which terminal. Default `'auto'`: the first of xterm, urxvt, alacritty
|
|
61
|
+
* that is installed, and `'vt'` — this package's own emulator, which needs
|
|
62
|
+
* nothing installed — when none of them is.
|
|
63
|
+
*/
|
|
64
|
+
backend?: TerminalBackendName;
|
|
65
|
+
fontFamily?: string;
|
|
66
|
+
fontSize?: number;
|
|
67
|
+
/** Lines of scrollback the emulator keeps. */
|
|
68
|
+
scrollback?: number;
|
|
69
|
+
/** The emulator's window title before the program sets one of its own.
|
|
70
|
+
* XEmbed backends only — the vt backend has no window of its own to name,
|
|
71
|
+
* and reports the program's own title through `onTitleChange`. */
|
|
72
|
+
title?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Colours for the emulator. Default: the react-x11 theme's `background` and
|
|
75
|
+
* `text`, with the accent as the cursor, so the pane matches the app around
|
|
76
|
+
* it. Pass `{}` to leave the emulator on its own defaults, or override any
|
|
77
|
+
* subset.
|
|
78
|
+
*
|
|
79
|
+
* `palette` (ANSI 0–15) reaches xterm and alacritty; urxvt takes its from
|
|
80
|
+
* the X resource database, which is the user's and not ours to write.
|
|
81
|
+
*/
|
|
82
|
+
colors?: TerminalColors;
|
|
83
|
+
/** The program exited — including because `restart()` or unmount killed
|
|
84
|
+
* it. */
|
|
85
|
+
onExit?: (info: ExitInfo) => void;
|
|
86
|
+
/** The emulator's `_NET_WM_NAME` changed: what the shell says is running. */
|
|
87
|
+
onTitleChange?: (title: string) => void;
|
|
88
|
+
/** Spawn failures, and the `BackendUnavailableError` for a machine with no
|
|
89
|
+
* emulator installed. Without a handler neither is reported anywhere —
|
|
90
|
+
* `status` and `fallback` are the visible half. */
|
|
91
|
+
onError?: (err: Error) => void;
|
|
92
|
+
/** Rendered instead of the surface when no backend is installed. */
|
|
93
|
+
fallback?: ReactNode;
|
|
94
|
+
/** False holds off spawning — a pane in a tab that is not open yet. */
|
|
95
|
+
enabled?: boolean;
|
|
96
|
+
/** Sent on unmount and restart. Default `SIGTERM`. */
|
|
97
|
+
stopSignal?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Where the process runs. Defaults to this machine, through node. The seam
|
|
100
|
+
* is public because "run it in a container / over ssh / under a sandbox" is
|
|
101
|
+
* a real thing to want and should not need a fork — and because it is what
|
|
102
|
+
* the tests drive.
|
|
103
|
+
*/
|
|
104
|
+
processes?: ProcessHost;
|
|
105
|
+
/** A terminal is a control the user tabs to. False for a decorative one. */
|
|
106
|
+
focusable?: boolean;
|
|
107
|
+
style?: Style | Style[];
|
|
108
|
+
ref?: Ref<TerminalHandle>;
|
|
109
|
+
'data-testname'?: string;
|
|
110
|
+
/** Default `'block'`. */
|
|
111
|
+
cursorStyle?: 'block' | 'underline' | 'bar';
|
|
112
|
+
/** Default true. */
|
|
113
|
+
cursorBlink?: boolean;
|
|
114
|
+
/** The program rang the bell. */
|
|
115
|
+
onBell?: () => void;
|
|
116
|
+
/** What the bell looks like. Default `'none'`; `'visual'` flashes the pane. */
|
|
117
|
+
bell?: 'none' | 'visual';
|
|
118
|
+
/** Honour OSC 52 clipboard *writes* — how `tmux` and `vim` copy out of an
|
|
119
|
+
* ssh session. Default true. Reads are never answered, at any setting. */
|
|
120
|
+
allowClipboardWrite?: boolean;
|
|
121
|
+
/** The user finished selecting; the text is also on PRIMARY. */
|
|
122
|
+
onSelectionChange?: (text: string) => void;
|
|
123
|
+
/**
|
|
124
|
+
* Where the pty comes from. The `processes` seam's counterpart, public for
|
|
125
|
+
* the same reason — "run the shell in a container / over ssh / under a
|
|
126
|
+
* sandbox" is a real thing to want — and what the tests drive.
|
|
127
|
+
*/
|
|
128
|
+
pty?: PtyHost;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* A terminal emulator, laid out like any other element.
|
|
132
|
+
*
|
|
133
|
+
* ```jsx
|
|
134
|
+
* <Terminal
|
|
135
|
+
* command={['bash', '-lc', 'npm test']}
|
|
136
|
+
* cwd={projectDir}
|
|
137
|
+
* style={{ flexGrow: 1 }}
|
|
138
|
+
* onExit={({ code }) => setDone(code === 0)}
|
|
139
|
+
* onTitleChange={setTabLabel}
|
|
140
|
+
* fallback={<text>Install xterm to use the console.</text>}
|
|
141
|
+
* />
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* **On an XEmbed backend the emulator's window stacks above everything drawn
|
|
145
|
+
* in this one**, the same rule `<glarea>` has, so nothing 2D can overlap it:
|
|
146
|
+
* an overlay belongs in a sibling `<popup>`. The vt backend has no child
|
|
147
|
+
* window and composites like any other node, so a `<popup>` over it works.
|
|
148
|
+
*
|
|
149
|
+
* **Keys reach the app first.** While the terminal holds focus, react-x11
|
|
150
|
+
* dispatches each key through the React tree and forwards whatever nothing
|
|
151
|
+
* called `preventDefault()` on — so an application chord still wins. The one
|
|
152
|
+
* exception is X's own rule that the pointer position picks the recipient:
|
|
153
|
+
* while the pointer is *over* an embedded emulator, keys go straight to it.
|
|
154
|
+
*
|
|
155
|
+
* **The vt backend is the floor.** With `backend="auto"` (the default), a
|
|
156
|
+
* machine with no emulator installed gets this package's own — so `fallback`
|
|
157
|
+
* renders only when the pty module or `@xterm/headless` is missing too.
|
|
158
|
+
*/
|
|
159
|
+
export declare function Terminal(props: TerminalProps): ReactElement;
|
|
160
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/terminal/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
// <Terminal> — a real terminal emulator, embedded as an element.
|
|
2
|
+
//
|
|
3
|
+
// The first of the two XEmbed wrappers (the other is `../media-player/`), and
|
|
4
|
+
// the reason `<foreign>` exists in core at all: a react-x11 app can now *host*
|
|
5
|
+
// another X client instead of only drawing its own pixels.
|
|
6
|
+
//
|
|
7
|
+
// What this component is, mechanically: a `<foreign>` with no `windowId`, so
|
|
8
|
+
// it adopts whatever is put inside it; `xterm -into $WID` spawned with the id
|
|
9
|
+
// core hands over in `onReady`; and a per-backend adapter table
|
|
10
|
+
// (`./backends.ts`) that turns one set of props into three different command
|
|
11
|
+
// lines. Layout, focus, the ICCCM configure and handing the client back on
|
|
12
|
+
// unmount are all core's — see react-x11's `foreignnodes.js`.
|
|
13
|
+
//
|
|
14
|
+
// Registers no element *itself*: `<foreign>` is a built-in, and the vt
|
|
15
|
+
// backend's `<vtterm>` is registered by `./vt/index.ts`, which is reached
|
|
16
|
+
// only through a dynamic `import()`. So this module still has **no side
|
|
17
|
+
// effect at import time at all**, and an app on an XEmbed backend never loads
|
|
18
|
+
// the emulator core.
|
|
19
|
+
//
|
|
20
|
+
// ### The second backend
|
|
21
|
+
//
|
|
22
|
+
// `backend="vt"` is the same component over a pty and `@xterm/headless`,
|
|
23
|
+
// rendered as a native element rather than as somebody else's X window. It is
|
|
24
|
+
// what makes `write()` real — the pty is ours — and what works on a machine
|
|
25
|
+
// with no emulator installed, which is why `'auto'` ends there rather than at
|
|
26
|
+
// the `fallback`.
|
|
27
|
+
//
|
|
28
|
+
// **`write()` still returns `false` on the XEmbed backends**, and that is not
|
|
29
|
+
// an oversight: the pty belongs to xterm, so "type this" would have to be
|
|
30
|
+
// synthetic X key events, which xterm ignores unless `allowSendEvents` is on
|
|
31
|
+
// (a documented security setting, off by default and not ours to change in a
|
|
32
|
+
// user's terminal) and which alacritty's event loop filters out entirely.
|
|
33
|
+
// Returning `false` rather than throwing lets an app feature-test with the
|
|
34
|
+
// call itself.
|
|
35
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
|
|
36
|
+
import { useTheme } from 'react-x11';
|
|
37
|
+
import { BackendUnavailableError, resolveBackend, useEmbeddedClient, } from '../embed/index.js';
|
|
38
|
+
import { backendsFor } from './backends.js';
|
|
39
|
+
import { useForeignTitle } from './title.js';
|
|
40
|
+
import { hx } from './hx.js';
|
|
41
|
+
export { TERMINAL_BACKENDS, alacritty, backendsFor, urxvt, xterm, } from './backends.js';
|
|
42
|
+
const h = React.createElement;
|
|
43
|
+
/** The props only the vt backend reads, for the development warning below. */
|
|
44
|
+
const VT_ONLY = [
|
|
45
|
+
'cursorStyle',
|
|
46
|
+
'cursorBlink',
|
|
47
|
+
'onBell',
|
|
48
|
+
'bell',
|
|
49
|
+
'allowClipboardWrite',
|
|
50
|
+
'onSelectionChange',
|
|
51
|
+
'pty',
|
|
52
|
+
];
|
|
53
|
+
/**
|
|
54
|
+
* Say so, once, when a vt-only prop was passed to an embedded emulator.
|
|
55
|
+
*
|
|
56
|
+
* `process` and `console` come off `globalThis` because the build compiles
|
|
57
|
+
* `src/` with `types: []` — a Node global that wanders in has to fail the
|
|
58
|
+
* build rather than become an implicit `@types/node` dependency.
|
|
59
|
+
*/
|
|
60
|
+
function warnVtOnly(props) {
|
|
61
|
+
const g = globalThis;
|
|
62
|
+
if (g.process?.env?.NODE_ENV === 'production')
|
|
63
|
+
return;
|
|
64
|
+
const named = VT_ONLY.filter((name) => props[name] !== undefined);
|
|
65
|
+
if (named.length === 0)
|
|
66
|
+
return;
|
|
67
|
+
g.console?.warn(`@react-x11/components: <Terminal ${named.join(', ')}> ` +
|
|
68
|
+
`${named.length === 1 ? 'is' : 'are'} only honoured by ` +
|
|
69
|
+
'backend="vt" — an embedded emulator owns its own cursor, bell and ' +
|
|
70
|
+
'clipboard.');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A terminal emulator, laid out like any other element.
|
|
74
|
+
*
|
|
75
|
+
* ```jsx
|
|
76
|
+
* <Terminal
|
|
77
|
+
* command={['bash', '-lc', 'npm test']}
|
|
78
|
+
* cwd={projectDir}
|
|
79
|
+
* style={{ flexGrow: 1 }}
|
|
80
|
+
* onExit={({ code }) => setDone(code === 0)}
|
|
81
|
+
* onTitleChange={setTabLabel}
|
|
82
|
+
* fallback={<text>Install xterm to use the console.</text>}
|
|
83
|
+
* />
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* **On an XEmbed backend the emulator's window stacks above everything drawn
|
|
87
|
+
* in this one**, the same rule `<glarea>` has, so nothing 2D can overlap it:
|
|
88
|
+
* an overlay belongs in a sibling `<popup>`. The vt backend has no child
|
|
89
|
+
* window and composites like any other node, so a `<popup>` over it works.
|
|
90
|
+
*
|
|
91
|
+
* **Keys reach the app first.** While the terminal holds focus, react-x11
|
|
92
|
+
* dispatches each key through the React tree and forwards whatever nothing
|
|
93
|
+
* called `preventDefault()` on — so an application chord still wins. The one
|
|
94
|
+
* exception is X's own rule that the pointer position picks the recipient:
|
|
95
|
+
* while the pointer is *over* an embedded emulator, keys go straight to it.
|
|
96
|
+
*
|
|
97
|
+
* **The vt backend is the floor.** With `backend="auto"` (the default), a
|
|
98
|
+
* machine with no emulator installed gets this package's own — so `fallback`
|
|
99
|
+
* renders only when the pty module or `@xterm/headless` is missing too.
|
|
100
|
+
*/
|
|
101
|
+
export function Terminal(props) {
|
|
102
|
+
const { backend = 'auto', enabled = true, focusable, processes, stopSignal, } = props;
|
|
103
|
+
const theme = useTheme();
|
|
104
|
+
// Everything that goes into the command line, as one string.
|
|
105
|
+
//
|
|
106
|
+
// This is the restart key, and it is a string rather than a dependency list
|
|
107
|
+
// for the reason `useDesktopCalendarEvents` keys on `from.getTime()`:
|
|
108
|
+
// `command={['bash']}` and `colors={{}}` are new identities on every paint,
|
|
109
|
+
// and an effect keyed on them would kill and respawn a terminal per frame.
|
|
110
|
+
const colors = useMemo(() => {
|
|
111
|
+
if (props.colors)
|
|
112
|
+
return props.colors;
|
|
113
|
+
return {
|
|
114
|
+
background: String(theme.background ?? '#101014'),
|
|
115
|
+
foreground: String(theme.text ?? '#e6e6e6'),
|
|
116
|
+
cursor: String(theme.accent ?? theme.text ?? '#e6e6e6'),
|
|
117
|
+
};
|
|
118
|
+
// The theme object is stable per palette in react-x11, so this recomputes
|
|
119
|
+
// when the desktop switches light/dark and not otherwise.
|
|
120
|
+
}, [props.colors, theme]);
|
|
121
|
+
const launch = useMemo(() => ({
|
|
122
|
+
command: props.command,
|
|
123
|
+
title: props.title,
|
|
124
|
+
fontFamily: props.fontFamily,
|
|
125
|
+
fontSize: props.fontSize,
|
|
126
|
+
scrollback: props.scrollback,
|
|
127
|
+
colors,
|
|
128
|
+
}), [
|
|
129
|
+
props.command,
|
|
130
|
+
props.title,
|
|
131
|
+
props.fontFamily,
|
|
132
|
+
props.fontSize,
|
|
133
|
+
props.scrollback,
|
|
134
|
+
colors,
|
|
135
|
+
]);
|
|
136
|
+
const key = useMemo(() => JSON.stringify([
|
|
137
|
+
backend,
|
|
138
|
+
launch.command ?? null,
|
|
139
|
+
props.cwd ?? null,
|
|
140
|
+
props.env ?? null,
|
|
141
|
+
launch.title ?? null,
|
|
142
|
+
launch.fontFamily ?? null,
|
|
143
|
+
launch.fontSize ?? null,
|
|
144
|
+
launch.scrollback ?? null,
|
|
145
|
+
colors,
|
|
146
|
+
]), [backend, launch, props.cwd, props.env, colors]);
|
|
147
|
+
// Read through a ref so the factory's identity — the restart signal — is
|
|
148
|
+
// the key and nothing else. Without this an `env={{ TERM: 'xterm-256color' }}`
|
|
149
|
+
// literal would restart the terminal on every render.
|
|
150
|
+
const latest = React.useRef({ launch, cwd: props.cwd, env: props.env });
|
|
151
|
+
latest.current = { launch, cwd: props.cwd, env: props.env };
|
|
152
|
+
const plan = useMemo(() => async ({ windowId, host }) => {
|
|
153
|
+
const candidates = backendsFor(backend);
|
|
154
|
+
if (candidates.length === 0) {
|
|
155
|
+
throw new BackendUnavailableError('terminal', [backend]);
|
|
156
|
+
}
|
|
157
|
+
const chosen = await resolveBackend(host, 'terminal', candidates);
|
|
158
|
+
const current = latest.current;
|
|
159
|
+
return {
|
|
160
|
+
command: chosen.path,
|
|
161
|
+
args: chosen.backend.args({ ...current.launch, windowId }),
|
|
162
|
+
cwd: current.cwd,
|
|
163
|
+
env: current.env,
|
|
164
|
+
backend: chosen.backend.name,
|
|
165
|
+
};
|
|
166
|
+
},
|
|
167
|
+
// `key` is the whole dependency: it is the serialization of everything
|
|
168
|
+
// `latest.current` is read for.
|
|
169
|
+
[backend, key]);
|
|
170
|
+
// --- which half of the component is running ------------------------------
|
|
171
|
+
//
|
|
172
|
+
// `'vt'` asks for it outright; `'auto'` arrives here only after the PATH
|
|
173
|
+
// probe found no emulator, which is what makes vt the floor rather than a
|
|
174
|
+
// parallel option. Both halves' hooks run unconditionally — the one that is
|
|
175
|
+
// not in use is simply disabled — because that is what hooks require and
|
|
176
|
+
// because a `<Terminal>` that flips backends must not remount the other one.
|
|
177
|
+
const [vtFallback, setVtFallback] = useState(false);
|
|
178
|
+
const vt = backend === 'vt' || (backend === 'auto' && vtFallback);
|
|
179
|
+
useEffect(() => {
|
|
180
|
+
if (backend !== 'auto')
|
|
181
|
+
setVtFallback(false);
|
|
182
|
+
}, [backend]);
|
|
183
|
+
const client = useEmbeddedClient({
|
|
184
|
+
plan,
|
|
185
|
+
host: processes,
|
|
186
|
+
enabled: enabled && !vt,
|
|
187
|
+
stopSignal,
|
|
188
|
+
onExit: props.onExit,
|
|
189
|
+
onError: props.onError,
|
|
190
|
+
});
|
|
191
|
+
useEffect(() => {
|
|
192
|
+
if (backend === 'auto' && client.status === 'unavailable') {
|
|
193
|
+
setVtFallback(true);
|
|
194
|
+
}
|
|
195
|
+
}, [backend, client.status]);
|
|
196
|
+
// Not `vt`, because `'auto'` may still land there: what is worth a warning
|
|
197
|
+
// is a backend that was *named* and cannot honour the prop.
|
|
198
|
+
useEffect(() => {
|
|
199
|
+
if (backend !== 'auto' && backend !== 'vt')
|
|
200
|
+
warnVtOnly(props);
|
|
201
|
+
// Once per backend change, not once per render — the props object is a
|
|
202
|
+
// new identity every time and this is a diagnostic, not a subscription.
|
|
203
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
204
|
+
}, [backend]);
|
|
205
|
+
const title = useForeignTitle(props.onTitleChange);
|
|
206
|
+
// The vt module is loaded on demand and never at import time: this is the
|
|
207
|
+
// whole tree-shaking bargain — `@xterm/headless` and the renderer are a
|
|
208
|
+
// separate chunk that an XEmbed app never fetches.
|
|
209
|
+
const [vtModule, setVtModule] = useState(null);
|
|
210
|
+
const [vtStatus, setVtStatus] = useState('idle');
|
|
211
|
+
const onErrorRef = useRef(props.onError);
|
|
212
|
+
onErrorRef.current = props.onError;
|
|
213
|
+
useEffect(() => {
|
|
214
|
+
if (!vt || vtModule)
|
|
215
|
+
return undefined;
|
|
216
|
+
let live = true;
|
|
217
|
+
void import('./vt/index.js')
|
|
218
|
+
.then((mod) => {
|
|
219
|
+
if (live)
|
|
220
|
+
setVtModule(mod);
|
|
221
|
+
})
|
|
222
|
+
.catch((err) => {
|
|
223
|
+
if (!live)
|
|
224
|
+
return;
|
|
225
|
+
setVtStatus('unavailable');
|
|
226
|
+
onErrorRef.current?.(err instanceof Error ? err : new Error(String(err)));
|
|
227
|
+
});
|
|
228
|
+
return () => {
|
|
229
|
+
live = false;
|
|
230
|
+
};
|
|
231
|
+
}, [vt, vtModule]);
|
|
232
|
+
const vtHandle = useRef(null);
|
|
233
|
+
const onVtStatus = useCallback((next) => setVtStatus(next), []);
|
|
234
|
+
React.useImperativeHandle(props.ref, () => ({
|
|
235
|
+
restart: () => (vt ? vtHandle.current?.restart() : client.restart()),
|
|
236
|
+
signal: (signal) => vt
|
|
237
|
+
? (vtHandle.current?.signal(signal) ?? false)
|
|
238
|
+
: client.signal(signal),
|
|
239
|
+
write: (data) => vtHandle.current?.write(data) ?? false,
|
|
240
|
+
resizeToFit: () => vtHandle.current?.resizeToFit(),
|
|
241
|
+
selection: () => vtHandle.current?.selection() ?? null,
|
|
242
|
+
clearSelection: () => vtHandle.current?.clearSelection(),
|
|
243
|
+
scrollToBottom: () => vtHandle.current?.scrollToBottom(),
|
|
244
|
+
scrollLines: (n) => vtHandle.current?.scrollLines(n),
|
|
245
|
+
serialize: () => vtHandle.current?.serialize() ?? null,
|
|
246
|
+
get pid() {
|
|
247
|
+
return vt ? (vtHandle.current?.pid ?? null) : client.pid;
|
|
248
|
+
},
|
|
249
|
+
get windowId() {
|
|
250
|
+
// The vt backend draws into this window; there is no child to name.
|
|
251
|
+
return vt ? null : client.windowId;
|
|
252
|
+
},
|
|
253
|
+
get backend() {
|
|
254
|
+
return vt ? 'vt' : client.backend;
|
|
255
|
+
},
|
|
256
|
+
get status() {
|
|
257
|
+
return vt ? vtStatus : client.status;
|
|
258
|
+
},
|
|
259
|
+
get cols() {
|
|
260
|
+
return vtHandle.current?.cols ?? null;
|
|
261
|
+
},
|
|
262
|
+
get rows() {
|
|
263
|
+
return vtHandle.current?.rows ?? null;
|
|
264
|
+
},
|
|
265
|
+
}), [client, vt, vtStatus]);
|
|
266
|
+
const style = {
|
|
267
|
+
flexGrow: 1,
|
|
268
|
+
// What the container shows before the emulator's window covers it, and
|
|
269
|
+
// between an exit and a restart. `<foreign>` reads it off the ordinary
|
|
270
|
+
// `backgroundColor` rather than a prop of its own.
|
|
271
|
+
backgroundColor: colors.background ?? String(theme.background ?? '#101014'),
|
|
272
|
+
};
|
|
273
|
+
const styles = [style];
|
|
274
|
+
if (props.style) {
|
|
275
|
+
for (const extra of Array.isArray(props.style)
|
|
276
|
+
? props.style
|
|
277
|
+
: [props.style]) {
|
|
278
|
+
styles.push(extra);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
if (vt) {
|
|
282
|
+
// Nothing installed *at all* — no emulator, and no pty module or no
|
|
283
|
+
// `@xterm/headless` either — is still an ordinary state of a healthy
|
|
284
|
+
// machine, and still a status plus a fallback rather than a throw.
|
|
285
|
+
if (vtStatus === 'unavailable' && props.fallback !== undefined) {
|
|
286
|
+
return h(React.Fragment, null, props.fallback);
|
|
287
|
+
}
|
|
288
|
+
if (!vtModule) {
|
|
289
|
+
// The dynamic import is in flight. An empty box in the terminal's own
|
|
290
|
+
// background holds the layout, so the pane does not jump when it lands.
|
|
291
|
+
return hx('box', { style: styles });
|
|
292
|
+
}
|
|
293
|
+
const vtProps = {
|
|
294
|
+
command: props.command,
|
|
295
|
+
cwd: props.cwd,
|
|
296
|
+
env: props.env,
|
|
297
|
+
colors,
|
|
298
|
+
fontFamily: props.fontFamily,
|
|
299
|
+
fontSize: props.fontSize,
|
|
300
|
+
scrollback: props.scrollback,
|
|
301
|
+
cursorStyle: props.cursorStyle,
|
|
302
|
+
cursorBlink: props.cursorBlink,
|
|
303
|
+
bell: props.bell,
|
|
304
|
+
onBell: props.onBell,
|
|
305
|
+
allowClipboardWrite: props.allowClipboardWrite,
|
|
306
|
+
onSelectionChange: props.onSelectionChange,
|
|
307
|
+
pty: props.pty,
|
|
308
|
+
enabled,
|
|
309
|
+
stopSignal,
|
|
310
|
+
focusable: focusable ?? true,
|
|
311
|
+
onExit: props.onExit,
|
|
312
|
+
onTitleChange: props.onTitleChange,
|
|
313
|
+
onError: props.onError,
|
|
314
|
+
onStatus: onVtStatus,
|
|
315
|
+
style: styles,
|
|
316
|
+
ref: vtHandle,
|
|
317
|
+
'data-testname': props['data-testname'],
|
|
318
|
+
};
|
|
319
|
+
return h(vtModule.VtTerminal, vtProps);
|
|
320
|
+
}
|
|
321
|
+
// No backend installed is an ordinary state of a perfectly healthy machine,
|
|
322
|
+
// not an error to report — the same call `useDesktopCalendarEvents` makes
|
|
323
|
+
// about a desktop with no Evolution Data Server.
|
|
324
|
+
if (client.status === 'unavailable' && props.fallback !== undefined) {
|
|
325
|
+
return h(React.Fragment, null, props.fallback);
|
|
326
|
+
}
|
|
327
|
+
const foreign = {
|
|
328
|
+
onReady: client.handleReady,
|
|
329
|
+
onEmbedded: title.onEmbedded,
|
|
330
|
+
onClientGone: title.onClientGone,
|
|
331
|
+
focusable: focusable ?? true,
|
|
332
|
+
'aria-label': 'Terminal',
|
|
333
|
+
style: styles,
|
|
334
|
+
};
|
|
335
|
+
// `data-testname` is a runtime convention — react-x11's queries read it off
|
|
336
|
+
// `props` — and its element declarations do not carry it. Attached past the
|
|
337
|
+
// type here so the rest of the object above is still checked against
|
|
338
|
+
// `<foreign>`, which is the whole reason `hx` exists.
|
|
339
|
+
return hx('foreign', {
|
|
340
|
+
...foreign,
|
|
341
|
+
'data-testname': props['data-testname'],
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/terminal/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface ForeignTitleHandlers {
|
|
2
|
+
onEmbedded: (info: {
|
|
3
|
+
id: number;
|
|
4
|
+
}) => void;
|
|
5
|
+
onClientGone: () => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Watch the embedded client's title.
|
|
9
|
+
*
|
|
10
|
+
* Returns the two `<foreign>` handlers to spread, which is why this is a hook
|
|
11
|
+
* and not an effect the component writes itself: the client id exists only
|
|
12
|
+
* between `onEmbedded` and `onClientGone`, and both of those are props the
|
|
13
|
+
* component also wants to forward to its own caller.
|
|
14
|
+
*
|
|
15
|
+
* ```js
|
|
16
|
+
* const title = useForeignTitle(props.onTitleChange);
|
|
17
|
+
* <foreign onEmbedded={title.onEmbedded} onClientGone={title.onClientGone} />
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* With no `onTitleChange` nothing is read at all — no atoms interned, no round
|
|
21
|
+
* trip — because most terminals in most apps are not labelled.
|
|
22
|
+
*/
|
|
23
|
+
export declare function useForeignTitle(onTitleChange?: (title: string) => void): ForeignTitleHandlers;
|
|
24
|
+
//# sourceMappingURL=title.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../../src/terminal/title.ts"],"names":[],"mappings":"AAwEA,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACtC,oBAAoB,CA4EtB"}
|