@diagrammo/dgmo 0.44.0 → 0.45.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/advanced.cjs +2 -4
- package/dist/advanced.js +2 -4
- package/dist/auto.cjs +3 -5
- package/dist/auto.js +3 -3
- package/dist/auto.mjs +3 -5
- package/dist/block.cjs +70202 -0
- package/dist/block.css +290 -0
- package/dist/block.d.cts +115 -0
- package/dist/block.d.ts +115 -0
- package/dist/block.js +70198 -0
- package/dist/cli.cjs +81 -81
- package/dist/element.cjs +3 -5
- package/dist/element.js +3 -3
- package/dist/element.mjs +3 -5
- package/dist/highlight.cjs +31 -0
- package/dist/highlight.d.cts +10 -1
- package/dist/highlight.d.ts +10 -1
- package/dist/highlight.js +30 -0
- package/dist/index.cjs +2 -4
- package/dist/index.js +2 -4
- package/package.json +13 -2
- package/src/block/renderer.ts +4 -5
- package/src/editor/highlight-api.ts +34 -0
- package/src/embed/css.ts +312 -0
- package/src/embed/escape.ts +15 -0
- package/src/embed/index.ts +280 -0
- package/src/event-line/renderer.ts +7 -8
- package/src/swimlane/renderer.ts +1 -0
package/dist/element.mjs
CHANGED
|
@@ -27471,7 +27471,6 @@ function renderEventLine(container, parsed, palette, isDark, onClickItem, export
|
|
|
27471
27471
|
const { contentW, totalH, spineY, eraBaseY, laneNear } = layout;
|
|
27472
27472
|
const svg = d3Selection6.select(container).append("svg").attr("width", contentW).attr("height", totalH).attr("viewBox", `0 0 ${contentW} ${totalH}`).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").style("font-family", FONT_FAMILY);
|
|
27473
27473
|
if (!exportMode) svg.append("style").text(HOVER_CSS);
|
|
27474
|
-
svg.append("rect").attr("width", contentW).attr("height", totalH).attr("fill", palette.bg);
|
|
27475
27474
|
if (showTitle) {
|
|
27476
27475
|
const t = svg.append("text").attr("class", "chart-title").attr("x", contentW / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("data-line-number", parsed.titleLineNumber ?? 1).text(parsed.title);
|
|
27477
27476
|
if (onClickItem && parsed.titleLineNumber) {
|
|
@@ -28036,7 +28035,7 @@ var init_renderer2 = __esm({
|
|
|
28036
28035
|
COLLAPSED = "dgmo-evt-collapsed";
|
|
28037
28036
|
OFF = "dgmo-evt-off";
|
|
28038
28037
|
HIDDEN_ATTR = "data-evt-hidden";
|
|
28039
|
-
HOVER_CSS = `.dgmo-event-dot{transition:transform .12s ease;transform-box:fill-box;transform-origin:center}.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era{transition:opacity .12s ease,filter .12s ease}.dgmo-event-dot,.dgmo-event-card,.dgmo-event-era{cursor:default}[data-legend-entry]{cursor:pointer}.${DIM}{opacity:.2}.dgmo-event-dot.${HL}{transform:scale(1.55)}.dgmo-event-leader.${HL}{stroke-opacity:1;stroke-width:2.5}.dgmo-event-card.${HL}{filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}.dgmo-event-era.${ERA_HL}{filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.dgmo-event-card.${COLLAPSED},.dgmo-event-leader.${COLLAPSED}{opacity:0;pointer-events:none}.dgmo-event-card.${COLLAPSED}.${HL},.dgmo-event-leader.${COLLAPSED}.${HL}{opacity:1;pointer-events:auto}[data-legend-entry].${OFF} text{
|
|
28038
|
+
HOVER_CSS = `.dgmo-event-dot{transition:transform .12s ease;transform-box:fill-box;transform-origin:center}.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era{transition:opacity .12s ease,filter .12s ease}.dgmo-event-dot,.dgmo-event-card,.dgmo-event-era{cursor:default}[data-legend-entry]{cursor:pointer}.${DIM}{opacity:.2}.dgmo-event-dot.${HL}{transform:scale(1.55)}.dgmo-event-leader.${HL}{stroke-opacity:1;stroke-width:2.5}.dgmo-event-card.${HL}{filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}.dgmo-event-era.${ERA_HL}{filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.dgmo-event-card.${COLLAPSED},.dgmo-event-leader.${COLLAPSED}{opacity:0;pointer-events:none}.dgmo-event-card.${COLLAPSED}.${HL},.dgmo-event-leader.${COLLAPSED}.${HL}{opacity:1;pointer-events:auto}[data-legend-entry].${OFF} text{opacity:.5}`;
|
|
28040
28039
|
DIMMABLE_SEL = ".dgmo-event-dot,.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era";
|
|
28041
28040
|
PIN_ATTR = "data-evt-pin";
|
|
28042
28041
|
}
|
|
@@ -37265,7 +37264,7 @@ function renderSwimlaneForExport(container, parsed, layout, palette, isDark, opt
|
|
|
37265
37264
|
const titleOffset = parsed.title ? 40 : 0;
|
|
37266
37265
|
const width = opts.exportDims?.width ?? layout.width;
|
|
37267
37266
|
const height = (opts.exportDims?.height ?? layout.height) + 0;
|
|
37268
|
-
const svg = d3Selection14.select(container).append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).style("font-family", FONT_FAMILY);
|
|
37267
|
+
const svg = d3Selection14.select(container).append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).attr("preserveAspectRatio", "xMidYMin meet").style("font-family", FONT_FAMILY);
|
|
37269
37268
|
const defs = svg.append("defs");
|
|
37270
37269
|
const baseBg = themeBaseBg(palette, isDark);
|
|
37271
37270
|
const ev = {
|
|
@@ -62724,7 +62723,6 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
|
|
|
62724
62723
|
const offsetX = areaX + (areaW - layout.width * scale) / 2;
|
|
62725
62724
|
const offsetY = areaY;
|
|
62726
62725
|
const svg = d3Selection31.select(container).append("svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").attr("class", "dgmo-block").style("font-family", FONT_FAMILY);
|
|
62727
|
-
svg.append("rect").attr("width", width).attr("height", height).attr("fill", palette.bg);
|
|
62728
62726
|
if (showTitle) {
|
|
62729
62727
|
const title = svg.append("text").attr("class", "chart-title").attr("x", width / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).text(parsed.title);
|
|
62730
62728
|
if (parsed.titleLineNumber !== null) {
|
|
@@ -69868,7 +69866,7 @@ pre.dgmo, code.language-dgmo, pre > code.language-dgmo,
|
|
|
69868
69866
|
|
|
69869
69867
|
// src/auto/shared.ts
|
|
69870
69868
|
init_safe_href();
|
|
69871
|
-
var VERSION = "0.
|
|
69869
|
+
var VERSION = "0.45.0";
|
|
69872
69870
|
var EDITOR_BASE_URL = "https://online.diagrammo.app";
|
|
69873
69871
|
var ARIA_LABEL_MAX = 200;
|
|
69874
69872
|
var COPIED_INTERACTION_MS = 1200;
|
package/dist/highlight.cjs
CHANGED
|
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var highlight_api_exports = {};
|
|
22
22
|
__export(highlight_api_exports, {
|
|
23
23
|
ATTRIBUTE_KEYS: () => ATTRIBUTE_KEYS,
|
|
24
|
+
LIGHT_ROLE_STYLES: () => LIGHT_ROLE_STYLES,
|
|
24
25
|
NODE_TO_ROLE: () => NODE_TO_ROLE,
|
|
25
26
|
NORD_ROLE_STYLES: () => NORD_ROLE_STYLES,
|
|
26
27
|
ROLE_TO_ANSI: () => ROLE_TO_ANSI,
|
|
@@ -747,6 +748,35 @@ var NORD_ROLE_STYLES = {
|
|
|
747
748
|
noteContent: { color: "#616E88", fontStyle: "italic" },
|
|
748
749
|
default: {}
|
|
749
750
|
};
|
|
751
|
+
var LIGHT_ROLE_STYLES = {
|
|
752
|
+
keyword: { color: "#3b6ea5", fontWeight: "bold" },
|
|
753
|
+
// slate blue
|
|
754
|
+
controlKeyword: { color: "#7d5ba6", fontWeight: "bold" },
|
|
755
|
+
// purple
|
|
756
|
+
definitionKeyword: { color: "#2f5a86", fontWeight: "bold" },
|
|
757
|
+
// deep blue
|
|
758
|
+
modifier: { color: "#7d5ba6" },
|
|
759
|
+
chartType: { color: "#b8691f", fontWeight: "bold" },
|
|
760
|
+
// amber
|
|
761
|
+
operator: { color: "#c0504d", fontWeight: "bold" },
|
|
762
|
+
// red
|
|
763
|
+
number: { color: "#7d5ba6" },
|
|
764
|
+
comment: { color: "#677483", fontStyle: "italic" },
|
|
765
|
+
// muted gray
|
|
766
|
+
heading: { color: "#b8691f", fontWeight: "bold" },
|
|
767
|
+
bracket: { color: "#5b6672" },
|
|
768
|
+
separator: { color: "#2d7268" },
|
|
769
|
+
// deep teal
|
|
770
|
+
deprecatedSyntax: { color: "#c0504d", textDecoration: "line-through" },
|
|
771
|
+
url: { color: "#3b6ea5", textDecoration: "underline" },
|
|
772
|
+
colorAnnotation: { color: "#b8691f", fontStyle: "italic" },
|
|
773
|
+
punctuation: { color: "#677483" },
|
|
774
|
+
propertyName: { color: "#2d7268" },
|
|
775
|
+
string: { color: "#3f7a3b" },
|
|
776
|
+
// forest green
|
|
777
|
+
noteContent: { color: "#677483", fontStyle: "italic" },
|
|
778
|
+
default: {}
|
|
779
|
+
};
|
|
750
780
|
var ROLE_TO_ANSI = {
|
|
751
781
|
comment: "\x1B[3;90m",
|
|
752
782
|
// italic dim
|
|
@@ -812,6 +842,7 @@ function renderAnsi(tokens, useColor) {
|
|
|
812
842
|
// Annotate the CommonJS export names for ESM import in node:
|
|
813
843
|
0 && (module.exports = {
|
|
814
844
|
ATTRIBUTE_KEYS,
|
|
845
|
+
LIGHT_ROLE_STYLES,
|
|
815
846
|
NODE_TO_ROLE,
|
|
816
847
|
NORD_ROLE_STYLES,
|
|
817
848
|
ROLE_TO_ANSI,
|
package/dist/highlight.d.cts
CHANGED
|
@@ -31,10 +31,19 @@ declare function highlightDgmo(source: string): HighlightToken[];
|
|
|
31
31
|
*/
|
|
32
32
|
declare const ATTRIBUTE_KEYS: Set<string>;
|
|
33
33
|
declare const NORD_ROLE_STYLES: Record<string, Record<string, string>>;
|
|
34
|
+
/**
|
|
35
|
+
* Light-background counterpart of NORD_ROLE_STYLES for static contexts
|
|
36
|
+
* (marketing site, light-mode source panels). Same role keys — a parity test
|
|
37
|
+
* (tests/block.test.ts) guards the two maps and the `.dgmo-tok-*` rules in
|
|
38
|
+
* block/css.ts against drift. Colors are darker AA-targeting tones tuned for
|
|
39
|
+
* a light code panel (bg ~#f3f5f8). Moved here from the site repo's
|
|
40
|
+
* hand-maintained mirror (BL-114).
|
|
41
|
+
*/
|
|
42
|
+
declare const LIGHT_ROLE_STYLES: Record<string, Record<string, string>>;
|
|
34
43
|
declare const ROLE_TO_ANSI: Record<string, string>;
|
|
35
44
|
/**
|
|
36
45
|
* Render highlighted tokens to an ANSI string for terminal display.
|
|
37
46
|
*/
|
|
38
47
|
declare function renderAnsi(tokens: HighlightToken[], useColor: boolean): string;
|
|
39
48
|
|
|
40
|
-
export { ATTRIBUTE_KEYS, type HighlightToken, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, highlightDgmo, renderAnsi };
|
|
49
|
+
export { ATTRIBUTE_KEYS, type HighlightToken, LIGHT_ROLE_STYLES, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, highlightDgmo, renderAnsi };
|
package/dist/highlight.d.ts
CHANGED
|
@@ -31,10 +31,19 @@ declare function highlightDgmo(source: string): HighlightToken[];
|
|
|
31
31
|
*/
|
|
32
32
|
declare const ATTRIBUTE_KEYS: Set<string>;
|
|
33
33
|
declare const NORD_ROLE_STYLES: Record<string, Record<string, string>>;
|
|
34
|
+
/**
|
|
35
|
+
* Light-background counterpart of NORD_ROLE_STYLES for static contexts
|
|
36
|
+
* (marketing site, light-mode source panels). Same role keys — a parity test
|
|
37
|
+
* (tests/block.test.ts) guards the two maps and the `.dgmo-tok-*` rules in
|
|
38
|
+
* block/css.ts against drift. Colors are darker AA-targeting tones tuned for
|
|
39
|
+
* a light code panel (bg ~#f3f5f8). Moved here from the site repo's
|
|
40
|
+
* hand-maintained mirror (BL-114).
|
|
41
|
+
*/
|
|
42
|
+
declare const LIGHT_ROLE_STYLES: Record<string, Record<string, string>>;
|
|
34
43
|
declare const ROLE_TO_ANSI: Record<string, string>;
|
|
35
44
|
/**
|
|
36
45
|
* Render highlighted tokens to an ANSI string for terminal display.
|
|
37
46
|
*/
|
|
38
47
|
declare function renderAnsi(tokens: HighlightToken[], useColor: boolean): string;
|
|
39
48
|
|
|
40
|
-
export { ATTRIBUTE_KEYS, type HighlightToken, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, highlightDgmo, renderAnsi };
|
|
49
|
+
export { ATTRIBUTE_KEYS, type HighlightToken, LIGHT_ROLE_STYLES, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, highlightDgmo, renderAnsi };
|
package/dist/highlight.js
CHANGED
|
@@ -716,6 +716,35 @@ var NORD_ROLE_STYLES = {
|
|
|
716
716
|
noteContent: { color: "#616E88", fontStyle: "italic" },
|
|
717
717
|
default: {}
|
|
718
718
|
};
|
|
719
|
+
var LIGHT_ROLE_STYLES = {
|
|
720
|
+
keyword: { color: "#3b6ea5", fontWeight: "bold" },
|
|
721
|
+
// slate blue
|
|
722
|
+
controlKeyword: { color: "#7d5ba6", fontWeight: "bold" },
|
|
723
|
+
// purple
|
|
724
|
+
definitionKeyword: { color: "#2f5a86", fontWeight: "bold" },
|
|
725
|
+
// deep blue
|
|
726
|
+
modifier: { color: "#7d5ba6" },
|
|
727
|
+
chartType: { color: "#b8691f", fontWeight: "bold" },
|
|
728
|
+
// amber
|
|
729
|
+
operator: { color: "#c0504d", fontWeight: "bold" },
|
|
730
|
+
// red
|
|
731
|
+
number: { color: "#7d5ba6" },
|
|
732
|
+
comment: { color: "#677483", fontStyle: "italic" },
|
|
733
|
+
// muted gray
|
|
734
|
+
heading: { color: "#b8691f", fontWeight: "bold" },
|
|
735
|
+
bracket: { color: "#5b6672" },
|
|
736
|
+
separator: { color: "#2d7268" },
|
|
737
|
+
// deep teal
|
|
738
|
+
deprecatedSyntax: { color: "#c0504d", textDecoration: "line-through" },
|
|
739
|
+
url: { color: "#3b6ea5", textDecoration: "underline" },
|
|
740
|
+
colorAnnotation: { color: "#b8691f", fontStyle: "italic" },
|
|
741
|
+
punctuation: { color: "#677483" },
|
|
742
|
+
propertyName: { color: "#2d7268" },
|
|
743
|
+
string: { color: "#3f7a3b" },
|
|
744
|
+
// forest green
|
|
745
|
+
noteContent: { color: "#677483", fontStyle: "italic" },
|
|
746
|
+
default: {}
|
|
747
|
+
};
|
|
719
748
|
var ROLE_TO_ANSI = {
|
|
720
749
|
comment: "\x1B[3;90m",
|
|
721
750
|
// italic dim
|
|
@@ -780,6 +809,7 @@ function renderAnsi(tokens, useColor) {
|
|
|
780
809
|
}
|
|
781
810
|
export {
|
|
782
811
|
ATTRIBUTE_KEYS,
|
|
812
|
+
LIGHT_ROLE_STYLES,
|
|
783
813
|
NODE_TO_ROLE,
|
|
784
814
|
NORD_ROLE_STYLES,
|
|
785
815
|
ROLE_TO_ANSI,
|
package/dist/index.cjs
CHANGED
|
@@ -27475,7 +27475,6 @@ function renderEventLine(container, parsed, palette, isDark, onClickItem, export
|
|
|
27475
27475
|
const { contentW, totalH, spineY, eraBaseY, laneNear } = layout;
|
|
27476
27476
|
const svg = d3Selection6.select(container).append("svg").attr("width", contentW).attr("height", totalH).attr("viewBox", `0 0 ${contentW} ${totalH}`).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").style("font-family", FONT_FAMILY);
|
|
27477
27477
|
if (!exportMode) svg.append("style").text(HOVER_CSS);
|
|
27478
|
-
svg.append("rect").attr("width", contentW).attr("height", totalH).attr("fill", palette.bg);
|
|
27479
27478
|
if (showTitle) {
|
|
27480
27479
|
const t = svg.append("text").attr("class", "chart-title").attr("x", contentW / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("data-line-number", parsed.titleLineNumber ?? 1).text(parsed.title);
|
|
27481
27480
|
if (onClickItem && parsed.titleLineNumber) {
|
|
@@ -28041,7 +28040,7 @@ var init_renderer2 = __esm({
|
|
|
28041
28040
|
COLLAPSED = "dgmo-evt-collapsed";
|
|
28042
28041
|
OFF = "dgmo-evt-off";
|
|
28043
28042
|
HIDDEN_ATTR = "data-evt-hidden";
|
|
28044
|
-
HOVER_CSS = `.dgmo-event-dot{transition:transform .12s ease;transform-box:fill-box;transform-origin:center}.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era{transition:opacity .12s ease,filter .12s ease}.dgmo-event-dot,.dgmo-event-card,.dgmo-event-era{cursor:default}[data-legend-entry]{cursor:pointer}.${DIM}{opacity:.2}.dgmo-event-dot.${HL}{transform:scale(1.55)}.dgmo-event-leader.${HL}{stroke-opacity:1;stroke-width:2.5}.dgmo-event-card.${HL}{filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}.dgmo-event-era.${ERA_HL}{filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.dgmo-event-card.${COLLAPSED},.dgmo-event-leader.${COLLAPSED}{opacity:0;pointer-events:none}.dgmo-event-card.${COLLAPSED}.${HL},.dgmo-event-leader.${COLLAPSED}.${HL}{opacity:1;pointer-events:auto}[data-legend-entry].${OFF} text{
|
|
28043
|
+
HOVER_CSS = `.dgmo-event-dot{transition:transform .12s ease;transform-box:fill-box;transform-origin:center}.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era{transition:opacity .12s ease,filter .12s ease}.dgmo-event-dot,.dgmo-event-card,.dgmo-event-era{cursor:default}[data-legend-entry]{cursor:pointer}.${DIM}{opacity:.2}.dgmo-event-dot.${HL}{transform:scale(1.55)}.dgmo-event-leader.${HL}{stroke-opacity:1;stroke-width:2.5}.dgmo-event-card.${HL}{filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}.dgmo-event-era.${ERA_HL}{filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.dgmo-event-card.${COLLAPSED},.dgmo-event-leader.${COLLAPSED}{opacity:0;pointer-events:none}.dgmo-event-card.${COLLAPSED}.${HL},.dgmo-event-leader.${COLLAPSED}.${HL}{opacity:1;pointer-events:auto}[data-legend-entry].${OFF} text{opacity:.5}`;
|
|
28045
28044
|
DIMMABLE_SEL = ".dgmo-event-dot,.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era";
|
|
28046
28045
|
PIN_ATTR = "data-evt-pin";
|
|
28047
28046
|
}
|
|
@@ -37269,7 +37268,7 @@ function renderSwimlaneForExport(container, parsed, layout, palette, isDark, opt
|
|
|
37269
37268
|
const titleOffset = parsed.title ? 40 : 0;
|
|
37270
37269
|
const width = opts.exportDims?.width ?? layout.width;
|
|
37271
37270
|
const height = (opts.exportDims?.height ?? layout.height) + 0;
|
|
37272
|
-
const svg = d3Selection14.select(container).append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).style("font-family", FONT_FAMILY);
|
|
37271
|
+
const svg = d3Selection14.select(container).append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).attr("preserveAspectRatio", "xMidYMin meet").style("font-family", FONT_FAMILY);
|
|
37273
37272
|
const defs = svg.append("defs");
|
|
37274
37273
|
const baseBg = themeBaseBg(palette, isDark);
|
|
37275
37274
|
const ev = {
|
|
@@ -62715,7 +62714,6 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
|
|
|
62715
62714
|
const offsetX = areaX + (areaW - layout.width * scale) / 2;
|
|
62716
62715
|
const offsetY = areaY;
|
|
62717
62716
|
const svg = d3Selection31.select(container).append("svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").attr("class", "dgmo-block").style("font-family", FONT_FAMILY);
|
|
62718
|
-
svg.append("rect").attr("width", width).attr("height", height).attr("fill", palette.bg);
|
|
62719
62717
|
if (showTitle) {
|
|
62720
62718
|
const title = svg.append("text").attr("class", "chart-title").attr("x", width / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).text(parsed.title);
|
|
62721
62719
|
if (parsed.titleLineNumber !== null) {
|
package/dist/index.js
CHANGED
|
@@ -27471,7 +27471,6 @@ function renderEventLine(container, parsed, palette, isDark, onClickItem, export
|
|
|
27471
27471
|
const { contentW, totalH, spineY, eraBaseY, laneNear } = layout;
|
|
27472
27472
|
const svg = d3Selection6.select(container).append("svg").attr("width", contentW).attr("height", totalH).attr("viewBox", `0 0 ${contentW} ${totalH}`).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").style("font-family", FONT_FAMILY);
|
|
27473
27473
|
if (!exportMode) svg.append("style").text(HOVER_CSS);
|
|
27474
|
-
svg.append("rect").attr("width", contentW).attr("height", totalH).attr("fill", palette.bg);
|
|
27475
27474
|
if (showTitle) {
|
|
27476
27475
|
const t = svg.append("text").attr("class", "chart-title").attr("x", contentW / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("data-line-number", parsed.titleLineNumber ?? 1).text(parsed.title);
|
|
27477
27476
|
if (onClickItem && parsed.titleLineNumber) {
|
|
@@ -28036,7 +28035,7 @@ var init_renderer2 = __esm({
|
|
|
28036
28035
|
COLLAPSED = "dgmo-evt-collapsed";
|
|
28037
28036
|
OFF = "dgmo-evt-off";
|
|
28038
28037
|
HIDDEN_ATTR = "data-evt-hidden";
|
|
28039
|
-
HOVER_CSS = `.dgmo-event-dot{transition:transform .12s ease;transform-box:fill-box;transform-origin:center}.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era{transition:opacity .12s ease,filter .12s ease}.dgmo-event-dot,.dgmo-event-card,.dgmo-event-era{cursor:default}[data-legend-entry]{cursor:pointer}.${DIM}{opacity:.2}.dgmo-event-dot.${HL}{transform:scale(1.55)}.dgmo-event-leader.${HL}{stroke-opacity:1;stroke-width:2.5}.dgmo-event-card.${HL}{filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}.dgmo-event-era.${ERA_HL}{filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.dgmo-event-card.${COLLAPSED},.dgmo-event-leader.${COLLAPSED}{opacity:0;pointer-events:none}.dgmo-event-card.${COLLAPSED}.${HL},.dgmo-event-leader.${COLLAPSED}.${HL}{opacity:1;pointer-events:auto}[data-legend-entry].${OFF} text{
|
|
28038
|
+
HOVER_CSS = `.dgmo-event-dot{transition:transform .12s ease;transform-box:fill-box;transform-origin:center}.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era{transition:opacity .12s ease,filter .12s ease}.dgmo-event-dot,.dgmo-event-card,.dgmo-event-era{cursor:default}[data-legend-entry]{cursor:pointer}.${DIM}{opacity:.2}.dgmo-event-dot.${HL}{transform:scale(1.55)}.dgmo-event-leader.${HL}{stroke-opacity:1;stroke-width:2.5}.dgmo-event-card.${HL}{filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}.dgmo-event-era.${ERA_HL}{filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.dgmo-event-card.${COLLAPSED},.dgmo-event-leader.${COLLAPSED}{opacity:0;pointer-events:none}.dgmo-event-card.${COLLAPSED}.${HL},.dgmo-event-leader.${COLLAPSED}.${HL}{opacity:1;pointer-events:auto}[data-legend-entry].${OFF} text{opacity:.5}`;
|
|
28040
28039
|
DIMMABLE_SEL = ".dgmo-event-dot,.dgmo-event-leader,.dgmo-event-card,.dgmo-event-era";
|
|
28041
28040
|
PIN_ATTR = "data-evt-pin";
|
|
28042
28041
|
}
|
|
@@ -37265,7 +37264,7 @@ function renderSwimlaneForExport(container, parsed, layout, palette, isDark, opt
|
|
|
37265
37264
|
const titleOffset = parsed.title ? 40 : 0;
|
|
37266
37265
|
const width = opts.exportDims?.width ?? layout.width;
|
|
37267
37266
|
const height = (opts.exportDims?.height ?? layout.height) + 0;
|
|
37268
|
-
const svg = d3Selection14.select(container).append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).style("font-family", FONT_FAMILY);
|
|
37267
|
+
const svg = d3Selection14.select(container).append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).attr("preserveAspectRatio", "xMidYMin meet").style("font-family", FONT_FAMILY);
|
|
37269
37268
|
const defs = svg.append("defs");
|
|
37270
37269
|
const baseBg = themeBaseBg(palette, isDark);
|
|
37271
37270
|
const ev = {
|
|
@@ -62724,7 +62723,6 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
|
|
|
62724
62723
|
const offsetX = areaX + (areaW - layout.width * scale) / 2;
|
|
62725
62724
|
const offsetY = areaY;
|
|
62726
62725
|
const svg = d3Selection31.select(container).append("svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").attr("class", "dgmo-block").style("font-family", FONT_FAMILY);
|
|
62727
|
-
svg.append("rect").attr("width", width).attr("height", height).attr("fill", palette.bg);
|
|
62728
62726
|
if (showTitle) {
|
|
62729
62727
|
const title = svg.append("text").attr("class", "chart-title").attr("x", width / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).text(parsed.title);
|
|
62730
62728
|
if (parsed.titleLineNumber !== null) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diagrammo/dgmo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.0",
|
|
4
4
|
"description": "DGMO diagram markup language — parser, renderer, and color system",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -89,7 +89,18 @@
|
|
|
89
89
|
"default": "./dist/element.cjs"
|
|
90
90
|
}
|
|
91
91
|
},
|
|
92
|
-
"./fonts/*": "./fonts/*"
|
|
92
|
+
"./fonts/*": "./fonts/*",
|
|
93
|
+
"./block": {
|
|
94
|
+
"import": {
|
|
95
|
+
"types": "./dist/block.d.ts",
|
|
96
|
+
"default": "./dist/block.js"
|
|
97
|
+
},
|
|
98
|
+
"require": {
|
|
99
|
+
"types": "./dist/block.d.cts",
|
|
100
|
+
"default": "./dist/block.cjs"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"./block.css": "./dist/block.css"
|
|
93
104
|
},
|
|
94
105
|
"files": [
|
|
95
106
|
"dist/*.js",
|
package/src/block/renderer.ts
CHANGED
|
@@ -139,11 +139,10 @@ export function renderBlock(
|
|
|
139
139
|
.attr('class', 'dgmo-block')
|
|
140
140
|
.style('font-family', FONT_FAMILY);
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
.attr('fill', palette.bg);
|
|
142
|
+
// No opaque full-canvas background rect: the SVG's CSS `background` style
|
|
143
|
+
// (and resvg's background option on PNG export) supplies the fill, so
|
|
144
|
+
// transparent-theme / Obsidian embeds blend with the host instead of
|
|
145
|
+
// showing a dark box — matching every other chart type.
|
|
147
146
|
|
|
148
147
|
if (showTitle) {
|
|
149
148
|
const title = svg
|
|
@@ -500,6 +500,40 @@ export const NORD_ROLE_STYLES: Record<string, Record<string, string>> = {
|
|
|
500
500
|
default: {},
|
|
501
501
|
};
|
|
502
502
|
|
|
503
|
+
// ============================================================
|
|
504
|
+
// LIGHT_ROLE_STYLES — slate-light companion to NORD_ROLE_STYLES
|
|
505
|
+
// ============================================================
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* Light-background counterpart of NORD_ROLE_STYLES for static contexts
|
|
509
|
+
* (marketing site, light-mode source panels). Same role keys — a parity test
|
|
510
|
+
* (tests/block.test.ts) guards the two maps and the `.dgmo-tok-*` rules in
|
|
511
|
+
* block/css.ts against drift. Colors are darker AA-targeting tones tuned for
|
|
512
|
+
* a light code panel (bg ~#f3f5f8). Moved here from the site repo's
|
|
513
|
+
* hand-maintained mirror (BL-114).
|
|
514
|
+
*/
|
|
515
|
+
export const LIGHT_ROLE_STYLES: Record<string, Record<string, string>> = {
|
|
516
|
+
keyword: { color: '#3b6ea5', fontWeight: 'bold' }, // slate blue
|
|
517
|
+
controlKeyword: { color: '#7d5ba6', fontWeight: 'bold' }, // purple
|
|
518
|
+
definitionKeyword: { color: '#2f5a86', fontWeight: 'bold' }, // deep blue
|
|
519
|
+
modifier: { color: '#7d5ba6' },
|
|
520
|
+
chartType: { color: '#b8691f', fontWeight: 'bold' }, // amber
|
|
521
|
+
operator: { color: '#c0504d', fontWeight: 'bold' }, // red
|
|
522
|
+
number: { color: '#7d5ba6' },
|
|
523
|
+
comment: { color: '#677483', fontStyle: 'italic' }, // muted gray
|
|
524
|
+
heading: { color: '#b8691f', fontWeight: 'bold' },
|
|
525
|
+
bracket: { color: '#5b6672' },
|
|
526
|
+
separator: { color: '#2d7268' }, // deep teal
|
|
527
|
+
deprecatedSyntax: { color: '#c0504d', textDecoration: 'line-through' },
|
|
528
|
+
url: { color: '#3b6ea5', textDecoration: 'underline' },
|
|
529
|
+
colorAnnotation: { color: '#b8691f', fontStyle: 'italic' },
|
|
530
|
+
punctuation: { color: '#677483' },
|
|
531
|
+
propertyName: { color: '#2d7268' },
|
|
532
|
+
string: { color: '#3f7a3b' }, // forest green
|
|
533
|
+
noteContent: { color: '#677483', fontStyle: 'italic' },
|
|
534
|
+
default: {},
|
|
535
|
+
};
|
|
536
|
+
|
|
503
537
|
// ============================================================
|
|
504
538
|
// ROLE_TO_ANSI — ANSI escape codes for CLI output
|
|
505
539
|
// ============================================================
|
package/src/embed/css.ts
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical stylesheet for the standard DGMO embed block (BL-114).
|
|
3
|
+
*
|
|
4
|
+
* Shipped two ways: `dist/block.css` (extracted at build time by
|
|
5
|
+
* tsup.config.ts, same regex mechanism as auto.css) for `<link>`/import
|
|
6
|
+
* consumers, and the `BLOCK_CSS` string export for embedders that inject a
|
|
7
|
+
* `<style>` tag.
|
|
8
|
+
*
|
|
9
|
+
* Dark mode keys off `[data-theme="dark"]`. Hosts with a different signal
|
|
10
|
+
* (`html.dark`, `body.theme-dark`) rewrite the selector at their build step —
|
|
11
|
+
* fumadocs-dgmo/nextra-dgmo's build-css.mjs is the reference adapter.
|
|
12
|
+
*
|
|
13
|
+
* The `.dgmo-tok-*` role colors mirror LIGHT_ROLE_STYLES (light) and
|
|
14
|
+
* NORD_ROLE_STYLES (dark) from editor/highlight-api.ts. A parity test
|
|
15
|
+
* (tests/block.test.ts) guards against drift — update both when either
|
|
16
|
+
* changes.
|
|
17
|
+
*
|
|
18
|
+
* IMPORTANT: keep this a single pure template literal — the build extracts it
|
|
19
|
+
* with a regex, so no interpolation or computed values.
|
|
20
|
+
*/
|
|
21
|
+
export const BLOCK_CSS: string = `
|
|
22
|
+
/* @diagrammo/dgmo block — standard embed chrome.
|
|
23
|
+
* Override the [data-theme="dark"] selectors if your site uses .dark or
|
|
24
|
+
* another color-mode convention. */
|
|
25
|
+
|
|
26
|
+
/* === Color-mode visibility (dual-render) === */
|
|
27
|
+
.dgmo-dark {
|
|
28
|
+
display: none;
|
|
29
|
+
}
|
|
30
|
+
[data-theme="dark"] .dgmo-light {
|
|
31
|
+
display: none;
|
|
32
|
+
}
|
|
33
|
+
[data-theme="dark"] .dgmo-dark {
|
|
34
|
+
display: block;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* === Diagram sizing ===
|
|
38
|
+
* SVGs are emitted with viewBox only (no fixed width/height). Force them to
|
|
39
|
+
* fill their wrapper so light and dark variants render at identical sizes. */
|
|
40
|
+
.dgmo-light > svg,
|
|
41
|
+
.dgmo-dark > svg,
|
|
42
|
+
.dgmo-svg > svg {
|
|
43
|
+
display: block;
|
|
44
|
+
width: 100%;
|
|
45
|
+
height: auto;
|
|
46
|
+
max-width: 100%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* === Toolbar ===
|
|
50
|
+
* The diagram is the star: the toolbar is a slim reserved row below the SVG
|
|
51
|
+
* (height always in flow — no layout shift) that stays fully transparent
|
|
52
|
+
* until the block is hovered or focused, or the source panel is open. It is
|
|
53
|
+
* the <summary> of the source <details>, so toggling works without any JS.
|
|
54
|
+
* No text labels, no disclosure triangle — three wordless icon buttons. */
|
|
55
|
+
.dgmo-source-wrap {
|
|
56
|
+
margin: 0;
|
|
57
|
+
}
|
|
58
|
+
.dgmo-toolbar {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: flex-end;
|
|
62
|
+
gap: 0.25em;
|
|
63
|
+
min-height: 1.9em;
|
|
64
|
+
padding: 0.15em 0;
|
|
65
|
+
opacity: 0;
|
|
66
|
+
transition: opacity 0.15s ease;
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
list-style: none;
|
|
69
|
+
user-select: none;
|
|
70
|
+
color: rgba(127, 127, 127, 0.9);
|
|
71
|
+
}
|
|
72
|
+
.dgmo-toolbar::-webkit-details-marker {
|
|
73
|
+
display: none;
|
|
74
|
+
}
|
|
75
|
+
/* Reveal is keyed to the diagram IMAGE (the svg wrappers), not the whole
|
|
76
|
+
* figure — hovering the open code panel keeps the page quiet. The toolbar's
|
|
77
|
+
* own :hover keeps it alive while the pointer travels down from the image
|
|
78
|
+
* (they're adjacent, so there's no dead gap). focus-within covers keyboard
|
|
79
|
+
* and touch-tap. */
|
|
80
|
+
.dgmo-light:hover ~ .dgmo-source-wrap > .dgmo-toolbar,
|
|
81
|
+
.dgmo-dark:hover ~ .dgmo-source-wrap > .dgmo-toolbar,
|
|
82
|
+
.dgmo-svg:hover ~ .dgmo-source-wrap > .dgmo-toolbar,
|
|
83
|
+
.dgmo-toolbar:hover,
|
|
84
|
+
.dgmo:focus-within .dgmo-toolbar {
|
|
85
|
+
opacity: 1;
|
|
86
|
+
}
|
|
87
|
+
/* Touch devices have no hover: keep the icons faintly visible so the
|
|
88
|
+
* affordance is discoverable at all. */
|
|
89
|
+
@media (hover: none) {
|
|
90
|
+
.dgmo-toolbar {
|
|
91
|
+
opacity: 0.5;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.dgmo-toggle,
|
|
96
|
+
.dgmo-toolbar-btn {
|
|
97
|
+
display: inline-flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
justify-content: center;
|
|
100
|
+
width: 1.9em;
|
|
101
|
+
height: 1.9em;
|
|
102
|
+
border-radius: 0.35em;
|
|
103
|
+
background: none;
|
|
104
|
+
border: 0;
|
|
105
|
+
padding: 0;
|
|
106
|
+
color: inherit;
|
|
107
|
+
cursor: pointer;
|
|
108
|
+
opacity: 0.75;
|
|
109
|
+
transition:
|
|
110
|
+
opacity 0.15s ease,
|
|
111
|
+
background-color 0.15s ease;
|
|
112
|
+
}
|
|
113
|
+
.dgmo-toggle:hover,
|
|
114
|
+
.dgmo-toolbar-btn:hover {
|
|
115
|
+
opacity: 1;
|
|
116
|
+
background: rgba(127, 127, 127, 0.12);
|
|
117
|
+
}
|
|
118
|
+
.dgmo-toggle svg,
|
|
119
|
+
.dgmo-toolbar-btn svg {
|
|
120
|
+
width: 1em;
|
|
121
|
+
height: 1em;
|
|
122
|
+
}
|
|
123
|
+
/* Active state while the source panel is open. */
|
|
124
|
+
.dgmo-source-wrap[open] > .dgmo-toolbar .dgmo-toggle {
|
|
125
|
+
opacity: 1;
|
|
126
|
+
background: rgba(127, 127, 127, 0.15);
|
|
127
|
+
}
|
|
128
|
+
.dgmo-copy--success {
|
|
129
|
+
color: #5cba7a;
|
|
130
|
+
opacity: 1;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* === Open state: frame the whole block ===
|
|
134
|
+
* When the source panel is open, diagram + toolbar + code get one shared
|
|
135
|
+
* border so the code visibly belongs to the chart above it, not to the
|
|
136
|
+
* surrounding prose. Closed blocks stay frameless. */
|
|
137
|
+
.dgmo:has(> .dgmo-source-wrap[open]) {
|
|
138
|
+
border: 1px solid rgba(127, 127, 127, 0.3);
|
|
139
|
+
border-radius: 0.6em;
|
|
140
|
+
padding: 0.75em 0.75em 0.5em;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* === Source panel (hidden until toggled) === */
|
|
144
|
+
.dgmo-source-inner {
|
|
145
|
+
border-top: 1px solid rgba(127, 127, 127, 0.25);
|
|
146
|
+
background: rgba(127, 127, 127, 0.06);
|
|
147
|
+
overflow: hidden;
|
|
148
|
+
margin: 0 -0.75em -0.5em;
|
|
149
|
+
border-radius: 0 0 0.6em 0.6em;
|
|
150
|
+
}
|
|
151
|
+
.dgmo-pre {
|
|
152
|
+
white-space: pre;
|
|
153
|
+
overflow-x: auto;
|
|
154
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
155
|
+
font-size: 0.85em;
|
|
156
|
+
line-height: 1.5;
|
|
157
|
+
margin: 0;
|
|
158
|
+
padding: 1em;
|
|
159
|
+
}
|
|
160
|
+
.dgmo-code {
|
|
161
|
+
display: block;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* === Error card === */
|
|
165
|
+
.dgmo--error {
|
|
166
|
+
border: 1px solid rgba(220, 80, 80, 0.5);
|
|
167
|
+
border-radius: 0.5em;
|
|
168
|
+
padding: 0.75em 1em;
|
|
169
|
+
}
|
|
170
|
+
.dgmo--error pre {
|
|
171
|
+
white-space: pre;
|
|
172
|
+
overflow-x: auto;
|
|
173
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
174
|
+
font-size: 0.85em;
|
|
175
|
+
margin: 0.5em 0 0;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* === Source highlight roles ===
|
|
179
|
+
* Light values mirror LIGHT_ROLE_STYLES; dark overrides mirror
|
|
180
|
+
* NORD_ROLE_STYLES. Guarded by the parity test in tests/block.test.ts. */
|
|
181
|
+
.dgmo-tok-keyword {
|
|
182
|
+
color: #3b6ea5;
|
|
183
|
+
font-weight: bold;
|
|
184
|
+
}
|
|
185
|
+
.dgmo-tok-controlKeyword {
|
|
186
|
+
color: #7d5ba6;
|
|
187
|
+
font-weight: bold;
|
|
188
|
+
}
|
|
189
|
+
.dgmo-tok-definitionKeyword {
|
|
190
|
+
color: #2f5a86;
|
|
191
|
+
font-weight: bold;
|
|
192
|
+
}
|
|
193
|
+
.dgmo-tok-modifier {
|
|
194
|
+
color: #7d5ba6;
|
|
195
|
+
}
|
|
196
|
+
.dgmo-tok-chartType {
|
|
197
|
+
color: #b8691f;
|
|
198
|
+
font-weight: bold;
|
|
199
|
+
}
|
|
200
|
+
.dgmo-tok-operator {
|
|
201
|
+
color: #c0504d;
|
|
202
|
+
font-weight: bold;
|
|
203
|
+
}
|
|
204
|
+
.dgmo-tok-number {
|
|
205
|
+
color: #7d5ba6;
|
|
206
|
+
}
|
|
207
|
+
.dgmo-tok-comment {
|
|
208
|
+
color: #677483;
|
|
209
|
+
font-style: italic;
|
|
210
|
+
}
|
|
211
|
+
.dgmo-tok-heading {
|
|
212
|
+
color: #b8691f;
|
|
213
|
+
font-weight: bold;
|
|
214
|
+
}
|
|
215
|
+
.dgmo-tok-bracket {
|
|
216
|
+
color: #5b6672;
|
|
217
|
+
}
|
|
218
|
+
.dgmo-tok-separator {
|
|
219
|
+
color: #2d7268;
|
|
220
|
+
}
|
|
221
|
+
.dgmo-tok-deprecatedSyntax {
|
|
222
|
+
color: #c0504d;
|
|
223
|
+
text-decoration: line-through;
|
|
224
|
+
}
|
|
225
|
+
.dgmo-tok-url {
|
|
226
|
+
color: #3b6ea5;
|
|
227
|
+
text-decoration: underline;
|
|
228
|
+
}
|
|
229
|
+
.dgmo-tok-colorAnnotation {
|
|
230
|
+
color: #b8691f;
|
|
231
|
+
font-style: italic;
|
|
232
|
+
}
|
|
233
|
+
.dgmo-tok-punctuation {
|
|
234
|
+
color: #677483;
|
|
235
|
+
}
|
|
236
|
+
.dgmo-tok-propertyName {
|
|
237
|
+
color: #2d7268;
|
|
238
|
+
}
|
|
239
|
+
.dgmo-tok-string {
|
|
240
|
+
color: #3f7a3b;
|
|
241
|
+
}
|
|
242
|
+
.dgmo-tok-noteContent {
|
|
243
|
+
color: #677483;
|
|
244
|
+
font-style: italic;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
[data-theme="dark"] .dgmo-tok-keyword {
|
|
248
|
+
color: #81a1c1;
|
|
249
|
+
font-weight: bold;
|
|
250
|
+
}
|
|
251
|
+
[data-theme="dark"] .dgmo-tok-controlKeyword {
|
|
252
|
+
color: #b48ead;
|
|
253
|
+
font-weight: bold;
|
|
254
|
+
}
|
|
255
|
+
[data-theme="dark"] .dgmo-tok-definitionKeyword {
|
|
256
|
+
color: #5e81ac;
|
|
257
|
+
font-weight: bold;
|
|
258
|
+
}
|
|
259
|
+
[data-theme="dark"] .dgmo-tok-modifier {
|
|
260
|
+
color: #b48ead;
|
|
261
|
+
}
|
|
262
|
+
[data-theme="dark"] .dgmo-tok-chartType {
|
|
263
|
+
color: #d08770;
|
|
264
|
+
font-weight: bold;
|
|
265
|
+
}
|
|
266
|
+
[data-theme="dark"] .dgmo-tok-operator {
|
|
267
|
+
color: #bf616a;
|
|
268
|
+
font-weight: bold;
|
|
269
|
+
}
|
|
270
|
+
[data-theme="dark"] .dgmo-tok-number {
|
|
271
|
+
color: #b48ead;
|
|
272
|
+
}
|
|
273
|
+
[data-theme="dark"] .dgmo-tok-comment {
|
|
274
|
+
color: #616e88;
|
|
275
|
+
font-style: italic;
|
|
276
|
+
}
|
|
277
|
+
[data-theme="dark"] .dgmo-tok-heading {
|
|
278
|
+
color: #d08770;
|
|
279
|
+
font-weight: bold;
|
|
280
|
+
}
|
|
281
|
+
[data-theme="dark"] .dgmo-tok-bracket {
|
|
282
|
+
color: #5e81ac;
|
|
283
|
+
}
|
|
284
|
+
[data-theme="dark"] .dgmo-tok-separator {
|
|
285
|
+
color: #88c0d0;
|
|
286
|
+
}
|
|
287
|
+
[data-theme="dark"] .dgmo-tok-deprecatedSyntax {
|
|
288
|
+
color: #bf616a;
|
|
289
|
+
text-decoration: line-through;
|
|
290
|
+
}
|
|
291
|
+
[data-theme="dark"] .dgmo-tok-url {
|
|
292
|
+
color: #88c0d0;
|
|
293
|
+
text-decoration: underline;
|
|
294
|
+
}
|
|
295
|
+
[data-theme="dark"] .dgmo-tok-colorAnnotation {
|
|
296
|
+
color: #d08770;
|
|
297
|
+
font-style: italic;
|
|
298
|
+
}
|
|
299
|
+
[data-theme="dark"] .dgmo-tok-punctuation {
|
|
300
|
+
color: #616e88;
|
|
301
|
+
}
|
|
302
|
+
[data-theme="dark"] .dgmo-tok-propertyName {
|
|
303
|
+
color: #88c0d0;
|
|
304
|
+
}
|
|
305
|
+
[data-theme="dark"] .dgmo-tok-string {
|
|
306
|
+
color: #a3be8c;
|
|
307
|
+
}
|
|
308
|
+
[data-theme="dark"] .dgmo-tok-noteContent {
|
|
309
|
+
color: #616e88;
|
|
310
|
+
font-style: italic;
|
|
311
|
+
}
|
|
312
|
+
`;
|