@inhuman.tools/quickdraw 0.0.0-stage → 0.3.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/LICENSE.md +7 -0
- package/README.md +101 -2
- package/aurora.vert +168 -0
- package/dist/bench/host.d.ts +62 -0
- package/dist/bench/host.d.ts.map +1 -0
- package/dist/bench/host.js +77 -0
- package/dist/bench/host.js.map +1 -0
- package/dist/bench/main.d.ts +6 -0
- package/dist/bench/main.d.ts.map +1 -0
- package/dist/bench/main.js +118 -0
- package/dist/bench/main.js.map +1 -0
- package/dist/bench/model.d.ts +36 -0
- package/dist/bench/model.d.ts.map +1 -0
- package/dist/bench/model.js +112 -0
- package/dist/bench/model.js.map +1 -0
- package/dist/bench/tea.d.ts +14 -0
- package/dist/bench/tea.d.ts.map +1 -0
- package/dist/bench/tea.js +6 -0
- package/dist/bench/tea.js.map +1 -0
- package/dist/bench/view.d.ts +9 -0
- package/dist/bench/view.d.ts.map +1 -0
- package/dist/bench/view.js +88 -0
- package/dist/bench/view.js.map +1 -0
- package/dist/bench/worker.d.ts +6 -0
- package/dist/bench/worker.d.ts.map +1 -0
- package/dist/bench/worker.js +46 -0
- package/dist/bench/worker.js.map +1 -0
- package/dist/buffer/bgfx-mark.d.ts +32 -0
- package/dist/buffer/bgfx-mark.d.ts.map +1 -0
- package/dist/buffer/bgfx-mark.js +43 -0
- package/dist/buffer/bgfx-mark.js.map +1 -0
- package/dist/buffer/index.d.ts +191 -0
- package/dist/buffer/index.d.ts.map +1 -0
- package/dist/buffer/index.js +353 -0
- package/dist/buffer/index.js.map +1 -0
- package/dist/capabilities/env.d.ts +23 -0
- package/dist/capabilities/env.d.ts.map +1 -0
- package/dist/capabilities/env.js +35 -0
- package/dist/capabilities/env.js.map +1 -0
- package/dist/capabilities/index.d.ts +13 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +13 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/parse.d.ts +41 -0
- package/dist/capabilities/parse.d.ts.map +1 -0
- package/dist/capabilities/parse.js +86 -0
- package/dist/capabilities/parse.js.map +1 -0
- package/dist/capabilities/probe.d.ts +37 -0
- package/dist/capabilities/probe.d.ts.map +1 -0
- package/dist/capabilities/probe.js +75 -0
- package/dist/capabilities/probe.js.map +1 -0
- package/dist/capabilities/sequences.d.ts +33 -0
- package/dist/capabilities/sequences.d.ts.map +1 -0
- package/dist/capabilities/sequences.js +36 -0
- package/dist/capabilities/sequences.js.map +1 -0
- package/dist/capabilities/types.d.ts +25 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +5 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/input/decode.d.ts +167 -0
- package/dist/input/decode.d.ts.map +1 -0
- package/dist/input/decode.js +825 -0
- package/dist/input/decode.js.map +1 -0
- package/dist/input/draft.d.ts +85 -0
- package/dist/input/draft.d.ts.map +1 -0
- package/dist/input/draft.js +276 -0
- package/dist/input/draft.js.map +1 -0
- package/dist/input/index.d.ts +3 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +3 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input/prompt-blocks.d.ts +58 -0
- package/dist/input/prompt-blocks.d.ts.map +1 -0
- package/dist/input/prompt-blocks.js +48 -0
- package/dist/input/prompt-blocks.js.map +1 -0
- package/dist/input/rich-draft.d.ts +46 -0
- package/dist/input/rich-draft.d.ts.map +1 -0
- package/dist/input/rich-draft.js +391 -0
- package/dist/input/rich-draft.js.map +1 -0
- package/dist/input/rich-hit.d.ts +17 -0
- package/dist/input/rich-hit.d.ts.map +1 -0
- package/dist/input/rich-hit.js +89 -0
- package/dist/input/rich-hit.js.map +1 -0
- package/dist/input/rich-intake.d.ts +16 -0
- package/dist/input/rich-intake.d.ts.map +1 -0
- package/dist/input/rich-intake.js +22 -0
- package/dist/input/rich-intake.js.map +1 -0
- package/dist/input/rich-paint.d.ts +13 -0
- package/dist/input/rich-paint.d.ts.map +1 -0
- package/dist/input/rich-paint.js +18 -0
- package/dist/input/rich-paint.js.map +1 -0
- package/dist/internals/bgfx/index.d.ts +17 -0
- package/dist/internals/bgfx/index.d.ts.map +1 -0
- package/dist/internals/bgfx/index.js +17 -0
- package/dist/internals/bgfx/index.js.map +1 -0
- package/dist/internals/bgfx/materialize.d.ts +31 -0
- package/dist/internals/bgfx/materialize.d.ts.map +1 -0
- package/dist/internals/bgfx/materialize.js +117 -0
- package/dist/internals/bgfx/materialize.js.map +1 -0
- package/dist/internals/bgfx/opacity.d.ts +37 -0
- package/dist/internals/bgfx/opacity.d.ts.map +1 -0
- package/dist/internals/bgfx/opacity.js +76 -0
- package/dist/internals/bgfx/opacity.js.map +1 -0
- package/dist/internals/bgfx/registry.d.ts +13 -0
- package/dist/internals/bgfx/registry.d.ts.map +1 -0
- package/dist/internals/bgfx/registry.js +24 -0
- package/dist/internals/bgfx/registry.js.map +1 -0
- package/dist/internals/bgfx/sab-layout.d.ts +61 -0
- package/dist/internals/bgfx/sab-layout.d.ts.map +1 -0
- package/dist/internals/bgfx/sab-layout.js +107 -0
- package/dist/internals/bgfx/sab-layout.js.map +1 -0
- package/dist/internals/bgfx/shader-frame-host.d.ts +22 -0
- package/dist/internals/bgfx/shader-frame-host.d.ts.map +1 -0
- package/dist/internals/bgfx/shader-frame-host.js +165 -0
- package/dist/internals/bgfx/shader-frame-host.js.map +1 -0
- package/dist/internals/bgfx/shadertoy-catalog.d.ts +41 -0
- package/dist/internals/bgfx/shadertoy-catalog.d.ts.map +1 -0
- package/dist/internals/bgfx/shadertoy-catalog.js +200 -0
- package/dist/internals/bgfx/shadertoy-catalog.js.map +1 -0
- package/dist/internals/bgfx/shadertoy-gl.d.ts +38 -0
- package/dist/internals/bgfx/shadertoy-gl.d.ts.map +1 -0
- package/dist/internals/bgfx/shadertoy-gl.js +283 -0
- package/dist/internals/bgfx/shadertoy-gl.js.map +1 -0
- package/dist/internals/bgfx/types.d.ts +51 -0
- package/dist/internals/bgfx/types.d.ts.map +1 -0
- package/dist/internals/bgfx/types.js +14 -0
- package/dist/internals/bgfx/types.js.map +1 -0
- package/dist/internals/bgfx-worker.d.ts +6 -0
- package/dist/internals/bgfx-worker.d.ts.map +1 -0
- package/dist/internals/bgfx-worker.js +131 -0
- package/dist/internals/bgfx-worker.js.map +1 -0
- package/dist/layout/birth.d.ts +77 -0
- package/dist/layout/birth.d.ts.map +1 -0
- package/dist/layout/birth.js +148 -0
- package/dist/layout/birth.js.map +1 -0
- package/dist/layout/children.d.ts +5 -0
- package/dist/layout/children.d.ts.map +1 -0
- package/dist/layout/children.js +19 -0
- package/dist/layout/children.js.map +1 -0
- package/dist/layout/chrome_frame.d.ts +254 -0
- package/dist/layout/chrome_frame.d.ts.map +1 -0
- package/dist/layout/chrome_frame.js +1080 -0
- package/dist/layout/chrome_frame.js.map +1 -0
- package/dist/layout/chrome_mask.d.ts +40 -0
- package/dist/layout/chrome_mask.d.ts.map +1 -0
- package/dist/layout/chrome_mask.js +150 -0
- package/dist/layout/chrome_mask.js.map +1 -0
- package/dist/layout/engine.d.ts +49 -0
- package/dist/layout/engine.d.ts.map +1 -0
- package/dist/layout/engine.js +1269 -0
- package/dist/layout/engine.js.map +1 -0
- package/dist/layout/flex.d.ts +36 -0
- package/dist/layout/flex.d.ts.map +1 -0
- package/dist/layout/flex.js +111 -0
- package/dist/layout/flex.js.map +1 -0
- package/dist/layout/grid.d.ts +36 -0
- package/dist/layout/grid.d.ts.map +1 -0
- package/dist/layout/grid.js +126 -0
- package/dist/layout/grid.js.map +1 -0
- package/dist/layout/index.d.ts +30 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +30 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/indication.d.ts +34 -0
- package/dist/layout/indication.d.ts.map +1 -0
- package/dist/layout/indication.js +68 -0
- package/dist/layout/indication.js.map +1 -0
- package/dist/layout/length.d.ts +18 -0
- package/dist/layout/length.d.ts.map +1 -0
- package/dist/layout/length.js +24 -0
- package/dist/layout/length.js.map +1 -0
- package/dist/layout/live_paint.d.ts +145 -0
- package/dist/layout/live_paint.d.ts.map +1 -0
- package/dist/layout/live_paint.js +255 -0
- package/dist/layout/live_paint.js.map +1 -0
- package/dist/layout/markdown.d.ts +22 -0
- package/dist/layout/markdown.d.ts.map +1 -0
- package/dist/layout/markdown.js +167 -0
- package/dist/layout/markdown.js.map +1 -0
- package/dist/layout/measure.d.ts +46 -0
- package/dist/layout/measure.d.ts.map +1 -0
- package/dist/layout/measure.js +307 -0
- package/dist/layout/measure.js.map +1 -0
- package/dist/layout/paint-hotkey.d.ts +45 -0
- package/dist/layout/paint-hotkey.d.ts.map +1 -0
- package/dist/layout/paint-hotkey.js +152 -0
- package/dist/layout/paint-hotkey.js.map +1 -0
- package/dist/layout/paint.d.ts +25 -0
- package/dist/layout/paint.d.ts.map +1 -0
- package/dist/layout/paint.js +189 -0
- package/dist/layout/paint.js.map +1 -0
- package/dist/layout/paint_theme.d.ts +85 -0
- package/dist/layout/paint_theme.d.ts.map +1 -0
- package/dist/layout/paint_theme.js +76 -0
- package/dist/layout/paint_theme.js.map +1 -0
- package/dist/layout/progress.d.ts +31 -0
- package/dist/layout/progress.d.ts.map +1 -0
- package/dist/layout/progress.js +83 -0
- package/dist/layout/progress.js.map +1 -0
- package/dist/layout/selection.d.ts +136 -0
- package/dist/layout/selection.d.ts.map +1 -0
- package/dist/layout/selection.js +312 -0
- package/dist/layout/selection.js.map +1 -0
- package/dist/layout/selection_gesture.d.ts +88 -0
- package/dist/layout/selection_gesture.d.ts.map +1 -0
- package/dist/layout/selection_gesture.js +239 -0
- package/dist/layout/selection_gesture.js.map +1 -0
- package/dist/layout/selection_paint.d.ts +47 -0
- package/dist/layout/selection_paint.d.ts.map +1 -0
- package/dist/layout/selection_paint.js +320 -0
- package/dist/layout/selection_paint.js.map +1 -0
- package/dist/layout/serialize.d.ts +49 -0
- package/dist/layout/serialize.d.ts.map +1 -0
- package/dist/layout/serialize.js +437 -0
- package/dist/layout/serialize.js.map +1 -0
- package/dist/layout/squeeze.d.ts +58 -0
- package/dist/layout/squeeze.d.ts.map +1 -0
- package/dist/layout/squeeze.js +239 -0
- package/dist/layout/squeeze.js.map +1 -0
- package/dist/layout/text.d.ts +44 -0
- package/dist/layout/text.d.ts.map +1 -0
- package/dist/layout/text.js +230 -0
- package/dist/layout/text.js.map +1 -0
- package/dist/layout/theme_store.d.ts +21 -0
- package/dist/layout/theme_store.d.ts.map +1 -0
- package/dist/layout/theme_store.js +133 -0
- package/dist/layout/theme_store.js.map +1 -0
- package/dist/layout/types.d.ts +564 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/layout/types.js +2 -0
- package/dist/layout/types.js.map +1 -0
- package/dist/layout/visual_draft.d.ts +60 -0
- package/dist/layout/visual_draft.d.ts.map +1 -0
- package/dist/layout/visual_draft.js +199 -0
- package/dist/layout/visual_draft.js.map +1 -0
- package/dist/lexicon/color.d.ts +22 -0
- package/dist/lexicon/color.d.ts.map +1 -0
- package/dist/lexicon/color.js +6 -0
- package/dist/lexicon/color.js.map +1 -0
- package/dist/lexicon/index.d.ts +15 -0
- package/dist/lexicon/index.d.ts.map +1 -0
- package/dist/lexicon/index.js +15 -0
- package/dist/lexicon/index.js.map +1 -0
- package/dist/lexicon/prominence.d.ts +46 -0
- package/dist/lexicon/prominence.d.ts.map +1 -0
- package/dist/lexicon/prominence.js +73 -0
- package/dist/lexicon/prominence.js.map +1 -0
- package/dist/lexicon/quarantine.d.ts +21 -0
- package/dist/lexicon/quarantine.d.ts.map +1 -0
- package/dist/lexicon/quarantine.js +15 -0
- package/dist/lexicon/quarantine.js.map +1 -0
- package/dist/lexicon/roles.d.ts +37 -0
- package/dist/lexicon/roles.d.ts.map +1 -0
- package/dist/lexicon/roles.js +52 -0
- package/dist/lexicon/roles.js.map +1 -0
- package/dist/lexicon/tiers.d.ts +18 -0
- package/dist/lexicon/tiers.d.ts.map +1 -0
- package/dist/lexicon/tiers.js +17 -0
- package/dist/lexicon/tiers.js.map +1 -0
- package/dist/measure/index.d.ts +43 -0
- package/dist/measure/index.d.ts.map +1 -0
- package/dist/measure/index.js +120 -0
- package/dist/measure/index.js.map +1 -0
- package/dist/render.d.ts +72 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +164 -0
- package/dist/render.js.map +1 -0
- package/dist/runtime/agents_keys.d.ts +8 -0
- package/dist/runtime/agents_keys.d.ts.map +1 -0
- package/dist/runtime/agents_keys.js +24 -0
- package/dist/runtime/agents_keys.js.map +1 -0
- package/dist/runtime/agents_peek.d.ts +44 -0
- package/dist/runtime/agents_peek.d.ts.map +1 -0
- package/dist/runtime/agents_peek.js +96 -0
- package/dist/runtime/agents_peek.js.map +1 -0
- package/dist/runtime/agents_preview.d.ts +25 -0
- package/dist/runtime/agents_preview.d.ts.map +1 -0
- package/dist/runtime/agents_preview.js +118 -0
- package/dist/runtime/agents_preview.js.map +1 -0
- package/dist/runtime/box_bus.d.ts +144 -0
- package/dist/runtime/box_bus.d.ts.map +1 -0
- package/dist/runtime/box_bus.js +74 -0
- package/dist/runtime/box_bus.js.map +1 -0
- package/dist/runtime/clipboard-image.d.ts +20 -0
- package/dist/runtime/clipboard-image.d.ts.map +1 -0
- package/dist/runtime/clipboard-image.js +62 -0
- package/dist/runtime/clipboard-image.js.map +1 -0
- package/dist/runtime/copy_toast.d.ts +46 -0
- package/dist/runtime/copy_toast.d.ts.map +1 -0
- package/dist/runtime/copy_toast.js +117 -0
- package/dist/runtime/copy_toast.js.map +1 -0
- package/dist/runtime/echo.d.ts +41 -0
- package/dist/runtime/echo.d.ts.map +1 -0
- package/dist/runtime/echo.js +112 -0
- package/dist/runtime/echo.js.map +1 -0
- package/dist/runtime/frame.d.ts +79 -0
- package/dist/runtime/frame.d.ts.map +1 -0
- package/dist/runtime/frame.js +258 -0
- package/dist/runtime/frame.js.map +1 -0
- package/dist/runtime/index.d.ts +16 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +16 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/key_buffer.d.ts +19 -0
- package/dist/runtime/key_buffer.d.ts.map +1 -0
- package/dist/runtime/key_buffer.js +24 -0
- package/dist/runtime/key_buffer.js.map +1 -0
- package/dist/runtime/keys.d.ts +66 -0
- package/dist/runtime/keys.d.ts.map +1 -0
- package/dist/runtime/keys.js +220 -0
- package/dist/runtime/keys.js.map +1 -0
- package/dist/runtime/paint_snapshot.d.ts +9 -0
- package/dist/runtime/paint_snapshot.d.ts.map +1 -0
- package/dist/runtime/paint_snapshot.js +8 -0
- package/dist/runtime/paint_snapshot.js.map +1 -0
- package/dist/runtime/paint_source.d.ts +266 -0
- package/dist/runtime/paint_source.d.ts.map +1 -0
- package/dist/runtime/paint_source.js +532 -0
- package/dist/runtime/paint_source.js.map +1 -0
- package/dist/runtime/present_loop.d.ts +11 -0
- package/dist/runtime/present_loop.d.ts.map +1 -0
- package/dist/runtime/present_loop.js +46 -0
- package/dist/runtime/present_loop.js.map +1 -0
- package/dist/runtime/present_profile.d.ts +58 -0
- package/dist/runtime/present_profile.d.ts.map +1 -0
- package/dist/runtime/present_profile.js +130 -0
- package/dist/runtime/present_profile.js.map +1 -0
- package/dist/runtime/raster.d.ts +24 -0
- package/dist/runtime/raster.d.ts.map +1 -0
- package/dist/runtime/raster.js +43 -0
- package/dist/runtime/raster.js.map +1 -0
- package/dist/runtime/renderer.d.ts +151 -0
- package/dist/runtime/renderer.d.ts.map +1 -0
- package/dist/runtime/renderer.js +1607 -0
- package/dist/runtime/renderer.js.map +1 -0
- package/dist/runtime/screenshot.d.ts +9 -0
- package/dist/runtime/screenshot.d.ts.map +1 -0
- package/dist/runtime/screenshot.js +111 -0
- package/dist/runtime/screenshot.js.map +1 -0
- package/dist/runtime/selection_host.d.ts +41 -0
- package/dist/runtime/selection_host.d.ts.map +1 -0
- package/dist/runtime/selection_host.js +190 -0
- package/dist/runtime/selection_host.js.map +1 -0
- package/dist/runtime/stderr_hold.d.ts +16 -0
- package/dist/runtime/stderr_hold.d.ts.map +1 -0
- package/dist/runtime/stderr_hold.js +23 -0
- package/dist/runtime/stderr_hold.js.map +1 -0
- package/dist/runtime/thought_birth.d.ts +25 -0
- package/dist/runtime/thought_birth.d.ts.map +1 -0
- package/dist/runtime/thought_birth.js +122 -0
- package/dist/runtime/thought_birth.js.map +1 -0
- package/dist/runtime/thought_collapsed.d.ts +35 -0
- package/dist/runtime/thought_collapsed.d.ts.map +1 -0
- package/dist/runtime/thought_collapsed.js +94 -0
- package/dist/runtime/thought_collapsed.js.map +1 -0
- package/dist/runtime/tty.d.ts +58 -0
- package/dist/runtime/tty.d.ts.map +1 -0
- package/dist/runtime/tty.js +130 -0
- package/dist/runtime/tty.js.map +1 -0
- package/dist/theme/ansi16.d.ts +34 -0
- package/dist/theme/ansi16.d.ts.map +1 -0
- package/dist/theme/ansi16.js +181 -0
- package/dist/theme/ansi16.js.map +1 -0
- package/dist/theme/ansi256.d.ts +15 -0
- package/dist/theme/ansi256.d.ts.map +1 -0
- package/dist/theme/ansi256.js +94 -0
- package/dist/theme/ansi256.js.map +1 -0
- package/dist/theme/ground.d.ts +8 -0
- package/dist/theme/ground.d.ts.map +1 -0
- package/dist/theme/ground.js +11 -0
- package/dist/theme/ground.js.map +1 -0
- package/dist/theme/index.d.ts +10 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +10 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/region.d.ts +42 -0
- package/dist/theme/region.d.ts.map +1 -0
- package/dist/theme/region.js +105 -0
- package/dist/theme/region.js.map +1 -0
- package/dist/theme/resolver.d.ts +126 -0
- package/dist/theme/resolver.d.ts.map +1 -0
- package/dist/theme/resolver.js +366 -0
- package/dist/theme/resolver.js.map +1 -0
- package/dist/theme/salience.d.ts +90 -0
- package/dist/theme/salience.d.ts.map +1 -0
- package/dist/theme/salience.js +208 -0
- package/dist/theme/salience.js.map +1 -0
- package/dist/theme/seeds.d.ts +113 -0
- package/dist/theme/seeds.d.ts.map +1 -0
- package/dist/theme/seeds.js +52 -0
- package/dist/theme/seeds.js.map +1 -0
- package/dist/theme/selection.d.ts +94 -0
- package/dist/theme/selection.d.ts.map +1 -0
- package/dist/theme/selection.js +135 -0
- package/dist/theme/selection.js.map +1 -0
- package/dist/theme/theme.d.ts +41 -0
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/theme/theme.js +34 -0
- package/dist/theme/theme.js.map +1 -0
- package/dist/widgets/composer-caret.d.ts +47 -0
- package/dist/widgets/composer-caret.d.ts.map +1 -0
- package/dist/widgets/composer-caret.js +90 -0
- package/dist/widgets/composer-caret.js.map +1 -0
- package/dist/widgets/composer-click.d.ts +30 -0
- package/dist/widgets/composer-click.d.ts.map +1 -0
- package/dist/widgets/composer-click.js +89 -0
- package/dist/widgets/composer-click.js.map +1 -0
- package/dist/widgets/composer-command.d.ts +64 -0
- package/dist/widgets/composer-command.d.ts.map +1 -0
- package/dist/widgets/composer-command.js +127 -0
- package/dist/widgets/composer-command.js.map +1 -0
- package/dist/widgets/composer-frame.d.ts +74 -0
- package/dist/widgets/composer-frame.d.ts.map +1 -0
- package/dist/widgets/composer-frame.js +284 -0
- package/dist/widgets/composer-frame.js.map +1 -0
- package/dist/widgets/composer-picker.d.ts +89 -0
- package/dist/widgets/composer-picker.d.ts.map +1 -0
- package/dist/widgets/composer-picker.js +240 -0
- package/dist/widgets/composer-picker.js.map +1 -0
- package/dist/widgets/diff.d.ts +11 -0
- package/dist/widgets/diff.d.ts.map +1 -0
- package/dist/widgets/diff.js +19 -0
- package/dist/widgets/diff.js.map +1 -0
- package/dist/widgets/expand.d.ts +28 -0
- package/dist/widgets/expand.d.ts.map +1 -0
- package/dist/widgets/expand.js +94 -0
- package/dist/widgets/expand.js.map +1 -0
- package/dist/widgets/index.d.ts +126 -0
- package/dist/widgets/index.d.ts.map +1 -0
- package/dist/widgets/index.js +455 -0
- package/dist/widgets/index.js.map +1 -0
- package/dist/widgets/internals/arrival-lang.d.ts +88 -0
- package/dist/widgets/internals/arrival-lang.d.ts.map +1 -0
- package/dist/widgets/internals/arrival-lang.js +211 -0
- package/dist/widgets/internals/arrival-lang.js.map +1 -0
- package/dist/widgets/internals/diff-expand.d.ts +93 -0
- package/dist/widgets/internals/diff-expand.d.ts.map +1 -0
- package/dist/widgets/internals/diff-expand.js +1106 -0
- package/dist/widgets/internals/diff-expand.js.map +1 -0
- package/dist/widgets/internals/embedded-syntax.d.ts +62 -0
- package/dist/widgets/internals/embedded-syntax.d.ts.map +1 -0
- package/dist/widgets/internals/embedded-syntax.js +465 -0
- package/dist/widgets/internals/embedded-syntax.js.map +1 -0
- package/dist/widgets/internals/markdown-expand.d.ts +57 -0
- package/dist/widgets/internals/markdown-expand.d.ts.map +1 -0
- package/dist/widgets/internals/markdown-expand.js +980 -0
- package/dist/widgets/internals/markdown-expand.js.map +1 -0
- package/dist/widgets/internals/overlay-syntax.d.ts +24 -0
- package/dist/widgets/internals/overlay-syntax.d.ts.map +1 -0
- package/dist/widgets/internals/overlay-syntax.js +90 -0
- package/dist/widgets/internals/overlay-syntax.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts +6 -0
- package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/cleanLastNewline.js +8 -0
- package/dist/widgets/internals/pierre-parse/cleanLastNewline.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/constants.d.ts +13 -0
- package/dist/widgets/internals/pierre-parse/constants.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/constants.js +13 -0
- package/dist/widgets/internals/pierre-parse/constants.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/detachString.d.ts +3 -0
- package/dist/widgets/internals/pierre-parse/detachString.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/detachString.js +24 -0
- package/dist/widgets/internals/pierre-parse/detachString.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/index.d.ts +8 -0
- package/dist/widgets/internals/pierre-parse/index.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/index.js +8 -0
- package/dist/widgets/internals/pierre-parse/index.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts +15 -0
- package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js +39 -0
- package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts +11 -0
- package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/parsePatchFiles.js +621 -0
- package/dist/widgets/internals/pierre-parse/parsePatchFiles.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/types.d.ts +73 -0
- package/dist/widgets/internals/pierre-parse/types.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/types.js +7 -0
- package/dist/widgets/internals/pierre-parse/types.js.map +1 -0
- package/dist/widgets/internals/syntax.d.ts +55 -0
- package/dist/widgets/internals/syntax.d.ts.map +1 -0
- package/dist/widgets/internals/syntax.js +261 -0
- package/dist/widgets/internals/syntax.js.map +1 -0
- package/dist/widgets/markdown.d.ts +14 -0
- package/dist/widgets/markdown.d.ts.map +1 -0
- package/dist/widgets/markdown.js +9 -0
- package/dist/widgets/markdown.js.map +1 -0
- package/dist/widgets/shadow-stream.d.ts +88 -0
- package/dist/widgets/shadow-stream.d.ts.map +1 -0
- package/dist/widgets/shadow-stream.js +359 -0
- package/dist/widgets/shadow-stream.js.map +1 -0
- package/dist/widgets/speech.d.ts +36 -0
- package/dist/widgets/speech.d.ts.map +1 -0
- package/dist/widgets/speech.js +238 -0
- package/dist/widgets/speech.js.map +1 -0
- package/dist/widgets/stream-birth.d.ts +13 -0
- package/dist/widgets/stream-birth.d.ts.map +1 -0
- package/dist/widgets/stream-birth.js +70 -0
- package/dist/widgets/stream-birth.js.map +1 -0
- package/dist/widgets/syntax-boot.d.ts +25 -0
- package/dist/widgets/syntax-boot.d.ts.map +1 -0
- package/dist/widgets/syntax-boot.js +181 -0
- package/dist/widgets/syntax-boot.js.map +1 -0
- package/dist/widgets/text.d.ts +16 -0
- package/dist/widgets/text.d.ts.map +1 -0
- package/dist/widgets/text.js +14 -0
- package/dist/widgets/text.js.map +1 -0
- package/dist/widgets/transcript.d.ts +44 -0
- package/dist/widgets/transcript.d.ts.map +1 -0
- package/dist/widgets/transcript.js +106 -0
- package/dist/widgets/transcript.js.map +1 -0
- package/doom.vert +1840 -0
- package/fonts/DejaVuSans.ttf +0 -0
- package/fonts/DejaVuSansMono.ttf +0 -0
- package/fonts/LICENSE-DejaVu.txt +187 -0
- package/fonts/README.md +6 -0
- package/gradient.vert +75 -0
- package/package.json +146 -3
|
@@ -0,0 +1,564 @@
|
|
|
1
|
+
import type { Length } from "./length.js";
|
|
2
|
+
import { ChromeQuotaWindow, LiveDemand, LivePaint, SpinnerProfile } from "./live_paint.js";
|
|
3
|
+
import type { ChromeHotkey } from "./paint-hotkey.js";
|
|
4
|
+
import type { Buffer, Style } from "../buffer/index.js";
|
|
5
|
+
export type Rect = {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
w: number;
|
|
9
|
+
h: number;
|
|
10
|
+
};
|
|
11
|
+
export type Intent = "activate" | "dismiss" | "focus" | "none";
|
|
12
|
+
/**
|
|
13
|
+
* CSS `user-select` parity — inline attribute (no rulesets yet). The same node
|
|
14
|
+
* tree must render with identical selectability in terminal and web.
|
|
15
|
+
*
|
|
16
|
+
* - `"auto"` — inherits (default; resolves per-context like the CSS value)
|
|
17
|
+
* - `"text"` — selectable content (transcript body, composer body)
|
|
18
|
+
* - `"none"` — chrome (borders, gutters, status bars, animations);
|
|
19
|
+
* excluded from selection and from clipboard serialization
|
|
20
|
+
* - `"all"` — whole-element selection: a click/selection snaps to the
|
|
21
|
+
* entire node, no partial range (Notion-block / Warp-block)
|
|
22
|
+
* - `"contain"` — selection is confined within this node and may not extend
|
|
23
|
+
* into siblings (the composer `<textarea>`-confinement case)
|
|
24
|
+
*
|
|
25
|
+
* Engine semantics: a node with `userSelect` in {text, all, contain} is
|
|
26
|
+
* eligible for the hitlist even when `intent === "none"` (so a drag can start
|
|
27
|
+
* a selection on it). `"none"` and `"auto"` (defaulting to non-selectable at
|
|
28
|
+
* the root) are NOT hit-eligible on their own. Inheritance follows CSS:
|
|
29
|
+
* children inherit the parent's value unless they override.
|
|
30
|
+
*
|
|
31
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/user-select
|
|
32
|
+
*/
|
|
33
|
+
export type UserSelect = "auto" | "text" | "none" | "all" | "contain";
|
|
34
|
+
export type Overflow = "visible" | "hidden" | "clip" | "auto" | "scroll";
|
|
35
|
+
export type OverflowAnchor = "auto" | "none";
|
|
36
|
+
export type BoxStyle = {
|
|
37
|
+
width?: Length;
|
|
38
|
+
height?: Length;
|
|
39
|
+
minWidth?: Length;
|
|
40
|
+
minHeight?: Length;
|
|
41
|
+
maxWidth?: Length;
|
|
42
|
+
maxHeight?: Length;
|
|
43
|
+
padding?: number | {
|
|
44
|
+
t?: number;
|
|
45
|
+
r?: number;
|
|
46
|
+
b?: number;
|
|
47
|
+
l?: number;
|
|
48
|
+
};
|
|
49
|
+
border?: boolean;
|
|
50
|
+
background?: Style;
|
|
51
|
+
overflow?: Overflow;
|
|
52
|
+
overflowX?: Overflow;
|
|
53
|
+
overflowY?: Overflow;
|
|
54
|
+
flex?: number | {
|
|
55
|
+
grow?: number;
|
|
56
|
+
shrink?: number;
|
|
57
|
+
basis?: Length;
|
|
58
|
+
};
|
|
59
|
+
flexGrow?: number;
|
|
60
|
+
flexShrink?: number;
|
|
61
|
+
flexBasis?: Length;
|
|
62
|
+
alignSelf?: "flex_start" | "flex_end" | "center" | "stretch";
|
|
63
|
+
margin?: number;
|
|
64
|
+
/**
|
|
65
|
+
* `bottom` — pull into the clip when the box would paint below it.
|
|
66
|
+
* `top` — pin to the clip top once the box's top edge scrolls above it,
|
|
67
|
+
* until the next sticky sibling pushes it out. A pin taller than the room
|
|
68
|
+
* left under that floor squeezes to its first content row instead of
|
|
69
|
+
* blanketing the viewport or scrolling away.
|
|
70
|
+
*/
|
|
71
|
+
sticky?: "bottom" | "top";
|
|
72
|
+
/**
|
|
73
|
+
* Clip squeeze: pin first `head` children at the overlay top, last `tail`
|
|
74
|
+
* at the bottom, and elide the rest behind `·· N lines omitted ··`. Natural
|
|
75
|
+
* height stays the sum of children. Ask Diff uses `{ head: 4, tail: 4 }`.
|
|
76
|
+
*/
|
|
77
|
+
squeeze?: {
|
|
78
|
+
head: number;
|
|
79
|
+
tail: number;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
export type FlexStyle = {
|
|
83
|
+
direction?: "row" | "column" | "row_reverse" | "column_reverse";
|
|
84
|
+
gap?: number;
|
|
85
|
+
justifyContent?: "flex_start" | "flex_end" | "center" | "space_between" | "space_around" | "space_evenly";
|
|
86
|
+
alignItems?: "flex_start" | "flex_end" | "center" | "stretch";
|
|
87
|
+
padding?: number | {
|
|
88
|
+
t?: number;
|
|
89
|
+
r?: number;
|
|
90
|
+
b?: number;
|
|
91
|
+
l?: number;
|
|
92
|
+
};
|
|
93
|
+
width?: Length;
|
|
94
|
+
height?: Length;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* CSS-grid subset (cell tracks). Children are row-major cells.
|
|
98
|
+
* `columns.length` is the column count; rows = ceil(children / cols).
|
|
99
|
+
*
|
|
100
|
+
* `lines: "inner"` paints │ / ─ / ┼ only between tracks — no outer box.
|
|
101
|
+
*/
|
|
102
|
+
export type GridStyle = {
|
|
103
|
+
columns: Length[];
|
|
104
|
+
/** Default 1 when `lines: "inner"`, else 0. */
|
|
105
|
+
columnGap?: number;
|
|
106
|
+
/** Default 1 when `lines: "inner"`, else 0. */
|
|
107
|
+
rowGap?: number;
|
|
108
|
+
lines?: "none" | "inner";
|
|
109
|
+
/** Style for inner bars — keep dim / low-fg for subtle chrome. */
|
|
110
|
+
lineStyle?: Style;
|
|
111
|
+
/**
|
|
112
|
+
* Padding inside each cell (cells). Tables use `{ x: 1 }` so text breathes
|
|
113
|
+
* off the bars without inventing outer margins.
|
|
114
|
+
*/
|
|
115
|
+
cellPad?: number | {
|
|
116
|
+
x?: number;
|
|
117
|
+
y?: number;
|
|
118
|
+
};
|
|
119
|
+
width?: Length;
|
|
120
|
+
height?: Length;
|
|
121
|
+
};
|
|
122
|
+
/** Layout-local bag. Not ComposerCommandChoice — do not import widgets. */
|
|
123
|
+
export type ChromeFramePickerRow = {
|
|
124
|
+
key?: string;
|
|
125
|
+
name: string;
|
|
126
|
+
status?: string;
|
|
127
|
+
annotation?: string;
|
|
128
|
+
description?: string;
|
|
129
|
+
actionDisplayName?: string;
|
|
130
|
+
actions?: ReadonlyArray<{
|
|
131
|
+
name: string;
|
|
132
|
+
displayName: string;
|
|
133
|
+
hotkey?: string;
|
|
134
|
+
}>;
|
|
135
|
+
href?: string;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Host-only stamps. expandWidgetPriors returns a paint-ready node immediately.
|
|
139
|
+
* `measured` is the width-tagged stamp from the last prepare. `atW` is the
|
|
140
|
+
* `maxW` that produced `w`/`h` — measure honors the stamp only at that width.
|
|
141
|
+
*/
|
|
142
|
+
export type PaintReadyMark = {
|
|
143
|
+
regionProminence?: number;
|
|
144
|
+
paintReady?: true;
|
|
145
|
+
measured?: {
|
|
146
|
+
w: number;
|
|
147
|
+
h: number;
|
|
148
|
+
atW?: number;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Composer status-rail chip. A bare string is furniture (contour voice).
|
|
153
|
+
* `{ text, role }` is a signal — hue on the role, default prominence secondary.
|
|
154
|
+
*/
|
|
155
|
+
export type ChromeStatusChip = {
|
|
156
|
+
text: string;
|
|
157
|
+
role?: string;
|
|
158
|
+
prominence?: number;
|
|
159
|
+
};
|
|
160
|
+
export type ChromeStatusItem = string | ChromeStatusChip;
|
|
161
|
+
export type LayoutNode = PaintReadyMark & ({
|
|
162
|
+
type: "box";
|
|
163
|
+
style?: BoxStyle;
|
|
164
|
+
children?: LayoutNode[];
|
|
165
|
+
id?: string;
|
|
166
|
+
key?: string;
|
|
167
|
+
intent?: Intent;
|
|
168
|
+
userSelect?: UserSelect;
|
|
169
|
+
inert?: boolean;
|
|
170
|
+
onClick?: unknown;
|
|
171
|
+
/**
|
|
172
|
+
* Diff logical line stamp — scoped onto descendant hits (like grid
|
|
173
|
+
* tableCell). Source of truth for git-format copy; paint may ellipsize.
|
|
174
|
+
*/
|
|
175
|
+
diffLine?: DiffLineRef;
|
|
176
|
+
} | {
|
|
177
|
+
type: "flex";
|
|
178
|
+
style?: FlexStyle;
|
|
179
|
+
children?: LayoutNode[];
|
|
180
|
+
key?: string;
|
|
181
|
+
} | {
|
|
182
|
+
type: "grid";
|
|
183
|
+
style: GridStyle;
|
|
184
|
+
children?: LayoutNode[];
|
|
185
|
+
key?: string;
|
|
186
|
+
} | {
|
|
187
|
+
type: "text";
|
|
188
|
+
content: string;
|
|
189
|
+
whiteSpace?: "normal" | "nowrap" | "pre-wrap" | "pre-line";
|
|
190
|
+
ellipsis?: boolean;
|
|
191
|
+
lineClamp?: number;
|
|
192
|
+
style?: Style;
|
|
193
|
+
key?: string;
|
|
194
|
+
userSelect?: UserSelect;
|
|
195
|
+
/**
|
|
196
|
+
* When set, paint resolves label from wall clock (content is measure
|
|
197
|
+
* placeholder only). Present demand via Frame.liveDemand.
|
|
198
|
+
*/
|
|
199
|
+
live?: LivePaint;
|
|
200
|
+
} | {
|
|
201
|
+
type: "viewport";
|
|
202
|
+
id: string;
|
|
203
|
+
key?: string;
|
|
204
|
+
children?: LayoutNode[];
|
|
205
|
+
overflowAnchor?: OverflowAnchor;
|
|
206
|
+
overflowX?: Overflow;
|
|
207
|
+
overflowY?: Overflow;
|
|
208
|
+
/**
|
|
209
|
+
* First visible content row when overflow-anchor is `none`.
|
|
210
|
+
* Layout stacks children vertically and offsets by this many rows.
|
|
211
|
+
* Ignored when overflow-anchor is `auto` (pin to bottom).
|
|
212
|
+
*/
|
|
213
|
+
scroll?: number;
|
|
214
|
+
style?: BoxStyle;
|
|
215
|
+
} | {
|
|
216
|
+
type: "raw";
|
|
217
|
+
paint: (rect: Rect, buf: Buffer) => void;
|
|
218
|
+
key?: string;
|
|
219
|
+
intent?: Intent;
|
|
220
|
+
w?: number;
|
|
221
|
+
h?: number;
|
|
222
|
+
} | {
|
|
223
|
+
/**
|
|
224
|
+
* Law 6: `[lead][gutter|void][gap][content]` — content at column 3.
|
|
225
|
+
*
|
|
226
|
+
* Gutter:
|
|
227
|
+
* - `{ kind: "top", glyph }` — first row only (collapsed ⁖, user ❯)
|
|
228
|
+
* - `{ kind: "rule", glyph }` — same glyph every row (blockquote │,
|
|
229
|
+
* expanded extra ┃)
|
|
230
|
+
* - `{ kind: "corners", top, bottom?, mid? }` — range (omit bottom
|
|
231
|
+
* while open)
|
|
232
|
+
* - `{ kind: "spinner", profile?, rows? }` — paint-side spinner
|
|
233
|
+
*/
|
|
234
|
+
type: "indication";
|
|
235
|
+
key?: string;
|
|
236
|
+
gutter: {
|
|
237
|
+
kind: "top";
|
|
238
|
+
glyph: string;
|
|
239
|
+
} | {
|
|
240
|
+
kind: "rule";
|
|
241
|
+
glyph: string;
|
|
242
|
+
} | {
|
|
243
|
+
kind: "corners";
|
|
244
|
+
top: string;
|
|
245
|
+
/** Last-row glyph; omit while open/live (no closer yet). */
|
|
246
|
+
bottom?: string | null;
|
|
247
|
+
/** Interior rows (default `·`). */
|
|
248
|
+
mid?: string;
|
|
249
|
+
} | {
|
|
250
|
+
kind: "spinner";
|
|
251
|
+
/** Semantic profile (thinking / tool / working). Default working. */
|
|
252
|
+
profile?: SpinnerProfile;
|
|
253
|
+
/** `top` (default) = first row only; `all` = every bar row. */
|
|
254
|
+
rows?: "top" | "all";
|
|
255
|
+
};
|
|
256
|
+
children?: LayoutNode[];
|
|
257
|
+
style?: Style;
|
|
258
|
+
intent?: Intent;
|
|
259
|
+
onClick?: unknown;
|
|
260
|
+
/**
|
|
261
|
+
* Selection eligibility. Thought chrome uses `"none"` so bare click
|
|
262
|
+
* activates collapse instead of starting a text selection.
|
|
263
|
+
*/
|
|
264
|
+
userSelect?: UserSelect;
|
|
265
|
+
} | {
|
|
266
|
+
/**
|
|
267
|
+
* Law 6 exception: full-bleed body (must declare kind).
|
|
268
|
+
* Only allowlisted kinds may use this (diff, etc.).
|
|
269
|
+
*/
|
|
270
|
+
type: "indentation_exception";
|
|
271
|
+
key?: string;
|
|
272
|
+
kind: "diff" | "code_pad" | "raw_full";
|
|
273
|
+
children?: LayoutNode[];
|
|
274
|
+
} | {
|
|
275
|
+
/**
|
|
276
|
+
* Absolute overlay layer. Placed after base children in paint order.
|
|
277
|
+
* `backdrop: true` with no `backdropStyle` stamps `regionProminence`
|
|
278
|
+
* onto every paint op already in the order (decision 1: the room
|
|
279
|
+
* recedes, identity stays visible — no scrim rect). Overlay children
|
|
280
|
+
* place after the stamp and stay full-prominence. Pass `backdropStyle`
|
|
281
|
+
* only for explicit painted furniture (bgRole + BgP or a literal
|
|
282
|
+
* wash); that path paints a fill and does not stamp.
|
|
283
|
+
*/
|
|
284
|
+
type: "overlay";
|
|
285
|
+
key?: string;
|
|
286
|
+
/** center child in viewport when true */
|
|
287
|
+
center?: boolean;
|
|
288
|
+
/**
|
|
289
|
+
* Overlay-local origin for children. Wins over `center` and the
|
|
290
|
+
* default top-left stack. Used to seat a plaque next to an already
|
|
291
|
+
* laid-out anchor (copy-toast grain, in-tree).
|
|
292
|
+
*/
|
|
293
|
+
origin?: {
|
|
294
|
+
x: number;
|
|
295
|
+
y: number;
|
|
296
|
+
};
|
|
297
|
+
backdrop?: boolean;
|
|
298
|
+
/** Explicit painted backdrop furniture — must set bg (or bgRole) if used. */
|
|
299
|
+
backdropStyle?: Style;
|
|
300
|
+
children?: LayoutNode[];
|
|
301
|
+
intent?: Intent;
|
|
302
|
+
onClick?: unknown;
|
|
303
|
+
} | {
|
|
304
|
+
/**
|
|
305
|
+
* Host-local `<details>`: TEA/MobX ship both branches; the renderer
|
|
306
|
+
* flips `collapsed`. Layout measures summary XOR children — never both.
|
|
307
|
+
*/
|
|
308
|
+
type: "disclosure";
|
|
309
|
+
key?: string;
|
|
310
|
+
/** Default true (summary visible). Host collapse map overrides this flag. */
|
|
311
|
+
collapsed?: boolean;
|
|
312
|
+
summary: LayoutNode;
|
|
313
|
+
children?: LayoutNode[];
|
|
314
|
+
intent?: Intent;
|
|
315
|
+
onClick?: unknown;
|
|
316
|
+
userSelect?: UserSelect;
|
|
317
|
+
} | {
|
|
318
|
+
/** Markdown prior — render expands via widgets/expand (SMD). */
|
|
319
|
+
type: "markdown";
|
|
320
|
+
key?: string;
|
|
321
|
+
content: string;
|
|
322
|
+
style?: Style;
|
|
323
|
+
} | {
|
|
324
|
+
/** Pierre diff prior — render expands via widgets/expand. */
|
|
325
|
+
type: "diff";
|
|
326
|
+
key?: string;
|
|
327
|
+
old: string;
|
|
328
|
+
new: string;
|
|
329
|
+
width: number;
|
|
330
|
+
path?: string;
|
|
331
|
+
language?: string | null;
|
|
332
|
+
mode?: "auto" | "unified" | "split";
|
|
333
|
+
/** Paint-time elision after whole-file parse + highlight. `"all"` keeps every line. */
|
|
334
|
+
context?: number | "all";
|
|
335
|
+
lineDiffType?: "word-alt" | "word" | "char" | "none";
|
|
336
|
+
noHighlight?: boolean;
|
|
337
|
+
hideHeader?: boolean;
|
|
338
|
+
/**
|
|
339
|
+
* Ask Diff: pin this many body rows at each end and squeeze the
|
|
340
|
+
* middle (`·· N lines omitted ··`). In-tape Diff omits this.
|
|
341
|
+
*/
|
|
342
|
+
stickyBottomRows?: number;
|
|
343
|
+
/** 1-based file line of the first displayed row. Span diffs default to 1. */
|
|
344
|
+
lineStart?: number;
|
|
345
|
+
} | {
|
|
346
|
+
/**
|
|
347
|
+
* Boxed prompt chrome — special measure/place/paint lineage
|
|
348
|
+
* (see chrome_frame.ts). Not flex assembly.
|
|
349
|
+
*
|
|
350
|
+
* Fixed outer width; multi-role top/bottom edges; body `│ draft │`.
|
|
351
|
+
* `key` hits the **body** rect (caret park); frame paint is under
|
|
352
|
+
* `${key}:frame` when key is set.
|
|
353
|
+
*/
|
|
354
|
+
type: "chrome_frame";
|
|
355
|
+
key?: string;
|
|
356
|
+
width: number;
|
|
357
|
+
draft: string;
|
|
358
|
+
cursor?: number;
|
|
359
|
+
mark?: number | null;
|
|
360
|
+
placeholder?: string;
|
|
361
|
+
placeholderMode?: boolean;
|
|
362
|
+
hotkeys?: readonly ChromeHotkey[] | null;
|
|
363
|
+
hotkeysBottom?: boolean;
|
|
364
|
+
modHeld?: boolean;
|
|
365
|
+
topSegs?: Array<{
|
|
366
|
+
text: string;
|
|
367
|
+
role?: string;
|
|
368
|
+
prominence?: number;
|
|
369
|
+
bold?: boolean;
|
|
370
|
+
dim?: boolean;
|
|
371
|
+
underline?: boolean;
|
|
372
|
+
href?: string;
|
|
373
|
+
}>;
|
|
374
|
+
bodySegRows?: Array<Array<{
|
|
375
|
+
text: string;
|
|
376
|
+
role?: string;
|
|
377
|
+
prominence?: number;
|
|
378
|
+
bold?: boolean;
|
|
379
|
+
dim?: boolean;
|
|
380
|
+
italic?: boolean;
|
|
381
|
+
underline?: boolean;
|
|
382
|
+
href?: string;
|
|
383
|
+
fgRgb?: {
|
|
384
|
+
r: number;
|
|
385
|
+
g: number;
|
|
386
|
+
b: number;
|
|
387
|
+
};
|
|
388
|
+
}>>;
|
|
389
|
+
bodyGlyphs?: string[];
|
|
390
|
+
speculativeDraft?: string;
|
|
391
|
+
completion?: string;
|
|
392
|
+
annotation?: string | null;
|
|
393
|
+
annotationRole?: string;
|
|
394
|
+
/** T-join right-rail when stacked. ╭╮ keeps {@link annotation}. */
|
|
395
|
+
joinAnnotation?: string | null;
|
|
396
|
+
joinAnnotationRole?: string;
|
|
397
|
+
statusItems?: ChromeStatusItem[];
|
|
398
|
+
quotaWindows?: ChromeQuotaWindow[];
|
|
399
|
+
contextUsed?: number;
|
|
400
|
+
contextLimit?: number;
|
|
401
|
+
contourRole?: string;
|
|
402
|
+
selected?: boolean;
|
|
403
|
+
progress?: number;
|
|
404
|
+
progressRole?: string;
|
|
405
|
+
progressGlowAt?: number;
|
|
406
|
+
progressAnnotation?: string | null;
|
|
407
|
+
glyph?: string;
|
|
408
|
+
interactive?: boolean;
|
|
409
|
+
readOnly?: boolean;
|
|
410
|
+
joinBottom?: boolean;
|
|
411
|
+
joinTop?: boolean;
|
|
412
|
+
omitTop?: boolean;
|
|
413
|
+
plainBottom?: boolean;
|
|
414
|
+
bodyUserSelect?: UserSelect;
|
|
415
|
+
bodyRightCoverage?: number[];
|
|
416
|
+
picker?: {
|
|
417
|
+
rows: readonly ChromeFramePickerRow[];
|
|
418
|
+
selectedKey: string | null;
|
|
419
|
+
scrollOffset: number;
|
|
420
|
+
viewport: number;
|
|
421
|
+
};
|
|
422
|
+
});
|
|
423
|
+
/**
|
|
424
|
+
* Grid cell identity for semantic copy (minimal markdown tables).
|
|
425
|
+
* Set on hits placed as children of `type: "grid"`.
|
|
426
|
+
*/
|
|
427
|
+
export type TableCellRef = {
|
|
428
|
+
gridKey: string;
|
|
429
|
+
row: number;
|
|
430
|
+
col: number;
|
|
431
|
+
nCols: number;
|
|
432
|
+
nRows: number;
|
|
433
|
+
};
|
|
434
|
+
/**
|
|
435
|
+
* Diff logical line for git-format selection copy + split mirror paint.
|
|
436
|
+
*
|
|
437
|
+
* Painted buffer may be a lie (▌, line numbers, soft-wrap).
|
|
438
|
+
* `text` is the full source line — wrong-copy is impossible when serialize
|
|
439
|
+
* rebuilds from this stamp (same class as tableCell).
|
|
440
|
+
*
|
|
441
|
+
* - `lineIndex` — document / git emission order (not split visual row order)
|
|
442
|
+
* - `side` — split half; context L/R share lineIndex so copy dedups and
|
|
443
|
+
* paint can mirror; change lines do not share lineIndex across sides
|
|
444
|
+
*/
|
|
445
|
+
export type DiffLineRef = {
|
|
446
|
+
diffKey: string;
|
|
447
|
+
lineIndex: number;
|
|
448
|
+
kind: "ctx" | "del" | "add";
|
|
449
|
+
/** Full raw line (no git prefix). */
|
|
450
|
+
text: string;
|
|
451
|
+
/** Split only: which visual half this hit belongs to. */
|
|
452
|
+
side?: "L" | "R";
|
|
453
|
+
oldNo?: number | null;
|
|
454
|
+
newNo?: number | null;
|
|
455
|
+
};
|
|
456
|
+
export type HitMeta = {
|
|
457
|
+
key: string;
|
|
458
|
+
hitRect: Rect;
|
|
459
|
+
intent: Intent;
|
|
460
|
+
userSelect: UserSelect;
|
|
461
|
+
inert: boolean;
|
|
462
|
+
onClick?: unknown;
|
|
463
|
+
element?: {
|
|
464
|
+
kind: string;
|
|
465
|
+
/** Viewport: first visible content row after clamp. */
|
|
466
|
+
scrollY?: number;
|
|
467
|
+
/** Viewport: max first-visible row (`max(0, contentH - viewportH)`). */
|
|
468
|
+
maxScroll?: number;
|
|
469
|
+
};
|
|
470
|
+
/** true for flex/gap phantom containers */
|
|
471
|
+
phantom?: boolean;
|
|
472
|
+
/**
|
|
473
|
+
* Parent hit key (the enclosing node's key in {@link Frame.byKey}), or
|
|
474
|
+
* undefined for the root. Used by `elementAtPath` to reconstruct the
|
|
475
|
+
* root→leaf chain for structural selection (Phase 4): "expand selection
|
|
476
|
+
* from this cell to its containing block."
|
|
477
|
+
*
|
|
478
|
+
* This is a key reference, not a pointer — resolve via `frame.byKey`.
|
|
479
|
+
* Phantom containers (flex/gap, grid) carry parent too so a chain can
|
|
480
|
+
* pass through them; admission gating in `elementAtPath` decides whether
|
|
481
|
+
* they appear in the returned chain.
|
|
482
|
+
*/
|
|
483
|
+
parent?: string;
|
|
484
|
+
/**
|
|
485
|
+
* When set, this hit is a grid cell — copy serializes to compact markdown
|
|
486
|
+
* instead of the full terminal padding/separator run.
|
|
487
|
+
*/
|
|
488
|
+
tableCell?: TableCellRef;
|
|
489
|
+
/**
|
|
490
|
+
* When set, this hit is a diff line (or fragment of a soft-wrapped line).
|
|
491
|
+
* Copy rebuilds git-format lines; split context mirrors via shared lineIndex.
|
|
492
|
+
*/
|
|
493
|
+
diffLine?: DiffLineRef;
|
|
494
|
+
};
|
|
495
|
+
export type PaintOp = {
|
|
496
|
+
kind: "text";
|
|
497
|
+
rect: Rect;
|
|
498
|
+
lines: string[];
|
|
499
|
+
style: Style;
|
|
500
|
+
} | {
|
|
501
|
+
kind: "border";
|
|
502
|
+
rect: Rect;
|
|
503
|
+
style: Style;
|
|
504
|
+
} | {
|
|
505
|
+
kind: "fill";
|
|
506
|
+
rect: Rect;
|
|
507
|
+
style: Style;
|
|
508
|
+
} | {
|
|
509
|
+
kind: "raw";
|
|
510
|
+
rect: Rect;
|
|
511
|
+
paint: (rect: Rect, buf: Buffer) => void;
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Live decoration — resolved at paintFrame(nowMs), not at layout.
|
|
515
|
+
* Geometry is fixed; glyph/label is wall-clock pure. Present uses
|
|
516
|
+
* Frame.liveDemand.maxHz for fps-on-demand.
|
|
517
|
+
*/
|
|
518
|
+
| {
|
|
519
|
+
kind: "live";
|
|
520
|
+
rect: Rect;
|
|
521
|
+
style: Style;
|
|
522
|
+
live: LivePaint;
|
|
523
|
+
/** Source text for `live.kind === "birth"` — paint applies the wavefront. */
|
|
524
|
+
content?: string;
|
|
525
|
+
};
|
|
526
|
+
export type Positioned = {
|
|
527
|
+
key?: string;
|
|
528
|
+
/** Allocation (wrap, birth, border, bgFx UV). */
|
|
529
|
+
rect: Rect;
|
|
530
|
+
paint: PaintOp[];
|
|
531
|
+
/** Nested scissor. Paint writes `op.rect ∩ clip ∩ buffer`. Omitted ⇒ no extra scissor. */
|
|
532
|
+
clip?: Rect;
|
|
533
|
+
};
|
|
534
|
+
export type Frame = {
|
|
535
|
+
version: number;
|
|
536
|
+
paintOrder: Positioned[];
|
|
537
|
+
hitList: HitMeta[];
|
|
538
|
+
/** Named geometry for hosts: `byKey.get(k)?.hitRect` (includes non-hittable chrome). */
|
|
539
|
+
byKey: Map<string, HitMeta>;
|
|
540
|
+
viewport: {
|
|
541
|
+
w: number;
|
|
542
|
+
h: number;
|
|
543
|
+
};
|
|
544
|
+
/**
|
|
545
|
+
* Present demand from live paint ops (spinners, elapsed labels).
|
|
546
|
+
* maxHz === 0 → no live present needed for decoration.
|
|
547
|
+
*/
|
|
548
|
+
liveDemand?: LiveDemand;
|
|
549
|
+
};
|
|
550
|
+
/**
|
|
551
|
+
* Paint-time theme hook — always carries a ColorResolver.
|
|
552
|
+
* Role/bgRole intent only becomes SGR fields through `resolveStyle`; there is
|
|
553
|
+
* no identity fallback. Pass `attuneTheme(...).paint`, or omit the paintFrame
|
|
554
|
+
* theme arg to use ambient `paintTheme()`. Empty `{}` is not assignable.
|
|
555
|
+
*/
|
|
556
|
+
export type Theme = {
|
|
557
|
+
resolveStyle: (style: Style) => Style;
|
|
558
|
+
};
|
|
559
|
+
export type LayoutOpts = {
|
|
560
|
+
/** injected text measure; default display columns via ../measure/index.js */
|
|
561
|
+
measure?: (text: string) => number;
|
|
562
|
+
frameVersion?: number;
|
|
563
|
+
};
|
|
564
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/layout/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/layout/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export type VisualDraftLine = {
|
|
2
|
+
/** UTF-16 start offset into draft (inclusive). */
|
|
3
|
+
readonly start: number;
|
|
4
|
+
/** UTF-16 end offset into draft (exclusive); does not include a trailing `\n`. */
|
|
5
|
+
readonly end: number;
|
|
6
|
+
readonly text: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Partition `draft` into painted body rows at `textW` content columns.
|
|
10
|
+
* Empty draft → one empty visual line at 0 (caret-only row).
|
|
11
|
+
*/
|
|
12
|
+
export declare function visualDraftLines(draft: string, textW: number): readonly VisualDraftLine[];
|
|
13
|
+
/**
|
|
14
|
+
* Index of the visual line containing `cursor`.
|
|
15
|
+
*
|
|
16
|
+
* Soft-wrap / full-row law (browser textarea):
|
|
17
|
+
* - offset at end of row i that continues as row i+1 (shared boundary) → i+1
|
|
18
|
+
* - offset at end of a **full-width last** row (measure ≥ textW, no next) →
|
|
19
|
+
* a **virtual** empty continuation row at index `lines.length` (col 0).
|
|
20
|
+
* Without this, park places the caret on the right border cell (one past
|
|
21
|
+
* the text column) while paint only fills `textW` content cells.
|
|
22
|
+
*
|
|
23
|
+
* Hard newline is two offsets (`line.end` is the `\n`, next row starts at
|
|
24
|
+
* `end+1`). Cursor on `\n` stays on this row (after the last glyph). Cursor
|
|
25
|
+
* after `\n` is col 0 of the next row. Collapsing them onto the next row
|
|
26
|
+
* parks the caret on the empty line while insert still splices before `\n`.
|
|
27
|
+
*
|
|
28
|
+
* Returns `0..lines.length` inclusive (the last value is the virtual row).
|
|
29
|
+
*/
|
|
30
|
+
export declare function visualLineIndex(lines: readonly VisualDraftLine[], cursor: number, textW?: number): number;
|
|
31
|
+
/**
|
|
32
|
+
* Display column of the caret within its visual line (0 = start of content).
|
|
33
|
+
*/
|
|
34
|
+
export declare function visualColInLine(draft: string, line: VisualDraftLine, cursor: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Map a preferred display column onto a UTF-16 offset within `line`.
|
|
37
|
+
* Lands before a grapheme when the column falls inside a wide cell.
|
|
38
|
+
*/
|
|
39
|
+
export declare function offsetAtVisualCol(draft: string, line: VisualDraftLine, targetCol: number): number;
|
|
40
|
+
export type VisualMotion = "line_up" | "line_down" | "line_home" | "line_end";
|
|
41
|
+
/**
|
|
42
|
+
* Spatial caret park within the content box (0-based line, display col).
|
|
43
|
+
*
|
|
44
|
+
* Soft-wrap boundary law (browser / textarea): when the UTF-16 offset is both
|
|
45
|
+
* the end of visual row i and the start of row i+1, the caret sits on **row
|
|
46
|
+
* i+1 at col 0** — not trailing past the last glyph of row i. Park and ↑/↓
|
|
47
|
+
* must share this, or arrow-up from a wrap-start jumps to "after last" of
|
|
48
|
+
* the previous row (preferred-col = full width) instead of its first char.
|
|
49
|
+
*/
|
|
50
|
+
export declare function visualCaretGeometry(draft: string, cursor: number, textW: number): {
|
|
51
|
+
readonly line: number;
|
|
52
|
+
readonly colInContent: number;
|
|
53
|
+
readonly totalLines: number;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Spatial caret motion over painted draft rows.
|
|
57
|
+
* `textW` must be the composer body content width (outer − chrome), same as paint.
|
|
58
|
+
*/
|
|
59
|
+
export declare function moveVisualDraft(draft: string, cursor: number, textW: number, motion: VisualMotion): number;
|
|
60
|
+
//# sourceMappingURL=visual_draft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual_draft.d.ts","sourceRoot":"","sources":["../../src/layout/visual_draft.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,eAAe,GAAG;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CA4BzF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAoBzG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAajG;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAkCA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CA4C1G"}
|