docviz-builder 0.1.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/AGENTS.md +371 -0
- package/LICENSE +21 -0
- package/README.md +837 -0
- package/bin/docviz-mcp.mjs +10 -0
- package/bin/docviz.mjs +11 -0
- package/dist/build/builder.d.ts +62 -0
- package/dist/build/builder.d.ts.map +1 -0
- package/dist/build/builder.js +337 -0
- package/dist/build/builder.js.map +1 -0
- package/dist/build/diff.d.ts +64 -0
- package/dist/build/diff.d.ts.map +1 -0
- package/dist/build/diff.js +156 -0
- package/dist/build/diff.js.map +1 -0
- package/dist/build/doctor.d.ts +39 -0
- package/dist/build/doctor.d.ts.map +1 -0
- package/dist/build/doctor.js +190 -0
- package/dist/build/doctor.js.map +1 -0
- package/dist/build/init.d.ts +28 -0
- package/dist/build/init.d.ts.map +1 -0
- package/dist/build/init.js +274 -0
- package/dist/build/init.js.map +1 -0
- package/dist/build/preview.d.ts +13 -0
- package/dist/build/preview.d.ts.map +1 -0
- package/dist/build/preview.js +277 -0
- package/dist/build/preview.js.map +1 -0
- package/dist/build/skill.d.ts +41 -0
- package/dist/build/skill.d.ts.map +1 -0
- package/dist/build/skill.js +63 -0
- package/dist/build/skill.js.map +1 -0
- package/dist/build/verify.d.ts +26 -0
- package/dist/build/verify.d.ts.map +1 -0
- package/dist/build/verify.js +99 -0
- package/dist/build/verify.js.map +1 -0
- package/dist/cli.d.ts +20 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +427 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/load.d.ts +32 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +279 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/types.d.ts +89 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +5 -0
- package/dist/config/types.js.map +1 -0
- package/dist/core/cache.d.ts +32 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +69 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/errors.d.ts +115 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +164 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/hash.d.ts +57 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +0 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/package-version.d.ts +9 -0
- package/dist/core/package-version.d.ts.map +1 -0
- package/dist/core/package-version.js +44 -0
- package/dist/core/package-version.js.map +1 -0
- package/dist/core/paths.d.ts +46 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +105 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/registry.d.ts +24 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +72 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/types.d.ts +78 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +11 -0
- package/dist/core/types.js.map +1 -0
- package/dist/dsl/architecture.d.ts +15 -0
- package/dist/dsl/architecture.d.ts.map +1 -0
- package/dist/dsl/architecture.js +242 -0
- package/dist/dsl/architecture.js.map +1 -0
- package/dist/dsl/catalog.d.ts +62 -0
- package/dist/dsl/catalog.d.ts.map +1 -0
- package/dist/dsl/catalog.en.d.ts +18 -0
- package/dist/dsl/catalog.en.d.ts.map +1 -0
- package/dist/dsl/catalog.en.js +299 -0
- package/dist/dsl/catalog.en.js.map +1 -0
- package/dist/dsl/catalog.js +1082 -0
- package/dist/dsl/catalog.js.map +1 -0
- package/dist/dsl/chart.d.ts +14 -0
- package/dist/dsl/chart.d.ts.map +1 -0
- package/dist/dsl/chart.js +435 -0
- package/dist/dsl/chart.js.map +1 -0
- package/dist/dsl/compile.d.ts +31 -0
- package/dist/dsl/compile.d.ts.map +1 -0
- package/dist/dsl/compile.js +120 -0
- package/dist/dsl/compile.js.map +1 -0
- package/dist/dsl/diagram-bpmn.d.ts +13 -0
- package/dist/dsl/diagram-bpmn.d.ts.map +1 -0
- package/dist/dsl/diagram-bpmn.js +215 -0
- package/dist/dsl/diagram-bpmn.js.map +1 -0
- package/dist/dsl/diagram-product.d.ts +15 -0
- package/dist/dsl/diagram-product.d.ts.map +1 -0
- package/dist/dsl/diagram-product.js +291 -0
- package/dist/dsl/diagram-product.js.map +1 -0
- package/dist/dsl/diagram-technical.d.ts +28 -0
- package/dist/dsl/diagram-technical.d.ts.map +1 -0
- package/dist/dsl/diagram-technical.js +365 -0
- package/dist/dsl/diagram-technical.js.map +1 -0
- package/dist/dsl/diagram.d.ts +22 -0
- package/dist/dsl/diagram.d.ts.map +1 -0
- package/dist/dsl/diagram.js +542 -0
- package/dist/dsl/diagram.js.map +1 -0
- package/dist/dsl/fallbacks-d2.d.ts +27 -0
- package/dist/dsl/fallbacks-d2.d.ts.map +1 -0
- package/dist/dsl/fallbacks-d2.js +265 -0
- package/dist/dsl/fallbacks-d2.js.map +1 -0
- package/dist/dsl/fallbacks.d.ts +25 -0
- package/dist/dsl/fallbacks.d.ts.map +1 -0
- package/dist/dsl/fallbacks.js +264 -0
- package/dist/dsl/fallbacks.js.map +1 -0
- package/dist/dsl/fields.d.ts +93 -0
- package/dist/dsl/fields.d.ts.map +1 -0
- package/dist/dsl/fields.js +233 -0
- package/dist/dsl/fields.js.map +1 -0
- package/dist/dsl/index.d.ts +50 -0
- package/dist/dsl/index.d.ts.map +1 -0
- package/dist/dsl/index.js +114 -0
- package/dist/dsl/index.js.map +1 -0
- package/dist/dsl/util.d.ts +105 -0
- package/dist/dsl/util.d.ts.map +1 -0
- package/dist/dsl/util.js +261 -0
- package/dist/dsl/util.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown/scan.d.ts +73 -0
- package/dist/markdown/scan.d.ts.map +1 -0
- package/dist/markdown/scan.js +150 -0
- package/dist/markdown/scan.js.map +1 -0
- package/dist/markdown/transform.d.ts +28 -0
- package/dist/markdown/transform.d.ts.map +1 -0
- package/dist/markdown/transform.js +38 -0
- package/dist/markdown/transform.js.map +1 -0
- package/dist/mcp/server.d.ts +18 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +118 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +118 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +573 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/renderers/base.d.ts +18 -0
- package/dist/renderers/base.d.ts.map +1 -0
- package/dist/renderers/base.js +59 -0
- package/dist/renderers/base.js.map +1 -0
- package/dist/renderers/bpmn.d.ts +68 -0
- package/dist/renderers/bpmn.d.ts.map +1 -0
- package/dist/renderers/bpmn.js +158 -0
- package/dist/renderers/bpmn.js.map +1 -0
- package/dist/renderers/browser.d.ts +30 -0
- package/dist/renderers/browser.d.ts.map +1 -0
- package/dist/renderers/browser.js +143 -0
- package/dist/renderers/browser.js.map +1 -0
- package/dist/renderers/color-scheme.d.ts +40 -0
- package/dist/renderers/color-scheme.d.ts.map +1 -0
- package/dist/renderers/color-scheme.js +122 -0
- package/dist/renderers/color-scheme.js.map +1 -0
- package/dist/renderers/d2.d.ts +37 -0
- package/dist/renderers/d2.d.ts.map +1 -0
- package/dist/renderers/d2.js +108 -0
- package/dist/renderers/d2.js.map +1 -0
- package/dist/renderers/graphviz.d.ts +33 -0
- package/dist/renderers/graphviz.d.ts.map +1 -0
- package/dist/renderers/graphviz.js +88 -0
- package/dist/renderers/graphviz.js.map +1 -0
- package/dist/renderers/in-page.d.ts +33 -0
- package/dist/renderers/in-page.d.ts.map +1 -0
- package/dist/renderers/in-page.js +76 -0
- package/dist/renderers/in-page.js.map +1 -0
- package/dist/renderers/index.d.ts +20 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/index.js +94 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/renderers/kroki.d.ts +38 -0
- package/dist/renderers/kroki.d.ts.map +1 -0
- package/dist/renderers/kroki.js +151 -0
- package/dist/renderers/kroki.js.map +1 -0
- package/dist/renderers/likec4-svg.d.ts +82 -0
- package/dist/renderers/likec4-svg.d.ts.map +1 -0
- package/dist/renderers/likec4-svg.js +435 -0
- package/dist/renderers/likec4-svg.js.map +1 -0
- package/dist/renderers/likec4.d.ts +22 -0
- package/dist/renderers/likec4.d.ts.map +1 -0
- package/dist/renderers/likec4.js +77 -0
- package/dist/renderers/likec4.js.map +1 -0
- package/dist/renderers/mermaid.d.ts +64 -0
- package/dist/renderers/mermaid.d.ts.map +1 -0
- package/dist/renderers/mermaid.js +196 -0
- package/dist/renderers/mermaid.js.map +1 -0
- package/dist/renderers/plantuml.d.ts +56 -0
- package/dist/renderers/plantuml.d.ts.map +1 -0
- package/dist/renderers/plantuml.js +195 -0
- package/dist/renderers/plantuml.js.map +1 -0
- package/dist/renderers/svg-utils.d.ts +46 -0
- package/dist/renderers/svg-utils.d.ts.map +1 -0
- package/dist/renderers/svg-utils.js +439 -0
- package/dist/renderers/svg-utils.js.map +1 -0
- package/dist/renderers/svgbob.d.ts +26 -0
- package/dist/renderers/svgbob.d.ts.map +1 -0
- package/dist/renderers/svgbob.js +70 -0
- package/dist/renderers/svgbob.js.map +1 -0
- package/dist/renderers/vega-lite.d.ts +18 -0
- package/dist/renderers/vega-lite.d.ts.map +1 -0
- package/dist/renderers/vega-lite.js +94 -0
- package/dist/renderers/vega-lite.js.map +1 -0
- package/dist/themes/index.d.ts +17 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +419 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/types.d.ts +99 -0
- package/dist/themes/types.d.ts.map +1 -0
- package/dist/themes/types.js +9 -0
- package/dist/themes/types.js.map +1 -0
- package/eval/casos.json +513 -0
- package/package.json +114 -0
- package/scripts/capture-preview.mjs +101 -0
- package/scripts/check-github.mjs +128 -0
- package/scripts/eval.d.mts +8 -0
- package/scripts/eval.mjs +284 -0
- package/scripts/fetch-plantuml.mjs +122 -0
- package/scripts/generate-catalog-doc.mjs +106 -0
- package/scripts/rasterize.mjs +68 -0
- package/scripts/sync-docs.mjs +158 -0
- package/skills/docviz/SKILL.md +111 -0
- package/vendor/.gitkeep +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer Vega-Lite — compilacion y dibujo en proceso, sin navegador.
|
|
3
|
+
*
|
|
4
|
+
* `vega-lite` compila la especificacion a Vega y `vega` la dibuja a SVG con el
|
|
5
|
+
* renderer `none` (headless). El resultado es un SVG estatico: el Markdown
|
|
6
|
+
* final no depende de JavaScript (criterio de aceptacion de la seccion 26).
|
|
7
|
+
*/
|
|
8
|
+
import { RenderError } from '../core/errors.js';
|
|
9
|
+
import { packageVersion } from '../core/package-version.js';
|
|
10
|
+
import { assertFormat, asRenderError, svgResult } from './base.js';
|
|
11
|
+
const TYPE = 'vega-lite';
|
|
12
|
+
const SUPPORTED = ['svg'];
|
|
13
|
+
/**
|
|
14
|
+
* Claves de carga de datos remota. Se bloquean: la documentacion puede ser
|
|
15
|
+
* confidencial y un `data.url` convertiria el build en una peticion de red
|
|
16
|
+
* (seccion 12, punto 2).
|
|
17
|
+
*/
|
|
18
|
+
const REMOTE_DATA_KEYS = ['url'];
|
|
19
|
+
export class VegaLiteRenderer {
|
|
20
|
+
type = TYPE;
|
|
21
|
+
defaultFormat = 'svg';
|
|
22
|
+
supportedFormats = SUPPORTED;
|
|
23
|
+
cachedVersion;
|
|
24
|
+
async version() {
|
|
25
|
+
if (this.cachedVersion !== undefined)
|
|
26
|
+
return this.cachedVersion;
|
|
27
|
+
this.cachedVersion = `vega-lite-${packageVersion('vega-lite')}+vega-${packageVersion('vega')}`;
|
|
28
|
+
return this.cachedVersion;
|
|
29
|
+
}
|
|
30
|
+
async render(source, options) {
|
|
31
|
+
assertFormat(TYPE, options.format, SUPPORTED);
|
|
32
|
+
let spec;
|
|
33
|
+
try {
|
|
34
|
+
spec = JSON.parse(source);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
throw new RenderError(TYPE, 'la especificacion Vega-Lite no es JSON valido', err instanceof Error ? err.message : String(err));
|
|
38
|
+
}
|
|
39
|
+
if (spec === null || typeof spec !== 'object' || Array.isArray(spec)) {
|
|
40
|
+
throw new RenderError(TYPE, 'la especificacion Vega-Lite debe ser un objeto JSON');
|
|
41
|
+
}
|
|
42
|
+
assertNoRemoteData(spec);
|
|
43
|
+
const { theme } = options;
|
|
44
|
+
const themed = {
|
|
45
|
+
$schema: 'https://vega.github.io/schema/vega-lite/v6.json',
|
|
46
|
+
width: theme.vegaLite.width,
|
|
47
|
+
height: theme.vegaLite.height,
|
|
48
|
+
...spec,
|
|
49
|
+
// El `config` del tema se mezcla debajo del que traiga el autor.
|
|
50
|
+
config: { ...theme.vegaLite.config, ...(spec['config'] ?? {}) },
|
|
51
|
+
};
|
|
52
|
+
if (options.title !== undefined && themed['title'] === undefined) {
|
|
53
|
+
themed['title'] = options.title;
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const vegaLite = await import('vega-lite');
|
|
57
|
+
const vega = await import('vega');
|
|
58
|
+
const compiled = vegaLite.compile(themed);
|
|
59
|
+
const runtime = vega.parse(compiled.spec, undefined, { ast: true });
|
|
60
|
+
const view = new vega.View(runtime, { renderer: 'none' });
|
|
61
|
+
// `loader` nulo: cualquier intento residual de cargar datos externos falla.
|
|
62
|
+
const svg = await view.toSVG();
|
|
63
|
+
await view.finalize();
|
|
64
|
+
return svgResult(TYPE, svg, options);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
throw asRenderError(TYPE, err, 'Vega-Lite no pudo generar el grafico');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/** Rechaza `data.url` en la especificacion o en cualquier sub-especificacion. */
|
|
72
|
+
function assertNoRemoteData(node, path = '$') {
|
|
73
|
+
if (node === null || typeof node !== 'object')
|
|
74
|
+
return;
|
|
75
|
+
if (Array.isArray(node)) {
|
|
76
|
+
node.forEach((item, i) => assertNoRemoteData(item, `${path}[${i}]`));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const obj = node;
|
|
80
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
81
|
+
if (key === 'data' && value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
82
|
+
for (const remoteKey of REMOTE_DATA_KEYS) {
|
|
83
|
+
if (remoteKey in value) {
|
|
84
|
+
throw new RenderError(TYPE, 'no se admite carga remota de datos (data.url)', `encontrado en ${path}.data.${remoteKey}; incrusta los valores con "data": { "values": [...] }`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
assertNoRemoteData(value, `${path}.${key}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function createVegaLiteRenderer() {
|
|
92
|
+
return new VegaLiteRenderer();
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=vega-lite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vega-lite.js","sourceRoot":"","sources":["../../src/renderers/vega-lite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Temas incluidos: default, corporate, executive y dark.
|
|
3
|
+
*
|
|
4
|
+
* Todos comparten estructura; solo cambian los valores. Anadir un tema nuevo es
|
|
5
|
+
* anadir una entrada a `THEMES`, sin tocar ningun renderer.
|
|
6
|
+
*/
|
|
7
|
+
import type { Theme } from './types.js';
|
|
8
|
+
export type { Theme, ThemePalette } from './types.js';
|
|
9
|
+
export declare const THEMES: Readonly<Record<string, Theme>>;
|
|
10
|
+
export declare function themeNames(): string[];
|
|
11
|
+
export declare function getTheme(name: string): Theme;
|
|
12
|
+
/**
|
|
13
|
+
* Huella del contenido del tema. Entra en el hash del recurso, de modo que
|
|
14
|
+
* ajustar un color invalida automaticamente las imagenes afectadas.
|
|
15
|
+
*/
|
|
16
|
+
export declare function themeFingerprint(theme: Theme): string;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,YAAY,CAAC;AAEtD,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwZtD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAKjD,CAAC;AAEH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAS5C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Temas incluidos: default, corporate, executive y dark.
|
|
3
|
+
*
|
|
4
|
+
* Todos comparten estructura; solo cambian los valores. Anadir un tema nuevo es
|
|
5
|
+
* anadir una entrada a `THEMES`, sin tocar ningun renderer.
|
|
6
|
+
*/
|
|
7
|
+
import { fingerprint } from '../core/hash.js';
|
|
8
|
+
import { ConfigError } from '../core/errors.js';
|
|
9
|
+
const SANS = "'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif";
|
|
10
|
+
const MONO = "'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace";
|
|
11
|
+
const ENGINE_FONT = 'Helvetica';
|
|
12
|
+
function buildTheme(args) {
|
|
13
|
+
const p = args.palette;
|
|
14
|
+
const dark = args.darkPalette ?? args.palette;
|
|
15
|
+
const font = args.fontFamily ?? SANS;
|
|
16
|
+
// PlantUML (AWT) y Graphviz calculan las metricas del texto a partir de una
|
|
17
|
+
// fuente concreta instalada, no de una lista de alternativas. Si el nombre no
|
|
18
|
+
// existe caen a una serif y el diagrama desentona con el resto. Helvetica esta
|
|
19
|
+
// presente (o se resuelve a Arial) en macOS, Windows y Linux.
|
|
20
|
+
const engineFont = ENGINE_FONT;
|
|
21
|
+
return {
|
|
22
|
+
name: args.name,
|
|
23
|
+
description: args.description,
|
|
24
|
+
fontFamily: font,
|
|
25
|
+
monoFontFamily: MONO,
|
|
26
|
+
palette: p,
|
|
27
|
+
plantuml: {
|
|
28
|
+
skinparams: [
|
|
29
|
+
'skinparam backgroundColor ' + p.background,
|
|
30
|
+
'skinparam shadowing false',
|
|
31
|
+
'skinparam defaultFontName "' + engineFont + '"',
|
|
32
|
+
'skinparam defaultFontSize 13',
|
|
33
|
+
'skinparam defaultFontColor ' + p.text,
|
|
34
|
+
'skinparam roundCorner 8',
|
|
35
|
+
'skinparam ArrowColor ' + p.textMuted,
|
|
36
|
+
'skinparam ArrowFontColor ' + p.text,
|
|
37
|
+
'skinparam ArrowFontSize 12',
|
|
38
|
+
'skinparam ActorBorderColor ' + p.primary,
|
|
39
|
+
'skinparam ActorBackgroundColor ' + p.surface,
|
|
40
|
+
'skinparam ActorFontColor ' + p.text,
|
|
41
|
+
'skinparam ParticipantBorderColor ' + p.primary,
|
|
42
|
+
'skinparam ParticipantBackgroundColor ' + p.surface,
|
|
43
|
+
'skinparam ParticipantFontColor ' + p.text,
|
|
44
|
+
'skinparam SequenceLifeLineBorderColor ' + p.border,
|
|
45
|
+
'skinparam SequenceGroupBorderColor ' + p.border,
|
|
46
|
+
'skinparam SequenceGroupBackgroundColor ' + p.surfaceAlt,
|
|
47
|
+
'skinparam SequenceBoxBackgroundColor ' + p.surfaceAlt,
|
|
48
|
+
'skinparam NoteBackgroundColor ' + p.surfaceAlt,
|
|
49
|
+
'skinparam NoteBorderColor ' + p.border,
|
|
50
|
+
'skinparam NoteFontColor ' + p.text,
|
|
51
|
+
'skinparam ClassBorderColor ' + p.primary,
|
|
52
|
+
'skinparam ClassBackgroundColor ' + p.surface,
|
|
53
|
+
'skinparam ClassFontColor ' + p.text,
|
|
54
|
+
'skinparam ClassAttributeFontColor ' + p.textMuted,
|
|
55
|
+
'skinparam StateBorderColor ' + p.primary,
|
|
56
|
+
'skinparam StateBackgroundColor ' + p.surface,
|
|
57
|
+
'skinparam StateFontColor ' + p.text,
|
|
58
|
+
'skinparam ActivityBorderColor ' + p.primary,
|
|
59
|
+
'skinparam ActivityBackgroundColor ' + p.surface,
|
|
60
|
+
'skinparam ActivityFontColor ' + p.text,
|
|
61
|
+
'skinparam ActivityDiamondBorderColor ' + p.accent,
|
|
62
|
+
'skinparam ActivityDiamondBackgroundColor ' + p.surfaceAlt,
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
mermaid: {
|
|
66
|
+
theme: args.mermaidBase,
|
|
67
|
+
themeVariables: {
|
|
68
|
+
background: p.background,
|
|
69
|
+
primaryColor: p.surface,
|
|
70
|
+
primaryTextColor: p.text,
|
|
71
|
+
primaryBorderColor: p.primary,
|
|
72
|
+
secondaryColor: p.surfaceAlt,
|
|
73
|
+
tertiaryColor: p.background,
|
|
74
|
+
lineColor: p.textMuted,
|
|
75
|
+
textColor: p.text,
|
|
76
|
+
fontFamily: font,
|
|
77
|
+
fontSize: '14px',
|
|
78
|
+
mainBkg: p.surface,
|
|
79
|
+
nodeBorder: p.primary,
|
|
80
|
+
clusterBkg: p.surfaceAlt,
|
|
81
|
+
clusterBorder: p.border,
|
|
82
|
+
edgeLabelBackground: p.background,
|
|
83
|
+
titleColor: p.text,
|
|
84
|
+
// Gantt
|
|
85
|
+
sectionBkgColor: p.surfaceAlt,
|
|
86
|
+
altSectionBkgColor: p.background,
|
|
87
|
+
sectionBkgColor2: p.surfaceAlt,
|
|
88
|
+
taskBkgColor: p.primary,
|
|
89
|
+
taskTextColor: p.primaryText,
|
|
90
|
+
taskTextLightColor: p.text,
|
|
91
|
+
taskTextOutsideColor: p.text,
|
|
92
|
+
taskTextDarkColor: p.text,
|
|
93
|
+
activeTaskBkgColor: p.accent,
|
|
94
|
+
activeTaskBorderColor: p.accent,
|
|
95
|
+
doneTaskBkgColor: p.neutral,
|
|
96
|
+
doneTaskBorderColor: p.border,
|
|
97
|
+
critBkgColor: p.negative,
|
|
98
|
+
critBorderColor: p.negative,
|
|
99
|
+
gridColor: p.border,
|
|
100
|
+
todayLineColor: p.negative,
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
d2: {
|
|
104
|
+
themeID: args.d2ThemeID,
|
|
105
|
+
darkThemeID: args.d2DarkThemeID,
|
|
106
|
+
sketch: false,
|
|
107
|
+
pad: 40,
|
|
108
|
+
overrides: d2Overrides(p),
|
|
109
|
+
darkOverrides: d2Overrides(dark),
|
|
110
|
+
},
|
|
111
|
+
graphviz: {
|
|
112
|
+
graph: {
|
|
113
|
+
bgcolor: p.background,
|
|
114
|
+
fontname: engineFont,
|
|
115
|
+
fontsize: '13',
|
|
116
|
+
fontcolor: p.text,
|
|
117
|
+
rankdir: 'TB',
|
|
118
|
+
nodesep: '0.45',
|
|
119
|
+
ranksep: '0.55',
|
|
120
|
+
pad: '0.3',
|
|
121
|
+
splines: 'spline',
|
|
122
|
+
},
|
|
123
|
+
node: {
|
|
124
|
+
shape: 'box',
|
|
125
|
+
style: 'filled,rounded',
|
|
126
|
+
fillcolor: p.surface,
|
|
127
|
+
color: p.primary,
|
|
128
|
+
fontname: engineFont,
|
|
129
|
+
fontsize: '12',
|
|
130
|
+
fontcolor: p.text,
|
|
131
|
+
penwidth: '1.4',
|
|
132
|
+
margin: '0.18,0.10',
|
|
133
|
+
},
|
|
134
|
+
edge: {
|
|
135
|
+
color: p.textMuted,
|
|
136
|
+
fontname: engineFont,
|
|
137
|
+
fontsize: '11',
|
|
138
|
+
fontcolor: p.textMuted,
|
|
139
|
+
penwidth: '1.2',
|
|
140
|
+
arrowsize: '0.8',
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
vegaLite: {
|
|
144
|
+
width: 520,
|
|
145
|
+
height: 300,
|
|
146
|
+
config: {
|
|
147
|
+
background: p.background,
|
|
148
|
+
font: font,
|
|
149
|
+
padding: 12,
|
|
150
|
+
title: { color: p.text, fontSize: 15, fontWeight: 600, anchor: 'start', offset: 14 },
|
|
151
|
+
axis: {
|
|
152
|
+
labelColor: p.textMuted,
|
|
153
|
+
labelFontSize: 11,
|
|
154
|
+
titleColor: p.text,
|
|
155
|
+
titleFontSize: 12,
|
|
156
|
+
titleFontWeight: 500,
|
|
157
|
+
domainColor: p.border,
|
|
158
|
+
tickColor: p.border,
|
|
159
|
+
gridColor: p.border,
|
|
160
|
+
gridOpacity: 0.5,
|
|
161
|
+
labelPadding: 4,
|
|
162
|
+
},
|
|
163
|
+
axisX: { labelAngle: 0 },
|
|
164
|
+
legend: {
|
|
165
|
+
labelColor: p.textMuted,
|
|
166
|
+
titleColor: p.text,
|
|
167
|
+
labelFontSize: 11,
|
|
168
|
+
titleFontSize: 12,
|
|
169
|
+
symbolType: 'square',
|
|
170
|
+
},
|
|
171
|
+
view: { stroke: 'transparent' },
|
|
172
|
+
range: { category: [...p.categorical], heatmap: [...p.sequential], ramp: [...p.sequential] },
|
|
173
|
+
bar: { color: p.primary, cornerRadiusEnd: 2 },
|
|
174
|
+
line: { color: p.primary, strokeWidth: 2 },
|
|
175
|
+
point: { color: p.primary, filled: true, size: 60 },
|
|
176
|
+
area: { color: p.primary, opacity: 0.75 },
|
|
177
|
+
rect: { color: p.primary },
|
|
178
|
+
tick: { color: p.text, thickness: 3 },
|
|
179
|
+
text: { color: p.text, fontSize: 11 },
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
likec4: likec4Palette(p),
|
|
183
|
+
dark: {
|
|
184
|
+
palette: dark,
|
|
185
|
+
likec4: likec4Palette(dark),
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Ranuras de color de D2 traducidas a la paleta del tema.
|
|
191
|
+
*
|
|
192
|
+
* `B*` son los azules estructurales (bordes y rellenos por nivel de anidamiento)
|
|
193
|
+
* y `N*` los neutros del texto y las lineas. Redefinirlas es la unica via que
|
|
194
|
+
* ofrece D2 para que sus diagramas no se vean de otra familia.
|
|
195
|
+
*/
|
|
196
|
+
function d2Overrides(p) {
|
|
197
|
+
return {
|
|
198
|
+
B1: p.primary,
|
|
199
|
+
B2: p.primary,
|
|
200
|
+
B3: p.surfaceAlt,
|
|
201
|
+
B4: p.surface,
|
|
202
|
+
B5: p.surface,
|
|
203
|
+
B6: p.background,
|
|
204
|
+
AA2: p.primary,
|
|
205
|
+
AA4: p.surfaceAlt,
|
|
206
|
+
AA5: p.surface,
|
|
207
|
+
AB4: p.surfaceAlt,
|
|
208
|
+
AB5: p.surface,
|
|
209
|
+
N1: p.text,
|
|
210
|
+
N2: p.text,
|
|
211
|
+
N3: p.textMuted,
|
|
212
|
+
N4: p.border,
|
|
213
|
+
N5: p.surfaceAlt,
|
|
214
|
+
N6: p.surface,
|
|
215
|
+
N7: p.background,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/** Correspondencia entre los colores de LikeC4 y la paleta del tema. */
|
|
219
|
+
function likec4Palette(p) {
|
|
220
|
+
return {
|
|
221
|
+
background: p.background,
|
|
222
|
+
nodeFill: {
|
|
223
|
+
primary: p.primary,
|
|
224
|
+
blue: p.categorical[0],
|
|
225
|
+
green: p.positive,
|
|
226
|
+
amber: p.categorical[3],
|
|
227
|
+
red: p.negative,
|
|
228
|
+
gray: p.surfaceAlt,
|
|
229
|
+
slate: p.surfaceAlt,
|
|
230
|
+
secondary: p.accent,
|
|
231
|
+
muted: p.surfaceAlt,
|
|
232
|
+
indigo: p.categorical[1],
|
|
233
|
+
sky: p.categorical[2],
|
|
234
|
+
},
|
|
235
|
+
nodeStroke: {
|
|
236
|
+
primary: p.primary,
|
|
237
|
+
blue: p.categorical[0],
|
|
238
|
+
green: p.positive,
|
|
239
|
+
amber: p.accent,
|
|
240
|
+
red: p.negative,
|
|
241
|
+
gray: p.border,
|
|
242
|
+
slate: p.border,
|
|
243
|
+
secondary: p.accent,
|
|
244
|
+
muted: p.border,
|
|
245
|
+
indigo: p.categorical[1],
|
|
246
|
+
sky: p.categorical[2],
|
|
247
|
+
},
|
|
248
|
+
nodeText: p.primaryText,
|
|
249
|
+
nodeTextMuted: p.primaryText,
|
|
250
|
+
groupFill: p.surfaceAlt,
|
|
251
|
+
groupStroke: p.border,
|
|
252
|
+
edgeStroke: p.textMuted,
|
|
253
|
+
edgeText: p.text,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
const defaultTheme = buildTheme({
|
|
257
|
+
name: 'default',
|
|
258
|
+
description: 'Paleta neutra de alto contraste, apta para cualquier documento.',
|
|
259
|
+
d2ThemeID: 0,
|
|
260
|
+
d2DarkThemeID: 200,
|
|
261
|
+
mermaidBase: 'base',
|
|
262
|
+
palette: {
|
|
263
|
+
background: '#FFFFFF',
|
|
264
|
+
surface: '#F4F6F8',
|
|
265
|
+
surfaceAlt: '#E9EDF1',
|
|
266
|
+
border: '#C9D1D9',
|
|
267
|
+
text: '#1B2733',
|
|
268
|
+
textMuted: '#5A6B7C',
|
|
269
|
+
primary: '#2F6FEB',
|
|
270
|
+
primaryText: '#FFFFFF',
|
|
271
|
+
accent: '#8250DF',
|
|
272
|
+
categorical: ['#2F6FEB', '#8250DF', '#1A7F64', '#C4820E', '#C2410C', '#0E7490'],
|
|
273
|
+
sequential: ['#EAF1FE', '#C3D8FB', '#8FB4F5', '#5A8FEE', '#2F6FEB', '#1A4CB0'],
|
|
274
|
+
positive: '#1A7F64',
|
|
275
|
+
negative: '#C2410C',
|
|
276
|
+
neutral: '#94A3B8',
|
|
277
|
+
},
|
|
278
|
+
darkPalette: {
|
|
279
|
+
background: '#0D1117',
|
|
280
|
+
surface: '#161B22',
|
|
281
|
+
surfaceAlt: '#21262D',
|
|
282
|
+
border: '#30363D',
|
|
283
|
+
text: '#E6EDF3',
|
|
284
|
+
textMuted: '#9BA7B4',
|
|
285
|
+
primary: '#4C8DFF',
|
|
286
|
+
primaryText: '#0D1117',
|
|
287
|
+
accent: '#A371F7',
|
|
288
|
+
categorical: ['#4C8DFF', '#A371F7', '#3FB950', '#D29922', '#F0883E', '#39C5CF'],
|
|
289
|
+
sequential: ['#10233D', '#16345C', '#1C4A85', '#2E68B8', '#4C8DFF', '#8CB6F5'],
|
|
290
|
+
positive: '#3FB950',
|
|
291
|
+
negative: '#F0883E',
|
|
292
|
+
neutral: '#6E7681',
|
|
293
|
+
},
|
|
294
|
+
});
|
|
295
|
+
const corporateTheme = buildTheme({
|
|
296
|
+
name: 'corporate',
|
|
297
|
+
description: 'Azul institucional sobrio para documentacion tecnica de empresa.',
|
|
298
|
+
d2ThemeID: 1,
|
|
299
|
+
d2DarkThemeID: 200,
|
|
300
|
+
mermaidBase: 'base',
|
|
301
|
+
palette: {
|
|
302
|
+
background: '#FFFFFF',
|
|
303
|
+
surface: '#EEF3FA',
|
|
304
|
+
surfaceAlt: '#DDE7F4',
|
|
305
|
+
border: '#B4C6DD',
|
|
306
|
+
text: '#102A43',
|
|
307
|
+
textMuted: '#486581',
|
|
308
|
+
primary: '#12508F',
|
|
309
|
+
primaryText: '#FFFFFF',
|
|
310
|
+
accent: '#0F7A8A',
|
|
311
|
+
categorical: ['#12508F', '#0F7A8A', '#7A5C12', '#8A2F4F', '#3B5BA5', '#146B4A'],
|
|
312
|
+
sequential: ['#E7EFF9', '#C2D6EE', '#93B6DF', '#5D8FCB', '#2F6BAE', '#12508F'],
|
|
313
|
+
positive: '#146B4A',
|
|
314
|
+
negative: '#A8341F',
|
|
315
|
+
neutral: '#8CA3BC',
|
|
316
|
+
},
|
|
317
|
+
darkPalette: {
|
|
318
|
+
background: '#0D1117',
|
|
319
|
+
surface: '#15202B',
|
|
320
|
+
surfaceAlt: '#1D2C3A',
|
|
321
|
+
border: '#2C3E52',
|
|
322
|
+
text: '#DCE7F2',
|
|
323
|
+
textMuted: '#93AECB',
|
|
324
|
+
primary: '#5AA0E8',
|
|
325
|
+
primaryText: '#0D1117',
|
|
326
|
+
accent: '#3FB6C6',
|
|
327
|
+
categorical: ['#5AA0E8', '#3FB6C6', '#D9B44A', '#E07A9B', '#8FAEE8', '#4CC08C'],
|
|
328
|
+
sequential: ['#101E2C', '#16324B', '#1D4A70', '#2E6DA0', '#4189CE', '#5AA0E8'],
|
|
329
|
+
positive: '#4CC08C',
|
|
330
|
+
negative: '#F0836A',
|
|
331
|
+
neutral: '#6B819A',
|
|
332
|
+
},
|
|
333
|
+
});
|
|
334
|
+
const executiveTheme = buildTheme({
|
|
335
|
+
name: 'executive',
|
|
336
|
+
description: 'Alto contraste y aire generoso, pensado para laminas de direccion.',
|
|
337
|
+
d2ThemeID: 4,
|
|
338
|
+
d2DarkThemeID: 200,
|
|
339
|
+
mermaidBase: 'base',
|
|
340
|
+
palette: {
|
|
341
|
+
background: '#FFFFFF',
|
|
342
|
+
surface: '#F7F5F0',
|
|
343
|
+
surfaceAlt: '#EDE9E0',
|
|
344
|
+
border: '#CFC7B8',
|
|
345
|
+
text: '#1C1917',
|
|
346
|
+
textMuted: '#57534E',
|
|
347
|
+
primary: '#1F3A5F',
|
|
348
|
+
primaryText: '#FFFFFF',
|
|
349
|
+
accent: '#B4611A',
|
|
350
|
+
categorical: ['#1F3A5F', '#B4611A', '#2C6E56', '#7A2E4A', '#4A5568', '#8A6D1F'],
|
|
351
|
+
sequential: ['#F0EEE9', '#D6D1C6', '#B0A895', '#7E7563', '#4F4A3E', '#1F3A5F'],
|
|
352
|
+
positive: '#2C6E56',
|
|
353
|
+
negative: '#9B2C1F',
|
|
354
|
+
neutral: '#A8A29E',
|
|
355
|
+
},
|
|
356
|
+
darkPalette: {
|
|
357
|
+
background: '#14120F',
|
|
358
|
+
surface: '#1E1B17',
|
|
359
|
+
surfaceAlt: '#2A2620',
|
|
360
|
+
border: '#423C33',
|
|
361
|
+
text: '#EDE8DF',
|
|
362
|
+
textMuted: '#A8A093',
|
|
363
|
+
primary: '#8FB3DA',
|
|
364
|
+
primaryText: '#14120F',
|
|
365
|
+
accent: '#E39A5C',
|
|
366
|
+
categorical: ['#8FB3DA', '#E39A5C', '#6FC49E', '#D98CA8', '#9FAAB8', '#D8BE72'],
|
|
367
|
+
sequential: ['#1B1814', '#2B2620', '#453E33', '#6B6152', '#8A8070', '#8FB3DA'],
|
|
368
|
+
positive: '#6FC49E',
|
|
369
|
+
negative: '#E8836F',
|
|
370
|
+
neutral: '#8A857D',
|
|
371
|
+
},
|
|
372
|
+
});
|
|
373
|
+
const darkTheme = buildTheme({
|
|
374
|
+
name: 'dark',
|
|
375
|
+
description: 'Fondo oscuro para portales de documentacion en modo noche.',
|
|
376
|
+
d2ThemeID: 200,
|
|
377
|
+
d2DarkThemeID: 200,
|
|
378
|
+
mermaidBase: 'dark',
|
|
379
|
+
palette: {
|
|
380
|
+
background: '#0D1117',
|
|
381
|
+
surface: '#161B22',
|
|
382
|
+
surfaceAlt: '#21262D',
|
|
383
|
+
border: '#30363D',
|
|
384
|
+
text: '#E6EDF3',
|
|
385
|
+
textMuted: '#9BA7B4',
|
|
386
|
+
primary: '#4C8DFF',
|
|
387
|
+
primaryText: '#0D1117',
|
|
388
|
+
accent: '#A371F7',
|
|
389
|
+
categorical: ['#4C8DFF', '#A371F7', '#3FB950', '#D29922', '#F0883E', '#39C5CF'],
|
|
390
|
+
sequential: ['#0D2440', '#123A66', '#17518C', '#1E69B3', '#3A85D6', '#6FA8F0'],
|
|
391
|
+
positive: '#3FB950',
|
|
392
|
+
negative: '#F0883E',
|
|
393
|
+
neutral: '#6E7681',
|
|
394
|
+
},
|
|
395
|
+
});
|
|
396
|
+
export const THEMES = Object.freeze({
|
|
397
|
+
default: defaultTheme,
|
|
398
|
+
corporate: corporateTheme,
|
|
399
|
+
executive: executiveTheme,
|
|
400
|
+
dark: darkTheme,
|
|
401
|
+
});
|
|
402
|
+
export function themeNames() {
|
|
403
|
+
return Object.keys(THEMES);
|
|
404
|
+
}
|
|
405
|
+
export function getTheme(name) {
|
|
406
|
+
const theme = THEMES[name];
|
|
407
|
+
if (theme === undefined) {
|
|
408
|
+
throw new ConfigError(`el tema "${name}" no existe`, `temas disponibles: ${themeNames().join(', ')}`);
|
|
409
|
+
}
|
|
410
|
+
return theme;
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Huella del contenido del tema. Entra en el hash del recurso, de modo que
|
|
414
|
+
* ajustar un color invalida automaticamente las imagenes afectadas.
|
|
415
|
+
*/
|
|
416
|
+
export function themeFingerprint(theme) {
|
|
417
|
+
return fingerprint(theme);
|
|
418
|
+
}
|
|
419
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Modelo de tema (seccion 14 de la especificacion).
|
|
3
|
+
*
|
|
4
|
+
* Un tema describe la misma identidad visual expresada en el dialecto de cada
|
|
5
|
+
* motor, para que un PlantUML, un D2 y un Vega-Lite del mismo documento se vean
|
|
6
|
+
* como piezas de la misma familia.
|
|
7
|
+
*/
|
|
8
|
+
export interface ThemePalette {
|
|
9
|
+
background: string;
|
|
10
|
+
surface: string;
|
|
11
|
+
surfaceAlt: string;
|
|
12
|
+
border: string;
|
|
13
|
+
text: string;
|
|
14
|
+
textMuted: string;
|
|
15
|
+
primary: string;
|
|
16
|
+
primaryText: string;
|
|
17
|
+
accent: string;
|
|
18
|
+
/**
|
|
19
|
+
* Serie categorica para graficos. Es una tupla de seis: fijar el tamano
|
|
20
|
+
* evita comprobaciones de indice inexistente en quien la consume.
|
|
21
|
+
*/
|
|
22
|
+
categorical: readonly [string, string, string, string, string, string];
|
|
23
|
+
/** Rampa secuencial de seis pasos para heatmaps y escalas continuas. */
|
|
24
|
+
sequential: readonly [string, string, string, string, string, string];
|
|
25
|
+
positive: string;
|
|
26
|
+
negative: string;
|
|
27
|
+
neutral: string;
|
|
28
|
+
}
|
|
29
|
+
/** Paleta y ajustes equivalentes para visores en modo oscuro. */
|
|
30
|
+
export interface ThemeDarkVariant {
|
|
31
|
+
readonly palette: ThemePalette;
|
|
32
|
+
readonly likec4: Theme['likec4'];
|
|
33
|
+
}
|
|
34
|
+
export interface Theme {
|
|
35
|
+
readonly name: string;
|
|
36
|
+
readonly description: string;
|
|
37
|
+
readonly fontFamily: string;
|
|
38
|
+
readonly monoFontFamily: string;
|
|
39
|
+
readonly palette: ThemePalette;
|
|
40
|
+
/**
|
|
41
|
+
* Contraparte oscura de la paleta.
|
|
42
|
+
*
|
|
43
|
+
* Los colores del SVG generado se emiten como variables CSS con este valor
|
|
44
|
+
* bajo `@media (prefers-color-scheme: dark)`, de modo que la misma imagen se
|
|
45
|
+
* lea bien en un visor claro y en uno oscuro. En el tema `dark` coincide con
|
|
46
|
+
* la paleta principal: quien lo elige quiere modo oscuro siempre.
|
|
47
|
+
*/
|
|
48
|
+
readonly dark: ThemeDarkVariant;
|
|
49
|
+
/** Preambulo `skinparam` que se inyecta tras `@startuml`. */
|
|
50
|
+
readonly plantuml: {
|
|
51
|
+
readonly skinparams: readonly string[];
|
|
52
|
+
};
|
|
53
|
+
/** Configuracion pasada a `mermaid.initialize`. */
|
|
54
|
+
readonly mermaid: {
|
|
55
|
+
readonly theme: 'default' | 'base' | 'dark' | 'forest' | 'neutral';
|
|
56
|
+
readonly themeVariables: Readonly<Record<string, string>>;
|
|
57
|
+
};
|
|
58
|
+
/** Opciones de render de D2. */
|
|
59
|
+
readonly d2: {
|
|
60
|
+
readonly themeID: number;
|
|
61
|
+
readonly darkThemeID: number;
|
|
62
|
+
readonly sketch: boolean;
|
|
63
|
+
readonly pad: number;
|
|
64
|
+
/**
|
|
65
|
+
* Sobrescritura de la paleta de D2, en claro y en oscuro.
|
|
66
|
+
*
|
|
67
|
+
* D2 no acepta colores sueltos por elemento desde fuera: solo permite
|
|
68
|
+
* redefinir las ranuras de su tema. Se inyectan en la fuente para que sus
|
|
69
|
+
* diagramas sigan la identidad del proyecto en lugar de la suya.
|
|
70
|
+
*/
|
|
71
|
+
readonly overrides: Readonly<Record<string, string>>;
|
|
72
|
+
readonly darkOverrides: Readonly<Record<string, string>>;
|
|
73
|
+
};
|
|
74
|
+
/** Atributos por defecto inyectados en el grafo Graphviz. */
|
|
75
|
+
readonly graphviz: {
|
|
76
|
+
readonly graph: Readonly<Record<string, string>>;
|
|
77
|
+
readonly node: Readonly<Record<string, string>>;
|
|
78
|
+
readonly edge: Readonly<Record<string, string>>;
|
|
79
|
+
};
|
|
80
|
+
/** Bloque `config` de Vega-Lite. */
|
|
81
|
+
readonly vegaLite: {
|
|
82
|
+
readonly width: number;
|
|
83
|
+
readonly height: number;
|
|
84
|
+
readonly config: Readonly<Record<string, unknown>>;
|
|
85
|
+
};
|
|
86
|
+
/** Paleta del emisor SVG propio de LikeC4. */
|
|
87
|
+
readonly likec4: {
|
|
88
|
+
readonly background: string;
|
|
89
|
+
readonly nodeFill: Readonly<Record<string, string>>;
|
|
90
|
+
readonly nodeStroke: Readonly<Record<string, string>>;
|
|
91
|
+
readonly nodeText: string;
|
|
92
|
+
readonly nodeTextMuted: string;
|
|
93
|
+
readonly groupFill: string;
|
|
94
|
+
readonly groupStroke: string;
|
|
95
|
+
readonly edgeStroke: string;
|
|
96
|
+
readonly edgeText: string;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/themes/types.ts"],"names":[],"mappings":"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"}
|