@refrakt-md/lumina 0.14.1 → 0.14.2

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.
@@ -0,0 +1,21 @@
1
+ import type { ThemeTokensConfig } from '@refrakt-md/types';
2
+ /**
3
+ * Catppuccin — soft-pastel palette family by the Catppuccin organisation.
4
+ *
5
+ * Catppuccin publishes four flavours: **Latte** (light), Frappé, Macchiato,
6
+ * and **Mocha** (dark). Phase 1 of SPEC-057 ships the canonical pair —
7
+ * Latte for light, Mocha for dark — as a single integrated preset.
8
+ * Frappé and Macchiato (the mid-darks) defer to a future milestone.
9
+ *
10
+ * Catppuccin is unusually well-documented for an open-source palette: each
11
+ * hue has a name and a documented syntax-highlighting role. Refrakt's
12
+ * SPEC-056 extended-role contract maps cleanly onto Catppuccin's intent —
13
+ * Mauve for keywords, Blue for functions, Yellow for types, Peach for
14
+ * numbers, Pink for regex, Sky for operators.
15
+ *
16
+ * Derived from Catppuccin by the Catppuccin organisation, MIT licensed.
17
+ * https://catppuccin.com/
18
+ */
19
+ declare const catppuccin: ThemeTokensConfig;
20
+ export default catppuccin;
21
+ //# sourceMappingURL=catppuccin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catppuccin.d.ts","sourceRoot":"","sources":["../../src/presets/catppuccin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,UAAU,EAAE,iBAmFjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Catppuccin — soft-pastel palette family by the Catppuccin organisation.
3
+ *
4
+ * Catppuccin publishes four flavours: **Latte** (light), Frappé, Macchiato,
5
+ * and **Mocha** (dark). Phase 1 of SPEC-057 ships the canonical pair —
6
+ * Latte for light, Mocha for dark — as a single integrated preset.
7
+ * Frappé and Macchiato (the mid-darks) defer to a future milestone.
8
+ *
9
+ * Catppuccin is unusually well-documented for an open-source palette: each
10
+ * hue has a name and a documented syntax-highlighting role. Refrakt's
11
+ * SPEC-056 extended-role contract maps cleanly onto Catppuccin's intent —
12
+ * Mauve for keywords, Blue for functions, Yellow for types, Peach for
13
+ * numbers, Pink for regex, Sky for operators.
14
+ *
15
+ * Derived from Catppuccin by the Catppuccin organisation, MIT licensed.
16
+ * https://catppuccin.com/
17
+ */
18
+ const catppuccin = {
19
+ // Latte (light) base.
20
+ color: {
21
+ bg: '#eff1f5', // Base — canonical Latte canvas
22
+ text: '#4c4f69', // Text
23
+ muted: '#6c6f85', // Subtext0
24
+ border: '#dce0e8', // Crust — softest separator
25
+ primary: '#1e66f5', // Blue — Catppuccin's interactive accent
26
+ 'primary-hover': '#7287fd', // Lavender
27
+ surface: {
28
+ base: '#e6e9ef', // Mantle — slightly elevated card
29
+ hover: '#dce0e8', // Crust
30
+ active: '#ccd0da', // Surface0
31
+ raised: '#eff1f5',
32
+ },
33
+ code: {
34
+ bg: '#e6e9ef', // Mantle
35
+ text: '#4c4f69', // Text
36
+ 'inline-bg': '#dce0e8', // Crust
37
+ },
38
+ },
39
+ syntax: {
40
+ keyword: '#8839ef', // Mauve — keywords (declarations, control flow)
41
+ function: '#1e66f5', // Blue — function names
42
+ type: '#df8e1d', // Yellow — class/type names
43
+ string: '#40a02b', // Green — strings
44
+ constant: '#fe640b', // Peach — numbers, booleans, language constants
45
+ comment: '#9ca0b0', // Overlay0 — comments
46
+ punctuation: '#7c7f93', // Overlay2 — Catppuccin paints punctuation muted
47
+ variable: '#4c4f69', // Text — identifiers as default text
48
+ // Extended roles — Catppuccin's syntax style guide names these
49
+ number: '#fe640b', // Peach — same as constant in Catppuccin's spec
50
+ regex: '#ea76cb', // Pink — distinct from string green
51
+ tag: '#8839ef', // Mauve — JSX/HTML tags read like keywords
52
+ attribute: '#df8e1d', // Yellow — attributes align with type-family
53
+ operator: '#04a5e5', // Sky — Catppuccin's dedicated operator hue
54
+ parameter: '#e64553', // Maroon — Catppuccin uses Maroon for parameters
55
+ 'string-expression': '#ea76cb', // Pink — template interpolations
56
+ // `property`, `link` left unset (cascade through fallback).
57
+ },
58
+ modes: {
59
+ dark: {
60
+ color: {
61
+ bg: '#1e1e2e', // Base — canonical Mocha canvas
62
+ text: '#cdd6f4', // Text
63
+ muted: '#a6adc8', // Subtext0
64
+ border: '#313244', // Surface0
65
+ primary: '#89b4fa', // Blue — brighter on dark
66
+ 'primary-hover': '#b4befe', // Lavender
67
+ surface: {
68
+ base: '#181825', // Mantle
69
+ hover: '#313244', // Surface0
70
+ active: '#45475a', // Surface1
71
+ raised: '#181825',
72
+ },
73
+ code: {
74
+ bg: '#181825', // Mantle — Catppuccin's code-surface convention
75
+ text: '#cdd6f4', // Text
76
+ 'inline-bg': '#313244', // Surface0
77
+ },
78
+ },
79
+ syntax: {
80
+ keyword: '#cba6f7', // Mauve — Mocha keyword
81
+ function: '#89b4fa', // Blue
82
+ type: '#f9e2af', // Yellow
83
+ string: '#a6e3a1', // Green
84
+ constant: '#fab387', // Peach
85
+ comment: '#6c7086', // Overlay0 — Mocha comment
86
+ punctuation: '#9399b2', // Overlay2
87
+ variable: '#cdd6f4', // Text
88
+ number: '#fab387', // Peach
89
+ regex: '#f5c2e7', // Pink
90
+ tag: '#cba6f7', // Mauve
91
+ attribute: '#f9e2af', // Yellow
92
+ operator: '#89dceb', // Sky
93
+ parameter: '#eba0ac', // Maroon
94
+ 'string-expression': '#f5c2e7', // Pink
95
+ },
96
+ },
97
+ },
98
+ };
99
+ export default catppuccin;
100
+ //# sourceMappingURL=catppuccin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catppuccin.js","sourceRoot":"","sources":["../../src/presets/catppuccin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { ThemeTokensConfig } from '@refrakt-md/types';
2
+ /**
3
+ * Dracula — an *integrated* palette preset (chrome + canvas + foreground),
4
+ * dark-only.
5
+ *
6
+ * Created by Zeno Rocha and contributors. One of the most installed editor
7
+ * themes on the planet, distinguished by its purple/pink/cyan accents on a
8
+ * near-black canvas. MIT licensed.
9
+ *
10
+ * Dark-canonical with no official light variant — this preset ships only
11
+ * `modes.dark` populated. When opted in as the active site preset, Dracula
12
+ * effectively forces dark rendering (light mode has no Dracula values).
13
+ * When opted in as a scoped tint (`{% tint preset="dracula" %}`), the
14
+ * dark variables only apply when the surrounding scheme is dark or the
15
+ * page locks the section to dark via `tint-mode="dark"`.
16
+ *
17
+ * Role mapping follows Dracula's official syntax specification — the
18
+ * palette is one of the more thoroughly documented in the lineup, with
19
+ * named swatches and explicit role intent. SPEC-056's extended roles
20
+ * (`type`, `tag`, `attribute`, `operator`, `number`, `regex`) land
21
+ * cleanly on Dracula's published intent.
22
+ *
23
+ * Derived from Dracula by Zeno Rocha and contributors, MIT licensed.
24
+ * https://draculatheme.com/
25
+ */
26
+ declare const dracula: ThemeTokensConfig;
27
+ export default dracula;
28
+ //# sourceMappingURL=dracula.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dracula.d.ts","sourceRoot":"","sources":["../../src/presets/dracula.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,QAAA,MAAM,OAAO,EAAE,iBA+Cd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Dracula — an *integrated* palette preset (chrome + canvas + foreground),
3
+ * dark-only.
4
+ *
5
+ * Created by Zeno Rocha and contributors. One of the most installed editor
6
+ * themes on the planet, distinguished by its purple/pink/cyan accents on a
7
+ * near-black canvas. MIT licensed.
8
+ *
9
+ * Dark-canonical with no official light variant — this preset ships only
10
+ * `modes.dark` populated. When opted in as the active site preset, Dracula
11
+ * effectively forces dark rendering (light mode has no Dracula values).
12
+ * When opted in as a scoped tint (`{% tint preset="dracula" %}`), the
13
+ * dark variables only apply when the surrounding scheme is dark or the
14
+ * page locks the section to dark via `tint-mode="dark"`.
15
+ *
16
+ * Role mapping follows Dracula's official syntax specification — the
17
+ * palette is one of the more thoroughly documented in the lineup, with
18
+ * named swatches and explicit role intent. SPEC-056's extended roles
19
+ * (`type`, `tag`, `attribute`, `operator`, `number`, `regex`) land
20
+ * cleanly on Dracula's published intent.
21
+ *
22
+ * Derived from Dracula by Zeno Rocha and contributors, MIT licensed.
23
+ * https://draculatheme.com/
24
+ */
25
+ const dracula = {
26
+ // No light-mode values — Dracula is dark-canonical. When Dracula is
27
+ // applied as a tint to a section on a light page, chrome accents fall
28
+ // back to the surrounding theme; only the dark values below project.
29
+ modes: {
30
+ dark: {
31
+ color: {
32
+ bg: '#282a36', // Background — canonical Dracula canvas
33
+ text: '#f8f8f2', // Foreground
34
+ muted: '#6272a4', // Comment — soft slate-blue
35
+ border: '#44475a', // Current Line / Selection
36
+ primary: '#bd93f9', // Purple — Dracula's interactive accent
37
+ 'primary-hover': '#ff79c6', // Pink on hover
38
+ surface: {
39
+ base: '#44475a', // Current Line — slightly elevated card
40
+ hover: '#6272a4', // Comment slate
41
+ active: '#6272a4',
42
+ raised: '#44475a',
43
+ },
44
+ code: {
45
+ bg: '#282a36', // Same as canvas — Dracula intends a uniform dark surface
46
+ text: '#f8f8f2',
47
+ 'inline-bg': '#44475a', // Current Line — slight elevation for inline code
48
+ },
49
+ },
50
+ syntax: {
51
+ keyword: '#ff79c6', // Pink — Dracula's "keyword" colour (declarations, control flow)
52
+ function: '#50fa7b', // Green — Dracula's "method/function" colour
53
+ type: '#8be9fd', // Cyan — Dracula's "class/type" colour (the SPEC-056 motivating split)
54
+ string: '#f1fa8c', // Yellow — Dracula's "string" colour
55
+ constant: '#bd93f9', // Purple — Dracula's "boolean/null" colour
56
+ comment: '#6272a4', // Comment — soft slate-blue
57
+ punctuation: '#f8f8f2', // Foreground — Dracula uses foreground for punctuation
58
+ variable: '#f8f8f2', // Foreground — identifiers read as default text
59
+ // Extended roles where Dracula's spec has a distinct intent
60
+ number: '#bd93f9', // Purple — Dracula colours numbers with the constant family
61
+ regex: '#ff5555', // Red — Dracula's "regex" colour, distinct from string yellow
62
+ tag: '#ff79c6', // Pink — JSX/HTML tags read like keywords
63
+ attribute: '#50fa7b', // Green — JSX/HTML attributes align with function-family
64
+ operator: '#ff79c6', // Pink — Dracula treats operators as keyword-family
65
+ // `parameter`, `property`, `link`, `string-expression` left unset:
66
+ // Dracula doesn't separately spec them, so they cascade via the
67
+ // fallback chain.
68
+ },
69
+ },
70
+ },
71
+ };
72
+ export default dracula;
73
+ //# sourceMappingURL=dracula.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dracula.js","sourceRoot":"","sources":["../../src/presets/dracula.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,GAAsB;IAClC,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,KAAK,EAAE;QACN,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,EAAE,EAAE,SAAS,EAAY,wCAAwC;gBACjE,IAAI,EAAE,SAAS,EAAU,aAAa;gBACtC,KAAK,EAAE,SAAS,EAAS,4BAA4B;gBACrD,MAAM,EAAE,SAAS,EAAQ,2BAA2B;gBACpD,OAAO,EAAE,SAAS,EAAO,wCAAwC;gBACjE,eAAe,EAAE,SAAS,EAAE,gBAAgB;gBAC5C,OAAO,EAAE;oBACR,IAAI,EAAE,SAAS,EAAM,wCAAwC;oBAC7D,KAAK,EAAE,SAAS,EAAK,gBAAgB;oBACrC,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;iBACjB;gBACD,IAAI,EAAE;oBACL,EAAE,EAAE,SAAS,EAAU,0DAA0D;oBACjF,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,SAAS,EAAE,kDAAkD;iBAC1E;aACD;YACD,MAAM,EAAE;gBACP,OAAO,EAAG,SAAS,EAAG,iEAAiE;gBACvF,QAAQ,EAAE,SAAS,EAAG,6CAA6C;gBACnE,IAAI,EAAM,SAAS,EAAG,uEAAuE;gBAC7F,MAAM,EAAI,SAAS,EAAG,qCAAqC;gBAC3D,QAAQ,EAAE,SAAS,EAAG,2CAA2C;gBACjE,OAAO,EAAG,SAAS,EAAG,4BAA4B;gBAClD,WAAW,EAAE,SAAS,EAAE,uDAAuD;gBAC/E,QAAQ,EAAE,SAAS,EAAG,gDAAgD;gBAEtE,4DAA4D;gBAC5D,MAAM,EAAK,SAAS,EAAG,4DAA4D;gBACnF,KAAK,EAAM,SAAS,EAAG,8DAA8D;gBACrF,GAAG,EAAQ,SAAS,EAAG,0CAA0C;gBACjE,SAAS,EAAE,SAAS,EAAG,yDAAyD;gBAChF,QAAQ,EAAG,SAAS,EAAG,oDAAoD;gBAC3E,mEAAmE;gBACnE,gEAAgE;gBAChE,kBAAkB;aAClB;SACD;KACD;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ThemeTokensConfig } from '@refrakt-md/types';
2
+ /**
3
+ * Gruvbox — Pavel Pertsev's warm retro palette. Earthy oranges, deep greens,
4
+ * mustard yellows, and Mediterranean reds on a coffee-and-cream canvas.
5
+ *
6
+ * Gruvbox is the lineup's only **warm** palette — the counterweight to five
7
+ * blue/cool members. It's also the most "unix terminal heritage" of the
8
+ * lineup: the original gruvbox was a Vim colorscheme, and the syntax
9
+ * conventions trace from that lineage rather than the modern editor-theme
10
+ * scene.
11
+ *
12
+ * Phase 1 ships **light medium + dark medium**, the canonical pair. Gruvbox
13
+ * also ships "soft" and "hard" contrast levels per mode — those defer to a
14
+ * future milestone if there's demand.
15
+ *
16
+ * Derived from Gruvbox by Pavel Pertsev (morhetz), MIT licensed.
17
+ * https://github.com/morhetz/gruvbox
18
+ */
19
+ declare const gruvbox: ThemeTokensConfig;
20
+ export default gruvbox;
21
+ //# sourceMappingURL=gruvbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gruvbox.d.ts","sourceRoot":"","sources":["../../src/presets/gruvbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,OAAO,EAAE,iBAiFd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Gruvbox — Pavel Pertsev's warm retro palette. Earthy oranges, deep greens,
3
+ * mustard yellows, and Mediterranean reds on a coffee-and-cream canvas.
4
+ *
5
+ * Gruvbox is the lineup's only **warm** palette — the counterweight to five
6
+ * blue/cool members. It's also the most "unix terminal heritage" of the
7
+ * lineup: the original gruvbox was a Vim colorscheme, and the syntax
8
+ * conventions trace from that lineage rather than the modern editor-theme
9
+ * scene.
10
+ *
11
+ * Phase 1 ships **light medium + dark medium**, the canonical pair. Gruvbox
12
+ * also ships "soft" and "hard" contrast levels per mode — those defer to a
13
+ * future milestone if there's demand.
14
+ *
15
+ * Derived from Gruvbox by Pavel Pertsev (morhetz), MIT licensed.
16
+ * https://github.com/morhetz/gruvbox
17
+ */
18
+ const gruvbox = {
19
+ // Light medium base.
20
+ color: {
21
+ bg: '#fbf1c7', // bg0 — canonical light canvas (warm cream)
22
+ text: '#3c3836', // fg1 — default text
23
+ muted: '#928374', // gray — secondary content
24
+ border: '#d5c4a1', // bg2
25
+ primary: '#076678', // faded_blue — Gruvbox's interactive accent
26
+ 'primary-hover': '#427b58', // faded_aqua
27
+ surface: {
28
+ base: '#ebdbb2', // bg1 — slightly elevated card
29
+ hover: '#d5c4a1', // bg2
30
+ active: '#bdae93', // bg3
31
+ raised: '#fbf1c7',
32
+ },
33
+ code: {
34
+ bg: '#ebdbb2', // bg1 — code surface
35
+ text: '#3c3836',
36
+ 'inline-bg': '#d5c4a1', // bg2
37
+ },
38
+ },
39
+ syntax: {
40
+ keyword: '#9d0006', // faded_red — Statement.Keyword
41
+ function: '#b57614', // faded_yellow — function names
42
+ type: '#79740e', // faded_green — types/classes
43
+ string: '#79740e', // faded_green — strings (same family as types)
44
+ constant: '#8f3f71', // faded_purple — language constants
45
+ comment: '#928374', // gray
46
+ punctuation: '#3c3836', // fg1 — default text
47
+ variable: '#3c3836', // fg1
48
+ // Extended roles
49
+ number: '#8f3f71', // faded_purple — numbers
50
+ regex: '#af3a03', // faded_orange — regex
51
+ tag: '#9d0006', // faded_red — HTML/JSX tags
52
+ attribute: '#076678', // faded_blue — attribute names
53
+ operator: '#af3a03', // faded_orange — operators (Gruvbox's "Special")
54
+ 'string-expression': '#427b58', // faded_aqua — interpolation
55
+ // `parameter`, `property`, `link` left unset.
56
+ },
57
+ modes: {
58
+ dark: {
59
+ color: {
60
+ bg: '#282828', // bg0 — canonical dark canvas
61
+ text: '#ebdbb2', // fg1 — default text
62
+ muted: '#928374', // gray
63
+ border: '#504945', // bg2
64
+ primary: '#83a598', // bright_blue — Gruvbox's interactive accent on dark
65
+ 'primary-hover': '#8ec07c', // bright_aqua
66
+ surface: {
67
+ base: '#3c3836', // bg1
68
+ hover: '#504945', // bg2
69
+ active: '#665c54', // bg3
70
+ raised: '#3c3836',
71
+ },
72
+ code: {
73
+ bg: '#282828', // bg0 — uniform dark canvas
74
+ text: '#ebdbb2',
75
+ 'inline-bg': '#3c3836', // bg1
76
+ },
77
+ },
78
+ syntax: {
79
+ keyword: '#fb4934', // bright_red — keywords
80
+ function: '#fabd2f', // bright_yellow — functions
81
+ type: '#b8bb26', // bright_green — types
82
+ string: '#b8bb26', // bright_green — strings
83
+ constant: '#d3869b', // bright_purple — constants
84
+ comment: '#928374',
85
+ punctuation: '#ebdbb2',
86
+ variable: '#ebdbb2',
87
+ number: '#d3869b', // bright_purple — numbers
88
+ regex: '#fe8019', // bright_orange — regex
89
+ tag: '#fb4934', // bright_red — tags
90
+ attribute: '#83a598', // bright_blue — attributes
91
+ operator: '#fe8019', // bright_orange — operators
92
+ 'string-expression': '#8ec07c', // bright_aqua — interpolation
93
+ },
94
+ },
95
+ },
96
+ };
97
+ export default gruvbox;
98
+ //# sourceMappingURL=gruvbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gruvbox.js","sourceRoot":"","sources":["../../src/presets/gruvbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ThemeTokensConfig } from '@refrakt-md/types';
2
+ /**
3
+ * One Dark — Atom's signature dark theme. Created by the GitHub / Atom team.
4
+ *
5
+ * Phase 1 of SPEC-057 ships dark-only — the official "One Light" sibling
6
+ * is a separate published theme rather than a `modes` overlay on the same
7
+ * hue family, and defers to Phase 2.
8
+ *
9
+ * Important historical: Atom was the first widely-adopted editor with
10
+ * custom theme APIs, and One Dark is the palette that defined the
11
+ * "blue-grey canvas + warm accent" aesthetic now common across modern
12
+ * editors (Tokyo Night and Catppuccin Mocha both trace lineage here).
13
+ *
14
+ * Derived from One Dark by GitHub / Atom contributors, MIT licensed.
15
+ * https://github.com/atom/atom/tree/master/packages/one-dark-syntax
16
+ *
17
+ * Source variables: `packages/one-dark-syntax/styles/colors.less`.
18
+ */
19
+ declare const oneDark: ThemeTokensConfig;
20
+ export default oneDark;
21
+ //# sourceMappingURL=one-dark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"one-dark.d.ts","sourceRoot":"","sources":["../../src/presets/one-dark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,OAAO,EAAE,iBA2Cd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * One Dark — Atom's signature dark theme. Created by the GitHub / Atom team.
3
+ *
4
+ * Phase 1 of SPEC-057 ships dark-only — the official "One Light" sibling
5
+ * is a separate published theme rather than a `modes` overlay on the same
6
+ * hue family, and defers to Phase 2.
7
+ *
8
+ * Important historical: Atom was the first widely-adopted editor with
9
+ * custom theme APIs, and One Dark is the palette that defined the
10
+ * "blue-grey canvas + warm accent" aesthetic now common across modern
11
+ * editors (Tokyo Night and Catppuccin Mocha both trace lineage here).
12
+ *
13
+ * Derived from One Dark by GitHub / Atom contributors, MIT licensed.
14
+ * https://github.com/atom/atom/tree/master/packages/one-dark-syntax
15
+ *
16
+ * Source variables: `packages/one-dark-syntax/styles/colors.less`.
17
+ */
18
+ const oneDark = {
19
+ modes: {
20
+ dark: {
21
+ color: {
22
+ bg: '#282c34', // syntax-bg — canonical One Dark canvas
23
+ text: '#abb2bf', // mono-1 — default text
24
+ muted: '#828997', // mono-2 — secondary text
25
+ border: '#3e4451', // syntax-cursor-line / guide
26
+ primary: '#528bff', // syntax-accent — Atom's interactive blue
27
+ 'primary-hover': '#61afef', // hue-2 — function blue
28
+ surface: {
29
+ base: '#21252b', // background-2 — elevated card
30
+ hover: '#2c313a',
31
+ active: '#3a3f4b',
32
+ raised: '#21252b',
33
+ },
34
+ code: {
35
+ bg: '#282c34', // Same as canvas — Atom uses uniform dark surface
36
+ text: '#abb2bf',
37
+ 'inline-bg': '#3e4451', // syntax-cursor-line for inline elevation
38
+ },
39
+ },
40
+ syntax: {
41
+ keyword: '#c678dd', // hue-3 (purple) — control flow, declarations
42
+ function: '#61afef', // hue-2 (blue) — function names
43
+ type: '#e5c07b', // hue-6-2 (yellow) — class/type names
44
+ string: '#98c379', // hue-4 (green) — strings
45
+ constant: '#d19a66', // hue-6 (orange) — numbers, booleans, language constants
46
+ comment: '#5c6370', // mono-3 — comments
47
+ punctuation: '#abb2bf', // mono-1 — default text for punctuation
48
+ variable: '#e06c75', // hue-5 (red) — Atom uses red for variables / `this`
49
+ // Extended roles where One Dark has a distinct intent
50
+ number: '#d19a66', // hue-6 (orange) — same as constant; One Dark groups them
51
+ regex: '#56b6c2', // hue-1 (cyan) — distinct from string green
52
+ tag: '#e06c75', // hue-5 (red) — JSX/HTML tags
53
+ attribute: '#d19a66', // hue-6 (orange) — JSX/HTML attributes
54
+ operator: '#56b6c2', // hue-1 (cyan) — operators get their own hue
55
+ // `parameter`, `property`, `link`, `string-expression` left unset
56
+ // (cascade through fallback).
57
+ },
58
+ },
59
+ },
60
+ };
61
+ export default oneDark;
62
+ //# sourceMappingURL=one-dark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"one-dark.js","sourceRoot":"","sources":["../../src/presets/one-dark.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,GAAsB;IAClC,KAAK,EAAE;QACN,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,EAAE,EAAE,SAAS,EAAY,wCAAwC;gBACjE,IAAI,EAAE,SAAS,EAAU,wBAAwB;gBACjD,KAAK,EAAE,SAAS,EAAS,0BAA0B;gBACnD,MAAM,EAAE,SAAS,EAAQ,6BAA6B;gBACtD,OAAO,EAAE,SAAS,EAAO,0CAA0C;gBACnE,eAAe,EAAE,SAAS,EAAE,wBAAwB;gBACpD,OAAO,EAAE;oBACR,IAAI,EAAE,SAAS,EAAM,+BAA+B;oBACpD,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;iBACjB;gBACD,IAAI,EAAE;oBACL,EAAE,EAAE,SAAS,EAAU,kDAAkD;oBACzE,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,SAAS,EAAE,0CAA0C;iBAClE;aACD;YACD,MAAM,EAAE;gBACP,OAAO,EAAG,SAAS,EAAI,8CAA8C;gBACrE,QAAQ,EAAE,SAAS,EAAI,kCAAkC;gBACzD,IAAI,EAAM,SAAS,EAAI,sCAAsC;gBAC7D,MAAM,EAAI,SAAS,EAAI,2BAA2B;gBAClD,QAAQ,EAAE,SAAS,EAAI,yDAAyD;gBAChF,OAAO,EAAG,SAAS,EAAI,2BAA2B;gBAClD,WAAW,EAAE,SAAS,EAAE,8CAA8C;gBACtE,QAAQ,EAAE,SAAS,EAAI,uDAAuD;gBAE9E,sDAAsD;gBACtD,MAAM,EAAK,SAAS,EAAI,0DAA0D;gBAClF,KAAK,EAAM,SAAS,EAAI,8CAA8C;gBACtE,GAAG,EAAQ,SAAS,EAAI,iCAAiC;gBACzD,SAAS,EAAE,SAAS,EAAI,uCAAuC;gBAC/D,QAAQ,EAAG,SAAS,EAAI,+CAA+C;gBACvE,kEAAkE;gBAClE,8BAA8B;aAC9B;SACD;KACD;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { ThemeTokensConfig } from '@refrakt-md/types';
2
+ /**
3
+ * Solarized — Ethan Schoonover's iconic 2011 palette, designed for both
4
+ * light and dark canvases using the same 16 hues. The eight accent colours
5
+ * (yellow, orange, red, magenta, violet, blue, cyan, green) are identical
6
+ * across modes; only the canvas / text family flips (base3 → base03 for
7
+ * canvas, base00 → base0 for text).
8
+ *
9
+ * This is the lineup's deliberately mode-symmetric palette — the test case
10
+ * for SPEC-057's "one preset per palette identity, light + dark in
11
+ * modes.dark" decision. Most palettes shift hues between modes; Solarized
12
+ * is the exception that proves the contract handles it.
13
+ *
14
+ * The 16-colour palette:
15
+ *
16
+ * Base tones (mode-flipped):
17
+ * base03 #002b36 darkest base3 #fdf6e3 lightest
18
+ * base02 #073642 base2 #eee8d5
19
+ * base01 #586e75 comments / secondary content (both modes)
20
+ * base00 #657b83 light text / dark muted
21
+ * base0 #839496 dark text / light muted
22
+ * base1 #93a1a1 optional emphasised content
23
+ *
24
+ * Accents (identical across modes):
25
+ * yellow #b58900 type, class
26
+ * orange #cb4b16 number, identifier
27
+ * red #dc322f keyword, tag
28
+ * magenta #d33682 function (alt) — used here for string-expression
29
+ * violet #6c71c4 constant, operator
30
+ * blue #268bd2 function-call
31
+ * cyan #2aa198 string
32
+ * green #859900 comment-string, regex
33
+ *
34
+ * Derived from Solarized by Ethan Schoonover, MIT licensed.
35
+ * https://ethanschoonover.com/solarized/
36
+ */
37
+ declare const solarized: ThemeTokensConfig;
38
+ export default solarized;
39
+ //# sourceMappingURL=solarized.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solarized.d.ts","sourceRoot":"","sources":["../../src/presets/solarized.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,QAAA,MAAM,SAAS,EAAE,iBAsFhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Solarized — Ethan Schoonover's iconic 2011 palette, designed for both
3
+ * light and dark canvases using the same 16 hues. The eight accent colours
4
+ * (yellow, orange, red, magenta, violet, blue, cyan, green) are identical
5
+ * across modes; only the canvas / text family flips (base3 → base03 for
6
+ * canvas, base00 → base0 for text).
7
+ *
8
+ * This is the lineup's deliberately mode-symmetric palette — the test case
9
+ * for SPEC-057's "one preset per palette identity, light + dark in
10
+ * modes.dark" decision. Most palettes shift hues between modes; Solarized
11
+ * is the exception that proves the contract handles it.
12
+ *
13
+ * The 16-colour palette:
14
+ *
15
+ * Base tones (mode-flipped):
16
+ * base03 #002b36 darkest base3 #fdf6e3 lightest
17
+ * base02 #073642 base2 #eee8d5
18
+ * base01 #586e75 comments / secondary content (both modes)
19
+ * base00 #657b83 light text / dark muted
20
+ * base0 #839496 dark text / light muted
21
+ * base1 #93a1a1 optional emphasised content
22
+ *
23
+ * Accents (identical across modes):
24
+ * yellow #b58900 type, class
25
+ * orange #cb4b16 number, identifier
26
+ * red #dc322f keyword, tag
27
+ * magenta #d33682 function (alt) — used here for string-expression
28
+ * violet #6c71c4 constant, operator
29
+ * blue #268bd2 function-call
30
+ * cyan #2aa198 string
31
+ * green #859900 comment-string, regex
32
+ *
33
+ * Derived from Solarized by Ethan Schoonover, MIT licensed.
34
+ * https://ethanschoonover.com/solarized/
35
+ */
36
+ const solarized = {
37
+ // Light mode — base3 canvas with base00 text. The eight accents are
38
+ // shared with the dark mode (see comment in modes.dark).
39
+ color: {
40
+ bg: '#fdf6e3', // base3 — canonical light canvas
41
+ text: '#657b83', // base00 — light text
42
+ muted: '#93a1a1', // base1 — light muted / optional emphasis
43
+ border: '#eee8d5', // base2 — light secondary surface as border
44
+ primary: '#268bd2', // blue — Solarized's interactive accent
45
+ 'primary-hover': '#2aa198', // cyan
46
+ surface: {
47
+ base: '#eee8d5', // base2 — light elevated card
48
+ hover: '#fdf6e3',
49
+ active: '#eee8d5',
50
+ raised: '#fdf6e3',
51
+ },
52
+ code: {
53
+ bg: '#fdf6e3', // base3 — uniform canvas in light mode
54
+ text: '#657b83', // base00
55
+ 'inline-bg': '#eee8d5', // base2 — slight elevation for inline code
56
+ },
57
+ },
58
+ syntax: {
59
+ keyword: '#dc322f', // red — control flow, declarations
60
+ function: '#268bd2', // blue — function names
61
+ type: '#b58900', // yellow — Solarized's "class/type" colour
62
+ string: '#2aa198', // cyan — strings
63
+ constant: '#6c71c4', // violet — language constants
64
+ comment: '#93a1a1', // base1 — comments (Solarized uses lighter base in light mode)
65
+ punctuation: '#657b83', // base00 — Solarized treats punctuation as default text
66
+ variable: '#657b83', // base00 — identifiers read as default text
67
+ // Extended roles — same accent palette as the core roles
68
+ number: '#cb4b16', // orange — Solarized splits numbers from boolean-constants
69
+ regex: '#859900', // green — Solarized's "string-special" colour
70
+ tag: '#dc322f', // red — HTML/JSX tags read like keywords in Solarized
71
+ attribute: '#268bd2', // blue — attribute names align with function-family
72
+ operator: '#6c71c4', // violet — Solarized's operator colour
73
+ 'string-expression': '#d33682', // magenta — interpolations get the magenta accent
74
+ // `parameter`, `property`, `link` left unset (cascade through fallback).
75
+ },
76
+ modes: {
77
+ dark: {
78
+ color: {
79
+ bg: '#002b36', // base03 — canonical dark canvas
80
+ text: '#839496', // base0 — dark text
81
+ muted: '#586e75', // base01 — dark muted
82
+ border: '#073642', // base02 — dark secondary surface as border
83
+ primary: '#268bd2', // blue — same as light (accents are mode-symmetric)
84
+ 'primary-hover': '#2aa198', // cyan
85
+ surface: {
86
+ base: '#073642', // base02 — dark elevated card
87
+ hover: '#586e75',
88
+ active: '#586e75',
89
+ raised: '#073642',
90
+ },
91
+ code: {
92
+ bg: '#002b36', // base03 — uniform canvas in dark mode
93
+ text: '#839496', // base0
94
+ 'inline-bg': '#073642', // base02 — slight elevation
95
+ },
96
+ },
97
+ // Solarized's design intent: accent hues are mode-symmetric. The
98
+ // values below are intentionally identical to the base block —
99
+ // restated rather than omitted, so a reader looking at just the
100
+ // dark block sees the full picture.
101
+ syntax: {
102
+ keyword: '#dc322f', // red
103
+ function: '#268bd2', // blue
104
+ type: '#b58900', // yellow
105
+ string: '#2aa198', // cyan
106
+ constant: '#6c71c4', // violet
107
+ comment: '#586e75', // base01 — comments use the darker base in dark mode
108
+ punctuation: '#839496', // base0
109
+ variable: '#839496', // base0
110
+ number: '#cb4b16', // orange
111
+ regex: '#859900', // green
112
+ tag: '#dc322f', // red
113
+ attribute: '#268bd2', // blue
114
+ operator: '#6c71c4', // violet
115
+ 'string-expression': '#d33682', // magenta
116
+ },
117
+ },
118
+ },
119
+ };
120
+ export default solarized;
121
+ //# sourceMappingURL=solarized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solarized.js","sourceRoot":"","sources":["../../src/presets/solarized.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { ThemeTokensConfig } from '@refrakt-md/types';
2
+ /**
3
+ * Tokyo Night — Enkia's blue-magenta-cyan palette inspired by the city's
4
+ * neon-on-night aesthetic.
5
+ *
6
+ * Tokyo Night ships in three variants: **Storm** (dark, the canonical default),
7
+ * **Moon** (lighter dark), and **Day** (light). Phase 1 of SPEC-057 ships
8
+ * the canonical pair — Storm for dark, Day for light. Moon defers to a
9
+ * future milestone.
10
+ *
11
+ * Tokyo Night is the lineup's most aggressive role-splitter. It deliberately
12
+ * uses distinct hues for `type`, `function`, `parameter`, `keyword`, and
13
+ * `number` — exercising SPEC-056's extended role contract more thoroughly
14
+ * than any other lineup member. If Tokyo Night maps cleanly onto our
15
+ * contract, the contract was sized correctly.
16
+ *
17
+ * Derived from Tokyo Night by Enkia, MIT licensed.
18
+ * https://github.com/enkia/tokyo-night-vscode-theme
19
+ */
20
+ declare const tokyoNight: ThemeTokensConfig;
21
+ export default tokyoNight;
22
+ //# sourceMappingURL=tokyo-night.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokyo-night.d.ts","sourceRoot":"","sources":["../../src/presets/tokyo-night.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,UAAU,EAAE,iBAiFjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Tokyo Night — Enkia's blue-magenta-cyan palette inspired by the city's
3
+ * neon-on-night aesthetic.
4
+ *
5
+ * Tokyo Night ships in three variants: **Storm** (dark, the canonical default),
6
+ * **Moon** (lighter dark), and **Day** (light). Phase 1 of SPEC-057 ships
7
+ * the canonical pair — Storm for dark, Day for light. Moon defers to a
8
+ * future milestone.
9
+ *
10
+ * Tokyo Night is the lineup's most aggressive role-splitter. It deliberately
11
+ * uses distinct hues for `type`, `function`, `parameter`, `keyword`, and
12
+ * `number` — exercising SPEC-056's extended role contract more thoroughly
13
+ * than any other lineup member. If Tokyo Night maps cleanly onto our
14
+ * contract, the contract was sized correctly.
15
+ *
16
+ * Derived from Tokyo Night by Enkia, MIT licensed.
17
+ * https://github.com/enkia/tokyo-night-vscode-theme
18
+ */
19
+ const tokyoNight = {
20
+ // Day (light) base.
21
+ color: {
22
+ bg: '#e1e2e7', // editor.background — canonical Day canvas
23
+ text: '#3760bf', // editor.foreground — Day's deep-blue text
24
+ muted: '#848cb5', // comment colour
25
+ border: '#cbcdd9', // slight separator
26
+ primary: '#2e7de9', // function blue — Day's interactive accent
27
+ 'primary-hover': '#007197', // class cyan
28
+ surface: {
29
+ base: '#d6d8de', // slightly elevated card surface
30
+ hover: '#cbcdd9',
31
+ active: '#bdc0c9',
32
+ raised: '#e9eaef',
33
+ },
34
+ code: {
35
+ bg: '#d6d8de', // elevated surface for code blocks
36
+ text: '#3760bf',
37
+ 'inline-bg': '#cbcdd9',
38
+ },
39
+ },
40
+ syntax: {
41
+ keyword: '#9854f1', // magenta — Tokyo Night Day's keyword colour
42
+ function: '#2e7de9', // blue — function names
43
+ type: '#007197', // cyan — class/type names (SPEC-056 split)
44
+ string: '#587539', // deep green — strings
45
+ constant: '#b15c00', // orange — language constants
46
+ comment: '#848cb5',
47
+ punctuation: '#3760bf', // foreground for default punctuation
48
+ variable: '#3760bf',
49
+ // Extended roles — Tokyo Night's main fidelity story
50
+ number: '#b15c00', // orange — same as constant in Day; split out for traceability
51
+ regex: '#387068', // teal — distinct from string green
52
+ tag: '#f52a65', // red — JSX/HTML tags get a punchy distinct hue
53
+ attribute: '#b15c00', // orange — attributes align with number/constant family
54
+ operator: '#006c86', // teal-cyan — Tokyo Night gives operators their own hue
55
+ parameter: '#b15c00', // orange — parameters in declaration position
56
+ // `property`, `link`, `string-expression` left unset (cascade through fallback).
57
+ },
58
+ modes: {
59
+ dark: {
60
+ color: {
61
+ bg: '#24283b', // editor.background — canonical Storm canvas
62
+ text: '#c0caf5', // editor.foreground — Storm's bright lavender-white
63
+ muted: '#565f89', // comment colour
64
+ border: '#3b4261',
65
+ primary: '#7aa2f7', // function blue
66
+ 'primary-hover': '#7dcfff', // cyan
67
+ surface: {
68
+ base: '#1f2335', // slightly recessed
69
+ hover: '#2b3047',
70
+ active: '#3b4261',
71
+ raised: '#1f2335',
72
+ },
73
+ code: {
74
+ bg: '#1f2335', // Storm's deeper code surface
75
+ text: '#c0caf5',
76
+ 'inline-bg': '#2b3047',
77
+ },
78
+ },
79
+ syntax: {
80
+ keyword: '#bb9af7', // magenta — Storm keyword
81
+ function: '#7aa2f7', // blue
82
+ type: '#7dcfff', // cyan — Storm's "class/type"
83
+ string: '#9ece6a', // green
84
+ constant: '#ff9e64', // orange
85
+ comment: '#565f89',
86
+ punctuation: '#c0caf5',
87
+ variable: '#c0caf5',
88
+ number: '#ff9e64', // orange — same as constant in Storm; split out for traceability
89
+ regex: '#b4f9f8', // light cyan
90
+ tag: '#f7768e', // red — Storm's tag colour
91
+ attribute: '#e0af68', // yellow — Storm attributes get a dedicated yellow
92
+ operator: '#89ddff', // cyan-blue
93
+ parameter: '#e0af68', // yellow — Storm parameters in declaration
94
+ },
95
+ },
96
+ },
97
+ };
98
+ export default tokyoNight;
99
+ //# sourceMappingURL=tokyo-night.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokyo-night.js","sourceRoot":"","sources":["../../src/presets/tokyo-night.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,GAAsB;IACrC,oBAAoB;IACpB,KAAK,EAAE;QACN,EAAE,EAAE,SAAS,EAAY,2CAA2C;QACpE,IAAI,EAAE,SAAS,EAAW,2CAA2C;QACrE,KAAK,EAAE,SAAS,EAAU,iBAAiB;QAC3C,MAAM,EAAE,SAAS,EAAS,mBAAmB;QAC7C,OAAO,EAAE,SAAS,EAAQ,2CAA2C;QACrE,eAAe,EAAE,SAAS,EAAE,aAAa;QACzC,OAAO,EAAE;YACR,IAAI,EAAE,SAAS,EAAM,iCAAiC;YACtD,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;SACjB;QACD,IAAI,EAAE;YACL,EAAE,EAAE,SAAS,EAAU,mCAAmC;YAC1D,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;SACtB;KACD;IACD,MAAM,EAAE;QACP,OAAO,EAAG,SAAS,EAAI,6CAA6C;QACpE,QAAQ,EAAE,SAAS,EAAI,0BAA0B;QACjD,IAAI,EAAM,SAAS,EAAI,6CAA6C;QACpE,MAAM,EAAI,SAAS,EAAI,uBAAuB;QAC9C,QAAQ,EAAE,SAAS,EAAI,8BAA8B;QACrD,OAAO,EAAG,SAAS;QACnB,WAAW,EAAE,SAAS,EAAE,qCAAqC;QAC7D,QAAQ,EAAE,SAAS;QAEnB,qDAAqD;QACrD,MAAM,EAAK,SAAS,EAAI,+DAA+D;QACvF,KAAK,EAAM,SAAS,EAAI,oCAAoC;QAC5D,GAAG,EAAQ,SAAS,EAAI,gDAAgD;QACxE,SAAS,EAAE,SAAS,EAAI,wDAAwD;QAChF,QAAQ,EAAG,SAAS,EAAI,wDAAwD;QAChF,SAAS,EAAE,SAAS,EAAI,8CAA8C;QACtE,iFAAiF;KACjF;IAED,KAAK,EAAE;QACN,IAAI,EAAE;YACL,KAAK,EAAE;gBACN,EAAE,EAAE,SAAS,EAAY,6CAA6C;gBACtE,IAAI,EAAE,SAAS,EAAU,oDAAoD;gBAC7E,KAAK,EAAE,SAAS,EAAS,iBAAiB;gBAC1C,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,SAAS,EAAO,gBAAgB;gBACzC,eAAe,EAAE,SAAS,EAAE,OAAO;gBACnC,OAAO,EAAE;oBACR,IAAI,EAAE,SAAS,EAAM,oBAAoB;oBACzC,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;iBACjB;gBACD,IAAI,EAAE;oBACL,EAAE,EAAE,SAAS,EAAU,8BAA8B;oBACrD,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,SAAS;iBACtB;aACD;YACD,MAAM,EAAE;gBACP,OAAO,EAAG,SAAS,EAAI,0BAA0B;gBACjD,QAAQ,EAAE,SAAS,EAAI,OAAO;gBAC9B,IAAI,EAAM,SAAS,EAAI,8BAA8B;gBACrD,MAAM,EAAI,SAAS,EAAI,QAAQ;gBAC/B,QAAQ,EAAE,SAAS,EAAI,SAAS;gBAChC,OAAO,EAAG,SAAS;gBACnB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,SAAS;gBAEnB,MAAM,EAAK,SAAS,EAAI,iEAAiE;gBACzF,KAAK,EAAM,SAAS,EAAI,aAAa;gBACrC,GAAG,EAAQ,SAAS,EAAI,2BAA2B;gBACnD,SAAS,EAAE,SAAS,EAAI,mDAAmD;gBAC3E,QAAQ,EAAG,SAAS,EAAI,YAAY;gBACpC,SAAS,EAAE,SAAS,EAAI,2CAA2C;aACnE;SACD;KACD;CACD,CAAC;AAEF,eAAe,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/lumina",
3
3
  "description": "Lumina theme for refrakt.md — design tokens, CSS, identity transform, and layout configs",
