@flyingrobots/bijou 7.2.0 → 8.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/core/ansi.d.ts +2 -0
- package/dist/core/ansi.d.ts.map +1 -1
- package/dist/core/ansi.js +4 -0
- package/dist/core/ansi.js.map +1 -1
- package/dist/core/app-shell-composition-normalize.d.ts +10 -0
- package/dist/core/app-shell-composition-normalize.d.ts.map +1 -0
- package/dist/core/app-shell-composition-normalize.js +63 -0
- package/dist/core/app-shell-composition-normalize.js.map +1 -0
- package/dist/core/app-shell-composition.d.ts.map +1 -1
- package/dist/core/app-shell-composition.js +10 -71
- package/dist/core/app-shell-composition.js.map +1 -1
- package/dist/core/binding-frame-issues.d.ts +5 -0
- package/dist/core/binding-frame-issues.d.ts.map +1 -0
- package/dist/core/binding-frame-issues.js +31 -0
- package/dist/core/binding-frame-issues.js.map +1 -0
- package/dist/core/binding-frame-records.d.ts +10 -0
- package/dist/core/binding-frame-records.d.ts.map +1 -0
- package/dist/core/binding-frame-records.js +53 -0
- package/dist/core/binding-frame-records.js.map +1 -0
- package/dist/core/binding-frame-update.d.ts.map +1 -1
- package/dist/core/binding-frame-update.js +6 -85
- package/dist/core/binding-frame-update.js.map +1 -1
- package/dist/core/block-tree-render-contract.d.ts +24 -0
- package/dist/core/block-tree-render-contract.d.ts.map +1 -0
- package/dist/core/block-tree-render-contract.js +8 -0
- package/dist/core/block-tree-render-contract.js.map +1 -0
- package/dist/core/block-tree-render-snapshot.d.ts +6 -0
- package/dist/core/block-tree-render-snapshot.d.ts.map +1 -0
- package/dist/core/block-tree-render-snapshot.js +55 -0
- package/dist/core/block-tree-render-snapshot.js.map +1 -0
- package/dist/core/block-tree-render.d.ts +4 -16
- package/dist/core/block-tree-render.d.ts.map +1 -1
- package/dist/core/block-tree-render.js +3 -184
- package/dist/core/block-tree-render.js.map +1 -1
- package/dist/core/block-tree-render.part01.d.ts +4 -0
- package/dist/core/block-tree-render.part01.d.ts.map +1 -0
- package/dist/core/block-tree-render.part01.js +10 -0
- package/dist/core/block-tree-render.part01.js.map +1 -0
- package/dist/core/block-tree-render.part02.d.ts +7 -0
- package/dist/core/block-tree-render.part02.d.ts.map +1 -0
- package/dist/core/block-tree-render.part02.js +59 -0
- package/dist/core/block-tree-render.part02.js.map +1 -0
- package/dist/core/block-tree-render.part03.d.ts +14 -0
- package/dist/core/block-tree-render.part03.d.ts.map +1 -0
- package/dist/core/block-tree-render.part03.js +64 -0
- package/dist/core/block-tree-render.part03.js.map +1 -0
- package/dist/core/components/box-fill.d.ts +2 -0
- package/dist/core/components/box-fill.d.ts.map +1 -0
- package/dist/core/components/box-fill.js +7 -0
- package/dist/core/components/box-fill.js.map +1 -0
- package/dist/core/components/box-render.d.ts +9 -0
- package/dist/core/components/box-render.d.ts.map +1 -0
- package/dist/core/components/box-render.js +76 -0
- package/dist/core/components/box-render.js.map +1 -0
- package/dist/core/components/box-v3.d.ts +2 -15
- package/dist/core/components/box-v3.d.ts.map +1 -1
- package/dist/core/components/box-v3.js +2 -222
- package/dist/core/components/box-v3.js.map +1 -1
- package/dist/core/components/box-v3.part01.d.ts +30 -0
- package/dist/core/components/box-v3.part01.d.ts.map +1 -0
- package/dist/core/components/box-v3.part01.js +72 -0
- package/dist/core/components/box-v3.part01.js.map +1 -0
- package/dist/core/components/box-v3.part02.d.ts +9 -0
- package/dist/core/components/box-v3.part02.d.ts.map +1 -0
- package/dist/core/components/box-v3.part02.js +131 -0
- package/dist/core/components/box-v3.part02.js.map +1 -0
- package/dist/core/components/box-v3.part03.d.ts +10 -0
- package/dist/core/components/box-v3.part03.d.ts.map +1 -0
- package/dist/core/components/box-v3.part03.js +29 -0
- package/dist/core/components/box-v3.part03.js.map +1 -0
- package/dist/core/components/box.d.ts +2 -7
- package/dist/core/components/box.d.ts.map +1 -1
- package/dist/core/components/box.js +13 -106
- package/dist/core/components/box.js.map +1 -1
- package/dist/core/components/dag-edges.d.ts +5 -100
- package/dist/core/components/dag-edges.d.ts.map +1 -1
- package/dist/core/components/dag-edges.js +4 -222
- package/dist/core/components/dag-edges.js.map +1 -1
- package/dist/core/components/dag-edges.part01.d.ts +67 -0
- package/dist/core/components/dag-edges.part01.d.ts.map +1 -0
- package/dist/core/components/dag-edges.part01.js +99 -0
- package/dist/core/components/dag-edges.part01.js.map +1 -0
- package/dist/core/components/dag-edges.part02.d.ts +31 -0
- package/dist/core/components/dag-edges.part02.d.ts.map +1 -0
- package/dist/core/components/dag-edges.part02.js +57 -0
- package/dist/core/components/dag-edges.part02.js.map +1 -0
- package/dist/core/components/dag-edges.part03.d.ts +18 -0
- package/dist/core/components/dag-edges.part03.d.ts.map +1 -0
- package/dist/core/components/dag-edges.part03.js +41 -0
- package/dist/core/components/dag-edges.part03.js.map +1 -0
- package/dist/core/components/dag-edges.part04.d.ts +9 -0
- package/dist/core/components/dag-edges.part04.d.ts.map +1 -0
- package/dist/core/components/dag-edges.part04.js +67 -0
- package/dist/core/components/dag-edges.part04.js.map +1 -0
- package/dist/core/components/dag-layers.d.ts +3 -0
- package/dist/core/components/dag-layers.d.ts.map +1 -0
- package/dist/core/components/dag-layers.js +92 -0
- package/dist/core/components/dag-layers.js.map +1 -0
- package/dist/core/components/dag-layout.d.ts +1 -11
- package/dist/core/components/dag-layout.d.ts.map +1 -1
- package/dist/core/components/dag-layout.js +3 -114
- package/dist/core/components/dag-layout.js.map +1 -1
- package/dist/core/components/dag-render-contract.d.ts +42 -0
- package/dist/core/components/dag-render-contract.d.ts.map +1 -0
- package/dist/core/components/dag-render-contract.js +2 -0
- package/dist/core/components/dag-render-contract.js.map +1 -0
- package/dist/core/components/dag-render-grid.d.ts +6 -0
- package/dist/core/components/dag-render-grid.d.ts.map +1 -0
- package/dist/core/components/dag-render-grid.js +90 -0
- package/dist/core/components/dag-render-grid.js.map +1 -0
- package/dist/core/components/dag-render-interactive.d.ts +11 -0
- package/dist/core/components/dag-render-interactive.d.ts.map +1 -0
- package/dist/core/components/dag-render-interactive.js +18 -0
- package/dist/core/components/dag-render-interactive.js.map +1 -0
- package/dist/core/components/dag-render-layout.d.ts +6 -0
- package/dist/core/components/dag-render-layout.d.ts.map +1 -0
- package/dist/core/components/dag-render-layout.js +80 -0
- package/dist/core/components/dag-render-layout.js.map +1 -0
- package/dist/core/components/dag-render-metrics.d.ts +21 -0
- package/dist/core/components/dag-render-metrics.d.ts.map +1 -0
- package/dist/core/components/dag-render-metrics.js +95 -0
- package/dist/core/components/dag-render-metrics.js.map +1 -0
- package/dist/core/components/dag-render-node.d.ts +9 -0
- package/dist/core/components/dag-render-node.d.ts.map +1 -0
- package/dist/core/components/dag-render-node.js +71 -0
- package/dist/core/components/dag-render-node.js.map +1 -0
- package/dist/core/components/dag-render-place.d.ts +6 -0
- package/dist/core/components/dag-render-place.d.ts.map +1 -0
- package/dist/core/components/dag-render-place.js +59 -0
- package/dist/core/components/dag-render-place.js.map +1 -0
- package/dist/core/components/dag-render-text.d.ts +4 -0
- package/dist/core/components/dag-render-text.d.ts.map +1 -0
- package/dist/core/components/dag-render-text.js +55 -0
- package/dist/core/components/dag-render-text.js.map +1 -0
- package/dist/core/components/dag-render.d.ts +3 -51
- package/dist/core/components/dag-render.d.ts.map +1 -1
- package/dist/core/components/dag-render.js +3 -550
- package/dist/core/components/dag-render.js.map +1 -1
- package/dist/core/components/enumerated-list-format.d.ts +5 -0
- package/dist/core/components/enumerated-list-format.d.ts.map +1 -0
- package/dist/core/components/enumerated-list-format.js +93 -0
- package/dist/core/components/enumerated-list-format.js.map +1 -0
- package/dist/core/components/enumerated-list.d.ts.map +1 -1
- package/dist/core/components/enumerated-list.js +8 -128
- package/dist/core/components/enumerated-list.js.map +1 -1
- package/dist/core/components/guided-flow-sections.d.ts +6 -0
- package/dist/core/components/guided-flow-sections.d.ts.map +1 -0
- package/dist/core/components/guided-flow-sections.js +81 -0
- package/dist/core/components/guided-flow-sections.js.map +1 -0
- package/dist/core/components/guided-flow.d.ts.map +1 -1
- package/dist/core/components/guided-flow.js +4 -77
- package/dist/core/components/guided-flow.js.map +1 -1
- package/dist/core/components/markdown-parse.d.ts +4 -65
- package/dist/core/components/markdown-parse.d.ts.map +1 -1
- package/dist/core/components/markdown-parse.js +3 -320
- package/dist/core/components/markdown-parse.js.map +1 -1
- package/dist/core/components/markdown-parse.part01.d.ts +58 -0
- package/dist/core/components/markdown-parse.part01.d.ts.map +1 -0
- package/dist/core/components/markdown-parse.part01.js +111 -0
- package/dist/core/components/markdown-parse.part01.js.map +1 -0
- package/dist/core/components/markdown-parse.part02.d.ts +14 -0
- package/dist/core/components/markdown-parse.part02.d.ts.map +1 -0
- package/dist/core/components/markdown-parse.part02.js +110 -0
- package/dist/core/components/markdown-parse.part02.js.map +1 -0
- package/dist/core/components/markdown-parse.part03.d.ts +12 -0
- package/dist/core/components/markdown-parse.part03.d.ts.map +1 -0
- package/dist/core/components/markdown-parse.part03.js +104 -0
- package/dist/core/components/markdown-parse.part03.js.map +1 -0
- package/dist/core/components/preference-list.d.ts +4 -60
- package/dist/core/components/preference-list.d.ts.map +1 -1
- package/dist/core/components/preference-list.js +3 -305
- package/dist/core/components/preference-list.js.map +1 -1
- package/dist/core/components/preference-list.part01.d.ts +69 -0
- package/dist/core/components/preference-list.part01.d.ts.map +1 -0
- package/dist/core/components/preference-list.part01.js +61 -0
- package/dist/core/components/preference-list.part01.js.map +1 -0
- package/dist/core/components/preference-list.part02.d.ts +18 -0
- package/dist/core/components/preference-list.part02.d.ts.map +1 -0
- package/dist/core/components/preference-list.part02.js +113 -0
- package/dist/core/components/preference-list.part02.js.map +1 -0
- package/dist/core/components/preference-list.part04.d.ts +4 -0
- package/dist/core/components/preference-list.part04.d.ts.map +1 -0
- package/dist/core/components/preference-list.part04.js +88 -0
- package/dist/core/components/preference-list.part04.js.map +1 -0
- package/dist/core/components/preference-list.part05.d.ts +4 -0
- package/dist/core/components/preference-list.part05.d.ts.map +1 -0
- package/dist/core/components/preference-list.part05.js +60 -0
- package/dist/core/components/preference-list.part05.js.map +1 -0
- package/dist/core/components/progress.d.ts +5 -86
- package/dist/core/components/progress.d.ts.map +1 -1
- package/dist/core/components/progress.js +3 -205
- package/dist/core/components/progress.js.map +1 -1
- package/dist/core/components/progress.part01.d.ts +57 -0
- package/dist/core/components/progress.part01.d.ts.map +1 -0
- package/dist/core/components/progress.part01.js +69 -0
- package/dist/core/components/progress.part01.js.map +1 -0
- package/dist/core/components/progress.part02.d.ts +21 -0
- package/dist/core/components/progress.part02.d.ts.map +1 -0
- package/dist/core/components/progress.part02.js +53 -0
- package/dist/core/components/progress.part02.js.map +1 -0
- package/dist/core/components/progress.part03.d.ts +14 -0
- package/dist/core/components/progress.part03.d.ts.map +1 -0
- package/dist/core/components/progress.part03.js +96 -0
- package/dist/core/components/progress.part03.js.map +1 -0
- package/dist/core/components/surface-text-layout.d.ts +5 -0
- package/dist/core/components/surface-text-layout.d.ts.map +1 -0
- package/dist/core/components/surface-text-layout.js +47 -0
- package/dist/core/components/surface-text-layout.js.map +1 -0
- package/dist/core/components/surface-text-style.d.ts +17 -0
- package/dist/core/components/surface-text-style.d.ts.map +1 -0
- package/dist/core/components/surface-text-style.js +36 -0
- package/dist/core/components/surface-text-style.js.map +1 -0
- package/dist/core/components/surface-text.d.ts +5 -6
- package/dist/core/components/surface-text.d.ts.map +1 -1
- package/dist/core/components/surface-text.js +13 -92
- package/dist/core/components/surface-text.js.map +1 -1
- package/dist/core/components/table-build.d.ts +12 -0
- package/dist/core/components/table-build.d.ts.map +1 -0
- package/dist/core/components/table-build.js +48 -0
- package/dist/core/components/table-build.js.map +1 -0
- package/dist/core/components/table-cell-format.d.ts +4 -0
- package/dist/core/components/table-cell-format.d.ts.map +1 -0
- package/dist/core/components/table-cell-format.js +11 -0
- package/dist/core/components/table-cell-format.js.map +1 -0
- package/dist/core/components/table-contract.d.ts +66 -0
- package/dist/core/components/table-contract.d.ts.map +1 -0
- package/dist/core/components/table-contract.js +17 -0
- package/dist/core/components/table-contract.js.map +1 -0
- package/dist/core/components/table-fit.d.ts +3 -0
- package/dist/core/components/table-fit.d.ts.map +1 -0
- package/dist/core/components/table-fit.js +73 -0
- package/dist/core/components/table-fit.js.map +1 -0
- package/dist/core/components/table-measure.d.ts +11 -0
- package/dist/core/components/table-measure.d.ts.map +1 -0
- package/dist/core/components/table-measure.js +78 -0
- package/dist/core/components/table-measure.js.map +1 -0
- package/dist/core/components/table-model.d.ts +33 -0
- package/dist/core/components/table-model.d.ts.map +1 -0
- package/dist/core/components/table-model.js +2 -0
- package/dist/core/components/table-model.js.map +1 -0
- package/dist/core/components/table-normalize.d.ts +7 -0
- package/dist/core/components/table-normalize.d.ts.map +1 -0
- package/dist/core/components/table-normalize.js +47 -0
- package/dist/core/components/table-normalize.js.map +1 -0
- package/dist/core/components/table-render-borderless.d.ts +7 -0
- package/dist/core/components/table-render-borderless.d.ts.map +1 -0
- package/dist/core/components/table-render-borderless.js +62 -0
- package/dist/core/components/table-render-borderless.js.map +1 -0
- package/dist/core/components/table-render-expanded.d.ts +5 -0
- package/dist/core/components/table-render-expanded.d.ts.map +1 -0
- package/dist/core/components/table-render-expanded.js +58 -0
- package/dist/core/components/table-render-expanded.js.map +1 -0
- package/dist/core/components/table-render-grid.d.ts +5 -0
- package/dist/core/components/table-render-grid.d.ts.map +1 -0
- package/dist/core/components/table-render-grid.js +64 -0
- package/dist/core/components/table-render-grid.js.map +1 -0
- package/dist/core/components/table-render-markdown.d.ts +4 -0
- package/dist/core/components/table-render-markdown.d.ts.map +1 -0
- package/dist/core/components/table-render-markdown.js +52 -0
- package/dist/core/components/table-render-markdown.js.map +1 -0
- package/dist/core/components/table-render-pipe.d.ts +5 -0
- package/dist/core/components/table-render-pipe.d.ts.map +1 -0
- package/dist/core/components/table-render-pipe.js +46 -0
- package/dist/core/components/table-render-pipe.js.map +1 -0
- package/dist/core/components/table-render-visual.d.ts +5 -0
- package/dist/core/components/table-render-visual.d.ts.map +1 -0
- package/dist/core/components/table-render-visual.js +30 -0
- package/dist/core/components/table-render-visual.js.map +1 -0
- package/dist/core/components/table-text-ansi.d.ts +3 -0
- package/dist/core/components/table-text-ansi.d.ts.map +1 -0
- package/dist/core/components/table-text-ansi.js +121 -0
- package/dist/core/components/table-text-ansi.js.map +1 -0
- package/dist/core/components/table.d.ts +2 -64
- package/dist/core/components/table.d.ts.map +1 -1
- package/dist/core/components/table.js +22 -680
- package/dist/core/components/table.js.map +1 -1
- package/dist/core/components/timer-format.d.ts +6 -0
- package/dist/core/components/timer-format.d.ts.map +1 -0
- package/dist/core/components/timer-format.js +39 -0
- package/dist/core/components/timer-format.js.map +1 -0
- package/dist/core/components/timer.d.ts +3 -73
- package/dist/core/components/timer.d.ts.map +1 -1
- package/dist/core/components/timer.js +2 -220
- package/dist/core/components/timer.js.map +1 -1
- package/dist/core/components/timer.part01.d.ts +93 -0
- package/dist/core/components/timer.part01.d.ts.map +1 -0
- package/dist/core/components/timer.part01.js +35 -0
- package/dist/core/components/timer.part01.js.map +1 -0
- package/dist/core/components/timer.part02.d.ts +5 -0
- package/dist/core/components/timer.part02.d.ts.map +1 -0
- package/dist/core/components/timer.part02.js +120 -0
- package/dist/core/components/timer.part02.js.map +1 -0
- package/dist/core/components/timer.part03.d.ts +20 -0
- package/dist/core/components/timer.part03.d.ts.map +1 -0
- package/dist/core/components/timer.part03.js +53 -0
- package/dist/core/components/timer.part03.js.map +1 -0
- package/dist/core/detect/tty.d.ts +13 -3
- package/dist/core/detect/tty.d.ts.map +1 -1
- package/dist/core/detect/tty.js +12 -4
- package/dist/core/detect/tty.js.map +1 -1
- package/dist/core/forms/multiselect-interactive.d.ts +4 -0
- package/dist/core/forms/multiselect-interactive.d.ts.map +1 -0
- package/dist/core/forms/multiselect-interactive.js +106 -0
- package/dist/core/forms/multiselect-interactive.js.map +1 -0
- package/dist/core/forms/multiselect.d.ts.map +1 -1
- package/dist/core/forms/multiselect.js +2 -106
- package/dist/core/forms/multiselect.js.map +1 -1
- package/dist/core/layout/geometry.d.ts +3 -38
- package/dist/core/layout/geometry.d.ts.map +1 -1
- package/dist/core/layout/geometry.js +2 -198
- package/dist/core/layout/geometry.js.map +1 -1
- package/dist/core/layout/geometry.part01.d.ts +38 -0
- package/dist/core/layout/geometry.part01.d.ts.map +1 -0
- package/dist/core/layout/geometry.part01.js +42 -0
- package/dist/core/layout/geometry.part01.js.map +1 -0
- package/dist/core/layout/geometry.part02.d.ts +5 -0
- package/dist/core/layout/geometry.part02.d.ts.map +1 -0
- package/dist/core/layout/geometry.part02.js +77 -0
- package/dist/core/layout/geometry.part02.js.map +1 -0
- package/dist/core/layout/geometry.part03.d.ts +8 -0
- package/dist/core/layout/geometry.part03.d.ts.map +1 -0
- package/dist/core/layout/geometry.part03.js +85 -0
- package/dist/core/layout/geometry.part03.js.map +1 -0
- package/dist/core/mode-lowering.d.ts +2 -47
- package/dist/core/mode-lowering.d.ts.map +1 -1
- package/dist/core/mode-lowering.js +1 -175
- package/dist/core/mode-lowering.js.map +1 -1
- package/dist/core/mode-lowering.part01.d.ts +51 -0
- package/dist/core/mode-lowering.part01.d.ts.map +1 -0
- package/dist/core/mode-lowering.part01.js +11 -0
- package/dist/core/mode-lowering.part01.js.map +1 -0
- package/dist/core/mode-lowering.part02.d.ts +11 -0
- package/dist/core/mode-lowering.part02.d.ts.map +1 -0
- package/dist/core/mode-lowering.part02.js +81 -0
- package/dist/core/mode-lowering.part02.js.map +1 -0
- package/dist/core/mode-lowering.part03.d.ts +12 -0
- package/dist/core/mode-lowering.part03.d.ts.map +1 -0
- package/dist/core/mode-lowering.part03.js +86 -0
- package/dist/core/mode-lowering.part03.js.map +1 -0
- package/dist/core/mode-lowering.part04.d.ts +5 -0
- package/dist/core/mode-lowering.part04.d.ts.map +1 -0
- package/dist/core/mode-lowering.part04.js +14 -0
- package/dist/core/mode-lowering.part04.js.map +1 -0
- package/dist/core/packed-bijou-cells-adapter.d.ts +3 -0
- package/dist/core/packed-bijou-cells-adapter.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-adapter.js +14 -0
- package/dist/core/packed-bijou-cells-adapter.js.map +1 -0
- package/dist/core/packed-bijou-cells-contract.d.ts +48 -0
- package/dist/core/packed-bijou-cells-contract.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-contract.js +38 -0
- package/dist/core/packed-bijou-cells-contract.js.map +1 -0
- package/dist/core/packed-bijou-cells-glyph-policy.d.ts +3 -0
- package/dist/core/packed-bijou-cells-glyph-policy.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-glyph-policy.js +45 -0
- package/dist/core/packed-bijou-cells-glyph-policy.js.map +1 -0
- package/dist/core/packed-bijou-cells-schema-record.d.ts +4 -0
- package/dist/core/packed-bijou-cells-schema-record.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-schema-record.js +84 -0
- package/dist/core/packed-bijou-cells-schema-record.js.map +1 -0
- package/dist/core/packed-bijou-cells-schema-values.d.ts +7 -0
- package/dist/core/packed-bijou-cells-schema-values.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-schema-values.js +66 -0
- package/dist/core/packed-bijou-cells-schema-values.js.map +1 -0
- package/dist/core/packed-bijou-cells-schema.d.ts +4 -0
- package/dist/core/packed-bijou-cells-schema.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-schema.js +3 -0
- package/dist/core/packed-bijou-cells-schema.js.map +1 -0
- package/dist/core/packed-bijou-cells-validate-bytes.d.ts +3 -0
- package/dist/core/packed-bijou-cells-validate-bytes.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-validate-bytes.js +22 -0
- package/dist/core/packed-bijou-cells-validate-bytes.js.map +1 -0
- package/dist/core/packed-bijou-cells-validate-cells.d.ts +4 -0
- package/dist/core/packed-bijou-cells-validate-cells.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-validate-cells.js +4 -0
- package/dist/core/packed-bijou-cells-validate-cells.js.map +1 -0
- package/dist/core/packed-bijou-cells-validate-colors.d.ts +2 -0
- package/dist/core/packed-bijou-cells-validate-colors.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-validate-colors.js +31 -0
- package/dist/core/packed-bijou-cells-validate-colors.js.map +1 -0
- package/dist/core/packed-bijou-cells-validate-focus.d.ts +4 -0
- package/dist/core/packed-bijou-cells-validate-focus.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-validate-focus.js +54 -0
- package/dist/core/packed-bijou-cells-validate-focus.js.map +1 -0
- package/dist/core/packed-bijou-cells-validate-glyphs.d.ts +3 -0
- package/dist/core/packed-bijou-cells-validate-glyphs.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-validate-glyphs.js +50 -0
- package/dist/core/packed-bijou-cells-validate-glyphs.js.map +1 -0
- package/dist/core/packed-bijou-cells-validate-metadata.d.ts +8 -0
- package/dist/core/packed-bijou-cells-validate-metadata.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-validate-metadata.js +12 -0
- package/dist/core/packed-bijou-cells-validate-metadata.js.map +1 -0
- package/dist/core/packed-bijou-cells-validate-scene.d.ts +3 -0
- package/dist/core/packed-bijou-cells-validate-scene.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-validate-scene.js +54 -0
- package/dist/core/packed-bijou-cells-validate-scene.js.map +1 -0
- package/dist/core/packed-bijou-cells-validate.d.ts +3 -0
- package/dist/core/packed-bijou-cells-validate.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells-validate.js +58 -0
- package/dist/core/packed-bijou-cells-validate.js.map +1 -0
- package/dist/core/packed-bijou-cells.d.ts +4 -0
- package/dist/core/packed-bijou-cells.d.ts.map +1 -0
- package/dist/core/packed-bijou-cells.js +4 -0
- package/dist/core/packed-bijou-cells.js.map +1 -0
- package/dist/core/profunctor-page-actions.d.ts +7 -0
- package/dist/core/profunctor-page-actions.d.ts.map +1 -0
- package/dist/core/profunctor-page-actions.js +41 -0
- package/dist/core/profunctor-page-actions.js.map +1 -0
- package/dist/core/profunctor-page-block-contract.d.ts +4 -0
- package/dist/core/profunctor-page-block-contract.d.ts.map +1 -0
- package/dist/core/profunctor-page-block-contract.js +65 -0
- package/dist/core/profunctor-page-block-contract.js.map +1 -0
- package/dist/core/profunctor-page-capabilities.d.ts +3 -0
- package/dist/core/profunctor-page-capabilities.d.ts.map +1 -0
- package/dist/core/profunctor-page-capabilities.js +31 -0
- package/dist/core/profunctor-page-capabilities.js.map +1 -0
- package/dist/core/profunctor-page-contract.d.ts +13 -0
- package/dist/core/profunctor-page-contract.d.ts.map +1 -0
- package/dist/core/profunctor-page-contract.js +99 -0
- package/dist/core/profunctor-page-contract.js.map +1 -0
- package/dist/core/profunctor-page-error.d.ts +9 -0
- package/dist/core/profunctor-page-error.d.ts.map +1 -0
- package/dist/core/profunctor-page-error.js +16 -0
- package/dist/core/profunctor-page-error.js.map +1 -0
- package/dist/core/profunctor-page-json-record.d.ts +77 -0
- package/dist/core/profunctor-page-json-record.d.ts.map +1 -0
- package/dist/core/profunctor-page-json-record.js +2 -0
- package/dist/core/profunctor-page-json-record.js.map +1 -0
- package/dist/core/profunctor-page-json.d.ts +14 -0
- package/dist/core/profunctor-page-json.d.ts.map +1 -0
- package/dist/core/profunctor-page-json.js +72 -0
- package/dist/core/profunctor-page-json.js.map +1 -0
- package/dist/core/profunctor-page-lines.d.ts +10 -0
- package/dist/core/profunctor-page-lines.d.ts.map +1 -0
- package/dist/core/profunctor-page-lines.js +77 -0
- package/dist/core/profunctor-page-lines.js.map +1 -0
- package/dist/core/profunctor-page-map.d.ts +7 -0
- package/dist/core/profunctor-page-map.d.ts.map +1 -0
- package/dist/core/profunctor-page-map.js +61 -0
- package/dist/core/profunctor-page-map.js.map +1 -0
- package/dist/core/profunctor-page-model.d.ts +87 -0
- package/dist/core/profunctor-page-model.d.ts.map +1 -0
- package/dist/core/profunctor-page-model.js +2 -0
- package/dist/core/profunctor-page-model.js.map +1 -0
- package/dist/core/profunctor-page-output.d.ts +18 -0
- package/dist/core/profunctor-page-output.d.ts.map +1 -0
- package/dist/core/profunctor-page-output.js +45 -0
- package/dist/core/profunctor-page-output.js.map +1 -0
- package/dist/core/profunctor-page-parse-page-structure.d.ts +6 -0
- package/dist/core/profunctor-page-parse-page-structure.d.ts.map +1 -0
- package/dist/core/profunctor-page-parse-page-structure.js +87 -0
- package/dist/core/profunctor-page-parse-page-structure.js.map +1 -0
- package/dist/core/profunctor-page-parse-page.d.ts +3 -0
- package/dist/core/profunctor-page-parse-page.d.ts.map +1 -0
- package/dist/core/profunctor-page-parse-page.js +50 -0
- package/dist/core/profunctor-page-parse-page.js.map +1 -0
- package/dist/core/profunctor-page-parse-support.d.ts +4 -0
- package/dist/core/profunctor-page-parse-support.d.ts.map +1 -0
- package/dist/core/profunctor-page-parse-support.js +67 -0
- package/dist/core/profunctor-page-parse-support.js.map +1 -0
- package/dist/core/profunctor-page-parse.d.ts +3 -0
- package/dist/core/profunctor-page-parse.d.ts.map +1 -0
- package/dist/core/profunctor-page-parse.js +16 -0
- package/dist/core/profunctor-page-parse.js.map +1 -0
- package/dist/core/profunctor-page-provenance.d.ts +9 -0
- package/dist/core/profunctor-page-provenance.d.ts.map +1 -0
- package/dist/core/profunctor-page-provenance.js +30 -0
- package/dist/core/profunctor-page-provenance.js.map +1 -0
- package/dist/core/profunctor-page-scene-bounds.d.ts +3 -0
- package/dist/core/profunctor-page-scene-bounds.d.ts.map +1 -0
- package/dist/core/profunctor-page-scene-bounds.js +42 -0
- package/dist/core/profunctor-page-scene-bounds.js.map +1 -0
- package/dist/core/profunctor-page-scene-nodes.d.ts +6 -0
- package/dist/core/profunctor-page-scene-nodes.d.ts.map +1 -0
- package/dist/core/profunctor-page-scene-nodes.js +49 -0
- package/dist/core/profunctor-page-scene-nodes.js.map +1 -0
- package/dist/core/profunctor-page-scene.d.ts +28 -0
- package/dist/core/profunctor-page-scene.d.ts.map +1 -0
- package/dist/core/profunctor-page-scene.js +77 -0
- package/dist/core/profunctor-page-scene.js.map +1 -0
- package/dist/core/profunctor-page-source-shape.d.ts +3 -0
- package/dist/core/profunctor-page-source-shape.d.ts.map +1 -0
- package/dist/core/profunctor-page-source-shape.js +89 -0
- package/dist/core/profunctor-page-source-shape.js.map +1 -0
- package/dist/core/profunctor-page-source-span.d.ts +3 -0
- package/dist/core/profunctor-page-source-span.d.ts.map +1 -0
- package/dist/core/profunctor-page-source-span.js +22 -0
- package/dist/core/profunctor-page-source-span.js.map +1 -0
- package/dist/core/profunctor-page-source-target-state.d.ts +3 -0
- package/dist/core/profunctor-page-source-target-state.d.ts.map +1 -0
- package/dist/core/profunctor-page-source-target-state.js +24 -0
- package/dist/core/profunctor-page-source-target-state.js.map +1 -0
- package/dist/core/profunctor-page-target-types.d.ts +93 -0
- package/dist/core/profunctor-page-target-types.d.ts.map +1 -0
- package/dist/core/profunctor-page-target-types.js +2 -0
- package/dist/core/profunctor-page-target-types.js.map +1 -0
- package/dist/core/profunctor-page-target.d.ts +8 -0
- package/dist/core/profunctor-page-target.d.ts.map +1 -0
- package/dist/core/profunctor-page-target.js +87 -0
- package/dist/core/profunctor-page-target.js.map +1 -0
- package/dist/core/profunctor-page-validate-dependencies.d.ts +3 -0
- package/dist/core/profunctor-page-validate-dependencies.d.ts.map +1 -0
- package/dist/core/profunctor-page-validate-dependencies.js +25 -0
- package/dist/core/profunctor-page-validate-dependencies.js.map +1 -0
- package/dist/core/profunctor-page-validate-family.d.ts +3 -0
- package/dist/core/profunctor-page-validate-family.d.ts.map +1 -0
- package/dist/core/profunctor-page-validate-family.js +95 -0
- package/dist/core/profunctor-page-validate-family.js.map +1 -0
- package/dist/core/profunctor-page-validate-graph.d.ts +3 -0
- package/dist/core/profunctor-page-validate-graph.d.ts.map +1 -0
- package/dist/core/profunctor-page-validate-graph.js +98 -0
- package/dist/core/profunctor-page-validate-graph.js.map +1 -0
- package/dist/core/render/differ-ansi.d.ts +3 -0
- package/dist/core/render/differ-ansi.d.ts.map +1 -0
- package/dist/core/render/differ-ansi.js +100 -0
- package/dist/core/render/differ-ansi.js.map +1 -0
- package/dist/core/render/differ-cell.d.ts +10 -0
- package/dist/core/render/differ-cell.d.ts.map +1 -0
- package/dist/core/render/differ-cell.js +81 -0
- package/dist/core/render/differ-cell.js.map +1 -0
- package/dist/core/render/differ-cells.d.ts +4 -0
- package/dist/core/render/differ-cells.d.ts.map +1 -0
- package/dist/core/render/differ-cells.js +72 -0
- package/dist/core/render/differ-cells.js.map +1 -0
- package/dist/core/render/differ-packed-bytes.d.ts +7 -0
- package/dist/core/render/differ-packed-bytes.d.ts.map +1 -0
- package/dist/core/render/differ-packed-bytes.js +111 -0
- package/dist/core/render/differ-packed-bytes.js.map +1 -0
- package/dist/core/render/differ-packed.d.ts +4 -0
- package/dist/core/render/differ-packed.d.ts.map +1 -0
- package/dist/core/render/differ-packed.js +98 -0
- package/dist/core/render/differ-packed.js.map +1 -0
- package/dist/core/render/differ-paint.d.ts +3 -0
- package/dist/core/render/differ-paint.d.ts.map +1 -0
- package/dist/core/render/differ-paint.js +9 -0
- package/dist/core/render/differ-paint.js.map +1 -0
- package/dist/core/render/differ-string.d.ts +6 -0
- package/dist/core/render/differ-string.d.ts.map +1 -0
- package/dist/core/render/differ-string.js +63 -0
- package/dist/core/render/differ-string.js.map +1 -0
- package/dist/core/render/differ.d.ts +9 -55
- package/dist/core/render/differ.d.ts.map +1 -1
- package/dist/core/render/differ.js +11 -826
- package/dist/core/render/differ.js.map +1 -1
- package/dist/core/render/packed-cell.d.ts +1 -1
- package/dist/core/render/packed-cell.d.ts.map +1 -1
- package/dist/core/render/packed-cell.js +1 -1
- package/dist/core/render/packed-cell.js.map +1 -1
- package/dist/core/render/packed-cell.part01.d.ts +1 -0
- package/dist/core/render/packed-cell.part01.d.ts.map +1 -1
- package/dist/core/render/packed-cell.part01.js +1 -0
- package/dist/core/render/packed-cell.part01.js.map +1 -1
- package/dist/core/sha256-text.d.ts +2 -0
- package/dist/core/sha256-text.d.ts.map +1 -0
- package/dist/core/sha256-text.js +97 -0
- package/dist/core/sha256-text.js.map +1 -0
- package/dist/core/stable-json.d.ts +3 -0
- package/dist/core/stable-json.d.ts.map +1 -0
- package/dist/core/stable-json.js +41 -0
- package/dist/core/stable-json.js.map +1 -0
- package/dist/core/standard-blocks/metadata-standard.d.ts +4 -27
- package/dist/core/standard-blocks/metadata-standard.d.ts.map +1 -1
- package/dist/core/standard-blocks/metadata-standard.js +4 -421
- package/dist/core/standard-blocks/metadata-standard.js.map +1 -1
- package/dist/core/standard-blocks/metadata-standard.part01.d.ts +22 -0
- package/dist/core/standard-blocks/metadata-standard.part01.d.ts.map +1 -0
- package/dist/core/standard-blocks/metadata-standard.part01.js +110 -0
- package/dist/core/standard-blocks/metadata-standard.part01.js.map +1 -0
- package/dist/core/standard-blocks/metadata-standard.part02.d.ts +10 -0
- package/dist/core/standard-blocks/metadata-standard.part02.d.ts.map +1 -0
- package/dist/core/standard-blocks/metadata-standard.part02.js +123 -0
- package/dist/core/standard-blocks/metadata-standard.part02.js.map +1 -0
- package/dist/core/standard-blocks/metadata-standard.part03.d.ts +10 -0
- package/dist/core/standard-blocks/metadata-standard.part03.d.ts.map +1 -0
- package/dist/core/standard-blocks/metadata-standard.part03.js +123 -0
- package/dist/core/standard-blocks/metadata-standard.part03.js.map +1 -0
- package/dist/core/standard-blocks/metadata-standard.part04.d.ts +8 -0
- package/dist/core/standard-blocks/metadata-standard.part04.d.ts.map +1 -0
- package/dist/core/standard-blocks/metadata-standard.part04.js +76 -0
- package/dist/core/standard-blocks/metadata-standard.part04.js.map +1 -0
- package/dist/core/standard-blocks/render.d.ts +2 -15
- package/dist/core/standard-blocks/render.d.ts.map +1 -1
- package/dist/core/standard-blocks/render.js +2 -340
- package/dist/core/standard-blocks/render.js.map +1 -1
- package/dist/core/standard-blocks/render.part01.d.ts +24 -0
- package/dist/core/standard-blocks/render.part01.d.ts.map +1 -0
- package/dist/core/standard-blocks/render.part01.js +99 -0
- package/dist/core/standard-blocks/render.part01.js.map +1 -0
- package/dist/core/standard-blocks/render.part02.d.ts +10 -0
- package/dist/core/standard-blocks/render.part02.d.ts.map +1 -0
- package/dist/core/standard-blocks/render.part02.js +108 -0
- package/dist/core/standard-blocks/render.part02.js.map +1 -0
- package/dist/core/standard-blocks/render.part03.d.ts +15 -0
- package/dist/core/standard-blocks/render.part03.d.ts.map +1 -0
- package/dist/core/standard-blocks/render.part03.js +96 -0
- package/dist/core/standard-blocks/render.part03.js.map +1 -0
- package/dist/core/standard-blocks/render.part04.d.ts +14 -0
- package/dist/core/standard-blocks/render.part04.d.ts.map +1 -0
- package/dist/core/standard-blocks/render.part04.js +50 -0
- package/dist/core/standard-blocks/render.part04.js.map +1 -0
- package/dist/core/standard-blocks/schema-helpers.d.ts +1 -1
- package/dist/core/text/grapheme-plain.d.ts +25 -0
- package/dist/core/text/grapheme-plain.d.ts.map +1 -0
- package/dist/core/text/grapheme-plain.js +20 -0
- package/dist/core/text/grapheme-plain.js.map +1 -0
- package/dist/core/text/grapheme.d.ts +7 -137
- package/dist/core/text/grapheme.d.ts.map +1 -1
- package/dist/core/text/grapheme.js +5 -297
- package/dist/core/text/grapheme.js.map +1 -1
- package/dist/core/text/grapheme.part01.d.ts +35 -0
- package/dist/core/text/grapheme.part01.d.ts.map +1 -0
- package/dist/core/text/grapheme.part01.js +102 -0
- package/dist/core/text/grapheme.part01.js.map +1 -0
- package/dist/core/text/grapheme.part02.d.ts +59 -0
- package/dist/core/text/grapheme.part02.d.ts.map +1 -0
- package/dist/core/text/grapheme.part02.js +88 -0
- package/dist/core/text/grapheme.part02.js.map +1 -0
- package/dist/core/text/grapheme.part03.d.ts +19 -0
- package/dist/core/text/grapheme.part03.d.ts.map +1 -0
- package/dist/core/text/grapheme.part03.js +72 -0
- package/dist/core/text/grapheme.part03.js.map +1 -0
- package/dist/core/text/grapheme.part04.d.ts +15 -0
- package/dist/core/text/grapheme.part04.d.ts.map +1 -0
- package/dist/core/text/grapheme.part04.js +28 -0
- package/dist/core/text/grapheme.part04.js.map +1 -0
- package/dist/core/text/wrap-tokens.d.ts +29 -0
- package/dist/core/text/wrap-tokens.d.ts.map +1 -0
- package/dist/core/text/wrap-tokens.js +96 -0
- package/dist/core/text/wrap-tokens.js.map +1 -0
- package/dist/core/text/wrap.d.ts +3 -17
- package/dist/core/text/wrap.d.ts.map +1 -1
- package/dist/core/text/wrap.js +4 -99
- package/dist/core/text/wrap.js.map +1 -1
- package/dist/core/theme/accessors.d.ts +1 -1
- package/dist/core/theme/accessors.d.ts.map +1 -1
- package/dist/core/theme/accessors.js +7 -1
- package/dist/core/theme/accessors.js.map +1 -1
- package/dist/core/theme/builder.d.ts +3 -90
- package/dist/core/theme/builder.d.ts.map +1 -1
- package/dist/core/theme/builder.js +2 -235
- package/dist/core/theme/builder.js.map +1 -1
- package/dist/core/theme/builder.part01.d.ts +92 -0
- package/dist/core/theme/builder.part01.d.ts.map +1 -0
- package/dist/core/theme/builder.part01.js +25 -0
- package/dist/core/theme/builder.part01.js.map +1 -0
- package/dist/core/theme/builder.part02.d.ts +16 -0
- package/dist/core/theme/builder.part02.d.ts.map +1 -0
- package/dist/core/theme/builder.part02.js +100 -0
- package/dist/core/theme/builder.part02.js.map +1 -0
- package/dist/core/theme/builder.part03.d.ts +5 -0
- package/dist/core/theme/builder.part03.d.ts.map +1 -0
- package/dist/core/theme/builder.part03.js +74 -0
- package/dist/core/theme/builder.part03.js.map +1 -0
- package/dist/core/theme/builder.part04.d.ts +3 -0
- package/dist/core/theme/builder.part04.d.ts.map +1 -0
- package/dist/core/theme/builder.part04.js +49 -0
- package/dist/core/theme/builder.part04.js.map +1 -0
- package/dist/core/theme/doctor.d.ts +4 -51
- package/dist/core/theme/doctor.d.ts.map +1 -1
- package/dist/core/theme/doctor.js +3 -223
- package/dist/core/theme/doctor.js.map +1 -1
- package/dist/core/theme/doctor.part01.d.ts +77 -0
- package/dist/core/theme/doctor.part01.d.ts.map +1 -0
- package/dist/core/theme/doctor.part01.js +20 -0
- package/dist/core/theme/doctor.part01.js.map +1 -0
- package/dist/core/theme/doctor.part02.d.ts +13 -0
- package/dist/core/theme/doctor.part02.d.ts.map +1 -0
- package/dist/core/theme/doctor.part02.js +100 -0
- package/dist/core/theme/doctor.part02.js.map +1 -0
- package/dist/core/theme/doctor.part03.d.ts +6 -0
- package/dist/core/theme/doctor.part03.d.ts.map +1 -0
- package/dist/core/theme/doctor.part03.js +68 -0
- package/dist/core/theme/doctor.part03.js.map +1 -0
- package/dist/core/theme/doctor.part04.d.ts +4 -0
- package/dist/core/theme/doctor.part04.d.ts.map +1 -0
- package/dist/core/theme/doctor.part04.js +48 -0
- package/dist/core/theme/doctor.part04.js.map +1 -0
- package/dist/core/theme/dtcg.d.ts +3 -47
- package/dist/core/theme/dtcg.d.ts.map +1 -1
- package/dist/core/theme/dtcg.js +2 -261
- package/dist/core/theme/dtcg.js.map +1 -1
- package/dist/core/theme/dtcg.part01.d.ts +25 -0
- package/dist/core/theme/dtcg.part01.d.ts.map +1 -0
- package/dist/core/theme/dtcg.part01.js +89 -0
- package/dist/core/theme/dtcg.part01.js.map +1 -0
- package/dist/core/theme/dtcg.part02.d.ts +15 -0
- package/dist/core/theme/dtcg.part02.d.ts.map +1 -0
- package/dist/core/theme/dtcg.part02.js +105 -0
- package/dist/core/theme/dtcg.part02.js.map +1 -0
- package/dist/core/theme/dtcg.part03.d.ts +33 -0
- package/dist/core/theme/dtcg.part03.d.ts.map +1 -0
- package/dist/core/theme/dtcg.part03.js +85 -0
- package/dist/core/theme/dtcg.part03.js.map +1 -0
- package/dist/core/theme/extend.d.ts +10 -1
- package/dist/core/theme/extend.d.ts.map +1 -1
- package/dist/core/theme/extend.js +10 -1
- package/dist/core/theme/extend.js.map +1 -1
- package/dist/core/theme/presets.d.ts +5 -38
- package/dist/core/theme/presets.d.ts.map +1 -1
- package/dist/core/theme/presets.js +5 -291
- package/dist/core/theme/presets.js.map +1 -1
- package/dist/core/theme/presets.part01.d.ts +27 -0
- package/dist/core/theme/presets.part01.d.ts.map +1 -0
- package/dist/core/theme/presets.part01.js +105 -0
- package/dist/core/theme/presets.part01.js.map +1 -0
- package/dist/core/theme/presets.part02.d.ts +9 -0
- package/dist/core/theme/presets.part02.d.ts.map +1 -0
- package/dist/core/theme/presets.part02.js +66 -0
- package/dist/core/theme/presets.part02.js.map +1 -0
- package/dist/core/theme/presets.part03.d.ts +4 -0
- package/dist/core/theme/presets.part03.d.ts.map +1 -0
- package/dist/core/theme/presets.part03.js +125 -0
- package/dist/core/theme/presets.part03.js.map +1 -0
- package/dist/core/theme/resolve-rgb.d.ts +4 -0
- package/dist/core/theme/resolve-rgb.d.ts.map +1 -0
- package/dist/core/theme/resolve-rgb.js +21 -0
- package/dist/core/theme/resolve-rgb.js.map +1 -0
- package/dist/core/theme/resolve-types.d.ts +64 -0
- package/dist/core/theme/resolve-types.d.ts.map +1 -0
- package/dist/core/theme/resolve-types.js +2 -0
- package/dist/core/theme/resolve-types.js.map +1 -0
- package/dist/core/theme/resolve.d.ts +3 -61
- package/dist/core/theme/resolve.d.ts.map +1 -1
- package/dist/core/theme/resolve.js +8 -22
- package/dist/core/theme/resolve.js.map +1 -1
- package/dist/core/ui-scene-canonical.d.ts +6 -0
- package/dist/core/ui-scene-canonical.d.ts.map +1 -0
- package/dist/core/ui-scene-canonical.js +37 -0
- package/dist/core/ui-scene-canonical.js.map +1 -0
- package/dist/core/ui-scene-contract.d.ts +100 -0
- package/dist/core/ui-scene-contract.d.ts.map +1 -0
- package/dist/core/ui-scene-contract.js +3 -0
- package/dist/core/ui-scene-contract.js.map +1 -0
- package/dist/core/ui-scene-ir.d.ts +11 -194
- package/dist/core/ui-scene-ir.d.ts.map +1 -1
- package/dist/core/ui-scene-ir.js +6 -569
- package/dist/core/ui-scene-ir.js.map +1 -1
- package/dist/core/ui-scene-lowering-utils.d.ts +21 -0
- package/dist/core/ui-scene-lowering-utils.d.ts.map +1 -0
- package/dist/core/ui-scene-lowering-utils.js +99 -0
- package/dist/core/ui-scene-lowering-utils.js.map +1 -0
- package/dist/core/ui-scene-lowering.d.ts +31 -0
- package/dist/core/ui-scene-lowering.d.ts.map +1 -0
- package/dist/core/ui-scene-lowering.js +49 -0
- package/dist/core/ui-scene-lowering.js.map +1 -0
- package/dist/core/ui-scene-receipt.d.ts +29 -0
- package/dist/core/ui-scene-receipt.d.ts.map +1 -0
- package/dist/core/ui-scene-receipt.js +37 -0
- package/dist/core/ui-scene-receipt.js.map +1 -0
- package/dist/core/ui-scene-target-profile.d.ts +35 -0
- package/dist/core/ui-scene-target-profile.d.ts.map +1 -0
- package/dist/core/ui-scene-target-profile.js +38 -0
- package/dist/core/ui-scene-target-profile.js.map +1 -0
- package/dist/core/ui-scene-terminal-proof.d.ts +10 -0
- package/dist/core/ui-scene-terminal-proof.d.ts.map +1 -0
- package/dist/core/ui-scene-terminal-proof.js +26 -0
- package/dist/core/ui-scene-terminal-proof.js.map +1 -0
- package/dist/core/ui-scene-validation.d.ts +3 -0
- package/dist/core/ui-scene-validation.d.ts.map +1 -0
- package/dist/core/ui-scene-validation.js +88 -0
- package/dist/core/ui-scene-validation.js.map +1 -0
- package/dist/core/visor-artifact-bundle.d.ts +4 -0
- package/dist/core/visor-artifact-bundle.d.ts.map +1 -0
- package/dist/core/visor-artifact-bundle.js +3 -0
- package/dist/core/visor-artifact-bundle.js.map +1 -0
- package/dist/core/visor-artifact-bundle.part01.d.ts +115 -0
- package/dist/core/visor-artifact-bundle.part01.d.ts.map +1 -0
- package/dist/core/visor-artifact-bundle.part01.js +4 -0
- package/dist/core/visor-artifact-bundle.part01.js.map +1 -0
- package/dist/core/visor-artifact-bundle.part02.d.ts +4 -0
- package/dist/core/visor-artifact-bundle.part02.d.ts.map +1 -0
- package/dist/core/visor-artifact-bundle.part02.js +89 -0
- package/dist/core/visor-artifact-bundle.part02.js.map +1 -0
- package/dist/core/visor-artifact-bundle.part03.d.ts +16 -0
- package/dist/core/visor-artifact-bundle.part03.d.ts.map +1 -0
- package/dist/core/visor-artifact-bundle.part03.js +76 -0
- package/dist/core/visor-artifact-bundle.part03.js.map +1 -0
- package/dist/core/visor-artifact-bundle.part04.d.ts +18 -0
- package/dist/core/visor-artifact-bundle.part04.d.ts.map +1 -0
- package/dist/core/visor-artifact-bundle.part04.js +90 -0
- package/dist/core/visor-artifact-bundle.part04.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.part02.d.ts +2 -0
- package/dist/index.part02.d.ts.map +1 -1
- package/dist/index.part02.js +2 -0
- package/dist/index.part02.js.map +1 -1
- package/dist/index.part11.d.ts +2 -0
- package/dist/index.part11.d.ts.map +1 -0
- package/dist/index.part11.js +2 -0
- package/dist/index.part11.js.map +1 -0
- package/dist/ports/surface-cell.d.ts +36 -0
- package/dist/ports/surface-cell.d.ts.map +1 -0
- package/dist/ports/surface-cell.js +42 -0
- package/dist/ports/surface-cell.js.map +1 -0
- package/dist/ports/surface-contract.d.ts +53 -0
- package/dist/ports/surface-contract.d.ts.map +1 -0
- package/dist/ports/surface-contract.js +5 -0
- package/dist/ports/surface-contract.js.map +1 -0
- package/dist/ports/surface-create.d.ts +4 -0
- package/dist/ports/surface-create.d.ts.map +1 -0
- package/dist/ports/surface-create.js +48 -0
- package/dist/ports/surface-create.js.map +1 -0
- package/dist/ports/surface-layout.d.ts +29 -0
- package/dist/ports/surface-layout.d.ts.map +1 -0
- package/dist/ports/surface-layout.js +2 -0
- package/dist/ports/surface-layout.js.map +1 -0
- package/dist/ports/surface-packed-codec.d.ts +6 -0
- package/dist/ports/surface-packed-codec.d.ts.map +1 -0
- package/dist/ports/surface-packed-codec.js +86 -0
- package/dist/ports/surface-packed-codec.js.map +1 -0
- package/dist/ports/surface-packed-color.d.ts +7 -0
- package/dist/ports/surface-packed-color.d.ts.map +1 -0
- package/dist/ports/surface-packed-color.js +53 -0
- package/dist/ports/surface-packed-color.js.map +1 -0
- package/dist/ports/surface-packed-compose.d.ts +7 -0
- package/dist/ports/surface-packed-compose.d.ts.map +1 -0
- package/dist/ports/surface-packed-compose.js +66 -0
- package/dist/ports/surface-packed-compose.js.map +1 -0
- package/dist/ports/surface-packed-read.d.ts +9 -0
- package/dist/ports/surface-packed-read.d.ts.map +1 -0
- package/dist/ports/surface-packed-read.js +77 -0
- package/dist/ports/surface-packed-read.js.map +1 -0
- package/dist/ports/surface-packed-state.d.ts +19 -0
- package/dist/ports/surface-packed-state.d.ts.map +1 -0
- package/dist/ports/surface-packed-state.js +60 -0
- package/dist/ports/surface-packed-state.js.map +1 -0
- package/dist/ports/surface-packed-write.d.ts +7 -0
- package/dist/ports/surface-packed-write.d.ts.map +1 -0
- package/dist/ports/surface-packed-write.js +73 -0
- package/dist/ports/surface-packed-write.js.map +1 -0
- package/dist/ports/surface-transform.d.ts +19 -0
- package/dist/ports/surface-transform.d.ts.map +1 -0
- package/dist/ports/surface-transform.js +19 -0
- package/dist/ports/surface-transform.js.map +1 -0
- package/dist/ports/surface.d.ts +7 -234
- package/dist/ports/surface.d.ts.map +1 -1
- package/dist/ports/surface.js +4 -514
- package/dist/ports/surface.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,298 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
// ---------------------------------------------------------------------------
|
|
8
|
-
// Segmenter (lazy singleton)
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
10
|
-
/** Cached singleton `Intl.Segmenter` instance for grapheme-level segmentation. */
|
|
11
|
-
let _segmenter;
|
|
12
|
-
/**
|
|
13
|
-
* Return the lazily-initialized grapheme segmenter singleton.
|
|
14
|
-
*
|
|
15
|
-
* @returns The shared `Intl.Segmenter` configured for English grapheme granularity.
|
|
16
|
-
*/
|
|
17
|
-
function segmenter() {
|
|
18
|
-
_segmenter ??= new Intl.Segmenter('en', { granularity: 'grapheme' });
|
|
19
|
-
return _segmenter;
|
|
20
|
-
}
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
// Wide character detection
|
|
23
|
-
// ---------------------------------------------------------------------------
|
|
24
|
-
/**
|
|
25
|
-
* Determine whether a Unicode code point occupies two terminal columns.
|
|
26
|
-
*
|
|
27
|
-
* Covers:
|
|
28
|
-
* - CJK Unified Ideographs (U+4E00–U+9FFF)
|
|
29
|
-
* - CJK Extension A (U+3400–U+4DBF)
|
|
30
|
-
* - CJK Extension B–I (U+20000–U+3FFFF)
|
|
31
|
-
* - CJK Compatibility Ideographs (U+F900–U+FAFF)
|
|
32
|
-
* - Fullwidth Forms (U+FF01–U+FF60, U+FFE0–U+FFE6)
|
|
33
|
-
* - CJK Radicals / Kangxi (U+2E80–U+2FDF)
|
|
34
|
-
* - CJK Symbols and Punctuation (U+3000–U+303F)
|
|
35
|
-
* - Enclosed CJK Letters (U+3200–U+33FF)
|
|
36
|
-
* - CJK Compatibility (U+FE30–U+FE4F)
|
|
37
|
-
* - Hangul Syllables (U+AC00–U+D7A3)
|
|
38
|
-
* - Emoji (most U+1F000+)
|
|
39
|
-
*
|
|
40
|
-
* @param cp - Unicode code point to test.
|
|
41
|
-
* @returns `true` if the code point renders as two columns wide.
|
|
42
|
-
*/
|
|
43
|
-
export function isWideChar(cp) {
|
|
44
|
-
// Fullwidth Forms
|
|
45
|
-
if (cp >= 0xFF01 && cp <= 0xFF60)
|
|
46
|
-
return true;
|
|
47
|
-
if (cp >= 0xFFE0 && cp <= 0xFFE6)
|
|
48
|
-
return true;
|
|
49
|
-
// CJK Radicals, Kangxi Radicals
|
|
50
|
-
if (cp >= 0x2E80 && cp <= 0x2FDF)
|
|
51
|
-
return true;
|
|
52
|
-
// CJK Symbols and Punctuation, Hiragana, Katakana
|
|
53
|
-
if (cp >= 0x3000 && cp <= 0x33FF)
|
|
54
|
-
return true;
|
|
55
|
-
// CJK Extension A
|
|
56
|
-
if (cp >= 0x3400 && cp <= 0x4DBF)
|
|
57
|
-
return true;
|
|
58
|
-
// CJK Unified Ideographs
|
|
59
|
-
if (cp >= 0x4E00 && cp <= 0x9FFF)
|
|
60
|
-
return true;
|
|
61
|
-
// Hangul Syllables (U+AC00–U+D7A3; excludes Jamo Extended-B which are narrow)
|
|
62
|
-
if (cp >= 0xAC00 && cp <= 0xD7A3)
|
|
63
|
-
return true;
|
|
64
|
-
// CJK Compatibility Ideographs
|
|
65
|
-
if (cp >= 0xF900 && cp <= 0xFAFF)
|
|
66
|
-
return true;
|
|
67
|
-
// CJK Compatibility Forms
|
|
68
|
-
if (cp >= 0xFE30 && cp <= 0xFE4F)
|
|
69
|
-
return true;
|
|
70
|
-
// CJK Extension B–I and beyond
|
|
71
|
-
if (cp >= 0x20000 && cp <= 0x3FFFF)
|
|
72
|
-
return true;
|
|
73
|
-
// Emoji blocks (most render as 2 columns)
|
|
74
|
-
// Miscellaneous Symbols and Pictographs
|
|
75
|
-
if (cp >= 0x1F300 && cp <= 0x1F9FF)
|
|
76
|
-
return true;
|
|
77
|
-
// Supplemental Symbols and Pictographs
|
|
78
|
-
if (cp >= 0x1FA00 && cp <= 0x1FA6F)
|
|
79
|
-
return true;
|
|
80
|
-
// Symbols and Pictographs Extended-A
|
|
81
|
-
if (cp >= 0x1FA70 && cp <= 0x1FAFF)
|
|
82
|
-
return true;
|
|
83
|
-
// Emoticons
|
|
84
|
-
if (cp >= 0x1F600 && cp <= 0x1F64F)
|
|
85
|
-
return true;
|
|
86
|
-
// Transport and Map Symbols
|
|
87
|
-
if (cp >= 0x1F680 && cp <= 0x1F6FF)
|
|
88
|
-
return true;
|
|
89
|
-
// Dingbats (U+2702–U+27B0) are NOT uniformly wide per Unicode
|
|
90
|
-
// East Asian Width. Most are Narrow text characters (✓ ✗ ✌).
|
|
91
|
-
// They only become wide with emoji presentation (U+FE0F), which
|
|
92
|
-
// is handled by graphemeClusterWidth checking for the variation
|
|
93
|
-
// selector in the grapheme cluster.
|
|
94
|
-
// Regional indicators (flags)
|
|
95
|
-
if (cp >= 0x1F1E0 && cp <= 0x1F1FF)
|
|
96
|
-
return true;
|
|
97
|
-
// Playing Cards, Mahjong Tiles
|
|
98
|
-
if (cp >= 0x1F000 && cp <= 0x1F02F)
|
|
99
|
-
return true;
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
// ---------------------------------------------------------------------------
|
|
103
|
-
// Grapheme segmentation
|
|
104
|
-
// ---------------------------------------------------------------------------
|
|
105
|
-
/**
|
|
106
|
-
* Split a string into an array of grapheme clusters.
|
|
107
|
-
*
|
|
108
|
-
* Each element is a single user-perceived character (handles combining
|
|
109
|
-
* marks, ZWJ sequences, flag pairs, skin tones, etc.).
|
|
110
|
-
*
|
|
111
|
-
* @param str - Input string to segment.
|
|
112
|
-
* @returns Array of grapheme cluster strings.
|
|
113
|
-
*/
|
|
114
|
-
export function segmentGraphemes(str) {
|
|
115
|
-
const segments = segmenter().segment(str);
|
|
116
|
-
const result = [];
|
|
117
|
-
for (const { segment } of segments) {
|
|
118
|
-
result.push(segment);
|
|
119
|
-
}
|
|
120
|
-
return result;
|
|
121
|
-
}
|
|
122
|
-
// ---------------------------------------------------------------------------
|
|
123
|
-
// ANSI stripping
|
|
124
|
-
// ---------------------------------------------------------------------------
|
|
125
|
-
/**
|
|
126
|
-
* Pattern matching ANSI SGR escape sequences (e.g. `\x1b[31m`).
|
|
127
|
-
*
|
|
128
|
-
* Exported for reuse by text utilities that need to strip terminal
|
|
129
|
-
* style escapes before measuring or clipping visible content.
|
|
130
|
-
*/
|
|
131
|
-
// eslint-disable-next-line no-control-regex
|
|
132
|
-
export const ANSI_SGR_RE = /\x1b\[[0-9;]*m/;
|
|
133
|
-
/**
|
|
134
|
-
* Pattern matching OSC 8 hyperlink control sequences.
|
|
135
|
-
*
|
|
136
|
-
* This strips the invisible open/close control segments while preserving the
|
|
137
|
-
* visible linked text between them.
|
|
138
|
-
*/
|
|
139
|
-
// eslint-disable-next-line no-control-regex
|
|
140
|
-
export const ANSI_OSC8_RE = /\x1b]8;;[^\x1b\x07]*(?:\x1b\\|\x07)/g;
|
|
141
|
-
/**
|
|
142
|
-
* Pattern matching broad ANSI control sequences (CSI, OSC, DCS, APC, etc.).
|
|
143
|
-
*
|
|
144
|
-
* Used for sanitizing untrusted terminal text at string-entry boundaries.
|
|
145
|
-
* SGR and OSC 8 sequences can be temporarily preserved by higher-level helpers
|
|
146
|
-
* when a caller intentionally opts into styled parsing.
|
|
147
|
-
*/
|
|
148
|
-
// eslint-disable-next-line no-control-regex
|
|
149
|
-
export const ANSI_CONTROL_SEQUENCE_RE = /\x1b(?:\[[0-?]*[ -/]*[@-~]|\][^\x1b\x07]*(?:\x1b\\|\x07)|[PX^_][\s\S]*?(?:\x1b\\|\x07)|[@-_])/g;
|
|
150
|
-
/**
|
|
151
|
-
* Strip all ANSI SGR escape sequences from a string.
|
|
152
|
-
*
|
|
153
|
-
* @param str - Input string potentially containing ANSI codes.
|
|
154
|
-
* @returns The string with all ANSI SGR sequences removed.
|
|
155
|
-
*/
|
|
156
|
-
export function stripAnsi(str) {
|
|
157
|
-
return str
|
|
158
|
-
.replace(ANSI_OSC8_RE, '')
|
|
159
|
-
.replace(new RegExp(ANSI_SGR_RE, 'g'), '');
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Sanitize raw terminal text before it crosses into the surface model.
|
|
163
|
-
*
|
|
164
|
-
* Removes destructive ANSI/control sequences and normalizes tabs/newlines so
|
|
165
|
-
* untrusted content cannot inject cursor movement or clear-screen behavior when
|
|
166
|
-
* later rendered back out through {@link surfaceToString} or the diff writer.
|
|
167
|
-
*
|
|
168
|
-
* By default this removes all ANSI sequences. Callers that intentionally parse
|
|
169
|
-
* styled content can preserve SGR and/or OSC 8 sequences with the option flags.
|
|
170
|
-
*/
|
|
171
|
-
export function sanitizeTerminalText(str, options = {}) {
|
|
172
|
-
const allowAnsiStyling = options.allowAnsiStyling ?? false;
|
|
173
|
-
const allowHyperlinks = options.allowHyperlinks ?? false;
|
|
174
|
-
const tabWidth = Math.max(1, Math.floor(options.tabWidth ?? 2));
|
|
175
|
-
const placeholders = [];
|
|
176
|
-
let text = str
|
|
177
|
-
.replace(/\r\n?/g, '\n')
|
|
178
|
-
.replace(/\t/g, ' '.repeat(tabWidth));
|
|
179
|
-
if (allowHyperlinks) {
|
|
180
|
-
text = stashTerminalSequences(text, ANSI_OSC8_RE, placeholders);
|
|
181
|
-
}
|
|
182
|
-
if (allowAnsiStyling) {
|
|
183
|
-
text = stashTerminalSequences(text, new RegExp(ANSI_SGR_RE, 'g'), placeholders);
|
|
184
|
-
}
|
|
185
|
-
text = stripUnsafeControlChars(text.replace(ANSI_CONTROL_SEQUENCE_RE, ''));
|
|
186
|
-
return restoreTerminalSequences(text, placeholders);
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Default boundary for untrusted plain text that will become cells or inline
|
|
190
|
-
* terminal payloads.
|
|
191
|
-
*
|
|
192
|
-
* This strips destructive control sequences, normalizes tabs, and flattens
|
|
193
|
-
* multiline input unless the caller explicitly opts into preserving newlines.
|
|
194
|
-
* Callers that intentionally preserve styling should use
|
|
195
|
-
* {@link sanitizeTerminalText} with allow flags or route through
|
|
196
|
-
* `parseAnsiToSurface()`.
|
|
197
|
-
*/
|
|
198
|
-
export function sanitizePlainTerminalText(str, options = {}) {
|
|
199
|
-
const preserveNewlines = options.preserveNewlines ?? false;
|
|
200
|
-
const newlineReplacement = options.newlineReplacement ?? ' ';
|
|
201
|
-
const text = sanitizeTerminalText(str, { tabWidth: options.tabWidth });
|
|
202
|
-
if (preserveNewlines)
|
|
203
|
-
return text;
|
|
204
|
-
return text.replace(/\n+/g, newlineReplacement);
|
|
205
|
-
}
|
|
206
|
-
function stashTerminalSequences(text, pattern, placeholders) {
|
|
207
|
-
return text.replace(pattern, (match) => {
|
|
208
|
-
const index = placeholders.push(match) - 1;
|
|
209
|
-
return `\uE000${String(index)}\uE001`;
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
function restoreTerminalSequences(text, placeholders) {
|
|
213
|
-
return text.replace(/\uE000(\d+)\uE001/g, (_match, rawIndex) => {
|
|
214
|
-
const index = Number.parseInt(rawIndex, 10);
|
|
215
|
-
return placeholders[index] ?? '';
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
function stripUnsafeControlChars(text) {
|
|
219
|
-
let result = '';
|
|
220
|
-
for (const ch of text) {
|
|
221
|
-
const cp = ch.codePointAt(0);
|
|
222
|
-
if (cp === undefined)
|
|
223
|
-
continue;
|
|
224
|
-
if ((cp >= 0 && cp <= 8) || (cp >= 11 && cp <= 31) || cp === 127)
|
|
225
|
-
continue;
|
|
226
|
-
result += ch;
|
|
227
|
-
}
|
|
228
|
-
return result;
|
|
229
|
-
}
|
|
230
|
-
// ---------------------------------------------------------------------------
|
|
231
|
-
// Display width
|
|
232
|
-
// ---------------------------------------------------------------------------
|
|
233
|
-
/**
|
|
234
|
-
* Compute the terminal display width of a single grapheme cluster.
|
|
235
|
-
*
|
|
236
|
-
* The width is determined by the widest code point in the cluster:
|
|
237
|
-
* - East Asian Wide / Fullwidth characters → 2
|
|
238
|
-
* - Emoji (U+1F300+) → 2
|
|
239
|
-
* - Everything else (ASCII, Latin, combining marks, etc.) → 1
|
|
240
|
-
*
|
|
241
|
-
* Zero-width characters (combining marks, ZWJ, variation selectors)
|
|
242
|
-
* don't add width on their own — they're part of the cluster.
|
|
243
|
-
*
|
|
244
|
-
* @param grapheme - A single grapheme cluster string.
|
|
245
|
-
* @returns Display width: 1 for narrow characters, 2 for wide/emoji.
|
|
246
|
-
*/
|
|
247
|
-
export function graphemeClusterWidth(grapheme) {
|
|
248
|
-
let maxWidth = 1;
|
|
249
|
-
let hasEmojiPresentation = false;
|
|
250
|
-
for (const ch of grapheme) {
|
|
251
|
-
const cp = ch.codePointAt(0);
|
|
252
|
-
if (cp === undefined)
|
|
253
|
-
continue;
|
|
254
|
-
// Detect emoji presentation selector (U+FE0F) — forces base char to 2-wide
|
|
255
|
-
if (cp === 0xFE0F) {
|
|
256
|
-
hasEmojiPresentation = true;
|
|
257
|
-
continue;
|
|
258
|
-
}
|
|
259
|
-
// Skip zero-width joiners and other variation selectors
|
|
260
|
-
if (cp === 0x200D || (cp >= 0xFE00 && cp <= 0xFE0E) || (cp >= 0xE0100 && cp <= 0xE01EF)) {
|
|
261
|
-
continue;
|
|
262
|
-
}
|
|
263
|
-
if (isWideChar(cp)) {
|
|
264
|
-
maxWidth = 2;
|
|
265
|
-
break; // Can't be wider than 2
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
// Emoji presentation (U+FE0F) makes any base character 2-wide.
|
|
269
|
-
// This handles Dingbats (✂️ ✈️) and other text chars presented as emoji.
|
|
270
|
-
if (hasEmojiPresentation && maxWidth < 2)
|
|
271
|
-
maxWidth = 2;
|
|
272
|
-
return maxWidth;
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Compute the terminal display width of a string.
|
|
276
|
-
*
|
|
277
|
-
* Strip ANSI escape sequences, segment into grapheme clusters,
|
|
278
|
-
* and sum display widths. Correctly handles:
|
|
279
|
-
* - Multi-codepoint emoji (flags, ZWJ families, skin tones)
|
|
280
|
-
* - East Asian Wide characters (CJK, fullwidth forms)
|
|
281
|
-
* - Combining marks (accented characters)
|
|
282
|
-
* - ANSI escape sequences (ignored)
|
|
283
|
-
*
|
|
284
|
-
* @param str - Input string, may contain ANSI escape sequences.
|
|
285
|
-
* @returns Total display width in terminal columns.
|
|
286
|
-
*/
|
|
287
|
-
export function graphemeWidth(str) {
|
|
288
|
-
// Strip ANSI escapes first
|
|
289
|
-
const clean = stripAnsi(str);
|
|
290
|
-
if (clean.length === 0)
|
|
291
|
-
return 0;
|
|
292
|
-
let width = 0;
|
|
293
|
-
for (const { segment } of segmenter().segment(clean)) {
|
|
294
|
-
width += graphemeClusterWidth(segment);
|
|
295
|
-
}
|
|
296
|
-
return width;
|
|
297
|
-
}
|
|
1
|
+
export { isWideChar } from './grapheme.part01.js';
|
|
2
|
+
export { segmentGraphemes, ANSI_SGR_RE, ANSI_OSC8_RE, ANSI_CONTROL_SEQUENCE_RE, stripAnsi, sanitizeTerminalText, } from './grapheme.part02.js';
|
|
3
|
+
export { sanitizePlainTerminalText } from './grapheme-plain.js';
|
|
4
|
+
export { graphemeClusterWidth } from './grapheme.part03.js';
|
|
5
|
+
export { graphemeWidth } from './grapheme.part04.js';
|
|
298
6
|
//# sourceMappingURL=grapheme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grapheme.js","sourceRoot":"","sources":["../../../src/core/text/grapheme.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"grapheme.js","sourceRoot":"","sources":["../../../src/core/text/grapheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,SAAS,EACT,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grapheme cluster utilities for correct Unicode text measurement.
|
|
3
|
+
*
|
|
4
|
+
* Uses `Intl.Segmenter` for proper grapheme cluster iteration and a compact
|
|
5
|
+
* lookup for East Asian Wide / emoji display widths.
|
|
6
|
+
*/
|
|
7
|
+
/** Cached singleton `Intl.Segmenter` instance for grapheme-level segmentation. */
|
|
8
|
+
export declare let _segmenter: Intl.Segmenter | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Return the lazily-initialized grapheme segmenter singleton.
|
|
11
|
+
*
|
|
12
|
+
* @returns The shared `Intl.Segmenter` configured for English grapheme granularity.
|
|
13
|
+
*/
|
|
14
|
+
export declare function segmenter(): Intl.Segmenter;
|
|
15
|
+
/**
|
|
16
|
+
* Determine whether a Unicode code point occupies two terminal columns.
|
|
17
|
+
*
|
|
18
|
+
* Covers:
|
|
19
|
+
* - CJK Unified Ideographs (U+4E00–U+9FFF)
|
|
20
|
+
* - CJK Extension A (U+3400–U+4DBF)
|
|
21
|
+
* - CJK Extension B–I (U+20000–U+3FFFF)
|
|
22
|
+
* - CJK Compatibility Ideographs (U+F900–U+FAFF)
|
|
23
|
+
* - Fullwidth Forms (U+FF01–U+FF60, U+FFE0–U+FFE6)
|
|
24
|
+
* - CJK Radicals / Kangxi (U+2E80–U+2FDF)
|
|
25
|
+
* - CJK Symbols and Punctuation (U+3000–U+303F)
|
|
26
|
+
* - Enclosed CJK Letters (U+3200–U+33FF)
|
|
27
|
+
* - CJK Compatibility (U+FE30–U+FE4F)
|
|
28
|
+
* - Hangul Syllables (U+AC00–U+D7A3)
|
|
29
|
+
* - Emoji (most U+1F000+)
|
|
30
|
+
*
|
|
31
|
+
* @param cp - Unicode code point to test.
|
|
32
|
+
* @returns `true` if the code point renders as two columns wide.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isWideChar(cp: number): boolean;
|
|
35
|
+
//# sourceMappingURL=grapheme.part01.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grapheme.part01.d.ts","sourceRoot":"","sources":["../../../src/core/text/grapheme.part01.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,kFAAkF;AAClF,eAAO,IAAI,UAAU,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAClD;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAAC,SAAS,CAG1C;AAKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAmD9C"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grapheme cluster utilities for correct Unicode text measurement.
|
|
3
|
+
*
|
|
4
|
+
* Uses `Intl.Segmenter` for proper grapheme cluster iteration and a compact
|
|
5
|
+
* lookup for East Asian Wide / emoji display widths.
|
|
6
|
+
*/
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Segmenter (lazy singleton)
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
/** Cached singleton `Intl.Segmenter` instance for grapheme-level segmentation. */
|
|
11
|
+
export let _segmenter;
|
|
12
|
+
/**
|
|
13
|
+
* Return the lazily-initialized grapheme segmenter singleton.
|
|
14
|
+
*
|
|
15
|
+
* @returns The shared `Intl.Segmenter` configured for English grapheme granularity.
|
|
16
|
+
*/
|
|
17
|
+
export function segmenter() {
|
|
18
|
+
_segmenter ??= new Intl.Segmenter('en', { granularity: 'grapheme' });
|
|
19
|
+
return _segmenter;
|
|
20
|
+
}
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Wide character detection
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
/**
|
|
25
|
+
* Determine whether a Unicode code point occupies two terminal columns.
|
|
26
|
+
*
|
|
27
|
+
* Covers:
|
|
28
|
+
* - CJK Unified Ideographs (U+4E00–U+9FFF)
|
|
29
|
+
* - CJK Extension A (U+3400–U+4DBF)
|
|
30
|
+
* - CJK Extension B–I (U+20000–U+3FFFF)
|
|
31
|
+
* - CJK Compatibility Ideographs (U+F900–U+FAFF)
|
|
32
|
+
* - Fullwidth Forms (U+FF01–U+FF60, U+FFE0–U+FFE6)
|
|
33
|
+
* - CJK Radicals / Kangxi (U+2E80–U+2FDF)
|
|
34
|
+
* - CJK Symbols and Punctuation (U+3000–U+303F)
|
|
35
|
+
* - Enclosed CJK Letters (U+3200–U+33FF)
|
|
36
|
+
* - CJK Compatibility (U+FE30–U+FE4F)
|
|
37
|
+
* - Hangul Syllables (U+AC00–U+D7A3)
|
|
38
|
+
* - Emoji (most U+1F000+)
|
|
39
|
+
*
|
|
40
|
+
* @param cp - Unicode code point to test.
|
|
41
|
+
* @returns `true` if the code point renders as two columns wide.
|
|
42
|
+
*/
|
|
43
|
+
export function isWideChar(cp) {
|
|
44
|
+
// Fullwidth Forms
|
|
45
|
+
if (cp >= 0xff01 && cp <= 0xff60)
|
|
46
|
+
return true;
|
|
47
|
+
if (cp >= 0xffe0 && cp <= 0xffe6)
|
|
48
|
+
return true;
|
|
49
|
+
// CJK Radicals, Kangxi Radicals
|
|
50
|
+
if (cp >= 0x2e80 && cp <= 0x2fdf)
|
|
51
|
+
return true;
|
|
52
|
+
// CJK Symbols and Punctuation, Hiragana, Katakana
|
|
53
|
+
if (cp >= 0x3000 && cp <= 0x33ff)
|
|
54
|
+
return true;
|
|
55
|
+
// CJK Extension A
|
|
56
|
+
if (cp >= 0x3400 && cp <= 0x4dbf)
|
|
57
|
+
return true;
|
|
58
|
+
// CJK Unified Ideographs
|
|
59
|
+
if (cp >= 0x4e00 && cp <= 0x9fff)
|
|
60
|
+
return true;
|
|
61
|
+
// Hangul Syllables (U+AC00–U+D7A3; excludes Jamo Extended-B which are narrow)
|
|
62
|
+
if (cp >= 0xac00 && cp <= 0xd7a3)
|
|
63
|
+
return true;
|
|
64
|
+
// CJK Compatibility Ideographs
|
|
65
|
+
if (cp >= 0xf900 && cp <= 0xfaff)
|
|
66
|
+
return true;
|
|
67
|
+
// CJK Compatibility Forms
|
|
68
|
+
if (cp >= 0xfe30 && cp <= 0xfe4f)
|
|
69
|
+
return true;
|
|
70
|
+
// CJK Extension B–I and beyond
|
|
71
|
+
if (cp >= 0x20000 && cp <= 0x3ffff)
|
|
72
|
+
return true;
|
|
73
|
+
// Emoji blocks (most render as 2 columns)
|
|
74
|
+
// Miscellaneous Symbols and Pictographs
|
|
75
|
+
if (cp >= 0x1f300 && cp <= 0x1f9ff)
|
|
76
|
+
return true;
|
|
77
|
+
// Supplemental Symbols and Pictographs
|
|
78
|
+
if (cp >= 0x1fa00 && cp <= 0x1fa6f)
|
|
79
|
+
return true;
|
|
80
|
+
// Symbols and Pictographs Extended-A
|
|
81
|
+
if (cp >= 0x1fa70 && cp <= 0x1faff)
|
|
82
|
+
return true;
|
|
83
|
+
// Emoticons
|
|
84
|
+
if (cp >= 0x1f600 && cp <= 0x1f64f)
|
|
85
|
+
return true;
|
|
86
|
+
// Transport and Map Symbols
|
|
87
|
+
if (cp >= 0x1f680 && cp <= 0x1f6ff)
|
|
88
|
+
return true;
|
|
89
|
+
// Dingbats (U+2702–U+27B0) are NOT uniformly wide per Unicode
|
|
90
|
+
// East Asian Width. Most are Narrow text characters (✓ ✗ ✌).
|
|
91
|
+
// They only become wide with emoji presentation (U+FE0F), which
|
|
92
|
+
// is handled by graphemeClusterWidth checking for the variation
|
|
93
|
+
// selector in the grapheme cluster.
|
|
94
|
+
// Regional indicators (flags)
|
|
95
|
+
if (cp >= 0x1f1e0 && cp <= 0x1f1ff)
|
|
96
|
+
return true;
|
|
97
|
+
// Playing Cards, Mahjong Tiles
|
|
98
|
+
if (cp >= 0x1f000 && cp <= 0x1f02f)
|
|
99
|
+
return true;
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=grapheme.part01.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grapheme.part01.js","sourceRoot":"","sources":["../../../src/core/text/grapheme.part01.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,kFAAkF;AAClF,MAAM,CAAC,IAAI,UAAsC,CAAC;AAClD;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,UAAU,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,OAAO,UAAU,CAAC;AACpB,CAAC;AACD,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,kBAAkB;IAClB,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,gCAAgC;IAChC,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,kDAAkD;IAClD,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,kBAAkB;IAClB,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,yBAAyB;IACzB,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,8EAA8E;IAC9E,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,+BAA+B;IAC/B,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,0BAA0B;IAC1B,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,+BAA+B;IAC/B,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAEhD,0CAA0C;IAC1C,wCAAwC;IACxC,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,uCAAuC;IACvC,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,qCAAqC;IACrC,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,YAAY;IACZ,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,4BAA4B;IAC5B,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,8DAA8D;IAC9D,6DAA6D;IAC7D,gEAAgE;IAChE,gEAAgE;IAChE,oCAAoC;IACpC,8BAA8B;IAC9B,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,+BAA+B;IAC/B,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAEhD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Split a string into an array of grapheme clusters.
|
|
3
|
+
*
|
|
4
|
+
* Each element is a single user-perceived character (handles combining
|
|
5
|
+
* marks, ZWJ sequences, flag pairs, skin tones, etc.).
|
|
6
|
+
*
|
|
7
|
+
* @param str - Input string to segment.
|
|
8
|
+
* @returns Array of grapheme cluster strings.
|
|
9
|
+
*/
|
|
10
|
+
export declare function segmentGraphemes(str: string): string[];
|
|
11
|
+
/**
|
|
12
|
+
* Pattern matching ANSI SGR escape sequences (e.g. `\x1b[31m`).
|
|
13
|
+
*
|
|
14
|
+
* Exported for reuse by text utilities that need to strip terminal
|
|
15
|
+
* style escapes before measuring or clipping visible content.
|
|
16
|
+
*/
|
|
17
|
+
export declare const ANSI_SGR_RE: RegExp;
|
|
18
|
+
/**
|
|
19
|
+
* Pattern matching OSC 8 hyperlink control sequences.
|
|
20
|
+
*
|
|
21
|
+
* This strips the invisible open/close control segments while preserving the
|
|
22
|
+
* visible linked text between them.
|
|
23
|
+
*/
|
|
24
|
+
export declare const ANSI_OSC8_RE: RegExp;
|
|
25
|
+
/**
|
|
26
|
+
* Pattern matching broad ANSI control sequences (CSI, OSC, DCS, APC, etc.).
|
|
27
|
+
*
|
|
28
|
+
* Used for sanitizing untrusted terminal text at string-entry boundaries.
|
|
29
|
+
* SGR and OSC 8 sequences can be temporarily preserved by higher-level helpers
|
|
30
|
+
* when a caller intentionally opts into styled parsing.
|
|
31
|
+
*/
|
|
32
|
+
export declare const ANSI_CONTROL_SEQUENCE_RE: RegExp;
|
|
33
|
+
export interface SanitizeTerminalTextOptions {
|
|
34
|
+
/** Preserve ANSI SGR styling escapes such as `\x1b[31m`. */
|
|
35
|
+
readonly allowAnsiStyling?: boolean;
|
|
36
|
+
/** Preserve OSC 8 hyperlink control sequences. */
|
|
37
|
+
readonly allowHyperlinks?: boolean;
|
|
38
|
+
/** Replacement width for literal tabs. Defaults to 2 spaces. */
|
|
39
|
+
readonly tabWidth?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Strip all ANSI SGR escape sequences from a string.
|
|
43
|
+
*
|
|
44
|
+
* @param str - Input string potentially containing ANSI codes.
|
|
45
|
+
* @returns The string with all ANSI SGR sequences removed.
|
|
46
|
+
*/
|
|
47
|
+
export declare function stripAnsi(str: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Sanitize raw terminal text before it crosses into the surface model.
|
|
50
|
+
*
|
|
51
|
+
* Removes destructive ANSI/control sequences and normalizes tabs/newlines so
|
|
52
|
+
* untrusted content cannot inject cursor movement or clear-screen behavior when
|
|
53
|
+
* later rendered back out through {@link surfaceToString} or the diff writer.
|
|
54
|
+
*
|
|
55
|
+
* By default this removes all ANSI sequences. Callers that intentionally parse
|
|
56
|
+
* styled content can preserve SGR and/or OSC 8 sequences with the option flags.
|
|
57
|
+
*/
|
|
58
|
+
export declare function sanitizeTerminalText(str: string, options?: SanitizeTerminalTextOptions): string;
|
|
59
|
+
//# sourceMappingURL=grapheme.part02.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grapheme.part02.d.ts","sourceRoot":"","sources":["../../../src/core/text/grapheme.part02.ts"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAOtD;AAKD;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,QAAmB,CAAC;AAC5C;;;;;GAKG;AAEH,eAAO,MAAM,YAAY,QAAyC,CAAC;AACnE;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,QAE6D,CAAC;AACnG,MAAM,WAAW,2BAA2B;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AACD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,2BAAgC,GACxC,MAAM,CAsBR"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { segmenter } from './grapheme.part01.js';
|
|
2
|
+
import { restoreTerminalSequences, stashTerminalSequences, stripUnsafeControlChars, } from './grapheme.part03.js';
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Grapheme segmentation
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
/**
|
|
7
|
+
* Split a string into an array of grapheme clusters.
|
|
8
|
+
*
|
|
9
|
+
* Each element is a single user-perceived character (handles combining
|
|
10
|
+
* marks, ZWJ sequences, flag pairs, skin tones, etc.).
|
|
11
|
+
*
|
|
12
|
+
* @param str - Input string to segment.
|
|
13
|
+
* @returns Array of grapheme cluster strings.
|
|
14
|
+
*/
|
|
15
|
+
export function segmentGraphemes(str) {
|
|
16
|
+
const segments = segmenter().segment(str);
|
|
17
|
+
const result = [];
|
|
18
|
+
for (const { segment } of segments) {
|
|
19
|
+
result.push(segment);
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// ANSI stripping
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/**
|
|
27
|
+
* Pattern matching ANSI SGR escape sequences (e.g. `\x1b[31m`).
|
|
28
|
+
*
|
|
29
|
+
* Exported for reuse by text utilities that need to strip terminal
|
|
30
|
+
* style escapes before measuring or clipping visible content.
|
|
31
|
+
*/
|
|
32
|
+
// eslint-disable-next-line no-control-regex
|
|
33
|
+
export const ANSI_SGR_RE = /\x1b\[[0-9;]*m/;
|
|
34
|
+
/**
|
|
35
|
+
* Pattern matching OSC 8 hyperlink control sequences.
|
|
36
|
+
*
|
|
37
|
+
* This strips the invisible open/close control segments while preserving the
|
|
38
|
+
* visible linked text between them.
|
|
39
|
+
*/
|
|
40
|
+
// eslint-disable-next-line no-control-regex
|
|
41
|
+
export const ANSI_OSC8_RE = /\x1b]8;;[^\x1b\x07]*(?:\x1b\\|\x07)/g;
|
|
42
|
+
/**
|
|
43
|
+
* Pattern matching broad ANSI control sequences (CSI, OSC, DCS, APC, etc.).
|
|
44
|
+
*
|
|
45
|
+
* Used for sanitizing untrusted terminal text at string-entry boundaries.
|
|
46
|
+
* SGR and OSC 8 sequences can be temporarily preserved by higher-level helpers
|
|
47
|
+
* when a caller intentionally opts into styled parsing.
|
|
48
|
+
*/
|
|
49
|
+
export const ANSI_CONTROL_SEQUENCE_RE =
|
|
50
|
+
// eslint-disable-next-line no-control-regex
|
|
51
|
+
/\x1b(?:\[[0-?]*[ -/]*[@-~]|\][^\x1b\x07]*(?:\x1b\\|\x07)|[PX^_][\s\S]*?(?:\x1b\\|\x07)|[@-_])/g;
|
|
52
|
+
/**
|
|
53
|
+
* Strip all ANSI SGR escape sequences from a string.
|
|
54
|
+
*
|
|
55
|
+
* @param str - Input string potentially containing ANSI codes.
|
|
56
|
+
* @returns The string with all ANSI SGR sequences removed.
|
|
57
|
+
*/
|
|
58
|
+
export function stripAnsi(str) {
|
|
59
|
+
return str
|
|
60
|
+
.replace(ANSI_OSC8_RE, '')
|
|
61
|
+
.replace(new RegExp(ANSI_SGR_RE, 'g'), '');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Sanitize raw terminal text before it crosses into the surface model.
|
|
65
|
+
*
|
|
66
|
+
* Removes destructive ANSI/control sequences and normalizes tabs/newlines so
|
|
67
|
+
* untrusted content cannot inject cursor movement or clear-screen behavior when
|
|
68
|
+
* later rendered back out through {@link surfaceToString} or the diff writer.
|
|
69
|
+
*
|
|
70
|
+
* By default this removes all ANSI sequences. Callers that intentionally parse
|
|
71
|
+
* styled content can preserve SGR and/or OSC 8 sequences with the option flags.
|
|
72
|
+
*/
|
|
73
|
+
export function sanitizeTerminalText(str, options = {}) {
|
|
74
|
+
const allowAnsiStyling = options.allowAnsiStyling ?? false;
|
|
75
|
+
const allowHyperlinks = options.allowHyperlinks ?? false;
|
|
76
|
+
const tabWidth = Math.max(1, Math.floor(options.tabWidth ?? 2));
|
|
77
|
+
const placeholders = [];
|
|
78
|
+
let text = str.replace(/\r\n?/g, '\n').replace(/\t/g, ' '.repeat(tabWidth));
|
|
79
|
+
if (allowHyperlinks) {
|
|
80
|
+
text = stashTerminalSequences(text, ANSI_OSC8_RE, placeholders);
|
|
81
|
+
}
|
|
82
|
+
if (allowAnsiStyling) {
|
|
83
|
+
text = stashTerminalSequences(text, new RegExp(ANSI_SGR_RE, 'g'), placeholders);
|
|
84
|
+
}
|
|
85
|
+
text = stripUnsafeControlChars(text.replace(ANSI_CONTROL_SEQUENCE_RE, ''));
|
|
86
|
+
return restoreTerminalSequences(text, placeholders);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=grapheme.part02.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grapheme.part02.js","sourceRoot":"","sources":["../../../src/core/text/grapheme.part02.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;GAKG;AACH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC5C;;;;;GAKG;AACH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,sCAAsC,CAAC;AACnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB;AACnC,4CAA4C;AAC5C,gGAAgG,CAAC;AASnG;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,GAAG;SACP,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AACD;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAW,EACX,UAAuC,EAAE;IAEzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;IAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE5E,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,GAAG,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,GAAG,sBAAsB,CAC3B,IAAI,EACJ,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAC5B,YAAY,CACb,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3E,OAAO,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function stashTerminalSequences(text: string, pattern: RegExp, placeholders: string[]): string;
|
|
2
|
+
export declare function restoreTerminalSequences(text: string, placeholders: readonly string[]): string;
|
|
3
|
+
export declare function stripUnsafeControlChars(text: string): string;
|
|
4
|
+
/**
|
|
5
|
+
* Compute the terminal display width of a single grapheme cluster.
|
|
6
|
+
*
|
|
7
|
+
* The width is determined by the widest code point in the cluster:
|
|
8
|
+
* - East Asian Wide / Fullwidth characters → 2
|
|
9
|
+
* - Emoji (U+1F300+) → 2
|
|
10
|
+
* - Everything else (ASCII, Latin, combining marks, etc.) → 1
|
|
11
|
+
*
|
|
12
|
+
* Zero-width characters (combining marks, ZWJ, variation selectors)
|
|
13
|
+
* don't add width on their own — they're part of the cluster.
|
|
14
|
+
*
|
|
15
|
+
* @param grapheme - A single grapheme cluster string.
|
|
16
|
+
* @returns Display width: 1 for narrow characters, 2 for wide/emoji.
|
|
17
|
+
*/
|
|
18
|
+
export declare function graphemeClusterWidth(grapheme: string): number;
|
|
19
|
+
//# sourceMappingURL=grapheme.part03.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grapheme.part03.d.ts","sourceRoot":"","sources":["../../../src/core/text/grapheme.part03.ts"],"names":[],"mappings":"AACA,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,CAKR;AACD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,CAKR;AACD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS5D;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4B7D"}
|