@inhuman.tools/quickdraw 0.0.0-stage → 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/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 +27 -0
- package/dist/runtime/agents_preview.d.ts.map +1 -0
- package/dist/runtime/agents_preview.js +122 -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 +147 -3
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helmholtz–Kohlrausch salience solver.
|
|
3
|
+
*
|
|
4
|
+
* Palette seeds are (hue, chroma, tier). Each tier is an apparent-lightness
|
|
5
|
+
* contrast delta from ground; the solver compensates H-K so chromatic colors
|
|
6
|
+
* match achromatic brightness on the same tier.
|
|
7
|
+
*
|
|
8
|
+
* perceived_AL = L + 0.14 · C · hue_factor(h) // chromatic looks brighter
|
|
9
|
+
* L_nominal = target_AL − 0.14 · C · hue_factor(h)
|
|
10
|
+
*
|
|
11
|
+
* Hue weight is the **Nayatani 3-harmonic** (SSOT: Delta foundation.css +
|
|
12
|
+
* postcss-oklch-plus / helmholtz-kohlrausch-models.md).
|
|
13
|
+
*
|
|
14
|
+
* Ground is runtime input — pair with OSC 11 for terminal-attuned palettes.
|
|
15
|
+
* Color math via culori (OKLCH ↔ sRGB).
|
|
16
|
+
*/
|
|
17
|
+
import { converter, formatHex, parse } from "culori";
|
|
18
|
+
import invariant from "tiny-invariant";
|
|
19
|
+
const toOklch = converter("oklch");
|
|
20
|
+
const toRgb = converter("rgb");
|
|
21
|
+
/** H-K chroma scale (≈ Fairchild–Pirrotta k; magnitude is Delta's budget). */
|
|
22
|
+
export const HK_K = 0.14;
|
|
23
|
+
/**
|
|
24
|
+
* Apparent-lightness contrast deltas per tier at the reference ground.
|
|
25
|
+
* At L_ground = 0.2 these target recede≈0.55 … anchor≈0.85.
|
|
26
|
+
* Tier names are vocabulary (../lexicon/index.js); the deltas are
|
|
27
|
+
* solver calibration and live here.
|
|
28
|
+
*/
|
|
29
|
+
export const TIER_DELTAS = {
|
|
30
|
+
alarm: 0.33,
|
|
31
|
+
recede: 0.35,
|
|
32
|
+
differentiate: 0.42,
|
|
33
|
+
baseline: 0.57,
|
|
34
|
+
anchor: 0.65,
|
|
35
|
+
};
|
|
36
|
+
/** Reference near-black ground the tier deltas were derived against. */
|
|
37
|
+
export const REFERENCE_GROUND = 0.2;
|
|
38
|
+
const AL_MIN = 0.03;
|
|
39
|
+
const AL_MAX = 0.97;
|
|
40
|
+
const MAX_DELTA = 0.65;
|
|
41
|
+
/**
|
|
42
|
+
* Nayatani-1997 VAC hue weight — 3-harmonic Fourier fit in OKLCH hue degrees.
|
|
43
|
+
* SSOT coefficients: delta/delta-css foundation.css `--🧮hue-factor` and
|
|
44
|
+
* commons/packages/postcss-oklch-plus `nayataniHueFactor` (R²≈0.98 vs VAC q(θ),
|
|
45
|
+
* mean 0.779 preserves Delta compensation budget).
|
|
46
|
+
* Inherently ~[0.54, 0.92] — no clamp.
|
|
47
|
+
*/
|
|
48
|
+
const NAY_A0 = 0.779_11;
|
|
49
|
+
const NAY_COS = [0.080_91, 0.062_02, -0.014_15];
|
|
50
|
+
const NAY_SIN = [-0.135_93, -0.003_65, 0.033_77];
|
|
51
|
+
export function hueFactor(h) {
|
|
52
|
+
let v = NAY_A0;
|
|
53
|
+
const rad = (h * Math.PI) / 180;
|
|
54
|
+
for (let k = 1; k <= 3; k++) {
|
|
55
|
+
const r = k * rad;
|
|
56
|
+
v += NAY_COS[k - 1] * Math.cos(r) + NAY_SIN[k - 1] * Math.sin(r);
|
|
57
|
+
}
|
|
58
|
+
return v;
|
|
59
|
+
}
|
|
60
|
+
/** Amount of L to subtract so a chromatic color sits level with gray at same L. */
|
|
61
|
+
export function hkCompensation(c, h) {
|
|
62
|
+
return HK_K * Math.max(0, c) * hueFactor(h);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Perceived / apparent lightness (chromatic looks *brighter* than measured L).
|
|
66
|
+
* Inverse of solveLightness for fixed (C,h).
|
|
67
|
+
*/
|
|
68
|
+
export function apparentLightness(l, c, h) {
|
|
69
|
+
return l + hkCompensation(c, h);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Nominal OKLCH L that lands (C, h) on a target apparent lightness.
|
|
73
|
+
* Chromatic → lower measured L (same as bake-darcula / Delta CSS subtract).
|
|
74
|
+
*/
|
|
75
|
+
export function solveLightness(targetAl, c, h) {
|
|
76
|
+
return targetAl - hkCompensation(c, h);
|
|
77
|
+
}
|
|
78
|
+
function resolvePolaritySign(ground, polarity) {
|
|
79
|
+
if (polarity === "up")
|
|
80
|
+
return 1;
|
|
81
|
+
if (polarity === "down")
|
|
82
|
+
return -1;
|
|
83
|
+
return ground < 0.5 ? 1 : -1;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Target apparent lightness for a tier against ground, with headroom
|
|
87
|
+
* compression when the ground leaves less than the full delta range.
|
|
88
|
+
*/
|
|
89
|
+
export function tierTarget(tier, ground, polarity = "auto") {
|
|
90
|
+
const sign = resolvePolaritySign(ground, polarity);
|
|
91
|
+
const headroom = sign === 1 ? AL_MAX - ground : ground - AL_MIN;
|
|
92
|
+
const scale = Math.min(1, Math.max(0, headroom / MAX_DELTA));
|
|
93
|
+
return ground + sign * TIER_DELTAS[tier] * scale;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Solve (C, h) on a salience tier against ground → sRGB hex.
|
|
97
|
+
*/
|
|
98
|
+
export function solve(tier, c, h, opts = {}) {
|
|
99
|
+
const ground = opts.ground ?? REFERENCE_GROUND;
|
|
100
|
+
const polarity = opts.polarity ?? "auto";
|
|
101
|
+
const target = tierTarget(tier, ground, polarity);
|
|
102
|
+
const l = solveLightness(target, c, h);
|
|
103
|
+
return oklchToHex(l, c, h);
|
|
104
|
+
}
|
|
105
|
+
/** Solve a seed list into `{ name → hex }`. */
|
|
106
|
+
export function solvePalette(seeds, opts = {}) {
|
|
107
|
+
const out = {};
|
|
108
|
+
for (const s of seeds) {
|
|
109
|
+
out[s.name] = solve(s.tier, s.c, s.h, opts);
|
|
110
|
+
}
|
|
111
|
+
return out;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* True when OKLCH (l,c,h) is inside sRGB (linear channels in [0,1]).
|
|
115
|
+
* Culori `formatHex` / RGB conversion is *not* this check — it channel-clips.
|
|
116
|
+
*/
|
|
117
|
+
export function inSrgb(l, c, h) {
|
|
118
|
+
const rgb = toRgb({
|
|
119
|
+
mode: "oklch",
|
|
120
|
+
l,
|
|
121
|
+
c: Math.max(0, c),
|
|
122
|
+
h,
|
|
123
|
+
});
|
|
124
|
+
if (!rgb)
|
|
125
|
+
return false;
|
|
126
|
+
const eps = 1e-4;
|
|
127
|
+
return rgb.r >= -eps && rgb.r <= 1 + eps && rgb.g >= -eps && rgb.g <= 1 + eps && rgb.b >= -eps && rgb.b <= 1 + eps;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Map OKLCH into sRGB by shrinking chroma at fixed hue, then re-solving L
|
|
131
|
+
* so H-K apparent lightness matches the request. Channel-clip (culori
|
|
132
|
+
* formatHex, nearest-legal RGB) rotates hue — yellow at low L becomes
|
|
133
|
+
* rust `#542400` (h 77 → 51). We never do that.
|
|
134
|
+
*/
|
|
135
|
+
export function fitOklchToSrgb(l, c, h) {
|
|
136
|
+
const clampedL = Math.min(0.999, Math.max(0.001, l));
|
|
137
|
+
const reqC = Math.max(0, c);
|
|
138
|
+
if (reqC === 0 || inSrgb(clampedL, reqC, h)) {
|
|
139
|
+
return { l: clampedL, c: reqC, h };
|
|
140
|
+
}
|
|
141
|
+
const targetAl = apparentLightness(clampedL, reqC, h);
|
|
142
|
+
let lo = 0;
|
|
143
|
+
let hi = reqC;
|
|
144
|
+
let bestL = Math.min(0.999, Math.max(0.001, solveLightness(targetAl, 0, h)));
|
|
145
|
+
let bestC = 0;
|
|
146
|
+
for (let i = 0; i < 24; i++) {
|
|
147
|
+
const mid = (lo + hi) / 2;
|
|
148
|
+
const lMid = Math.min(0.999, Math.max(0.001, solveLightness(targetAl, mid, h)));
|
|
149
|
+
if (inSrgb(lMid, mid, h)) {
|
|
150
|
+
bestC = mid;
|
|
151
|
+
bestL = lMid;
|
|
152
|
+
lo = mid;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
hi = mid;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return { l: bestL, c: bestC, h };
|
|
159
|
+
}
|
|
160
|
+
export function oklchToHex(l, c, h) {
|
|
161
|
+
const fitted = fitOklchToSrgb(l, c, h);
|
|
162
|
+
const hex = formatHex({
|
|
163
|
+
mode: "oklch",
|
|
164
|
+
l: fitted.l,
|
|
165
|
+
c: fitted.c,
|
|
166
|
+
h: fitted.h,
|
|
167
|
+
});
|
|
168
|
+
if (!hex) {
|
|
169
|
+
return formatHex({ mode: "oklch", l: fitted.l, c: 0, h: 0 }) ?? "#808080";
|
|
170
|
+
}
|
|
171
|
+
return hex;
|
|
172
|
+
}
|
|
173
|
+
export function hexToOklch(hex) {
|
|
174
|
+
const parsed = parse(hex.startsWith("#") ? hex : `#${hex}`);
|
|
175
|
+
invariant(parsed, `invalid hex color: ${hex}`);
|
|
176
|
+
const o = toOklch(parsed);
|
|
177
|
+
invariant(o, `oklch convert failed: ${hex}`);
|
|
178
|
+
invariant(o.l !== undefined, `oklch convert missing L: ${hex}`);
|
|
179
|
+
return {
|
|
180
|
+
l: o.l,
|
|
181
|
+
c: o.c ?? 0,
|
|
182
|
+
h: o.h ?? 0,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
export function hexToRgb(hex) {
|
|
186
|
+
const parsed = parse(hex.startsWith("#") ? hex : `#${hex}`);
|
|
187
|
+
invariant(parsed, `invalid hex color: ${hex}`);
|
|
188
|
+
const r = toRgb(parsed);
|
|
189
|
+
invariant(r, `rgb convert failed: ${hex}`);
|
|
190
|
+
return {
|
|
191
|
+
r: Math.round(Math.min(1, Math.max(0, r.r ?? 0)) * 255),
|
|
192
|
+
g: Math.round(Math.min(1, Math.max(0, r.g ?? 0)) * 255),
|
|
193
|
+
b: Math.round(Math.min(1, Math.max(0, r.b ?? 0)) * 255),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/** sRGB → OKLCH L from 0–255 channel triple (OSC 11 ground path). */
|
|
197
|
+
export function rgbToOklch(r, g, b) {
|
|
198
|
+
const o = toOklch({
|
|
199
|
+
mode: "rgb",
|
|
200
|
+
r: r / 255,
|
|
201
|
+
g: g / 255,
|
|
202
|
+
b: b / 255,
|
|
203
|
+
});
|
|
204
|
+
invariant(o, `oklch convert failed for rgb(${r},${g},${b})`);
|
|
205
|
+
invariant(o.l !== undefined, `oklch convert missing L for rgb(${r},${g},${b})`);
|
|
206
|
+
return { l: o.l, c: o.c ?? 0, h: o.h ?? 0 };
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=salience.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"salience.js","sourceRoot":"","sources":["../../src/theme/salience.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic seed table — hue carries identity, tier carries importance.
|
|
3
|
+
* Compensated-Darcula family (same seeds as SalienceTheme).
|
|
4
|
+
*
|
|
5
|
+
* Role names and default tiers are vocabulary
|
|
6
|
+
* (../lexicon/index.js); the hue/chroma numbers are palette
|
|
7
|
+
* calibration and live here.
|
|
8
|
+
*/
|
|
9
|
+
import { type Seed } from "./salience.js";
|
|
10
|
+
import type { Rgb, SemanticRole } from "../lexicon/index.js";
|
|
11
|
+
export type SeedRow = Seed & {
|
|
12
|
+
name: SemanticRole;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Core semantic seeds. Hues: orange 62 (warning, Apple systemOrange
|
|
16
|
+
* #FF9500 → OKLCH h≈62.6; 15° from emphasis 77), yellow 77 (emphasis),
|
|
17
|
+
* yellow-green 110 (attention), green 134 (success), blue 211
|
|
18
|
+
* (auto classifier-on), blue 242 (accent), azure 270 (code),
|
|
19
|
+
* neutral-blue 250 (text), red 25.
|
|
20
|
+
* Warning is baseline so orange stays orange — differentiate L collapses
|
|
21
|
+
* it to rust, which reads as dim error. `code` is baseline: same
|
|
22
|
+
* apparent-lightness as body; azure is identity, not recede.
|
|
23
|
+
* `auto` is baseline cyan-blue so the chip cannot mute into accent.
|
|
24
|
+
* `attention` is anchor yellow-green — look-here must stay brighter than
|
|
25
|
+
* classifier-on; alarm L turns 110 olive.
|
|
26
|
+
*/
|
|
27
|
+
export declare const DEFAULT_SEEDS: [{
|
|
28
|
+
readonly name: "foreground";
|
|
29
|
+
readonly h: 250;
|
|
30
|
+
readonly c: 0.022;
|
|
31
|
+
readonly tier: "baseline";
|
|
32
|
+
}, {
|
|
33
|
+
readonly name: "accent";
|
|
34
|
+
readonly h: 242;
|
|
35
|
+
readonly c: 0.074;
|
|
36
|
+
readonly tier: "differentiate";
|
|
37
|
+
}, {
|
|
38
|
+
readonly name: "error";
|
|
39
|
+
readonly h: 25;
|
|
40
|
+
readonly c: 0.16;
|
|
41
|
+
readonly tier: "alarm";
|
|
42
|
+
}, {
|
|
43
|
+
readonly name: "warning";
|
|
44
|
+
readonly h: 62;
|
|
45
|
+
readonly c: 0.17;
|
|
46
|
+
readonly tier: "baseline";
|
|
47
|
+
}, {
|
|
48
|
+
readonly name: "success";
|
|
49
|
+
readonly h: 134;
|
|
50
|
+
readonly c: 0.075;
|
|
51
|
+
readonly tier: "differentiate";
|
|
52
|
+
}, {
|
|
53
|
+
readonly name: "emphasis";
|
|
54
|
+
readonly h: 77;
|
|
55
|
+
readonly c: 0.125;
|
|
56
|
+
readonly tier: "anchor";
|
|
57
|
+
}, {
|
|
58
|
+
readonly name: "muted";
|
|
59
|
+
readonly h: 250;
|
|
60
|
+
readonly c: 0;
|
|
61
|
+
readonly tier: "recede";
|
|
62
|
+
}, {
|
|
63
|
+
readonly name: "border";
|
|
64
|
+
readonly h: 250;
|
|
65
|
+
readonly c: 0;
|
|
66
|
+
readonly tier: "recede";
|
|
67
|
+
}, {
|
|
68
|
+
readonly name: "chrome";
|
|
69
|
+
readonly h: 250;
|
|
70
|
+
readonly c: 0.01;
|
|
71
|
+
readonly tier: "recede";
|
|
72
|
+
}, {
|
|
73
|
+
readonly name: "surface";
|
|
74
|
+
readonly h: 250;
|
|
75
|
+
readonly c: 0;
|
|
76
|
+
readonly tier: "recede";
|
|
77
|
+
}, {
|
|
78
|
+
readonly name: "code";
|
|
79
|
+
readonly h: 270;
|
|
80
|
+
readonly c: 0.065;
|
|
81
|
+
readonly tier: "baseline";
|
|
82
|
+
}, {
|
|
83
|
+
readonly name: "diff_add";
|
|
84
|
+
readonly h: 134;
|
|
85
|
+
readonly c: 0.09;
|
|
86
|
+
readonly tier: "differentiate";
|
|
87
|
+
}, {
|
|
88
|
+
readonly name: "diff_del";
|
|
89
|
+
readonly h: 25;
|
|
90
|
+
readonly c: 0.14;
|
|
91
|
+
readonly tier: "alarm";
|
|
92
|
+
}, {
|
|
93
|
+
readonly name: "running";
|
|
94
|
+
readonly h: 320;
|
|
95
|
+
readonly c: 0.1;
|
|
96
|
+
readonly tier: "differentiate";
|
|
97
|
+
}, {
|
|
98
|
+
readonly name: "auto";
|
|
99
|
+
readonly h: 211;
|
|
100
|
+
readonly c: 0.12;
|
|
101
|
+
readonly tier: "baseline";
|
|
102
|
+
}, {
|
|
103
|
+
readonly name: "attention";
|
|
104
|
+
readonly h: 110;
|
|
105
|
+
readonly c: 0.16;
|
|
106
|
+
readonly tier: "anchor";
|
|
107
|
+
}];
|
|
108
|
+
/**
|
|
109
|
+
* Role hue/chroma as an RGB sample. Apparent lightness is dummy (L=0.5);
|
|
110
|
+
* paint pairs this with a surrounding role so the resolver recasts AL.
|
|
111
|
+
*/
|
|
112
|
+
export declare function seedHueRgb(role: SemanticRole): Rgb;
|
|
113
|
+
//# sourceMappingURL=seeds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeds.d.ts","sourceRoot":"","sources":["../../src/theme/seeds.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAwB,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBI,CAAC;AAE/B;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,GAAG,CAIlD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic seed table — hue carries identity, tier carries importance.
|
|
3
|
+
* Compensated-Darcula family (same seeds as SalienceTheme).
|
|
4
|
+
*
|
|
5
|
+
* Role names and default tiers are vocabulary
|
|
6
|
+
* (../lexicon/index.js); the hue/chroma numbers are palette
|
|
7
|
+
* calibration and live here.
|
|
8
|
+
*/
|
|
9
|
+
import invariant from "tiny-invariant";
|
|
10
|
+
import { hexToRgb, oklchToHex } from "./salience.js";
|
|
11
|
+
/**
|
|
12
|
+
* Core semantic seeds. Hues: orange 62 (warning, Apple systemOrange
|
|
13
|
+
* #FF9500 → OKLCH h≈62.6; 15° from emphasis 77), yellow 77 (emphasis),
|
|
14
|
+
* yellow-green 110 (attention), green 134 (success), blue 211
|
|
15
|
+
* (auto classifier-on), blue 242 (accent), azure 270 (code),
|
|
16
|
+
* neutral-blue 250 (text), red 25.
|
|
17
|
+
* Warning is baseline so orange stays orange — differentiate L collapses
|
|
18
|
+
* it to rust, which reads as dim error. `code` is baseline: same
|
|
19
|
+
* apparent-lightness as body; azure is identity, not recede.
|
|
20
|
+
* `auto` is baseline cyan-blue so the chip cannot mute into accent.
|
|
21
|
+
* `attention` is anchor yellow-green — look-here must stay brighter than
|
|
22
|
+
* classifier-on; alarm L turns 110 olive.
|
|
23
|
+
*/
|
|
24
|
+
export const DEFAULT_SEEDS = [
|
|
25
|
+
{ name: "foreground", h: 250, c: 0.022, tier: "baseline" },
|
|
26
|
+
{ name: "accent", h: 242, c: 0.074, tier: "differentiate" },
|
|
27
|
+
{ name: "error", h: 25, c: 0.16, tier: "alarm" },
|
|
28
|
+
{ name: "warning", h: 62, c: 0.17, tier: "baseline" },
|
|
29
|
+
{ name: "success", h: 134, c: 0.075, tier: "differentiate" },
|
|
30
|
+
{ name: "emphasis", h: 77, c: 0.125, tier: "anchor" },
|
|
31
|
+
{ name: "muted", h: 250, c: 0, tier: "recede" },
|
|
32
|
+
{ name: "border", h: 250, c: 0, tier: "recede" },
|
|
33
|
+
// extended roles (same hue families as ANSI16 pins)
|
|
34
|
+
{ name: "chrome", h: 250, c: 0.01, tier: "recede" },
|
|
35
|
+
{ name: "surface", h: 250, c: 0, tier: "recede" },
|
|
36
|
+
{ name: "code", h: 270, c: 0.065, tier: "baseline" },
|
|
37
|
+
{ name: "diff_add", h: 134, c: 0.09, tier: "differentiate" },
|
|
38
|
+
{ name: "diff_del", h: 25, c: 0.14, tier: "alarm" },
|
|
39
|
+
{ name: "running", h: 320, c: 0.1, tier: "differentiate" },
|
|
40
|
+
{ name: "auto", h: 211, c: 0.12, tier: "baseline" },
|
|
41
|
+
{ name: "attention", h: 110, c: 0.16, tier: "anchor" },
|
|
42
|
+
];
|
|
43
|
+
/**
|
|
44
|
+
* Role hue/chroma as an RGB sample. Apparent lightness is dummy (L=0.5);
|
|
45
|
+
* paint pairs this with a surrounding role so the resolver recasts AL.
|
|
46
|
+
*/
|
|
47
|
+
export function seedHueRgb(role) {
|
|
48
|
+
const seed = DEFAULT_SEEDS.find((row) => row.name === role);
|
|
49
|
+
invariant(seed, `unknown seed role: ${role}`);
|
|
50
|
+
return hexToRgb(oklchToHex(0.5, seed.c, seed.h));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=seeds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeds.js","sourceRoot":"","sources":["../../src/theme/seeds.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAa,MAAM,eAAe,CAAC;AAKhE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IAC1D,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAChD,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;IACrD,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC5D,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrD,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/C,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChD,oDAAoD;IACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjD,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IACpD,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE;IAC5D,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1D,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;IACnD,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;CAC1B,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAkB;IAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC5D,SAAS,CAAC,IAAI,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Selection recolor — perception-preserving highlight via the HK salience
|
|
3
|
+
* pipeline. NOT reverse-video, NOT alpha-blend of an opaque tint over content.
|
|
4
|
+
*
|
|
5
|
+
* Two channels, different jobs:
|
|
6
|
+
*
|
|
7
|
+
* 1. **FG** — identity-preserving active shift: lerp apparent lightness toward
|
|
8
|
+
* the anchor tier, **keep chroma** (hue stays exact — Zed #17313). The
|
|
9
|
+
* 8–10% AL budget is for the *foreground*, not a prominence scalar.
|
|
10
|
+
*
|
|
11
|
+
* 2. **BG** — a real selection fill. Most terminal cells have no painted bg
|
|
12
|
+
* (transparent → terminal ground). Without a fill, selection is invisible
|
|
13
|
+
* except as a tiny fg delta. Fill is ground lifted toward a mild accent
|
|
14
|
+
* wash so the block reads as selected while remaining theme-coherent.
|
|
15
|
+
*
|
|
16
|
+
* The region-dim formula `c * p^γ` must NOT be reused with `p = SELECTION_SHIFT`.
|
|
17
|
+
* Region prominence is "how much color remains" (1 = full, 0 = gone). Selection
|
|
18
|
+
* shift is "how far to move AL" (0.09 = 9% of the way). Feeding 0.09 into the
|
|
19
|
+
* prominence power law crushed chroma to ~27% and made selection look like
|
|
20
|
+
* desaturated grey — the failure mode reported on the LLM-pick story.
|
|
21
|
+
*
|
|
22
|
+
* Shift budget (fg AL), from dark-theme design notes:
|
|
23
|
+
* "active states increase 8-10% lightness."
|
|
24
|
+
*/
|
|
25
|
+
import { type Rgb } from "../lexicon/index.js";
|
|
26
|
+
/**
|
|
27
|
+
* Active-state lightness shift for **foreground** — fraction of the way from
|
|
28
|
+
* current AL toward the selection target AL. 0.09 ≈ 9% (active-state budget).
|
|
29
|
+
*/
|
|
30
|
+
export declare const SELECTION_SHIFT = 0.09;
|
|
31
|
+
/**
|
|
32
|
+
* How far to lift (dark themes) or drop (light themes) ground AL when minting
|
|
33
|
+
* a selection fill. Large enough to read as a block highlight at a glance;
|
|
34
|
+
* small enough not to compete with accent/emphasis content.
|
|
35
|
+
*/
|
|
36
|
+
export declare const SELECTION_FILL_AL_DELTA = 0.16;
|
|
37
|
+
/**
|
|
38
|
+
* Mild chroma on the selection fill (OKLCH C). Accent-hue wash, not a neon
|
|
39
|
+
* bar. 0.045 sits under most role chromas so selected text still wins.
|
|
40
|
+
*/
|
|
41
|
+
export declare const SELECTION_FILL_CHROMA = 0.045;
|
|
42
|
+
/**
|
|
43
|
+
* Accent hue for the selection wash (OKLCH H). Matches seed `accent` (~242°
|
|
44
|
+
* blue) so the fill feels like the same system, not a foreign reverse-video.
|
|
45
|
+
*/
|
|
46
|
+
export declare const SELECTION_FILL_HUE = 242;
|
|
47
|
+
/**
|
|
48
|
+
* Target apparent lightness for selected **foreground**. Top of the tier
|
|
49
|
+
* ladder (`anchor`) so selected text reads active without leaving the palette.
|
|
50
|
+
*/
|
|
51
|
+
export declare function selectionTargetAl(ground: number): number;
|
|
52
|
+
/**
|
|
53
|
+
* Target apparent lightness for the selection **fill** (background).
|
|
54
|
+
* Dark themes: lift ground up. Light themes: drop ground down. Symmetric
|
|
55
|
+
* so selection remains visible under either polarity.
|
|
56
|
+
*/
|
|
57
|
+
export declare function selectionFillTargetAl(ground: number): number;
|
|
58
|
+
/**
|
|
59
|
+
* Recolor a **foreground** sRGB color for selection.
|
|
60
|
+
*
|
|
61
|
+
* - Hue preserved EXACTLY.
|
|
62
|
+
* - Chroma preserved (identity of colored content — diff-red stays red and
|
|
63
|
+
* saturated, not washed grey).
|
|
64
|
+
* - Apparent lightness lerps toward the selection target by `shift`.
|
|
65
|
+
* - At `shift === 0` the function is byte-identity.
|
|
66
|
+
*/
|
|
67
|
+
export declare function selectionRecolorRgb(rgb: Rgb, ground: number, shift?: number): Rgb;
|
|
68
|
+
/**
|
|
69
|
+
* Mint a selection **fill** color from theme ground (and optional accent hue).
|
|
70
|
+
* Used when a cell has no painted background (the common terminal case).
|
|
71
|
+
*/
|
|
72
|
+
export declare function selectionFillRgb(ground: number, opts?: {
|
|
73
|
+
hue?: number;
|
|
74
|
+
chroma?: number;
|
|
75
|
+
}): Rgb;
|
|
76
|
+
/**
|
|
77
|
+
/**
|
|
78
|
+
* Minimum |ΔAL| between a painted bg and its selected recolor.
|
|
79
|
+
* Same step as the empty-cell fill (`SELECTION_FILL_AL_DELTA`). The
|
|
80
|
+
* toward-fill lerp alone lands ~0.063 on a wash — under the 0.074
|
|
81
|
+
* brightness JND, so selection on a Diff row is invisible.
|
|
82
|
+
*/
|
|
83
|
+
export declare const SELECTION_BG_MIN_AL_STEP = 0.16;
|
|
84
|
+
/**
|
|
85
|
+
* Recolor an existing **background** for selection: lift/drop AL toward the
|
|
86
|
+
* fill target, inject a mild accent chroma while preserving any strong
|
|
87
|
+
* existing hue (so a colored panel bg stays itself, just selected).
|
|
88
|
+
*
|
|
89
|
+
* Painted cells cannot reuse the empty-cell fill target as the only aim —
|
|
90
|
+
* elevation already sits near `ground ± 0.16`. Take the further of the
|
|
91
|
+
* lerp and a minimum AL step so the block still reads as selected.
|
|
92
|
+
*/
|
|
93
|
+
export declare function selectionRecolorBgRgb(rgb: Rgb, ground: number, shift?: number): Rgb;
|
|
94
|
+
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../src/theme/selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAwB,GAAG,GAAG,CAYlG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,GAAG,CAMlG;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,OAA0B,CAAC;AAEhE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAa,GAAG,GAAG,CAiBzF"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Selection recolor — perception-preserving highlight via the HK salience
|
|
3
|
+
* pipeline. NOT reverse-video, NOT alpha-blend of an opaque tint over content.
|
|
4
|
+
*
|
|
5
|
+
* Two channels, different jobs:
|
|
6
|
+
*
|
|
7
|
+
* 1. **FG** — identity-preserving active shift: lerp apparent lightness toward
|
|
8
|
+
* the anchor tier, **keep chroma** (hue stays exact — Zed #17313). The
|
|
9
|
+
* 8–10% AL budget is for the *foreground*, not a prominence scalar.
|
|
10
|
+
*
|
|
11
|
+
* 2. **BG** — a real selection fill. Most terminal cells have no painted bg
|
|
12
|
+
* (transparent → terminal ground). Without a fill, selection is invisible
|
|
13
|
+
* except as a tiny fg delta. Fill is ground lifted toward a mild accent
|
|
14
|
+
* wash so the block reads as selected while remaining theme-coherent.
|
|
15
|
+
*
|
|
16
|
+
* The region-dim formula `c * p^γ` must NOT be reused with `p = SELECTION_SHIFT`.
|
|
17
|
+
* Region prominence is "how much color remains" (1 = full, 0 = gone). Selection
|
|
18
|
+
* shift is "how far to move AL" (0.09 = 9% of the way). Feeding 0.09 into the
|
|
19
|
+
* prominence power law crushed chroma to ~27% and made selection look like
|
|
20
|
+
* desaturated grey — the failure mode reported on the LLM-pick story.
|
|
21
|
+
*
|
|
22
|
+
* Shift budget (fg AL), from dark-theme design notes:
|
|
23
|
+
* "active states increase 8-10% lightness."
|
|
24
|
+
*/
|
|
25
|
+
import { apparentLightness, hexToRgb, oklchToHex, rgbToOklch, solveLightness, tierTarget } from "./salience.js";
|
|
26
|
+
/**
|
|
27
|
+
* Active-state lightness shift for **foreground** — fraction of the way from
|
|
28
|
+
* current AL toward the selection target AL. 0.09 ≈ 9% (active-state budget).
|
|
29
|
+
*/
|
|
30
|
+
export const SELECTION_SHIFT = 0.09;
|
|
31
|
+
/**
|
|
32
|
+
* How far to lift (dark themes) or drop (light themes) ground AL when minting
|
|
33
|
+
* a selection fill. Large enough to read as a block highlight at a glance;
|
|
34
|
+
* small enough not to compete with accent/emphasis content.
|
|
35
|
+
*/
|
|
36
|
+
export const SELECTION_FILL_AL_DELTA = 0.16;
|
|
37
|
+
/**
|
|
38
|
+
* Mild chroma on the selection fill (OKLCH C). Accent-hue wash, not a neon
|
|
39
|
+
* bar. 0.045 sits under most role chromas so selected text still wins.
|
|
40
|
+
*/
|
|
41
|
+
export const SELECTION_FILL_CHROMA = 0.045;
|
|
42
|
+
/**
|
|
43
|
+
* Accent hue for the selection wash (OKLCH H). Matches seed `accent` (~242°
|
|
44
|
+
* blue) so the fill feels like the same system, not a foreign reverse-video.
|
|
45
|
+
*/
|
|
46
|
+
export const SELECTION_FILL_HUE = 242;
|
|
47
|
+
/**
|
|
48
|
+
* Target apparent lightness for selected **foreground**. Top of the tier
|
|
49
|
+
* ladder (`anchor`) so selected text reads active without leaving the palette.
|
|
50
|
+
*/
|
|
51
|
+
export function selectionTargetAl(ground) {
|
|
52
|
+
return tierTarget("anchor", ground);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Target apparent lightness for the selection **fill** (background).
|
|
56
|
+
* Dark themes: lift ground up. Light themes: drop ground down. Symmetric
|
|
57
|
+
* so selection remains visible under either polarity.
|
|
58
|
+
*/
|
|
59
|
+
export function selectionFillTargetAl(ground) {
|
|
60
|
+
if (ground < 0.5) {
|
|
61
|
+
return Math.min(0.55, ground + SELECTION_FILL_AL_DELTA);
|
|
62
|
+
}
|
|
63
|
+
return Math.max(0.45, ground - SELECTION_FILL_AL_DELTA);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Recolor a **foreground** sRGB color for selection.
|
|
67
|
+
*
|
|
68
|
+
* - Hue preserved EXACTLY.
|
|
69
|
+
* - Chroma preserved (identity of colored content — diff-red stays red and
|
|
70
|
+
* saturated, not washed grey).
|
|
71
|
+
* - Apparent lightness lerps toward the selection target by `shift`.
|
|
72
|
+
* - At `shift === 0` the function is byte-identity.
|
|
73
|
+
*/
|
|
74
|
+
export function selectionRecolorRgb(rgb, ground, shift = SELECTION_SHIFT) {
|
|
75
|
+
if (!Number.isFinite(shift) || shift <= 0)
|
|
76
|
+
return rgb;
|
|
77
|
+
const t = Math.min(1, shift);
|
|
78
|
+
const { l, c, h } = rgbToOklch(rgb.r, rgb.g, rgb.b);
|
|
79
|
+
const al = apparentLightness(l, c, h);
|
|
80
|
+
const targetAl = selectionTargetAl(ground);
|
|
81
|
+
const newAl = al + (targetAl - al) * t;
|
|
82
|
+
// Keep chroma. Region-dim's p^γ law does not apply here (see file header).
|
|
83
|
+
const newC = c;
|
|
84
|
+
const newL = solveLightness(newAl, newC, h);
|
|
85
|
+
const hex = oklchToHex(newL, newC, h);
|
|
86
|
+
return hexToRgb(hex);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Mint a selection **fill** color from theme ground (and optional accent hue).
|
|
90
|
+
* Used when a cell has no painted background (the common terminal case).
|
|
91
|
+
*/
|
|
92
|
+
export function selectionFillRgb(ground, opts = {}) {
|
|
93
|
+
const h = opts.hue ?? SELECTION_FILL_HUE;
|
|
94
|
+
const c = opts.chroma ?? SELECTION_FILL_CHROMA;
|
|
95
|
+
const al = selectionFillTargetAl(ground);
|
|
96
|
+
const l = solveLightness(al, c, h);
|
|
97
|
+
return hexToRgb(oklchToHex(l, c, h));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
/**
|
|
101
|
+
* Minimum |ΔAL| between a painted bg and its selected recolor.
|
|
102
|
+
* Same step as the empty-cell fill (`SELECTION_FILL_AL_DELTA`). The
|
|
103
|
+
* toward-fill lerp alone lands ~0.063 on a wash — under the 0.074
|
|
104
|
+
* brightness JND, so selection on a Diff row is invisible.
|
|
105
|
+
*/
|
|
106
|
+
export const SELECTION_BG_MIN_AL_STEP = SELECTION_FILL_AL_DELTA;
|
|
107
|
+
/**
|
|
108
|
+
* Recolor an existing **background** for selection: lift/drop AL toward the
|
|
109
|
+
* fill target, inject a mild accent chroma while preserving any strong
|
|
110
|
+
* existing hue (so a colored panel bg stays itself, just selected).
|
|
111
|
+
*
|
|
112
|
+
* Painted cells cannot reuse the empty-cell fill target as the only aim —
|
|
113
|
+
* elevation already sits near `ground ± 0.16`. Take the further of the
|
|
114
|
+
* lerp and a minimum AL step so the block still reads as selected.
|
|
115
|
+
*/
|
|
116
|
+
export function selectionRecolorBgRgb(rgb, ground, shift = 0.55) {
|
|
117
|
+
if (!Number.isFinite(shift) || shift <= 0)
|
|
118
|
+
return rgb;
|
|
119
|
+
const t = Math.min(1, shift);
|
|
120
|
+
const { l, c, h } = rgbToOklch(rgb.r, rgb.g, rgb.b);
|
|
121
|
+
const al = apparentLightness(l, c, h);
|
|
122
|
+
const targetAl = selectionFillTargetAl(ground);
|
|
123
|
+
const towardFill = al + (targetAl - al) * t;
|
|
124
|
+
const dark = ground < 0.5;
|
|
125
|
+
const stepped = dark ? al + SELECTION_BG_MIN_AL_STEP : al - SELECTION_BG_MIN_AL_STEP;
|
|
126
|
+
const newAl = dark ? Math.max(towardFill, stepped) : Math.min(towardFill, stepped);
|
|
127
|
+
// If the bg is nearly achromatic, adopt the selection wash hue/chroma.
|
|
128
|
+
// If it already carries color, keep its hue and blend chroma toward the wash.
|
|
129
|
+
const achromatic = c < 0.01;
|
|
130
|
+
const newH = achromatic ? SELECTION_FILL_HUE : h;
|
|
131
|
+
const newC = achromatic ? SELECTION_FILL_CHROMA : c + (SELECTION_FILL_CHROMA - c) * (t * 0.5);
|
|
132
|
+
const newL = solveLightness(newAl, newC, newH);
|
|
133
|
+
return hexToRgb(oklchToHex(newL, newC, newH));
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/theme/selection.ts"],"names":[],"mappings":"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"}
|