@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,158 @@
|
|
|
1
|
+
// Per-run decoration, as functions over one laid-out line.
|
|
2
|
+
//
|
|
3
|
+
// This is the part of `<richtext>` that was never really about the element:
|
|
4
|
+
// ntk lets a span carry fields it does not understand and hands them back on
|
|
5
|
+
// the laid-out runs, and everything here reads those fields back and draws
|
|
6
|
+
// what they describe — a chip behind inline code, a terminal cell's
|
|
7
|
+
// background, a link's underline, a strikethrough, and the bands a selection
|
|
8
|
+
// covers.
|
|
9
|
+
//
|
|
10
|
+
// It lives in its own module because `<Html>` draws the same decorations
|
|
11
|
+
// against the same `TextRun` vocabulary while owning its own layout: it has
|
|
12
|
+
// laid a line out at a place of its own choosing and needs the decoration
|
|
13
|
+
// drawn *there*, not wherever the layout put it. So each function takes a
|
|
14
|
+
// line and an offset rather than a layout and a node, and `node.ts` is a loop
|
|
15
|
+
// over its own lines calling them.
|
|
16
|
+
import { codePointAtOffset, codeUnitOffsets } from '../internal/text.js';
|
|
17
|
+
export function canFill(ctx) {
|
|
18
|
+
return typeof ctx?.fillRect === 'function';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The fills that sit **under** the glyphs: the inline-code chip, a
|
|
22
|
+
* terminal's cell backgrounds, a highlighted `<span>`.
|
|
23
|
+
*
|
|
24
|
+
* `dx`/`dy` translate the line's own coordinates into the target space, so a
|
|
25
|
+
* caller that placed this line itself passes where it placed it.
|
|
26
|
+
*/
|
|
27
|
+
export function paintRunBackgrounds(ctx, line, dx, dy) {
|
|
28
|
+
for (const r of line.runs) {
|
|
29
|
+
const bg = r.span.bg;
|
|
30
|
+
if (!bg)
|
|
31
|
+
continue;
|
|
32
|
+
ctx.fillStyle = bg;
|
|
33
|
+
if (r.span.bgFill === 'line') {
|
|
34
|
+
// Both edges are rounded from absolute positions rather than the left
|
|
35
|
+
// being rounded and the width ceiled, so two adjacent runs agree on the
|
|
36
|
+
// pixel between them: no seam, and no overlap either.
|
|
37
|
+
const left = Math.round(dx + line.x + r.x);
|
|
38
|
+
const right = Math.round(dx + line.x + r.x + r.width);
|
|
39
|
+
ctx.fillRect(left, Math.round(dy + line.y), Math.max(0, right - left), Math.ceil(line.height));
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const m = r.run.font.metrics(r.run.size);
|
|
43
|
+
ctx.fillRect(Math.round(dx + line.x + r.x - 2), Math.round(dy + line.baseline - m.ascent), Math.ceil(r.width + 4), Math.ceil(m.ascent + m.descent));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** The rules that sit **over** the glyphs: link underlines, strikethrough. */
|
|
47
|
+
export function paintRunRules(ctx, line, dx, dy) {
|
|
48
|
+
for (const r of line.runs) {
|
|
49
|
+
const { underline, strike } = r.span;
|
|
50
|
+
if (underline) {
|
|
51
|
+
ctx.fillStyle = underline;
|
|
52
|
+
underlineRule(ctx, Math.round(dx + line.x + r.x), Math.round(dy + line.baseline + 2), Math.ceil(r.width), r.span.underlineStyle ?? 'single');
|
|
53
|
+
}
|
|
54
|
+
if (strike) {
|
|
55
|
+
const m = r.run.font.metrics(r.run.size);
|
|
56
|
+
ctx.fillStyle = strike;
|
|
57
|
+
ctx.fillRect(Math.round(dx + line.x + r.x), Math.round(dy + line.baseline - m.ascent * 0.38), Math.ceil(r.width), 1);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The rule under a run, in one of SGR 4's five styles.
|
|
63
|
+
*
|
|
64
|
+
* All five are built from 1px rectangles rather than a stroked path: the mock
|
|
65
|
+
* backend has no path API, and a hairline stroke on a text baseline is not
|
|
66
|
+
* worth an antialiased path even where there is one. The curl is a two-level
|
|
67
|
+
* square wave — at a text size it reads as a squiggle, which is the entire
|
|
68
|
+
* job.
|
|
69
|
+
*/
|
|
70
|
+
export function underlineRule(ctx, x, y, width, style) {
|
|
71
|
+
switch (style) {
|
|
72
|
+
case 'double':
|
|
73
|
+
ctx.fillRect(x, y, width, 1);
|
|
74
|
+
ctx.fillRect(x, y + 2, width, 1);
|
|
75
|
+
return;
|
|
76
|
+
case 'dotted':
|
|
77
|
+
for (let i = 0; i < width; i += 2)
|
|
78
|
+
ctx.fillRect(x + i, y, 1, 1);
|
|
79
|
+
return;
|
|
80
|
+
case 'dashed':
|
|
81
|
+
for (let i = 0; i < width; i += 6)
|
|
82
|
+
ctx.fillRect(x + i, y, Math.min(3, width - i), 1);
|
|
83
|
+
return;
|
|
84
|
+
case 'curly':
|
|
85
|
+
for (let i = 0; i < width; i += 2) {
|
|
86
|
+
ctx.fillRect(x + i, y + (i % 4 === 0 ? 0 : 1), Math.min(2, width - i), 1);
|
|
87
|
+
}
|
|
88
|
+
return;
|
|
89
|
+
default:
|
|
90
|
+
ctx.fillRect(x, y, width, 1);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** A selected empty line still shows as a sliver, so a selection spanning a
|
|
95
|
+
* blank line does not appear to skip it. Core's own width for the same. */
|
|
96
|
+
export const EMPTY_LINE_BAND = 4;
|
|
97
|
+
/**
|
|
98
|
+
* The horizontal stretches of one line that a range `[from, to)` — in **code
|
|
99
|
+
* units** of the laid-out text — covers.
|
|
100
|
+
*
|
|
101
|
+
* More than one on a line that changes direction, because a selection is
|
|
102
|
+
* contiguous in *logical* order while a line is laid out in *visual* order: a
|
|
103
|
+
* range crossing from Latin into Arabic covers two disjoint stretches of
|
|
104
|
+
* pixels, and a single rectangle drawn between the two caret positions paints
|
|
105
|
+
* over text nobody selected. So this walks the line's runs and intersects
|
|
106
|
+
* each with the range rather than interpolating between carets.
|
|
107
|
+
*
|
|
108
|
+
* Core's `<text>` does the same thing with the same code (react-x11#291's
|
|
109
|
+
* `rangeBands`), which is not on its exports map; when it is, delete this.
|
|
110
|
+
*/
|
|
111
|
+
export function lineBands(layout, line, offsets, from, to) {
|
|
112
|
+
const spans = [];
|
|
113
|
+
for (const positioned of line.runs) {
|
|
114
|
+
const a = Math.max(from, positioned.start);
|
|
115
|
+
const b = Math.min(to, positioned.end);
|
|
116
|
+
if (b <= a)
|
|
117
|
+
continue;
|
|
118
|
+
const rtl = positioned.run?.direction === 'rtl';
|
|
119
|
+
const near = line.x + positioned.x;
|
|
120
|
+
const far = near + positioned.width;
|
|
121
|
+
// a boundary at the run's own logical edge is that edge — which side of
|
|
122
|
+
// the pixels it is on is what the run's direction decides
|
|
123
|
+
const edgeAt = (cu, logicalStart) => {
|
|
124
|
+
if (logicalStart ? cu <= positioned.start : cu >= positioned.end) {
|
|
125
|
+
return rtl === logicalStart ? far : near;
|
|
126
|
+
}
|
|
127
|
+
return layout.caretPosition(codePointAtOffset(offsets, cu)).x;
|
|
128
|
+
};
|
|
129
|
+
const x1 = edgeAt(a, true);
|
|
130
|
+
const x2 = edgeAt(b, false);
|
|
131
|
+
spans.push([Math.min(x1, x2), Math.max(x1, x2)]);
|
|
132
|
+
}
|
|
133
|
+
if (!spans.length) {
|
|
134
|
+
return from < line.end && to > line.start
|
|
135
|
+
? [{ x: line.x, width: EMPTY_LINE_BAND }]
|
|
136
|
+
: [];
|
|
137
|
+
}
|
|
138
|
+
// Runs also split at every style span, so an ordinary line with a bold word
|
|
139
|
+
// in it is three rectangles that touch. Merging keeps the common case at
|
|
140
|
+
// one per line.
|
|
141
|
+
spans.sort((p, q) => p[0] - q[0]);
|
|
142
|
+
const out = [];
|
|
143
|
+
let [left, right] = spans[0];
|
|
144
|
+
for (let i = 1; i <= spans.length; i += 1) {
|
|
145
|
+
const next = spans[i];
|
|
146
|
+
if (next && next[0] <= right + 0.5) {
|
|
147
|
+
right = Math.max(right, next[1]);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
if (right > left)
|
|
151
|
+
out.push({ x: left, width: right - left });
|
|
152
|
+
if (next)
|
|
153
|
+
[left, right] = next;
|
|
154
|
+
}
|
|
155
|
+
return out;
|
|
156
|
+
}
|
|
157
|
+
export { codePointAtOffset, codeUnitOffsets };
|
|
158
|
+
//# sourceMappingURL=runs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/richtext/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Key, ReactElement, ReactNode } from 'react';
|
|
2
|
+
import type { ReactX11Elements, Theme } from 'react-x11';
|
|
3
|
+
/** The host elements, by name. */
|
|
4
|
+
export type Host = ReactX11Elements;
|
|
5
|
+
/**
|
|
6
|
+
* What every element takes on top of its own props.
|
|
7
|
+
*
|
|
8
|
+
* `theme` is honoured by **every** node — `Node.theme` merges `props.theme`
|
|
9
|
+
* over the inherited palette, whatever the kind — but react-x11's element
|
|
10
|
+
* declarations only put it on `<window>`. A widget re-declares the theme it
|
|
11
|
+
* read from context onto its own root so that `$token` values still resolve
|
|
12
|
+
* inside a `<popup>`, which is a separate window and does not inherit the
|
|
13
|
+
* trigger's node tree. So the prop is real; only the declaration is narrow.
|
|
14
|
+
*/
|
|
15
|
+
interface CommonProps {
|
|
16
|
+
key?: Key;
|
|
17
|
+
/** `Theme` is listed alongside the record because it is an interface, and
|
|
18
|
+
* an interface has no implicit index signature — so the palette `useTheme`
|
|
19
|
+
* hands back is not assignable to the record react-x11 declares. */
|
|
20
|
+
theme?: Theme | Record<string, string | number>;
|
|
21
|
+
}
|
|
22
|
+
export declare function hx<K extends keyof Host>(type: K, props?: (Omit<Host[K], 'theme'> & CommonProps) | null, ...children: ReactNode[]): ReactElement;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=hx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx.d.ts","sourceRoot":"","sources":["../../src/table/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/table/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/table/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,169 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode, Ref } from 'react';
|
|
2
|
+
import type { StyleProp } from 'react-x11';
|
|
3
|
+
import type { KeyboardEvent, MouseEvent } from 'react-x11';
|
|
4
|
+
import type { Host } from './hx.js';
|
|
5
|
+
import type { TableCellState, TableColumn, TableHeaderCellState, TableRow, TableRowId, TableRowState, TableSort } from './rows.js';
|
|
6
|
+
export type { ResolvedWidths, TableCellState, TableColumn, TableHeaderCellState, TableRow, TableRowId, TableRowState, TableSort, } from './rows.js';
|
|
7
|
+
export { MIN_COLUMN, UNSIZED_MIN, columnValue, defaultCompare, orderRows, resolveGetId, resolveWidths, } from './rows.js';
|
|
8
|
+
/** The selection that just changed, alongside the whole set. `id`/`row` name
|
|
9
|
+
* the row the gesture landed on; a select-all has no single row to name. */
|
|
10
|
+
export interface TableSelectChange<Row> {
|
|
11
|
+
type: 'replace' | 'toggle' | 'range' | 'all';
|
|
12
|
+
id?: TableRowId;
|
|
13
|
+
row?: Row;
|
|
14
|
+
}
|
|
15
|
+
/** The style overrides, one per part the table draws. Function forms are
|
|
16
|
+
* called per rendered row or cell, so a style can follow row state — zebra
|
|
17
|
+
* striping is `row: (s) => s.index % 2 === 1 && { backgroundColor: … }` —
|
|
18
|
+
* without a render prop that repaints everything. */
|
|
19
|
+
export interface TableStyles<Row> {
|
|
20
|
+
/** The header strip — the clipping box the header row scrolls inside. */
|
|
21
|
+
header?: StyleProp;
|
|
22
|
+
headerCell?: StyleProp | ((state: TableHeaderCellState<Row>) => StyleProp);
|
|
23
|
+
row?: StyleProp | ((state: TableRowState<Row>) => StyleProp);
|
|
24
|
+
cell?: StyleProp | ((state: TableCellState<Row>) => StyleProp);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A `<Table>`'s imperative side.
|
|
28
|
+
*
|
|
29
|
+
* `handleKey` is the one worth knowing about: a filter box above a table
|
|
30
|
+
* holds the keyboard, and forwarding the arrows to this is how the list
|
|
31
|
+
* below it still walks. It reports whether the table took the key, so the
|
|
32
|
+
* caller keeps whatever it did not.
|
|
33
|
+
*/
|
|
34
|
+
export interface TableHandle<Row = any> {
|
|
35
|
+
focus: () => void;
|
|
36
|
+
/** Select a row by id, as a click would; `null` clears an uncontrolled
|
|
37
|
+
* selection. An id naming no row is a no-op. */
|
|
38
|
+
select: (id: TableRowId | null) => void;
|
|
39
|
+
/** Bring a row into view. `false` when the id names nothing. */
|
|
40
|
+
scrollToRow: (id: TableRowId) => boolean;
|
|
41
|
+
handleKey: (ev: KeyboardEvent) => boolean;
|
|
42
|
+
/** The rows in display order — the sorted model, not the rendered slice. */
|
|
43
|
+
rows: () => readonly TableRow<Row>[];
|
|
44
|
+
}
|
|
45
|
+
type BoxProps = Host['box'];
|
|
46
|
+
interface TableBaseProps<Row> extends Omit<BoxProps, 'style' | 'children' | 'ref' | 'onKeyDown'> {
|
|
47
|
+
columns?: readonly TableColumn<Row>[];
|
|
48
|
+
rows?: readonly Row[];
|
|
49
|
+
/** The row's key. Defaults to `row.id`, and a row that resolves no id is a
|
|
50
|
+
* remedial `TypeError` rather than a broken render. Memoize it. */
|
|
51
|
+
getId?: (row: Row) => TableRowId;
|
|
52
|
+
/** Controlled sort **descriptor**. Who *orders the rows* is a separate
|
|
53
|
+
* question — see {@link presorted}. */
|
|
54
|
+
sort?: TableSort | null;
|
|
55
|
+
defaultSort?: TableSort | null;
|
|
56
|
+
onSortChange?: (sort: TableSort | null) => void;
|
|
57
|
+
/**
|
|
58
|
+
* The rows already arrive in display order — a server sorted them — so the
|
|
59
|
+
* table only renders the sort indicator and reports toggles. Composes with
|
|
60
|
+
* either descriptor mode; without it the table orders the rows itself,
|
|
61
|
+
* `column.compare ?? natural order over value()`.
|
|
62
|
+
*/
|
|
63
|
+
presorted?: boolean;
|
|
64
|
+
/** The *open* gesture on top of selection — a double click, or Enter. */
|
|
65
|
+
onActivate?: (id: TableRowId, row: Row) => void;
|
|
66
|
+
/** Right-click on a row. The row is selected first unless it is already
|
|
67
|
+
* part of the selection — the file-manager convention, so a context menu
|
|
68
|
+
* always applies to what is under the pointer. */
|
|
69
|
+
onRowContextMenu?: (id: TableRowId, row: Row, ev: MouseEvent) => void;
|
|
70
|
+
/** A column was resized — by drag, or by Left/Right on the focused grip.
|
|
71
|
+
* The resize also converts the column to fixed at that width. */
|
|
72
|
+
onColumnResize?: (id: string, width: number) => void;
|
|
73
|
+
/**
|
|
74
|
+
* Declare every row exactly this tall, in pixels — core's model: the
|
|
75
|
+
* visible slice is arithmetic and nothing is ever measured. **Omit it and
|
|
76
|
+
* rows are measured instead**: any row may be any height, at the cost of
|
|
77
|
+
* the measure pass. `rowHeight={24}` restores core's exact behaviour.
|
|
78
|
+
*/
|
|
79
|
+
rowHeight?: number;
|
|
80
|
+
/** What an unmeasured row is assumed — and floored — at, while measuring.
|
|
81
|
+
* Default 24. The scrollbar is this guess for every row not yet seen, and
|
|
82
|
+
* it converges as you scroll. */
|
|
83
|
+
estimatedRowHeight?: number;
|
|
84
|
+
/** Build only the rows on screen. `'auto'` (the default) turns it on past
|
|
85
|
+
* 200 rows. */
|
|
86
|
+
virtual?: boolean | 'auto';
|
|
87
|
+
/** Rows built either side of the viewport. */
|
|
88
|
+
overscan?: number;
|
|
89
|
+
/**
|
|
90
|
+
* Everything inside the row box, given what would have been there.
|
|
91
|
+
*
|
|
92
|
+
* The row *box* stays this component's — it carries the height
|
|
93
|
+
* virtualization counts on, the role and aria the table is read through,
|
|
94
|
+
* and the click that selects. Style it with `styles.row`.
|
|
95
|
+
*/
|
|
96
|
+
renderRow?: (state: TableRowState<Row>, content: ReactNode[]) => ReactNode;
|
|
97
|
+
/** The body's content when the rows resolve empty. Nothing by default —
|
|
98
|
+
* the header still shows. */
|
|
99
|
+
renderEmpty?: () => ReactNode;
|
|
100
|
+
styles?: TableStyles<Row>;
|
|
101
|
+
style?: StyleProp;
|
|
102
|
+
/** Whether the table is a tab stop. Default true; `false` for a table
|
|
103
|
+
* inside a popup that owns the focus. */
|
|
104
|
+
focusable?: boolean;
|
|
105
|
+
ref?: Ref<TableHandle<Row>>;
|
|
106
|
+
/** react-x11's queries read this off `props` at run time; its element
|
|
107
|
+
* declarations do not carry it, so it is declared here and reaches the
|
|
108
|
+
* root box through the rest spread. */
|
|
109
|
+
'data-testname'?: string;
|
|
110
|
+
}
|
|
111
|
+
/** Single selection — the default, and core's behaviour. */
|
|
112
|
+
export interface TableSingleSelectProps<Row> extends TableBaseProps<Row> {
|
|
113
|
+
selectionMode?: 'single';
|
|
114
|
+
selected?: TableRowId | null;
|
|
115
|
+
defaultSelected?: TableRowId | null;
|
|
116
|
+
onSelect?: (id: TableRowId, row: Row) => void;
|
|
117
|
+
}
|
|
118
|
+
/** Multiple selection: the file-manager grammar — click replaces, Ctrl
|
|
119
|
+
* toggles, Shift extends from the anchor, Ctrl+A takes everything. */
|
|
120
|
+
export interface TableMultiSelectProps<Row> extends TableBaseProps<Row> {
|
|
121
|
+
selectionMode: 'multiple';
|
|
122
|
+
selected?: readonly TableRowId[];
|
|
123
|
+
defaultSelected?: readonly TableRowId[];
|
|
124
|
+
onSelectedChange?: (selected: TableRowId[], change: TableSelectChange<Row>) => void;
|
|
125
|
+
}
|
|
126
|
+
/** Display only: no cursor, no hover, clicks select nothing. */
|
|
127
|
+
export interface TableStaticProps<Row> extends TableBaseProps<Row> {
|
|
128
|
+
selectionMode: 'none';
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The props are a discriminated union on `selectionMode`, the Calendar's
|
|
132
|
+
* precedent: one id and an array of ids are different shapes, and the
|
|
133
|
+
* compiler walking the caller through the change is the point. The wrong
|
|
134
|
+
* pairing at run time is a remedial `TypeError`, not an empty render.
|
|
135
|
+
*/
|
|
136
|
+
export type TableProps<Row = any> = TableSingleSelectProps<Row> | TableMultiSelectProps<Row> | TableStaticProps<Row>;
|
|
137
|
+
/**
|
|
138
|
+
* `<Table columns rows />` — a data table with a header that stays put.
|
|
139
|
+
*
|
|
140
|
+
* <Table
|
|
141
|
+
* columns={[{ id: 'name', label: 'Name', flex: 1 }]}
|
|
142
|
+
* rows={[{ id: 1, name: 'index.ts' }]}
|
|
143
|
+
* />
|
|
144
|
+
*
|
|
145
|
+
* Columns are `{ id, label, width | flex, align, value, render }` — core's
|
|
146
|
+
* shape. `value(row)` feeds sorting and the default cell text;
|
|
147
|
+
* `render(row, state)` replaces the cell entirely, and the state says
|
|
148
|
+
* whether it is on the selected row, because that row is a filled bar and a
|
|
149
|
+
* colour chosen against the resting background is unreadable on it. A
|
|
150
|
+
* column declaring neither `width` nor `flex` stretches (`flex: 1`, floored
|
|
151
|
+
* at 120px), so a table with no sizing config fills its box.
|
|
152
|
+
*
|
|
153
|
+
* Sorting is uncontrolled unless you pass `sort`; the header reports
|
|
154
|
+
* `onSortChange` either way, and `presorted` says the rows already arrive
|
|
155
|
+
* ordered. Selection is single by default (`selected` + `onSelect`),
|
|
156
|
+
* `selectionMode="multiple"` for the set (`selected` + `onSelectedChange`),
|
|
157
|
+
* `"none"` for display. `onActivate` is the *open* gesture on top — a double
|
|
158
|
+
* click or Enter.
|
|
159
|
+
*
|
|
160
|
+
* The table is a single tab stop; Up/Down walk the rows, PageUp/PageDown
|
|
161
|
+
* move by a viewport, Home/End jump, Shift extends in multiple mode, Space
|
|
162
|
+
* toggles there, Ctrl+A takes everything. **The focus is on the table, not
|
|
163
|
+
* the row** — a virtualized row is unmounted the moment it scrolls out and
|
|
164
|
+
* focus would go with it, so the selection is the cursor. The honest caveat:
|
|
165
|
+
* while virtualizing, only the rendered rows are in the accessibility tree —
|
|
166
|
+
* the same rows a sighted user can see.
|
|
167
|
+
*/
|
|
168
|
+
export declare function Table<Row = any>(props: TableProps<Row>): ReactElement;
|
|
169
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":"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"}
|