@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,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visual (painted) draft geometry — soft-wrap aware caret motion.
|
|
3
|
+
*
|
|
4
|
+
* Uses the same `pre-wrap` + display-column measure lineage as
|
|
5
|
+
* {@link chromeFrameBodyLines} / composer body paint, so ↑/↓/Home/End track
|
|
6
|
+
* spatial rows on screen, not only hard `\n`s.
|
|
7
|
+
*/
|
|
8
|
+
import { wrapText } from "./text.js";
|
|
9
|
+
import { defaultMeasure, displayWidth } from "../measure/index.js";
|
|
10
|
+
/**
|
|
11
|
+
* Partition `draft` into painted body rows at `textW` content columns.
|
|
12
|
+
* Empty draft → one empty visual line at 0 (caret-only row).
|
|
13
|
+
*/
|
|
14
|
+
export function visualDraftLines(draft, textW) {
|
|
15
|
+
const w = Math.max(1, Math.floor(textW));
|
|
16
|
+
if (draft.length === 0)
|
|
17
|
+
return [{ start: 0, end: 0, text: "" }];
|
|
18
|
+
const hardLines = draft.split("\n");
|
|
19
|
+
const out = [];
|
|
20
|
+
let pos = 0;
|
|
21
|
+
for (let hi = 0; hi < hardLines.length; hi++) {
|
|
22
|
+
const hard = hardLines[hi];
|
|
23
|
+
const soft = wrapText(hard, {
|
|
24
|
+
width: w,
|
|
25
|
+
whiteSpace: "pre-wrap",
|
|
26
|
+
measure: defaultMeasure,
|
|
27
|
+
});
|
|
28
|
+
let hardPos = 0;
|
|
29
|
+
for (const line of soft) {
|
|
30
|
+
const start = pos + hardPos;
|
|
31
|
+
out.push({ start, end: start + line.length, text: line });
|
|
32
|
+
hardPos += line.length;
|
|
33
|
+
}
|
|
34
|
+
// Empty hard line (e.g. trailing `\n` or `\n\n`) still paints a blank row.
|
|
35
|
+
if (soft.length === 0) {
|
|
36
|
+
out.push({ start: pos, end: pos, text: "" });
|
|
37
|
+
}
|
|
38
|
+
pos += hard.length;
|
|
39
|
+
if (hi < hardLines.length - 1)
|
|
40
|
+
pos += 1; // consumed `\n`
|
|
41
|
+
}
|
|
42
|
+
return out.length > 0 ? out : [{ start: 0, end: 0, text: "" }];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Index of the visual line containing `cursor`.
|
|
46
|
+
*
|
|
47
|
+
* Soft-wrap / full-row law (browser textarea):
|
|
48
|
+
* - offset at end of row i that continues as row i+1 (shared boundary) → i+1
|
|
49
|
+
* - offset at end of a **full-width last** row (measure ≥ textW, no next) →
|
|
50
|
+
* a **virtual** empty continuation row at index `lines.length` (col 0).
|
|
51
|
+
* Without this, park places the caret on the right border cell (one past
|
|
52
|
+
* the text column) while paint only fills `textW` content cells.
|
|
53
|
+
*
|
|
54
|
+
* Hard newline is two offsets (`line.end` is the `\n`, next row starts at
|
|
55
|
+
* `end+1`). Cursor on `\n` stays on this row (after the last glyph). Cursor
|
|
56
|
+
* after `\n` is col 0 of the next row. Collapsing them onto the next row
|
|
57
|
+
* parks the caret on the empty line while insert still splices before `\n`.
|
|
58
|
+
*
|
|
59
|
+
* Returns `0..lines.length` inclusive (the last value is the virtual row).
|
|
60
|
+
*/
|
|
61
|
+
export function visualLineIndex(lines, cursor, textW) {
|
|
62
|
+
if (lines.length === 0)
|
|
63
|
+
return 0;
|
|
64
|
+
const c = Math.max(0, cursor);
|
|
65
|
+
const w = textW === undefined ? undefined : Math.max(1, Math.floor(textW));
|
|
66
|
+
for (let i = 0; i < lines.length; i++) {
|
|
67
|
+
const line = lines[i];
|
|
68
|
+
if (c >= line.start && c <= line.end) {
|
|
69
|
+
// Prefer later real line at soft-wrap boundary.
|
|
70
|
+
if (c === line.end && i + 1 < lines.length && lines[i + 1].start === c) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
// Full last row: caret-after-last sits on a virtual next row at col 0.
|
|
74
|
+
if (w !== undefined && c === line.end && i === lines.length - 1 && displayWidth(line.text) >= w) {
|
|
75
|
+
return lines.length;
|
|
76
|
+
}
|
|
77
|
+
return i;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return lines.length - 1;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Display column of the caret within its visual line (0 = start of content).
|
|
84
|
+
*/
|
|
85
|
+
export function visualColInLine(draft, line, cursor) {
|
|
86
|
+
const c = Math.max(line.start, Math.min(line.end, cursor));
|
|
87
|
+
return displayWidth(draft.slice(line.start, c));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Map a preferred display column onto a UTF-16 offset within `line`.
|
|
91
|
+
* Lands before a grapheme when the column falls inside a wide cell.
|
|
92
|
+
*/
|
|
93
|
+
export function offsetAtVisualCol(draft, line, targetCol) {
|
|
94
|
+
if (targetCol <= 0)
|
|
95
|
+
return line.start;
|
|
96
|
+
const segmenter = new Intl.Segmenter(undefined, { granularity: "grapheme" });
|
|
97
|
+
let col = 0;
|
|
98
|
+
let offset = line.start;
|
|
99
|
+
for (const { segment } of segmenter.segment(draft.slice(line.start, line.end))) {
|
|
100
|
+
const w = displayWidth(segment);
|
|
101
|
+
if (col + w > targetCol)
|
|
102
|
+
return offset; // inside / at this grapheme → before it
|
|
103
|
+
col += w;
|
|
104
|
+
offset += segment.length;
|
|
105
|
+
if (col >= targetCol)
|
|
106
|
+
return offset;
|
|
107
|
+
}
|
|
108
|
+
return line.end;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Spatial caret park within the content box (0-based line, display col).
|
|
112
|
+
*
|
|
113
|
+
* Soft-wrap boundary law (browser / textarea): when the UTF-16 offset is both
|
|
114
|
+
* the end of visual row i and the start of row i+1, the caret sits on **row
|
|
115
|
+
* i+1 at col 0** — not trailing past the last glyph of row i. Park and ↑/↓
|
|
116
|
+
* must share this, or arrow-up from a wrap-start jumps to "after last" of
|
|
117
|
+
* the previous row (preferred-col = full width) instead of its first char.
|
|
118
|
+
*/
|
|
119
|
+
export function visualCaretGeometry(draft, cursor, textW) {
|
|
120
|
+
const w = Math.max(1, Math.floor(textW));
|
|
121
|
+
const lines = visualDraftLines(draft, w);
|
|
122
|
+
const c = Math.max(0, Math.min(draft.length, cursor));
|
|
123
|
+
const idx = visualLineIndex(lines, c, w);
|
|
124
|
+
// Virtual continuation row past a full last line: col 0.
|
|
125
|
+
if (idx >= lines.length) {
|
|
126
|
+
return {
|
|
127
|
+
line: lines.length,
|
|
128
|
+
colInContent: 0,
|
|
129
|
+
totalLines: lines.length + 1,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
const line = lines[idx];
|
|
133
|
+
const col = visualColInLine(draft, line, c);
|
|
134
|
+
// Never park on the right border (relative col === textW) — that cell is the
|
|
135
|
+
// frame's `│`. Soft-wrap / last-row overflow already moved `idx` to the next
|
|
136
|
+
// (possibly virtual) row. A full row that a `\n` follows still has col === w
|
|
137
|
+
// at `line.end`; next-row col 0 would show start-of-next-line while insert
|
|
138
|
+
// splices before the `\n`. Clamp to the last text cell.
|
|
139
|
+
if (col >= w) {
|
|
140
|
+
return {
|
|
141
|
+
line: idx,
|
|
142
|
+
colInContent: Math.max(0, w - 1),
|
|
143
|
+
totalLines: Math.max(1, lines.length),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
line: idx,
|
|
148
|
+
colInContent: col,
|
|
149
|
+
totalLines: Math.max(1, lines.length),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Spatial caret motion over painted draft rows.
|
|
154
|
+
* `textW` must be the composer body content width (outer − chrome), same as paint.
|
|
155
|
+
*/
|
|
156
|
+
export function moveVisualDraft(draft, cursor, textW, motion) {
|
|
157
|
+
const w = Math.max(1, Math.floor(textW));
|
|
158
|
+
const lines = visualDraftLines(draft, w);
|
|
159
|
+
const c = Math.max(0, Math.min(draft.length, cursor));
|
|
160
|
+
const idx = visualLineIndex(lines, c, w);
|
|
161
|
+
// Virtual empty row after a full last line.
|
|
162
|
+
if (idx >= lines.length) {
|
|
163
|
+
switch (motion) {
|
|
164
|
+
case "line_home":
|
|
165
|
+
case "line_end":
|
|
166
|
+
return c; // empty virtual row — only one offset
|
|
167
|
+
case "line_up": {
|
|
168
|
+
const prev = lines.at(-1);
|
|
169
|
+
// From col 0 of virtual row → col 0 of previous (first char), not end.
|
|
170
|
+
return offsetAtVisualCol(draft, prev, 0);
|
|
171
|
+
}
|
|
172
|
+
case "line_down":
|
|
173
|
+
return c;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const line = lines[idx];
|
|
177
|
+
switch (motion) {
|
|
178
|
+
case "line_home":
|
|
179
|
+
return line.start;
|
|
180
|
+
case "line_end":
|
|
181
|
+
return line.end;
|
|
182
|
+
case "line_up": {
|
|
183
|
+
if (idx <= 0)
|
|
184
|
+
return c;
|
|
185
|
+
const col = visualColInLine(draft, line, c);
|
|
186
|
+
return offsetAtVisualCol(draft, lines[idx - 1], col);
|
|
187
|
+
}
|
|
188
|
+
case "line_down": {
|
|
189
|
+
if (idx >= lines.length - 1) {
|
|
190
|
+
// Stay, unless we're mid full-row and a virtual row would open — then
|
|
191
|
+
// line_end of this row is already c when c === line.end.
|
|
192
|
+
return c;
|
|
193
|
+
}
|
|
194
|
+
const col = visualColInLine(draft, line, c);
|
|
195
|
+
return offsetAtVisualCol(draft, lines[idx + 1], col);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=visual_draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual_draft.js","sourceRoot":"","sources":["../../src/layout/visual_draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color value shapes — the raw material the vocabulary is spoken in.
|
|
3
|
+
* SSOT for these types.
|
|
4
|
+
*/
|
|
5
|
+
/** sRGB triple, 0–255 per channel. */
|
|
6
|
+
export type Rgb = {
|
|
7
|
+
r: number;
|
|
8
|
+
g: number;
|
|
9
|
+
b: number;
|
|
10
|
+
};
|
|
11
|
+
/** OKLCH: l 0–1, c ≥ 0, h degrees 0–360. */
|
|
12
|
+
export type Oklch = {
|
|
13
|
+
l: number;
|
|
14
|
+
c: number;
|
|
15
|
+
h: number;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Solve direction relative to ground: `up` = lighter than ground (dark
|
|
19
|
+
* terminals), `down` = darker (light terminals), `auto` = pick by ground.
|
|
20
|
+
*/
|
|
21
|
+
export type Polarity = "auto" | "up" | "down";
|
|
22
|
+
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/lexicon/color.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sCAAsC;AACtC,MAAM,MAAM,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,4CAA4C;AAC5C,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/lexicon/color.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./index.js — the visual language, no paint.
|
|
3
|
+
*
|
|
4
|
+
* The dependency-root vocabulary every quickdraw/harness package speaks:
|
|
5
|
+
* semantic roles (hue = identity), tiers (contrast intent), branded
|
|
6
|
+
* prominence ladders (lightness = hierarchy), text attributes, the
|
|
7
|
+
* authoring-style contract, and the parity-law quarantine brands.
|
|
8
|
+
* Zero runtime dependencies; the solver lives in quickdraw-theme.
|
|
9
|
+
*/
|
|
10
|
+
export * from "./tiers.js";
|
|
11
|
+
export * from "./roles.js";
|
|
12
|
+
export * from "./prominence.js";
|
|
13
|
+
export * from "./color.js";
|
|
14
|
+
export * from "./quarantine.js";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lexicon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./index.js — the visual language, no paint.
|
|
3
|
+
*
|
|
4
|
+
* The dependency-root vocabulary every quickdraw/harness package speaks:
|
|
5
|
+
* semantic roles (hue = identity), tiers (contrast intent), branded
|
|
6
|
+
* prominence ladders (lightness = hierarchy), text attributes, the
|
|
7
|
+
* authoring-style contract, and the parity-law quarantine brands.
|
|
8
|
+
* Zero runtime dependencies; the solver lives in quickdraw-theme.
|
|
9
|
+
*/
|
|
10
|
+
export * from "./tiers.js";
|
|
11
|
+
export * from "./roles.js";
|
|
12
|
+
export * from "./prominence.js";
|
|
13
|
+
export * from "./color.js";
|
|
14
|
+
export * from "./quarantine.js";
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lexicon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discrete prominence ladders — branded so app/TEA code cannot pass free floats.
|
|
3
|
+
*
|
|
4
|
+
* The brand is a number subtype: `FgP.*` / `BgP.*` assign to Style's bare
|
|
5
|
+
* `number` fields. Interpolated values (`fgProgress`) stay unbranded numbers.
|
|
6
|
+
*
|
|
7
|
+
* Two axes:
|
|
8
|
+
* - **Fg** — glyph/text weight (ghost → rising → secondary → primary)
|
|
9
|
+
* - **Bg** — region / panel fill weight (wash → panel → solid)
|
|
10
|
+
*/
|
|
11
|
+
declare const __fgProminence: unique symbol;
|
|
12
|
+
declare const __bgProminence: unique symbol;
|
|
13
|
+
/** Branded foreground prominence (text / border glyphs). */
|
|
14
|
+
export type FgProminence = number & {
|
|
15
|
+
readonly [__fgProminence]: true;
|
|
16
|
+
};
|
|
17
|
+
/** Branded background / region prominence. */
|
|
18
|
+
export type BgProminence = number & {
|
|
19
|
+
readonly [__bgProminence]: true;
|
|
20
|
+
};
|
|
21
|
+
export type FgProminenceStep = "whisper" | "ghost" | "rising" | "secondary" | "primary";
|
|
22
|
+
export type BgProminenceStep = "mist" | "wash" | "panel" | "solid";
|
|
23
|
+
/** Named FG steps — only legal prominence sources for TEA fg styles. */
|
|
24
|
+
export declare const FgP: {
|
|
25
|
+
readonly whisper: FgProminence;
|
|
26
|
+
readonly ghost: FgProminence;
|
|
27
|
+
readonly rising: FgProminence;
|
|
28
|
+
readonly secondary: FgProminence;
|
|
29
|
+
readonly primary: FgProminence;
|
|
30
|
+
};
|
|
31
|
+
/** Named BG steps — only legal prominence sources for region/panel fills. */
|
|
32
|
+
export declare const BgP: {
|
|
33
|
+
readonly mist: BgProminence;
|
|
34
|
+
readonly wash: BgProminence;
|
|
35
|
+
readonly panel: BgProminence;
|
|
36
|
+
readonly solid: BgProminence;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Continuous progress **between two branded endpoints** (render boundary only).
|
|
40
|
+
* Returns a bare number for Style.prominence — not a new brand.
|
|
41
|
+
* Partial fill: `fgProgress(FgP.ghost, FgP.secondary, frac)` so frac→1 matches
|
|
42
|
+
* filled contour and frac→0 matches ambient free (no discrete step jumps).
|
|
43
|
+
*/
|
|
44
|
+
export declare function fgProgress(from: FgProminence, to: FgProminence, t: number): number;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=prominence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prominence.d.ts","sourceRoot":"","sources":["../../src/lexicon/prominence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAC5C,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAE5C,4DAA4D;AAC5D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AACxE,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AACxF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AA0CnE,wEAAwE;AACxE,eAAO,MAAM,GAAG;;;;;;CAM2C,CAAC;AAE5D,6EAA6E;AAC7E,eAAO,MAAM,GAAG;;;;;CAK2C,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discrete prominence ladders — branded so app/TEA code cannot pass free floats.
|
|
3
|
+
*
|
|
4
|
+
* The brand is a number subtype: `FgP.*` / `BgP.*` assign to Style's bare
|
|
5
|
+
* `number` fields. Interpolated values (`fgProgress`) stay unbranded numbers.
|
|
6
|
+
*
|
|
7
|
+
* Two axes:
|
|
8
|
+
* - **Fg** — glyph/text weight (ghost → rising → secondary → primary)
|
|
9
|
+
* - **Bg** — region / panel fill weight (wash → panel → solid)
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* FG numeric ladder (resolved into Style.prominence) — proximity to the
|
|
13
|
+
* reader: primary in hand, secondary on the desk, rising approaching,
|
|
14
|
+
* ghost in the periphery, whisper a memory trace.
|
|
15
|
+
* - whisper — disabled rows, deep age-fade floor (identity stays on hue)
|
|
16
|
+
* - ghost — ambient unfilled, gutters, whispers
|
|
17
|
+
* - rising — partial fill mid-step (between ambient and contour)
|
|
18
|
+
* - secondary — contour, meta, filled context, secondary labels
|
|
19
|
+
* - primary — draft body, chevron, selected / primary labels
|
|
20
|
+
*/
|
|
21
|
+
const FG_VALUES = {
|
|
22
|
+
whisper: 0.28,
|
|
23
|
+
ghost: 0.42,
|
|
24
|
+
rising: 0.57,
|
|
25
|
+
secondary: 0.72,
|
|
26
|
+
primary: 1,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* BG numeric ladder (regionProminence / panel fills) — depth of matter:
|
|
30
|
+
* solid object, panel furniture, wash atmosphere, mist weather.
|
|
31
|
+
* - mist — procedural-field weight (bgfx wash strength)
|
|
32
|
+
* - wash — soft backdrop fade
|
|
33
|
+
* - panel — modal / solid-ish panel
|
|
34
|
+
* - solid — full opacity region
|
|
35
|
+
*/
|
|
36
|
+
const BG_VALUES = {
|
|
37
|
+
mist: 0.28,
|
|
38
|
+
wash: 0.5,
|
|
39
|
+
panel: 0.85,
|
|
40
|
+
solid: 1,
|
|
41
|
+
};
|
|
42
|
+
function brandFg(n) {
|
|
43
|
+
return n;
|
|
44
|
+
}
|
|
45
|
+
function brandBg(n) {
|
|
46
|
+
return n;
|
|
47
|
+
}
|
|
48
|
+
/** Named FG steps — only legal prominence sources for TEA fg styles. */
|
|
49
|
+
export const FgP = {
|
|
50
|
+
whisper: brandFg(FG_VALUES.whisper),
|
|
51
|
+
ghost: brandFg(FG_VALUES.ghost),
|
|
52
|
+
rising: brandFg(FG_VALUES.rising),
|
|
53
|
+
secondary: brandFg(FG_VALUES.secondary),
|
|
54
|
+
primary: brandFg(FG_VALUES.primary),
|
|
55
|
+
};
|
|
56
|
+
/** Named BG steps — only legal prominence sources for region/panel fills. */
|
|
57
|
+
export const BgP = {
|
|
58
|
+
mist: brandBg(BG_VALUES.mist),
|
|
59
|
+
wash: brandBg(BG_VALUES.wash),
|
|
60
|
+
panel: brandBg(BG_VALUES.panel),
|
|
61
|
+
solid: brandBg(BG_VALUES.solid),
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Continuous progress **between two branded endpoints** (render boundary only).
|
|
65
|
+
* Returns a bare number for Style.prominence — not a new brand.
|
|
66
|
+
* Partial fill: `fgProgress(FgP.ghost, FgP.secondary, frac)` so frac→1 matches
|
|
67
|
+
* filled contour and frac→0 matches ambient free (no discrete step jumps).
|
|
68
|
+
*/
|
|
69
|
+
export function fgProgress(from, to, t) {
|
|
70
|
+
const f = typeof t === "number" && Number.isFinite(t) ? Math.max(0, Math.min(1, t)) : 0;
|
|
71
|
+
return from + (to - from) * f;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=prominence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prominence.js","sourceRoot":"","sources":["../../src/lexicon/prominence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH;;;;;;;;;GASG;AACH,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACyC,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,CAAC;CAC2C,CAAC;AAEtD,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAiB,CAAC;AAC3B,CAAC;AACD,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAiB,CAAC;AAC3B,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;CACsB,CAAC;AAE5D,6EAA6E;AAC7E,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;CAC0B,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAkB,EAAE,EAAgB,EAAE,CAAS;IACxE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,OAAO,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The parity law: every painted color states a role and a prominence.
|
|
3
|
+
* Literal colors survive only inside named quarantines, and the brand makes
|
|
4
|
+
* the naming mandatory — a bare Rgb cannot cross an API that asks for a
|
|
5
|
+
* QuarantinedRgb.
|
|
6
|
+
*
|
|
7
|
+
* - `artwork` — shader fields, Shadertoy sources: color is content.
|
|
8
|
+
* - `test-vector` — screenshot/emission fixtures: theming destroys them.
|
|
9
|
+
* - `data-passthrough` — externally-owned colors (syntax tokens): honored
|
|
10
|
+
* literally, still region-dimmed and depth-degraded.
|
|
11
|
+
*/
|
|
12
|
+
import type { Rgb } from "./color.js";
|
|
13
|
+
export type QuarantineKind = "artwork" | "test-vector" | "data-passthrough";
|
|
14
|
+
declare const __quarantine: unique symbol;
|
|
15
|
+
/** A literal color that has declared why it is allowed to exist. */
|
|
16
|
+
export type QuarantinedRgb = Rgb & {
|
|
17
|
+
readonly [__quarantine]: QuarantineKind;
|
|
18
|
+
};
|
|
19
|
+
export declare function quarantine(rgb: Rgb, _kind: QuarantineKind): QuarantinedRgb;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=quarantine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quarantine.d.ts","sourceRoot":"","sources":["../../src/lexicon/quarantine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAE5E,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,MAAM,CAAC;AAE1C,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG;IAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC;AAE/E,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,GAAG,cAAc,CAE1E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The parity law: every painted color states a role and a prominence.
|
|
3
|
+
* Literal colors survive only inside named quarantines, and the brand makes
|
|
4
|
+
* the naming mandatory — a bare Rgb cannot cross an API that asks for a
|
|
5
|
+
* QuarantinedRgb.
|
|
6
|
+
*
|
|
7
|
+
* - `artwork` — shader fields, Shadertoy sources: color is content.
|
|
8
|
+
* - `test-vector` — screenshot/emission fixtures: theming destroys them.
|
|
9
|
+
* - `data-passthrough` — externally-owned colors (syntax tokens): honored
|
|
10
|
+
* literally, still region-dimmed and depth-degraded.
|
|
11
|
+
*/
|
|
12
|
+
export function quarantine(rgb, _kind) {
|
|
13
|
+
return rgb;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=quarantine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quarantine.js","sourceRoot":"","sources":["../../src/lexicon/quarantine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,KAAqB;IACxD,OAAO,GAAqB,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic roles — hue carries identity ("who is speaking"), never hierarchy.
|
|
3
|
+
* Hierarchy is the lightness axis (tier × prominence); state changes move
|
|
4
|
+
* along lightness, identity stays on hue. A disabled item is its role at
|
|
5
|
+
* `whisper` prominence, not a different role.
|
|
6
|
+
*
|
|
7
|
+
* Roles group into five families (the metaphor system):
|
|
8
|
+
*
|
|
9
|
+
* - **voice** — the content speaking: itself (`foreground`), as an aside
|
|
10
|
+
* (`muted`), raised (`emphasis`), or verbatim (`code` —
|
|
11
|
+
* azure, body-weight; unspecified / unhighlighted source).
|
|
12
|
+
* - **furniture** — the room: stagehand text (`chrome`), walls (`border`),
|
|
13
|
+
* floors (`surface`). Distinguished from voices by tier
|
|
14
|
+
* (recede), never by hue.
|
|
15
|
+
* - **signal** — states of the world, the absolute grammar: red = broken
|
|
16
|
+
* (`error`), orange = caution (`warning`), green = go
|
|
17
|
+
* (`success`), magenta = machine-in-flux (`running`) —
|
|
18
|
+
* deliberately the one unnatural hue: a process-state
|
|
19
|
+
* outside the natural world-state grammar — plus the two
|
|
20
|
+
* unsupervised permission postures, which own their own
|
|
21
|
+
* hues so they cannot steal warning/error: blue 211
|
|
22
|
+
* classifier-on (`auto`), yellow 110 look-here (`attention`).
|
|
23
|
+
* - **affordance** — where attention can go (`accent`). Links are
|
|
24
|
+
* accent + underline; selection is accent-hued atmosphere
|
|
25
|
+
* (see quickdraw-theme selection.ts).
|
|
26
|
+
* - **delta** — change itself (`diff_add`, `diff_del`): success/error hue
|
|
27
|
+
* families at reading chroma, because diffs are read at
|
|
28
|
+
* length while signals are glanced.
|
|
29
|
+
*/
|
|
30
|
+
export type SemanticRole = "foreground" | "accent" | "error" | "warning" | "success" | "emphasis" | "muted" | "border" | "chrome" | "surface" | "code" | "diff_add" | "diff_del" | "running" | "auto" | "attention";
|
|
31
|
+
export type RoleFamily = "voice" | "furniture" | "signal" | "affordance" | "delta";
|
|
32
|
+
export declare const ROLE_FAMILY: Record<SemanticRole, RoleFamily>;
|
|
33
|
+
/** Every role, in declaration order. */
|
|
34
|
+
export declare const ALL_ROLES: readonly SemanticRole[];
|
|
35
|
+
/** Membership check for unvalidated strings (resolver guard). */
|
|
36
|
+
export declare const ROLES: ReadonlySet<string>;
|
|
37
|
+
//# sourceMappingURL=roles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/lexicon/roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,UAAU,GACV,UAAU,GACV,SAAS,GACT,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;AAEnF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAiBxD,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,SAAS,EAA+B,SAAS,YAAY,EAAE,CAAC;AAE7E,iEAAiE;AACjE,eAAO,MAAM,KAAK,EAAE,WAAW,CAAC,MAAM,CAAsB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic roles — hue carries identity ("who is speaking"), never hierarchy.
|
|
3
|
+
* Hierarchy is the lightness axis (tier × prominence); state changes move
|
|
4
|
+
* along lightness, identity stays on hue. A disabled item is its role at
|
|
5
|
+
* `whisper` prominence, not a different role.
|
|
6
|
+
*
|
|
7
|
+
* Roles group into five families (the metaphor system):
|
|
8
|
+
*
|
|
9
|
+
* - **voice** — the content speaking: itself (`foreground`), as an aside
|
|
10
|
+
* (`muted`), raised (`emphasis`), or verbatim (`code` —
|
|
11
|
+
* azure, body-weight; unspecified / unhighlighted source).
|
|
12
|
+
* - **furniture** — the room: stagehand text (`chrome`), walls (`border`),
|
|
13
|
+
* floors (`surface`). Distinguished from voices by tier
|
|
14
|
+
* (recede), never by hue.
|
|
15
|
+
* - **signal** — states of the world, the absolute grammar: red = broken
|
|
16
|
+
* (`error`), orange = caution (`warning`), green = go
|
|
17
|
+
* (`success`), magenta = machine-in-flux (`running`) —
|
|
18
|
+
* deliberately the one unnatural hue: a process-state
|
|
19
|
+
* outside the natural world-state grammar — plus the two
|
|
20
|
+
* unsupervised permission postures, which own their own
|
|
21
|
+
* hues so they cannot steal warning/error: blue 211
|
|
22
|
+
* classifier-on (`auto`), yellow 110 look-here (`attention`).
|
|
23
|
+
* - **affordance** — where attention can go (`accent`). Links are
|
|
24
|
+
* accent + underline; selection is accent-hued atmosphere
|
|
25
|
+
* (see quickdraw-theme selection.ts).
|
|
26
|
+
* - **delta** — change itself (`diff_add`, `diff_del`): success/error hue
|
|
27
|
+
* families at reading chroma, because diffs are read at
|
|
28
|
+
* length while signals are glanced.
|
|
29
|
+
*/
|
|
30
|
+
export const ROLE_FAMILY = {
|
|
31
|
+
foreground: "voice",
|
|
32
|
+
muted: "voice",
|
|
33
|
+
emphasis: "voice",
|
|
34
|
+
code: "voice",
|
|
35
|
+
chrome: "furniture",
|
|
36
|
+
border: "furniture",
|
|
37
|
+
surface: "furniture",
|
|
38
|
+
error: "signal",
|
|
39
|
+
warning: "signal",
|
|
40
|
+
success: "signal",
|
|
41
|
+
running: "signal",
|
|
42
|
+
auto: "signal",
|
|
43
|
+
attention: "signal",
|
|
44
|
+
accent: "affordance",
|
|
45
|
+
diff_add: "delta",
|
|
46
|
+
diff_del: "delta",
|
|
47
|
+
};
|
|
48
|
+
/** Every role, in declaration order. */
|
|
49
|
+
export const ALL_ROLES = Object.keys(ROLE_FAMILY);
|
|
50
|
+
/** Membership check for unvalidated strings (resolver guard). */
|
|
51
|
+
export const ROLES = new Set(ALL_ROLES);
|
|
52
|
+
//# sourceMappingURL=roles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/lexicon/roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAsBH,MAAM,CAAC,MAAM,WAAW,GAAqC;IAC3D,UAAU,EAAE,OAAO;IACnB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,OAAO;CAClB,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAA4B,CAAC;AAE7E,iEAAiE;AACjE,MAAM,CAAC,MAAM,KAAK,GAAwB,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Salience tiers — how strongly a color separates from the terminal ground.
|
|
3
|
+
*
|
|
4
|
+
* A tier names a *contrast intent*, not a lightness: the solver
|
|
5
|
+
* (../theme/index.js salience.ts) turns tier + hue + measured
|
|
6
|
+
* ground into an OKLCH lightness via H-K-compensated apparent-lightness
|
|
7
|
+
* deltas. The numeric deltas live with the solver; the names live here.
|
|
8
|
+
*
|
|
9
|
+
* - `alarm` — lowest lightness separation, highest chroma budget:
|
|
10
|
+
* salience comes from color, not brightness (error/danger).
|
|
11
|
+
* - `recede` — furniture: chrome, borders, surfaces. Present, unheard.
|
|
12
|
+
* - `differentiate` — distinguishable at a glance without dominating.
|
|
13
|
+
* - `baseline` — body text. The reference reading contrast.
|
|
14
|
+
* - `anchor` — headings and landmarks the eye returns to.
|
|
15
|
+
*/
|
|
16
|
+
export declare const TIERS: readonly ["alarm", "recede", "differentiate", "baseline", "anchor"];
|
|
17
|
+
export type Tier = (typeof TIERS)[number];
|
|
18
|
+
//# sourceMappingURL=tiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiers.d.ts","sourceRoot":"","sources":["../../src/lexicon/tiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,KAAK,qEAAsE,CAAC;AAEzF,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Salience tiers — how strongly a color separates from the terminal ground.
|
|
3
|
+
*
|
|
4
|
+
* A tier names a *contrast intent*, not a lightness: the solver
|
|
5
|
+
* (../theme/index.js salience.ts) turns tier + hue + measured
|
|
6
|
+
* ground into an OKLCH lightness via H-K-compensated apparent-lightness
|
|
7
|
+
* deltas. The numeric deltas live with the solver; the names live here.
|
|
8
|
+
*
|
|
9
|
+
* - `alarm` — lowest lightness separation, highest chroma budget:
|
|
10
|
+
* salience comes from color, not brightness (error/danger).
|
|
11
|
+
* - `recede` — furniture: chrome, borders, surfaces. Present, unheard.
|
|
12
|
+
* - `differentiate` — distinguishable at a glance without dominating.
|
|
13
|
+
* - `baseline` — body text. The reference reading contrast.
|
|
14
|
+
* - `anchor` — headings and landmarks the eye returns to.
|
|
15
|
+
*/
|
|
16
|
+
export const TIERS = ["alarm", "recede", "differentiate", "baseline", "anchor"];
|
|
17
|
+
//# sourceMappingURL=tiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiers.js","sourceRoot":"","sources":["../../src/lexicon/tiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC"}
|