@diagrammo/dgmo 0.47.0 → 0.48.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced.js +11 -11
- package/dist/auto.js +16 -16
- package/dist/auto.mjs +41 -12
- package/dist/block.js +4 -4
- package/dist/{chunk-FNB3PNGF.js → chunk-7DTWEFUE.js} +3 -3
- package/dist/{chunk-2DXMZRWJ.js → chunk-B65G5DNL.js} +8 -1
- package/dist/{chunk-RZCF2VVM.js → chunk-B7JUCQUA.js} +3 -1
- package/dist/{chunk-DU7W62N5.js → chunk-FANX6UJR.js} +3 -3
- package/dist/{chunk-6FZYCKXB.js → chunk-HSH73DP6.js} +2 -2
- package/dist/{chunk-P4RH4OSP.js → chunk-ILKORZ3H.js} +2 -2
- package/dist/{chunk-Y5QGVTVC.js → chunk-JTSMEYIZ.js} +7 -3
- package/dist/{chunk-RCERWOJR.js → chunk-ODZVHU3R.js} +1 -2
- package/dist/{chunk-DZAQBW35.js → chunk-SGZYXELT.js} +3 -7
- package/dist/{chunk-CUVHQHZ7.js → chunk-THXCFRTU.js} +3 -3
- package/dist/{chunk-IH6ZMVQ5.js → chunk-UC7TFHUM.js} +29 -11
- package/dist/{chunk-EMS2SK26.js → chunk-ZBWMSD5N.js} +3 -1
- package/dist/cli.cjs +15 -15
- package/dist/{dgmo-router-DZCIDUO5.js → dgmo-router-X35VLZLM.js} +3 -3
- package/dist/element.js +16 -16
- package/dist/element.mjs +41 -12
- package/dist/{flowchart-renderer-ZAEOL4DX.js → flowchart-renderer-SNDSII4D.js} +2 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -4
- package/dist/{parser-FUSKFGZN.js → parser-2EWECDSA.js} +2 -2
- package/dist/{renderer-UWA5XS74.js → renderer-4JHRUBE6.js} +3 -3
- package/dist/{renderer-WZRREQ2P.js → renderer-5MYBMBYO.js} +2 -2
- package/dist/{renderer-TOCOVLHS.js → renderer-B2OMQIQG.js} +3 -3
- package/dist/{renderer-2XQQQ6QR.js → renderer-N43WR5GV.js} +3 -3
- package/dist/{renderer-T7YKC5VP.js → renderer-ZRNG54CW.js} +3 -3
- package/dist/{state-renderer-RFYHSP4K.js → state-renderer-B4DQBM6M.js} +2 -2
- package/package.json +23 -71
- 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/palettes/nord.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { PaletteConfig } from './types';
|
|
2
|
-
import { registerPalette } from './registry';
|
|
3
|
-
|
|
4
|
-
// ============================================================
|
|
5
|
-
// Nord Palette Definition
|
|
6
|
-
// ============================================================
|
|
7
|
-
|
|
8
|
-
export const nordPalette: PaletteConfig = {
|
|
9
|
-
id: 'nord',
|
|
10
|
-
name: 'Nord',
|
|
11
|
-
light: {
|
|
12
|
-
bg: '#eceff4', // nord6
|
|
13
|
-
surface: '#e5e9f0', // nord5
|
|
14
|
-
overlay: '#d8dee9', // nord4 (muted/secondary backgrounds)
|
|
15
|
-
border: '#d8dee9', // nord4
|
|
16
|
-
text: '#2e3440', // nord0
|
|
17
|
-
textMuted: '#4c566a', // nord3
|
|
18
|
-
textOnFillLight: '#eceff4', // nord6
|
|
19
|
-
textOnFillDark: '#2e3440', // nord0
|
|
20
|
-
primary: '#5e81ac', // nord10
|
|
21
|
-
secondary: '#81a1c1', // nord9
|
|
22
|
-
accent: '#81a1c1', // nord9
|
|
23
|
-
destructive: '#bf616a', // nord11
|
|
24
|
-
colors: {
|
|
25
|
-
red: '#bf616a', // nord11
|
|
26
|
-
orange: '#d08770', // nord12
|
|
27
|
-
yellow: '#ebcb8b', // nord13
|
|
28
|
-
green: '#a3be8c', // nord14
|
|
29
|
-
blue: '#5e81ac', // nord10
|
|
30
|
-
purple: '#b48ead', // nord15
|
|
31
|
-
teal: '#8fbcbb', // nord7
|
|
32
|
-
cyan: '#88c0d0', // nord8
|
|
33
|
-
gray: '#4c566a', // nord3
|
|
34
|
-
black: '#2e3440',
|
|
35
|
-
white: '#e5e9f0',
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
dark: {
|
|
39
|
-
bg: '#2e3440', // nord0
|
|
40
|
-
surface: '#3b4252', // nord1
|
|
41
|
-
overlay: '#434c5e', // nord2
|
|
42
|
-
border: '#4c566a', // nord3
|
|
43
|
-
text: '#eceff4', // nord6
|
|
44
|
-
textMuted: '#d8dee9', // nord4
|
|
45
|
-
textOnFillLight: '#eceff4', // nord6
|
|
46
|
-
textOnFillDark: '#2e3440', // nord0
|
|
47
|
-
primary: '#88c0d0', // nord8 (different from light's nord10)
|
|
48
|
-
secondary: '#81a1c1', // nord9
|
|
49
|
-
accent: '#81a1c1', // nord9
|
|
50
|
-
destructive: '#bf616a', // nord11
|
|
51
|
-
colors: {
|
|
52
|
-
red: '#bf616a', // nord11
|
|
53
|
-
orange: '#d08770', // nord12
|
|
54
|
-
yellow: '#ebcb8b', // nord13
|
|
55
|
-
green: '#a3be8c', // nord14
|
|
56
|
-
blue: '#5e81ac', // nord10
|
|
57
|
-
purple: '#b48ead', // nord15
|
|
58
|
-
teal: '#8fbcbb', // nord7
|
|
59
|
-
cyan: '#88c0d0', // nord8
|
|
60
|
-
gray: '#4c566a', // nord3
|
|
61
|
-
black: '#3b4252',
|
|
62
|
-
white: '#eceff4',
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
registerPalette(nordPalette);
|
package/src/palettes/registry.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import type { PaletteConfig, PaletteColors } from './types';
|
|
2
|
-
|
|
3
|
-
// ============================================================
|
|
4
|
-
// Constants
|
|
5
|
-
// ============================================================
|
|
6
|
-
|
|
7
|
-
const PALETTE_REGISTRY = new Map<string, PaletteConfig>();
|
|
8
|
-
const DEFAULT_PALETTE_ID = 'slate';
|
|
9
|
-
|
|
10
|
-
// ============================================================
|
|
11
|
-
// Validation
|
|
12
|
-
// ============================================================
|
|
13
|
-
|
|
14
|
-
/** Validate that a hex string is well-formed (#RGB or #RRGGBB). */
|
|
15
|
-
export function isValidHex(value: string): boolean {
|
|
16
|
-
return /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(value);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/** Named color keys that must be present in PaletteColors.colors. */
|
|
20
|
-
const COLOR_KEYS: (keyof PaletteColors['colors'])[] = [
|
|
21
|
-
'red',
|
|
22
|
-
'orange',
|
|
23
|
-
'yellow',
|
|
24
|
-
'green',
|
|
25
|
-
'blue',
|
|
26
|
-
'purple',
|
|
27
|
-
'teal',
|
|
28
|
-
'cyan',
|
|
29
|
-
'gray',
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
/** Semantic color keys that must be present at the top level of PaletteColors. */
|
|
33
|
-
const SEMANTIC_KEYS: (keyof Omit<PaletteColors, 'colors'>)[] = [
|
|
34
|
-
'bg',
|
|
35
|
-
'surface',
|
|
36
|
-
'overlay',
|
|
37
|
-
'border',
|
|
38
|
-
'text',
|
|
39
|
-
'textMuted',
|
|
40
|
-
'primary',
|
|
41
|
-
'secondary',
|
|
42
|
-
'accent',
|
|
43
|
-
'destructive',
|
|
44
|
-
];
|
|
45
|
-
|
|
46
|
-
function validatePaletteColors(
|
|
47
|
-
colors: PaletteColors,
|
|
48
|
-
mode: string,
|
|
49
|
-
paletteId: string
|
|
50
|
-
): void {
|
|
51
|
-
for (const key of SEMANTIC_KEYS) {
|
|
52
|
-
const value = colors[key];
|
|
53
|
-
if (typeof value !== 'string' || !isValidHex(value)) {
|
|
54
|
-
throw new Error(
|
|
55
|
-
`Palette "${paletteId}" ${mode}.${key}: invalid hex "${value}"`
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
for (const key of COLOR_KEYS) {
|
|
60
|
-
const value = colors.colors[key];
|
|
61
|
-
if (typeof value !== 'string' || !isValidHex(value)) {
|
|
62
|
-
throw new Error(
|
|
63
|
-
`Palette "${paletteId}" ${mode}.colors.${key}: invalid hex "${value}"`
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// ============================================================
|
|
70
|
-
// Registry Functions
|
|
71
|
-
// ============================================================
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Register a palette. Called at module initialization.
|
|
75
|
-
* Validates that all 19 color fields per mode are present and valid hex.
|
|
76
|
-
* Throws on malformed palettes to catch errors at startup, not at render time.
|
|
77
|
-
*/
|
|
78
|
-
export function registerPalette(palette: PaletteConfig): void {
|
|
79
|
-
validatePaletteColors(palette.light, 'light', palette.id);
|
|
80
|
-
validatePaletteColors(palette.dark, 'dark', palette.id);
|
|
81
|
-
PALETTE_REGISTRY.set(palette.id, palette);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/** Get palette by id. Silently returns the default palette if id is unrecognized. */
|
|
85
|
-
export function getPalette(id: string): PaletteConfig {
|
|
86
|
-
return PALETTE_REGISTRY.get(id) ?? PALETTE_REGISTRY.get(DEFAULT_PALETTE_ID)!;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Resolve a palette by id, falling back to the default palette when the id is
|
|
91
|
-
* unregistered. If a `warn` callback is supplied, it is invoked once with a
|
|
92
|
-
* human-readable fallback message on a miss — the single place the "resolve,
|
|
93
|
-
* fall back, warn" policy lives, so each host can surface it its own way
|
|
94
|
-
* (console.warn, Obsidian Notice, MCP response). Silent when the id resolves or
|
|
95
|
-
* when no callback is passed.
|
|
96
|
-
*/
|
|
97
|
-
export function resolvePaletteOrFallback(
|
|
98
|
-
id: string,
|
|
99
|
-
warn?: (message: string) => void
|
|
100
|
-
): PaletteConfig {
|
|
101
|
-
const found = PALETTE_REGISTRY.get(id);
|
|
102
|
-
if (found) return found;
|
|
103
|
-
warn?.(
|
|
104
|
-
`Palette "${id}" is not registered — falling back to "${DEFAULT_PALETTE_ID}".`
|
|
105
|
-
);
|
|
106
|
-
return PALETTE_REGISTRY.get(DEFAULT_PALETTE_ID)!;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/** List all registered palettes alphabetically (for the selector UI). */
|
|
110
|
-
export function getAvailablePalettes(): PaletteConfig[] {
|
|
111
|
-
return Array.from(PALETTE_REGISTRY.values()).sort((a, b) =>
|
|
112
|
-
a.name.localeCompare(b.name)
|
|
113
|
-
);
|
|
114
|
-
}
|
package/src/palettes/slate.ts
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { PaletteConfig } from './types';
|
|
2
|
-
import { registerPalette } from './registry';
|
|
3
|
-
|
|
4
|
-
// ============================================================
|
|
5
|
-
// Slate Palette Definition
|
|
6
|
-
// ============================================================
|
|
7
|
-
//
|
|
8
|
-
// A restrained, presentation-grade palette for professional decks and
|
|
9
|
-
// reports — the "not very stylistic" option done tastefully. Clean white
|
|
10
|
-
// (or deep slate) ground, one confident corporate blue, neutral cool-gray
|
|
11
|
-
// surfaces, and a categorical rotation tuned to a single perceived weight
|
|
12
|
-
// so no series shouts. Replaces the harsh primary-RGB feel of "bold".
|
|
13
|
-
|
|
14
|
-
export const slatePalette: PaletteConfig = {
|
|
15
|
-
id: 'slate',
|
|
16
|
-
name: 'Slate',
|
|
17
|
-
light: {
|
|
18
|
-
bg: '#ffffff', // clean slide white
|
|
19
|
-
surface: '#f3f5f8', // light cool-gray panel
|
|
20
|
-
overlay: '#eaeef3', // popovers, dropdowns
|
|
21
|
-
border: '#d4dae1', // hairline rule
|
|
22
|
-
text: '#1f2933', // near-black slate (softer than pure black)
|
|
23
|
-
textMuted: '#5b6672', // secondary label
|
|
24
|
-
textOnFillLight: '#ffffff', // light text on dark fills
|
|
25
|
-
textOnFillDark: '#1f2933', // dark text on light fills
|
|
26
|
-
primary: '#3b6ea5', // confident corporate blue
|
|
27
|
-
secondary: '#5b6672', // slate gray
|
|
28
|
-
accent: '#3a9188', // muted teal accent
|
|
29
|
-
destructive: '#c0504d', // brick red
|
|
30
|
-
colors: {
|
|
31
|
-
red: '#c0504d', // brick
|
|
32
|
-
orange: '#cc7a33', // muted amber
|
|
33
|
-
yellow: '#c9a227', // gold (not neon)
|
|
34
|
-
green: '#5b9357', // forest / sage
|
|
35
|
-
blue: '#3b6ea5', // corporate blue
|
|
36
|
-
purple: '#7d5ba6', // muted violet
|
|
37
|
-
teal: '#3a9188', // teal
|
|
38
|
-
cyan: '#4f96c4', // steel cyan
|
|
39
|
-
gray: '#7e8a97', // cool gray
|
|
40
|
-
black: '#1f2933', // slate ink
|
|
41
|
-
white: '#f3f5f8', // panel
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
dark: {
|
|
45
|
-
bg: '#161b22', // deep slate (keynote dark)
|
|
46
|
-
surface: '#202833', // raised panel
|
|
47
|
-
overlay: '#29323e', // popovers, dropdowns
|
|
48
|
-
border: '#38424f', // divider
|
|
49
|
-
text: '#e6eaef', // off-white
|
|
50
|
-
textMuted: '#9aa5b1', // secondary label
|
|
51
|
-
textOnFillLight: '#ffffff', // light text on dark fills
|
|
52
|
-
textOnFillDark: '#161b22', // dark text on light fills
|
|
53
|
-
primary: '#5b9bd5', // lifted corporate blue
|
|
54
|
-
secondary: '#8593a3', // slate gray, lifted
|
|
55
|
-
accent: '#45b3a3', // teal, lifted
|
|
56
|
-
destructive: '#e07b6e', // brick, lifted
|
|
57
|
-
colors: {
|
|
58
|
-
red: '#e07b6e', // brick
|
|
59
|
-
orange: '#e0975a', // amber
|
|
60
|
-
yellow: '#d9bd5a', // gold
|
|
61
|
-
green: '#74b56e', // forest / sage
|
|
62
|
-
blue: '#5b9bd5', // corporate blue
|
|
63
|
-
purple: '#a585c9', // violet
|
|
64
|
-
teal: '#45b3a3', // teal
|
|
65
|
-
cyan: '#62b0d9', // steel cyan
|
|
66
|
-
gray: '#95a1ae', // cool gray
|
|
67
|
-
black: '#202833', // raised panel
|
|
68
|
-
white: '#e6eaef', // off-white
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
registerPalette(slatePalette);
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { PaletteConfig } from './types';
|
|
2
|
-
import { registerPalette } from './registry';
|
|
3
|
-
|
|
4
|
-
// ============================================================
|
|
5
|
-
// Tidewater Palette Definition
|
|
6
|
-
// ============================================================
|
|
7
|
-
//
|
|
8
|
-
// A nautical, maritime-chart palette — on-brand with Diagrammo's seafaring
|
|
9
|
-
// voice. Weathered sea-mist paper with deep ship's-log navy ink, rope/manila
|
|
10
|
-
// tan, brass, signal-flag red, and sea-glass greens (light). Dark mode dives
|
|
11
|
-
// to a night-harbor deep-sea ground with the same rigging lifted to read on
|
|
12
|
-
// the dark water.
|
|
13
|
-
|
|
14
|
-
export const tidewaterPalette: PaletteConfig = {
|
|
15
|
-
id: 'tidewater',
|
|
16
|
-
name: 'Tidewater',
|
|
17
|
-
light: {
|
|
18
|
-
bg: '#eceff0', // weathered sea-mist paper
|
|
19
|
-
surface: '#e0e4e3', // worn deck panel
|
|
20
|
-
overlay: '#dadfdf', // popovers, dropdowns
|
|
21
|
-
border: '#a9b2b3', // muted slate rule
|
|
22
|
-
text: '#18313f', // ship's-log navy ink
|
|
23
|
-
textMuted: '#51636b', // faded log entry
|
|
24
|
-
textOnFillLight: '#f3f5f3', // weathered white
|
|
25
|
-
textOnFillDark: '#162c38', // deep navy
|
|
26
|
-
primary: '#1f4e6b', // deep-sea navy
|
|
27
|
-
secondary: '#b08a4f', // rope / manila tan
|
|
28
|
-
accent: '#c69a3e', // brass
|
|
29
|
-
destructive: '#c1433a', // signal-flag red
|
|
30
|
-
colors: {
|
|
31
|
-
red: '#c1433a', // signal-flag red
|
|
32
|
-
orange: '#cc7a38', // weathered amber
|
|
33
|
-
yellow: '#d6bf5a', // brass gold
|
|
34
|
-
green: '#4f8a6b', // sea-glass green
|
|
35
|
-
blue: '#1f4e6b', // deep-sea navy
|
|
36
|
-
purple: '#6a5a8c', // twilight harbor
|
|
37
|
-
teal: '#3d8c8c', // sea-glass teal
|
|
38
|
-
cyan: '#4f9bb5', // shallow water
|
|
39
|
-
gray: '#8a8d86', // driftwood gray
|
|
40
|
-
black: '#18313f', // navy ink
|
|
41
|
-
white: '#e0e4e3', // deck panel
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
dark: {
|
|
45
|
-
bg: '#0f2230', // night-harbor deep sea
|
|
46
|
-
surface: '#16303f', // raised hull
|
|
47
|
-
overlay: '#1d3a4a', // popovers, dropdowns
|
|
48
|
-
border: '#2c4856', // rigging line
|
|
49
|
-
text: '#e6ebe8', // weathered white
|
|
50
|
-
textMuted: '#9aaab0', // faded label
|
|
51
|
-
textOnFillLight: '#f3f5f3', // weathered white
|
|
52
|
-
textOnFillDark: '#0f2230', // deep sea
|
|
53
|
-
primary: '#4f9bc4', // lifted sea blue
|
|
54
|
-
secondary: '#c9a46a', // rope tan, lifted
|
|
55
|
-
accent: '#d9b25a', // brass, lifted
|
|
56
|
-
destructive: '#e06a5e', // signal red, lifted
|
|
57
|
-
colors: {
|
|
58
|
-
red: '#e06a5e', // signal-flag red
|
|
59
|
-
orange: '#df9a52', // amber
|
|
60
|
-
yellow: '#e0c662', // brass gold
|
|
61
|
-
green: '#6fb58c', // sea-glass green
|
|
62
|
-
blue: '#4f9bc4', // sea blue
|
|
63
|
-
purple: '#9486bf', // twilight harbor
|
|
64
|
-
teal: '#5cb0ac', // sea-glass teal
|
|
65
|
-
cyan: '#62b4cf', // shallow water
|
|
66
|
-
gray: '#9aa39c', // driftwood gray
|
|
67
|
-
black: '#16303f', // raised hull
|
|
68
|
-
white: '#e6ebe8', // weathered white
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
registerPalette(tidewaterPalette);
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import type { PaletteConfig } from './types';
|
|
2
|
-
import { registerPalette } from './registry';
|
|
3
|
-
|
|
4
|
-
// ============================================================
|
|
5
|
-
// Tokyo Night Palette Definition
|
|
6
|
-
// ============================================================
|
|
7
|
-
|
|
8
|
-
// Official Tokyo Night colors: https://github.com/folke/tokyonight.nvim
|
|
9
|
-
//
|
|
10
|
-
// Night (dark):
|
|
11
|
-
// bg #1a1b26 | bg_highlight #292e42 | terminal_black #414868
|
|
12
|
-
// fg_gutter #3b4261 | fg #c0caf5 | fg_dark #a9b1d6
|
|
13
|
-
// comment #565f89
|
|
14
|
-
//
|
|
15
|
-
// Day (light):
|
|
16
|
-
// bg #e1e2e7 | bg_float #d0d5e3 | bg_highlight #c4c8da
|
|
17
|
-
// fg_gutter #a8aecb | fg #3760bf | fg_dark #6172b0
|
|
18
|
-
// dark3 #8990b3
|
|
19
|
-
//
|
|
20
|
-
// Accents (Day / Night):
|
|
21
|
-
// Red #f52a65 / #f7768e | Orange #b15c00 / #ff9e64
|
|
22
|
-
// Yellow #8c6c3e / #e0af68 | Green #587539 / #9ece6a
|
|
23
|
-
// Blue #2e7de9 / #7aa2f7 | Purple #7847bd / #bb9af7
|
|
24
|
-
// Teal #118c74 / #1abc9c | Cyan #007197 / #7dcfff
|
|
25
|
-
// Magenta #9854f1 / #bb9af7
|
|
26
|
-
|
|
27
|
-
export const tokyoNightPalette: PaletteConfig = {
|
|
28
|
-
id: 'tokyo-night',
|
|
29
|
-
name: 'Tokyo Night',
|
|
30
|
-
light: {
|
|
31
|
-
bg: '#e1e2e7', // Day bg
|
|
32
|
-
surface: '#d0d5e3', // Day bg_float
|
|
33
|
-
overlay: '#c4c8da', // Day bg_highlight
|
|
34
|
-
border: '#a8aecb', // Day fg_gutter
|
|
35
|
-
text: '#3760bf', // Day fg
|
|
36
|
-
textMuted: '#6172b0', // Day fg_dark
|
|
37
|
-
textOnFillLight: '#e1e2e7', // Day bg
|
|
38
|
-
textOnFillDark: '#1a1b26', // Night bg (deep dark)
|
|
39
|
-
primary: '#2e7de9', // Day blue
|
|
40
|
-
secondary: '#007197', // Day cyan
|
|
41
|
-
accent: '#9854f1', // Day magenta
|
|
42
|
-
destructive: '#f52a65', // Day red
|
|
43
|
-
colors: {
|
|
44
|
-
red: '#f52a65',
|
|
45
|
-
orange: '#b15c00',
|
|
46
|
-
yellow: '#8c6c3e',
|
|
47
|
-
green: '#587539',
|
|
48
|
-
blue: '#2e7de9',
|
|
49
|
-
purple: '#7847bd',
|
|
50
|
-
teal: '#118c74',
|
|
51
|
-
cyan: '#007197',
|
|
52
|
-
gray: '#8990b3', // Day dark3
|
|
53
|
-
black: '#1a1b26',
|
|
54
|
-
white: '#d0d5e3',
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
dark: {
|
|
58
|
-
bg: '#1a1b26', // Night bg
|
|
59
|
-
surface: '#292e42', // Night bg_highlight
|
|
60
|
-
overlay: '#414868', // Night terminal_black
|
|
61
|
-
border: '#3b4261', // Night fg_gutter
|
|
62
|
-
text: '#c0caf5', // Night fg
|
|
63
|
-
textMuted: '#a9b1d6', // Night fg_dark
|
|
64
|
-
textOnFillLight: '#c0caf5', // Night fg
|
|
65
|
-
textOnFillDark: '#1a1b26', // Night bg
|
|
66
|
-
primary: '#7aa2f7', // Night blue
|
|
67
|
-
secondary: '#7dcfff', // Night cyan
|
|
68
|
-
accent: '#bb9af7', // Night magenta
|
|
69
|
-
destructive: '#f7768e', // Night red
|
|
70
|
-
colors: {
|
|
71
|
-
red: '#f7768e',
|
|
72
|
-
orange: '#ff9e64',
|
|
73
|
-
yellow: '#e0af68',
|
|
74
|
-
green: '#9ece6a',
|
|
75
|
-
blue: '#7aa2f7',
|
|
76
|
-
purple: '#bb9af7',
|
|
77
|
-
teal: '#1abc9c',
|
|
78
|
-
cyan: '#7dcfff',
|
|
79
|
-
gray: '#565f89', // Night comment
|
|
80
|
-
black: '#292e42',
|
|
81
|
-
white: '#c0caf5',
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
registerPalette(tokyoNightPalette);
|
package/src/palettes/types.ts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Palette Type Definitions
|
|
3
|
-
// ============================================================
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Color definitions for a single mode (light or dark).
|
|
7
|
-
* 10 semantic UI colors + 9 named accent colors = 19 total.
|
|
8
|
-
*
|
|
9
|
-
* `readonly` on every field (and the nested `colors` map) by design —
|
|
10
|
-
* palettes flow from the registry into every renderer; nothing in the
|
|
11
|
-
* pipeline should ever mutate a palette in place.
|
|
12
|
-
*/
|
|
13
|
-
export interface PaletteColors {
|
|
14
|
-
// ── Surface hierarchy ──────────────────────────────────
|
|
15
|
-
/** Main background (#eceff4 light / #2e3440 dark for Nord) */
|
|
16
|
-
readonly bg: string;
|
|
17
|
-
/** Cards, panels (#e5e9f0 / #3b4252) */
|
|
18
|
-
readonly surface: string;
|
|
19
|
-
/** Popovers, dropdowns (#e5e9f0 / #434c5e) */
|
|
20
|
-
readonly overlay: string;
|
|
21
|
-
/** Borders, dividers, muted (#d8dee9 / #4c566a) */
|
|
22
|
-
readonly border: string;
|
|
23
|
-
|
|
24
|
-
// ── Text hierarchy ─────────────────────────────────────
|
|
25
|
-
/** Primary text (#2e3440 / #eceff4) */
|
|
26
|
-
readonly text: string;
|
|
27
|
-
/** Secondary/diminished text (#4c566a / #d8dee9) */
|
|
28
|
-
readonly textMuted: string;
|
|
29
|
-
|
|
30
|
-
// ── Contrast tokens for text-on-fill ───────────────────
|
|
31
|
-
/**
|
|
32
|
-
* Light-mode arg for `contrastText()` when text is rendered on a
|
|
33
|
-
* tinted shape fill (e.g. `shapeFill()` output). Must guarantee
|
|
34
|
-
* ≥ 4.5:1 WCAG AA against any `shapeFill()` the palette can produce.
|
|
35
|
-
* Distinct from `colors.white` because palette-aesthetic anchors don't
|
|
36
|
-
* always meet contrast requirements (TD-5).
|
|
37
|
-
*/
|
|
38
|
-
readonly textOnFillLight: string;
|
|
39
|
-
/** Dark-mode counterpart to `textOnFillLight`. */
|
|
40
|
-
readonly textOnFillDark: string;
|
|
41
|
-
|
|
42
|
-
// ── Semantic accents ───────────────────────────────────
|
|
43
|
-
/** Primary accent — buttons, links */
|
|
44
|
-
readonly primary: string;
|
|
45
|
-
/** Secondary accent */
|
|
46
|
-
readonly secondary: string;
|
|
47
|
-
/** Tertiary accent */
|
|
48
|
-
readonly accent: string;
|
|
49
|
-
/** Error/danger */
|
|
50
|
-
readonly destructive: string;
|
|
51
|
-
|
|
52
|
-
// ── Named accent colors ────────────────────────────────
|
|
53
|
-
/**
|
|
54
|
-
* Used for: inline annotations (red), pie charts, cScale,
|
|
55
|
-
* series rotation, journey actors, Gantt tasks.
|
|
56
|
-
*/
|
|
57
|
-
readonly colors: {
|
|
58
|
-
readonly red: string;
|
|
59
|
-
readonly orange: string;
|
|
60
|
-
readonly yellow: string;
|
|
61
|
-
readonly green: string;
|
|
62
|
-
readonly blue: string;
|
|
63
|
-
readonly purple: string;
|
|
64
|
-
readonly teal: string;
|
|
65
|
-
readonly cyan: string;
|
|
66
|
-
readonly gray: string;
|
|
67
|
-
readonly black: string;
|
|
68
|
-
readonly white: string;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Complete palette definition. One object per color scheme.
|
|
74
|
-
* This is what palette authors create — the single artifact for NFR1.
|
|
75
|
-
*
|
|
76
|
-
* Palettes are immutable from the consumer's perspective; the registry
|
|
77
|
-
* hands out the same frozen-shape object on every `getPalette(id)`.
|
|
78
|
-
*/
|
|
79
|
-
export interface PaletteConfig {
|
|
80
|
-
/** Registry key: 'nord', 'slate', 'catppuccin' */
|
|
81
|
-
readonly id: string;
|
|
82
|
-
/** Display name: 'Nord', 'Slate', 'Catppuccin' */
|
|
83
|
-
readonly name: string;
|
|
84
|
-
/** Light mode color definitions */
|
|
85
|
-
readonly light: PaletteColors;
|
|
86
|
-
/** Dark mode color definitions */
|
|
87
|
-
readonly dark: PaletteColors;
|
|
88
|
-
}
|