@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,429 @@
|
|
|
1
|
+
// Geometry: the vertex data behind `<boxGeometry>` and friends.
|
|
2
|
+
//
|
|
3
|
+
// Each parametric class takes the same `args` tuple as its three.js
|
|
4
|
+
// counterpart and produces plain arrays — positions, normals, uvs and a
|
|
5
|
+
// triangle index — which the indirect renderer compiles into one server-side
|
|
6
|
+
// display list and the direct renderer uploads into one set of vertex
|
|
7
|
+
// buffers. Either way the arrays are built once per `version`: changing
|
|
8
|
+
// `args` bumps the version and drops the cache, and both renderers key their
|
|
9
|
+
// GPU/server resources on (geometry identity, version), which is the
|
|
10
|
+
// never-send-vertices-twice rule the whole design hangs on.
|
|
11
|
+
//
|
|
12
|
+
// A port of react-x11's `src/geometry3d.js`, reshaped from prop-reading
|
|
13
|
+
// functions into mutable classes so `<boxGeometry args={…} />` and
|
|
14
|
+
// `new BoxGeometry(…)` are the same thing — the r3f `args` contract.
|
|
15
|
+
|
|
16
|
+
export interface GeometryData {
|
|
17
|
+
positions: number[];
|
|
18
|
+
normals: number[];
|
|
19
|
+
uvs: number[];
|
|
20
|
+
index: number[] | null;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Build a parametric surface as a (segmentsX+1) x (segmentsY+1) vertex grid.
|
|
25
|
+
* `point(u, v)` returns [position, normal] for u, v in 0..1.
|
|
26
|
+
*/
|
|
27
|
+
function grid(
|
|
28
|
+
segmentsX: number,
|
|
29
|
+
segmentsY: number,
|
|
30
|
+
point: (u: number, v: number) => [number[], number[]],
|
|
31
|
+
): GeometryData {
|
|
32
|
+
const positions: number[] = [];
|
|
33
|
+
const normals: number[] = [];
|
|
34
|
+
const uvs: number[] = [];
|
|
35
|
+
const index: number[] = [];
|
|
36
|
+
for (let iy = 0; iy <= segmentsY; iy++) {
|
|
37
|
+
for (let ix = 0; ix <= segmentsX; ix++) {
|
|
38
|
+
const u = ix / segmentsX;
|
|
39
|
+
const v = iy / segmentsY;
|
|
40
|
+
const [p, n] = point(u, v);
|
|
41
|
+
positions.push(p[0], p[1], p[2]);
|
|
42
|
+
normals.push(n[0], n[1], n[2]);
|
|
43
|
+
uvs.push(u, 1 - v);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const stride = segmentsX + 1;
|
|
47
|
+
for (let iy = 0; iy < segmentsY; iy++) {
|
|
48
|
+
for (let ix = 0; ix < segmentsX; ix++) {
|
|
49
|
+
const a = iy * stride + ix;
|
|
50
|
+
const b = a + 1;
|
|
51
|
+
const c = a + stride;
|
|
52
|
+
const d = c + 1;
|
|
53
|
+
index.push(a, c, b, b, c, d);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return { positions, normals, uvs, index };
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function merge(parts: GeometryData[]): GeometryData {
|
|
60
|
+
const out: GeometryData = { positions: [], normals: [], uvs: [], index: [] };
|
|
61
|
+
for (const part of parts) {
|
|
62
|
+
const offset = out.positions.length / 3;
|
|
63
|
+
out.positions.push(...part.positions);
|
|
64
|
+
out.normals.push(...part.normals);
|
|
65
|
+
out.uvs.push(...part.uvs);
|
|
66
|
+
for (const i of part.index ?? []) out.index!.push(i + offset);
|
|
67
|
+
}
|
|
68
|
+
return out;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Flat normals from the triangles themselves, averaged per vertex. */
|
|
72
|
+
function faceNormals(
|
|
73
|
+
positions: ArrayLike<number>,
|
|
74
|
+
index: ArrayLike<number> | null,
|
|
75
|
+
count: number,
|
|
76
|
+
): number[] {
|
|
77
|
+
const normals = new Array<number>(count * 3).fill(0);
|
|
78
|
+
const tri = index ?? Array.from({ length: count }, (_, i) => i);
|
|
79
|
+
for (let i = 0; i + 2 < tri.length; i += 3) {
|
|
80
|
+
const a = tri[i];
|
|
81
|
+
const b = tri[i + 1];
|
|
82
|
+
const c = tri[i + 2];
|
|
83
|
+
const ax = positions[a * 3];
|
|
84
|
+
const ay = positions[a * 3 + 1];
|
|
85
|
+
const az = positions[a * 3 + 2];
|
|
86
|
+
const ux = positions[b * 3] - ax;
|
|
87
|
+
const uy = positions[b * 3 + 1] - ay;
|
|
88
|
+
const uz = positions[b * 3 + 2] - az;
|
|
89
|
+
const vx = positions[c * 3] - ax;
|
|
90
|
+
const vy = positions[c * 3 + 1] - ay;
|
|
91
|
+
const vz = positions[c * 3 + 2] - az;
|
|
92
|
+
const nx = uy * vz - uz * vy;
|
|
93
|
+
const ny = uz * vx - ux * vz;
|
|
94
|
+
const nz = ux * vy - uy * vx;
|
|
95
|
+
for (const v of [a, b, c]) {
|
|
96
|
+
normals[v * 3] += nx;
|
|
97
|
+
normals[v * 3 + 1] += ny;
|
|
98
|
+
normals[v * 3 + 2] += nz;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
for (let i = 0; i < normals.length; i += 3) {
|
|
102
|
+
const len = Math.hypot(normals[i], normals[i + 1], normals[i + 2]);
|
|
103
|
+
if (len > 0) {
|
|
104
|
+
normals[i] /= len;
|
|
105
|
+
normals[i + 1] /= len;
|
|
106
|
+
normals[i + 2] /= len;
|
|
107
|
+
} else {
|
|
108
|
+
normals[i + 1] = 1;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return normals;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export interface BufferGeometryAttributes {
|
|
115
|
+
position?: ArrayLike<number>;
|
|
116
|
+
/** Derived from the triangles when omitted. */
|
|
117
|
+
normal?: ArrayLike<number>;
|
|
118
|
+
uv?: ArrayLike<number>;
|
|
119
|
+
index?: ArrayLike<number>;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* The base every geometry is: cached arrays, a version, and `setArgs` for
|
|
124
|
+
* the reconciler.
|
|
125
|
+
*
|
|
126
|
+
* `<bufferGeometry position={…} normal={…} uv={…} index={…} />` is this
|
|
127
|
+
* class used directly — explicit attributes as flat arrays, which is the
|
|
128
|
+
* declarative face of three.js's `setAttribute`. `data({ normals: false })`
|
|
129
|
+
* is what a point cloud or a line asks for: nothing shades them, and
|
|
130
|
+
* deriving face normals for a hundred thousand loose vertices is a pass and
|
|
131
|
+
* a megabyte spent on data no shader will read.
|
|
132
|
+
*/
|
|
133
|
+
export class BufferGeometry {
|
|
134
|
+
readonly isGeometry = true;
|
|
135
|
+
readonly isBufferGeometry: boolean = true;
|
|
136
|
+
|
|
137
|
+
/** Bumped whenever the shape changes; GPU caches key on it. */
|
|
138
|
+
version = 0;
|
|
139
|
+
args: readonly unknown[] = [];
|
|
140
|
+
|
|
141
|
+
// Underscore-public, not `private`: a private member would make the class
|
|
142
|
+
// nominal and break the src/dist merge of the JSX augmentation — see the
|
|
143
|
+
// same note on Object3D.
|
|
144
|
+
/** @internal */
|
|
145
|
+
_attributes: BufferGeometryAttributes = {};
|
|
146
|
+
/** @internal */
|
|
147
|
+
_built: Map<'shaded' | 'flat', GeometryData> | null = null;
|
|
148
|
+
/** @internal notified on any change so a demand-mode surface redraws */
|
|
149
|
+
__dirty: (() => void) | null = null;
|
|
150
|
+
|
|
151
|
+
constructor(attributes?: BufferGeometryAttributes) {
|
|
152
|
+
if (attributes) this._attributes = { ...attributes };
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/** Replace the constructor arguments — how an `args` prop change lands. */
|
|
156
|
+
setArgs(args: readonly unknown[]): void {
|
|
157
|
+
if (sameArgs(this.args, args)) return;
|
|
158
|
+
this.args = [...args];
|
|
159
|
+
this.invalidate();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
setAttribute(
|
|
163
|
+
name: keyof BufferGeometryAttributes,
|
|
164
|
+
array: ArrayLike<number>,
|
|
165
|
+
): void {
|
|
166
|
+
this._attributes[name] = array;
|
|
167
|
+
this.invalidate();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
getAttribute(
|
|
171
|
+
name: keyof BufferGeometryAttributes,
|
|
172
|
+
): ArrayLike<number> | undefined {
|
|
173
|
+
return this._attributes[name];
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** A new shape: drop the cached arrays; the renderers drop theirs. */
|
|
177
|
+
invalidate(): void {
|
|
178
|
+
this._built = null;
|
|
179
|
+
this.version++;
|
|
180
|
+
this.__dirty?.();
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/** `{ positions, normals, uvs, index }` — memoized per version. */
|
|
184
|
+
data({ normals = true }: { normals?: boolean } = {}): GeometryData {
|
|
185
|
+
const key = normals ? 'shaded' : 'flat';
|
|
186
|
+
if (!this._built) this._built = new Map();
|
|
187
|
+
let built = this._built.get(key);
|
|
188
|
+
if (!built) {
|
|
189
|
+
built = this.build({ normals });
|
|
190
|
+
this._built.set(key, built);
|
|
191
|
+
}
|
|
192
|
+
return built;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
build({ normals }: { normals: boolean }): GeometryData {
|
|
196
|
+
const a = this._attributes;
|
|
197
|
+
const positions = toNumbers(a.position);
|
|
198
|
+
const count = positions.length / 3;
|
|
199
|
+
const index = a.index ? toNumbers(a.index) : null;
|
|
200
|
+
let normalArray = a.normal ? toNumbers(a.normal) : null;
|
|
201
|
+
if (!normalArray) {
|
|
202
|
+
normalArray = normals ? faceNormals(positions, index, count) : [];
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
positions,
|
|
206
|
+
normals: normalArray,
|
|
207
|
+
uvs: a.uv ? toNumbers(a.uv) : new Array<number>(count * 2).fill(0),
|
|
208
|
+
index,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const toNumbers = (a: ArrayLike<number> | undefined): number[] =>
|
|
214
|
+
a ? Array.from(a) : [];
|
|
215
|
+
|
|
216
|
+
function sameArgs(a: readonly unknown[], b: readonly unknown[]): boolean {
|
|
217
|
+
if (a.length !== b.length) return false;
|
|
218
|
+
return a.every((v, i) => v === b[i]);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const num = (v: unknown, fallback: number): number =>
|
|
222
|
+
typeof v === 'number' ? v : fallback;
|
|
223
|
+
|
|
224
|
+
/** `[width, height, depth, widthSeg, heightSeg, depthSeg]` */
|
|
225
|
+
export class BoxGeometry extends BufferGeometry {
|
|
226
|
+
readonly isBoxGeometry = true;
|
|
227
|
+
constructor(...args: (number | undefined)[]) {
|
|
228
|
+
super();
|
|
229
|
+
this.args = args;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
override build(): GeometryData {
|
|
233
|
+
const [w, h, d, ws, hs, ds] = this.args;
|
|
234
|
+
const width = num(w, 1);
|
|
235
|
+
const height = num(h, 1);
|
|
236
|
+
const depth = num(d, 1);
|
|
237
|
+
const segW = num(ws, 1);
|
|
238
|
+
const segH = num(hs, 1);
|
|
239
|
+
const segD = num(ds, 1);
|
|
240
|
+
|
|
241
|
+
// one grid per face, oriented by (right, up, normal) basis vectors
|
|
242
|
+
const face = (
|
|
243
|
+
right: number[],
|
|
244
|
+
up: number[],
|
|
245
|
+
normal: number[],
|
|
246
|
+
fw: number,
|
|
247
|
+
fh: number,
|
|
248
|
+
segU: number,
|
|
249
|
+
segV: number,
|
|
250
|
+
offset: number,
|
|
251
|
+
) =>
|
|
252
|
+
grid(segU, segV, (u, v) => {
|
|
253
|
+
const su = (u - 0.5) * fw;
|
|
254
|
+
const sv = (0.5 - v) * fh;
|
|
255
|
+
return [
|
|
256
|
+
[
|
|
257
|
+
right[0] * su + up[0] * sv + normal[0] * offset,
|
|
258
|
+
right[1] * su + up[1] * sv + normal[1] * offset,
|
|
259
|
+
right[2] * su + up[2] * sv + normal[2] * offset,
|
|
260
|
+
],
|
|
261
|
+
normal,
|
|
262
|
+
];
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
const x = width / 2;
|
|
266
|
+
const y = height / 2;
|
|
267
|
+
const z = depth / 2;
|
|
268
|
+
return merge([
|
|
269
|
+
face([0, 0, 1], [0, 1, 0], [-1, 0, 0], depth, height, segD, segH, x),
|
|
270
|
+
face([0, 0, -1], [0, 1, 0], [1, 0, 0], depth, height, segD, segH, x),
|
|
271
|
+
face([1, 0, 0], [0, 0, -1], [0, 1, 0], width, depth, segW, segD, y),
|
|
272
|
+
face([1, 0, 0], [0, 0, 1], [0, -1, 0], width, depth, segW, segD, y),
|
|
273
|
+
face([-1, 0, 0], [0, 1, 0], [0, 0, -1], width, height, segW, segH, z),
|
|
274
|
+
face([1, 0, 0], [0, 1, 0], [0, 0, 1], width, height, segW, segH, z),
|
|
275
|
+
]);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/** `[width, height, widthSeg, heightSeg]` */
|
|
280
|
+
export class PlaneGeometry extends BufferGeometry {
|
|
281
|
+
readonly isPlaneGeometry = true;
|
|
282
|
+
constructor(...args: (number | undefined)[]) {
|
|
283
|
+
super();
|
|
284
|
+
this.args = args;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
override build(): GeometryData {
|
|
288
|
+
const [w, h, ws, hs] = this.args;
|
|
289
|
+
const width = num(w, 1);
|
|
290
|
+
const height = num(h, 1);
|
|
291
|
+
return grid(num(ws, 1), num(hs, 1), (u, v) => [
|
|
292
|
+
[(u - 0.5) * width, (0.5 - v) * height, 0],
|
|
293
|
+
[0, 0, 1],
|
|
294
|
+
]);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/** `[radius, widthSeg, heightSeg]` */
|
|
299
|
+
export class SphereGeometry extends BufferGeometry {
|
|
300
|
+
readonly isSphereGeometry = true;
|
|
301
|
+
constructor(...args: (number | undefined)[]) {
|
|
302
|
+
super();
|
|
303
|
+
this.args = args;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
override build(): GeometryData {
|
|
307
|
+
const [r, ws, hs] = this.args;
|
|
308
|
+
const radius = num(r, 1);
|
|
309
|
+
return grid(num(ws, 32), num(hs, 16), (u, v) => {
|
|
310
|
+
const theta = u * Math.PI * 2;
|
|
311
|
+
const phi = v * Math.PI;
|
|
312
|
+
const n = [
|
|
313
|
+
-Math.sin(phi) * Math.cos(theta),
|
|
314
|
+
Math.cos(phi),
|
|
315
|
+
Math.sin(phi) * Math.sin(theta),
|
|
316
|
+
];
|
|
317
|
+
return [[n[0] * radius, n[1] * radius, n[2] * radius], n];
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
function cylinderData(
|
|
323
|
+
radiusTop: number,
|
|
324
|
+
radiusBottom: number,
|
|
325
|
+
height: number,
|
|
326
|
+
radialSegments: number,
|
|
327
|
+
heightSegments: number,
|
|
328
|
+
openEnded: boolean,
|
|
329
|
+
): GeometryData {
|
|
330
|
+
const half = height / 2;
|
|
331
|
+
const slope = (radiusBottom - radiusTop) / height;
|
|
332
|
+
const side = grid(radialSegments, heightSegments, (u, v) => {
|
|
333
|
+
const theta = u * Math.PI * 2;
|
|
334
|
+
const radius = radiusTop + (radiusBottom - radiusTop) * v;
|
|
335
|
+
const cos = Math.cos(theta);
|
|
336
|
+
const sin = Math.sin(theta);
|
|
337
|
+
const len = Math.hypot(1, slope) || 1;
|
|
338
|
+
return [
|
|
339
|
+
[radius * sin, half - v * height, radius * cos],
|
|
340
|
+
[sin / len, slope / len, cos / len],
|
|
341
|
+
];
|
|
342
|
+
});
|
|
343
|
+
if (openEnded) return side;
|
|
344
|
+
|
|
345
|
+
// caps: a triangle fan around the centre, expressed as a 1-segment grid
|
|
346
|
+
const cap = (radius: number, y: number, dir: number) =>
|
|
347
|
+
grid(radialSegments, 1, (u, v) => {
|
|
348
|
+
const theta = u * Math.PI * 2 * dir;
|
|
349
|
+
const r = v * radius;
|
|
350
|
+
return [
|
|
351
|
+
[r * Math.sin(theta), y, r * Math.cos(theta)],
|
|
352
|
+
[0, dir, 0],
|
|
353
|
+
];
|
|
354
|
+
});
|
|
355
|
+
const parts = [side];
|
|
356
|
+
if (radiusTop > 0) parts.push(cap(radiusTop, half, 1));
|
|
357
|
+
if (radiusBottom > 0) parts.push(cap(radiusBottom, -half, -1));
|
|
358
|
+
return merge(parts);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/** `[radiusTop, radiusBottom, height, radialSeg, heightSeg, openEnded]` */
|
|
362
|
+
export class CylinderGeometry extends BufferGeometry {
|
|
363
|
+
readonly isCylinderGeometry = true;
|
|
364
|
+
constructor(...args: (number | boolean | undefined)[]) {
|
|
365
|
+
super();
|
|
366
|
+
this.args = args;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
override build(): GeometryData {
|
|
370
|
+
const [rt, rb, h, rs, hs, open] = this.args;
|
|
371
|
+
return cylinderData(
|
|
372
|
+
num(rt, 1),
|
|
373
|
+
num(rb, 1),
|
|
374
|
+
num(h, 1),
|
|
375
|
+
num(rs, 32),
|
|
376
|
+
num(hs, 1),
|
|
377
|
+
open === true,
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/** `[radius, height, radialSeg, heightSeg, openEnded]` — a cylinder whose
|
|
383
|
+
* top radius is zero, exactly as in three.js. */
|
|
384
|
+
export class ConeGeometry extends BufferGeometry {
|
|
385
|
+
readonly isConeGeometry = true;
|
|
386
|
+
constructor(...args: (number | boolean | undefined)[]) {
|
|
387
|
+
super();
|
|
388
|
+
this.args = args;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
override build(): GeometryData {
|
|
392
|
+
const [r, h, rs, hs, open] = this.args;
|
|
393
|
+
return cylinderData(
|
|
394
|
+
0,
|
|
395
|
+
num(r, 1),
|
|
396
|
+
num(h, 1),
|
|
397
|
+
num(rs, 32),
|
|
398
|
+
num(hs, 1),
|
|
399
|
+
open === true,
|
|
400
|
+
);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/** `[radius, tube, radialSeg, tubularSeg]` */
|
|
405
|
+
export class TorusGeometry extends BufferGeometry {
|
|
406
|
+
readonly isTorusGeometry = true;
|
|
407
|
+
constructor(...args: (number | undefined)[]) {
|
|
408
|
+
super();
|
|
409
|
+
this.args = args;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
override build(): GeometryData {
|
|
413
|
+
const [r, t, rs, ts] = this.args;
|
|
414
|
+
const radius = num(r, 1);
|
|
415
|
+
const tube = num(t, 0.4);
|
|
416
|
+
return grid(num(ts, 48), num(rs, 12), (u, v) => {
|
|
417
|
+
const theta = u * Math.PI * 2;
|
|
418
|
+
const phi = v * Math.PI * 2;
|
|
419
|
+
const cx = radius * Math.cos(theta);
|
|
420
|
+
const cz = radius * Math.sin(theta);
|
|
421
|
+
const n = [
|
|
422
|
+
Math.cos(theta) * Math.cos(phi),
|
|
423
|
+
Math.sin(phi),
|
|
424
|
+
Math.sin(theta) * Math.cos(phi),
|
|
425
|
+
];
|
|
426
|
+
return [[cx + tube * n[0], tube * n[1], cz + tube * n[2]], n];
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Host globals, reached through `globalThis` — the build compiles `src/`
|
|
2
|
+
// with `types: []` on purpose, so a Node global that wanders in fails the
|
|
3
|
+
// build rather than becoming an implicit `@types/node` dependency
|
|
4
|
+
// (AGENTS.md). Same shape as `../internal/timers.ts`.
|
|
5
|
+
interface HostGlobals {
|
|
6
|
+
console?: { warn(...args: unknown[]): void };
|
|
7
|
+
performance?: { now(): number };
|
|
8
|
+
setTimeout?(fn: () => void, ms: number): unknown;
|
|
9
|
+
clearTimeout?(id: unknown): void;
|
|
10
|
+
queueMicrotask?(fn: () => void): void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const g = globalThis as HostGlobals;
|
|
14
|
+
|
|
15
|
+
export function warn(message: string): void {
|
|
16
|
+
g.console?.warn(message);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Milliseconds, monotonic where the host has a monotonic clock. */
|
|
20
|
+
export function now(): number {
|
|
21
|
+
return g.performance?.now() ?? Date.now();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const scheduleTimeout = (fn: () => void, ms: number): unknown =>
|
|
25
|
+
g.setTimeout ? g.setTimeout(fn, ms) : null;
|
|
26
|
+
|
|
27
|
+
export const cancelTimeout = (id: unknown): void => {
|
|
28
|
+
if (id !== null) g.clearTimeout?.(id);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const scheduleMicrotask = (fn: () => void): void => {
|
|
32
|
+
if (g.queueMicrotask) g.queueMicrotask(fn);
|
|
33
|
+
else Promise.resolve().then(fn);
|
|
34
|
+
};
|
package/src/three/hx.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// `React.createElement`, typed against react-x11's host elements — the
|
|
2
|
+
// same private helper `src/calendar/hx.ts` is, cut down to the two elements
|
|
3
|
+
// this module renders. Copied rather than imported because components do
|
|
4
|
+
// not import each other (AGENTS.md); the argument for its existence — that
|
|
5
|
+
// `createElement`'s own overloads describe the DOM — is over there in full.
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import type { Key, ReactElement, ReactNode } from 'react';
|
|
8
|
+
import type { ReactX11Elements } from 'react-x11';
|
|
9
|
+
|
|
10
|
+
type Host = Pick<ReactX11Elements, 'box' | 'glarea'>;
|
|
11
|
+
|
|
12
|
+
interface CommonProps {
|
|
13
|
+
key?: Key;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function hx<K extends keyof Host>(
|
|
17
|
+
type: K,
|
|
18
|
+
props: (Host[K] & CommonProps) | null,
|
|
19
|
+
...children: ReactNode[]
|
|
20
|
+
): ReactElement {
|
|
21
|
+
return React.createElement(type, props, ...children);
|
|
22
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// `@react-x11/components/three` — a react-three-fiber-shaped scene graph
|
|
2
|
+
// over react-x11's `<glarea>`, drawn through whichever GL backend the
|
|
3
|
+
// connection has: indirect GLX (fixed-function, reaches any server that
|
|
4
|
+
// allows it) or ntk's direct backend (GL ES 2 on the GPU, shaders and
|
|
5
|
+
// post-processing). `glPolicy: 'auto'` at createRoot() picks the best one
|
|
6
|
+
// available; the same scene JSX renders on both.
|
|
7
|
+
//
|
|
8
|
+
// Re-exports only — no side effects (AGENTS.md, tree-shaking). The one
|
|
9
|
+
// stateful thing here, the scene reconciler, is created on first mount.
|
|
10
|
+
export { Canvas } from './canvas.js';
|
|
11
|
+
export type { CanvasProps } from './canvas.js';
|
|
12
|
+
|
|
13
|
+
export { useFrame, useThree } from './store.js';
|
|
14
|
+
export type {
|
|
15
|
+
FrameCallback,
|
|
16
|
+
RootState,
|
|
17
|
+
ThreeClock,
|
|
18
|
+
ThreeSize,
|
|
19
|
+
ThreeStore,
|
|
20
|
+
ThreeViewport,
|
|
21
|
+
} from './store.js';
|
|
22
|
+
|
|
23
|
+
export { extend, DIRECT_ONLY_KINDS } from './reconciler.js';
|
|
24
|
+
|
|
25
|
+
export { Color, Euler, Vector3 } from './math.js';
|
|
26
|
+
export type { Mat4, Vec3Tuple } from './math.js';
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
AmbientLight,
|
|
30
|
+
Camera,
|
|
31
|
+
DirectionalLight,
|
|
32
|
+
Group,
|
|
33
|
+
InstancedMesh,
|
|
34
|
+
Light,
|
|
35
|
+
Line,
|
|
36
|
+
LineLoop,
|
|
37
|
+
LineSegments,
|
|
38
|
+
Mesh,
|
|
39
|
+
Object3D,
|
|
40
|
+
OrthographicCamera,
|
|
41
|
+
PerspectiveCamera,
|
|
42
|
+
PointLight,
|
|
43
|
+
Points,
|
|
44
|
+
Scene,
|
|
45
|
+
SpotLight,
|
|
46
|
+
} from './objects.js';
|
|
47
|
+
export type { InstanceSpec, PointerHandlers, Primitive } from './objects.js';
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
BoxGeometry,
|
|
51
|
+
BufferGeometry,
|
|
52
|
+
ConeGeometry,
|
|
53
|
+
CylinderGeometry,
|
|
54
|
+
PlaneGeometry,
|
|
55
|
+
SphereGeometry,
|
|
56
|
+
TorusGeometry,
|
|
57
|
+
} from './geometries.js';
|
|
58
|
+
export type { BufferGeometryAttributes, GeometryData } from './geometries.js';
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
LineBasicMaterial,
|
|
62
|
+
Material,
|
|
63
|
+
MeshBasicMaterial,
|
|
64
|
+
MeshLambertMaterial,
|
|
65
|
+
MeshPhongMaterial,
|
|
66
|
+
MeshStandardMaterial,
|
|
67
|
+
PointsMaterial,
|
|
68
|
+
RawShaderMaterial,
|
|
69
|
+
ShaderMaterial,
|
|
70
|
+
standardToPhong,
|
|
71
|
+
} from './materials.js';
|
|
72
|
+
export type {
|
|
73
|
+
MaterialSide,
|
|
74
|
+
TextureImage,
|
|
75
|
+
UniformEntry,
|
|
76
|
+
Uniforms,
|
|
77
|
+
} from './materials.js';
|
|
78
|
+
|
|
79
|
+
export {
|
|
80
|
+
BloomPass,
|
|
81
|
+
EffectComposer,
|
|
82
|
+
FxaaPass,
|
|
83
|
+
Pass,
|
|
84
|
+
ShaderPass,
|
|
85
|
+
VignettePass,
|
|
86
|
+
} from './passes.js';
|
|
87
|
+
|
|
88
|
+
export { raycast, rayThrough } from './raycast.js';
|
|
89
|
+
export type { RayHit } from './raycast.js';
|
|
90
|
+
export type { ThreeEvent } from './events.js';
|
|
91
|
+
|
|
92
|
+
export type { ThreeElements } from './jsx.js';
|
|
93
|
+
|
|
94
|
+
// The renderers, exported for tests and for anyone driving a `<glarea>` by
|
|
95
|
+
// hand; a `<Canvas>` constructs the right one from `gl.backend` itself.
|
|
96
|
+
export { IndirectRenderer } from './renderer-indirect.js';
|
|
97
|
+
export { DirectRenderer } from './renderer-direct.js';
|
|
98
|
+
export { PostProcessor } from './postprocess.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Development counterpart of jsx-runtime.ts — the same JSX namespace, over
|
|
2
|
+
// react-x11's dev runtime function. The `@jsxImportSource` pragma resolves
|
|
3
|
+
// to this module in development builds.
|
|
4
|
+
import type * as React from 'react';
|
|
5
|
+
import type { ReactX11Elements } from 'react-x11';
|
|
6
|
+
|
|
7
|
+
import type { ThreeElements } from './jsx.js';
|
|
8
|
+
|
|
9
|
+
export { Fragment, jsxDEV } from 'react-x11/jsx-dev-runtime';
|
|
10
|
+
|
|
11
|
+
type CoreElements = Omit<ReactX11Elements, keyof ThreeElements>;
|
|
12
|
+
|
|
13
|
+
export namespace JSX {
|
|
14
|
+
export type ElementType = React.JSX.ElementType;
|
|
15
|
+
export type Element = React.JSX.Element;
|
|
16
|
+
export type ElementClass = React.JSX.ElementClass;
|
|
17
|
+
export type ElementAttributesProperty = React.JSX.ElementAttributesProperty;
|
|
18
|
+
export type ElementChildrenAttribute = React.JSX.ElementChildrenAttribute;
|
|
19
|
+
export type LibraryManagedAttributes<C, P> =
|
|
20
|
+
React.JSX.LibraryManagedAttributes<C, P>;
|
|
21
|
+
export type IntrinsicAttributes = React.JSX.IntrinsicAttributes;
|
|
22
|
+
export type IntrinsicClassAttributes<T> =
|
|
23
|
+
React.JSX.IntrinsicClassAttributes<T>;
|
|
24
|
+
|
|
25
|
+
/** Core's elements with the scene names replaced by this package's. */
|
|
26
|
+
export interface IntrinsicElements extends CoreElements, ThreeElements {}
|
|
27
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// An optional JSX source that types the whole scene vocabulary with this
|
|
2
|
+
// package's r3f-shaped props — refs to the mutable objects, `attach`,
|
|
3
|
+
// dashed transform props — while react-x11 core still declares its own,
|
|
4
|
+
// narrower 3D element types (they leave with its scene graph; an
|
|
5
|
+
// augmentation cannot replace an inherited member until then).
|
|
6
|
+
//
|
|
7
|
+
// Opt a file in with the per-file pragma:
|
|
8
|
+
//
|
|
9
|
+
// /** @jsxImportSource @react-x11/components/three */
|
|
10
|
+
//
|
|
11
|
+
// Runtime-identical to `react-x11/jsx-runtime` — the functions are
|
|
12
|
+
// re-exports — so the pragma changes what type-checks, never what runs.
|
|
13
|
+
// Files without the pragma keep compiling against core's declarations, and
|
|
14
|
+
// this file becomes unnecessary the day core's 3D vocabulary is gone.
|
|
15
|
+
import type * as React from 'react';
|
|
16
|
+
import type { ReactX11Elements } from 'react-x11';
|
|
17
|
+
|
|
18
|
+
import type { ThreeElements } from './jsx.js';
|
|
19
|
+
|
|
20
|
+
export { Fragment, jsx, jsxs } from 'react-x11/jsx-runtime';
|
|
21
|
+
|
|
22
|
+
type CoreElements = Omit<ReactX11Elements, keyof ThreeElements>;
|
|
23
|
+
|
|
24
|
+
export namespace JSX {
|
|
25
|
+
export type ElementType = React.JSX.ElementType;
|
|
26
|
+
export type Element = React.JSX.Element;
|
|
27
|
+
export type ElementClass = React.JSX.ElementClass;
|
|
28
|
+
export type ElementAttributesProperty = React.JSX.ElementAttributesProperty;
|
|
29
|
+
export type ElementChildrenAttribute = React.JSX.ElementChildrenAttribute;
|
|
30
|
+
export type LibraryManagedAttributes<C, P> =
|
|
31
|
+
React.JSX.LibraryManagedAttributes<C, P>;
|
|
32
|
+
export type IntrinsicAttributes = React.JSX.IntrinsicAttributes;
|
|
33
|
+
export type IntrinsicClassAttributes<T> =
|
|
34
|
+
React.JSX.IntrinsicClassAttributes<T>;
|
|
35
|
+
|
|
36
|
+
/** Core's elements with the scene names replaced by this package's. */
|
|
37
|
+
export interface IntrinsicElements extends CoreElements, ThreeElements {}
|
|
38
|
+
}
|