4
- "version": "0.14.1",
4
+ "version": "0.14.2",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -39,6 +39,30 @@
39
39
  "types": "./dist/presets/nord.d.ts",
40
40
  "default": "./dist/presets/nord.js"
41
41
  },
42
+ "./presets/dracula": {
43
+ "types": "./dist/presets/dracula.d.ts",
44
+ "default": "./dist/presets/dracula.js"
45
+ },
46
+ "./presets/solarized": {
47
+ "types": "./dist/presets/solarized.d.ts",
48
+ "default": "./dist/presets/solarized.js"
49
+ },
50
+ "./presets/catppuccin": {
51
+ "types": "./dist/presets/catppuccin.d.ts",
52
+ "default": "./dist/presets/catppuccin.js"
53
+ },
54
+ "./presets/tokyo-night": {
55
+ "types": "./dist/presets/tokyo-night.d.ts",
56
+ "default": "./dist/presets/tokyo-night.js"
57
+ },
58
+ "./presets/one-dark": {
59
+ "types": "./dist/presets/one-dark.d.ts",
60
+ "default": "./dist/presets/one-dark.js"
61
+ },
62
+ "./presets/gruvbox": {
63
+ "types": "./dist/presets/gruvbox.d.ts",
64
+ "default": "./dist/presets/gruvbox.js"
65
+ },
42
66
  "./styles/runes/*.css": "./styles/runes/*.css",
43
67
  "./assets/logo/prism.svg": "./assets/logo/prism.svg",
44
68
  "./assets/*": "./assets/*"
@@ -59,9 +83,9 @@
59
83
  "build": "tsc"
60
84
  },
61
85
  "dependencies": {
62
- "@refrakt-md/runes": "0.14.1",
63
- "@refrakt-md/transform": "0.14.1",
64
- "@refrakt-md/types": "0.14.1"
86
+ "@refrakt-md/runes": "0.14.2",
87
+ "@refrakt-md/transform": "0.14.2",
88
+ "@refrakt-md/types": "0.14.2"
65
89
  },
66
90
  "devDependencies": {
67
91
  "postcss": "^8.4.0"