@react-x11/components 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +979 -21
- package/dist/ansi/cast.d.ts +48 -0
- package/dist/ansi/cast.d.ts.map +1 -0
- package/dist/ansi/cast.js +135 -0
- package/dist/ansi/cast.js.map +1 -0
- package/dist/ansi/index.d.ts +10 -0
- package/dist/ansi/index.d.ts.map +1 -0
- package/dist/ansi/index.js +27 -0
- package/dist/ansi/index.js.map +1 -0
- package/dist/ansi/palette.d.ts +79 -0
- package/dist/ansi/palette.d.ts.map +1 -0
- package/dist/ansi/palette.js +155 -0
- package/dist/ansi/palette.js.map +1 -0
- package/dist/ansi/parse.d.ts +114 -0
- package/dist/ansi/parse.d.ts.map +1 -0
- package/dist/ansi/parse.js +687 -0
- package/dist/ansi/parse.js.map +1 -0
- package/dist/ansi/sgr.d.ts +87 -0
- package/dist/ansi/sgr.d.ts.map +1 -0
- package/dist/ansi/sgr.js +302 -0
- package/dist/ansi/sgr.js.map +1 -0
- package/dist/ansi/utf8.d.ts +15 -0
- package/dist/ansi/utf8.d.ts.map +1 -0
- package/dist/ansi/utf8.js +82 -0
- package/dist/ansi/utf8.js.map +1 -0
- package/dist/calendar/Calendar.d.ts +136 -0
- package/dist/calendar/Calendar.d.ts.map +1 -0
- package/dist/calendar/Calendar.js +460 -0
- package/dist/calendar/Calendar.js.map +1 -0
- package/dist/calendar/DatePicker.d.ts +52 -0
- package/dist/calendar/DatePicker.d.ts.map +1 -0
- package/dist/calendar/DatePicker.js +257 -0
- package/dist/calendar/DatePicker.js.map +1 -0
- package/dist/calendar/dates.d.ts +90 -0
- package/dist/calendar/dates.d.ts.map +1 -0
- package/dist/calendar/dates.js +236 -0
- package/dist/calendar/dates.js.map +1 -0
- package/dist/calendar/index.d.ts +8 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/index.js +15 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/charts/components.d.ts +141 -0
- package/dist/charts/components.d.ts.map +1 -0
- package/dist/charts/components.js +580 -0
- package/dist/charts/components.js.map +1 -0
- package/dist/charts/data.d.ts +198 -0
- package/dist/charts/data.d.ts.map +1 -0
- package/dist/charts/data.js +616 -0
- package/dist/charts/data.js.map +1 -0
- package/dist/charts/hx.d.ts +21 -0
- package/dist/charts/hx.d.ts.map +1 -0
- package/dist/charts/hx.js +15 -0
- package/dist/charts/hx.js.map +1 -0
- package/dist/charts/index.d.ts +27 -0
- package/dist/charts/index.d.ts.map +1 -0
- package/dist/charts/index.js +38 -0
- package/dist/charts/index.js.map +1 -0
- package/dist/charts/node.d.ts +96 -0
- package/dist/charts/node.d.ts.map +1 -0
- package/dist/charts/node.js +720 -0
- package/dist/charts/node.js.map +1 -0
- package/dist/charts/render.d.ts +153 -0
- package/dist/charts/render.d.ts.map +1 -0
- package/dist/charts/render.js +762 -0
- package/dist/charts/render.js.map +1 -0
- package/dist/charts/scale.d.ts +42 -0
- package/dist/charts/scale.d.ts.map +1 -0
- package/dist/charts/scale.js +173 -0
- package/dist/charts/scale.js.map +1 -0
- package/dist/charts/spec.d.ts +91 -0
- package/dist/charts/spec.d.ts.map +1 -0
- package/dist/charts/spec.js +33 -0
- package/dist/charts/spec.js.map +1 -0
- package/dist/charts/timers.d.ts +6 -0
- package/dist/charts/timers.d.ts.map +1 -0
- package/dist/charts/timers.js +14 -0
- package/dist/charts/timers.js.map +1 -0
- package/dist/code/hx.d.ts +24 -0
- package/dist/code/hx.d.ts.map +1 -0
- package/dist/code/hx.js +25 -0
- package/dist/code/hx.js.map +1 -0
- package/dist/code/index.d.ts +45 -0
- package/dist/code/index.d.ts.map +1 -0
- package/dist/code/index.js +93 -0
- package/dist/code/index.js.map +1 -0
- package/dist/code-editor/completion.d.ts +26 -0
- package/dist/code-editor/completion.d.ts.map +1 -0
- package/dist/code-editor/completion.js +129 -0
- package/dist/code-editor/completion.js.map +1 -0
- package/dist/code-editor/doc.d.ts +35 -0
- package/dist/code-editor/doc.d.ts.map +1 -0
- package/dist/code-editor/doc.js +162 -0
- package/dist/code-editor/doc.js.map +1 -0
- package/dist/code-editor/hx.d.ts +13 -0
- package/dist/code-editor/hx.d.ts.map +1 -0
- package/dist/code-editor/hx.js +10 -0
- package/dist/code-editor/hx.js.map +1 -0
- package/dist/code-editor/index.d.ts +88 -0
- package/dist/code-editor/index.d.ts.map +1 -0
- package/dist/code-editor/index.js +401 -0
- package/dist/code-editor/index.js.map +1 -0
- package/dist/code-editor/node.d.ts +343 -0
- package/dist/code-editor/node.d.ts.map +1 -0
- package/dist/code-editor/node.js +1521 -0
- package/dist/code-editor/node.js.map +1 -0
- package/dist/code-language/hljs.d.ts +47 -0
- package/dist/code-language/hljs.d.ts.map +1 -0
- package/dist/code-language/hljs.js +211 -0
- package/dist/code-language/hljs.js.map +1 -0
- package/dist/code-language/index.d.ts +22 -0
- package/dist/code-language/index.d.ts.map +1 -0
- package/dist/code-language/index.js +20 -0
- package/dist/code-language/index.js.map +1 -0
- package/dist/code-language/languages/glsl.d.ts +4 -0
- package/dist/code-language/languages/glsl.d.ts.map +1 -0
- package/dist/code-language/languages/glsl.js +99 -0
- package/dist/code-language/languages/glsl.js.map +1 -0
- package/dist/code-language/languages/javascript.d.ts +10 -0
- package/dist/code-language/languages/javascript.d.ts.map +1 -0
- package/dist/code-language/languages/javascript.js +360 -0
- package/dist/code-language/languages/javascript.js.map +1 -0
- package/dist/code-language/languages/json.d.ts +4 -0
- package/dist/code-language/languages/json.d.ts.map +1 -0
- package/dist/code-language/languages/json.js +68 -0
- package/dist/code-language/languages/json.js.map +1 -0
- package/dist/code-language/languages/shell.d.ts +4 -0
- package/dist/code-language/languages/shell.d.ts.map +1 -0
- package/dist/code-language/languages/shell.js +189 -0
- package/dist/code-language/languages/shell.js.map +1 -0
- package/dist/code-language/languages/sql.d.ts +11 -0
- package/dist/code-language/languages/sql.d.ts.map +1 -0
- package/dist/code-language/languages/sql.js +133 -0
- package/dist/code-language/languages/sql.js.map +1 -0
- package/dist/code-language/lezer.d.ts +24 -0
- package/dist/code-language/lezer.d.ts.map +1 -0
- package/dist/code-language/lezer.js +148 -0
- package/dist/code-language/lezer.js.map +1 -0
- package/dist/code-language/registry.d.ts +19 -0
- package/dist/code-language/registry.d.ts.map +1 -0
- package/dist/code-language/registry.js +56 -0
- package/dist/code-language/registry.js.map +1 -0
- package/dist/code-language/runs.d.ts +35 -0
- package/dist/code-language/runs.d.ts.map +1 -0
- package/dist/code-language/runs.js +88 -0
- package/dist/code-language/runs.js.map +1 -0
- package/dist/code-language/stream.d.ts +70 -0
- package/dist/code-language/stream.d.ts.map +1 -0
- package/dist/code-language/stream.js +243 -0
- package/dist/code-language/stream.js.map +1 -0
- package/dist/code-language/textmate.d.ts +27 -0
- package/dist/code-language/textmate.d.ts.map +1 -0
- package/dist/code-language/textmate.js +86 -0
- package/dist/code-language/textmate.js.map +1 -0
- package/dist/code-language/theme.d.ts +26 -0
- package/dist/code-language/theme.d.ts.map +1 -0
- package/dist/code-language/theme.js +108 -0
- package/dist/code-language/theme.js.map +1 -0
- package/dist/code-language/timers.d.ts +7 -0
- package/dist/code-language/timers.d.ts.map +1 -0
- package/dist/code-language/timers.js +22 -0
- package/dist/code-language/timers.js.map +1 -0
- package/dist/code-language/types.d.ts +173 -0
- package/dist/code-language/types.d.ts.map +1 -0
- package/dist/code-language/types.js +41 -0
- package/dist/code-language/types.js.map +1 -0
- package/dist/codeblock/index.d.ts +69 -0
- package/dist/codeblock/index.d.ts.map +1 -0
- package/dist/codeblock/index.js +85 -0
- package/dist/codeblock/index.js.map +1 -0
- package/dist/color-picker/ColorField.d.ts +39 -0
- package/dist/color-picker/ColorField.d.ts.map +1 -0
- package/dist/color-picker/ColorField.js +239 -0
- package/dist/color-picker/ColorField.js.map +1 -0
- package/dist/color-picker/ColorPicker.d.ts +109 -0
- package/dist/color-picker/ColorPicker.d.ts.map +1 -0
- package/dist/color-picker/ColorPicker.js +757 -0
- package/dist/color-picker/ColorPicker.js.map +1 -0
- package/dist/color-picker/color.d.ts +105 -0
- package/dist/color-picker/color.d.ts.map +1 -0
- package/dist/color-picker/color.js +313 -0
- package/dist/color-picker/color.js.map +1 -0
- package/dist/color-picker/index.d.ts +8 -0
- package/dist/color-picker/index.d.ts.map +1 -0
- package/dist/color-picker/index.js +19 -0
- package/dist/color-picker/index.js.map +1 -0
- package/dist/desktop-calendar/eds.d.ts +102 -0
- package/dist/desktop-calendar/eds.d.ts.map +1 -0
- package/dist/desktop-calendar/eds.js +356 -0
- package/dist/desktop-calendar/eds.js.map +1 -0
- package/dist/desktop-calendar/ical.d.ts +63 -0
- package/dist/desktop-calendar/ical.d.ts.map +1 -0
- package/dist/desktop-calendar/ical.js +57 -0
- package/dist/desktop-calendar/ical.js.map +1 -0
- package/dist/desktop-calendar/index.d.ts +72 -0
- package/dist/desktop-calendar/index.d.ts.map +1 -0
- package/dist/desktop-calendar/index.js +213 -0
- package/dist/desktop-calendar/index.js.map +1 -0
- package/dist/embed/client.d.ts +121 -0
- package/dist/embed/client.d.ts.map +1 -0
- package/dist/embed/client.js +203 -0
- package/dist/embed/client.js.map +1 -0
- package/dist/embed/host.d.ts +96 -0
- package/dist/embed/host.d.ts.map +1 -0
- package/dist/embed/host.js +266 -0
- package/dist/embed/host.js.map +1 -0
- package/dist/embed/index.d.ts +5 -0
- package/dist/embed/index.d.ts.map +1 -0
- package/dist/embed/index.js +13 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed/timers.d.ts +6 -0
- package/dist/embed/timers.d.ts.map +1 -0
- package/dist/embed/timers.js +16 -0
- package/dist/embed/timers.js.map +1 -0
- package/dist/flow/draw.d.ts +45 -0
- package/dist/flow/draw.d.ts.map +1 -0
- package/dist/flow/draw.js +295 -0
- package/dist/flow/draw.js.map +1 -0
- package/dist/flow/index.d.ts +64 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +306 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/model.d.ts +158 -0
- package/dist/flow/model.d.ts.map +1 -0
- package/dist/flow/model.js +566 -0
- package/dist/flow/model.js.map +1 -0
- package/dist/flow/node.d.ts +429 -0
- package/dist/flow/node.d.ts.map +1 -0
- package/dist/flow/node.js +3025 -0
- package/dist/flow/node.js.map +1 -0
- package/dist/flow/paths.d.ts +43 -0
- package/dist/flow/paths.d.ts.map +1 -0
- package/dist/flow/paths.js +327 -0
- package/dist/flow/paths.js.map +1 -0
- package/dist/flow/types.d.ts +561 -0
- package/dist/flow/types.d.ts.map +1 -0
- package/dist/flow/types.js +2 -0
- package/dist/flow/types.js.map +1 -0
- package/dist/formula/hx.d.ts +24 -0
- package/dist/formula/hx.d.ts.map +1 -0
- package/dist/formula/hx.js +25 -0
- package/dist/formula/hx.js.map +1 -0
- package/dist/formula/index.d.ts +74 -0
- package/dist/formula/index.d.ts.map +1 -0
- package/dist/formula/index.js +155 -0
- package/dist/formula/index.js.map +1 -0
- package/dist/formula/katex.d.ts +78 -0
- package/dist/formula/katex.d.ts.map +1 -0
- package/dist/formula/katex.js +130 -0
- package/dist/formula/katex.js.map +1 -0
- package/dist/formula/layout.d.ts +103 -0
- package/dist/formula/layout.d.ts.map +1 -0
- package/dist/formula/layout.js +716 -0
- package/dist/formula/layout.js.map +1 -0
- package/dist/formula/node.d.ts +50 -0
- package/dist/formula/node.d.ts.map +1 -0
- package/dist/formula/node.js +351 -0
- package/dist/formula/node.js.map +1 -0
- package/dist/html/controls.d.ts +48 -0
- package/dist/html/controls.d.ts.map +1 -0
- package/dist/html/controls.js +195 -0
- package/dist/html/controls.js.map +1 -0
- package/dist/html/css/cascade.d.ts +51 -0
- package/dist/html/css/cascade.d.ts.map +1 -0
- package/dist/html/css/cascade.js +552 -0
- package/dist/html/css/cascade.js.map +1 -0
- package/dist/html/css/parse.d.ts +74 -0
- package/dist/html/css/parse.d.ts.map +1 -0
- package/dist/html/css/parse.js +464 -0
- package/dist/html/css/parse.js.map +1 -0
- package/dist/html/css/style.d.ts +142 -0
- package/dist/html/css/style.d.ts.map +1 -0
- package/dist/html/css/style.js +1145 -0
- package/dist/html/css/style.js.map +1 -0
- package/dist/html/css/ua.d.ts +5 -0
- package/dist/html/css/ua.d.ts.map +1 -0
- package/dist/html/css/ua.js +171 -0
- package/dist/html/css/ua.js.map +1 -0
- package/dist/html/css/values.d.ts +78 -0
- package/dist/html/css/values.d.ts.map +1 -0
- package/dist/html/css/values.js +330 -0
- package/dist/html/css/values.js.map +1 -0
- package/dist/html/dom.d.ts +112 -0
- package/dist/html/dom.d.ts.map +1 -0
- package/dist/html/dom.js +374 -0
- package/dist/html/dom.js.map +1 -0
- package/dist/html/hx.d.ts +24 -0
- package/dist/html/hx.d.ts.map +1 -0
- package/dist/html/hx.js +29 -0
- package/dist/html/hx.js.map +1 -0
- package/dist/html/index.d.ts +137 -0
- package/dist/html/index.d.ts.map +1 -0
- package/dist/html/index.js +339 -0
- package/dist/html/index.js.map +1 -0
- package/dist/html/layout/block.d.ts +58 -0
- package/dist/html/layout/block.d.ts.map +1 -0
- package/dist/html/layout/block.js +724 -0
- package/dist/html/layout/block.js.map +1 -0
- package/dist/html/layout/boxes.d.ts +261 -0
- package/dist/html/layout/boxes.d.ts.map +1 -0
- package/dist/html/layout/boxes.js +725 -0
- package/dist/html/layout/boxes.js.map +1 -0
- package/dist/html/layout/flex.d.ts +16 -0
- package/dist/html/layout/flex.d.ts.map +1 -0
- package/dist/html/layout/flex.js +242 -0
- package/dist/html/layout/flex.js.map +1 -0
- package/dist/html/layout/floats.d.ts +50 -0
- package/dist/html/layout/floats.d.ts.map +1 -0
- package/dist/html/layout/floats.js +110 -0
- package/dist/html/layout/floats.js.map +1 -0
- package/dist/html/layout/inline.d.ts +44 -0
- package/dist/html/layout/inline.d.ts.map +1 -0
- package/dist/html/layout/inline.js +700 -0
- package/dist/html/layout/inline.js.map +1 -0
- package/dist/html/layout/table.d.ts +5 -0
- package/dist/html/layout/table.d.ts.map +1 -0
- package/dist/html/layout/table.js +340 -0
- package/dist/html/layout/table.js.map +1 -0
- package/dist/html/node.d.ts +149 -0
- package/dist/html/node.d.ts.map +1 -0
- package/dist/html/node.js +861 -0
- package/dist/html/node.js.map +1 -0
- package/dist/html/paint.d.ts +48 -0
- package/dist/html/paint.d.ts.map +1 -0
- package/dist/html/paint.js +495 -0
- package/dist/html/paint.js.map +1 -0
- package/dist/html/resources.d.ts +48 -0
- package/dist/html/resources.d.ts.map +1 -0
- package/dist/html/resources.js +156 -0
- package/dist/html/resources.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/heights.d.ts +88 -0
- package/dist/internal/heights.d.ts.map +1 -0
- package/dist/internal/heights.js +203 -0
- package/dist/internal/heights.js.map +1 -0
- package/dist/internal/hx.d.ts +24 -0
- package/dist/internal/hx.d.ts.map +1 -0
- package/dist/internal/hx.js +27 -0
- package/dist/internal/hx.js.map +1 -0
- package/dist/internal/scroll.d.ts +62 -0
- package/dist/internal/scroll.d.ts.map +1 -0
- package/dist/internal/scroll.js +224 -0
- package/dist/internal/scroll.js.map +1 -0
- package/dist/internal/text.d.ts +6 -0
- package/dist/internal/text.d.ts.map +1 -0
- package/dist/internal/text.js +44 -0
- package/dist/internal/text.js.map +1 -0
- package/dist/internal/timers.d.ts +8 -0
- package/dist/internal/timers.d.ts.map +1 -0
- package/dist/internal/timers.js +22 -0
- package/dist/internal/timers.js.map +1 -0
- package/dist/internal/widget.d.ts +40 -0
- package/dist/internal/widget.d.ts.map +1 -0
- package/dist/internal/widget.js +44 -0
- package/dist/internal/widget.js.map +1 -0
- package/dist/markdown/ast.d.ts +126 -0
- package/dist/markdown/ast.d.ts.map +1 -0
- package/dist/markdown/ast.js +8 -0
- package/dist/markdown/ast.js.map +1 -0
- package/dist/markdown/hx.d.ts +24 -0
- package/dist/markdown/hx.d.ts.map +1 -0
- package/dist/markdown/hx.js +25 -0
- package/dist/markdown/hx.js.map +1 -0
- package/dist/markdown/index.d.ts +90 -0
- package/dist/markdown/index.d.ts.map +1 -0
- package/dist/markdown/index.js +413 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/markdown/parse.d.ts +8 -0
- package/dist/markdown/parse.d.ts.map +1 -0
- package/dist/markdown/parse.js +911 -0
- package/dist/markdown/parse.js.map +1 -0
- package/dist/markdown/spans.d.ts +20 -0
- package/dist/markdown/spans.d.ts.map +1 -0
- package/dist/markdown/spans.js +96 -0
- package/dist/markdown/spans.js.map +1 -0
- package/dist/media-player/backends.d.ts +64 -0
- package/dist/media-player/backends.d.ts.map +1 -0
- package/dist/media-player/backends.js +110 -0
- package/dist/media-player/backends.js.map +1 -0
- package/dist/media-player/control.d.ts +40 -0
- package/dist/media-player/control.d.ts.map +1 -0
- package/dist/media-player/control.js +44 -0
- package/dist/media-player/control.js.map +1 -0
- package/dist/media-player/hx.d.ts +24 -0
- package/dist/media-player/hx.d.ts.map +1 -0
- package/dist/media-player/hx.js +25 -0
- package/dist/media-player/hx.js.map +1 -0
- package/dist/media-player/index.d.ts +107 -0
- package/dist/media-player/index.d.ts.map +1 -0
- package/dist/media-player/index.js +219 -0
- package/dist/media-player/index.js.map +1 -0
- package/dist/media-player/mpv.d.ts +4 -0
- package/dist/media-player/mpv.d.ts.map +1 -0
- package/dist/media-player/mpv.js +120 -0
- package/dist/media-player/mpv.js.map +1 -0
- package/dist/media-player/vlc.d.ts +8 -0
- package/dist/media-player/vlc.d.ts.map +1 -0
- package/dist/media-player/vlc.js +83 -0
- package/dist/media-player/vlc.js.map +1 -0
- package/dist/richtext/index.d.ts +19 -0
- package/dist/richtext/index.d.ts.map +1 -0
- package/dist/richtext/index.js +4 -0
- package/dist/richtext/index.js.map +1 -0
- package/dist/richtext/links.d.ts +12 -0
- package/dist/richtext/links.d.ts.map +1 -0
- package/dist/richtext/links.js +64 -0
- package/dist/richtext/links.js.map +1 -0
- package/dist/richtext/menu.d.ts +11 -0
- package/dist/richtext/menu.d.ts.map +1 -0
- package/dist/richtext/menu.js +43 -0
- package/dist/richtext/menu.js.map +1 -0
- package/dist/richtext/node.d.ts +151 -0
- package/dist/richtext/node.d.ts.map +1 -0
- package/dist/richtext/node.js +255 -0
- package/dist/richtext/node.js.map +1 -0
- package/dist/richtext/runs.d.ts +92 -0
- package/dist/richtext/runs.d.ts.map +1 -0
- package/dist/richtext/runs.js +158 -0
- package/dist/richtext/runs.js.map +1 -0
- package/dist/table/hx.d.ts +24 -0
- package/dist/table/hx.d.ts.map +1 -0
- package/dist/table/hx.js +25 -0
- package/dist/table/hx.js.map +1 -0
- package/dist/table/index.d.ts +169 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/index.js +890 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/rows.d.ts +136 -0
- package/dist/table/rows.d.ts.map +1 -0
- package/dist/table/rows.js +146 -0
- package/dist/table/rows.js.map +1 -0
- package/dist/terminal/backends.d.ts +105 -0
- package/dist/terminal/backends.d.ts.map +1 -0
- package/dist/terminal/backends.js +185 -0
- package/dist/terminal/backends.js.map +1 -0
- package/dist/terminal/hx.d.ts +24 -0
- package/dist/terminal/hx.d.ts.map +1 -0
- package/dist/terminal/hx.js +25 -0
- package/dist/terminal/hx.js.map +1 -0
- package/dist/terminal/index.d.ts +160 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +344 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/title.d.ts +24 -0
- package/dist/terminal/title.d.ts.map +1 -0
- package/dist/terminal/title.js +129 -0
- package/dist/terminal/title.js.map +1 -0
- package/dist/terminal/vt/colors.d.ts +63 -0
- package/dist/terminal/vt/colors.d.ts.map +1 -0
- package/dist/terminal/vt/colors.js +203 -0
- package/dist/terminal/vt/colors.js.map +1 -0
- package/dist/terminal/vt/diff.d.ts +117 -0
- package/dist/terminal/vt/diff.d.ts.map +1 -0
- package/dist/terminal/vt/diff.js +358 -0
- package/dist/terminal/vt/diff.js.map +1 -0
- package/dist/terminal/vt/fonts.d.ts +92 -0
- package/dist/terminal/vt/fonts.d.ts.map +1 -0
- package/dist/terminal/vt/fonts.js +178 -0
- package/dist/terminal/vt/fonts.js.map +1 -0
- package/dist/terminal/vt/index.d.ts +78 -0
- package/dist/terminal/vt/index.d.ts.map +1 -0
- package/dist/terminal/vt/index.js +312 -0
- package/dist/terminal/vt/index.js.map +1 -0
- package/dist/terminal/vt/keys.d.ts +74 -0
- package/dist/terminal/vt/keys.d.ts.map +1 -0
- package/dist/terminal/vt/keys.js +309 -0
- package/dist/terminal/vt/keys.js.map +1 -0
- package/dist/terminal/vt/mouse.d.ts +44 -0
- package/dist/terminal/vt/mouse.d.ts.map +1 -0
- package/dist/terminal/vt/mouse.js +106 -0
- package/dist/terminal/vt/mouse.js.map +1 -0
- package/dist/terminal/vt/node.d.ts +246 -0
- package/dist/terminal/vt/node.d.ts.map +1 -0
- package/dist/terminal/vt/node.js +1068 -0
- package/dist/terminal/vt/node.js.map +1 -0
- package/dist/terminal/vt/pty.d.ts +81 -0
- package/dist/terminal/vt/pty.d.ts.map +1 -0
- package/dist/terminal/vt/pty.js +201 -0
- package/dist/terminal/vt/pty.js.map +1 -0
- package/dist/terminal/vt/renderer.d.ts +179 -0
- package/dist/terminal/vt/renderer.d.ts.map +1 -0
- package/dist/terminal/vt/renderer.js +357 -0
- package/dist/terminal/vt/renderer.js.map +1 -0
- package/dist/terminal/vt/timers.d.ts +6 -0
- package/dist/terminal/vt/timers.d.ts.map +1 -0
- package/dist/terminal/vt/timers.js +16 -0
- package/dist/terminal/vt/timers.js.map +1 -0
- package/dist/terminal/vt/xterm.d.ts +142 -0
- package/dist/terminal/vt/xterm.d.ts.map +1 -0
- package/dist/terminal/vt/xterm.js +32 -0
- package/dist/terminal/vt/xterm.js.map +1 -0
- package/dist/terminal-output/hx.d.ts +24 -0
- package/dist/terminal-output/hx.d.ts.map +1 -0
- package/dist/terminal-output/hx.js +25 -0
- package/dist/terminal-output/hx.js.map +1 -0
- package/dist/terminal-output/index.d.ts +92 -0
- package/dist/terminal-output/index.d.ts.map +1 -0
- package/dist/terminal-output/index.js +179 -0
- package/dist/terminal-output/index.js.map +1 -0
- package/dist/terminal-output/runs.d.ts +27 -0
- package/dist/terminal-output/runs.d.ts.map +1 -0
- package/dist/terminal-output/runs.js +66 -0
- package/dist/terminal-output/runs.js.map +1 -0
- package/dist/three/canvas.d.ts +46 -0
- package/dist/three/canvas.d.ts.map +1 -0
- package/dist/three/canvas.js +305 -0
- package/dist/three/canvas.js.map +1 -0
- package/dist/three/events.d.ts +64 -0
- package/dist/three/events.d.ts.map +1 -0
- package/dist/three/events.js +146 -0
- package/dist/three/events.js.map +1 -0
- package/dist/three/geometries.d.ts +89 -0
- package/dist/three/geometries.d.ts.map +1 -0
- package/dist/three/geometries.js +345 -0
- package/dist/three/geometries.js.map +1 -0
- package/dist/three/globals.d.ts +7 -0
- package/dist/three/globals.d.ts.map +1 -0
- package/dist/three/globals.js +20 -0
- package/dist/three/globals.js.map +1 -0
- package/dist/three/hx.d.ts +9 -0
- package/dist/three/hx.d.ts.map +1 -0
- package/dist/three/hx.js +10 -0
- package/dist/three/hx.js.map +1 -0
- package/dist/three/index.d.ts +22 -0
- package/dist/three/index.d.ts.map +1 -0
- package/dist/three/index.js +24 -0
- package/dist/three/index.js.map +1 -0
- package/dist/three/jsx-dev-runtime.d.ts +19 -0
- package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/three/jsx-dev-runtime.js +2 -0
- package/dist/three/jsx-dev-runtime.js.map +1 -0
- package/dist/three/jsx-runtime.d.ts +19 -0
- package/dist/three/jsx-runtime.d.ts.map +1 -0
- package/dist/three/jsx-runtime.js +2 -0
- package/dist/three/jsx-runtime.js.map +1 -0
- package/dist/three/jsx.d.ts +198 -0
- package/dist/three/jsx.d.ts.map +1 -0
- package/dist/three/jsx.js +2 -0
- package/dist/three/jsx.js.map +1 -0
- package/dist/three/materials.d.ts +125 -0
- package/dist/three/materials.d.ts.map +1 -0
- package/dist/three/materials.js +229 -0
- package/dist/three/materials.js.map +1 -0
- package/dist/three/math.d.ts +146 -0
- package/dist/three/math.d.ts.map +1 -0
- package/dist/three/math.js +464 -0
- package/dist/three/math.js.map +1 -0
- package/dist/three/objects.d.ts +185 -0
- package/dist/three/objects.d.ts.map +1 -0
- package/dist/three/objects.js +309 -0
- package/dist/three/objects.js.map +1 -0
- package/dist/three/passes.d.ts +54 -0
- package/dist/three/passes.d.ts.map +1 -0
- package/dist/three/passes.js +78 -0
- package/dist/three/passes.js.map +1 -0
- package/dist/three/postprocess.d.ts +85 -0
- package/dist/three/postprocess.d.ts.map +1 -0
- package/dist/three/postprocess.js +503 -0
- package/dist/three/postprocess.js.map +1 -0
- package/dist/three/raycast.d.ts +24 -0
- package/dist/three/raycast.d.ts.map +1 -0
- package/dist/three/raycast.js +138 -0
- package/dist/three/raycast.js.map +1 -0
- package/dist/three/reconciler.d.ts +48 -0
- package/dist/three/reconciler.d.ts.map +1 -0
- package/dist/three/reconciler.js +416 -0
- package/dist/three/reconciler.js.map +1 -0
- package/dist/three/renderer-direct.d.ts +102 -0
- package/dist/three/renderer-direct.d.ts.map +1 -0
- package/dist/three/renderer-direct.js +782 -0
- package/dist/three/renderer-direct.js.map +1 -0
- package/dist/three/renderer-indirect.d.ts +68 -0
- package/dist/three/renderer-indirect.d.ts.map +1 -0
- package/dist/three/renderer-indirect.js +438 -0
- package/dist/three/renderer-indirect.js.map +1 -0
- package/dist/three/store.d.ts +81 -0
- package/dist/three/store.d.ts.map +1 -0
- package/dist/three/store.js +110 -0
- package/dist/three/store.js.map +1 -0
- package/dist/timeline/hx.d.ts +18 -0
- package/dist/timeline/hx.d.ts.map +1 -0
- package/dist/timeline/hx.js +10 -0
- package/dist/timeline/hx.js.map +1 -0
- package/dist/timeline/index.d.ts +152 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +383 -0
- package/dist/timeline/index.js.map +1 -0
- package/dist/tray-host/hx.d.ts +24 -0
- package/dist/tray-host/hx.d.ts.map +1 -0
- package/dist/tray-host/hx.js +25 -0
- package/dist/tray-host/hx.js.map +1 -0
- package/dist/tray-host/index.d.ts +110 -0
- package/dist/tray-host/index.d.ts.map +1 -0
- package/dist/tray-host/index.js +191 -0
- package/dist/tray-host/index.js.map +1 -0
- package/dist/tray-host/manager.d.ts +137 -0
- package/dist/tray-host/manager.d.ts.map +1 -0
- package/dist/tray-host/manager.js +462 -0
- package/dist/tray-host/manager.js.map +1 -0
- package/dist/tray-host/notify.d.ts +22 -0
- package/dist/tray-host/notify.d.ts.map +1 -0
- package/dist/tray-host/notify.js +74 -0
- package/dist/tray-host/notify.js.map +1 -0
- package/dist/tray-host/protocol.d.ts +106 -0
- package/dist/tray-host/protocol.d.ts.map +1 -0
- package/dist/tray-host/protocol.js +191 -0
- package/dist/tray-host/protocol.js.map +1 -0
- package/dist/tree/hx.d.ts +24 -0
- package/dist/tree/hx.d.ts.map +1 -0
- package/dist/tree/hx.js +25 -0
- package/dist/tree/hx.js.map +1 -0
- package/dist/tree/index.d.ts +221 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/index.js +751 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree/internal.d.ts +18 -0
- package/dist/tree/internal.d.ts.map +1 -0
- package/dist/tree/internal.js +66 -0
- package/dist/tree/internal.js.map +1 -0
- package/dist/tree/rows.d.ts +177 -0
- package/dist/tree/rows.d.ts.map +1 -0
- package/dist/tree/rows.js +179 -0
- package/dist/tree/rows.js.map +1 -0
- package/package.json +166 -12
- package/src/ansi/cast.ts +159 -0
- package/src/ansi/index.ts +53 -0
- package/src/ansi/palette.ts +226 -0
- package/src/ansi/parse.ts +780 -0
- package/src/ansi/sgr.ts +380 -0
- package/src/ansi/utf8.ts +84 -0
- package/src/calendar/Calendar.ts +744 -0
- package/src/calendar/DatePicker.ts +368 -0
- package/src/calendar/dates.ts +307 -0
- package/src/calendar/index.ts +51 -0
- package/src/charts/components.ts +864 -0
- package/src/charts/data.ts +776 -0
- package/src/charts/hx.ts +39 -0
- package/src/charts/index.ts +99 -0
- package/src/charts/node.ts +932 -0
- package/src/charts/render.ts +982 -0
- package/src/charts/scale.ts +214 -0
- package/src/charts/spec.ts +122 -0
- package/src/charts/timers.ts +24 -0
- package/src/code/hx.ts +51 -0
- package/src/code/index.ts +174 -0
- package/src/code-editor/completion.ts +161 -0
- package/src/code-editor/doc.ts +198 -0
- package/src/code-editor/hx.ts +26 -0
- package/src/code-editor/index.ts +615 -0
- package/src/code-editor/node.ts +1926 -0
- package/src/code-language/hljs.ts +302 -0
- package/src/code-language/index.ts +51 -0
- package/src/code-language/languages/glsl.ts +120 -0
- package/src/code-language/languages/javascript.ts +419 -0
- package/src/code-language/languages/json.ts +72 -0
- package/src/code-language/languages/shell.ts +221 -0
- package/src/code-language/languages/sql.ts +165 -0
- package/src/code-language/lezer.ts +190 -0
- package/src/code-language/registry.ts +66 -0
- package/src/code-language/runs.ts +128 -0
- package/src/code-language/stream.ts +306 -0
- package/src/code-language/textmate.ts +134 -0
- package/src/code-language/theme.ts +124 -0
- package/src/code-language/timers.ts +36 -0
- package/src/code-language/types.ts +252 -0
- package/src/codeblock/index.ts +146 -0
- package/src/color-picker/ColorField.ts +333 -0
- package/src/color-picker/ColorPicker.ts +1069 -0
- package/src/color-picker/color.ts +399 -0
- package/src/color-picker/index.ts +50 -0
- package/src/desktop-calendar/eds.ts +484 -0
- package/src/desktop-calendar/ical.ts +119 -0
- package/src/desktop-calendar/index.ts +287 -0
- package/src/embed/client.ts +311 -0
- package/src/embed/host.ts +432 -0
- package/src/embed/index.ts +33 -0
- package/src/embed/timers.ts +32 -0
- package/src/flow/draw.ts +418 -0
- package/src/flow/index.ts +473 -0
- package/src/flow/model.ts +687 -0
- package/src/flow/node.ts +3694 -0
- package/src/flow/paths.ts +403 -0
- package/src/flow/types.ts +634 -0
- package/src/formula/hx.ts +51 -0
- package/src/formula/index.ts +243 -0
- package/src/formula/katex.ts +209 -0
- package/src/formula/layout.ts +876 -0
- package/src/formula/node.ts +467 -0
- package/src/html/controls.ts +244 -0
- package/src/html/css/cascade.ts +606 -0
- package/src/html/css/parse.ts +500 -0
- package/src/html/css/style.ts +1371 -0
- package/src/html/css/ua.ts +174 -0
- package/src/html/css/values.ts +358 -0
- package/src/html/dom.ts +410 -0
- package/src/html/hx.ts +55 -0
- package/src/html/index.ts +545 -0
- package/src/html/layout/block.ts +876 -0
- package/src/html/layout/boxes.ts +981 -0
- package/src/html/layout/flex.ts +297 -0
- package/src/html/layout/floats.ts +125 -0
- package/src/html/layout/inline.ts +870 -0
- package/src/html/layout/table.ts +380 -0
- package/src/html/node.ts +967 -0
- package/src/html/paint.ts +605 -0
- package/src/html/resources.ts +214 -0
- package/src/index.ts +638 -0
- package/src/internal/heights.ts +222 -0
- package/src/internal/hx.ts +53 -0
- package/src/internal/scroll.ts +288 -0
- package/src/internal/text.ts +44 -0
- package/src/internal/timers.ts +44 -0
- package/src/internal/widget.ts +92 -0
- package/src/markdown/ast.ts +163 -0
- package/src/markdown/hx.ts +51 -0
- package/src/markdown/index.ts +686 -0
- package/src/markdown/parse.ts +1037 -0
- package/src/markdown/spans.ts +143 -0
- package/src/media-player/backends.ts +155 -0
- package/src/media-player/control.ts +70 -0
- package/src/media-player/hx.ts +51 -0
- package/src/media-player/index.ts +378 -0
- package/src/media-player/mpv.ts +146 -0
- package/src/media-player/vlc.ts +97 -0
- package/src/richtext/index.ts +42 -0
- package/src/richtext/links.ts +78 -0
- package/src/richtext/menu.ts +49 -0
- package/src/richtext/node.ts +406 -0
- package/src/richtext/runs.ts +253 -0
- package/src/table/hx.ts +51 -0
- package/src/table/index.ts +1270 -0
- package/src/table/rows.ts +275 -0
- package/src/terminal/backends.ts +242 -0
- package/src/terminal/hx.ts +51 -0
- package/src/terminal/index.ts +574 -0
- package/src/terminal/title.ts +172 -0
- package/src/terminal/vt/colors.ts +247 -0
- package/src/terminal/vt/diff.ts +467 -0
- package/src/terminal/vt/fonts.ts +233 -0
- package/src/terminal/vt/index.ts +443 -0
- package/src/terminal/vt/keys.ts +369 -0
- package/src/terminal/vt/mouse.ts +144 -0
- package/src/terminal/vt/node.ts +1242 -0
- package/src/terminal/vt/pty.ts +334 -0
- package/src/terminal/vt/renderer.ts +555 -0
- package/src/terminal/vt/timers.ts +31 -0
- package/src/terminal/vt/xterm.ts +193 -0
- package/src/terminal-output/hx.ts +51 -0
- package/src/terminal-output/index.ts +340 -0
- package/src/terminal-output/runs.ts +79 -0
- package/src/three/canvas.ts +451 -0
- package/src/three/events.ts +197 -0
- package/src/three/geometries.ts +429 -0
- package/src/three/globals.ts +34 -0
- package/src/three/hx.ts +22 -0
- package/src/three/index.ts +98 -0
- package/src/three/jsx-dev-runtime.ts +27 -0
- package/src/three/jsx-runtime.ts +38 -0
- package/src/three/jsx.ts +275 -0
- package/src/three/materials.ts +270 -0
- package/src/three/math.ts +585 -0
- package/src/three/objects.ts +397 -0
- package/src/three/passes.ts +90 -0
- package/src/three/postprocess.ts +677 -0
- package/src/three/raycast.ts +189 -0
- package/src/three/react-reconciler.d.ts +50 -0
- package/src/three/reconciler.ts +624 -0
- package/src/three/renderer-direct.ts +1055 -0
- package/src/three/renderer-indirect.ts +570 -0
- package/src/three/store.ts +207 -0
- package/src/timeline/hx.ts +31 -0
- package/src/timeline/index.ts +603 -0
- package/src/tray-host/hx.ts +51 -0
- package/src/tray-host/index.ts +331 -0
- package/src/tray-host/manager.ts +639 -0
- package/src/tray-host/notify.ts +102 -0
- package/src/tray-host/protocol.ts +235 -0
- package/src/tree/hx.ts +51 -0
- package/src/tree/index.ts +1127 -0
- package/src/tree/internal.ts +87 -0
- package/src/tree/rows.ts +334 -0
- package/src/index.d.ts +0 -2
- package/src/index.js +0 -9
- package/src/sparkline/index.d.ts +0 -29
- package/src/sparkline/index.js +0 -50
- package/src/sparkline/node.js +0 -72
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
// CSS values: the length model, and the small parsers every property needs.
|
|
2
|
+
//
|
|
3
|
+
// The one decision worth stating is **when a unit resolves**. `em`, `rem`,
|
|
4
|
+
// `pt`, `pc`, `in`, `cm`, `mm`, `ex`, `ch`, `vw` and `vh` all resolve at
|
|
5
|
+
// *computed-style* time — they depend on the element's own font, the root
|
|
6
|
+
// font or the viewport, and all three are known before layout runs. `%` and
|
|
7
|
+
// `auto` do not: they need the containing block, which is layout's to know.
|
|
8
|
+
//
|
|
9
|
+
// That split is what makes a resize cheap. Restyling is the expensive half of
|
|
10
|
+
// the pipeline (selector matching, inheritance, shorthand expansion) and a
|
|
11
|
+
// resize does not need it: nothing in a computed style depends on the width
|
|
12
|
+
// except the percentages, and those were deliberately left unresolved so
|
|
13
|
+
// layout can resolve them against a new containing block on its own.
|
|
14
|
+
//
|
|
15
|
+
// Colours are the other half of that decision, from the other side: they are
|
|
16
|
+
// kept as **strings**, never parsed. ntk's context takes a CSS colour for
|
|
17
|
+
// `fillStyle` and parses it behind its own cache, so parsing here would be
|
|
18
|
+
// work done twice — and the only questions this renderer actually asks about
|
|
19
|
+
// a colour are "is it `transparent`" and "is it `currentColor`", both of
|
|
20
|
+
// which are string comparisons.
|
|
21
|
+
export const AUTO = 'auto';
|
|
22
|
+
export function isPct(len) {
|
|
23
|
+
return typeof len === 'object';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A length against a base. `auto` and a percentage of an indefinite base
|
|
27
|
+
* (`NaN`, which is what an unresolved containing block is) both answer
|
|
28
|
+
* `fallback` — the caller's "then I decide", which for a width is
|
|
29
|
+
* shrink-to-fit and for a margin is zero.
|
|
30
|
+
*/
|
|
31
|
+
export function resolve(len, base, fallback = 0) {
|
|
32
|
+
if (typeof len === 'number')
|
|
33
|
+
return len;
|
|
34
|
+
if (len === AUTO)
|
|
35
|
+
return fallback;
|
|
36
|
+
return Number.isFinite(base) ? (len.pct / 100) * base : fallback;
|
|
37
|
+
}
|
|
38
|
+
/** Resolve, but keep "indefinite" distinguishable from zero — what a height
|
|
39
|
+
* needs, since `height: 50%` of an auto-height parent is not `0`, it is
|
|
40
|
+
* "there is no height here". */
|
|
41
|
+
export function resolveOrNull(len, base) {
|
|
42
|
+
if (typeof len === 'number')
|
|
43
|
+
return len;
|
|
44
|
+
if (len === AUTO)
|
|
45
|
+
return null;
|
|
46
|
+
return Number.isFinite(base) ? (len.pct / 100) * base : null;
|
|
47
|
+
}
|
|
48
|
+
const LENGTH_RE = /^([+-]?(?:\d+\.?\d*|\.\d+))(px|em|rem|pt|pc|in|cm|mm|ex|ch|vw|vh|vmin|vmax|q|%)?$/;
|
|
49
|
+
/**
|
|
50
|
+
* Parse a length. Returns `null` for anything that is not one, which is how
|
|
51
|
+
* every caller tells "the author wrote something else" from "the author wrote
|
|
52
|
+
* zero" — a distinction `0` cannot carry and which decides whether a
|
|
53
|
+
* declaration is applied at all.
|
|
54
|
+
*
|
|
55
|
+
* A bare number is a length only when `bareIsPx` says so: it is right for a
|
|
56
|
+
* `width="600"` presentation attribute and wrong for `line-height: 1.5`.
|
|
57
|
+
*/
|
|
58
|
+
export function parseLength(value, ctx, bareIsPx = false) {
|
|
59
|
+
const v = value.trim().toLowerCase();
|
|
60
|
+
if (v === 'auto')
|
|
61
|
+
return AUTO;
|
|
62
|
+
if (v === '0')
|
|
63
|
+
return 0;
|
|
64
|
+
const m = LENGTH_RE.exec(v);
|
|
65
|
+
if (!m)
|
|
66
|
+
return null;
|
|
67
|
+
const n = Number(m[1]);
|
|
68
|
+
const unit = m[2];
|
|
69
|
+
if (!unit)
|
|
70
|
+
return bareIsPx ? n : null;
|
|
71
|
+
if (unit === '%')
|
|
72
|
+
return { pct: n };
|
|
73
|
+
return n * unitScale(unit, ctx);
|
|
74
|
+
}
|
|
75
|
+
function unitScale(unit, ctx) {
|
|
76
|
+
switch (unit) {
|
|
77
|
+
case 'px':
|
|
78
|
+
return 1;
|
|
79
|
+
case 'em':
|
|
80
|
+
return ctx.em;
|
|
81
|
+
case 'rem':
|
|
82
|
+
return ctx.rem;
|
|
83
|
+
case 'pt':
|
|
84
|
+
return 96 / 72;
|
|
85
|
+
case 'pc':
|
|
86
|
+
return 16;
|
|
87
|
+
case 'in':
|
|
88
|
+
return 96;
|
|
89
|
+
case 'cm':
|
|
90
|
+
return 96 / 2.54;
|
|
91
|
+
case 'mm':
|
|
92
|
+
return 96 / 25.4;
|
|
93
|
+
case 'q':
|
|
94
|
+
return 96 / 101.6;
|
|
95
|
+
// Approximations rather than font queries: both are within a few percent
|
|
96
|
+
// for every text face, and asking the font manager here would make the
|
|
97
|
+
// cascade depend on font loading.
|
|
98
|
+
case 'ex':
|
|
99
|
+
return ctx.em * 0.5;
|
|
100
|
+
case 'ch':
|
|
101
|
+
return ctx.em * 0.5;
|
|
102
|
+
case 'vw':
|
|
103
|
+
return ctx.vw / 100;
|
|
104
|
+
case 'vh':
|
|
105
|
+
return ctx.vh / 100;
|
|
106
|
+
case 'vmin':
|
|
107
|
+
return Math.min(ctx.vw, ctx.vh) / 100;
|
|
108
|
+
case 'vmax':
|
|
109
|
+
return Math.max(ctx.vw, ctx.vh) / 100;
|
|
110
|
+
default:
|
|
111
|
+
return 1;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** A plain number — `flex-grow`, `opacity`, `z-index`, `line-height`. */
|
|
115
|
+
export function parseNumber(value) {
|
|
116
|
+
const n = Number(value.trim());
|
|
117
|
+
return Number.isFinite(n) ? n : null;
|
|
118
|
+
}
|
|
119
|
+
/** `opacity: 50%` is as legal as `opacity: .5`. */
|
|
120
|
+
export function parseAlpha(value) {
|
|
121
|
+
const v = value.trim();
|
|
122
|
+
if (v.endsWith('%')) {
|
|
123
|
+
const n = Number(v.slice(0, -1));
|
|
124
|
+
return Number.isFinite(n) ? Math.max(0, Math.min(1, n / 100)) : null;
|
|
125
|
+
}
|
|
126
|
+
const n = Number(v);
|
|
127
|
+
return Number.isFinite(n) ? Math.max(0, Math.min(1, n)) : null;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Split a value on top-level whitespace, keeping `rgb(1, 2, 3)` and
|
|
131
|
+
* `url(a b.png)` whole. Every shorthand starts here.
|
|
132
|
+
*/
|
|
133
|
+
export function splitValue(value) {
|
|
134
|
+
const out = [];
|
|
135
|
+
let depth = 0;
|
|
136
|
+
let quote = '';
|
|
137
|
+
let start = 0;
|
|
138
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
139
|
+
const c = value[i];
|
|
140
|
+
if (quote) {
|
|
141
|
+
if (c === quote && value[i - 1] !== '\\')
|
|
142
|
+
quote = '';
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (c === '"' || c === "'") {
|
|
146
|
+
quote = c;
|
|
147
|
+
}
|
|
148
|
+
else if (c === '(') {
|
|
149
|
+
depth += 1;
|
|
150
|
+
}
|
|
151
|
+
else if (c === ')') {
|
|
152
|
+
depth = Math.max(0, depth - 1);
|
|
153
|
+
}
|
|
154
|
+
else if (depth === 0 &&
|
|
155
|
+
(c === ' ' || c === '\t' || c === '\n' || c === '\r')) {
|
|
156
|
+
if (i > start)
|
|
157
|
+
out.push(value.slice(start, i));
|
|
158
|
+
start = i + 1;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (value.length > start)
|
|
162
|
+
out.push(value.slice(start));
|
|
163
|
+
return out;
|
|
164
|
+
}
|
|
165
|
+
/** Split on top-level commas — `font-family`, `background`'s layer list. */
|
|
166
|
+
export function splitCommas(value) {
|
|
167
|
+
const out = [];
|
|
168
|
+
let depth = 0;
|
|
169
|
+
let quote = '';
|
|
170
|
+
let start = 0;
|
|
171
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
172
|
+
const c = value[i];
|
|
173
|
+
if (quote) {
|
|
174
|
+
if (c === quote && value[i - 1] !== '\\')
|
|
175
|
+
quote = '';
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (c === '"' || c === "'")
|
|
179
|
+
quote = c;
|
|
180
|
+
else if (c === '(')
|
|
181
|
+
depth += 1;
|
|
182
|
+
else if (c === ')')
|
|
183
|
+
depth = Math.max(0, depth - 1);
|
|
184
|
+
else if (c === ',' && depth === 0) {
|
|
185
|
+
out.push(value.slice(start, i).trim());
|
|
186
|
+
start = i + 1;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
out.push(value.slice(start).trim());
|
|
190
|
+
return out;
|
|
191
|
+
}
|
|
192
|
+
/** The four sides a `margin`/`padding`/`border-width` shorthand expands to,
|
|
193
|
+
* in CSS's top-right-bottom-left order. */
|
|
194
|
+
export function fourSides(parts) {
|
|
195
|
+
const [a, b = a, c = a, d = b] = parts;
|
|
196
|
+
return [a, b, c, d];
|
|
197
|
+
}
|
|
198
|
+
/** `url(x)`, `url("x")`, or a bare token. `null` for `none`. */
|
|
199
|
+
export function parseUrl(value) {
|
|
200
|
+
const v = value.trim();
|
|
201
|
+
if (!v || v.toLowerCase() === 'none')
|
|
202
|
+
return null;
|
|
203
|
+
const m = /^url\(\s*(.*?)\s*\)$/i.exec(v);
|
|
204
|
+
const inner = m ? m[1] : v;
|
|
205
|
+
return unquote(inner) || null;
|
|
206
|
+
}
|
|
207
|
+
export function unquote(value) {
|
|
208
|
+
const v = value.trim();
|
|
209
|
+
if (v.length >= 2 &&
|
|
210
|
+
(v[0] === '"' || v[0] === "'") &&
|
|
211
|
+
v[v.length - 1] === v[0]) {
|
|
212
|
+
return v.slice(1, -1);
|
|
213
|
+
}
|
|
214
|
+
return v;
|
|
215
|
+
}
|
|
216
|
+
/** A colour as it is about to be used: `currentColor` resolved against the
|
|
217
|
+
* element's own ink, everything else passed through. */
|
|
218
|
+
export function inkColor(color, current) {
|
|
219
|
+
return color === 'currentColor' ? current : color;
|
|
220
|
+
}
|
|
221
|
+
/** Whether a colour paints anything at all. Two string tests rather than a
|
|
222
|
+
* parse, for the reason at the top of the file. */
|
|
223
|
+
export function isTransparent(color) {
|
|
224
|
+
if (!color)
|
|
225
|
+
return true;
|
|
226
|
+
const c = color.trim().toLowerCase();
|
|
227
|
+
if (c === 'transparent' || c === 'none')
|
|
228
|
+
return true;
|
|
229
|
+
// `rgba(…, 0)` / `hsla(…, 0)` — the zero-alpha forms, which pages really
|
|
230
|
+
// do write for a "no background" that inherits nothing.
|
|
231
|
+
return /^(?:rgba|hsla)\([^)]*[,/]\s*0*(?:\.0+)?\s*\)$/.test(c);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* A colour token. `null` means the value was not a colour, which is what a
|
|
235
|
+
* shorthand parser branches on.
|
|
236
|
+
*
|
|
237
|
+
* `currentColor` survives as the literal token rather than being substituted:
|
|
238
|
+
* it means "this element's `color`" at *use* time, and substituting at parse
|
|
239
|
+
* time freezes whatever the colour happened to be mid-cascade — a rule
|
|
240
|
+
* writing `border-bottom: 1px solid` and then `color: red` would keep the
|
|
241
|
+
* inherited ink on its border. `inkColor` is the other half.
|
|
242
|
+
*/
|
|
243
|
+
export function parseColor(value) {
|
|
244
|
+
const v = value.trim();
|
|
245
|
+
if (!v)
|
|
246
|
+
return null;
|
|
247
|
+
const lower = v.toLowerCase();
|
|
248
|
+
if (lower === 'currentcolor')
|
|
249
|
+
return 'currentColor';
|
|
250
|
+
if (lower === 'transparent')
|
|
251
|
+
return 'transparent';
|
|
252
|
+
if (lower === 'inherit' || lower === 'initial' || lower === 'unset')
|
|
253
|
+
return null;
|
|
254
|
+
if (v.startsWith('#'))
|
|
255
|
+
return /^#[0-9a-f]{3,8}$/i.test(v) ? v : null;
|
|
256
|
+
if (/^(?:rgb|rgba|hsl|hsla|color|lab|lch|oklab|oklch)\(/i.test(v))
|
|
257
|
+
return v;
|
|
258
|
+
return NAMED_COLORS.has(lower) ? lower : null;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* The CSS named colours. The list is here rather than reached through ntk's
|
|
262
|
+
* `parse-color` because the only question asked of it is "is this token a
|
|
263
|
+
* colour or is it the next keyword in a shorthand" — `border: 1px solid red`
|
|
264
|
+
* has to tell `solid` from `red` before anything is parsed, and a parser that
|
|
265
|
+
* answers by throwing is not a predicate.
|
|
266
|
+
*/
|
|
267
|
+
const NAMED_COLORS = new Set(('aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue ' +
|
|
268
|
+
'blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk ' +
|
|
269
|
+
'crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkgrey darkkhaki ' +
|
|
270
|
+
'darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen ' +
|
|
271
|
+
'darkslateblue darkslategray darkslategrey darkturquoise darkviolet deeppink deepskyblue ' +
|
|
272
|
+
'dimgray dimgrey dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite ' +
|
|
273
|
+
'gold goldenrod gray green greenyellow grey honeydew hotpink indianred indigo ivory khaki ' +
|
|
274
|
+
'lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan ' +
|
|
275
|
+
'lightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen ' +
|
|
276
|
+
'lightskyblue lightslategray lightslategrey lightsteelblue lightyellow lime limegreen linen ' +
|
|
277
|
+
'magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen ' +
|
|
278
|
+
'mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream ' +
|
|
279
|
+
'mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid ' +
|
|
280
|
+
'palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum ' +
|
|
281
|
+
'powderblue purple rebeccapurple red rosybrown royalblue saddlebrown salmon sandybrown ' +
|
|
282
|
+
'seagreen seashell sienna silver skyblue slateblue slategray slategrey snow springgreen ' +
|
|
283
|
+
'steelblue tan teal thistle tomato turquoise violet wheat white whitesmoke yellow ' +
|
|
284
|
+
'yellowgreen').split(' '));
|
|
285
|
+
/** `font-weight`, as the number ntk's font matcher wants. */
|
|
286
|
+
export function parseWeight(value, inherited) {
|
|
287
|
+
const v = value.trim().toLowerCase();
|
|
288
|
+
switch (v) {
|
|
289
|
+
case 'normal':
|
|
290
|
+
return 400;
|
|
291
|
+
case 'bold':
|
|
292
|
+
return 700;
|
|
293
|
+
// Relative weights are relative to the *parent's* computed weight, which
|
|
294
|
+
// is why this takes it rather than reading a constant.
|
|
295
|
+
case 'bolder':
|
|
296
|
+
return inherited >= 600 ? 900 : inherited >= 400 ? 700 : 400;
|
|
297
|
+
case 'lighter':
|
|
298
|
+
return inherited >= 700 ? 400 : inherited >= 500 ? 300 : 100;
|
|
299
|
+
default: {
|
|
300
|
+
const n = Number(v);
|
|
301
|
+
return Number.isFinite(n) ? Math.max(1, Math.min(1000, n)) : inherited;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/** Absolute and relative `font-size` keywords, against the CSS scale. */
|
|
306
|
+
export function keywordFontSize(value, parentSize, rootSize) {
|
|
307
|
+
switch (value.trim().toLowerCase()) {
|
|
308
|
+
case 'xx-small':
|
|
309
|
+
return rootSize * 0.5625;
|
|
310
|
+
case 'x-small':
|
|
311
|
+
return rootSize * 0.625;
|
|
312
|
+
case 'small':
|
|
313
|
+
return rootSize * 0.8125;
|
|
314
|
+
case 'medium':
|
|
315
|
+
return rootSize;
|
|
316
|
+
case 'large':
|
|
317
|
+
return rootSize * 1.125;
|
|
318
|
+
case 'x-large':
|
|
319
|
+
return rootSize * 1.5;
|
|
320
|
+
case 'xx-large':
|
|
321
|
+
return rootSize * 2;
|
|
322
|
+
case 'smaller':
|
|
323
|
+
return parentSize / 1.2;
|
|
324
|
+
case 'larger':
|
|
325
|
+
return parentSize * 1.2;
|
|
326
|
+
default:
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/html/css/values.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Element, Text } from 'domhandler';
|
|
2
|
+
import type { AnyNode, ChildNode, Document, ParentNode } from 'domhandler';
|
|
3
|
+
export type { AnyNode, ChildNode, Document, ParentNode } from 'domhandler';
|
|
4
|
+
export { Element, Text, Comment } from 'domhandler';
|
|
5
|
+
/** Never rendered, whatever the stylesheet says. `<script>` and `<style>`
|
|
6
|
+
* are consumed by the seams instead; the rest have no visual box in the
|
|
7
|
+
* subset this renders. */
|
|
8
|
+
export declare const NON_RENDERED: Set<string>;
|
|
9
|
+
/** An element's tag name, lowercased — htmlparser2 already lowercases in
|
|
10
|
+
* HTML mode, so this is the assertion rather than the work. */
|
|
11
|
+
export declare function tagOf(node: AnyNode): string;
|
|
12
|
+
export declare function isElement(node: AnyNode | null | undefined): node is Element;
|
|
13
|
+
export declare function isText(node: AnyNode | null | undefined): node is Text;
|
|
14
|
+
/** Children of a node, or an empty array for a leaf. Cheaper than domutils'
|
|
15
|
+
* guard chain on the hot path, and it is the only traversal shape the
|
|
16
|
+
* styler and the box builder need. */
|
|
17
|
+
export declare function childrenOf(node: AnyNode): ChildNode[];
|
|
18
|
+
/** Attribute read, case-insensitively, or `undefined`. */
|
|
19
|
+
export declare function attr(el: Element, name: string): string | undefined;
|
|
20
|
+
/** The text under a node, uncollapsed — what `<style>` hands the CSS parser
|
|
21
|
+
* and what a `<script>` seam is given. */
|
|
22
|
+
export declare function rawTextOf(node: AnyNode): string;
|
|
23
|
+
/**
|
|
24
|
+
* Walk elements in document order. The styler, the resource sweep and the
|
|
25
|
+
* script sweep are all one pass over this.
|
|
26
|
+
*
|
|
27
|
+
* An explicit stack, and it has to be: the parser builds a tree of any depth
|
|
28
|
+
* without recursing (htmlparser2 is a state machine), so the first thing to
|
|
29
|
+
* die on a degenerately nested document would otherwise be this walk — and a
|
|
30
|
+
* `yield*` chain is the worst recursion there is, costing a resume per level
|
|
31
|
+
* per element (a walk of 1,000 nested divs measured 16ms as a generator and
|
|
32
|
+
* rounds to zero as a loop).
|
|
33
|
+
*/
|
|
34
|
+
export declare function elementsIn(root: AnyNode): Generator<Element>;
|
|
35
|
+
/** What the document told the host about itself while parsing. */
|
|
36
|
+
export interface DocumentFacts {
|
|
37
|
+
/** `<style>` text and `<link rel=stylesheet>` hrefs, in document order —
|
|
38
|
+
* order is the cascade's tie-breaker, so it is data, not a detail. */
|
|
39
|
+
sheets: SheetRef[];
|
|
40
|
+
/** Every `<script>`, for the seam. Never parsed and never evaluated. */
|
|
41
|
+
scripts: Element[];
|
|
42
|
+
/** Elements with a resource to fetch — `<img>`, and `<link>` above. */
|
|
43
|
+
resources: Element[];
|
|
44
|
+
/** `<title>`, when the document had one. */
|
|
45
|
+
title: string | null;
|
|
46
|
+
}
|
|
47
|
+
export type SheetRef = {
|
|
48
|
+
kind: 'inline';
|
|
49
|
+
text: string;
|
|
50
|
+
element: Element;
|
|
51
|
+
} | {
|
|
52
|
+
kind: 'link';
|
|
53
|
+
href: string;
|
|
54
|
+
element: Element;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* A document being parsed. Feed it source; read `document` at any time.
|
|
58
|
+
*
|
|
59
|
+
* `write` is append-only by design: handed a `source` that starts with what
|
|
60
|
+
* was already written, it writes the delta and the existing nodes keep their
|
|
61
|
+
* identity — which is what lets the box tree, the computed styles and the
|
|
62
|
+
* laid-out lines above it survive a streaming append. A `source` that is not
|
|
63
|
+
* an extension resets the parser, because a mid-document edit can change the
|
|
64
|
+
* tree arbitrarily and pretending otherwise is how a streaming renderer
|
|
65
|
+
* shows a document nobody wrote.
|
|
66
|
+
*/
|
|
67
|
+
export declare class HtmlSource {
|
|
68
|
+
/** The tree, live: it grows as chunks are written. */
|
|
69
|
+
document: Document;
|
|
70
|
+
/** Bumped whenever the tree changed — the styler's cache key. */
|
|
71
|
+
revision: number;
|
|
72
|
+
/** True once `end()` has been called and the tree is final. */
|
|
73
|
+
complete: boolean;
|
|
74
|
+
private _parser;
|
|
75
|
+
private _handler;
|
|
76
|
+
private _written;
|
|
77
|
+
private _facts;
|
|
78
|
+
constructor();
|
|
79
|
+
/** Set the whole source. Appends when it can; re-parses when it cannot. */
|
|
80
|
+
setSource(source: string, complete: boolean): boolean;
|
|
81
|
+
/** Start over — a source that is not an extension of what was written. */
|
|
82
|
+
reset(): void;
|
|
83
|
+
/** The DOM changed under us — an app mutated it, or a stylesheet arrived
|
|
84
|
+
* and was spliced in. Anything cached on the old revision is stale. */
|
|
85
|
+
touch(): void;
|
|
86
|
+
/**
|
|
87
|
+
* What the document says about its own resources, scripts and stylesheets.
|
|
88
|
+
* One pass, memoized against `revision`, because all three consumers ask
|
|
89
|
+
* on the same tick and a document of any size is not worth walking thrice.
|
|
90
|
+
*/
|
|
91
|
+
facts(): DocumentFacts;
|
|
92
|
+
/** Release the parser. The tree stays readable — an app may still hold it. */
|
|
93
|
+
destroy(): void;
|
|
94
|
+
}
|
|
95
|
+
/** Append `child` to `parent`, unlinking it from wherever it was. */
|
|
96
|
+
export declare function appendChild(parent: ParentNode, child: ChildNode): void;
|
|
97
|
+
/** Unlink a node from its parent. Safe on a node that has none. */
|
|
98
|
+
export declare function removeNode(node: ChildNode): void;
|
|
99
|
+
/** Replace `node` with `next`, in place. */
|
|
100
|
+
export declare function replaceNode(node: ChildNode, next: ChildNode): void;
|
|
101
|
+
/** Build an element, for an app writing into the document. */
|
|
102
|
+
export declare function createElement(name: string, attribs?: Record<string, string>, children?: ChildNode[]): Element;
|
|
103
|
+
/** Build a text node. */
|
|
104
|
+
export declare function createText(data: string): Text;
|
|
105
|
+
/** Parse a fragment into nodes an app can splice in — `innerHTML`, without
|
|
106
|
+
* the element to hang it off. Not streaming: a fragment is small by
|
|
107
|
+
* definition, and an app calling this already has the whole string. */
|
|
108
|
+
export declare function parseFragment(html: string): ChildNode[];
|
|
109
|
+
/** Whether a tag's content is raw text — the box builder skips these, and
|
|
110
|
+
* `<textarea>`'s value comes from it rather than from a child box. */
|
|
111
|
+
export declare function isRawText(tag: string): boolean;
|
|
112
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/html/dom.ts"],"names":[],"mappings":"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"}
|