@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,92 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
import type { DrawnNode, MouseEvent as X11MouseEvent } from 'react-x11';
|
|
3
|
+
import type { Style } from 'react-x11/style';
|
|
4
|
+
import type { AnsiDocument, AnsiInput, AnsiPaletteOptions } from '../ansi/index.js';
|
|
5
|
+
/** What `data` accepts on top of raw bytes: a document parsed elsewhere. */
|
|
6
|
+
export type TerminalOutputSource = AnsiInput | AnsiDocument;
|
|
7
|
+
export interface TerminalOutputProps {
|
|
8
|
+
/**
|
|
9
|
+
* The capture.
|
|
10
|
+
*
|
|
11
|
+
* **Bytes are preferred over a string.** A `.toString()` on whatever
|
|
12
|
+
* boundary a reader chose cuts a multi-byte character in half, and no care
|
|
13
|
+
* downstream repairs it — the same rule `PtyHost.onData` carries for the
|
|
14
|
+
* live terminal. A `Uint8Array` (a node `Buffer` is one) is decoded across
|
|
15
|
+
* chunk boundaries, so passing an array of them is safe.
|
|
16
|
+
*
|
|
17
|
+
* An **array** is also the incremental path: when it grows and its existing
|
|
18
|
+
* elements keep their identity, only the new ones are parsed. A growing
|
|
19
|
+
* *string* is handled too, by prefix, which is cheaper than re-parsing but
|
|
20
|
+
* not free — push chunks into an array for a live tail.
|
|
21
|
+
*
|
|
22
|
+
* An `AnsiDocument` is taken as-is, for an app that parsed off the render
|
|
23
|
+
* path or is scrubbing a recording.
|
|
24
|
+
*/
|
|
25
|
+
data: TerminalOutputSource;
|
|
26
|
+
/**
|
|
27
|
+
* Which renderer. `'auto'` (the default) and `'flow'` are the same today:
|
|
28
|
+
* the capture is rendered as a document of styled spans.
|
|
29
|
+
*
|
|
30
|
+
* `'screen'` — a real cell grid, for a capture that addressed the cursor —
|
|
31
|
+
* joins this union in phase 2, at which point `'auto'` starts following the
|
|
32
|
+
* bytes. Pin `'flow'` if a log should stay a document whatever it contains.
|
|
33
|
+
*/
|
|
34
|
+
mode?: 'auto' | 'flow';
|
|
35
|
+
/**
|
|
36
|
+
* The palette. `<Terminal>`'s `colors` minus `cursor`, which a static
|
|
37
|
+
* render has no use for — the same object works for both.
|
|
38
|
+
*
|
|
39
|
+
* By default the ink is the theme's text colour and the block wears the
|
|
40
|
+
* same faint tint a `<Code>` block does, so a log sits in a page rather
|
|
41
|
+
* than punching a dark rectangle into it. Pass `background` and
|
|
42
|
+
* `foreground` to get a terminal pane instead.
|
|
43
|
+
*/
|
|
44
|
+
colors?: AnsiPaletteOptions;
|
|
45
|
+
/** Default 8, the terminal's. */
|
|
46
|
+
tabWidth?: number;
|
|
47
|
+
/** Keep only the last N lines. Unbounded by default: the app read the
|
|
48
|
+
* file, so the app decided how big it is. */
|
|
49
|
+
maxLines?: number;
|
|
50
|
+
/** Wrap long lines instead of scrolling horizontally. Default false —
|
|
51
|
+
* a terminal's lines are the length they are. */
|
|
52
|
+
wrap?: boolean;
|
|
53
|
+
/** A line-number gutter. Numbers are not part of the selection, so a
|
|
54
|
+
* copied log pastes clean. Ignored when `wrap` is on, for the reason
|
|
55
|
+
* `<Code>` ignores it: a wrapped line puts the numbering out of register. */
|
|
56
|
+
lineNumbers?: boolean;
|
|
57
|
+
/** Mouse selection, Ctrl+A / Ctrl+C, PRIMARY. Default true. */
|
|
58
|
+
selectable?: boolean;
|
|
59
|
+
/** Selection band fill. Default: the theme accent at 35% opacity. */
|
|
60
|
+
selectionColor?: string;
|
|
61
|
+
/** Default: 0.9 × the theme `fontSize`, matching `<Code>` and
|
|
62
|
+
* `<Markdown>`'s fenced blocks. */
|
|
63
|
+
fontSize?: number;
|
|
64
|
+
/** Default `'monospace'` — there is no theme token for it, and a capture
|
|
65
|
+
* was made in a monospace font whatever the app is set in. */
|
|
66
|
+
monoFamily?: string;
|
|
67
|
+
/** An OSC 8 hyperlink was clicked. Without a handler the link text is
|
|
68
|
+
* styled and inert; this component never opens anything by itself. */
|
|
69
|
+
onLink?: (href: string, ev: X11MouseEvent<DrawnNode>) => void;
|
|
70
|
+
/**
|
|
71
|
+
* The parse, whenever it changes.
|
|
72
|
+
*
|
|
73
|
+
* This is where a capture reports what it could not say in a document:
|
|
74
|
+
* `needsScreen` is true when the bytes addressed the cursor, entered the
|
|
75
|
+
* alternate screen or scrolled a region, and `dropped` names every sequence
|
|
76
|
+
* that went unhonoured with a count. `title` is the OSC 0/2 title, which is
|
|
77
|
+
* usually what a tab should be called.
|
|
78
|
+
*/
|
|
79
|
+
onDocument?: (document: AnsiDocument) => void;
|
|
80
|
+
/** The root `<box>`'s style — width, margins, `flexGrow`. */
|
|
81
|
+
style?: Style | Style[];
|
|
82
|
+
'data-testname'?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A captured terminal session.
|
|
86
|
+
*
|
|
87
|
+
* ```jsx
|
|
88
|
+
* <TerminalOutput data={log} lineNumbers />
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export declare function TerminalOutput(props: TerminalOutputProps): ReactElement;
|
|
92
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/terminal-output/index.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAsB1B,4EAA4E;AAC5E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,YAAY,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAC3B;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;kDAC8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;sDACkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;kFAE8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;wCACoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;mEAC+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;2EACuE;IACvE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC9D;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAsED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CA8HvE"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
// <TerminalOutput> — a captured terminal session, rendered.
|
|
2
|
+
//
|
|
3
|
+
// The static, read-only sibling of `<Terminal>`, exactly as `<Code>` is the
|
|
4
|
+
// static sibling of `<CodeEditor>`: bytes a program wrote to a pty go in, and
|
|
5
|
+
// what the terminal would have drawn comes out. No pty, no process, no input,
|
|
6
|
+
// no `write()` — there is nothing on the other end to write to.
|
|
7
|
+
//
|
|
8
|
+
// The composition is `<Code>`'s: one `<richtext>` for the whole capture in a
|
|
9
|
+
// horizontally scrolling viewport, plus an optional line-number gutter, all
|
|
10
|
+
// inside a `selectable` root. Selection, copy, Ctrl+A and PRIMARY are core's
|
|
11
|
+
// since react-x11#291; what is left here is saying which parts are chrome, so
|
|
12
|
+
// the gutter is `selectable={false}` and a copied log carries no numbering.
|
|
13
|
+
//
|
|
14
|
+
// Registers no element of its own — `<richtext>` is the shared module's, and
|
|
15
|
+
// this calls `registerRichText()` at module scope the way every component
|
|
16
|
+
// that draws one does.
|
|
17
|
+
//
|
|
18
|
+
// **Why a log is a document rather than a grid** is the design decision
|
|
19
|
+
// behind the whole thing, and it is in `docs/prd-terminal-output.md` along
|
|
20
|
+
// with what this model can and cannot represent. The short version: a build
|
|
21
|
+
// log has lines, not rows, and no column count of its own, so rendering it on
|
|
22
|
+
// a grid means inventing a `cols` the capture never had and then wrapping at
|
|
23
|
+
// it. A capture that genuinely wanted a screen says so — `needsScreen` on the
|
|
24
|
+
// document `onDocument` hands over — and rendering *that* is phase 2.
|
|
25
|
+
import React from 'react';
|
|
26
|
+
import { useTheme } from 'react-x11';
|
|
27
|
+
import { ansiPalette, parseAnsi } from '../ansi/index.js';
|
|
28
|
+
import { registerRichText, RICHTEXT_ELEMENT, useLinkClicks, useSelectionMenu, } from '../richtext/index.js';
|
|
29
|
+
import { codeBlockLook, codeBlockStyle, codeTextStyle, } from '../codeblock/index.js';
|
|
30
|
+
import { documentRuns } from './runs.js';
|
|
31
|
+
import { hx } from './hx.js';
|
|
32
|
+
const h = React.createElement;
|
|
33
|
+
// The shared-module registration, at this component's own module scope — see
|
|
34
|
+
// the note in `../richtext/node.ts`.
|
|
35
|
+
registerRichText();
|
|
36
|
+
function isDocument(source) {
|
|
37
|
+
return (typeof source === 'object' &&
|
|
38
|
+
source !== null &&
|
|
39
|
+
!(source instanceof Uint8Array) &&
|
|
40
|
+
!Array.isArray(source) &&
|
|
41
|
+
'lines' in source);
|
|
42
|
+
}
|
|
43
|
+
/** How far into a new value the append check will look before giving up and
|
|
44
|
+
* re-parsing. A prefix compare is a memcmp and a parse is not, but neither
|
|
45
|
+
* is free, and past this the array form is the answer. */
|
|
46
|
+
const MAX_PREFIX_SCAN = 8 * 1024 * 1024;
|
|
47
|
+
/**
|
|
48
|
+
* Parse `data`, continuing the previous parse where the new value extends it.
|
|
49
|
+
*
|
|
50
|
+
* The two extendable shapes are the two ways a capture grows: an array whose
|
|
51
|
+
* earlier chunks kept their identity, and a string the app appended to. Both
|
|
52
|
+
* resume from the held reducer state, so a partial escape sequence or a
|
|
53
|
+
* half-arrived UTF-8 character at the boundary is carried rather than mangled
|
|
54
|
+
* — the same rule `<Markdown>` follows for an unterminated tail.
|
|
55
|
+
*/
|
|
56
|
+
function parseIncremental(data, previous, options) {
|
|
57
|
+
if (isDocument(data))
|
|
58
|
+
return data;
|
|
59
|
+
const before = previous?.source;
|
|
60
|
+
if (Array.isArray(data) &&
|
|
61
|
+
Array.isArray(before) &&
|
|
62
|
+
before.length < data.length) {
|
|
63
|
+
let shared = true;
|
|
64
|
+
for (let i = 0; i < before.length; i++) {
|
|
65
|
+
if (before[i] !== data[i]) {
|
|
66
|
+
shared = false;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (shared) {
|
|
71
|
+
return parseAnsi(data.slice(before.length), { from: previous.document });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (typeof data === 'string' &&
|
|
75
|
+
typeof before === 'string' &&
|
|
76
|
+
before.length > 0 &&
|
|
77
|
+
before.length < data.length &&
|
|
78
|
+
before.length <= MAX_PREFIX_SCAN &&
|
|
79
|
+
data.startsWith(before)) {
|
|
80
|
+
return parseAnsi(data.slice(before.length), { from: previous.document });
|
|
81
|
+
}
|
|
82
|
+
return parseAnsi(data, options);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A captured terminal session.
|
|
86
|
+
*
|
|
87
|
+
* ```jsx
|
|
88
|
+
* <TerminalOutput data={log} lineNumbers />
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export function TerminalOutput(props) {
|
|
92
|
+
const { data, colors, tabWidth, maxLines, wrap = false, selectable = true, selectionColor, onDocument, } = props;
|
|
93
|
+
const lineNumbers = (props.lineNumbers ?? false) && !wrap;
|
|
94
|
+
// `Theme` is an interface, so it has no implicit index signature — the same
|
|
95
|
+
// widening `hx.ts` documents for the `theme` prop.
|
|
96
|
+
const theme = useTheme();
|
|
97
|
+
const menu = useSelectionMenu(selectable);
|
|
98
|
+
const links = useLinkClicks(props.onLink);
|
|
99
|
+
const cache = React.useRef(null);
|
|
100
|
+
const document = React.useMemo(() => {
|
|
101
|
+
const parsed = parseIncremental(data, cache.current, {
|
|
102
|
+
tabWidth,
|
|
103
|
+
maxLines,
|
|
104
|
+
});
|
|
105
|
+
cache.current = { source: data, document: parsed };
|
|
106
|
+
return parsed;
|
|
107
|
+
}, [data, tabWidth, maxLines]);
|
|
108
|
+
// Reported off the render, and only when it changed: `dropped` and
|
|
109
|
+
// `needsScreen` are what an app builds a "this recording wanted a screen"
|
|
110
|
+
// notice out of, and a notice that re-fires every paint is a notice
|
|
111
|
+
// nobody keeps.
|
|
112
|
+
const report = React.useRef(onDocument);
|
|
113
|
+
report.current = onDocument;
|
|
114
|
+
React.useEffect(() => {
|
|
115
|
+
report.current?.(document);
|
|
116
|
+
}, [document]);
|
|
117
|
+
const look = React.useMemo(() => codeBlockLook(theme, {
|
|
118
|
+
fontSize: props.fontSize,
|
|
119
|
+
monoFamily: props.monoFamily,
|
|
120
|
+
}), [theme, props.fontSize, props.monoFamily]);
|
|
121
|
+
// The colour maths (dim, inverse, conceal) resolves against the *page*
|
|
122
|
+
// rather than against the block's tint: the tint is translucent, and an
|
|
123
|
+
// inverted run should read as a hole in the page, which is what it is.
|
|
124
|
+
const palette = React.useMemo(() => ansiPalette({
|
|
125
|
+
...colors,
|
|
126
|
+
foreground: colors?.foreground ?? look.color,
|
|
127
|
+
background: colors?.background ?? String(theme.background ?? '#ffffff'),
|
|
128
|
+
}), [colors, look.color, theme.background]);
|
|
129
|
+
const runs = React.useMemo(() => documentRuns(document, { family: look.family, size: look.size }, palette), [document, look.family, look.size, palette]);
|
|
130
|
+
const outputProps = { runs, style: codeTextStyle(look) };
|
|
131
|
+
if (!wrap)
|
|
132
|
+
outputProps.wrap = false;
|
|
133
|
+
const lineCount = document.lines.length;
|
|
134
|
+
const gutter = lineNumbers
|
|
135
|
+
? h(RICHTEXT_ELEMENT, {
|
|
136
|
+
// One richtext for all the numbers: same font, same line height, so
|
|
137
|
+
// it stays in register with the output beside it. `selectable={false}`
|
|
138
|
+
// is what keeps it out of a drag and out of the copied text.
|
|
139
|
+
selectable: false,
|
|
140
|
+
runs: Array.from({ length: lineCount }, (_, i) => ({
|
|
141
|
+
text: i === lineCount - 1 ? `${i + 1}` : `${i + 1}\n`,
|
|
142
|
+
family: look.family,
|
|
143
|
+
size: look.size,
|
|
144
|
+
color: look.dim,
|
|
145
|
+
})),
|
|
146
|
+
wrap: false,
|
|
147
|
+
style: {
|
|
148
|
+
lineHeight: look.lineHeight,
|
|
149
|
+
textAlign: 'right',
|
|
150
|
+
minWidth: Math.max(String(lineCount).length, 2) * Math.ceil(look.size * 0.62),
|
|
151
|
+
marginRight: look.padding,
|
|
152
|
+
flexShrink: 0,
|
|
153
|
+
},
|
|
154
|
+
})
|
|
155
|
+
: null;
|
|
156
|
+
const rootStyle = {
|
|
157
|
+
...codeBlockStyle(look),
|
|
158
|
+
...(colors?.background ? { backgroundColor: colors.background } : null),
|
|
159
|
+
flexDirection: 'row',
|
|
160
|
+
alignItems: 'stretch',
|
|
161
|
+
};
|
|
162
|
+
return hx('box', {
|
|
163
|
+
style: props.style
|
|
164
|
+
? [
|
|
165
|
+
rootStyle,
|
|
166
|
+
...(Array.isArray(props.style) ? props.style : [props.style]),
|
|
167
|
+
]
|
|
168
|
+
: rootStyle,
|
|
169
|
+
// The whole feature: a drag selects across everything below, a double
|
|
170
|
+
// click takes a word, Ctrl+C copies, PRIMARY follows the release.
|
|
171
|
+
selectable,
|
|
172
|
+
selectionColor,
|
|
173
|
+
'aria-label': 'Terminal output',
|
|
174
|
+
...menu,
|
|
175
|
+
...links,
|
|
176
|
+
'data-testname': props['data-testname'],
|
|
177
|
+
}, gutter, hx('box', { style: { overflow: 'scroll', flexDirection: 'column', flexGrow: 1 } }, h(RICHTEXT_ELEMENT, outputProps)));
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/terminal-output/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AnsiDocument, AnsiPalette, AnsiSpan } from '../ansi/index.js';
|
|
2
|
+
import type { TextRun } from '../richtext/index.js';
|
|
3
|
+
/** The font a capture is set in. The palette is separate because it changes
|
|
4
|
+
* for a different reason — a theme flip rather than a size prop. */
|
|
5
|
+
export interface OutputFont {
|
|
6
|
+
family: string;
|
|
7
|
+
size: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* One span as one run.
|
|
11
|
+
*
|
|
12
|
+
* `bgFill: 'line'` is the whole reason `../richtext/` grew the field: a
|
|
13
|
+
* terminal's backgrounds have to abut exactly and fill the row, where an
|
|
14
|
+
* inline-code chip is inset and padded. Adjacent runs with the chip fill
|
|
15
|
+
* overlap by two pixels each side, which paints over the neighbour.
|
|
16
|
+
*/
|
|
17
|
+
export declare function spanRun(span: AnsiSpan, font: OutputFont, palette: AnsiPalette): TextRun;
|
|
18
|
+
/**
|
|
19
|
+
* The whole document as runs, which concatenate to exactly its text.
|
|
20
|
+
*
|
|
21
|
+
* The newline between two lines is a run of its own rather than the tail of
|
|
22
|
+
* the line before it: a line that ends in a coloured background would
|
|
23
|
+
* otherwise paint that colour across the line break, which is a stripe the
|
|
24
|
+
* terminal never drew.
|
|
25
|
+
*/
|
|
26
|
+
export declare function documentRuns(document: AnsiDocument, font: OutputFont, palette: AnsiPalette): TextRun[];
|
|
27
|
+
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/terminal-output/runs.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;qEACqE;AACrE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAuBT;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,EAAE,CAYX"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// A parsed capture, as `<richtext>` runs. Pure — no React, no theme lookup,
|
|
2
|
+
// no element — so what a span becomes is asserted directly.
|
|
3
|
+
//
|
|
4
|
+
// This is the second half of the "colour is intent, not pixels" split: the
|
|
5
|
+
// parser said "ANSI 2", `../ansi/palette.ts` said which pixels that is, and
|
|
6
|
+
// here it becomes a run the text layout can take.
|
|
7
|
+
import { resolveAnsiColors } from '../ansi/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* One span as one run.
|
|
10
|
+
*
|
|
11
|
+
* `bgFill: 'line'` is the whole reason `../richtext/` grew the field: a
|
|
12
|
+
* terminal's backgrounds have to abut exactly and fill the row, where an
|
|
13
|
+
* inline-code chip is inset and padded. Adjacent runs with the chip fill
|
|
14
|
+
* overlap by two pixels each side, which paints over the neighbour.
|
|
15
|
+
*/
|
|
16
|
+
export function spanRun(span, font, palette) {
|
|
17
|
+
const { fg, bg } = resolveAnsiColors(span, palette);
|
|
18
|
+
const run = {
|
|
19
|
+
text: span.text,
|
|
20
|
+
family: font.family,
|
|
21
|
+
size: font.size,
|
|
22
|
+
color: fg,
|
|
23
|
+
};
|
|
24
|
+
if (bg !== undefined) {
|
|
25
|
+
run.bg = bg;
|
|
26
|
+
run.bgFill = 'line';
|
|
27
|
+
}
|
|
28
|
+
if (span.bold)
|
|
29
|
+
run.weight = 'bold';
|
|
30
|
+
if (span.italic)
|
|
31
|
+
run.style = 'italic';
|
|
32
|
+
if (span.underline) {
|
|
33
|
+
run.underline = span.underlineColor
|
|
34
|
+
? resolveAnsiColors({ fg: span.underlineColor }, palette).fg
|
|
35
|
+
: fg;
|
|
36
|
+
run.underlineStyle = span.underline;
|
|
37
|
+
}
|
|
38
|
+
if (span.strike)
|
|
39
|
+
run.strike = fg;
|
|
40
|
+
if (span.href)
|
|
41
|
+
run.href = span.href;
|
|
42
|
+
return run;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The whole document as runs, which concatenate to exactly its text.
|
|
46
|
+
*
|
|
47
|
+
* The newline between two lines is a run of its own rather than the tail of
|
|
48
|
+
* the line before it: a line that ends in a coloured background would
|
|
49
|
+
* otherwise paint that colour across the line break, which is a stripe the
|
|
50
|
+
* terminal never drew.
|
|
51
|
+
*/
|
|
52
|
+
export function documentRuns(document, font, palette) {
|
|
53
|
+
const runs = [];
|
|
54
|
+
const { lines } = document;
|
|
55
|
+
for (let i = 0; i < lines.length; i++) {
|
|
56
|
+
for (const span of lines[i].spans) {
|
|
57
|
+
if (span.text)
|
|
58
|
+
runs.push(spanRun(span, font, palette));
|
|
59
|
+
}
|
|
60
|
+
if (i < lines.length - 1) {
|
|
61
|
+
runs.push({ text: '\n', family: font.family, size: font.size });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return runs;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=runs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/terminal-output/runs.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4DAA4D;AAC5D,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,kDAAkD;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAWrD;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,IAAc,EACd,IAAgB,EAChB,OAAoB;IAEpB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,EAAE;KACV,CAAC;IACF,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACZ,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,CAAC,IAAI;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM;QAAE,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;IACtC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc;YACjC,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM;QAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IACjC,IAAI,IAAI,CAAC,IAAI;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAsB,EACtB,IAAgB,EAChB,OAAoB;IAEpB,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ReactX11Elements } from 'react-x11';
|
|
3
|
+
import type { RootState } from './store.js';
|
|
4
|
+
import { type ThreeEvent } from './events.js';
|
|
5
|
+
type GlAreaProps = ReactX11Elements['glarea'];
|
|
6
|
+
export interface CanvasProps {
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
/** Layout, as any drawn element takes it. */
|
|
9
|
+
style?: GlAreaProps['style'];
|
|
10
|
+
/**
|
|
11
|
+
* Partial settings for the default camera, r3f-shaped:
|
|
12
|
+
* `{ position: [3, 3, 6], fov: 50, near, far, zoom, up, target }`.
|
|
13
|
+
* A `<perspectiveCamera makeDefault>` in the scene replaces it wholesale.
|
|
14
|
+
*/
|
|
15
|
+
camera?: Record<string, unknown>;
|
|
16
|
+
/** An orthographic default camera instead of the perspective one. */
|
|
17
|
+
orthographic?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* `'demand'` (the default): render when something changed — a commit, a
|
|
20
|
+
* resize, an expose, or `invalidate()`. Subscribing to `useFrame` makes
|
|
21
|
+
* the surface animate, so ported r3f components move without asking.
|
|
22
|
+
* `'always'` runs the clock continuously; `'never'` renders only on
|
|
23
|
+
* `invalidate()`. (r3f defaults to `'always'`; a desktop toolkit is the
|
|
24
|
+
* one place that default wastes a battery, so it is opt-in here.)
|
|
25
|
+
*/
|
|
26
|
+
frameloop?: 'always' | 'demand' | 'never';
|
|
27
|
+
/** CSS colour or `[r, g, b, a]` floats (default black). A
|
|
28
|
+
* `<color attach="background" />` in the scene wins over this. */
|
|
29
|
+
clearColor?: GlAreaProps['clearColor'];
|
|
30
|
+
/** Visual spec for the GL window, e.g. `{ DEPTH_SIZE: 24 }`. */
|
|
31
|
+
glx?: GlAreaProps['glx'];
|
|
32
|
+
/** Shown in place of the surface when this connection has no GL at all —
|
|
33
|
+
* an element, or a function of the error (whose `code` says why). */
|
|
34
|
+
fallback?: ReactNode | ((error: Error) => ReactNode);
|
|
35
|
+
/** Runs once the context exists, with the full root state. */
|
|
36
|
+
onCreated?: (state: RootState) => void;
|
|
37
|
+
/** A press that hit no object. */
|
|
38
|
+
onPointerMissed?: (event: ThreeEvent) => void;
|
|
39
|
+
onError?: (error: Error) => void;
|
|
40
|
+
/** Raw GL after the scene draws — the escape hatch `<glarea onDraw>` is.
|
|
41
|
+
* Branch on `gl.backend`: camelCase ES 2 against PascalCase GL 1.x. */
|
|
42
|
+
onDraw?: GlAreaProps['onDraw'];
|
|
43
|
+
}
|
|
44
|
+
export declare function Canvas({ children, style, camera, orthographic, frameloop, clearColor, glx, fallback, onCreated, onPointerMissed, onError, onDraw, }: CanvasProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=canvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/three/canvas.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,SAAS,EAAO,MAAM,OAAO,CAAC;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAalD,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,YAAY,CAAC;AAKxD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAiB5D,KAAK,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAgB9C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C;sEACkE;IAClE,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvC,gEAAgE;IAChE,GAAG,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB;yEACqE;IACrE,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC;IACrD,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,kCAAkC;IAClC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;2EACuE;IACvE,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CAChC;AAmBD,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,YAAoB,EACpB,SAAoB,EACpB,UAAU,EACV,GAAG,EACH,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,MAAM,GACP,EAAE,WAAW,8FAgTb"}
|