@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,174 @@
|
|
|
1
|
+
// The user-agent stylesheet — what `<h1>` means before any author says.
|
|
2
|
+
//
|
|
3
|
+
// Written against the **host theme** rather than against a browser's fixed
|
|
4
|
+
// palette, which is the one place this deliberately differs from every UA
|
|
5
|
+
// sheet it is modelled on. A document dropped into a dark application should
|
|
6
|
+
// not arrive as a white rectangle with black text: `color`, the link colour
|
|
7
|
+
// and every rule and border here come from the theme the application is
|
|
8
|
+
// already using, so an unstyled document reads as part of the window. An
|
|
9
|
+
// author stylesheet still overrides all of it — that is what makes it a UA
|
|
10
|
+
// sheet and not a skin.
|
|
11
|
+
import { parseStylesheet } from './parse.js';
|
|
12
|
+
import type { Stylesheet } from './parse.js';
|
|
13
|
+
import type { RootLook } from './style.js';
|
|
14
|
+
|
|
15
|
+
/** Cache key → parsed sheet. The text depends only on the look, so two
|
|
16
|
+
* documents in one themed window parse this once between them. */
|
|
17
|
+
const CACHE = new Map<string, Stylesheet>();
|
|
18
|
+
|
|
19
|
+
export function lookKey(look: RootLook): string {
|
|
20
|
+
return [
|
|
21
|
+
look.color,
|
|
22
|
+
look.fontFamily,
|
|
23
|
+
look.fontSize,
|
|
24
|
+
look.monoFamily,
|
|
25
|
+
look.linkColor,
|
|
26
|
+
look.borderColor,
|
|
27
|
+
look.mutedColor,
|
|
28
|
+
look.background,
|
|
29
|
+
].join('|');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function uaStylesheet(look: RootLook): Stylesheet {
|
|
33
|
+
const key = lookKey(look);
|
|
34
|
+
const hit = CACHE.get(key);
|
|
35
|
+
if (hit) return hit;
|
|
36
|
+
const sheet = parseStylesheet(uaText(look), -1_000_000);
|
|
37
|
+
if (CACHE.size > 8) CACHE.clear();
|
|
38
|
+
CACHE.set(key, sheet);
|
|
39
|
+
return sheet;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Margins are in `em` throughout, so a document that sets `font-size` on
|
|
44
|
+
* `body` scales its whitespace with its text the way a browser's does.
|
|
45
|
+
*/
|
|
46
|
+
function uaText(look: RootLook): string {
|
|
47
|
+
const mono = look.monoFamily;
|
|
48
|
+
return `
|
|
49
|
+
html, body, div, p, h1, h2, h3, h4, h5, h6, ol, ul, li, dl, dt, dd,
|
|
50
|
+
blockquote, pre, hr, table, form, fieldset, figure, figcaption, address,
|
|
51
|
+
article, aside, footer, header, hgroup, main, nav, section, details,
|
|
52
|
+
summary, dir, menu, center, marquee {
|
|
53
|
+
display: block;
|
|
54
|
+
}
|
|
55
|
+
head, link, meta, style, script, title, base, template, noscript, param,
|
|
56
|
+
source, track, col, colgroup, datalist, area, map, rp { display: none; }
|
|
57
|
+
|
|
58
|
+
body { margin: 8px; color: ${look.color}; font-family: ${look.fontFamily}; }
|
|
59
|
+
html { color: ${look.color}; }
|
|
60
|
+
|
|
61
|
+
p { margin: 1em 0; }
|
|
62
|
+
h1 { font-size: 2em; font-weight: bold; margin: 0.67em 0; }
|
|
63
|
+
h2 { font-size: 1.5em; font-weight: bold; margin: 0.83em 0; }
|
|
64
|
+
h3 { font-size: 1.17em; font-weight: bold; margin: 1em 0; }
|
|
65
|
+
h4 { font-size: 1em; font-weight: bold; margin: 1.33em 0; }
|
|
66
|
+
h5 { font-size: 0.83em; font-weight: bold; margin: 1.67em 0; }
|
|
67
|
+
h6 { font-size: 0.67em; font-weight: bold; margin: 2.33em 0; }
|
|
68
|
+
|
|
69
|
+
ul, ol { margin: 1em 0; padding-left: 2.5em; }
|
|
70
|
+
ul { list-style-type: disc; }
|
|
71
|
+
ol { list-style-type: decimal; }
|
|
72
|
+
li { display: list-item; }
|
|
73
|
+
ul ul, ol ul { list-style-type: circle; }
|
|
74
|
+
ul ul ul, ol ol ul, ul ol ul, ol ul ul { list-style-type: square; }
|
|
75
|
+
ul ul, ul ol, ol ul, ol ol { margin: 0; }
|
|
76
|
+
|
|
77
|
+
dl { margin: 1em 0; }
|
|
78
|
+
dd { margin-left: 2.5em; }
|
|
79
|
+
dt { font-weight: bold; }
|
|
80
|
+
|
|
81
|
+
blockquote {
|
|
82
|
+
margin: 1em 0;
|
|
83
|
+
padding-left: 1em;
|
|
84
|
+
border-left: 3px solid ${look.borderColor};
|
|
85
|
+
color: ${look.mutedColor};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
pre {
|
|
89
|
+
display: block;
|
|
90
|
+
font-family: ${mono};
|
|
91
|
+
font-size: 0.9em;
|
|
92
|
+
white-space: pre;
|
|
93
|
+
margin: 1em 0;
|
|
94
|
+
padding: 0.7em 0.9em;
|
|
95
|
+
overflow-x: auto;
|
|
96
|
+
}
|
|
97
|
+
code, kbd, samp, tt { font-family: ${mono}; font-size: 0.9em; }
|
|
98
|
+
pre code { font-size: 1em; padding: 0; background: transparent; }
|
|
99
|
+
|
|
100
|
+
b, strong { font-weight: bold; }
|
|
101
|
+
i, em, cite, var, dfn, address { font-style: italic; }
|
|
102
|
+
u, ins { text-decoration: underline; }
|
|
103
|
+
s, strike, del { text-decoration: line-through; }
|
|
104
|
+
small { font-size: 0.83em; }
|
|
105
|
+
big { font-size: 1.17em; }
|
|
106
|
+
sub { vertical-align: sub; font-size: 0.75em; }
|
|
107
|
+
sup { vertical-align: super; font-size: 0.75em; }
|
|
108
|
+
mark { background-color: #fff2a8; color: #1a1a1a; }
|
|
109
|
+
abbr { text-decoration: none; }
|
|
110
|
+
center { text-align: center; }
|
|
111
|
+
nobr { white-space: nowrap; }
|
|
112
|
+
|
|
113
|
+
/* Deliberately no 'a:hover' rule, though a browser's sheet has one: a
|
|
114
|
+
document containing any ':hover' selector has to be restyled as the
|
|
115
|
+
pointer moves, and a rule that changes nothing (the link is already
|
|
116
|
+
underlined) would make every plain document pay that. */
|
|
117
|
+
a { color: ${look.linkColor}; text-decoration: underline; cursor: pointer; }
|
|
118
|
+
|
|
119
|
+
hr {
|
|
120
|
+
margin: 0.5em 0;
|
|
121
|
+
border: none;
|
|
122
|
+
border-top: 1px solid ${look.borderColor};
|
|
123
|
+
height: 0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
img { display: inline-block; }
|
|
127
|
+
figure { margin: 1em 2.5em; }
|
|
128
|
+
|
|
129
|
+
table { display: table; border-collapse: separate; border-spacing: 2px; }
|
|
130
|
+
caption { display: table-caption; text-align: center; }
|
|
131
|
+
thead { display: table-header-group; }
|
|
132
|
+
tbody { display: table-row-group; }
|
|
133
|
+
tfoot { display: table-footer-group; }
|
|
134
|
+
tr { display: table-row; }
|
|
135
|
+
td { display: table-cell; padding: 1px; vertical-align: middle; }
|
|
136
|
+
th {
|
|
137
|
+
display: table-cell;
|
|
138
|
+
padding: 1px;
|
|
139
|
+
font-weight: bold;
|
|
140
|
+
text-align: center;
|
|
141
|
+
vertical-align: middle;
|
|
142
|
+
}
|
|
143
|
+
colgroup { display: table-column-group; }
|
|
144
|
+
col { display: table-column; }
|
|
145
|
+
|
|
146
|
+
/* The form controls are real widgets rather than drawn boxes, so what the
|
|
147
|
+
UA sheet owes them is a *box* of about the right size in the flow — the
|
|
148
|
+
widget is painted into it by the component above. 'inline-block' is what
|
|
149
|
+
makes a label and its input share a line. */
|
|
150
|
+
input, button, select, textarea, meter, progress {
|
|
151
|
+
display: inline-block;
|
|
152
|
+
font-family: ${look.fontFamily};
|
|
153
|
+
font-size: 1em;
|
|
154
|
+
vertical-align: middle;
|
|
155
|
+
margin: 3px 2px;
|
|
156
|
+
}
|
|
157
|
+
/* Chrome's own UA margins for the checkables, near enough: they are the
|
|
158
|
+
controls that sit hard against their label text otherwise. */
|
|
159
|
+
input[type=checkbox] { margin: 3px 4px 3px 4px; }
|
|
160
|
+
input[type=radio] { margin: 3px 4px 3px 5px; }
|
|
161
|
+
input[type=hidden] { display: none; }
|
|
162
|
+
textarea { vertical-align: top; }
|
|
163
|
+
fieldset { margin: 0 2px; padding: 0.35em 0.75em 0.6em; border: 1px solid ${look.borderColor}; }
|
|
164
|
+
legend { display: block; padding: 0 2px; }
|
|
165
|
+
label { cursor: pointer; }
|
|
166
|
+
|
|
167
|
+
details { margin: 0.5em 0; }
|
|
168
|
+
summary { display: block; cursor: pointer; font-weight: bold; }
|
|
169
|
+
|
|
170
|
+
/* 'hidden' is an attribute, not a style, and a document that uses it expects
|
|
171
|
+
it to win over the display above. */
|
|
172
|
+
[hidden] { display: none; }
|
|
173
|
+
`;
|
|
174
|
+
}
|
|
@@ -0,0 +1,358 @@
|
|
|
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
|
+
|
|
22
|
+
/** A length that layout may still have to resolve. */
|
|
23
|
+
export type Len = number | Pct | 'auto';
|
|
24
|
+
|
|
25
|
+
/** A percentage of something layout knows and computed style does not. */
|
|
26
|
+
export interface Pct {
|
|
27
|
+
pct: number;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const AUTO = 'auto';
|
|
31
|
+
|
|
32
|
+
export function isPct(len: Len): len is Pct {
|
|
33
|
+
return typeof len === 'object';
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* A length against a base. `auto` and a percentage of an indefinite base
|
|
38
|
+
* (`NaN`, which is what an unresolved containing block is) both answer
|
|
39
|
+
* `fallback` — the caller's "then I decide", which for a width is
|
|
40
|
+
* shrink-to-fit and for a margin is zero.
|
|
41
|
+
*/
|
|
42
|
+
export function resolve(len: Len, base: number, fallback = 0): number {
|
|
43
|
+
if (typeof len === 'number') return len;
|
|
44
|
+
if (len === AUTO) return fallback;
|
|
45
|
+
return Number.isFinite(base) ? (len.pct / 100) * base : fallback;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Resolve, but keep "indefinite" distinguishable from zero — what a height
|
|
49
|
+
* needs, since `height: 50%` of an auto-height parent is not `0`, it is
|
|
50
|
+
* "there is no height here". */
|
|
51
|
+
export function resolveOrNull(len: Len, base: number): number | null {
|
|
52
|
+
if (typeof len === 'number') return len;
|
|
53
|
+
if (len === AUTO) return null;
|
|
54
|
+
return Number.isFinite(base) ? (len.pct / 100) * base : null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** The font-relative context a length parses against. */
|
|
58
|
+
export interface UnitContext {
|
|
59
|
+
/** The element's own `font-size`, already computed. */
|
|
60
|
+
em: number;
|
|
61
|
+
/** The root element's `font-size`. */
|
|
62
|
+
rem: number;
|
|
63
|
+
/** Viewport, for `vw`/`vh`/`vmin`/`vmax`. */
|
|
64
|
+
vw: number;
|
|
65
|
+
vh: number;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const LENGTH_RE =
|
|
69
|
+
/^([+-]?(?:\d+\.?\d*|\.\d+))(px|em|rem|pt|pc|in|cm|mm|ex|ch|vw|vh|vmin|vmax|q|%)?$/;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Parse a length. Returns `null` for anything that is not one, which is how
|
|
73
|
+
* every caller tells "the author wrote something else" from "the author wrote
|
|
74
|
+
* zero" — a distinction `0` cannot carry and which decides whether a
|
|
75
|
+
* declaration is applied at all.
|
|
76
|
+
*
|
|
77
|
+
* A bare number is a length only when `bareIsPx` says so: it is right for a
|
|
78
|
+
* `width="600"` presentation attribute and wrong for `line-height: 1.5`.
|
|
79
|
+
*/
|
|
80
|
+
export function parseLength(
|
|
81
|
+
value: string,
|
|
82
|
+
ctx: UnitContext,
|
|
83
|
+
bareIsPx = false,
|
|
84
|
+
): Len | null {
|
|
85
|
+
const v = value.trim().toLowerCase();
|
|
86
|
+
if (v === 'auto') return AUTO;
|
|
87
|
+
if (v === '0') return 0;
|
|
88
|
+
const m = LENGTH_RE.exec(v);
|
|
89
|
+
if (!m) return null;
|
|
90
|
+
const n = Number(m[1]);
|
|
91
|
+
const unit = m[2];
|
|
92
|
+
if (!unit) return bareIsPx ? n : null;
|
|
93
|
+
if (unit === '%') return { pct: n };
|
|
94
|
+
return n * unitScale(unit, ctx);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function unitScale(unit: string, ctx: UnitContext): number {
|
|
98
|
+
switch (unit) {
|
|
99
|
+
case 'px':
|
|
100
|
+
return 1;
|
|
101
|
+
case 'em':
|
|
102
|
+
return ctx.em;
|
|
103
|
+
case 'rem':
|
|
104
|
+
return ctx.rem;
|
|
105
|
+
case 'pt':
|
|
106
|
+
return 96 / 72;
|
|
107
|
+
case 'pc':
|
|
108
|
+
return 16;
|
|
109
|
+
case 'in':
|
|
110
|
+
return 96;
|
|
111
|
+
case 'cm':
|
|
112
|
+
return 96 / 2.54;
|
|
113
|
+
case 'mm':
|
|
114
|
+
return 96 / 25.4;
|
|
115
|
+
case 'q':
|
|
116
|
+
return 96 / 101.6;
|
|
117
|
+
// Approximations rather than font queries: both are within a few percent
|
|
118
|
+
// for every text face, and asking the font manager here would make the
|
|
119
|
+
// cascade depend on font loading.
|
|
120
|
+
case 'ex':
|
|
121
|
+
return ctx.em * 0.5;
|
|
122
|
+
case 'ch':
|
|
123
|
+
return ctx.em * 0.5;
|
|
124
|
+
case 'vw':
|
|
125
|
+
return ctx.vw / 100;
|
|
126
|
+
case 'vh':
|
|
127
|
+
return ctx.vh / 100;
|
|
128
|
+
case 'vmin':
|
|
129
|
+
return Math.min(ctx.vw, ctx.vh) / 100;
|
|
130
|
+
case 'vmax':
|
|
131
|
+
return Math.max(ctx.vw, ctx.vh) / 100;
|
|
132
|
+
default:
|
|
133
|
+
return 1;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** A plain number — `flex-grow`, `opacity`, `z-index`, `line-height`. */
|
|
138
|
+
export function parseNumber(value: string): number | null {
|
|
139
|
+
const n = Number(value.trim());
|
|
140
|
+
return Number.isFinite(n) ? n : null;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** `opacity: 50%` is as legal as `opacity: .5`. */
|
|
144
|
+
export function parseAlpha(value: string): number | null {
|
|
145
|
+
const v = value.trim();
|
|
146
|
+
if (v.endsWith('%')) {
|
|
147
|
+
const n = Number(v.slice(0, -1));
|
|
148
|
+
return Number.isFinite(n) ? Math.max(0, Math.min(1, n / 100)) : null;
|
|
149
|
+
}
|
|
150
|
+
const n = Number(v);
|
|
151
|
+
return Number.isFinite(n) ? Math.max(0, Math.min(1, n)) : null;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Split a value on top-level whitespace, keeping `rgb(1, 2, 3)` and
|
|
156
|
+
* `url(a b.png)` whole. Every shorthand starts here.
|
|
157
|
+
*/
|
|
158
|
+
export function splitValue(value: string): string[] {
|
|
159
|
+
const out: string[] = [];
|
|
160
|
+
let depth = 0;
|
|
161
|
+
let quote = '';
|
|
162
|
+
let start = 0;
|
|
163
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
164
|
+
const c = value[i];
|
|
165
|
+
if (quote) {
|
|
166
|
+
if (c === quote && value[i - 1] !== '\\') quote = '';
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
if (c === '"' || c === "'") {
|
|
170
|
+
quote = c;
|
|
171
|
+
} else if (c === '(') {
|
|
172
|
+
depth += 1;
|
|
173
|
+
} else if (c === ')') {
|
|
174
|
+
depth = Math.max(0, depth - 1);
|
|
175
|
+
} else if (
|
|
176
|
+
depth === 0 &&
|
|
177
|
+
(c === ' ' || c === '\t' || c === '\n' || c === '\r')
|
|
178
|
+
) {
|
|
179
|
+
if (i > start) out.push(value.slice(start, i));
|
|
180
|
+
start = i + 1;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (value.length > start) out.push(value.slice(start));
|
|
184
|
+
return out;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/** Split on top-level commas — `font-family`, `background`'s layer list. */
|
|
188
|
+
export function splitCommas(value: string): string[] {
|
|
189
|
+
const out: string[] = [];
|
|
190
|
+
let depth = 0;
|
|
191
|
+
let quote = '';
|
|
192
|
+
let start = 0;
|
|
193
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
194
|
+
const c = value[i];
|
|
195
|
+
if (quote) {
|
|
196
|
+
if (c === quote && value[i - 1] !== '\\') quote = '';
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
if (c === '"' || c === "'") quote = c;
|
|
200
|
+
else if (c === '(') depth += 1;
|
|
201
|
+
else if (c === ')') depth = Math.max(0, depth - 1);
|
|
202
|
+
else if (c === ',' && depth === 0) {
|
|
203
|
+
out.push(value.slice(start, i).trim());
|
|
204
|
+
start = i + 1;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
out.push(value.slice(start).trim());
|
|
208
|
+
return out;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/** The four sides a `margin`/`padding`/`border-width` shorthand expands to,
|
|
212
|
+
* in CSS's top-right-bottom-left order. */
|
|
213
|
+
export function fourSides<T>(parts: T[]): [T, T, T, T] {
|
|
214
|
+
const [a, b = a, c = a, d = b] = parts;
|
|
215
|
+
return [a, b, c, d];
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/** `url(x)`, `url("x")`, or a bare token. `null` for `none`. */
|
|
219
|
+
export function parseUrl(value: string): string | null {
|
|
220
|
+
const v = value.trim();
|
|
221
|
+
if (!v || v.toLowerCase() === 'none') return null;
|
|
222
|
+
const m = /^url\(\s*(.*?)\s*\)$/i.exec(v);
|
|
223
|
+
const inner = m ? m[1] : v;
|
|
224
|
+
return unquote(inner) || null;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export function unquote(value: string): string {
|
|
228
|
+
const v = value.trim();
|
|
229
|
+
if (
|
|
230
|
+
v.length >= 2 &&
|
|
231
|
+
(v[0] === '"' || v[0] === "'") &&
|
|
232
|
+
v[v.length - 1] === v[0]
|
|
233
|
+
) {
|
|
234
|
+
return v.slice(1, -1);
|
|
235
|
+
}
|
|
236
|
+
return v;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/** A colour as it is about to be used: `currentColor` resolved against the
|
|
240
|
+
* element's own ink, everything else passed through. */
|
|
241
|
+
export function inkColor(color: string, current: string): string {
|
|
242
|
+
return color === 'currentColor' ? current : color;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/** Whether a colour paints anything at all. Two string tests rather than a
|
|
246
|
+
* parse, for the reason at the top of the file. */
|
|
247
|
+
export function isTransparent(color: string | null | undefined): boolean {
|
|
248
|
+
if (!color) return true;
|
|
249
|
+
const c = color.trim().toLowerCase();
|
|
250
|
+
if (c === 'transparent' || c === 'none') return true;
|
|
251
|
+
// `rgba(…, 0)` / `hsla(…, 0)` — the zero-alpha forms, which pages really
|
|
252
|
+
// do write for a "no background" that inherits nothing.
|
|
253
|
+
return /^(?:rgba|hsla)\([^)]*[,/]\s*0*(?:\.0+)?\s*\)$/.test(c);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* A colour token. `null` means the value was not a colour, which is what a
|
|
258
|
+
* shorthand parser branches on.
|
|
259
|
+
*
|
|
260
|
+
* `currentColor` survives as the literal token rather than being substituted:
|
|
261
|
+
* it means "this element's `color`" at *use* time, and substituting at parse
|
|
262
|
+
* time freezes whatever the colour happened to be mid-cascade — a rule
|
|
263
|
+
* writing `border-bottom: 1px solid` and then `color: red` would keep the
|
|
264
|
+
* inherited ink on its border. `inkColor` is the other half.
|
|
265
|
+
*/
|
|
266
|
+
export function parseColor(value: string): string | null {
|
|
267
|
+
const v = value.trim();
|
|
268
|
+
if (!v) return null;
|
|
269
|
+
const lower = v.toLowerCase();
|
|
270
|
+
if (lower === 'currentcolor') return 'currentColor';
|
|
271
|
+
if (lower === 'transparent') return 'transparent';
|
|
272
|
+
if (lower === 'inherit' || lower === 'initial' || lower === 'unset')
|
|
273
|
+
return null;
|
|
274
|
+
if (v.startsWith('#')) return /^#[0-9a-f]{3,8}$/i.test(v) ? v : null;
|
|
275
|
+
if (/^(?:rgb|rgba|hsl|hsla|color|lab|lch|oklab|oklch)\(/i.test(v)) return v;
|
|
276
|
+
return NAMED_COLORS.has(lower) ? lower : null;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* The CSS named colours. The list is here rather than reached through ntk's
|
|
281
|
+
* `parse-color` because the only question asked of it is "is this token a
|
|
282
|
+
* colour or is it the next keyword in a shorthand" — `border: 1px solid red`
|
|
283
|
+
* has to tell `solid` from `red` before anything is parsed, and a parser that
|
|
284
|
+
* answers by throwing is not a predicate.
|
|
285
|
+
*/
|
|
286
|
+
const NAMED_COLORS = new Set(
|
|
287
|
+
(
|
|
288
|
+
'aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue ' +
|
|
289
|
+
'blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk ' +
|
|
290
|
+
'crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkgrey darkkhaki ' +
|
|
291
|
+
'darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen ' +
|
|
292
|
+
'darkslateblue darkslategray darkslategrey darkturquoise darkviolet deeppink deepskyblue ' +
|
|
293
|
+
'dimgray dimgrey dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite ' +
|
|
294
|
+
'gold goldenrod gray green greenyellow grey honeydew hotpink indianred indigo ivory khaki ' +
|
|
295
|
+
'lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan ' +
|
|
296
|
+
'lightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen ' +
|
|
297
|
+
'lightskyblue lightslategray lightslategrey lightsteelblue lightyellow lime limegreen linen ' +
|
|
298
|
+
'magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen ' +
|
|
299
|
+
'mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream ' +
|
|
300
|
+
'mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid ' +
|
|
301
|
+
'palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum ' +
|
|
302
|
+
'powderblue purple rebeccapurple red rosybrown royalblue saddlebrown salmon sandybrown ' +
|
|
303
|
+
'seagreen seashell sienna silver skyblue slateblue slategray slategrey snow springgreen ' +
|
|
304
|
+
'steelblue tan teal thistle tomato turquoise violet wheat white whitesmoke yellow ' +
|
|
305
|
+
'yellowgreen'
|
|
306
|
+
).split(' '),
|
|
307
|
+
);
|
|
308
|
+
|
|
309
|
+
/** `font-weight`, as the number ntk's font matcher wants. */
|
|
310
|
+
export function parseWeight(value: string, inherited: number): number {
|
|
311
|
+
const v = value.trim().toLowerCase();
|
|
312
|
+
switch (v) {
|
|
313
|
+
case 'normal':
|
|
314
|
+
return 400;
|
|
315
|
+
case 'bold':
|
|
316
|
+
return 700;
|
|
317
|
+
// Relative weights are relative to the *parent's* computed weight, which
|
|
318
|
+
// is why this takes it rather than reading a constant.
|
|
319
|
+
case 'bolder':
|
|
320
|
+
return inherited >= 600 ? 900 : inherited >= 400 ? 700 : 400;
|
|
321
|
+
case 'lighter':
|
|
322
|
+
return inherited >= 700 ? 400 : inherited >= 500 ? 300 : 100;
|
|
323
|
+
default: {
|
|
324
|
+
const n = Number(v);
|
|
325
|
+
return Number.isFinite(n) ? Math.max(1, Math.min(1000, n)) : inherited;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/** Absolute and relative `font-size` keywords, against the CSS scale. */
|
|
331
|
+
export function keywordFontSize(
|
|
332
|
+
value: string,
|
|
333
|
+
parentSize: number,
|
|
334
|
+
rootSize: number,
|
|
335
|
+
): number | null {
|
|
336
|
+
switch (value.trim().toLowerCase()) {
|
|
337
|
+
case 'xx-small':
|
|
338
|
+
return rootSize * 0.5625;
|
|
339
|
+
case 'x-small':
|
|
340
|
+
return rootSize * 0.625;
|
|
341
|
+
case 'small':
|
|
342
|
+
return rootSize * 0.8125;
|
|
343
|
+
case 'medium':
|
|
344
|
+
return rootSize;
|
|
345
|
+
case 'large':
|
|
346
|
+
return rootSize * 1.125;
|
|
347
|
+
case 'x-large':
|
|
348
|
+
return rootSize * 1.5;
|
|
349
|
+
case 'xx-large':
|
|
350
|
+
return rootSize * 2;
|
|
351
|
+
case 'smaller':
|
|
352
|
+
return parentSize / 1.2;
|
|
353
|
+
case 'larger':
|
|
354
|
+
return parentSize * 1.2;
|
|
355
|
+
default:
|
|
356
|
+
return null;
|
|
357
|
+
}
|
|
358
|
+
}
|