@react-x11/components 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +979 -21
- package/dist/ansi/cast.d.ts +48 -0
- package/dist/ansi/cast.d.ts.map +1 -0
- package/dist/ansi/cast.js +135 -0
- package/dist/ansi/cast.js.map +1 -0
- package/dist/ansi/index.d.ts +10 -0
- package/dist/ansi/index.d.ts.map +1 -0
- package/dist/ansi/index.js +27 -0
- package/dist/ansi/index.js.map +1 -0
- package/dist/ansi/palette.d.ts +79 -0
- package/dist/ansi/palette.d.ts.map +1 -0
- package/dist/ansi/palette.js +155 -0
- package/dist/ansi/palette.js.map +1 -0
- package/dist/ansi/parse.d.ts +114 -0
- package/dist/ansi/parse.d.ts.map +1 -0
- package/dist/ansi/parse.js +687 -0
- package/dist/ansi/parse.js.map +1 -0
- package/dist/ansi/sgr.d.ts +87 -0
- package/dist/ansi/sgr.d.ts.map +1 -0
- package/dist/ansi/sgr.js +302 -0
- package/dist/ansi/sgr.js.map +1 -0
- package/dist/ansi/utf8.d.ts +15 -0
- package/dist/ansi/utf8.d.ts.map +1 -0
- package/dist/ansi/utf8.js +82 -0
- package/dist/ansi/utf8.js.map +1 -0
- package/dist/calendar/Calendar.d.ts +136 -0
- package/dist/calendar/Calendar.d.ts.map +1 -0
- package/dist/calendar/Calendar.js +460 -0
- package/dist/calendar/Calendar.js.map +1 -0
- package/dist/calendar/DatePicker.d.ts +52 -0
- package/dist/calendar/DatePicker.d.ts.map +1 -0
- package/dist/calendar/DatePicker.js +257 -0
- package/dist/calendar/DatePicker.js.map +1 -0
- package/dist/calendar/dates.d.ts +90 -0
- package/dist/calendar/dates.d.ts.map +1 -0
- package/dist/calendar/dates.js +236 -0
- package/dist/calendar/dates.js.map +1 -0
- package/dist/calendar/index.d.ts +8 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/index.js +15 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/charts/components.d.ts +141 -0
- package/dist/charts/components.d.ts.map +1 -0
- package/dist/charts/components.js +580 -0
- package/dist/charts/components.js.map +1 -0
- package/dist/charts/data.d.ts +198 -0
- package/dist/charts/data.d.ts.map +1 -0
- package/dist/charts/data.js +616 -0
- package/dist/charts/data.js.map +1 -0
- package/dist/charts/hx.d.ts +21 -0
- package/dist/charts/hx.d.ts.map +1 -0
- package/dist/charts/hx.js +15 -0
- package/dist/charts/hx.js.map +1 -0
- package/dist/charts/index.d.ts +27 -0
- package/dist/charts/index.d.ts.map +1 -0
- package/dist/charts/index.js +38 -0
- package/dist/charts/index.js.map +1 -0
- package/dist/charts/node.d.ts +96 -0
- package/dist/charts/node.d.ts.map +1 -0
- package/dist/charts/node.js +720 -0
- package/dist/charts/node.js.map +1 -0
- package/dist/charts/render.d.ts +153 -0
- package/dist/charts/render.d.ts.map +1 -0
- package/dist/charts/render.js +762 -0
- package/dist/charts/render.js.map +1 -0
- package/dist/charts/scale.d.ts +42 -0
- package/dist/charts/scale.d.ts.map +1 -0
- package/dist/charts/scale.js +173 -0
- package/dist/charts/scale.js.map +1 -0
- package/dist/charts/spec.d.ts +91 -0
- package/dist/charts/spec.d.ts.map +1 -0
- package/dist/charts/spec.js +33 -0
- package/dist/charts/spec.js.map +1 -0
- package/dist/charts/timers.d.ts +6 -0
- package/dist/charts/timers.d.ts.map +1 -0
- package/dist/charts/timers.js +14 -0
- package/dist/charts/timers.js.map +1 -0
- package/dist/code/hx.d.ts +24 -0
- package/dist/code/hx.d.ts.map +1 -0
- package/dist/code/hx.js +25 -0
- package/dist/code/hx.js.map +1 -0
- package/dist/code/index.d.ts +45 -0
- package/dist/code/index.d.ts.map +1 -0
- package/dist/code/index.js +93 -0
- package/dist/code/index.js.map +1 -0
- package/dist/code-editor/completion.d.ts +26 -0
- package/dist/code-editor/completion.d.ts.map +1 -0
- package/dist/code-editor/completion.js +129 -0
- package/dist/code-editor/completion.js.map +1 -0
- package/dist/code-editor/doc.d.ts +35 -0
- package/dist/code-editor/doc.d.ts.map +1 -0
- package/dist/code-editor/doc.js +162 -0
- package/dist/code-editor/doc.js.map +1 -0
- package/dist/code-editor/hx.d.ts +13 -0
- package/dist/code-editor/hx.d.ts.map +1 -0
- package/dist/code-editor/hx.js +10 -0
- package/dist/code-editor/hx.js.map +1 -0
- package/dist/code-editor/index.d.ts +88 -0
- package/dist/code-editor/index.d.ts.map +1 -0
- package/dist/code-editor/index.js +401 -0
- package/dist/code-editor/index.js.map +1 -0
- package/dist/code-editor/node.d.ts +343 -0
- package/dist/code-editor/node.d.ts.map +1 -0
- package/dist/code-editor/node.js +1521 -0
- package/dist/code-editor/node.js.map +1 -0
- package/dist/code-language/hljs.d.ts +47 -0
- package/dist/code-language/hljs.d.ts.map +1 -0
- package/dist/code-language/hljs.js +211 -0
- package/dist/code-language/hljs.js.map +1 -0
- package/dist/code-language/index.d.ts +22 -0
- package/dist/code-language/index.d.ts.map +1 -0
- package/dist/code-language/index.js +20 -0
- package/dist/code-language/index.js.map +1 -0
- package/dist/code-language/languages/glsl.d.ts +4 -0
- package/dist/code-language/languages/glsl.d.ts.map +1 -0
- package/dist/code-language/languages/glsl.js +99 -0
- package/dist/code-language/languages/glsl.js.map +1 -0
- package/dist/code-language/languages/javascript.d.ts +10 -0
- package/dist/code-language/languages/javascript.d.ts.map +1 -0
- package/dist/code-language/languages/javascript.js +360 -0
- package/dist/code-language/languages/javascript.js.map +1 -0
- package/dist/code-language/languages/json.d.ts +4 -0
- package/dist/code-language/languages/json.d.ts.map +1 -0
- package/dist/code-language/languages/json.js +68 -0
- package/dist/code-language/languages/json.js.map +1 -0
- package/dist/code-language/languages/shell.d.ts +4 -0
- package/dist/code-language/languages/shell.d.ts.map +1 -0
- package/dist/code-language/languages/shell.js +189 -0
- package/dist/code-language/languages/shell.js.map +1 -0
- package/dist/code-language/languages/sql.d.ts +11 -0
- package/dist/code-language/languages/sql.d.ts.map +1 -0
- package/dist/code-language/languages/sql.js +133 -0
- package/dist/code-language/languages/sql.js.map +1 -0
- package/dist/code-language/lezer.d.ts +24 -0
- package/dist/code-language/lezer.d.ts.map +1 -0
- package/dist/code-language/lezer.js +148 -0
- package/dist/code-language/lezer.js.map +1 -0
- package/dist/code-language/registry.d.ts +19 -0
- package/dist/code-language/registry.d.ts.map +1 -0
- package/dist/code-language/registry.js +56 -0
- package/dist/code-language/registry.js.map +1 -0
- package/dist/code-language/runs.d.ts +35 -0
- package/dist/code-language/runs.d.ts.map +1 -0
- package/dist/code-language/runs.js +88 -0
- package/dist/code-language/runs.js.map +1 -0
- package/dist/code-language/stream.d.ts +70 -0
- package/dist/code-language/stream.d.ts.map +1 -0
- package/dist/code-language/stream.js +243 -0
- package/dist/code-language/stream.js.map +1 -0
- package/dist/code-language/textmate.d.ts +27 -0
- package/dist/code-language/textmate.d.ts.map +1 -0
- package/dist/code-language/textmate.js +86 -0
- package/dist/code-language/textmate.js.map +1 -0
- package/dist/code-language/theme.d.ts +26 -0
- package/dist/code-language/theme.d.ts.map +1 -0
- package/dist/code-language/theme.js +108 -0
- package/dist/code-language/theme.js.map +1 -0
- package/dist/code-language/timers.d.ts +7 -0
- package/dist/code-language/timers.d.ts.map +1 -0
- package/dist/code-language/timers.js +22 -0
- package/dist/code-language/timers.js.map +1 -0
- package/dist/code-language/types.d.ts +173 -0
- package/dist/code-language/types.d.ts.map +1 -0
- package/dist/code-language/types.js +41 -0
- package/dist/code-language/types.js.map +1 -0
- package/dist/codeblock/index.d.ts +69 -0
- package/dist/codeblock/index.d.ts.map +1 -0
- package/dist/codeblock/index.js +85 -0
- package/dist/codeblock/index.js.map +1 -0
- package/dist/color-picker/ColorField.d.ts +39 -0
- package/dist/color-picker/ColorField.d.ts.map +1 -0
- package/dist/color-picker/ColorField.js +239 -0
- package/dist/color-picker/ColorField.js.map +1 -0
- package/dist/color-picker/ColorPicker.d.ts +109 -0
- package/dist/color-picker/ColorPicker.d.ts.map +1 -0
- package/dist/color-picker/ColorPicker.js +757 -0
- package/dist/color-picker/ColorPicker.js.map +1 -0
- package/dist/color-picker/color.d.ts +105 -0
- package/dist/color-picker/color.d.ts.map +1 -0
- package/dist/color-picker/color.js +313 -0
- package/dist/color-picker/color.js.map +1 -0
- package/dist/color-picker/index.d.ts +8 -0
- package/dist/color-picker/index.d.ts.map +1 -0
- package/dist/color-picker/index.js +19 -0
- package/dist/color-picker/index.js.map +1 -0
- package/dist/desktop-calendar/eds.d.ts +102 -0
- package/dist/desktop-calendar/eds.d.ts.map +1 -0
- package/dist/desktop-calendar/eds.js +356 -0
- package/dist/desktop-calendar/eds.js.map +1 -0
- package/dist/desktop-calendar/ical.d.ts +63 -0
- package/dist/desktop-calendar/ical.d.ts.map +1 -0
- package/dist/desktop-calendar/ical.js +57 -0
- package/dist/desktop-calendar/ical.js.map +1 -0
- package/dist/desktop-calendar/index.d.ts +72 -0
- package/dist/desktop-calendar/index.d.ts.map +1 -0
- package/dist/desktop-calendar/index.js +213 -0
- package/dist/desktop-calendar/index.js.map +1 -0
- package/dist/embed/client.d.ts +121 -0
- package/dist/embed/client.d.ts.map +1 -0
- package/dist/embed/client.js +203 -0
- package/dist/embed/client.js.map +1 -0
- package/dist/embed/host.d.ts +96 -0
- package/dist/embed/host.d.ts.map +1 -0
- package/dist/embed/host.js +266 -0
- package/dist/embed/host.js.map +1 -0
- package/dist/embed/index.d.ts +5 -0
- package/dist/embed/index.d.ts.map +1 -0
- package/dist/embed/index.js +13 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed/timers.d.ts +6 -0
- package/dist/embed/timers.d.ts.map +1 -0
- package/dist/embed/timers.js +16 -0
- package/dist/embed/timers.js.map +1 -0
- package/dist/flow/draw.d.ts +45 -0
- package/dist/flow/draw.d.ts.map +1 -0
- package/dist/flow/draw.js +295 -0
- package/dist/flow/draw.js.map +1 -0
- package/dist/flow/index.d.ts +64 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +306 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/model.d.ts +158 -0
- package/dist/flow/model.d.ts.map +1 -0
- package/dist/flow/model.js +566 -0
- package/dist/flow/model.js.map +1 -0
- package/dist/flow/node.d.ts +429 -0
- package/dist/flow/node.d.ts.map +1 -0
- package/dist/flow/node.js +3025 -0
- package/dist/flow/node.js.map +1 -0
- package/dist/flow/paths.d.ts +43 -0
- package/dist/flow/paths.d.ts.map +1 -0
- package/dist/flow/paths.js +327 -0
- package/dist/flow/paths.js.map +1 -0
- package/dist/flow/types.d.ts +561 -0
- package/dist/flow/types.d.ts.map +1 -0
- package/dist/flow/types.js +2 -0
- package/dist/flow/types.js.map +1 -0
- package/dist/formula/hx.d.ts +24 -0
- package/dist/formula/hx.d.ts.map +1 -0
- package/dist/formula/hx.js +25 -0
- package/dist/formula/hx.js.map +1 -0
- package/dist/formula/index.d.ts +74 -0
- package/dist/formula/index.d.ts.map +1 -0
- package/dist/formula/index.js +155 -0
- package/dist/formula/index.js.map +1 -0
- package/dist/formula/katex.d.ts +78 -0
- package/dist/formula/katex.d.ts.map +1 -0
- package/dist/formula/katex.js +130 -0
- package/dist/formula/katex.js.map +1 -0
- package/dist/formula/layout.d.ts +103 -0
- package/dist/formula/layout.d.ts.map +1 -0
- package/dist/formula/layout.js +716 -0
- package/dist/formula/layout.js.map +1 -0
- package/dist/formula/node.d.ts +50 -0
- package/dist/formula/node.d.ts.map +1 -0
- package/dist/formula/node.js +351 -0
- package/dist/formula/node.js.map +1 -0
- package/dist/html/controls.d.ts +48 -0
- package/dist/html/controls.d.ts.map +1 -0
- package/dist/html/controls.js +195 -0
- package/dist/html/controls.js.map +1 -0
- package/dist/html/css/cascade.d.ts +51 -0
- package/dist/html/css/cascade.d.ts.map +1 -0
- package/dist/html/css/cascade.js +552 -0
- package/dist/html/css/cascade.js.map +1 -0
- package/dist/html/css/parse.d.ts +74 -0
- package/dist/html/css/parse.d.ts.map +1 -0
- package/dist/html/css/parse.js +464 -0
- package/dist/html/css/parse.js.map +1 -0
- package/dist/html/css/style.d.ts +142 -0
- package/dist/html/css/style.d.ts.map +1 -0
- package/dist/html/css/style.js +1145 -0
- package/dist/html/css/style.js.map +1 -0
- package/dist/html/css/ua.d.ts +5 -0
- package/dist/html/css/ua.d.ts.map +1 -0
- package/dist/html/css/ua.js +171 -0
- package/dist/html/css/ua.js.map +1 -0
- package/dist/html/css/values.d.ts +78 -0
- package/dist/html/css/values.d.ts.map +1 -0
- package/dist/html/css/values.js +330 -0
- package/dist/html/css/values.js.map +1 -0
- package/dist/html/dom.d.ts +112 -0
- package/dist/html/dom.d.ts.map +1 -0
- package/dist/html/dom.js +374 -0
- package/dist/html/dom.js.map +1 -0
- package/dist/html/hx.d.ts +24 -0
- package/dist/html/hx.d.ts.map +1 -0
- package/dist/html/hx.js +29 -0
- package/dist/html/hx.js.map +1 -0
- package/dist/html/index.d.ts +137 -0
- package/dist/html/index.d.ts.map +1 -0
- package/dist/html/index.js +339 -0
- package/dist/html/index.js.map +1 -0
- package/dist/html/layout/block.d.ts +58 -0
- package/dist/html/layout/block.d.ts.map +1 -0
- package/dist/html/layout/block.js +724 -0
- package/dist/html/layout/block.js.map +1 -0
- package/dist/html/layout/boxes.d.ts +261 -0
- package/dist/html/layout/boxes.d.ts.map +1 -0
- package/dist/html/layout/boxes.js +725 -0
- package/dist/html/layout/boxes.js.map +1 -0
- package/dist/html/layout/flex.d.ts +16 -0
- package/dist/html/layout/flex.d.ts.map +1 -0
- package/dist/html/layout/flex.js +242 -0
- package/dist/html/layout/flex.js.map +1 -0
- package/dist/html/layout/floats.d.ts +50 -0
- package/dist/html/layout/floats.d.ts.map +1 -0
- package/dist/html/layout/floats.js +110 -0
- package/dist/html/layout/floats.js.map +1 -0
- package/dist/html/layout/inline.d.ts +44 -0
- package/dist/html/layout/inline.d.ts.map +1 -0
- package/dist/html/layout/inline.js +700 -0
- package/dist/html/layout/inline.js.map +1 -0
- package/dist/html/layout/table.d.ts +5 -0
- package/dist/html/layout/table.d.ts.map +1 -0
- package/dist/html/layout/table.js +340 -0
- package/dist/html/layout/table.js.map +1 -0
- package/dist/html/node.d.ts +149 -0
- package/dist/html/node.d.ts.map +1 -0
- package/dist/html/node.js +861 -0
- package/dist/html/node.js.map +1 -0
- package/dist/html/paint.d.ts +48 -0
- package/dist/html/paint.d.ts.map +1 -0
- package/dist/html/paint.js +495 -0
- package/dist/html/paint.js.map +1 -0
- package/dist/html/resources.d.ts +48 -0
- package/dist/html/resources.d.ts.map +1 -0
- package/dist/html/resources.js +156 -0
- package/dist/html/resources.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/heights.d.ts +81 -0
- package/dist/internal/heights.d.ts.map +1 -0
- package/dist/internal/heights.js +193 -0
- package/dist/internal/heights.js.map +1 -0
- package/dist/internal/hx.d.ts +24 -0
- package/dist/internal/hx.d.ts.map +1 -0
- package/dist/internal/hx.js +27 -0
- package/dist/internal/hx.js.map +1 -0
- package/dist/internal/text.d.ts +6 -0
- package/dist/internal/text.d.ts.map +1 -0
- package/dist/internal/text.js +44 -0
- package/dist/internal/text.js.map +1 -0
- package/dist/internal/timers.d.ts +8 -0
- package/dist/internal/timers.d.ts.map +1 -0
- package/dist/internal/timers.js +22 -0
- package/dist/internal/timers.js.map +1 -0
- package/dist/internal/widget.d.ts +40 -0
- package/dist/internal/widget.d.ts.map +1 -0
- package/dist/internal/widget.js +44 -0
- package/dist/internal/widget.js.map +1 -0
- package/dist/markdown/ast.d.ts +126 -0
- package/dist/markdown/ast.d.ts.map +1 -0
- package/dist/markdown/ast.js +8 -0
- package/dist/markdown/ast.js.map +1 -0
- package/dist/markdown/hx.d.ts +24 -0
- package/dist/markdown/hx.d.ts.map +1 -0
- package/dist/markdown/hx.js +25 -0
- package/dist/markdown/hx.js.map +1 -0
- package/dist/markdown/index.d.ts +90 -0
- package/dist/markdown/index.d.ts.map +1 -0
- package/dist/markdown/index.js +413 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/markdown/parse.d.ts +8 -0
- package/dist/markdown/parse.d.ts.map +1 -0
- package/dist/markdown/parse.js +911 -0
- package/dist/markdown/parse.js.map +1 -0
- package/dist/markdown/spans.d.ts +20 -0
- package/dist/markdown/spans.d.ts.map +1 -0
- package/dist/markdown/spans.js +96 -0
- package/dist/markdown/spans.js.map +1 -0
- package/dist/media-player/backends.d.ts +64 -0
- package/dist/media-player/backends.d.ts.map +1 -0
- package/dist/media-player/backends.js +110 -0
- package/dist/media-player/backends.js.map +1 -0
- package/dist/media-player/control.d.ts +40 -0
- package/dist/media-player/control.d.ts.map +1 -0
- package/dist/media-player/control.js +44 -0
- package/dist/media-player/control.js.map +1 -0
- package/dist/media-player/hx.d.ts +24 -0
- package/dist/media-player/hx.d.ts.map +1 -0
- package/dist/media-player/hx.js +25 -0
- package/dist/media-player/hx.js.map +1 -0
- package/dist/media-player/index.d.ts +107 -0
- package/dist/media-player/index.d.ts.map +1 -0
- package/dist/media-player/index.js +219 -0
- package/dist/media-player/index.js.map +1 -0
- package/dist/media-player/mpv.d.ts +4 -0
- package/dist/media-player/mpv.d.ts.map +1 -0
- package/dist/media-player/mpv.js +120 -0
- package/dist/media-player/mpv.js.map +1 -0
- package/dist/media-player/vlc.d.ts +8 -0
- package/dist/media-player/vlc.d.ts.map +1 -0
- package/dist/media-player/vlc.js +83 -0
- package/dist/media-player/vlc.js.map +1 -0
- package/dist/richtext/index.d.ts +19 -0
- package/dist/richtext/index.d.ts.map +1 -0
- package/dist/richtext/index.js +4 -0
- package/dist/richtext/index.js.map +1 -0
- package/dist/richtext/links.d.ts +12 -0
- package/dist/richtext/links.d.ts.map +1 -0
- package/dist/richtext/links.js +64 -0
- package/dist/richtext/links.js.map +1 -0
- package/dist/richtext/menu.d.ts +11 -0
- package/dist/richtext/menu.d.ts.map +1 -0
- package/dist/richtext/menu.js +43 -0
- package/dist/richtext/menu.js.map +1 -0
- package/dist/richtext/node.d.ts +151 -0
- package/dist/richtext/node.d.ts.map +1 -0
- package/dist/richtext/node.js +255 -0
- package/dist/richtext/node.js.map +1 -0
- package/dist/richtext/runs.d.ts +92 -0
- package/dist/richtext/runs.d.ts.map +1 -0
- package/dist/richtext/runs.js +158 -0
- package/dist/richtext/runs.js.map +1 -0
- package/dist/table/hx.d.ts +24 -0
- package/dist/table/hx.d.ts.map +1 -0
- package/dist/table/hx.js +25 -0
- package/dist/table/hx.js.map +1 -0
- package/dist/table/index.d.ts +169 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/index.js +844 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/rows.d.ts +136 -0
- package/dist/table/rows.d.ts.map +1 -0
- package/dist/table/rows.js +146 -0
- package/dist/table/rows.js.map +1 -0
- package/dist/terminal/backends.d.ts +105 -0
- package/dist/terminal/backends.d.ts.map +1 -0
- package/dist/terminal/backends.js +185 -0
- package/dist/terminal/backends.js.map +1 -0
- package/dist/terminal/hx.d.ts +24 -0
- package/dist/terminal/hx.d.ts.map +1 -0
- package/dist/terminal/hx.js +25 -0
- package/dist/terminal/hx.js.map +1 -0
- package/dist/terminal/index.d.ts +160 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +344 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/title.d.ts +24 -0
- package/dist/terminal/title.d.ts.map +1 -0
- package/dist/terminal/title.js +129 -0
- package/dist/terminal/title.js.map +1 -0
- package/dist/terminal/vt/colors.d.ts +63 -0
- package/dist/terminal/vt/colors.d.ts.map +1 -0
- package/dist/terminal/vt/colors.js +203 -0
- package/dist/terminal/vt/colors.js.map +1 -0
- package/dist/terminal/vt/diff.d.ts +117 -0
- package/dist/terminal/vt/diff.d.ts.map +1 -0
- package/dist/terminal/vt/diff.js +358 -0
- package/dist/terminal/vt/diff.js.map +1 -0
- package/dist/terminal/vt/fonts.d.ts +92 -0
- package/dist/terminal/vt/fonts.d.ts.map +1 -0
- package/dist/terminal/vt/fonts.js +178 -0
- package/dist/terminal/vt/fonts.js.map +1 -0
- package/dist/terminal/vt/index.d.ts +78 -0
- package/dist/terminal/vt/index.d.ts.map +1 -0
- package/dist/terminal/vt/index.js +312 -0
- package/dist/terminal/vt/index.js.map +1 -0
- package/dist/terminal/vt/keys.d.ts +74 -0
- package/dist/terminal/vt/keys.d.ts.map +1 -0
- package/dist/terminal/vt/keys.js +309 -0
- package/dist/terminal/vt/keys.js.map +1 -0
- package/dist/terminal/vt/mouse.d.ts +44 -0
- package/dist/terminal/vt/mouse.d.ts.map +1 -0
- package/dist/terminal/vt/mouse.js +106 -0
- package/dist/terminal/vt/mouse.js.map +1 -0
- package/dist/terminal/vt/node.d.ts +246 -0
- package/dist/terminal/vt/node.d.ts.map +1 -0
- package/dist/terminal/vt/node.js +1068 -0
- package/dist/terminal/vt/node.js.map +1 -0
- package/dist/terminal/vt/pty.d.ts +81 -0
- package/dist/terminal/vt/pty.d.ts.map +1 -0
- package/dist/terminal/vt/pty.js +201 -0
- package/dist/terminal/vt/pty.js.map +1 -0
- package/dist/terminal/vt/renderer.d.ts +179 -0
- package/dist/terminal/vt/renderer.d.ts.map +1 -0
- package/dist/terminal/vt/renderer.js +357 -0
- package/dist/terminal/vt/renderer.js.map +1 -0
- package/dist/terminal/vt/timers.d.ts +6 -0
- package/dist/terminal/vt/timers.d.ts.map +1 -0
- package/dist/terminal/vt/timers.js +16 -0
- package/dist/terminal/vt/timers.js.map +1 -0
- package/dist/terminal/vt/xterm.d.ts +142 -0
- package/dist/terminal/vt/xterm.d.ts.map +1 -0
- package/dist/terminal/vt/xterm.js +32 -0
- package/dist/terminal/vt/xterm.js.map +1 -0
- package/dist/terminal-output/hx.d.ts +24 -0
- package/dist/terminal-output/hx.d.ts.map +1 -0
- package/dist/terminal-output/hx.js +25 -0
- package/dist/terminal-output/hx.js.map +1 -0
- package/dist/terminal-output/index.d.ts +92 -0
- package/dist/terminal-output/index.d.ts.map +1 -0
- package/dist/terminal-output/index.js +179 -0
- package/dist/terminal-output/index.js.map +1 -0
- package/dist/terminal-output/runs.d.ts +27 -0
- package/dist/terminal-output/runs.d.ts.map +1 -0
- package/dist/terminal-output/runs.js +66 -0
- package/dist/terminal-output/runs.js.map +1 -0
- package/dist/three/canvas.d.ts +46 -0
- package/dist/three/canvas.d.ts.map +1 -0
- package/dist/three/canvas.js +305 -0
- package/dist/three/canvas.js.map +1 -0
- package/dist/three/events.d.ts +64 -0
- package/dist/three/events.d.ts.map +1 -0
- package/dist/three/events.js +146 -0
- package/dist/three/events.js.map +1 -0
- package/dist/three/geometries.d.ts +89 -0
- package/dist/three/geometries.d.ts.map +1 -0
- package/dist/three/geometries.js +345 -0
- package/dist/three/geometries.js.map +1 -0
- package/dist/three/globals.d.ts +7 -0
- package/dist/three/globals.d.ts.map +1 -0
- package/dist/three/globals.js +20 -0
- package/dist/three/globals.js.map +1 -0
- package/dist/three/hx.d.ts +9 -0
- package/dist/three/hx.d.ts.map +1 -0
- package/dist/three/hx.js +10 -0
- package/dist/three/hx.js.map +1 -0
- package/dist/three/index.d.ts +22 -0
- package/dist/three/index.d.ts.map +1 -0
- package/dist/three/index.js +24 -0
- package/dist/three/index.js.map +1 -0
- package/dist/three/jsx-dev-runtime.d.ts +19 -0
- package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/three/jsx-dev-runtime.js +2 -0
- package/dist/three/jsx-dev-runtime.js.map +1 -0
- package/dist/three/jsx-runtime.d.ts +19 -0
- package/dist/three/jsx-runtime.d.ts.map +1 -0
- package/dist/three/jsx-runtime.js +2 -0
- package/dist/three/jsx-runtime.js.map +1 -0
- package/dist/three/jsx.d.ts +198 -0
- package/dist/three/jsx.d.ts.map +1 -0
- package/dist/three/jsx.js +2 -0
- package/dist/three/jsx.js.map +1 -0
- package/dist/three/materials.d.ts +125 -0
- package/dist/three/materials.d.ts.map +1 -0
- package/dist/three/materials.js +229 -0
- package/dist/three/materials.js.map +1 -0
- package/dist/three/math.d.ts +146 -0
- package/dist/three/math.d.ts.map +1 -0
- package/dist/three/math.js +464 -0
- package/dist/three/math.js.map +1 -0
- package/dist/three/objects.d.ts +185 -0
- package/dist/three/objects.d.ts.map +1 -0
- package/dist/three/objects.js +309 -0
- package/dist/three/objects.js.map +1 -0
- package/dist/three/passes.d.ts +54 -0
- package/dist/three/passes.d.ts.map +1 -0
- package/dist/three/passes.js +78 -0
- package/dist/three/passes.js.map +1 -0
- package/dist/three/postprocess.d.ts +85 -0
- package/dist/three/postprocess.d.ts.map +1 -0
- package/dist/three/postprocess.js +503 -0
- package/dist/three/postprocess.js.map +1 -0
- package/dist/three/raycast.d.ts +24 -0
- package/dist/three/raycast.d.ts.map +1 -0
- package/dist/three/raycast.js +138 -0
- package/dist/three/raycast.js.map +1 -0
- package/dist/three/reconciler.d.ts +48 -0
- package/dist/three/reconciler.d.ts.map +1 -0
- package/dist/three/reconciler.js +416 -0
- package/dist/three/reconciler.js.map +1 -0
- package/dist/three/renderer-direct.d.ts +102 -0
- package/dist/three/renderer-direct.d.ts.map +1 -0
- package/dist/three/renderer-direct.js +782 -0
- package/dist/three/renderer-direct.js.map +1 -0
- package/dist/three/renderer-indirect.d.ts +68 -0
- package/dist/three/renderer-indirect.d.ts.map +1 -0
- package/dist/three/renderer-indirect.js +438 -0
- package/dist/three/renderer-indirect.js.map +1 -0
- package/dist/three/store.d.ts +81 -0
- package/dist/three/store.d.ts.map +1 -0
- package/dist/three/store.js +110 -0
- package/dist/three/store.js.map +1 -0
- package/dist/timeline/hx.d.ts +18 -0
- package/dist/timeline/hx.d.ts.map +1 -0
- package/dist/timeline/hx.js +10 -0
- package/dist/timeline/hx.js.map +1 -0
- package/dist/timeline/index.d.ts +152 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +383 -0
- package/dist/timeline/index.js.map +1 -0
- package/dist/tray-host/hx.d.ts +24 -0
- package/dist/tray-host/hx.d.ts.map +1 -0
- package/dist/tray-host/hx.js +25 -0
- package/dist/tray-host/hx.js.map +1 -0
- package/dist/tray-host/index.d.ts +110 -0
- package/dist/tray-host/index.d.ts.map +1 -0
- package/dist/tray-host/index.js +191 -0
- package/dist/tray-host/index.js.map +1 -0
- package/dist/tray-host/manager.d.ts +137 -0
- package/dist/tray-host/manager.d.ts.map +1 -0
- package/dist/tray-host/manager.js +462 -0
- package/dist/tray-host/manager.js.map +1 -0
- package/dist/tray-host/notify.d.ts +22 -0
- package/dist/tray-host/notify.d.ts.map +1 -0
- package/dist/tray-host/notify.js +74 -0
- package/dist/tray-host/notify.js.map +1 -0
- package/dist/tray-host/protocol.d.ts +106 -0
- package/dist/tray-host/protocol.d.ts.map +1 -0
- package/dist/tray-host/protocol.js +191 -0
- package/dist/tray-host/protocol.js.map +1 -0
- package/dist/tree/hx.d.ts +24 -0
- package/dist/tree/hx.d.ts.map +1 -0
- package/dist/tree/hx.js +25 -0
- package/dist/tree/hx.js.map +1 -0
- package/dist/tree/index.d.ts +221 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/index.js +716 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree/internal.d.ts +18 -0
- package/dist/tree/internal.d.ts.map +1 -0
- package/dist/tree/internal.js +66 -0
- package/dist/tree/internal.js.map +1 -0
- package/dist/tree/rows.d.ts +177 -0
- package/dist/tree/rows.d.ts.map +1 -0
- package/dist/tree/rows.js +179 -0
- package/dist/tree/rows.js.map +1 -0
- package/package.json +166 -12
- package/src/ansi/cast.ts +159 -0
- package/src/ansi/index.ts +53 -0
- package/src/ansi/palette.ts +226 -0
- package/src/ansi/parse.ts +780 -0
- package/src/ansi/sgr.ts +380 -0
- package/src/ansi/utf8.ts +84 -0
- package/src/calendar/Calendar.ts +744 -0
- package/src/calendar/DatePicker.ts +368 -0
- package/src/calendar/dates.ts +307 -0
- package/src/calendar/index.ts +51 -0
- package/src/charts/components.ts +864 -0
- package/src/charts/data.ts +776 -0
- package/src/charts/hx.ts +39 -0
- package/src/charts/index.ts +99 -0
- package/src/charts/node.ts +932 -0
- package/src/charts/render.ts +982 -0
- package/src/charts/scale.ts +214 -0
- package/src/charts/spec.ts +122 -0
- package/src/charts/timers.ts +24 -0
- package/src/code/hx.ts +51 -0
- package/src/code/index.ts +174 -0
- package/src/code-editor/completion.ts +161 -0
- package/src/code-editor/doc.ts +198 -0
- package/src/code-editor/hx.ts +26 -0
- package/src/code-editor/index.ts +615 -0
- package/src/code-editor/node.ts +1926 -0
- package/src/code-language/hljs.ts +302 -0
- package/src/code-language/index.ts +51 -0
- package/src/code-language/languages/glsl.ts +120 -0
- package/src/code-language/languages/javascript.ts +419 -0
- package/src/code-language/languages/json.ts +72 -0
- package/src/code-language/languages/shell.ts +221 -0
- package/src/code-language/languages/sql.ts +165 -0
- package/src/code-language/lezer.ts +190 -0
- package/src/code-language/registry.ts +66 -0
- package/src/code-language/runs.ts +128 -0
- package/src/code-language/stream.ts +306 -0
- package/src/code-language/textmate.ts +134 -0
- package/src/code-language/theme.ts +124 -0
- package/src/code-language/timers.ts +36 -0
- package/src/code-language/types.ts +252 -0
- package/src/codeblock/index.ts +146 -0
- package/src/color-picker/ColorField.ts +333 -0
- package/src/color-picker/ColorPicker.ts +1069 -0
- package/src/color-picker/color.ts +399 -0
- package/src/color-picker/index.ts +50 -0
- package/src/desktop-calendar/eds.ts +484 -0
- package/src/desktop-calendar/ical.ts +119 -0
- package/src/desktop-calendar/index.ts +287 -0
- package/src/embed/client.ts +311 -0
- package/src/embed/host.ts +432 -0
- package/src/embed/index.ts +33 -0
- package/src/embed/timers.ts +32 -0
- package/src/flow/draw.ts +418 -0
- package/src/flow/index.ts +473 -0
- package/src/flow/model.ts +687 -0
- package/src/flow/node.ts +3694 -0
- package/src/flow/paths.ts +403 -0
- package/src/flow/types.ts +634 -0
- package/src/formula/hx.ts +51 -0
- package/src/formula/index.ts +243 -0
- package/src/formula/katex.ts +209 -0
- package/src/formula/layout.ts +876 -0
- package/src/formula/node.ts +467 -0
- package/src/html/controls.ts +244 -0
- package/src/html/css/cascade.ts +606 -0
- package/src/html/css/parse.ts +500 -0
- package/src/html/css/style.ts +1371 -0
- package/src/html/css/ua.ts +174 -0
- package/src/html/css/values.ts +358 -0
- package/src/html/dom.ts +410 -0
- package/src/html/hx.ts +55 -0
- package/src/html/index.ts +545 -0
- package/src/html/layout/block.ts +876 -0
- package/src/html/layout/boxes.ts +981 -0
- package/src/html/layout/flex.ts +297 -0
- package/src/html/layout/floats.ts +125 -0
- package/src/html/layout/inline.ts +870 -0
- package/src/html/layout/table.ts +380 -0
- package/src/html/node.ts +967 -0
- package/src/html/paint.ts +605 -0
- package/src/html/resources.ts +214 -0
- package/src/index.ts +638 -0
- package/src/internal/heights.ts +211 -0
- package/src/internal/hx.ts +53 -0
- package/src/internal/text.ts +44 -0
- package/src/internal/timers.ts +44 -0
- package/src/internal/widget.ts +92 -0
- package/src/markdown/ast.ts +163 -0
- package/src/markdown/hx.ts +51 -0
- package/src/markdown/index.ts +686 -0
- package/src/markdown/parse.ts +1037 -0
- package/src/markdown/spans.ts +143 -0
- package/src/media-player/backends.ts +155 -0
- package/src/media-player/control.ts +70 -0
- package/src/media-player/hx.ts +51 -0
- package/src/media-player/index.ts +378 -0
- package/src/media-player/mpv.ts +146 -0
- package/src/media-player/vlc.ts +97 -0
- package/src/richtext/index.ts +42 -0
- package/src/richtext/links.ts +78 -0
- package/src/richtext/menu.ts +49 -0
- package/src/richtext/node.ts +406 -0
- package/src/richtext/runs.ts +253 -0
- package/src/table/hx.ts +51 -0
- package/src/table/index.ts +1219 -0
- package/src/table/rows.ts +275 -0
- package/src/terminal/backends.ts +242 -0
- package/src/terminal/hx.ts +51 -0
- package/src/terminal/index.ts +574 -0
- package/src/terminal/title.ts +172 -0
- package/src/terminal/vt/colors.ts +247 -0
- package/src/terminal/vt/diff.ts +467 -0
- package/src/terminal/vt/fonts.ts +233 -0
- package/src/terminal/vt/index.ts +443 -0
- package/src/terminal/vt/keys.ts +369 -0
- package/src/terminal/vt/mouse.ts +144 -0
- package/src/terminal/vt/node.ts +1242 -0
- package/src/terminal/vt/pty.ts +334 -0
- package/src/terminal/vt/renderer.ts +555 -0
- package/src/terminal/vt/timers.ts +31 -0
- package/src/terminal/vt/xterm.ts +193 -0
- package/src/terminal-output/hx.ts +51 -0
- package/src/terminal-output/index.ts +340 -0
- package/src/terminal-output/runs.ts +79 -0
- package/src/three/canvas.ts +451 -0
- package/src/three/events.ts +197 -0
- package/src/three/geometries.ts +429 -0
- package/src/three/globals.ts +34 -0
- package/src/three/hx.ts +22 -0
- package/src/three/index.ts +98 -0
- package/src/three/jsx-dev-runtime.ts +27 -0
- package/src/three/jsx-runtime.ts +38 -0
- package/src/three/jsx.ts +275 -0
- package/src/three/materials.ts +270 -0
- package/src/three/math.ts +585 -0
- package/src/three/objects.ts +397 -0
- package/src/three/passes.ts +90 -0
- package/src/three/postprocess.ts +677 -0
- package/src/three/raycast.ts +189 -0
- package/src/three/react-reconciler.d.ts +50 -0
- package/src/three/reconciler.ts +624 -0
- package/src/three/renderer-direct.ts +1055 -0
- package/src/three/renderer-indirect.ts +570 -0
- package/src/three/store.ts +207 -0
- package/src/timeline/hx.ts +31 -0
- package/src/timeline/index.ts +603 -0
- package/src/tray-host/hx.ts +51 -0
- package/src/tray-host/index.ts +331 -0
- package/src/tray-host/manager.ts +639 -0
- package/src/tray-host/notify.ts +102 -0
- package/src/tray-host/protocol.ts +235 -0
- package/src/tree/hx.ts +51 -0
- package/src/tree/index.ts +1087 -0
- package/src/tree/internal.ts +87 -0
- package/src/tree/rows.ts +334 -0
- package/src/index.d.ts +0 -2
- package/src/index.js +0 -9
- package/src/sparkline/index.d.ts +0 -29
- package/src/sparkline/index.js +0 -50
- package/src/sparkline/node.js +0 -72
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/** `_NET_SYSTEM_TRAY_OPCODE` `data[1]`, from the spec's own names. */
|
|
2
|
+
export declare const SYSTEM_TRAY_REQUEST_DOCK = 0;
|
|
3
|
+
export declare const SYSTEM_TRAY_BEGIN_MESSAGE = 1;
|
|
4
|
+
export declare const SYSTEM_TRAY_CANCEL_MESSAGE = 2;
|
|
5
|
+
/** Property and message atom names. */
|
|
6
|
+
export declare const OPCODE_ATOM = "_NET_SYSTEM_TRAY_OPCODE";
|
|
7
|
+
export declare const ORIENTATION_ATOM = "_NET_SYSTEM_TRAY_ORIENTATION";
|
|
8
|
+
export declare const VISUAL_ATOM = "_NET_SYSTEM_TRAY_VISUAL";
|
|
9
|
+
export declare const MESSAGE_DATA_ATOM = "_NET_SYSTEM_TRAY_MESSAGE_DATA";
|
|
10
|
+
/** ICCCM 2.8: what a manager broadcasts to the root once it owns its
|
|
11
|
+
* selection, and what a client waiting for a tray is listening for. */
|
|
12
|
+
export declare const MANAGER_ATOM = "MANAGER";
|
|
13
|
+
/** Which way the panel runs, so icons can draw themselves to match. */
|
|
14
|
+
export type TrayOrientation = 'horizontal' | 'vertical';
|
|
15
|
+
/** `_NET_SYSTEM_TRAY_ORIENTATION`'s two values. */
|
|
16
|
+
export declare const ORIENTATION_HORIZONTAL = 0;
|
|
17
|
+
export declare const ORIENTATION_VERTICAL = 1;
|
|
18
|
+
export declare function orientationValue(orientation: TrayOrientation): number;
|
|
19
|
+
/** One selection per screen: `_NET_SYSTEM_TRAY_S0` on the first. */
|
|
20
|
+
export declare function selectionNameFor(screen: number): string;
|
|
21
|
+
/** A docked tray icon: the client's top-level window, and nothing else this
|
|
22
|
+
* package invented. The object identity is stable for as long as the icon
|
|
23
|
+
* is docked, so it is safe to hold onto. */
|
|
24
|
+
export interface TrayIcon {
|
|
25
|
+
/** The client's X window id — what `<foreign windowId>` embeds. */
|
|
26
|
+
readonly id: number;
|
|
27
|
+
}
|
|
28
|
+
/** A balloon message: what an icon says when it has no notification daemon
|
|
29
|
+
* to say it through. */
|
|
30
|
+
export interface TrayMessage {
|
|
31
|
+
/** The icon that is talking. */
|
|
32
|
+
readonly windowId: number;
|
|
33
|
+
/** The client's own id for the message — what a cancel names. */
|
|
34
|
+
readonly id: number;
|
|
35
|
+
/** Milliseconds the client asked for it to stay up. `0` means "until the
|
|
36
|
+
* user dismisses it", which is also what the notification spec means by
|
|
37
|
+
* a zero expiry, so it passes straight through. */
|
|
38
|
+
readonly timeout: number;
|
|
39
|
+
readonly text: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The visual id to publish as `_NET_SYSTEM_TRAY_VISUAL`, or `0` for none.
|
|
43
|
+
*
|
|
44
|
+
* `visual` is the visual of the window the icons will be embedded into —
|
|
45
|
+
* ntk creates a `<foreign>`'s container as an ordinary child, so it inherits
|
|
46
|
+
* the top-level window's visual, and that is the one an icon reparented into
|
|
47
|
+
* it will live on.
|
|
48
|
+
*
|
|
49
|
+
* **Advertising a visual we do not have is worse than advertising none.** A
|
|
50
|
+
* client that believes this creates its icon with an alpha channel; drawn on
|
|
51
|
+
* a display with no compositor, or into a 24-bit parent, the transparent
|
|
52
|
+
* parts come out black. So the answer is yes only when the window genuinely
|
|
53
|
+
* carries a 32-bit TrueColor visual, and the fallback — an icon guessing our
|
|
54
|
+
* background — is the one that has always worked.
|
|
55
|
+
*/
|
|
56
|
+
export declare function argbVisualOf(screen: {
|
|
57
|
+
depths?: Record<number, Record<string, {
|
|
58
|
+
class?: number;
|
|
59
|
+
}>>;
|
|
60
|
+
} | null | undefined, visual: number): number;
|
|
61
|
+
/**
|
|
62
|
+
* UTF-8, decoded from the raw bytes a ClientMessage carries.
|
|
63
|
+
*
|
|
64
|
+
* Hand-rolled rather than reached through `TextDecoder` on `globalThis`
|
|
65
|
+
* because it is twenty lines, it is pure, and it makes the balloon tests
|
|
66
|
+
* independent of whichever runtime the suite happens to run on. Malformed
|
|
67
|
+
* input degrades to U+FFFD rather than throwing: a tray that refuses a
|
|
68
|
+
* message because a client sent it latin-1 is a tray that loses the message.
|
|
69
|
+
*/
|
|
70
|
+
export declare function decodeUtf8(bytes: readonly number[]): string;
|
|
71
|
+
/**
|
|
72
|
+
* Balloon messages, reassembled.
|
|
73
|
+
*
|
|
74
|
+
* A client announces one with `SYSTEM_TRAY_BEGIN_MESSAGE` and then sends the
|
|
75
|
+
* text in 20-byte `_NET_SYSTEM_TRAY_MESSAGE_DATA` chunks, the last of which
|
|
76
|
+
* is padded. **The data messages carry no message id** — only the icon's
|
|
77
|
+
* window — so one message per icon can be in flight at a time, which is the
|
|
78
|
+
* protocol's own limit and the reason this is keyed on the window.
|
|
79
|
+
*
|
|
80
|
+
* Pure, and driven entirely by what arrived: `../manager.ts` decides nothing
|
|
81
|
+
* about a message beyond which icon it came from.
|
|
82
|
+
*/
|
|
83
|
+
export declare class BalloonAssembler {
|
|
84
|
+
#private;
|
|
85
|
+
/** How many messages are half-arrived. Tests read it; nothing else needs it. */
|
|
86
|
+
get pendingCount(): number;
|
|
87
|
+
/**
|
|
88
|
+
* `SYSTEM_TRAY_BEGIN_MESSAGE`. Returns the message when it needs no data at
|
|
89
|
+
* all — a zero-length one is complete the moment it is announced, and a
|
|
90
|
+
* host that waited for a chunk that never comes would leak it.
|
|
91
|
+
*/
|
|
92
|
+
begin(windowId: number, info: {
|
|
93
|
+
id: number;
|
|
94
|
+
timeout: number;
|
|
95
|
+
length: number;
|
|
96
|
+
}): TrayMessage | null;
|
|
97
|
+
/** One `_NET_SYSTEM_TRAY_MESSAGE_DATA` chunk. Returns the message once the
|
|
98
|
+
* announced number of bytes has arrived. */
|
|
99
|
+
data(windowId: number, chunk: readonly number[]): TrayMessage | null;
|
|
100
|
+
/** `SYSTEM_TRAY_CANCEL_MESSAGE`. True when there was one to cancel. */
|
|
101
|
+
cancel(windowId: number, id: number): boolean;
|
|
102
|
+
/** The icon went away mid-message. */
|
|
103
|
+
forget(windowId: number): void;
|
|
104
|
+
clear(): void;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/tray-host/protocol.ts"],"names":[],"mappings":"AAYA,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,uCAAuC;AACvC,eAAO,MAAM,WAAW,4BAA4B,CAAC;AACrD,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAC/D,eAAO,MAAM,WAAW,4BAA4B,CAAC;AACrD,eAAO,MAAM,iBAAiB,kCAAkC,CAAC;AACjE;wEACwE;AACxE,eAAO,MAAM,YAAY,YAAY,CAAC;AAEtC,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM,CAIrE;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;6CAE6C;AAC7C,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;yBACyB;AACzB,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;wDAEoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EACF;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CAAE,GAC/D,IAAI,GACJ,SAAS,EACb,MAAM,EAAE,MAAM,GACb,MAAM,CAQR;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAmC3D;AAUD;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAgB;;IAG3B,gFAAgF;IAChF,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;OAIG;IACH,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACpD,WAAW,GAAG,IAAI,CAgBpB;IAED;iDAC6C;IAC7C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAiBnE;IAED,uEAAuE;IACvE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAK5C;IAED,sCAAsC;IACtC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,KAAK,IAAI,IAAI,CAEZ;CACF"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
// The freedesktop system tray protocol, as data and pure functions.
|
|
2
|
+
//
|
|
3
|
+
// Everything in this file can be asserted without an X server, which is the
|
|
4
|
+
// point: the [system tray spec][spec] is short and unambiguous, and the half
|
|
5
|
+
// of it that is *decisions* — which atom, which opcode, how the bytes of a
|
|
6
|
+
// balloon message reassemble, whether a visual may honestly be advertised —
|
|
7
|
+
// should not need a display to test.
|
|
8
|
+
//
|
|
9
|
+
// The other half, the half that talks to the server, is `./manager.ts`.
|
|
10
|
+
//
|
|
11
|
+
// [spec]: http://specifications.freedesktop.org/systemtray/latest/
|
|
12
|
+
/** `_NET_SYSTEM_TRAY_OPCODE` `data[1]`, from the spec's own names. */
|
|
13
|
+
export const SYSTEM_TRAY_REQUEST_DOCK = 0;
|
|
14
|
+
export const SYSTEM_TRAY_BEGIN_MESSAGE = 1;
|
|
15
|
+
export const SYSTEM_TRAY_CANCEL_MESSAGE = 2;
|
|
16
|
+
/** Property and message atom names. */
|
|
17
|
+
export const OPCODE_ATOM = '_NET_SYSTEM_TRAY_OPCODE';
|
|
18
|
+
export const ORIENTATION_ATOM = '_NET_SYSTEM_TRAY_ORIENTATION';
|
|
19
|
+
export const VISUAL_ATOM = '_NET_SYSTEM_TRAY_VISUAL';
|
|
20
|
+
export const MESSAGE_DATA_ATOM = '_NET_SYSTEM_TRAY_MESSAGE_DATA';
|
|
21
|
+
/** ICCCM 2.8: what a manager broadcasts to the root once it owns its
|
|
22
|
+
* selection, and what a client waiting for a tray is listening for. */
|
|
23
|
+
export const MANAGER_ATOM = 'MANAGER';
|
|
24
|
+
/** `_NET_SYSTEM_TRAY_ORIENTATION`'s two values. */
|
|
25
|
+
export const ORIENTATION_HORIZONTAL = 0;
|
|
26
|
+
export const ORIENTATION_VERTICAL = 1;
|
|
27
|
+
export function orientationValue(orientation) {
|
|
28
|
+
return orientation === 'vertical'
|
|
29
|
+
? ORIENTATION_VERTICAL
|
|
30
|
+
: ORIENTATION_HORIZONTAL;
|
|
31
|
+
}
|
|
32
|
+
/** One selection per screen: `_NET_SYSTEM_TRAY_S0` on the first. */
|
|
33
|
+
export function selectionNameFor(screen) {
|
|
34
|
+
return `_NET_SYSTEM_TRAY_S${screen}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The visual id to publish as `_NET_SYSTEM_TRAY_VISUAL`, or `0` for none.
|
|
38
|
+
*
|
|
39
|
+
* `visual` is the visual of the window the icons will be embedded into —
|
|
40
|
+
* ntk creates a `<foreign>`'s container as an ordinary child, so it inherits
|
|
41
|
+
* the top-level window's visual, and that is the one an icon reparented into
|
|
42
|
+
* it will live on.
|
|
43
|
+
*
|
|
44
|
+
* **Advertising a visual we do not have is worse than advertising none.** A
|
|
45
|
+
* client that believes this creates its icon with an alpha channel; drawn on
|
|
46
|
+
* a display with no compositor, or into a 24-bit parent, the transparent
|
|
47
|
+
* parts come out black. So the answer is yes only when the window genuinely
|
|
48
|
+
* carries a 32-bit TrueColor visual, and the fallback — an icon guessing our
|
|
49
|
+
* background — is the one that has always worked.
|
|
50
|
+
*/
|
|
51
|
+
export function argbVisualOf(screen, visual) {
|
|
52
|
+
if (!visual)
|
|
53
|
+
return 0;
|
|
54
|
+
const deep = screen?.depths?.[32];
|
|
55
|
+
if (!deep)
|
|
56
|
+
return 0;
|
|
57
|
+
const found = deep[String(visual)];
|
|
58
|
+
// TrueColor. The depth-32 list is where an ARGB visual lives, but the
|
|
59
|
+
// class is what says the channels are direct rather than looked up.
|
|
60
|
+
return found?.class === 4 ? visual : 0;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* UTF-8, decoded from the raw bytes a ClientMessage carries.
|
|
64
|
+
*
|
|
65
|
+
* Hand-rolled rather than reached through `TextDecoder` on `globalThis`
|
|
66
|
+
* because it is twenty lines, it is pure, and it makes the balloon tests
|
|
67
|
+
* independent of whichever runtime the suite happens to run on. Malformed
|
|
68
|
+
* input degrades to U+FFFD rather than throwing: a tray that refuses a
|
|
69
|
+
* message because a client sent it latin-1 is a tray that loses the message.
|
|
70
|
+
*/
|
|
71
|
+
export function decodeUtf8(bytes) {
|
|
72
|
+
let out = '';
|
|
73
|
+
for (let i = 0; i < bytes.length;) {
|
|
74
|
+
const b0 = bytes[i] & 0xff;
|
|
75
|
+
let code = 0xfffd;
|
|
76
|
+
let size = 1;
|
|
77
|
+
if (b0 < 0x80) {
|
|
78
|
+
code = b0;
|
|
79
|
+
}
|
|
80
|
+
else if (b0 >= 0xc2 && b0 <= 0xdf) {
|
|
81
|
+
size = 2;
|
|
82
|
+
code = b0 & 0x1f;
|
|
83
|
+
}
|
|
84
|
+
else if (b0 >= 0xe0 && b0 <= 0xef) {
|
|
85
|
+
size = 3;
|
|
86
|
+
code = b0 & 0x0f;
|
|
87
|
+
}
|
|
88
|
+
else if (b0 >= 0xf0 && b0 <= 0xf4) {
|
|
89
|
+
size = 4;
|
|
90
|
+
code = b0 & 0x07;
|
|
91
|
+
}
|
|
92
|
+
if (size > 1) {
|
|
93
|
+
if (i + size > bytes.length)
|
|
94
|
+
return out + '�';
|
|
95
|
+
for (let k = 1; k < size; k++) {
|
|
96
|
+
const cont = bytes[i + k] & 0xff;
|
|
97
|
+
if ((cont & 0xc0) !== 0x80) {
|
|
98
|
+
code = 0xfffd;
|
|
99
|
+
size = 1;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
code = (code << 6) | (cont & 0x3f);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (code > 0x10ffff)
|
|
106
|
+
code = 0xfffd;
|
|
107
|
+
out += String.fromCodePoint(code);
|
|
108
|
+
i += size;
|
|
109
|
+
}
|
|
110
|
+
return out;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Balloon messages, reassembled.
|
|
114
|
+
*
|
|
115
|
+
* A client announces one with `SYSTEM_TRAY_BEGIN_MESSAGE` and then sends the
|
|
116
|
+
* text in 20-byte `_NET_SYSTEM_TRAY_MESSAGE_DATA` chunks, the last of which
|
|
117
|
+
* is padded. **The data messages carry no message id** — only the icon's
|
|
118
|
+
* window — so one message per icon can be in flight at a time, which is the
|
|
119
|
+
* protocol's own limit and the reason this is keyed on the window.
|
|
120
|
+
*
|
|
121
|
+
* Pure, and driven entirely by what arrived: `../manager.ts` decides nothing
|
|
122
|
+
* about a message beyond which icon it came from.
|
|
123
|
+
*/
|
|
124
|
+
export class BalloonAssembler {
|
|
125
|
+
#pending = new Map();
|
|
126
|
+
/** How many messages are half-arrived. Tests read it; nothing else needs it. */
|
|
127
|
+
get pendingCount() {
|
|
128
|
+
return this.#pending.size;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* `SYSTEM_TRAY_BEGIN_MESSAGE`. Returns the message when it needs no data at
|
|
132
|
+
* all — a zero-length one is complete the moment it is announced, and a
|
|
133
|
+
* host that waited for a chunk that never comes would leak it.
|
|
134
|
+
*/
|
|
135
|
+
begin(windowId, info) {
|
|
136
|
+
const length = Math.max(0, info.length | 0);
|
|
137
|
+
const pending = {
|
|
138
|
+
id: info.id >>> 0,
|
|
139
|
+
timeout: Math.max(0, info.timeout | 0),
|
|
140
|
+
length,
|
|
141
|
+
bytes: [],
|
|
142
|
+
};
|
|
143
|
+
if (length === 0) {
|
|
144
|
+
this.#pending.delete(windowId);
|
|
145
|
+
return { windowId, id: pending.id, timeout: pending.timeout, text: '' };
|
|
146
|
+
}
|
|
147
|
+
// A second BEGIN before the first finished replaces it: the client moved
|
|
148
|
+
// on, and holding half of an abandoned message forever is the leak.
|
|
149
|
+
this.#pending.set(windowId, pending);
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
/** One `_NET_SYSTEM_TRAY_MESSAGE_DATA` chunk. Returns the message once the
|
|
153
|
+
* announced number of bytes has arrived. */
|
|
154
|
+
data(windowId, chunk) {
|
|
155
|
+
const pending = this.#pending.get(windowId);
|
|
156
|
+
// Data for a message nobody announced. Dropped rather than guessed at:
|
|
157
|
+
// without a BEGIN there is no id, no timeout and no length to stop at.
|
|
158
|
+
if (!pending)
|
|
159
|
+
return null;
|
|
160
|
+
for (const byte of chunk) {
|
|
161
|
+
if (pending.bytes.length >= pending.length)
|
|
162
|
+
break;
|
|
163
|
+
pending.bytes.push(byte & 0xff);
|
|
164
|
+
}
|
|
165
|
+
if (pending.bytes.length < pending.length)
|
|
166
|
+
return null;
|
|
167
|
+
this.#pending.delete(windowId);
|
|
168
|
+
return {
|
|
169
|
+
windowId,
|
|
170
|
+
id: pending.id,
|
|
171
|
+
timeout: pending.timeout,
|
|
172
|
+
text: decodeUtf8(pending.bytes),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/** `SYSTEM_TRAY_CANCEL_MESSAGE`. True when there was one to cancel. */
|
|
176
|
+
cancel(windowId, id) {
|
|
177
|
+
const pending = this.#pending.get(windowId);
|
|
178
|
+
if (!pending || pending.id !== id >>> 0)
|
|
179
|
+
return false;
|
|
180
|
+
this.#pending.delete(windowId);
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
/** The icon went away mid-message. */
|
|
184
|
+
forget(windowId) {
|
|
185
|
+
this.#pending.delete(windowId);
|
|
186
|
+
}
|
|
187
|
+
clear() {
|
|
188
|
+
this.#pending.clear();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/tray-host/protocol.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,qCAAqC;AACrC,EAAE;AACF,wEAAwE;AACxE,EAAE;AACF,mEAAmE;AAEnE,sEAAsE;AACtE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAE5C,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,yBAAyB,CAAC;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,yBAAyB,CAAC;AACrD,MAAM,CAAC,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;AACjE;wEACwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AAKtC,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,MAAM,UAAU,gBAAgB,CAAC,WAA4B;IAC3D,OAAO,WAAW,KAAK,UAAU;QAC/B,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,sBAAsB,CAAC;AAC7B,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,qBAAqB,MAAM,EAAE,CAAC;AACvC,CAAC;AAwBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAC1B,MAGa,EACb,MAAc;IAEd,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,sEAAsE;IACtE,oEAAoE;IACpE,OAAO,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAwB;IACjD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;QAClC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;YACd,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC;YACT,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC;YACT,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC;YACT,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM;gBAAE,OAAO,GAAG,GAAG,GAAG,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC3B,IAAI,GAAG,MAAM,CAAC;oBACd,IAAI,GAAG,CAAC,CAAC;oBACT,MAAM;gBACR,CAAC;gBACD,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,QAAQ;YAAE,IAAI,GAAG,MAAM,CAAC;QACnC,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,IAAI,IAAI,CAAC;IACZ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAUD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,gBAAgB;IAC3B,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEtC,gFAAgF;IAChF,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CACH,QAAgB,EAChB,IAAqD;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC;YACjB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACtC,MAAM;YACN,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC1E,CAAC;QACD,yEAAyE;QACzE,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;iDAC6C;IAC7C,IAAI,CAAC,QAAgB,EAAE,KAAwB;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM;YAClD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO;YACL,QAAQ;YACR,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,MAAM,CAAC,QAAgB,EAAE,EAAU;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -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/tree/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"}
|
package/dist/tree/hx.js
ADDED
|
@@ -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/tree/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,221 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode, Ref } from 'react';
|
|
2
|
+
import type { StyleProp } from 'react-x11';
|
|
3
|
+
import type { KeyboardEvent } from 'react-x11';
|
|
4
|
+
import type { Host } from './hx.js';
|
|
5
|
+
import type { TreeAccessors, TreeItem, TreeItemId, TreeRow } from './rows.js';
|
|
6
|
+
export type { ResolvedAccessors, TreeAccessors, TreeItem, TreeItemId, TreeRow, TreeGroup, } from './rows.js';
|
|
7
|
+
export { branchEdges, findItem, resolveAccessors, visibleRows, } from './rows.js';
|
|
8
|
+
/** A row, plus what only the render knows about it. */
|
|
9
|
+
export interface TreeRowState<T> extends TreeRow<T> {
|
|
10
|
+
selected: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* The ink the row is painted in.
|
|
13
|
+
*
|
|
14
|
+
* Handed over by name because **colour does not cascade into a drawing**:
|
|
15
|
+
* an `<Icon>` or a `<canvas mono>` takes its colour from its own style, so
|
|
16
|
+
* a glyph that has to stay legible on a selected row has to be told. The
|
|
17
|
+
* `<text>` in the default label needs nothing — text does inherit.
|
|
18
|
+
*/
|
|
19
|
+
color: string;
|
|
20
|
+
/** Open or close this row's branch. Ignored on a leaf. */
|
|
21
|
+
toggle: (open?: boolean) => void;
|
|
22
|
+
/** Make this row the selection, as a click would. */
|
|
23
|
+
select: () => void;
|
|
24
|
+
}
|
|
25
|
+
/** What `renderToggle` is told. */
|
|
26
|
+
export interface TreeToggleState<T> extends TreeRowState<T> {
|
|
27
|
+
/** The size the default chevron is drawn at. */
|
|
28
|
+
size: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* One column of a row's indent, as `renderGuide` sees it — the tree's branch
|
|
32
|
+
* edge.
|
|
33
|
+
*
|
|
34
|
+
* There is one call per level of depth, outermost first. `own` marks the
|
|
35
|
+
* row's own column, where a `├─` or `└─` connector goes; every earlier column
|
|
36
|
+
* belongs to an ancestor and only ever carries a `│`.
|
|
37
|
+
*/
|
|
38
|
+
export interface TreeGuideState<T> {
|
|
39
|
+
row: TreeRowState<T>;
|
|
40
|
+
/** 0 is the outermost column. */
|
|
41
|
+
level: number;
|
|
42
|
+
/** A line passes through this column and continues below this row. */
|
|
43
|
+
continues: boolean;
|
|
44
|
+
/** This is the row's own column rather than an ancestor's. */
|
|
45
|
+
own: boolean;
|
|
46
|
+
/** How wide the column is: the `indent` prop. */
|
|
47
|
+
width: number;
|
|
48
|
+
/** The row's **minimum** height — `rowHeight`. The column stretches to
|
|
49
|
+
* whatever the row turned out to be, and a drawing is told that real size
|
|
50
|
+
* in its own `onDraw`, so this is a hint rather than a measurement.
|
|
51
|
+
* A `<canvas cacheKey>` need not name it: the paint cache already keys on
|
|
52
|
+
* the node's laid-out size. */
|
|
53
|
+
height: number;
|
|
54
|
+
}
|
|
55
|
+
/** What `renderSubtree` is told, in `layout="nested"`. */
|
|
56
|
+
export interface TreeSubtreeState<T> {
|
|
57
|
+
/** The row the subtree hangs off. Never null: the roots are not a
|
|
58
|
+
* subtree, they are the tree. */
|
|
59
|
+
parent: TreeRow<T>;
|
|
60
|
+
/** The depth of the rows inside it — one more than `parent.depth`. */
|
|
61
|
+
depth: number;
|
|
62
|
+
}
|
|
63
|
+
/** The expansion that just changed, alongside the whole set. */
|
|
64
|
+
export interface TreeExpandChange<T> {
|
|
65
|
+
id: TreeItemId;
|
|
66
|
+
item: T;
|
|
67
|
+
open: boolean;
|
|
68
|
+
}
|
|
69
|
+
/** The style overrides, one per part the tree draws. */
|
|
70
|
+
export interface TreeStyles<T> {
|
|
71
|
+
/** A function is called per rendered row, so a style can follow the row's
|
|
72
|
+
* own state without a `renderContent` that repaints everything. */
|
|
73
|
+
row?: StyleProp | ((state: TreeRowState<T>) => StyleProp);
|
|
74
|
+
toggle?: StyleProp;
|
|
75
|
+
guide?: StyleProp | ((state: TreeGuideState<T>) => StyleProp);
|
|
76
|
+
label?: StyleProp;
|
|
77
|
+
subtree?: StyleProp;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* A `<Tree>`'s imperative side.
|
|
81
|
+
*
|
|
82
|
+
* `handleKey` is the one worth knowing about: a filter box above a tree holds
|
|
83
|
+
* the keyboard, and forwarding the arrows to this is how the list below it
|
|
84
|
+
* still walks. It reports whether the tree took the key, so the caller keeps
|
|
85
|
+
* whatever it did not.
|
|
86
|
+
*/
|
|
87
|
+
export interface TreeHandle<T = TreeItem> {
|
|
88
|
+
focus: () => void;
|
|
89
|
+
select: (id: TreeItemId | null) => void;
|
|
90
|
+
/** Open or close a branch by id, anywhere in the tree — including one no
|
|
91
|
+
* row is showing. `false` when the id names nothing loaded. */
|
|
92
|
+
setExpanded: (id: TreeItemId, open?: boolean) => boolean;
|
|
93
|
+
/** Bring a row into view, expanding nothing — a collapsed ancestor means
|
|
94
|
+
* there is no row to scroll to, and this reports `false`. */
|
|
95
|
+
scrollToItem: (id: TreeItemId) => boolean;
|
|
96
|
+
handleKey: (ev: KeyboardEvent) => boolean;
|
|
97
|
+
/** The rows on screen right now, in draw order. */
|
|
98
|
+
rows: () => readonly TreeRow<T>[];
|
|
99
|
+
}
|
|
100
|
+
type BoxProps = Host['box'];
|
|
101
|
+
export interface TreeProps<T = TreeItem> extends TreeAccessors<T>, Omit<BoxProps, 'style' | 'children' | 'ref' | 'onKeyDown'> {
|
|
102
|
+
/** The roots. */
|
|
103
|
+
items?: readonly T[];
|
|
104
|
+
/** Controlled expansion. */
|
|
105
|
+
expanded?: readonly TreeItemId[];
|
|
106
|
+
defaultExpanded?: readonly TreeItemId[];
|
|
107
|
+
/**
|
|
108
|
+
* The whole open set, plus the one row that changed — which is what lazy
|
|
109
|
+
* loading needs: `change.open && !loaded.has(change.id)` is the fetch.
|
|
110
|
+
*/
|
|
111
|
+
onExpandedChange?: (expanded: TreeItemId[], change: TreeExpandChange<T>) => void;
|
|
112
|
+
/** Controlled selection. One row: see the note on multiple selection in
|
|
113
|
+
* the component's doc comment. */
|
|
114
|
+
selected?: TreeItemId | null;
|
|
115
|
+
defaultSelected?: TreeItemId | null;
|
|
116
|
+
onSelect?: (id: TreeItemId, item: T) => void;
|
|
117
|
+
/** The *open* gesture on top of selection — a double click, Enter, or
|
|
118
|
+
* Space. On a branch it also toggles. */
|
|
119
|
+
onActivate?: (id: TreeItemId, item: T) => void;
|
|
120
|
+
/** One level of indent, in pixels. `0` puts the whole indent in
|
|
121
|
+
* `renderSubtree`'s hands instead. */
|
|
122
|
+
indent?: number;
|
|
123
|
+
/**
|
|
124
|
+
* The **shortest** a row may be, in pixels. Default 22.
|
|
125
|
+
*
|
|
126
|
+
* A row is not this tall, it is at least this tall: it grows to whatever
|
|
127
|
+
* its content needs, so a label that wraps to two lines gets a row of two
|
|
128
|
+
* lines. Virtualization measures rows rather than assuming them, which is
|
|
129
|
+
* what makes that safe — see {@link estimatedRowHeight}.
|
|
130
|
+
*/
|
|
131
|
+
rowHeight?: number;
|
|
132
|
+
/**
|
|
133
|
+
* What a row that has not been measured yet is assumed to be, while
|
|
134
|
+
* virtualizing. Defaults to `rowHeight`.
|
|
135
|
+
*
|
|
136
|
+
* Only the rows on screen have ever been laid out, so the scrollbar is
|
|
137
|
+
* this guess for everything else, and it converges as you scroll. Set it
|
|
138
|
+
* when rows are typically much taller than `rowHeight` — a tree of
|
|
139
|
+
* two-line rows with the default guess starts with a scrollbar that thinks
|
|
140
|
+
* the tree is half its real length.
|
|
141
|
+
*/
|
|
142
|
+
estimatedRowHeight?: number;
|
|
143
|
+
/**
|
|
144
|
+
* Build only the rows on screen. `'auto'` (the default) turns it on past
|
|
145
|
+
* {@link VIRTUAL_THRESHOLD} visible rows.
|
|
146
|
+
*
|
|
147
|
+
* Not available in `layout="nested"`, where the rows are not siblings and
|
|
148
|
+
* a slice of them is not a subtree.
|
|
149
|
+
*/
|
|
150
|
+
virtual?: boolean | 'auto';
|
|
151
|
+
/** Rows built either side of the viewport. */
|
|
152
|
+
overscan?: number;
|
|
153
|
+
/**
|
|
154
|
+
* `'flat'` (the default) makes every row a sibling — which is what lets the
|
|
155
|
+
* tree virtualize, and what the branch guides are drawn per row for.
|
|
156
|
+
*
|
|
157
|
+
* `'nested'` puts each expanded branch's rows inside a container of their
|
|
158
|
+
* own, for a `renderSubtree` that wants to draw a background, a rule down
|
|
159
|
+
* the group, or its own indent. Rows carry their own indent in both, so a
|
|
160
|
+
* subtree container that indents as well should pass `indent={0}`.
|
|
161
|
+
*/
|
|
162
|
+
layout?: 'flat' | 'nested';
|
|
163
|
+
/** The open/close control, inside its hit box. */
|
|
164
|
+
renderToggle?: (state: TreeToggleState<T>) => ReactNode;
|
|
165
|
+
/** One column of the indent — the branch edge. Nothing by default. */
|
|
166
|
+
renderGuide?: (state: TreeGuideState<T>) => ReactNode;
|
|
167
|
+
/** The label cell. An icon in front of the text goes here. */
|
|
168
|
+
renderLabel?: (state: TreeRowState<T>) => ReactNode;
|
|
169
|
+
/**
|
|
170
|
+
* Everything inside the row box, given what would have been there.
|
|
171
|
+
*
|
|
172
|
+
* The row *box* stays this component's — it carries the height
|
|
173
|
+
* virtualization counts on, the role and the aria the tree is read through,
|
|
174
|
+
* and the click that selects. Style it with `styles.row`.
|
|
175
|
+
*/
|
|
176
|
+
renderContent?: (state: TreeRowState<T>, content: ReactNode[]) => ReactNode;
|
|
177
|
+
/** The subtree container, in `layout="nested"`. */
|
|
178
|
+
renderSubtree?: (state: TreeSubtreeState<T>, rows: ReactNode) => ReactNode;
|
|
179
|
+
styles?: TreeStyles<T>;
|
|
180
|
+
style?: StyleProp;
|
|
181
|
+
ref?: Ref<TreeHandle<T>>;
|
|
182
|
+
/** react-x11's queries read this off `props` at run time; its element
|
|
183
|
+
* declarations do not carry it, so it is declared here and reaches the
|
|
184
|
+
* root box through the rest spread. */
|
|
185
|
+
'data-testname'?: string;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* `<Tree items />` — a disclosure tree.
|
|
189
|
+
*
|
|
190
|
+
* <Tree items={[{ id: 'src', label: 'src', children: [...] }]} />
|
|
191
|
+
*
|
|
192
|
+
* An item with a `children` array is a branch, **even when the array is
|
|
193
|
+
* empty** — that is how a directory shows a twisty before anything has read
|
|
194
|
+
* it. A branch whose children are not loaded at all says `branch: true`, and
|
|
195
|
+
* fills them in from `onExpandedChange`.
|
|
196
|
+
*
|
|
197
|
+
* Expansion and selection are each controlled (`expanded` + `onExpandedChange`,
|
|
198
|
+
* `selected` + `onSelect`) or uncontrolled (`defaultExpanded`,
|
|
199
|
+
* `defaultSelected`).
|
|
200
|
+
*
|
|
201
|
+
* The tree is a single tab stop. Up/Down walk the visible rows, Right expands
|
|
202
|
+
* a branch and then steps into it, Left collapses and then steps out to the
|
|
203
|
+
* parent, PageUp/PageDown move by a viewport, Home/End jump to the ends,
|
|
204
|
+
* Enter and Space activate, and typing letters jumps to a matching row — the
|
|
205
|
+
* same type-ahead core's `Select` and menus use.
|
|
206
|
+
*
|
|
207
|
+
* **The focus is on the tree, not on the row.** Core's tree focused each row
|
|
208
|
+
* node; a virtualized row is unmounted the moment it scrolls out of view and
|
|
209
|
+
* the focus would go with it, so the container is the focusable thing and the
|
|
210
|
+
* selection is the cursor. That is `Table`'s model, and the honest caveat is
|
|
211
|
+
* the one `Table` carries: while virtualizing, only the rendered rows are in
|
|
212
|
+
* the accessibility tree — the same rows a sighted user can see.
|
|
213
|
+
*
|
|
214
|
+
* **Selection is one row.** Multiple selection is not a prop because there is
|
|
215
|
+
* no version of it everybody agrees on (does Shift extend from the anchor or
|
|
216
|
+
* from the cursor? does Ctrl+click on a branch take its children?), and every
|
|
217
|
+
* such policy is expressible on top of what is here: hold the set yourself,
|
|
218
|
+
* pass `selected` for the cursor, and paint the rest from `styles.row`.
|
|
219
|
+
*/
|
|
220
|
+
export declare function Tree<T = TreeItem>({ items, expanded, defaultExpanded, onExpandedChange, selected, defaultSelected, onSelect, onActivate, indent, rowHeight, estimatedRowHeight, virtual, overscan, layout, renderToggle, renderGuide, renderLabel, renderContent, renderSubtree, styles, style, ref, getId, getLabel, getText, getChildren, isBranch, isDisabled, onScroll, onViewport, ...boxProps }: TreeProps<T>): ReactElement;
|
|
221
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tree/index.ts"],"names":[],"mappings":"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"}
|