@diagrammo/dgmo 0.47.0 → 0.48.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/dist/auto.js +1 -1
- package/dist/auto.mjs +1 -1
- package/dist/element.js +1 -1
- package/dist/element.mjs +1 -1
- package/package.json +19 -70
- package/dist/advanced.cjs +0 -71648
- package/dist/advanced.d.cts +0 -5719
- package/dist/auto.cjs +0 -70648
- package/dist/auto.d.cts +0 -54
- package/dist/block.cjs +0 -70208
- package/dist/block.d.cts +0 -115
- package/dist/editor.cjs +0 -526
- package/dist/editor.d.cts +0 -26
- package/dist/element.cjs +0 -70530
- package/dist/element.d.cts +0 -62
- package/dist/highlight.cjs +0 -852
- package/dist/highlight.d.cts +0 -49
- package/dist/index.cjs +0 -70491
- package/dist/index.d.cts +0 -160
- package/dist/pert.cjs +0 -325
- package/dist/pert.d.cts +0 -559
- package/dist/themes-1-CuKpeH.d.cts +0 -908
- package/src/advanced.ts +0 -873
- package/src/arc/parser.ts +0 -15
- package/src/arc/renderer.ts +0 -633
- package/src/auto/index.ts +0 -621
- package/src/auto/shared.ts +0 -370
- package/src/auto/styles.ts +0 -73
- package/src/block/layout.ts +0 -198
- package/src/block/parser.ts +0 -427
- package/src/block/renderer.ts +0 -484
- package/src/block/types.ts +0 -67
- package/src/boxes-and-lines/collapse.ts +0 -96
- package/src/boxes-and-lines/focus.ts +0 -257
- package/src/boxes-and-lines/label-placement.ts +0 -339
- package/src/boxes-and-lines/layout-grouped.ts +0 -912
- package/src/boxes-and-lines/layout-layered.ts +0 -722
- package/src/boxes-and-lines/layout-search.ts +0 -1678
- package/src/boxes-and-lines/layout.ts +0 -398
- package/src/boxes-and-lines/parser.ts +0 -1181
- package/src/boxes-and-lines/renderer.ts +0 -1465
- package/src/boxes-and-lines/types.ts +0 -66
- package/src/c4/layout.ts +0 -2441
- package/src/c4/parser.ts +0 -1158
- package/src/c4/renderer.ts +0 -2008
- package/src/c4/types.ts +0 -89
- package/src/chart-type-registry.ts +0 -529
- package/src/chart-types.ts +0 -225
- package/src/chart.ts +0 -685
- package/src/charts-d3/bar.ts +0 -338
- package/src/charts-d3/chord.ts +0 -140
- package/src/charts-d3/function.ts +0 -147
- package/src/charts-d3/funnel.ts +0 -104
- package/src/charts-d3/heatmap.ts +0 -145
- package/src/charts-d3/index.ts +0 -337
- package/src/charts-d3/interactions.ts +0 -477
- package/src/charts-d3/line.ts +0 -344
- package/src/charts-d3/mount.ts +0 -151
- package/src/charts-d3/pie.ts +0 -117
- package/src/charts-d3/polar.ts +0 -89
- package/src/charts-d3/radar.ts +0 -0
- package/src/charts-d3/sankey.ts +0 -0
- package/src/charts-d3/scatter.ts +0 -185
- package/src/charts-d3/shared.ts +0 -208
- package/src/class/layout.ts +0 -326
- package/src/class/parser.ts +0 -635
- package/src/class/renderer.ts +0 -793
- package/src/class/types.ts +0 -58
- package/src/cli-banner.ts +0 -106
- package/src/cli.ts +0 -1080
- package/src/colors-diagnostics.ts +0 -35
- package/src/colors.ts +0 -379
- package/src/completion-types.ts +0 -27
- package/src/completion.ts +0 -2668
- package/src/cycle/layout.ts +0 -1026
- package/src/cycle/parser.ts +0 -387
- package/src/cycle/renderer.ts +0 -653
- package/src/cycle/types.ts +0 -101
- package/src/d3.ts +0 -1434
- package/src/data-chart-parser.ts +0 -1007
- package/src/dgmo-router.ts +0 -296
- package/src/diagnostics-registry.ts +0 -108
- package/src/diagnostics.ts +0 -0
- package/src/dimensions.ts +0 -20
- package/src/directives-registry.ts +0 -396
- package/src/editor/dgmo.grammar +0 -76
- package/src/editor/dgmo.grammar.d.ts +0 -2
- package/src/editor/dgmo.grammar.js +0 -18
- package/src/editor/dgmo.grammar.terms.d.ts +0 -5
- package/src/editor/dgmo.grammar.terms.js +0 -35
- package/src/editor/highlight-api.ts +0 -596
- package/src/editor/highlight.ts +0 -36
- package/src/editor/index.ts +0 -27
- package/src/editor/keywords.ts +0 -128
- package/src/editor/tokens.ts +0 -30
- package/src/element/index.ts +0 -432
- package/src/embed/css.ts +0 -312
- package/src/embed/escape.ts +0 -15
- package/src/embed/index.ts +0 -280
- package/src/er/classify.ts +0 -228
- package/src/er/layout.ts +0 -530
- package/src/er/parser.ts +0 -750
- package/src/er/renderer.ts +0 -725
- package/src/er/types.ts +0 -52
- package/src/error-card.ts +0 -269
- package/src/event-line/diagnostics.ts +0 -117
- package/src/event-line/parser.ts +0 -643
- package/src/event-line/renderer.ts +0 -1742
- package/src/event-line/types.ts +0 -74
- package/src/fonts.ts +0 -3
- package/src/gantt/calculator.ts +0 -979
- package/src/gantt/parser.ts +0 -1641
- package/src/gantt/renderer.ts +0 -3787
- package/src/gantt/resolver.ts +0 -172
- package/src/gantt/types.ts +0 -206
- package/src/graph/diagnostics.ts +0 -64
- package/src/graph/edge-spline.ts +0 -29
- package/src/graph/flowchart-parser.ts +0 -759
- package/src/graph/flowchart-renderer.ts +0 -817
- package/src/graph/layout.ts +0 -472
- package/src/graph/notes.ts +0 -21
- package/src/graph/state-collapse.ts +0 -78
- package/src/graph/state-parser.ts +0 -574
- package/src/graph/state-renderer.ts +0 -653
- package/src/graph/types.ts +0 -65
- package/src/index.ts +0 -261
- package/src/infra/compute.ts +0 -1385
- package/src/infra/layout.ts +0 -888
- package/src/infra/parser.ts +0 -1234
- package/src/infra/renderer.ts +0 -2534
- package/src/infra/roles.ts +0 -75
- package/src/infra/types.ts +0 -216
- package/src/infra/validation.ts +0 -201
- package/src/journey-map/layout.ts +0 -490
- package/src/journey-map/parser.ts +0 -557
- package/src/journey-map/renderer.ts +0 -1580
- package/src/journey-map/types.ts +0 -47
- package/src/kanban/mutations.ts +0 -175
- package/src/kanban/parser.ts +0 -509
- package/src/kanban/renderer.ts +0 -1449
- package/src/kanban/types.ts +0 -39
- package/src/label-layout.ts +0 -368
- package/src/map/colorize.ts +0 -54
- package/src/map/completion.ts +0 -316
- package/src/map/context-labels.ts +0 -609
- package/src/map/data/PROVENANCE.json +0 -1
- package/src/map/data/README.md +0 -40
- package/src/map/data/airport-collisions.json +0 -1
- package/src/map/data/airports.json +0 -1
- package/src/map/data/gazetteer.json +0 -1
- package/src/map/data/lakes.json +0 -1
- package/src/map/data/mountain-ranges.json +0 -1
- package/src/map/data/na-lakes.json +0 -1
- package/src/map/data/na-land.json +0 -1
- package/src/map/data/region-names.json +0 -1
- package/src/map/data/rivers.json +0 -1
- package/src/map/data/types.ts +0 -121
- package/src/map/data/us-states.json +0 -1
- package/src/map/data/water-bodies.json +0 -1
- package/src/map/data/world-coarse.json +0 -1
- package/src/map/data/world-detail.json +0 -1
- package/src/map/diagnostics.ts +0 -134
- package/src/map/dimensions.ts +0 -150
- package/src/map/geo-query.ts +0 -295
- package/src/map/geo.ts +0 -438
- package/src/map/invert.ts +0 -111
- package/src/map/layout.ts +0 -5069
- package/src/map/legend-band.ts +0 -127
- package/src/map/load-data.ts +0 -186
- package/src/map/parser.ts +0 -783
- package/src/map/renderer.ts +0 -1445
- package/src/map/resolved-types.ts +0 -160
- package/src/map/resolver.ts +0 -1146
- package/src/map/types.ts +0 -194
- package/src/mindmap/collapse.ts +0 -67
- package/src/mindmap/layout.ts +0 -649
- package/src/mindmap/parser.ts +0 -430
- package/src/mindmap/renderer.ts +0 -637
- package/src/mindmap/text-wrap.ts +0 -218
- package/src/mindmap/types.ts +0 -56
- package/src/org/collapse.ts +0 -151
- package/src/org/layout.ts +0 -1262
- package/src/org/parser.ts +0 -519
- package/src/org/renderer.ts +0 -866
- package/src/org/resolver.ts +0 -636
- package/src/palettes/atlas.ts +0 -77
- package/src/palettes/blueprint.ts +0 -73
- package/src/palettes/catppuccin.ts +0 -84
- package/src/palettes/color-utils.ts +0 -443
- package/src/palettes/index.ts +0 -67
- package/src/palettes/nord.ts +0 -67
- package/src/palettes/registry.ts +0 -114
- package/src/palettes/slate.ts +0 -73
- package/src/palettes/tidewater.ts +0 -73
- package/src/palettes/tokyo-night.ts +0 -86
- package/src/palettes/types.ts +0 -88
- package/src/pert/analyzer.ts +0 -1183
- package/src/pert/diagnostics.ts +0 -110
- package/src/pert/index.ts +0 -43
- package/src/pert/internal.ts +0 -252
- package/src/pert/layout.ts +0 -971
- package/src/pert/monte-carlo.ts +0 -446
- package/src/pert/parser.ts +0 -1606
- package/src/pert/renderer.ts +0 -4009
- package/src/pert/share-normalize.ts +0 -62
- package/src/pert/types.ts +0 -604
- package/src/pyramid/parser.ts +0 -185
- package/src/pyramid/renderer.ts +0 -768
- package/src/pyramid/types.ts +0 -28
- package/src/quadrant/parser.ts +0 -18
- package/src/quadrant/renderer.ts +0 -638
- package/src/raci/diagnostics.ts +0 -213
- package/src/raci/index.ts +0 -23
- package/src/raci/mutations.ts +0 -321
- package/src/raci/parser.ts +0 -699
- package/src/raci/renderer.ts +0 -1627
- package/src/raci/types.ts +0 -82
- package/src/raci/variants.ts +0 -320
- package/src/render.ts +0 -268
- package/src/ring/parser.ts +0 -212
- package/src/ring/renderer.ts +0 -490
- package/src/ring/types.ts +0 -27
- package/src/sequence/collapse.ts +0 -174
- package/src/sequence/parser.ts +0 -1596
- package/src/sequence/participant-inference.ts +0 -152
- package/src/sequence/renderer.ts +0 -3168
- package/src/sequence/tag-resolution.ts +0 -164
- package/src/sharing.ts +0 -211
- package/src/sitemap/collapse.ts +0 -100
- package/src/sitemap/layout.ts +0 -925
- package/src/sitemap/parser.ts +0 -755
- package/src/sitemap/renderer.ts +0 -828
- package/src/sitemap/types.ts +0 -42
- package/src/slope/parser.ts +0 -18
- package/src/slope/renderer.ts +0 -378
- package/src/swimlane/diagnostics.ts +0 -94
- package/src/swimlane/layout.ts +0 -597
- package/src/swimlane/parser.ts +0 -613
- package/src/swimlane/renderer.ts +0 -681
- package/src/swimlane/types.ts +0 -151
- package/src/tech-radar/interactive.ts +0 -1129
- package/src/tech-radar/layout.ts +0 -197
- package/src/tech-radar/parser.ts +0 -436
- package/src/tech-radar/renderer.ts +0 -1239
- package/src/tech-radar/shared.ts +0 -151
- package/src/tech-radar/types.ts +0 -86
- package/src/themes.ts +0 -22
- package/src/timeline/parser.ts +0 -472
- package/src/timeline/renderer.ts +0 -3024
- package/src/timeline/types.ts +0 -33
- package/src/timeline/viz-parser.ts +0 -21
- package/src/treemap/diagnostics.ts +0 -62
- package/src/treemap/layout-radial.ts +0 -233
- package/src/treemap/layout.ts +0 -189
- package/src/treemap/parser.ts +0 -463
- package/src/treemap/renderer-radial.ts +0 -438
- package/src/treemap/renderer.ts +0 -572
- package/src/treemap/treemap-shared.ts +0 -309
- package/src/treemap/types.ts +0 -60
- package/src/utils/arrow-markers.ts +0 -51
- package/src/utils/arrows-diagnostics.ts +0 -62
- package/src/utils/arrows.ts +0 -227
- package/src/utils/brand.ts +0 -61
- package/src/utils/card.ts +0 -183
- package/src/utils/collapse-engine/tree-edges.ts +0 -115
- package/src/utils/collapse-engine/tree.ts +0 -117
- package/src/utils/d3-helpers.ts +0 -219
- package/src/utils/d3-types.ts +0 -9
- package/src/utils/description-helpers.ts +0 -38
- package/src/utils/duration.ts +0 -312
- package/src/utils/export-container.ts +0 -41
- package/src/utils/expr-eval.ts +0 -27
- package/src/utils/fit-canvas.ts +0 -64
- package/src/utils/hover-styles.ts +0 -673
- package/src/utils/inline-markdown.ts +0 -96
- package/src/utils/legend-constants.ts +0 -48
- package/src/utils/legend-d3.ts +0 -618
- package/src/utils/legend-integration.ts +0 -107
- package/src/utils/legend-layout.ts +0 -776
- package/src/utils/legend-svg.ts +0 -214
- package/src/utils/legend-types.ts +0 -272
- package/src/utils/name-normalize.ts +0 -163
- package/src/utils/note-box/constants.ts +0 -25
- package/src/utils/note-box/index.ts +0 -11
- package/src/utils/note-box/metrics.ts +0 -90
- package/src/utils/note-box/svg.ts +0 -331
- package/src/utils/notes/bounds.ts +0 -30
- package/src/utils/notes/build.ts +0 -131
- package/src/utils/notes/index.ts +0 -18
- package/src/utils/notes/model.ts +0 -19
- package/src/utils/notes/parse.ts +0 -131
- package/src/utils/notes/place.ts +0 -177
- package/src/utils/notes/resolve.ts +0 -88
- package/src/utils/number-format.ts +0 -36
- package/src/utils/parsing.ts +0 -953
- package/src/utils/reserved-key-registry.ts +0 -239
- package/src/utils/safe-href.ts +0 -38
- package/src/utils/scaling.ts +0 -97
- package/src/utils/svg-embed.ts +0 -251
- package/src/utils/tag-groups.ts +0 -607
- package/src/utils/text-measure.ts +0 -122
- package/src/utils/time-ticks.ts +0 -253
- package/src/utils/title-constants.ts +0 -24
- package/src/utils/visual-conventions.ts +0 -61
- package/src/utils/wrapped-desc.ts +0 -87
- package/src/venn/parser.ts +0 -18
- package/src/venn/renderer.ts +0 -1047
- package/src/version-control/diagnostics.ts +0 -67
- package/src/version-control/parser.ts +0 -544
- package/src/version-control/renderer.ts +0 -724
- package/src/version-control/types.ts +0 -100
- package/src/visualizations/parse.ts +0 -1560
- package/src/visualizations/types.ts +0 -262
- package/src/wireframe/layout.ts +0 -479
- package/src/wireframe/parser.ts +0 -1114
- package/src/wireframe/renderer.ts +0 -1318
- package/src/wireframe/types.ts +0 -110
- package/src/wordcloud/parser.ts +0 -18
- package/src/wordcloud/renderer.ts +0 -357
package/src/class/types.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Class Diagram Types
|
|
3
|
-
// ============================================================
|
|
4
|
-
|
|
5
|
-
export type ClassModifier = 'abstract' | 'interface' | 'enum';
|
|
6
|
-
|
|
7
|
-
export type MemberVisibility = 'public' | 'private' | 'protected';
|
|
8
|
-
|
|
9
|
-
export type RelationshipType =
|
|
10
|
-
| 'extends' // --|> solid line, filled triangle
|
|
11
|
-
| 'implements' // ..|> dashed line, hollow triangle
|
|
12
|
-
| 'composes' // *-- solid line, filled diamond
|
|
13
|
-
| 'aggregates' // o-- solid line, hollow diamond
|
|
14
|
-
| 'depends' // ..> dashed line, open arrow
|
|
15
|
-
| 'associates'; // -> solid line, open arrow
|
|
16
|
-
|
|
17
|
-
export interface ClassMember {
|
|
18
|
-
readonly name: string;
|
|
19
|
-
readonly type?: string; // field type or return type
|
|
20
|
-
readonly params?: string; // method params (empty string for no-arg methods)
|
|
21
|
-
readonly visibility: MemberVisibility;
|
|
22
|
-
readonly isStatic: boolean;
|
|
23
|
-
readonly isMethod: boolean;
|
|
24
|
-
readonly lineNumber: number;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface ClassNode {
|
|
28
|
-
readonly id: string;
|
|
29
|
-
readonly name: string;
|
|
30
|
-
readonly modifier?: ClassModifier;
|
|
31
|
-
readonly color?: string;
|
|
32
|
-
readonly members: readonly ClassMember[];
|
|
33
|
-
readonly lineNumber: number;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface ClassRelationship {
|
|
37
|
-
readonly source: string; // class name
|
|
38
|
-
readonly target: string; // class name
|
|
39
|
-
readonly type: RelationshipType;
|
|
40
|
-
readonly label?: string;
|
|
41
|
-
readonly lineNumber: number;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
import type { DgmoError } from '../diagnostics';
|
|
45
|
-
import type { DiagramNote } from '../utils/notes';
|
|
46
|
-
|
|
47
|
-
export interface ParsedClassDiagram {
|
|
48
|
-
readonly type: 'class';
|
|
49
|
-
readonly title?: string;
|
|
50
|
-
readonly titleLineNumber?: number;
|
|
51
|
-
readonly classes: readonly ClassNode[];
|
|
52
|
-
readonly relationships: readonly ClassRelationship[];
|
|
53
|
-
readonly options: Readonly<Record<string, string>>;
|
|
54
|
-
/** Generic node notes (`note <ClassName> …`); resolved in layout. */
|
|
55
|
-
readonly notes?: readonly DiagramNote[];
|
|
56
|
-
readonly diagnostics: readonly DgmoError[];
|
|
57
|
-
readonly error: string | null;
|
|
58
|
-
}
|
package/src/cli-banner.ts
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// CLI Banner — colorful ASCII logo for `dgmo`
|
|
3
|
-
// ============================================================
|
|
4
|
-
//
|
|
5
|
-
// Rendered as the header of `dgmo --help` and at the end of the
|
|
6
|
-
// install/init flows. Uses a horizontal true-color (24-bit) gradient
|
|
7
|
-
// sampled from the default `slate` palette (corporate blue → teal →
|
|
8
|
-
// steel cyan) so the wordmark matches the brand.
|
|
9
|
-
//
|
|
10
|
-
// Color only when stdout is a TTY and NO_COLOR is unset; otherwise prints
|
|
11
|
-
// plain ASCII so pipes/CI stay clean.
|
|
12
|
-
|
|
13
|
-
import { getPalette } from './palettes';
|
|
14
|
-
|
|
15
|
-
// ANSI Shadow letterform for "dgmo" (6 rows) + tagline.
|
|
16
|
-
const ART = [
|
|
17
|
-
'██████╗ ██████╗ ███╗ ███╗ ██████╗ ',
|
|
18
|
-
'██╔══██╗██╔════╝ ████╗ ████║██╔═══██╗',
|
|
19
|
-
'██║ ██║██║ ███╗██╔████╔██║██║ ██║',
|
|
20
|
-
'██║ ██║██║ ██║██║╚██╔╝██║██║ ██║',
|
|
21
|
-
'██████╔╝╚██████╔╝██║ ╚═╝ ██║╚██████╔╝',
|
|
22
|
-
'╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ',
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
const TAGLINE = 'diagrams as code';
|
|
26
|
-
|
|
27
|
-
// Gradient stops, pulled by name from the live slate palette (light) so the
|
|
28
|
-
// wordmark tracks any palette edit instead of drifting from a hardcoded copy.
|
|
29
|
-
// blue → teal → green → amber: a vivid sweep across the categorical hues.
|
|
30
|
-
const GRADIENT_COLOR_NAMES = ['blue', 'teal', 'green', 'orange'] as const;
|
|
31
|
-
|
|
32
|
-
function hexToRgb(hex: string): [number, number, number] {
|
|
33
|
-
const h = hex.replace('#', '');
|
|
34
|
-
return [
|
|
35
|
-
parseInt(h.slice(0, 2), 16),
|
|
36
|
-
parseInt(h.slice(2, 4), 16),
|
|
37
|
-
parseInt(h.slice(4, 6), 16),
|
|
38
|
-
];
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const STOPS: Array<[number, number, number]> = (() => {
|
|
42
|
-
const colors = getPalette('slate').light.colors;
|
|
43
|
-
return GRADIENT_COLOR_NAMES.map((name) => hexToRgb(colors[name]));
|
|
44
|
-
})();
|
|
45
|
-
|
|
46
|
-
function lerp(a: number, b: number, t: number): number {
|
|
47
|
-
return Math.round(a + (b - a) * t);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/** Interpolate the multi-stop gradient at position t ∈ [0, 1]. */
|
|
51
|
-
function gradientAt(t: number): [number, number, number] {
|
|
52
|
-
const clamped = Math.max(0, Math.min(1, t));
|
|
53
|
-
const span = STOPS.length - 1;
|
|
54
|
-
const scaled = clamped * span;
|
|
55
|
-
const i = Math.min(span - 1, Math.floor(scaled));
|
|
56
|
-
const local = scaled - i;
|
|
57
|
-
const [r1, g1, b1] = STOPS[i]!;
|
|
58
|
-
const [r2, g2, b2] = STOPS[i + 1]!;
|
|
59
|
-
return [lerp(r1, r2, local), lerp(g1, g2, local), lerp(b1, b2, local)];
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function fg(r: number, g: number, b: number): string {
|
|
63
|
-
return `\x1b[38;2;${r};${g};${b}m`;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const RESET = '\x1b[0m';
|
|
67
|
-
|
|
68
|
-
export interface BannerOptions {
|
|
69
|
-
/** Force-disable color regardless of TTY (default honors stdout TTY + NO_COLOR). */
|
|
70
|
-
color?: boolean;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Build the dgmo banner string. Colorized with a horizontal gradient when
|
|
75
|
-
* `color` is true; otherwise returns plain ASCII.
|
|
76
|
-
*/
|
|
77
|
-
export function renderBanner(opts: BannerOptions = {}): string {
|
|
78
|
-
const useColor =
|
|
79
|
-
opts.color ?? (process.stdout.isTTY === true && !process.env['NO_COLOR']);
|
|
80
|
-
|
|
81
|
-
const width = Math.max(...ART.map((line) => line.length));
|
|
82
|
-
|
|
83
|
-
const lines = ART.map((line) => {
|
|
84
|
-
if (!useColor) return line;
|
|
85
|
-
let out = '';
|
|
86
|
-
for (let col = 0; col < line.length; col++) {
|
|
87
|
-
const ch = line[col];
|
|
88
|
-
// Don't paint spaces — keeps escape sequences minimal.
|
|
89
|
-
if (ch === ' ') {
|
|
90
|
-
out += ch;
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
const [r, g, b] = gradientAt(col / (width - 1));
|
|
94
|
-
out += fg(r, g, b) + ch;
|
|
95
|
-
}
|
|
96
|
-
return out + RESET;
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
// Right-align the tagline under the wordmark, muted.
|
|
100
|
-
const pad = Math.max(0, width - TAGLINE.length);
|
|
101
|
-
const tagline = useColor
|
|
102
|
-
? `${' '.repeat(pad)}\x1b[2;3m${TAGLINE}${RESET}`
|
|
103
|
-
: `${' '.repeat(pad)}${TAGLINE}`;
|
|
104
|
-
|
|
105
|
-
return ['', ...lines, tagline, ''].join('\n');
|
|
106
|
-
}
|