@dr-ishaan/rehype-perfect-code-blocks 1.3.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/math.d.ts ADDED
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Math/LaTeX rendering via KaTeX (v2.1.0).
3
+ *
4
+ * Renders LaTeX at build time (server-side) — no client-side JS needed.
5
+ * `katex` is an optional peer dependency: if not installed, the plugin
6
+ * falls back to rendering the LaTeX source as plain text in a styled
7
+ * container.
8
+ *
9
+ * Supports:
10
+ * - Inline math: `$...$` in text nodes (via a remark plugin)
11
+ * - Block math: `$$...$$` blocks
12
+ * - Fenced code blocks with language `math`, `latex`, or `tex`
13
+ */
14
+ export interface MathOptions {
15
+ engine?: 'katex' | 'none';
16
+ inline?: boolean;
17
+ block?: boolean;
18
+ injectCss?: boolean;
19
+ throwOnError?: boolean;
20
+ strict?: boolean | 'ignore' | 'error' | 'warn';
21
+ }
22
+ export interface ResolvedMathOptions {
23
+ engine: 'katex' | 'none';
24
+ inline: boolean;
25
+ block: boolean;
26
+ injectCss: boolean;
27
+ throwOnError: boolean;
28
+ strict: boolean | 'ignore' | 'error' | 'warn';
29
+ }
30
+ export declare function resolveMathOptions(math?: MathOptions): ResolvedMathOptions;
31
+ /** Languages that should be rendered as math instead of syntax-highlighted. */
32
+ export declare const MATH_LANGS: Set<string>;
33
+ /**
34
+ * Check if a language identifier should be treated as math.
35
+ */
36
+ export declare function isMathLanguage(lang: string): boolean;
37
+ /**
38
+ * Render a LaTeX string to HTML via KaTeX.
39
+ *
40
+ * @param latex The LaTeX source string
41
+ * @param displayMode true for block math ($$...$$), false for inline ($...$)
42
+ * @param options Resolved math options
43
+ * @returns { html: string, isKatex: boolean } — if katex is available,
44
+ * html is the KaTeX-rendered HTML; otherwise it's the LaTeX source in a
45
+ * `<code>` element, and isKatex is false.
46
+ */
47
+ export declare function renderMath(latex: string, displayMode: boolean, options: ResolvedMathOptions): Promise<{
48
+ html: string;
49
+ isKatex: boolean;
50
+ }>;
51
+ /**
52
+ * Regex to find inline `$...$` math in text.
53
+ * Matches `$` followed by non-$ content followed by `$`.
54
+ * Does NOT match `$$` (which is block math) or escaped `\$`.
55
+ *
56
+ * Examples:
57
+ * "$x^2$" → match (inline math)
58
+ * "$$x^2$$" → NO match (block math)
59
+ * "cost is \$5" → NO match (escaped dollar sign)
60
+ * "a $ b $ c" → match "$ b $" (ambiguous, but we match it)
61
+ */
62
+ export declare const INLINE_MATH_REGEX: RegExp;
63
+ /**
64
+ * Regex to find block `$$...$$` math in text.
65
+ * Matches `$$` followed by content followed by `$$`.
66
+ */
67
+ export declare const BLOCK_MATH_REGEX: RegExp;
68
+ /**
69
+ * Process a text string, replacing inline `$...$` and block `$$...$$`
70
+ * with rendered math HTML.
71
+ *
72
+ * @param text The input text
73
+ * @param options Resolved math options
74
+ * @returns Array of { type: 'text' | 'inline-math' | 'block-math', content: string }
75
+ * segments. The caller is responsible for converting these to HAST nodes.
76
+ */
77
+ export declare function processMathInText(text: string, options: ResolvedMathOptions): Promise<Array<{
78
+ type: 'text' | 'inline-math' | 'block-math';
79
+ content: string;
80
+ html?: string;
81
+ }>>;
82
+ /**
83
+ * Get the KaTeX CSS path for injection.
84
+ * Returns the path to `katex/dist/katex.min.css` relative to the project.
85
+ */
86
+ export declare function getKatexCssPath(): string;
87
+ /**
88
+ * Try to read the KaTeX CSS content from the filesystem.
89
+ * Returns null if katex is not installed or the CSS file can't be read.
90
+ */
91
+ export declare function tryReadKatexCss(): Promise<string | null>;
92
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;CAC/C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAS1E;AAED,+EAA+E;AAC/E,eAAO,MAAM,UAAU,aAAoC,CAAC;AAoB5D;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAuB7C;AAaD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,QAAwC,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAwB,CAAC;AAEtD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAkDjG;AAsCD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAe9D"}
package/dist/math.js ADDED
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Math/LaTeX rendering via KaTeX (v2.1.0).
3
+ *
4
+ * Renders LaTeX at build time (server-side) — no client-side JS needed.
5
+ * `katex` is an optional peer dependency: if not installed, the plugin
6
+ * falls back to rendering the LaTeX source as plain text in a styled
7
+ * container.
8
+ *
9
+ * Supports:
10
+ * - Inline math: `$...$` in text nodes (via a remark plugin)
11
+ * - Block math: `$$...$$` blocks
12
+ * - Fenced code blocks with language `math`, `latex`, or `tex`
13
+ */
14
+ export function resolveMathOptions(math) {
15
+ return {
16
+ engine: math?.engine ?? 'none',
17
+ inline: math?.inline ?? true,
18
+ block: math?.block ?? true,
19
+ injectCss: math?.injectCss ?? true,
20
+ throwOnError: math?.throwOnError ?? true,
21
+ strict: math?.strict ?? false,
22
+ };
23
+ }
24
+ /** Languages that should be rendered as math instead of syntax-highlighted. */
25
+ export const MATH_LANGS = new Set(['math', 'latex', 'tex']);
26
+ /** Cache for the dynamically-imported katex module. */
27
+ let _katexModule;
28
+ /**
29
+ * Try to load the katex module. Returns null if katex is not installed.
30
+ * Caches the result so subsequent calls don't re-import.
31
+ */
32
+ async function getKatex() {
33
+ if (_katexModule !== undefined)
34
+ return _katexModule;
35
+ try {
36
+ _katexModule = await import('katex');
37
+ return _katexModule;
38
+ }
39
+ catch {
40
+ _katexModule = null;
41
+ return null;
42
+ }
43
+ }
44
+ /**
45
+ * Check if a language identifier should be treated as math.
46
+ */
47
+ export function isMathLanguage(lang) {
48
+ return MATH_LANGS.has(lang.toLowerCase());
49
+ }
50
+ /**
51
+ * Render a LaTeX string to HTML via KaTeX.
52
+ *
53
+ * @param latex The LaTeX source string
54
+ * @param displayMode true for block math ($$...$$), false for inline ($...$)
55
+ * @param options Resolved math options
56
+ * @returns { html: string, isKatex: boolean } — if katex is available,
57
+ * html is the KaTeX-rendered HTML; otherwise it's the LaTeX source in a
58
+ * `<code>` element, and isKatex is false.
59
+ */
60
+ export async function renderMath(latex, displayMode, options) {
61
+ if (options.engine === 'none') {
62
+ return { html: escapeHtml(latex), isKatex: false };
63
+ }
64
+ const katex = await getKatex();
65
+ if (!katex) {
66
+ // KaTeX not installed — fall back to plain text
67
+ return { html: escapeHtml(latex), isKatex: false };
68
+ }
69
+ try {
70
+ const html = katex.renderToString(latex, {
71
+ displayMode,
72
+ throwOnError: options.throwOnError,
73
+ strict: options.strict,
74
+ output: 'html',
75
+ });
76
+ return { html, isKatex: true };
77
+ }
78
+ catch {
79
+ // KaTeX rendering failed — fall back to plain text
80
+ return { html: escapeHtml(latex), isKatex: false };
81
+ }
82
+ }
83
+ /**
84
+ * Escape HTML special characters in a string (for the fallback path).
85
+ */
86
+ function escapeHtml(s) {
87
+ return s
88
+ .replace(/&/g, '&amp;')
89
+ .replace(/</g, '&lt;')
90
+ .replace(/>/g, '&gt;')
91
+ .replace(/"/g, '&quot;');
92
+ }
93
+ /**
94
+ * Regex to find inline `$...$` math in text.
95
+ * Matches `$` followed by non-$ content followed by `$`.
96
+ * Does NOT match `$$` (which is block math) or escaped `\$`.
97
+ *
98
+ * Examples:
99
+ * "$x^2$" → match (inline math)
100
+ * "$$x^2$$" → NO match (block math)
101
+ * "cost is \$5" → NO match (escaped dollar sign)
102
+ * "a $ b $ c" → match "$ b $" (ambiguous, but we match it)
103
+ */
104
+ export const INLINE_MATH_REGEX = /(^|[^\\$])\$(?!\$)([^$]+?)\$(?!\$)/g;
105
+ /**
106
+ * Regex to find block `$$...$$` math in text.
107
+ * Matches `$$` followed by content followed by `$$`.
108
+ */
109
+ export const BLOCK_MATH_REGEX = /\$\$([\s\S]+?)\$\$/g;
110
+ /**
111
+ * Process a text string, replacing inline `$...$` and block `$$...$$`
112
+ * with rendered math HTML.
113
+ *
114
+ * @param text The input text
115
+ * @param options Resolved math options
116
+ * @returns Array of { type: 'text' | 'inline-math' | 'block-math', content: string }
117
+ * segments. The caller is responsible for converting these to HAST nodes.
118
+ */
119
+ export async function processMathInText(text, options) {
120
+ if (options.engine === 'none' || (!options.inline && !options.block)) {
121
+ return [{ type: 'text', content: text }];
122
+ }
123
+ const segments = [];
124
+ let remaining = text;
125
+ // First, extract block math ($$...$$)
126
+ if (options.block) {
127
+ let lastIndex = 0;
128
+ let match;
129
+ const blockRegex = new RegExp(BLOCK_MATH_REGEX);
130
+ while ((match = blockRegex.exec(remaining)) !== null) {
131
+ // Text before the block math
132
+ if (match.index > lastIndex) {
133
+ const beforeText = remaining.slice(lastIndex, match.index);
134
+ // Process inline math in the text before
135
+ if (options.inline) {
136
+ const inlineSegments = await processInlineMath(beforeText, options);
137
+ segments.push(...inlineSegments);
138
+ }
139
+ else {
140
+ segments.push({ type: 'text', content: beforeText });
141
+ }
142
+ }
143
+ // The block math
144
+ const latex = match[1].trim();
145
+ const { html, isKatex } = await renderMath(latex, true, options);
146
+ segments.push({ type: 'block-math', content: latex, html });
147
+ lastIndex = match.index + match[0].length;
148
+ }
149
+ // Remaining text after the last block math
150
+ if (lastIndex < remaining.length) {
151
+ const afterText = remaining.slice(lastIndex);
152
+ if (options.inline) {
153
+ const inlineSegments = await processInlineMath(afterText, options);
154
+ segments.push(...inlineSegments);
155
+ }
156
+ else {
157
+ segments.push({ type: 'text', content: afterText });
158
+ }
159
+ }
160
+ }
161
+ else if (options.inline) {
162
+ // Only inline math
163
+ const inlineSegments = await processInlineMath(remaining, options);
164
+ segments.push(...inlineSegments);
165
+ }
166
+ else {
167
+ segments.push({ type: 'text', content: remaining });
168
+ }
169
+ return segments;
170
+ }
171
+ /**
172
+ * Process inline `$...$` math in a text string.
173
+ * Returns segments of text and inline-math.
174
+ */
175
+ async function processInlineMath(text, options) {
176
+ const segments = [];
177
+ const regex = new RegExp(INLINE_MATH_REGEX);
178
+ let lastIndex = 0;
179
+ let match;
180
+ while ((match = regex.exec(text)) !== null) {
181
+ // Text before the match (including the prefix character)
182
+ const prefix = match[1] || '';
183
+ const matchStart = match.index + prefix.length;
184
+ if (matchStart > lastIndex) {
185
+ segments.push({ type: 'text', content: text.slice(lastIndex, match.index) + prefix });
186
+ }
187
+ else if (prefix) {
188
+ segments.push({ type: 'text', content: prefix });
189
+ }
190
+ const latex = match[2].trim();
191
+ const { html } = await renderMath(latex, false, options);
192
+ segments.push({ type: 'inline-math', content: latex, html });
193
+ lastIndex = regex.lastIndex;
194
+ }
195
+ if (lastIndex < text.length) {
196
+ segments.push({ type: 'text', content: text.slice(lastIndex) });
197
+ }
198
+ return segments.length > 0 ? segments : [{ type: 'text', content: text }];
199
+ }
200
+ /**
201
+ * Get the KaTeX CSS path for injection.
202
+ * Returns the path to `katex/dist/katex.min.css` relative to the project.
203
+ */
204
+ export function getKatexCssPath() {
205
+ return 'katex/dist/katex.min.css';
206
+ }
207
+ /**
208
+ * Try to read the KaTeX CSS content from the filesystem.
209
+ * Returns null if katex is not installed or the CSS file can't be read.
210
+ */
211
+ export async function tryReadKatexCss() {
212
+ try {
213
+ const katex = await getKatex();
214
+ if (!katex)
215
+ return null;
216
+ // katex module path — try to read the CSS
217
+ const { readFileSync } = await import('node:fs');
218
+ const { createRequire } = await import('node:module');
219
+ const require = createRequire(import.meta.url);
220
+ const katexPath = require.resolve('katex');
221
+ const katexDir = katexPath.replace(/[/\\]katex\.(mjs|js|cjs)$/, '');
222
+ const cssPath = katexDir + '/katex.min.css';
223
+ return readFileSync(cssPath, 'utf8');
224
+ }
225
+ catch {
226
+ return null;
227
+ }
228
+ }
229
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shiki.d.ts","sourceRoot":"","sources":["../src/shiki.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAwFrD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ1E;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAYzC;AAgPD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CA0Tf"}
1
+ {"version":3,"file":"shiki.d.ts","sourceRoot":"","sources":["../src/shiki.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAyFrD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ1E;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAYzC;AAgPD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CA8Wf"}
package/dist/shiki.js CHANGED
@@ -15,6 +15,7 @@
15
15
  import { fromHtml } from 'hast-util-from-html';
16
16
  import { visit } from 'unist-util-visit';
17
17
  import { computeThemeAwareDefaults } from './color-utils.js';
18
+ import { isMathLanguage, renderMath, resolveMathOptions, MATH_LANGS } from './math.js';
18
19
  import { transformerNotationDiff, transformerNotationFocus, transformerNotationHighlight, transformerNotationErrorLevel, transformerNotationWordHighlight, transformerMetaHighlight, transformerMetaWordHighlight, transformerRenderWhitespace, transformerRenderIndentGuides, transformerRemoveNotationEscape, } from '@shikijs/transformers';
19
20
  // Lazily resolve a `require` function for synchronous Shiki bundle lookups.
20
21
  // In Node.js ESM we use `createRequire(import.meta.url)`. In edge runtimes
@@ -343,6 +344,48 @@ export async function runShikiOnRawBlocks(tree, opts) {
343
344
  return; // already tokenized, skip
344
345
  targets.push(node);
345
346
  });
347
+ if (targets.length === 0)
348
+ return;
349
+ // v2.1.0: Handle math language blocks — render via KaTeX instead of Shiki.
350
+ const mathOpts = resolveMathOptions(opts.math);
351
+ if (mathOpts.engine === 'katex' && mathOpts.block) {
352
+ const mathTargets = [];
353
+ const codeTargets = [];
354
+ for (const pre of targets) {
355
+ const code = pre.children.find((c) => c.type === 'element' && c.tagName === 'code');
356
+ if (!code) {
357
+ codeTargets.push(pre);
358
+ continue;
359
+ }
360
+ const cls = code.properties?.className ?? [];
361
+ const langClass = cls.find((c) => c.startsWith('language-'));
362
+ const lang = langClass ? langClass.replace('language-', '') : '';
363
+ if (isMathLanguage(lang)) {
364
+ mathTargets.push(pre);
365
+ }
366
+ else {
367
+ codeTargets.push(pre);
368
+ }
369
+ }
370
+ // Render math blocks via KaTeX
371
+ for (const pre of mathTargets) {
372
+ const code = pre.children.find((c) => c.type === 'element' && c.tagName === 'code');
373
+ if (!code)
374
+ continue;
375
+ const text = extractText(code).replace(/\r\n?/g, '\n').trim();
376
+ const { html, isKatex } = await renderMath(text, true, mathOpts);
377
+ // Replace the <pre> with rendered math
378
+ const mathDiv = {
379
+ type: 'element',
380
+ tagName: 'div',
381
+ properties: { className: ['pcb__math', isKatex ? 'pcb__math--katex' : 'pcb__math--fallback'] },
382
+ children: [{ type: 'text', value: html }],
383
+ };
384
+ Object.assign(pre, mathDiv);
385
+ }
386
+ // Only process non-math targets with Shiki
387
+ targets.splice(0, targets.length, ...codeTargets);
388
+ }
346
389
  if (targets.length === 0)
347
390
  return;
348
391
  // Build theme keys — supports single (string), dual ({light,dark}), and
@@ -373,7 +416,15 @@ export async function runShikiOnRawBlocks(tree, opts) {
373
416
  // (javascript, typescript, python). This matches Shiki's own case-
374
417
  // insensitive behavior in codeToHast/codeToHtml, and matches what every
375
418
  // other CommonMark renderer accepts. See issue #12.
376
- const langSet = new Set((opts.shiki.langs ?? []).map((l) => l.toLowerCase()));
419
+ //
420
+ // v2.1.0: When shiki.lazy is true, don't preload the user's `langs` list —
421
+ // only load languages that are actually in this document. This avoids
422
+ // loading grammars for pages that only use 1-2 languages out of a
423
+ // configured set of 20+. The lazy-load path below will load them on demand.
424
+ const isLazy = opts.shiki.lazy === true;
425
+ const langSet = new Set(isLazy
426
+ ? [] // Lazy: don't preload anything — document-specific langs added below
427
+ : (opts.shiki.langs ?? []).map((l) => l.toLowerCase()));
377
428
  for (const pre of targets) {
378
429
  const code = pre.children.find((c) => c.type === 'element' && c.tagName === 'code');
379
430
  if (!code)
package/dist/shiki.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"shiki.js","sourceRoot":"","sources":["../src/shiki.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shiki.js","sourceRoot":"","sources":["../src/shiki.ts"],"names":[],"mappings":"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"}
package/dist/styles.css CHANGED
File without changes
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Design-token bridge — derives 20+ --pcb-* variables from 5 core values.
3
+ *
4
+ * v2.0.0 feature. Uses `color-mix(in oklch, ...)` for automatic color
5
+ * derivation, which is supported in all modern browsers (Chrome 111+,
6
+ * Safari 16.4+, Firefox 113+). For older browsers, the fallback values
7
+ * from the Shiki theme (Pattern 2, v1.3.0) still apply on the <pre> element.
8
+ */
9
+ export interface DesignTokens {
10
+ bg?: string;
11
+ fg?: string;
12
+ border?: string;
13
+ radius?: string;
14
+ monoFont?: string;
15
+ }
16
+ /**
17
+ * Generate a CSS style string containing all derived --pcb-* variables
18
+ * from the 5 core token values. Returns an empty string if no tokens
19
+ * are provided.
20
+ *
21
+ * The generated CSS is applied to `:where(.pcb)` so it has zero
22
+ * specificity — user CSS always wins.
23
+ */
24
+ export declare function generateTokenStyles(tokens: DesignTokens, scope?: string): string;
25
+ /**
26
+ * Generate the dark-mode CSS selector based on the user's dark mode strategy.
27
+ *
28
+ * Returns the selector prefix that should be placed before `.pcb` in CSS rules.
29
+ * For 'media' strategy, returns empty string (the rules are wrapped in @media).
30
+ */
31
+ export declare function generateDarkModeSelector(darkMode?: {
32
+ strategy?: 'media' | 'attribute' | 'class' | 'custom';
33
+ attribute?: string;
34
+ attributeValue?: string;
35
+ class?: string;
36
+ customSelector?: string;
37
+ }, scope?: string): {
38
+ selector: string;
39
+ mediaQuery: string | null;
40
+ };
41
+ /**
42
+ * Generate the light-mode CSS selector (the inverse of dark mode).
43
+ * When dark mode is NOT active, light mode defaults apply.
44
+ */
45
+ export declare function generateLightModeSelector(darkMode?: {
46
+ strategy?: 'media' | 'attribute' | 'class' | 'custom';
47
+ attribute?: string;
48
+ attributeValue?: string;
49
+ class?: string;
50
+ customSelector?: string;
51
+ }, scope?: string): {
52
+ selector: string;
53
+ mediaQuery: string | null;
54
+ };
55
+ /**
56
+ * Apply a scope prefix to all CSS selectors in a stylesheet.
57
+ * This is a simple regex-based approach that handles the plugin's CSS
58
+ * structure. It prefixes every selector that starts with `.pcb` or
59
+ * `:where(.pcb` or `html` with the scope.
60
+ */
61
+ export declare function applyScopeToCss(css: string, scope: string): string;
62
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CA+DhF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,EACD,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAkCjD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,EACD,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAiCjD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA2BlE"}