@react-x11/components 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +979 -21
- package/dist/ansi/cast.d.ts +48 -0
- package/dist/ansi/cast.d.ts.map +1 -0
- package/dist/ansi/cast.js +135 -0
- package/dist/ansi/cast.js.map +1 -0
- package/dist/ansi/index.d.ts +10 -0
- package/dist/ansi/index.d.ts.map +1 -0
- package/dist/ansi/index.js +27 -0
- package/dist/ansi/index.js.map +1 -0
- package/dist/ansi/palette.d.ts +79 -0
- package/dist/ansi/palette.d.ts.map +1 -0
- package/dist/ansi/palette.js +155 -0
- package/dist/ansi/palette.js.map +1 -0
- package/dist/ansi/parse.d.ts +114 -0
- package/dist/ansi/parse.d.ts.map +1 -0
- package/dist/ansi/parse.js +687 -0
- package/dist/ansi/parse.js.map +1 -0
- package/dist/ansi/sgr.d.ts +87 -0
- package/dist/ansi/sgr.d.ts.map +1 -0
- package/dist/ansi/sgr.js +302 -0
- package/dist/ansi/sgr.js.map +1 -0
- package/dist/ansi/utf8.d.ts +15 -0
- package/dist/ansi/utf8.d.ts.map +1 -0
- package/dist/ansi/utf8.js +82 -0
- package/dist/ansi/utf8.js.map +1 -0
- package/dist/calendar/Calendar.d.ts +136 -0
- package/dist/calendar/Calendar.d.ts.map +1 -0
- package/dist/calendar/Calendar.js +460 -0
- package/dist/calendar/Calendar.js.map +1 -0
- package/dist/calendar/DatePicker.d.ts +52 -0
- package/dist/calendar/DatePicker.d.ts.map +1 -0
- package/dist/calendar/DatePicker.js +257 -0
- package/dist/calendar/DatePicker.js.map +1 -0
- package/dist/calendar/dates.d.ts +90 -0
- package/dist/calendar/dates.d.ts.map +1 -0
- package/dist/calendar/dates.js +236 -0
- package/dist/calendar/dates.js.map +1 -0
- package/dist/calendar/index.d.ts +8 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/index.js +15 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/charts/components.d.ts +141 -0
- package/dist/charts/components.d.ts.map +1 -0
- package/dist/charts/components.js +580 -0
- package/dist/charts/components.js.map +1 -0
- package/dist/charts/data.d.ts +198 -0
- package/dist/charts/data.d.ts.map +1 -0
- package/dist/charts/data.js +616 -0
- package/dist/charts/data.js.map +1 -0
- package/dist/charts/hx.d.ts +21 -0
- package/dist/charts/hx.d.ts.map +1 -0
- package/dist/charts/hx.js +15 -0
- package/dist/charts/hx.js.map +1 -0
- package/dist/charts/index.d.ts +27 -0
- package/dist/charts/index.d.ts.map +1 -0
- package/dist/charts/index.js +38 -0
- package/dist/charts/index.js.map +1 -0
- package/dist/charts/node.d.ts +96 -0
- package/dist/charts/node.d.ts.map +1 -0
- package/dist/charts/node.js +720 -0
- package/dist/charts/node.js.map +1 -0
- package/dist/charts/render.d.ts +153 -0
- package/dist/charts/render.d.ts.map +1 -0
- package/dist/charts/render.js +762 -0
- package/dist/charts/render.js.map +1 -0
- package/dist/charts/scale.d.ts +42 -0
- package/dist/charts/scale.d.ts.map +1 -0
- package/dist/charts/scale.js +173 -0
- package/dist/charts/scale.js.map +1 -0
- package/dist/charts/spec.d.ts +91 -0
- package/dist/charts/spec.d.ts.map +1 -0
- package/dist/charts/spec.js +33 -0
- package/dist/charts/spec.js.map +1 -0
- package/dist/charts/timers.d.ts +6 -0
- package/dist/charts/timers.d.ts.map +1 -0
- package/dist/charts/timers.js +14 -0
- package/dist/charts/timers.js.map +1 -0
- package/dist/code/hx.d.ts +24 -0
- package/dist/code/hx.d.ts.map +1 -0
- package/dist/code/hx.js +25 -0
- package/dist/code/hx.js.map +1 -0
- package/dist/code/index.d.ts +45 -0
- package/dist/code/index.d.ts.map +1 -0
- package/dist/code/index.js +93 -0
- package/dist/code/index.js.map +1 -0
- package/dist/code-editor/completion.d.ts +26 -0
- package/dist/code-editor/completion.d.ts.map +1 -0
- package/dist/code-editor/completion.js +129 -0
- package/dist/code-editor/completion.js.map +1 -0
- package/dist/code-editor/doc.d.ts +35 -0
- package/dist/code-editor/doc.d.ts.map +1 -0
- package/dist/code-editor/doc.js +162 -0
- package/dist/code-editor/doc.js.map +1 -0
- package/dist/code-editor/hx.d.ts +13 -0
- package/dist/code-editor/hx.d.ts.map +1 -0
- package/dist/code-editor/hx.js +10 -0
- package/dist/code-editor/hx.js.map +1 -0
- package/dist/code-editor/index.d.ts +88 -0
- package/dist/code-editor/index.d.ts.map +1 -0
- package/dist/code-editor/index.js +401 -0
- package/dist/code-editor/index.js.map +1 -0
- package/dist/code-editor/node.d.ts +343 -0
- package/dist/code-editor/node.d.ts.map +1 -0
- package/dist/code-editor/node.js +1521 -0
- package/dist/code-editor/node.js.map +1 -0
- package/dist/code-language/hljs.d.ts +47 -0
- package/dist/code-language/hljs.d.ts.map +1 -0
- package/dist/code-language/hljs.js +211 -0
- package/dist/code-language/hljs.js.map +1 -0
- package/dist/code-language/index.d.ts +22 -0
- package/dist/code-language/index.d.ts.map +1 -0
- package/dist/code-language/index.js +20 -0
- package/dist/code-language/index.js.map +1 -0
- package/dist/code-language/languages/glsl.d.ts +4 -0
- package/dist/code-language/languages/glsl.d.ts.map +1 -0
- package/dist/code-language/languages/glsl.js +99 -0
- package/dist/code-language/languages/glsl.js.map +1 -0
- package/dist/code-language/languages/javascript.d.ts +10 -0
- package/dist/code-language/languages/javascript.d.ts.map +1 -0
- package/dist/code-language/languages/javascript.js +360 -0
- package/dist/code-language/languages/javascript.js.map +1 -0
- package/dist/code-language/languages/json.d.ts +4 -0
- package/dist/code-language/languages/json.d.ts.map +1 -0
- package/dist/code-language/languages/json.js +68 -0
- package/dist/code-language/languages/json.js.map +1 -0
- package/dist/code-language/languages/shell.d.ts +4 -0
- package/dist/code-language/languages/shell.d.ts.map +1 -0
- package/dist/code-language/languages/shell.js +189 -0
- package/dist/code-language/languages/shell.js.map +1 -0
- package/dist/code-language/languages/sql.d.ts +11 -0
- package/dist/code-language/languages/sql.d.ts.map +1 -0
- package/dist/code-language/languages/sql.js +133 -0
- package/dist/code-language/languages/sql.js.map +1 -0
- package/dist/code-language/lezer.d.ts +24 -0
- package/dist/code-language/lezer.d.ts.map +1 -0
- package/dist/code-language/lezer.js +148 -0
- package/dist/code-language/lezer.js.map +1 -0
- package/dist/code-language/registry.d.ts +19 -0
- package/dist/code-language/registry.d.ts.map +1 -0
- package/dist/code-language/registry.js +56 -0
- package/dist/code-language/registry.js.map +1 -0
- package/dist/code-language/runs.d.ts +35 -0
- package/dist/code-language/runs.d.ts.map +1 -0
- package/dist/code-language/runs.js +88 -0
- package/dist/code-language/runs.js.map +1 -0
- package/dist/code-language/stream.d.ts +70 -0
- package/dist/code-language/stream.d.ts.map +1 -0
- package/dist/code-language/stream.js +243 -0
- package/dist/code-language/stream.js.map +1 -0
- package/dist/code-language/textmate.d.ts +27 -0
- package/dist/code-language/textmate.d.ts.map +1 -0
- package/dist/code-language/textmate.js +86 -0
- package/dist/code-language/textmate.js.map +1 -0
- package/dist/code-language/theme.d.ts +26 -0
- package/dist/code-language/theme.d.ts.map +1 -0
- package/dist/code-language/theme.js +108 -0
- package/dist/code-language/theme.js.map +1 -0
- package/dist/code-language/timers.d.ts +7 -0
- package/dist/code-language/timers.d.ts.map +1 -0
- package/dist/code-language/timers.js +22 -0
- package/dist/code-language/timers.js.map +1 -0
- package/dist/code-language/types.d.ts +173 -0
- package/dist/code-language/types.d.ts.map +1 -0
- package/dist/code-language/types.js +41 -0
- package/dist/code-language/types.js.map +1 -0
- package/dist/codeblock/index.d.ts +69 -0
- package/dist/codeblock/index.d.ts.map +1 -0
- package/dist/codeblock/index.js +85 -0
- package/dist/codeblock/index.js.map +1 -0
- package/dist/color-picker/ColorField.d.ts +39 -0
- package/dist/color-picker/ColorField.d.ts.map +1 -0
- package/dist/color-picker/ColorField.js +239 -0
- package/dist/color-picker/ColorField.js.map +1 -0
- package/dist/color-picker/ColorPicker.d.ts +109 -0
- package/dist/color-picker/ColorPicker.d.ts.map +1 -0
- package/dist/color-picker/ColorPicker.js +757 -0
- package/dist/color-picker/ColorPicker.js.map +1 -0
- package/dist/color-picker/color.d.ts +105 -0
- package/dist/color-picker/color.d.ts.map +1 -0
- package/dist/color-picker/color.js +313 -0
- package/dist/color-picker/color.js.map +1 -0
- package/dist/color-picker/index.d.ts +8 -0
- package/dist/color-picker/index.d.ts.map +1 -0
- package/dist/color-picker/index.js +19 -0
- package/dist/color-picker/index.js.map +1 -0
- package/dist/desktop-calendar/eds.d.ts +102 -0
- package/dist/desktop-calendar/eds.d.ts.map +1 -0
- package/dist/desktop-calendar/eds.js +356 -0
- package/dist/desktop-calendar/eds.js.map +1 -0
- package/dist/desktop-calendar/ical.d.ts +63 -0
- package/dist/desktop-calendar/ical.d.ts.map +1 -0
- package/dist/desktop-calendar/ical.js +57 -0
- package/dist/desktop-calendar/ical.js.map +1 -0
- package/dist/desktop-calendar/index.d.ts +72 -0
- package/dist/desktop-calendar/index.d.ts.map +1 -0
- package/dist/desktop-calendar/index.js +213 -0
- package/dist/desktop-calendar/index.js.map +1 -0
- package/dist/embed/client.d.ts +121 -0
- package/dist/embed/client.d.ts.map +1 -0
- package/dist/embed/client.js +203 -0
- package/dist/embed/client.js.map +1 -0
- package/dist/embed/host.d.ts +96 -0
- package/dist/embed/host.d.ts.map +1 -0
- package/dist/embed/host.js +266 -0
- package/dist/embed/host.js.map +1 -0
- package/dist/embed/index.d.ts +5 -0
- package/dist/embed/index.d.ts.map +1 -0
- package/dist/embed/index.js +13 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed/timers.d.ts +6 -0
- package/dist/embed/timers.d.ts.map +1 -0
- package/dist/embed/timers.js +16 -0
- package/dist/embed/timers.js.map +1 -0
- package/dist/flow/draw.d.ts +45 -0
- package/dist/flow/draw.d.ts.map +1 -0
- package/dist/flow/draw.js +295 -0
- package/dist/flow/draw.js.map +1 -0
- package/dist/flow/index.d.ts +64 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +306 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/model.d.ts +158 -0
- package/dist/flow/model.d.ts.map +1 -0
- package/dist/flow/model.js +566 -0
- package/dist/flow/model.js.map +1 -0
- package/dist/flow/node.d.ts +429 -0
- package/dist/flow/node.d.ts.map +1 -0
- package/dist/flow/node.js +3025 -0
- package/dist/flow/node.js.map +1 -0
- package/dist/flow/paths.d.ts +43 -0
- package/dist/flow/paths.d.ts.map +1 -0
- package/dist/flow/paths.js +327 -0
- package/dist/flow/paths.js.map +1 -0
- package/dist/flow/types.d.ts +561 -0
- package/dist/flow/types.d.ts.map +1 -0
- package/dist/flow/types.js +2 -0
- package/dist/flow/types.js.map +1 -0
- package/dist/formula/hx.d.ts +24 -0
- package/dist/formula/hx.d.ts.map +1 -0
- package/dist/formula/hx.js +25 -0
- package/dist/formula/hx.js.map +1 -0
- package/dist/formula/index.d.ts +74 -0
- package/dist/formula/index.d.ts.map +1 -0
- package/dist/formula/index.js +155 -0
- package/dist/formula/index.js.map +1 -0
- package/dist/formula/katex.d.ts +78 -0
- package/dist/formula/katex.d.ts.map +1 -0
- package/dist/formula/katex.js +130 -0
- package/dist/formula/katex.js.map +1 -0
- package/dist/formula/layout.d.ts +103 -0
- package/dist/formula/layout.d.ts.map +1 -0
- package/dist/formula/layout.js +716 -0
- package/dist/formula/layout.js.map +1 -0
- package/dist/formula/node.d.ts +50 -0
- package/dist/formula/node.d.ts.map +1 -0
- package/dist/formula/node.js +351 -0
- package/dist/formula/node.js.map +1 -0
- package/dist/html/controls.d.ts +48 -0
- package/dist/html/controls.d.ts.map +1 -0
- package/dist/html/controls.js +195 -0
- package/dist/html/controls.js.map +1 -0
- package/dist/html/css/cascade.d.ts +51 -0
- package/dist/html/css/cascade.d.ts.map +1 -0
- package/dist/html/css/cascade.js +552 -0
- package/dist/html/css/cascade.js.map +1 -0
- package/dist/html/css/parse.d.ts +74 -0
- package/dist/html/css/parse.d.ts.map +1 -0
- package/dist/html/css/parse.js +464 -0
- package/dist/html/css/parse.js.map +1 -0
- package/dist/html/css/style.d.ts +142 -0
- package/dist/html/css/style.d.ts.map +1 -0
- package/dist/html/css/style.js +1145 -0
- package/dist/html/css/style.js.map +1 -0
- package/dist/html/css/ua.d.ts +5 -0
- package/dist/html/css/ua.d.ts.map +1 -0
- package/dist/html/css/ua.js +171 -0
- package/dist/html/css/ua.js.map +1 -0
- package/dist/html/css/values.d.ts +78 -0
- package/dist/html/css/values.d.ts.map +1 -0
- package/dist/html/css/values.js +330 -0
- package/dist/html/css/values.js.map +1 -0
- package/dist/html/dom.d.ts +112 -0
- package/dist/html/dom.d.ts.map +1 -0
- package/dist/html/dom.js +374 -0
- package/dist/html/dom.js.map +1 -0
- package/dist/html/hx.d.ts +24 -0
- package/dist/html/hx.d.ts.map +1 -0
- package/dist/html/hx.js +29 -0
- package/dist/html/hx.js.map +1 -0
- package/dist/html/index.d.ts +137 -0
- package/dist/html/index.d.ts.map +1 -0
- package/dist/html/index.js +339 -0
- package/dist/html/index.js.map +1 -0
- package/dist/html/layout/block.d.ts +58 -0
- package/dist/html/layout/block.d.ts.map +1 -0
- package/dist/html/layout/block.js +724 -0
- package/dist/html/layout/block.js.map +1 -0
- package/dist/html/layout/boxes.d.ts +261 -0
- package/dist/html/layout/boxes.d.ts.map +1 -0
- package/dist/html/layout/boxes.js +725 -0
- package/dist/html/layout/boxes.js.map +1 -0
- package/dist/html/layout/flex.d.ts +16 -0
- package/dist/html/layout/flex.d.ts.map +1 -0
- package/dist/html/layout/flex.js +242 -0
- package/dist/html/layout/flex.js.map +1 -0
- package/dist/html/layout/floats.d.ts +50 -0
- package/dist/html/layout/floats.d.ts.map +1 -0
- package/dist/html/layout/floats.js +110 -0
- package/dist/html/layout/floats.js.map +1 -0
- package/dist/html/layout/inline.d.ts +44 -0
- package/dist/html/layout/inline.d.ts.map +1 -0
- package/dist/html/layout/inline.js +700 -0
- package/dist/html/layout/inline.js.map +1 -0
- package/dist/html/layout/table.d.ts +5 -0
- package/dist/html/layout/table.d.ts.map +1 -0
- package/dist/html/layout/table.js +340 -0
- package/dist/html/layout/table.js.map +1 -0
- package/dist/html/node.d.ts +149 -0
- package/dist/html/node.d.ts.map +1 -0
- package/dist/html/node.js +861 -0
- package/dist/html/node.js.map +1 -0
- package/dist/html/paint.d.ts +48 -0
- package/dist/html/paint.d.ts.map +1 -0
- package/dist/html/paint.js +495 -0
- package/dist/html/paint.js.map +1 -0
- package/dist/html/resources.d.ts +48 -0
- package/dist/html/resources.d.ts.map +1 -0
- package/dist/html/resources.js +156 -0
- package/dist/html/resources.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/heights.d.ts +81 -0
- package/dist/internal/heights.d.ts.map +1 -0
- package/dist/internal/heights.js +193 -0
- package/dist/internal/heights.js.map +1 -0
- package/dist/internal/hx.d.ts +24 -0
- package/dist/internal/hx.d.ts.map +1 -0
- package/dist/internal/hx.js +27 -0
- package/dist/internal/hx.js.map +1 -0
- package/dist/internal/text.d.ts +6 -0
- package/dist/internal/text.d.ts.map +1 -0
- package/dist/internal/text.js +44 -0
- package/dist/internal/text.js.map +1 -0
- package/dist/internal/timers.d.ts +8 -0
- package/dist/internal/timers.d.ts.map +1 -0
- package/dist/internal/timers.js +22 -0
- package/dist/internal/timers.js.map +1 -0
- package/dist/internal/widget.d.ts +40 -0
- package/dist/internal/widget.d.ts.map +1 -0
- package/dist/internal/widget.js +44 -0
- package/dist/internal/widget.js.map +1 -0
- package/dist/markdown/ast.d.ts +126 -0
- package/dist/markdown/ast.d.ts.map +1 -0
- package/dist/markdown/ast.js +8 -0
- package/dist/markdown/ast.js.map +1 -0
- package/dist/markdown/hx.d.ts +24 -0
- package/dist/markdown/hx.d.ts.map +1 -0
- package/dist/markdown/hx.js +25 -0
- package/dist/markdown/hx.js.map +1 -0
- package/dist/markdown/index.d.ts +90 -0
- package/dist/markdown/index.d.ts.map +1 -0
- package/dist/markdown/index.js +413 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/markdown/parse.d.ts +8 -0
- package/dist/markdown/parse.d.ts.map +1 -0
- package/dist/markdown/parse.js +911 -0
- package/dist/markdown/parse.js.map +1 -0
- package/dist/markdown/spans.d.ts +20 -0
- package/dist/markdown/spans.d.ts.map +1 -0
- package/dist/markdown/spans.js +96 -0
- package/dist/markdown/spans.js.map +1 -0
- package/dist/media-player/backends.d.ts +64 -0
- package/dist/media-player/backends.d.ts.map +1 -0
- package/dist/media-player/backends.js +110 -0
- package/dist/media-player/backends.js.map +1 -0
- package/dist/media-player/control.d.ts +40 -0
- package/dist/media-player/control.d.ts.map +1 -0
- package/dist/media-player/control.js +44 -0
- package/dist/media-player/control.js.map +1 -0
- package/dist/media-player/hx.d.ts +24 -0
- package/dist/media-player/hx.d.ts.map +1 -0
- package/dist/media-player/hx.js +25 -0
- package/dist/media-player/hx.js.map +1 -0
- package/dist/media-player/index.d.ts +107 -0
- package/dist/media-player/index.d.ts.map +1 -0
- package/dist/media-player/index.js +219 -0
- package/dist/media-player/index.js.map +1 -0
- package/dist/media-player/mpv.d.ts +4 -0
- package/dist/media-player/mpv.d.ts.map +1 -0
- package/dist/media-player/mpv.js +120 -0
- package/dist/media-player/mpv.js.map +1 -0
- package/dist/media-player/vlc.d.ts +8 -0
- package/dist/media-player/vlc.d.ts.map +1 -0
- package/dist/media-player/vlc.js +83 -0
- package/dist/media-player/vlc.js.map +1 -0
- package/dist/richtext/index.d.ts +19 -0
- package/dist/richtext/index.d.ts.map +1 -0
- package/dist/richtext/index.js +4 -0
- package/dist/richtext/index.js.map +1 -0
- package/dist/richtext/links.d.ts +12 -0
- package/dist/richtext/links.d.ts.map +1 -0
- package/dist/richtext/links.js +64 -0
- package/dist/richtext/links.js.map +1 -0
- package/dist/richtext/menu.d.ts +11 -0
- package/dist/richtext/menu.d.ts.map +1 -0
- package/dist/richtext/menu.js +43 -0
- package/dist/richtext/menu.js.map +1 -0
- package/dist/richtext/node.d.ts +151 -0
- package/dist/richtext/node.d.ts.map +1 -0
- package/dist/richtext/node.js +255 -0
- package/dist/richtext/node.js.map +1 -0
- package/dist/richtext/runs.d.ts +92 -0
- package/dist/richtext/runs.d.ts.map +1 -0
- package/dist/richtext/runs.js +158 -0
- package/dist/richtext/runs.js.map +1 -0
- package/dist/table/hx.d.ts +24 -0
- package/dist/table/hx.d.ts.map +1 -0
- package/dist/table/hx.js +25 -0
- package/dist/table/hx.js.map +1 -0
- package/dist/table/index.d.ts +169 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/index.js +844 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/rows.d.ts +136 -0
- package/dist/table/rows.d.ts.map +1 -0
- package/dist/table/rows.js +146 -0
- package/dist/table/rows.js.map +1 -0
- package/dist/terminal/backends.d.ts +105 -0
- package/dist/terminal/backends.d.ts.map +1 -0
- package/dist/terminal/backends.js +185 -0
- package/dist/terminal/backends.js.map +1 -0
- package/dist/terminal/hx.d.ts +24 -0
- package/dist/terminal/hx.d.ts.map +1 -0
- package/dist/terminal/hx.js +25 -0
- package/dist/terminal/hx.js.map +1 -0
- package/dist/terminal/index.d.ts +160 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +344 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/title.d.ts +24 -0
- package/dist/terminal/title.d.ts.map +1 -0
- package/dist/terminal/title.js +129 -0
- package/dist/terminal/title.js.map +1 -0
- package/dist/terminal/vt/colors.d.ts +63 -0
- package/dist/terminal/vt/colors.d.ts.map +1 -0
- package/dist/terminal/vt/colors.js +203 -0
- package/dist/terminal/vt/colors.js.map +1 -0
- package/dist/terminal/vt/diff.d.ts +117 -0
- package/dist/terminal/vt/diff.d.ts.map +1 -0
- package/dist/terminal/vt/diff.js +358 -0
- package/dist/terminal/vt/diff.js.map +1 -0
- package/dist/terminal/vt/fonts.d.ts +92 -0
- package/dist/terminal/vt/fonts.d.ts.map +1 -0
- package/dist/terminal/vt/fonts.js +178 -0
- package/dist/terminal/vt/fonts.js.map +1 -0
- package/dist/terminal/vt/index.d.ts +78 -0
- package/dist/terminal/vt/index.d.ts.map +1 -0
- package/dist/terminal/vt/index.js +312 -0
- package/dist/terminal/vt/index.js.map +1 -0
- package/dist/terminal/vt/keys.d.ts +74 -0
- package/dist/terminal/vt/keys.d.ts.map +1 -0
- package/dist/terminal/vt/keys.js +309 -0
- package/dist/terminal/vt/keys.js.map +1 -0
- package/dist/terminal/vt/mouse.d.ts +44 -0
- package/dist/terminal/vt/mouse.d.ts.map +1 -0
- package/dist/terminal/vt/mouse.js +106 -0
- package/dist/terminal/vt/mouse.js.map +1 -0
- package/dist/terminal/vt/node.d.ts +246 -0
- package/dist/terminal/vt/node.d.ts.map +1 -0
- package/dist/terminal/vt/node.js +1068 -0
- package/dist/terminal/vt/node.js.map +1 -0
- package/dist/terminal/vt/pty.d.ts +81 -0
- package/dist/terminal/vt/pty.d.ts.map +1 -0
- package/dist/terminal/vt/pty.js +201 -0
- package/dist/terminal/vt/pty.js.map +1 -0
- package/dist/terminal/vt/renderer.d.ts +179 -0
- package/dist/terminal/vt/renderer.d.ts.map +1 -0
- package/dist/terminal/vt/renderer.js +357 -0
- package/dist/terminal/vt/renderer.js.map +1 -0
- package/dist/terminal/vt/timers.d.ts +6 -0
- package/dist/terminal/vt/timers.d.ts.map +1 -0
- package/dist/terminal/vt/timers.js +16 -0
- package/dist/terminal/vt/timers.js.map +1 -0
- package/dist/terminal/vt/xterm.d.ts +142 -0
- package/dist/terminal/vt/xterm.d.ts.map +1 -0
- package/dist/terminal/vt/xterm.js +32 -0
- package/dist/terminal/vt/xterm.js.map +1 -0
- package/dist/terminal-output/hx.d.ts +24 -0
- package/dist/terminal-output/hx.d.ts.map +1 -0
- package/dist/terminal-output/hx.js +25 -0
- package/dist/terminal-output/hx.js.map +1 -0
- package/dist/terminal-output/index.d.ts +92 -0
- package/dist/terminal-output/index.d.ts.map +1 -0
- package/dist/terminal-output/index.js +179 -0
- package/dist/terminal-output/index.js.map +1 -0
- package/dist/terminal-output/runs.d.ts +27 -0
- package/dist/terminal-output/runs.d.ts.map +1 -0
- package/dist/terminal-output/runs.js +66 -0
- package/dist/terminal-output/runs.js.map +1 -0
- package/dist/three/canvas.d.ts +46 -0
- package/dist/three/canvas.d.ts.map +1 -0
- package/dist/three/canvas.js +305 -0
- package/dist/three/canvas.js.map +1 -0
- package/dist/three/events.d.ts +64 -0
- package/dist/three/events.d.ts.map +1 -0
- package/dist/three/events.js +146 -0
- package/dist/three/events.js.map +1 -0
- package/dist/three/geometries.d.ts +89 -0
- package/dist/three/geometries.d.ts.map +1 -0
- package/dist/three/geometries.js +345 -0
- package/dist/three/geometries.js.map +1 -0
- package/dist/three/globals.d.ts +7 -0
- package/dist/three/globals.d.ts.map +1 -0
- package/dist/three/globals.js +20 -0
- package/dist/three/globals.js.map +1 -0
- package/dist/three/hx.d.ts +9 -0
- package/dist/three/hx.d.ts.map +1 -0
- package/dist/three/hx.js +10 -0
- package/dist/three/hx.js.map +1 -0
- package/dist/three/index.d.ts +22 -0
- package/dist/three/index.d.ts.map +1 -0
- package/dist/three/index.js +24 -0
- package/dist/three/index.js.map +1 -0
- package/dist/three/jsx-dev-runtime.d.ts +19 -0
- package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/three/jsx-dev-runtime.js +2 -0
- package/dist/three/jsx-dev-runtime.js.map +1 -0
- package/dist/three/jsx-runtime.d.ts +19 -0
- package/dist/three/jsx-runtime.d.ts.map +1 -0
- package/dist/three/jsx-runtime.js +2 -0
- package/dist/three/jsx-runtime.js.map +1 -0
- package/dist/three/jsx.d.ts +198 -0
- package/dist/three/jsx.d.ts.map +1 -0
- package/dist/three/jsx.js +2 -0
- package/dist/three/jsx.js.map +1 -0
- package/dist/three/materials.d.ts +125 -0
- package/dist/three/materials.d.ts.map +1 -0
- package/dist/three/materials.js +229 -0
- package/dist/three/materials.js.map +1 -0
- package/dist/three/math.d.ts +146 -0
- package/dist/three/math.d.ts.map +1 -0
- package/dist/three/math.js +464 -0
- package/dist/three/math.js.map +1 -0
- package/dist/three/objects.d.ts +185 -0
- package/dist/three/objects.d.ts.map +1 -0
- package/dist/three/objects.js +309 -0
- package/dist/three/objects.js.map +1 -0
- package/dist/three/passes.d.ts +54 -0
- package/dist/three/passes.d.ts.map +1 -0
- package/dist/three/passes.js +78 -0
- package/dist/three/passes.js.map +1 -0
- package/dist/three/postprocess.d.ts +85 -0
- package/dist/three/postprocess.d.ts.map +1 -0
- package/dist/three/postprocess.js +503 -0
- package/dist/three/postprocess.js.map +1 -0
- package/dist/three/raycast.d.ts +24 -0
- package/dist/three/raycast.d.ts.map +1 -0
- package/dist/three/raycast.js +138 -0
- package/dist/three/raycast.js.map +1 -0
- package/dist/three/reconciler.d.ts +48 -0
- package/dist/three/reconciler.d.ts.map +1 -0
- package/dist/three/reconciler.js +416 -0
- package/dist/three/reconciler.js.map +1 -0
- package/dist/three/renderer-direct.d.ts +102 -0
- package/dist/three/renderer-direct.d.ts.map +1 -0
- package/dist/three/renderer-direct.js +782 -0
- package/dist/three/renderer-direct.js.map +1 -0
- package/dist/three/renderer-indirect.d.ts +68 -0
- package/dist/three/renderer-indirect.d.ts.map +1 -0
- package/dist/three/renderer-indirect.js +438 -0
- package/dist/three/renderer-indirect.js.map +1 -0
- package/dist/three/store.d.ts +81 -0
- package/dist/three/store.d.ts.map +1 -0
- package/dist/three/store.js +110 -0
- package/dist/three/store.js.map +1 -0
- package/dist/timeline/hx.d.ts +18 -0
- package/dist/timeline/hx.d.ts.map +1 -0
- package/dist/timeline/hx.js +10 -0
- package/dist/timeline/hx.js.map +1 -0
- package/dist/timeline/index.d.ts +152 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +383 -0
- package/dist/timeline/index.js.map +1 -0
- package/dist/tray-host/hx.d.ts +24 -0
- package/dist/tray-host/hx.d.ts.map +1 -0
- package/dist/tray-host/hx.js +25 -0
- package/dist/tray-host/hx.js.map +1 -0
- package/dist/tray-host/index.d.ts +110 -0
- package/dist/tray-host/index.d.ts.map +1 -0
- package/dist/tray-host/index.js +191 -0
- package/dist/tray-host/index.js.map +1 -0
- package/dist/tray-host/manager.d.ts +137 -0
- package/dist/tray-host/manager.d.ts.map +1 -0
- package/dist/tray-host/manager.js +462 -0
- package/dist/tray-host/manager.js.map +1 -0
- package/dist/tray-host/notify.d.ts +22 -0
- package/dist/tray-host/notify.d.ts.map +1 -0
- package/dist/tray-host/notify.js +74 -0
- package/dist/tray-host/notify.js.map +1 -0
- package/dist/tray-host/protocol.d.ts +106 -0
- package/dist/tray-host/protocol.d.ts.map +1 -0
- package/dist/tray-host/protocol.js +191 -0
- package/dist/tray-host/protocol.js.map +1 -0
- package/dist/tree/hx.d.ts +24 -0
- package/dist/tree/hx.d.ts.map +1 -0
- package/dist/tree/hx.js +25 -0
- package/dist/tree/hx.js.map +1 -0
- package/dist/tree/index.d.ts +221 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/index.js +716 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree/internal.d.ts +18 -0
- package/dist/tree/internal.d.ts.map +1 -0
- package/dist/tree/internal.js +66 -0
- package/dist/tree/internal.js.map +1 -0
- package/dist/tree/rows.d.ts +177 -0
- package/dist/tree/rows.d.ts.map +1 -0
- package/dist/tree/rows.js +179 -0
- package/dist/tree/rows.js.map +1 -0
- package/package.json +166 -12
- package/src/ansi/cast.ts +159 -0
- package/src/ansi/index.ts +53 -0
- package/src/ansi/palette.ts +226 -0
- package/src/ansi/parse.ts +780 -0
- package/src/ansi/sgr.ts +380 -0
- package/src/ansi/utf8.ts +84 -0
- package/src/calendar/Calendar.ts +744 -0
- package/src/calendar/DatePicker.ts +368 -0
- package/src/calendar/dates.ts +307 -0
- package/src/calendar/index.ts +51 -0
- package/src/charts/components.ts +864 -0
- package/src/charts/data.ts +776 -0
- package/src/charts/hx.ts +39 -0
- package/src/charts/index.ts +99 -0
- package/src/charts/node.ts +932 -0
- package/src/charts/render.ts +982 -0
- package/src/charts/scale.ts +214 -0
- package/src/charts/spec.ts +122 -0
- package/src/charts/timers.ts +24 -0
- package/src/code/hx.ts +51 -0
- package/src/code/index.ts +174 -0
- package/src/code-editor/completion.ts +161 -0
- package/src/code-editor/doc.ts +198 -0
- package/src/code-editor/hx.ts +26 -0
- package/src/code-editor/index.ts +615 -0
- package/src/code-editor/node.ts +1926 -0
- package/src/code-language/hljs.ts +302 -0
- package/src/code-language/index.ts +51 -0
- package/src/code-language/languages/glsl.ts +120 -0
- package/src/code-language/languages/javascript.ts +419 -0
- package/src/code-language/languages/json.ts +72 -0
- package/src/code-language/languages/shell.ts +221 -0
- package/src/code-language/languages/sql.ts +165 -0
- package/src/code-language/lezer.ts +190 -0
- package/src/code-language/registry.ts +66 -0
- package/src/code-language/runs.ts +128 -0
- package/src/code-language/stream.ts +306 -0
- package/src/code-language/textmate.ts +134 -0
- package/src/code-language/theme.ts +124 -0
- package/src/code-language/timers.ts +36 -0
- package/src/code-language/types.ts +252 -0
- package/src/codeblock/index.ts +146 -0
- package/src/color-picker/ColorField.ts +333 -0
- package/src/color-picker/ColorPicker.ts +1069 -0
- package/src/color-picker/color.ts +399 -0
- package/src/color-picker/index.ts +50 -0
- package/src/desktop-calendar/eds.ts +484 -0
- package/src/desktop-calendar/ical.ts +119 -0
- package/src/desktop-calendar/index.ts +287 -0
- package/src/embed/client.ts +311 -0
- package/src/embed/host.ts +432 -0
- package/src/embed/index.ts +33 -0
- package/src/embed/timers.ts +32 -0
- package/src/flow/draw.ts +418 -0
- package/src/flow/index.ts +473 -0
- package/src/flow/model.ts +687 -0
- package/src/flow/node.ts +3694 -0
- package/src/flow/paths.ts +403 -0
- package/src/flow/types.ts +634 -0
- package/src/formula/hx.ts +51 -0
- package/src/formula/index.ts +243 -0
- package/src/formula/katex.ts +209 -0
- package/src/formula/layout.ts +876 -0
- package/src/formula/node.ts +467 -0
- package/src/html/controls.ts +244 -0
- package/src/html/css/cascade.ts +606 -0
- package/src/html/css/parse.ts +500 -0
- package/src/html/css/style.ts +1371 -0
- package/src/html/css/ua.ts +174 -0
- package/src/html/css/values.ts +358 -0
- package/src/html/dom.ts +410 -0
- package/src/html/hx.ts +55 -0
- package/src/html/index.ts +545 -0
- package/src/html/layout/block.ts +876 -0
- package/src/html/layout/boxes.ts +981 -0
- package/src/html/layout/flex.ts +297 -0
- package/src/html/layout/floats.ts +125 -0
- package/src/html/layout/inline.ts +870 -0
- package/src/html/layout/table.ts +380 -0
- package/src/html/node.ts +967 -0
- package/src/html/paint.ts +605 -0
- package/src/html/resources.ts +214 -0
- package/src/index.ts +638 -0
- package/src/internal/heights.ts +211 -0
- package/src/internal/hx.ts +53 -0
- package/src/internal/text.ts +44 -0
- package/src/internal/timers.ts +44 -0
- package/src/internal/widget.ts +92 -0
- package/src/markdown/ast.ts +163 -0
- package/src/markdown/hx.ts +51 -0
- package/src/markdown/index.ts +686 -0
- package/src/markdown/parse.ts +1037 -0
- package/src/markdown/spans.ts +143 -0
- package/src/media-player/backends.ts +155 -0
- package/src/media-player/control.ts +70 -0
- package/src/media-player/hx.ts +51 -0
- package/src/media-player/index.ts +378 -0
- package/src/media-player/mpv.ts +146 -0
- package/src/media-player/vlc.ts +97 -0
- package/src/richtext/index.ts +42 -0
- package/src/richtext/links.ts +78 -0
- package/src/richtext/menu.ts +49 -0
- package/src/richtext/node.ts +406 -0
- package/src/richtext/runs.ts +253 -0
- package/src/table/hx.ts +51 -0
- package/src/table/index.ts +1219 -0
- package/src/table/rows.ts +275 -0
- package/src/terminal/backends.ts +242 -0
- package/src/terminal/hx.ts +51 -0
- package/src/terminal/index.ts +574 -0
- package/src/terminal/title.ts +172 -0
- package/src/terminal/vt/colors.ts +247 -0
- package/src/terminal/vt/diff.ts +467 -0
- package/src/terminal/vt/fonts.ts +233 -0
- package/src/terminal/vt/index.ts +443 -0
- package/src/terminal/vt/keys.ts +369 -0
- package/src/terminal/vt/mouse.ts +144 -0
- package/src/terminal/vt/node.ts +1242 -0
- package/src/terminal/vt/pty.ts +334 -0
- package/src/terminal/vt/renderer.ts +555 -0
- package/src/terminal/vt/timers.ts +31 -0
- package/src/terminal/vt/xterm.ts +193 -0
- package/src/terminal-output/hx.ts +51 -0
- package/src/terminal-output/index.ts +340 -0
- package/src/terminal-output/runs.ts +79 -0
- package/src/three/canvas.ts +451 -0
- package/src/three/events.ts +197 -0
- package/src/three/geometries.ts +429 -0
- package/src/three/globals.ts +34 -0
- package/src/three/hx.ts +22 -0
- package/src/three/index.ts +98 -0
- package/src/three/jsx-dev-runtime.ts +27 -0
- package/src/three/jsx-runtime.ts +38 -0
- package/src/three/jsx.ts +275 -0
- package/src/three/materials.ts +270 -0
- package/src/three/math.ts +585 -0
- package/src/three/objects.ts +397 -0
- package/src/three/passes.ts +90 -0
- package/src/three/postprocess.ts +677 -0
- package/src/three/raycast.ts +189 -0
- package/src/three/react-reconciler.d.ts +50 -0
- package/src/three/reconciler.ts +624 -0
- package/src/three/renderer-direct.ts +1055 -0
- package/src/three/renderer-indirect.ts +570 -0
- package/src/three/store.ts +207 -0
- package/src/timeline/hx.ts +31 -0
- package/src/timeline/index.ts +603 -0
- package/src/tray-host/hx.ts +51 -0
- package/src/tray-host/index.ts +331 -0
- package/src/tray-host/manager.ts +639 -0
- package/src/tray-host/notify.ts +102 -0
- package/src/tray-host/protocol.ts +235 -0
- package/src/tree/hx.ts +51 -0
- package/src/tree/index.ts +1087 -0
- package/src/tree/internal.ts +87 -0
- package/src/tree/rows.ts +334 -0
- package/src/index.d.ts +0 -2
- package/src/index.js +0 -9
- package/src/sparkline/index.d.ts +0 -29
- package/src/sparkline/index.js +0 -50
- package/src/sparkline/node.js +0 -72
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
// highlight.js as a `Language` — the fourth adapter, beside the built-in
|
|
2
|
+
// stream tokenizers, Lezer and TextMate.
|
|
3
|
+
//
|
|
4
|
+
// It is here because ntk used to ship one (`highlightCode`, a
|
|
5
|
+
// MarkdownView-internal that this package reached for by name) and ntk's
|
|
6
|
+
// document widgets are being decommissioned. What the adapter buys is
|
|
7
|
+
// **breadth**: the built-in tokenizers cover the languages worth writing by
|
|
8
|
+
// hand — js/ts/jsx/tsx, json, shell, sql, glsl — and highlight.js's `common`
|
|
9
|
+
// build covers about thirty more, at a level of accuracy nobody wants to
|
|
10
|
+
// re-derive. A fence tagged `python` or `rust` or `yaml` has somewhere to go.
|
|
11
|
+
//
|
|
12
|
+
// **No dependency, like `textmate.ts`.** The app hands over an initialized
|
|
13
|
+
// highlight.js and this module is typed against the shape it uses, not
|
|
14
|
+
// against the package:
|
|
15
|
+
//
|
|
16
|
+
// ```ts
|
|
17
|
+
// import hljs from 'highlight.js/lib/common';
|
|
18
|
+
// import { hljsLanguage } from '@react-x11/components/code-language';
|
|
19
|
+
//
|
|
20
|
+
// <Markdown resolveLanguage={(tag) => hljsLanguage({ hljs, name: tag })} />
|
|
21
|
+
// ```
|
|
22
|
+
//
|
|
23
|
+
// `import type … from 'highlight.js'` would put the package in the type
|
|
24
|
+
// graph and an app that never installs it could no longer type-check against
|
|
25
|
+
// this one — the same reasoning `ical.ts` and `lezer.ts` are written from.
|
|
26
|
+
// It also means the app chooses the build: `lib/common` (~30 languages),
|
|
27
|
+
// `lib/core` plus registrations (only what it registers), or the full one.
|
|
28
|
+
//
|
|
29
|
+
// ## Whole-document, and what that costs
|
|
30
|
+
//
|
|
31
|
+
// highlight.js has no incremental mode: it tokenizes a string, start to
|
|
32
|
+
// finish, and there is no way to resume from a line. So the tokenizer here
|
|
33
|
+
// highlights the whole document and slices it per line — which the seam
|
|
34
|
+
// explicitly allows ("engines that work document-wide cache internally and
|
|
35
|
+
// slice") — and re-runs on edit, lazily, at most once per generation.
|
|
36
|
+
//
|
|
37
|
+
// That is the right trade for what this is for: a markdown fence, a `<Code>`
|
|
38
|
+
// block, a file of a few hundred lines. It is the wrong tool for a megabyte
|
|
39
|
+
// under a caret, and a `<CodeEditor>` over one should be on a Lezer grammar,
|
|
40
|
+
// which is incremental by construction.
|
|
41
|
+
import type {
|
|
42
|
+
Language,
|
|
43
|
+
LanguageData,
|
|
44
|
+
Token,
|
|
45
|
+
Tokenizer,
|
|
46
|
+
TokenizerHost,
|
|
47
|
+
} from './types.js';
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The slice of highlight.js this adapter uses — `hljs` from
|
|
51
|
+
* `highlight.js/lib/common`, `highlight.js/lib/core`, or the full build,
|
|
52
|
+
* all of which have these two methods.
|
|
53
|
+
*/
|
|
54
|
+
export interface HljsLike {
|
|
55
|
+
/** The language definition for a name or alias, or undefined. */
|
|
56
|
+
getLanguage(name: string): unknown;
|
|
57
|
+
/** Highlight `code`; `value` is HTML with `<span class="hljs-…">` scopes. */
|
|
58
|
+
highlight(
|
|
59
|
+
code: string,
|
|
60
|
+
options: { language: string; ignoreIllegals?: boolean },
|
|
61
|
+
): { value: string };
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface HljsLanguageOptions {
|
|
65
|
+
/** An initialized highlight.js. */
|
|
66
|
+
hljs: HljsLike;
|
|
67
|
+
/** The language name or alias — a fence tag is exactly this. */
|
|
68
|
+
name: string;
|
|
69
|
+
/**
|
|
70
|
+
* Extra scope → token-type entries, merged over the defaults. For a
|
|
71
|
+
* language whose grammar invents a scope, or to re-aim one: highlight.js
|
|
72
|
+
* calls a CSS class `attribute` and a theme may want it as `propertyName`
|
|
73
|
+
* in one language and `variableName` in another.
|
|
74
|
+
*/
|
|
75
|
+
scopeTypes?: Readonly<Record<string, string>>;
|
|
76
|
+
/** Comment syntax and the rest, for `<CodeEditor>`'s own commands.
|
|
77
|
+
* highlight.js does not describe any of this, so it is the caller's. */
|
|
78
|
+
data?: LanguageData;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* highlight.js scope → the token vocabulary in `types.ts` (Lezer's, which is
|
|
83
|
+
* what the built-in themes style). Scopes not listed here inherit the
|
|
84
|
+
* enclosing span's type, so a nested `title` inside `function` still paints;
|
|
85
|
+
* a top-level unknown scope paints plain rather than invisible.
|
|
86
|
+
*
|
|
87
|
+
* Dotted scopes are matched first at their full name and then at their base,
|
|
88
|
+
* because highlight.js emits `title.function_` as two classes and the base
|
|
89
|
+
* is a reasonable answer whenever the specific one is not listed.
|
|
90
|
+
*/
|
|
91
|
+
const DEFAULT_SCOPE_TYPES: Readonly<Record<string, string>> = {
|
|
92
|
+
keyword: 'keyword',
|
|
93
|
+
operator: 'operator',
|
|
94
|
+
punctuation: 'punctuation',
|
|
95
|
+
built_in: 'keyword',
|
|
96
|
+
type: 'typeName',
|
|
97
|
+
class: 'className',
|
|
98
|
+
'title.class': 'className',
|
|
99
|
+
'title.class.inherited': 'className',
|
|
100
|
+
title: 'function',
|
|
101
|
+
'title.function': 'function',
|
|
102
|
+
'title.function.invoke': 'function',
|
|
103
|
+
function: 'function',
|
|
104
|
+
section: 'keyword',
|
|
105
|
+
literal: 'atom',
|
|
106
|
+
symbol: 'atom',
|
|
107
|
+
string: 'string',
|
|
108
|
+
'char.escape': 'escape',
|
|
109
|
+
regexp: 'string2',
|
|
110
|
+
subst: 'variableName',
|
|
111
|
+
addition: 'string',
|
|
112
|
+
deletion: 'comment',
|
|
113
|
+
number: 'number',
|
|
114
|
+
comment: 'comment',
|
|
115
|
+
doctag: 'docComment',
|
|
116
|
+
quote: 'comment',
|
|
117
|
+
meta: 'meta',
|
|
118
|
+
'meta.prompt': 'meta',
|
|
119
|
+
'meta keyword': 'meta',
|
|
120
|
+
'meta string': 'string',
|
|
121
|
+
name: 'typeName',
|
|
122
|
+
tag: 'typeName',
|
|
123
|
+
attr: 'propertyName',
|
|
124
|
+
attribute: 'propertyName',
|
|
125
|
+
property: 'propertyName',
|
|
126
|
+
params: 'variableName',
|
|
127
|
+
variable: 'variableName',
|
|
128
|
+
'variable.language': 'self',
|
|
129
|
+
'variable.constant': 'atom',
|
|
130
|
+
'template-variable': 'variableName',
|
|
131
|
+
'template-tag': 'meta',
|
|
132
|
+
'selector-tag': 'typeName',
|
|
133
|
+
'selector-id': 'labelName',
|
|
134
|
+
'selector-class': 'className',
|
|
135
|
+
'selector-attr': 'propertyName',
|
|
136
|
+
'selector-pseudo': 'modifier',
|
|
137
|
+
'selector-pseudo-class': 'modifier',
|
|
138
|
+
link: 'string',
|
|
139
|
+
bullet: 'punctuation',
|
|
140
|
+
code: 'string2',
|
|
141
|
+
formula: 'string2',
|
|
142
|
+
emphasis: 'comment',
|
|
143
|
+
strong: 'keyword',
|
|
144
|
+
strike: 'comment',
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
const ENTITIES: Readonly<Record<string, string>> = {
|
|
148
|
+
'&': '&',
|
|
149
|
+
'<': '<',
|
|
150
|
+
'>': '>',
|
|
151
|
+
'"': '"',
|
|
152
|
+
''': "'",
|
|
153
|
+
''': "'",
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
const unescapeHtml = (text: string): string =>
|
|
157
|
+
text.replace(/&(?:amp|lt|gt|quot|#x27|#39);/g, (m) => ENTITIES[m]);
|
|
158
|
+
|
|
159
|
+
/** One flat run of the highlighted document. Runs concatenate back to
|
|
160
|
+
* exactly the input — the offsets below depend on it. */
|
|
161
|
+
interface Run {
|
|
162
|
+
text: string;
|
|
163
|
+
type: string | null;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Flatten highlight.js's `<span>` tree into runs.
|
|
168
|
+
*
|
|
169
|
+
* Parsing the emitted HTML rather than driving a custom emitter is
|
|
170
|
+
* deliberate: the emitter interface is internal and has changed shape
|
|
171
|
+
* between majors, while the HTML — escaped text inside `hljs-`-classed spans
|
|
172
|
+
* — is the documented output every consumer of the library stands on.
|
|
173
|
+
*/
|
|
174
|
+
function runsOf(
|
|
175
|
+
html: string,
|
|
176
|
+
scopeTypes: Readonly<Record<string, string>>,
|
|
177
|
+
): Run[] {
|
|
178
|
+
const runs: Run[] = [];
|
|
179
|
+
const stack: Array<string | null> = [null];
|
|
180
|
+
const emit = (text: string, type: string | null): void => {
|
|
181
|
+
if (!text) return;
|
|
182
|
+
const last = runs[runs.length - 1];
|
|
183
|
+
if (last && last.type === type) last.text += text;
|
|
184
|
+
else runs.push({ text, type });
|
|
185
|
+
};
|
|
186
|
+
// a `<span class=…>` open, a close, a run of text, or a stray `<`
|
|
187
|
+
const re = /<span class="([^"]*)">|<\/span>|([^<]+)|</g;
|
|
188
|
+
let m: RegExpExecArray | null;
|
|
189
|
+
while ((m = re.exec(html)) !== null) {
|
|
190
|
+
if (m[1] !== undefined) {
|
|
191
|
+
const classes = m[1]
|
|
192
|
+
.split(/\s+/)
|
|
193
|
+
.filter(Boolean)
|
|
194
|
+
// highlight.js writes the leading scope with the `hljs-` prefix and
|
|
195
|
+
// any sub-scope bare, sometimes with a trailing `_` to dodge CSS
|
|
196
|
+
// keyword collisions: `class="hljs-title function_"`
|
|
197
|
+
.map((c) => (c.startsWith('hljs-') ? c.slice(5) : c).replace(/_$/, ''));
|
|
198
|
+
const scope = classes.join('.');
|
|
199
|
+
const inherited = stack[stack.length - 1];
|
|
200
|
+
stack.push(
|
|
201
|
+
scopeTypes[scope] ?? scopeTypes[classes[0]] ?? inherited ?? null,
|
|
202
|
+
);
|
|
203
|
+
} else if (m[0] === '</span>') {
|
|
204
|
+
if (stack.length > 1) stack.pop();
|
|
205
|
+
} else {
|
|
206
|
+
emit(unescapeHtml(m[0]), stack[stack.length - 1]);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return runs;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/** Runs → one token array per line. Untyped runs become gaps, which is what
|
|
213
|
+
* "plain text" looks like to the painter. */
|
|
214
|
+
function linesOf(runs: readonly Run[], lineCount: number): Token[][] {
|
|
215
|
+
const out: Token[][] = Array.from({ length: lineCount }, () => []);
|
|
216
|
+
let line = 0;
|
|
217
|
+
let col = 0;
|
|
218
|
+
for (const run of runs) {
|
|
219
|
+
// a run may straddle newlines; each piece is a token on its own line
|
|
220
|
+
const pieces = run.text.split('\n');
|
|
221
|
+
for (let i = 0; i < pieces.length; i++) {
|
|
222
|
+
if (i > 0) {
|
|
223
|
+
line += 1;
|
|
224
|
+
col = 0;
|
|
225
|
+
}
|
|
226
|
+
const piece = pieces[i];
|
|
227
|
+
if (!piece) continue;
|
|
228
|
+
if (run.type && line < out.length) {
|
|
229
|
+
out[line].push({ from: col, to: col + piece.length, type: run.type });
|
|
230
|
+
}
|
|
231
|
+
col += piece.length;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return out;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* A `Language` backed by highlight.js. Returns `null` when this build of
|
|
239
|
+
* highlight.js does not know `name` — which is the answer `resolveLanguage`
|
|
240
|
+
* and `languageForTag` both speak, so an unknown fence tag falls through to
|
|
241
|
+
* plain text instead of throwing.
|
|
242
|
+
*
|
|
243
|
+
* ```ts
|
|
244
|
+
* import hljs from 'highlight.js/lib/common';
|
|
245
|
+
* hljsLanguage({ hljs, name: 'python' }); // a Language
|
|
246
|
+
* hljsLanguage({ hljs, name: 'klingon' }); // null
|
|
247
|
+
* ```
|
|
248
|
+
*/
|
|
249
|
+
export function hljsLanguage(options: HljsLanguageOptions): Language | null {
|
|
250
|
+
const { hljs, name, scopeTypes: extra, data } = options;
|
|
251
|
+
const language = String(name ?? '').toLowerCase();
|
|
252
|
+
if (!language || !hljs.getLanguage(language)) return null;
|
|
253
|
+
|
|
254
|
+
const scopeTypes = extra
|
|
255
|
+
? { ...DEFAULT_SCOPE_TYPES, ...extra }
|
|
256
|
+
: DEFAULT_SCOPE_TYPES;
|
|
257
|
+
|
|
258
|
+
return {
|
|
259
|
+
name: language,
|
|
260
|
+
...(data ? { data } : null),
|
|
261
|
+
createTokenizer(_host: TokenizerHost): Tokenizer {
|
|
262
|
+
// The editor's live line array. Held by reference on purpose: it is
|
|
263
|
+
// edited in place, and `edit()` is guaranteed after every mutation, so
|
|
264
|
+
// re-reading it here is what keeps the paint in step with the text.
|
|
265
|
+
let lines: readonly string[] = [];
|
|
266
|
+
let cache: Token[][] | null = null;
|
|
267
|
+
|
|
268
|
+
const rehighlight = (): Token[][] => {
|
|
269
|
+
if (cache) return cache;
|
|
270
|
+
let html: string;
|
|
271
|
+
try {
|
|
272
|
+
html = hljs.highlight(lines.join('\n'), {
|
|
273
|
+
language,
|
|
274
|
+
ignoreIllegals: true,
|
|
275
|
+
}).value;
|
|
276
|
+
} catch {
|
|
277
|
+
// a grammar that throws on this input is not an error worth
|
|
278
|
+
// surfacing — the code is still readable unhighlighted
|
|
279
|
+
cache = lines.map(() => []);
|
|
280
|
+
return cache;
|
|
281
|
+
}
|
|
282
|
+
cache = linesOf(runsOf(html, scopeTypes), lines.length);
|
|
283
|
+
return cache;
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
return {
|
|
287
|
+
setLines(next) {
|
|
288
|
+
lines = next;
|
|
289
|
+
cache = null;
|
|
290
|
+
},
|
|
291
|
+
edit() {
|
|
292
|
+
// no incremental path to take: drop the cache and let the next
|
|
293
|
+
// pull re-run the whole document
|
|
294
|
+
cache = null;
|
|
295
|
+
},
|
|
296
|
+
lineTokens(line) {
|
|
297
|
+
return rehighlight()[line] ?? [];
|
|
298
|
+
},
|
|
299
|
+
};
|
|
300
|
+
},
|
|
301
|
+
};
|
|
302
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// The language seam, as its own module: tokenizers, the token vocabulary,
|
|
2
|
+
// the built-in languages, the token palettes, and the static-highlighting
|
|
3
|
+
// helpers. `<CodeEditor>`, `<Code>` and `<Markdown>`'s fenced blocks all
|
|
4
|
+
// stand on this — it is the "shared module that both import" the
|
|
5
|
+
// tree-shaking rules call for, and it registers nothing: importing a
|
|
6
|
+
// language costs exactly that language.
|
|
7
|
+
export { lineModeLanguage, streamLanguage, StringStream } from './stream.js';
|
|
8
|
+
export type { LineMode, StreamMode } from './stream.js';
|
|
9
|
+
|
|
10
|
+
export { glsl } from './languages/glsl.js';
|
|
11
|
+
export { javascript } from './languages/javascript.js';
|
|
12
|
+
export type { JavascriptOptions } from './languages/javascript.js';
|
|
13
|
+
export { json } from './languages/json.js';
|
|
14
|
+
export { shell } from './languages/shell.js';
|
|
15
|
+
export { sql } from './languages/sql.js';
|
|
16
|
+
export type { SqlOptions } from './languages/sql.js';
|
|
17
|
+
|
|
18
|
+
export { hljsLanguage } from './hljs.js';
|
|
19
|
+
export type { HljsLanguageOptions, HljsLike } from './hljs.js';
|
|
20
|
+
export { lezerLanguage } from './lezer.js';
|
|
21
|
+
export type { LezerLanguageOptions, LezerParserLike } from './lezer.js';
|
|
22
|
+
export { textMateLanguage } from './textmate.js';
|
|
23
|
+
export type {
|
|
24
|
+
TextMateGrammarLike,
|
|
25
|
+
TextMateLanguageOptions,
|
|
26
|
+
} from './textmate.js';
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
autoTokenStyles,
|
|
30
|
+
DARK_TOKEN_STYLES,
|
|
31
|
+
isDarkBackground,
|
|
32
|
+
LIGHT_TOKEN_STYLES,
|
|
33
|
+
tokenStyleFor,
|
|
34
|
+
} from './theme.js';
|
|
35
|
+
|
|
36
|
+
export { languageForTag, tokenizeText } from './registry.js';
|
|
37
|
+
export { codeRuns } from './runs.js';
|
|
38
|
+
export type { CodeRun, CodeRunOptions } from './runs.js';
|
|
39
|
+
|
|
40
|
+
export { TOKEN_FALLBACK } from './types.js';
|
|
41
|
+
export type {
|
|
42
|
+
Language,
|
|
43
|
+
LanguageData,
|
|
44
|
+
LineEdit,
|
|
45
|
+
Token,
|
|
46
|
+
Tokenizer,
|
|
47
|
+
TokenizerHost,
|
|
48
|
+
TokenStyle,
|
|
49
|
+
TokenStyles,
|
|
50
|
+
TokenType,
|
|
51
|
+
} from './types.js';
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// GLSL (OpenGL Shading Language), as a stream mode — the shader-editor use
|
|
2
|
+
// case. C-family surface: preprocessor lines, `//` and `/* */` comments,
|
|
3
|
+
// numbers with GLSL suffixes, the type zoo, storage qualifiers, and the
|
|
4
|
+
// built-in function set that makes a shader readable at a glance.
|
|
5
|
+
import { streamLanguage } from '../stream.js';
|
|
6
|
+
import type { StringStream } from '../stream.js';
|
|
7
|
+
import type { Language } from '../types.js';
|
|
8
|
+
|
|
9
|
+
const KEYWORDS = new Set(
|
|
10
|
+
(
|
|
11
|
+
'break case const continue default discard do else for if precision ' +
|
|
12
|
+
'return struct switch while'
|
|
13
|
+
).split(' '),
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
const QUALIFIERS = new Set(
|
|
17
|
+
(
|
|
18
|
+
'attribute buffer centroid coherent flat highp in inout invariant layout ' +
|
|
19
|
+
'lowp mediump noperspective out patch readonly restrict sample shared ' +
|
|
20
|
+
'smooth uniform varying volatile writeonly'
|
|
21
|
+
).split(' '),
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
const TYPES = new Set(
|
|
25
|
+
(
|
|
26
|
+
'bool bvec2 bvec3 bvec4 dmat2 dmat3 dmat4 double dvec2 dvec3 dvec4 float ' +
|
|
27
|
+
'int isampler2D isampler3D isamplerCube ivec2 ivec3 ivec4 mat2 mat2x2 ' +
|
|
28
|
+
'mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 ' +
|
|
29
|
+
'sampler1D sampler2D sampler2DArray sampler2DShadow sampler3D samplerCube ' +
|
|
30
|
+
'samplerCubeShadow uint usampler2D usampler3D usamplerCube uvec2 uvec3 ' +
|
|
31
|
+
'uvec4 vec2 vec3 vec4 void'
|
|
32
|
+
).split(' '),
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
const BUILTINS = new Set(
|
|
36
|
+
(
|
|
37
|
+
'abs acos asin atan ceil clamp cos cross dFdx dFdy degrees distance dot ' +
|
|
38
|
+
'exp exp2 faceforward floor fract fwidth inversesqrt length log log2 max ' +
|
|
39
|
+
'min mix mod normalize pow radians reflect refract sign sin smoothstep ' +
|
|
40
|
+
'sqrt step tan texelFetch texture texture2D textureCube textureLod'
|
|
41
|
+
).split(' '),
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
const ATOMS = new Set(['true', 'false']);
|
|
45
|
+
|
|
46
|
+
/** gl_Position, gl_FragColor, gl_FragCoord and friends. */
|
|
47
|
+
const GL_VAR = /^gl_\w+/;
|
|
48
|
+
|
|
49
|
+
interface GlslState {
|
|
50
|
+
comment: boolean;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function token(stream: StringStream, state: GlslState): string | null {
|
|
54
|
+
if (state.comment) {
|
|
55
|
+
if (stream.match(/^.*?\*\//)) state.comment = false;
|
|
56
|
+
else stream.skipToEnd();
|
|
57
|
+
return 'comment';
|
|
58
|
+
}
|
|
59
|
+
// a preprocessor line: #version, #define, #ifdef … — checked before
|
|
60
|
+
// whitespace is consumed, because `#` must be first on its line and
|
|
61
|
+
// `eatSpace` would make `sol()` false for the check that follows it
|
|
62
|
+
if (stream.sol() && stream.match(/^\s*#/)) {
|
|
63
|
+
stream.skipToEnd();
|
|
64
|
+
return 'meta';
|
|
65
|
+
}
|
|
66
|
+
if (stream.eatSpace()) return null;
|
|
67
|
+
if (stream.match('//')) {
|
|
68
|
+
stream.skipToEnd();
|
|
69
|
+
return 'comment';
|
|
70
|
+
}
|
|
71
|
+
if (stream.match('/*')) {
|
|
72
|
+
state.comment = true;
|
|
73
|
+
if (stream.match(/^.*?\*\//)) state.comment = false;
|
|
74
|
+
else stream.skipToEnd();
|
|
75
|
+
return 'comment';
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (
|
|
79
|
+
stream.match(/^\d+\.\d*([eE][+-]?\d+)?(lf|LF|f|F)?/) ||
|
|
80
|
+
stream.match(/^\.\d+([eE][+-]?\d+)?(lf|LF|f|F)?/) ||
|
|
81
|
+
stream.match(/^0[xX][0-9a-fA-F]+[uU]?/) ||
|
|
82
|
+
stream.match(/^\d+([eE][+-]?\d+)?(lf|LF|f|F|u|U)?/)
|
|
83
|
+
) {
|
|
84
|
+
return 'number';
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (stream.match(GL_VAR)) return 'atom';
|
|
88
|
+
|
|
89
|
+
if (stream.match(/^[A-Za-z_]\w*/)) {
|
|
90
|
+
const word = stream.current();
|
|
91
|
+
if (KEYWORDS.has(word)) return 'keyword';
|
|
92
|
+
if (QUALIFIERS.has(word)) return 'modifier';
|
|
93
|
+
if (TYPES.has(word)) return 'typeName';
|
|
94
|
+
if (ATOMS.has(word)) return 'bool';
|
|
95
|
+
if (BUILTINS.has(word) && stream.match(/^\s*\(/, false)) return 'function';
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (stream.match(/^\.[xyzwrgbastpq]{1,4}\b/)) return 'propertyName'; // swizzle
|
|
100
|
+
|
|
101
|
+
if (stream.eat(/[{}()[\]]/)) return 'bracket';
|
|
102
|
+
if (stream.eat(/[;,]/)) return 'punctuation';
|
|
103
|
+
if (stream.eatWhile(/[+\-*/%<>=!&|^~?:.]/)) return 'operator';
|
|
104
|
+
stream.next();
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** GLSL. */
|
|
109
|
+
export function glsl(): Language {
|
|
110
|
+
return streamLanguage<GlslState>({
|
|
111
|
+
name: 'glsl',
|
|
112
|
+
languageData: {
|
|
113
|
+
lineComment: '//',
|
|
114
|
+
completions: [...KEYWORDS, ...QUALIFIERS, ...TYPES, ...BUILTINS].sort(),
|
|
115
|
+
indentAfter: /[([{]\s*$/,
|
|
116
|
+
},
|
|
117
|
+
startState: () => ({ comment: false }),
|
|
118
|
+
token,
|
|
119
|
+
});
|
|
120
|
+
}
|