@dr-ishaan/rehype-perfect-code-blocks 1.3.3 → 2.0.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/CHANGELOG.md +89 -0
- package/dist/astro.d.ts.map +1 -1
- package/dist/astro.js +17 -2
- package/dist/astro.js.map +1 -1
- package/dist/copy-script.d.ts +0 -0
- package/dist/copy-script.d.ts.map +0 -0
- package/dist/copy-script.js +0 -0
- package/dist/copy-script.js.map +0 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/styles.css +0 -0
- package/dist/tokens.d.ts +62 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +168 -0
- package/dist/tokens.js.map +1 -0
- package/dist/transformer.d.ts.map +1 -1
- package/dist/transformer.js +5 -0
- package/dist/transformer.js.map +1 -1
- package/dist/types.d.ts +150 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/astro.ts +20 -2
- package/src/copy-script.ts +0 -0
- package/src/index.ts +10 -1
- package/src/styles.css +0 -0
- package/src/tokens.ts +223 -0
- package/src/transformer.ts +5 -0
- package/src/types.ts +157 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,95 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.0.0] — 2026-06-20
|
|
9
|
+
|
|
10
|
+
### Summary
|
|
11
|
+
|
|
12
|
+
**Major release** implementing the four P0 CSS architecture items from the v2.0.0 roadmap. These are the foundational cascade-control features that every production site needs to adopt the plugin without fighting the CSS cascade. No breaking changes — all new features are opt-in with backward-compatible defaults.
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
#### P0-1: `@layer` CSS injection support
|
|
17
|
+
|
|
18
|
+
New `cssInjection` and `cssLayer` options:
|
|
19
|
+
|
|
20
|
+
- `cssInjection: 'inline'` (default, backward-compatible) — injects CSS in a `<style>` tag as before
|
|
21
|
+
- `cssInjection: 'layer'` — wraps CSS in `@layer <cssLayer> { ... }` so it sits in the correct cascade layer on sites using `@layer` (Tailwind v3+, daisyUI, etc.)
|
|
22
|
+
- `cssInjection: 'import'` — does NOT inject CSS; user imports manually via `import '@dr-ishaan/rehype-perfect-code-blocks/styles.css'`
|
|
23
|
+
- `cssLayer: 'pcb'` (default) — the layer name to use when `cssInjection: 'layer'`
|
|
24
|
+
|
|
25
|
+
Example:
|
|
26
|
+
```js
|
|
27
|
+
perfectCode({
|
|
28
|
+
cssInjection: 'layer',
|
|
29
|
+
cssLayer: 'components',
|
|
30
|
+
})
|
|
31
|
+
// User's CSS: @layer base, components, utilities;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
#### P0-2: Design-token bridge
|
|
35
|
+
|
|
36
|
+
New `tokens` option — provide 5 core values and the plugin auto-derives 20+ `--pcb-*` variables using `color-mix(in oklch, ...)`:
|
|
37
|
+
|
|
38
|
+
```js
|
|
39
|
+
perfectCode({
|
|
40
|
+
tokens: {
|
|
41
|
+
bg: 'var(--bg-subtle)',
|
|
42
|
+
fg: 'var(--ink)',
|
|
43
|
+
border: 'var(--rule)',
|
|
44
|
+
radius: 'var(--radius-card)',
|
|
45
|
+
monoFont: 'var(--font-mono)',
|
|
46
|
+
},
|
|
47
|
+
})
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The plugin generates `--pcb-ln-fg`, `--pcb-bg-header`, `--pcb-line-highlight`, `--pcb-line-add`, `--pcb-line-del`, `--pcb-line-focus`, `--pcb-copy-hover-bg`, `--pcb-word-bg`, and more — all derived from the 5 core tokens. Applied via `:where(.pcb)` (zero specificity) so user CSS still wins.
|
|
51
|
+
|
|
52
|
+
Uses `color-mix(in oklch, ...)` (Chrome 111+, Safari 16.4+, Firefox 113+). For older browsers, the v1.3.0 theme-aware defaults from Shiki still apply.
|
|
53
|
+
|
|
54
|
+
#### P0-3: Dark mode strategy options
|
|
55
|
+
|
|
56
|
+
New `darkMode` option — controls how the plugin switches between light and dark themes:
|
|
57
|
+
|
|
58
|
+
- `strategy: 'media'` (default, backward-compatible) — uses `@media (prefers-color-scheme: dark)`
|
|
59
|
+
- `strategy: 'attribute'` — switches on `html[data-theme="dark"]` (configurable attribute + value)
|
|
60
|
+
- `strategy: 'class'` — switches on `html.dark` (configurable class name)
|
|
61
|
+
- `strategy: 'custom'` — switches on a user-provided CSS selector
|
|
62
|
+
|
|
63
|
+
Example:
|
|
64
|
+
```js
|
|
65
|
+
perfectCode({
|
|
66
|
+
darkMode: { strategy: 'class', class: 'dark' },
|
|
67
|
+
})
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
#### P0-4: CSS containment scope
|
|
71
|
+
|
|
72
|
+
New `scope` option — prefixes all generated CSS selectors with the given scope:
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
perfectCode({
|
|
76
|
+
scope: '.prose',
|
|
77
|
+
})
|
|
78
|
+
// All selectors become: .prose .pcb { ... }, .prose .pcb__copy { ... }, etc.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Applied to ALL generated CSS including the framework-reset overrides, token-bridge CSS, and dark-mode selectors.
|
|
82
|
+
|
|
83
|
+
### New exports
|
|
84
|
+
|
|
85
|
+
- `generateTokenStyles(tokens, scope?)` — generates the derived `--pcb-*` CSS
|
|
86
|
+
- `applyScopeToCss(css, scope)` — prefixes all selectors in a CSS string
|
|
87
|
+
- `generateDarkModeSelector(darkMode, scope?)` — generates the dark-mode CSS selector
|
|
88
|
+
- `generateLightModeSelector(darkMode, scope?)` — generates the light-mode CSS selector
|
|
89
|
+
- `DesignTokens` type — the token bridge input interface
|
|
90
|
+
|
|
91
|
+
### Verification
|
|
92
|
+
|
|
93
|
+
- All 1134 pre-existing tests pass (no regressions).
|
|
94
|
+
- New `test-v2-css-architecture.mjs` adds 43 regression tests covering all 4 P0 features.
|
|
95
|
+
- Total: 1177/1177 tests passing.
|
|
96
|
+
|
|
8
97
|
## [1.3.3] — 2026-06-20
|
|
9
98
|
|
|
10
99
|
### Summary
|
package/dist/astro.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../src/astro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAI9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../src/astro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAI9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA0DrD,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,OAAO,GAAE,kBAAuB,GAC/B,gBAAgB,CAyHlB"}
|
package/dist/astro.js
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { rehypePerfectCodeBlocks } from './index.js';
|
|
20
20
|
import { remarkPreserveCodeMeta } from './remark.js';
|
|
21
21
|
import { COPY_SCRIPT } from './copy-script.js';
|
|
22
|
+
import { generateTokenStyles, applyScopeToCss } from './tokens.js';
|
|
22
23
|
import { readFileSync } from 'node:fs';
|
|
23
24
|
import { readdirSync, writeFileSync, readFileSync as readFile } from 'node:fs';
|
|
24
25
|
import { fileURLToPath } from 'node:url';
|
|
@@ -112,9 +113,23 @@ export default function perfectCode(options = {}) {
|
|
|
112
113
|
// so they pass a strict Content-Security-Policy.
|
|
113
114
|
const nonceAttr = options.cspNonce ? ` nonce="${escapeAttr(options.cspNonce)}"` : '';
|
|
114
115
|
// CSS
|
|
115
|
-
if (options.injectStyles !== false) {
|
|
116
|
-
|
|
116
|
+
if (options.injectStyles !== false && options.cssInjection !== 'import') {
|
|
117
|
+
let css = loadCss();
|
|
117
118
|
if (css) {
|
|
119
|
+
// v2.0.0: Apply CSS scope if configured
|
|
120
|
+
if (options.scope) {
|
|
121
|
+
css = applyScopeToCss(css, options.scope);
|
|
122
|
+
}
|
|
123
|
+
// v2.0.0: Generate token-bridge CSS (derived --pcb-* variables)
|
|
124
|
+
const tokenCss = generateTokenStyles(options.tokens ?? {}, options.scope);
|
|
125
|
+
if (tokenCss) {
|
|
126
|
+
css = css + '\n' + tokenCss;
|
|
127
|
+
}
|
|
128
|
+
// v2.0.0: Wrap in @layer if configured
|
|
129
|
+
const layerName = options.cssLayer ?? 'pcb';
|
|
130
|
+
if (options.cssInjection === 'layer') {
|
|
131
|
+
css = `@layer ${layerName} {\n${css}\n}`;
|
|
132
|
+
}
|
|
118
133
|
injections.push(`<style data-pcb${nonceAttr}>${css}</style>`);
|
|
119
134
|
}
|
|
120
135
|
}
|
package/dist/astro.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro.js","sourceRoot":"","sources":["../src/astro.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"astro.js","sourceRoot":"","sources":["../src/astro.ts"],"names":[],"mappings":"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"}
|
package/dist/copy-script.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/copy-script.js
CHANGED
|
File without changes
|
package/dist/copy-script.js.map
CHANGED
|
File without changes
|
package/dist/index.d.ts
CHANGED
|
@@ -22,11 +22,14 @@ import { disposeHighlighter, runHighlighterTask } from './shiki.js';
|
|
|
22
22
|
import { remarkPreserveCodeMeta } from './remark.js';
|
|
23
23
|
import { wordDiff, hasChanges } from './word-diff.js';
|
|
24
24
|
import type { DiffToken } from './word-diff.js';
|
|
25
|
+
import { generateTokenStyles, applyScopeToCss, generateDarkModeSelector, generateLightModeSelector } from './tokens.js';
|
|
26
|
+
import type { DesignTokens } from './tokens.js';
|
|
25
27
|
import type { PerfectCodeOptions } from './types.js';
|
|
26
28
|
export { remarkPreserveCodeMeta };
|
|
27
29
|
export { disposeHighlighter, runHighlighterTask };
|
|
28
30
|
export { wordDiff, hasChanges };
|
|
29
|
-
export
|
|
31
|
+
export { generateTokenStyles, applyScopeToCss, generateDarkModeSelector, generateLightModeSelector };
|
|
32
|
+
export type { DiffToken, DesignTokens };
|
|
30
33
|
export declare const rehypePerfectCodeBlocks: Plugin<[PerfectCodeOptions?], Root>;
|
|
31
34
|
export default rehypePerfectCodeBlocks;
|
|
32
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAuB,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAChC,YAAY,EAAE,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAuB,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,CAAC;AACrG,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAExC,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAmBrE,CAAC;AAEJ,eAAe,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -20,9 +20,11 @@ import { rehypePerfectCodeBlocks as transformer } from './transformer.js';
|
|
|
20
20
|
import { runShikiOnRawBlocks, disposeHighlighter, runHighlighterTask } from './shiki.js';
|
|
21
21
|
import { remarkPreserveCodeMeta } from './remark.js';
|
|
22
22
|
import { wordDiff, hasChanges } from './word-diff.js';
|
|
23
|
+
import { generateTokenStyles, applyScopeToCss, generateDarkModeSelector, generateLightModeSelector } from './tokens.js';
|
|
23
24
|
export { remarkPreserveCodeMeta };
|
|
24
25
|
export { disposeHighlighter, runHighlighterTask };
|
|
25
26
|
export { wordDiff, hasChanges };
|
|
27
|
+
export { generateTokenStyles, applyScopeToCss, generateDarkModeSelector, generateLightModeSelector };
|
|
26
28
|
export const rehypePerfectCodeBlocks = (options = {}) => {
|
|
27
29
|
const engine = options.engine ?? 'auto';
|
|
28
30
|
const opts = options;
|
|
@@ -143,6 +145,12 @@ function resolveDefaults(opts) {
|
|
|
143
145
|
preset: opts.preset ?? 'default',
|
|
144
146
|
injectStyles: opts.injectStyles ?? true,
|
|
145
147
|
theme: opts.theme ?? 'auto',
|
|
148
|
+
// v2.0.0: CSS Architecture options
|
|
149
|
+
cssInjection: opts.cssInjection ?? 'inline',
|
|
150
|
+
cssLayer: opts.cssLayer ?? 'pcb',
|
|
151
|
+
tokens: opts.tokens ?? undefined,
|
|
152
|
+
darkMode: opts.darkMode ?? undefined,
|
|
153
|
+
scope: opts.scope ?? undefined,
|
|
146
154
|
inline: opts.inline ?? false,
|
|
147
155
|
};
|
|
148
156
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,uBAAuB,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
File without changes
|
package/dist/tokens.d.ts
ADDED
|
@@ -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"}
|
package/dist/tokens.js
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
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
|
+
/**
|
|
10
|
+
* Generate a CSS style string containing all derived --pcb-* variables
|
|
11
|
+
* from the 5 core token values. Returns an empty string if no tokens
|
|
12
|
+
* are provided.
|
|
13
|
+
*
|
|
14
|
+
* The generated CSS is applied to `:where(.pcb)` so it has zero
|
|
15
|
+
* specificity — user CSS always wins.
|
|
16
|
+
*/
|
|
17
|
+
export function generateTokenStyles(tokens, scope) {
|
|
18
|
+
if (!tokens || Object.keys(tokens).length === 0)
|
|
19
|
+
return '';
|
|
20
|
+
const { bg, fg, border, radius, monoFont } = tokens;
|
|
21
|
+
if (!bg && !fg && !border && !radius && !monoFont)
|
|
22
|
+
return '';
|
|
23
|
+
const scopePrefix = scope ? `${scope} ` : '';
|
|
24
|
+
const lines = [];
|
|
25
|
+
// Direct mappings (1:1)
|
|
26
|
+
if (bg)
|
|
27
|
+
lines.push(` --pcb-bg: ${bg};`);
|
|
28
|
+
if (fg)
|
|
29
|
+
lines.push(` --pcb-fg: ${fg};`);
|
|
30
|
+
if (border)
|
|
31
|
+
lines.push(` --pcb-border: ${border};`);
|
|
32
|
+
if (radius)
|
|
33
|
+
lines.push(` --pcb-radius: ${radius};`);
|
|
34
|
+
if (monoFont)
|
|
35
|
+
lines.push(` --pcb-font-mono: ${monoFont};`);
|
|
36
|
+
// Derived mappings (auto-computed from core values via color-mix)
|
|
37
|
+
// Only derive if BOTH bg and fg are available (needed for color-mix)
|
|
38
|
+
if (bg && fg) {
|
|
39
|
+
// Line numbers: muted (50% mix of fg over bg)
|
|
40
|
+
lines.push(` --pcb-text-muted: color-mix(in oklch, ${fg}, ${bg} 50%);`);
|
|
41
|
+
lines.push(` --pcb-ln-fg: color-mix(in oklch, ${fg}, ${bg} 50%);`);
|
|
42
|
+
// Header bar background: slightly different from body (5% fg over bg)
|
|
43
|
+
lines.push(` --pcb-bg-header: color-mix(in oklch, ${fg} 5%, ${bg});`);
|
|
44
|
+
// Header text: muted (30% fg mixed toward bg)
|
|
45
|
+
lines.push(` --pcb-text-bar: color-mix(in oklch, ${fg}, ${bg} 30%);`);
|
|
46
|
+
// Line highlight: subtle tint (12% fg over bg)
|
|
47
|
+
lines.push(` --pcb-line-highlight: color-mix(in oklch, ${fg} 12%, ${bg});`);
|
|
48
|
+
// Diff add: green tint (18% green over bg)
|
|
49
|
+
lines.push(` --pcb-line-add: color-mix(in oklch, #2ea043 18%, ${bg});`);
|
|
50
|
+
// Diff del: red tint (18% red over bg)
|
|
51
|
+
lines.push(` --pcb-line-del: color-mix(in oklch, #f85149 18%, ${bg});`);
|
|
52
|
+
// Focus: blue tint (18% blue over bg)
|
|
53
|
+
lines.push(` --pcb-line-focus: color-mix(in oklch, #58a6ff 18%, ${bg});`);
|
|
54
|
+
// Copy button hover background: subtle (8% fg over bg)
|
|
55
|
+
lines.push(` --pcb-copy-hover-bg: color-mix(in oklch, ${fg} 8%, ${bg});`);
|
|
56
|
+
// Gutter background: same as bg by default
|
|
57
|
+
lines.push(` --pcb-bg-gutter: ${bg};`);
|
|
58
|
+
// Caption background: slightly different (like header)
|
|
59
|
+
lines.push(` --pcb-caption-bg: color-mix(in oklch, ${fg} 5%, ${bg});`);
|
|
60
|
+
// Caption color: muted (like header text)
|
|
61
|
+
lines.push(` --pcb-caption-color: color-mix(in oklch, ${fg}, ${bg} 30%);`);
|
|
62
|
+
// Word highlight: gold tint (30% gold over bg)
|
|
63
|
+
lines.push(` --pcb-word-bg: color-mix(in oklch, #bb8009 30%, ${bg});`);
|
|
64
|
+
// Word highlight (id): blue tint (30% blue over bg)
|
|
65
|
+
lines.push(` --pcb-word-bg-id: color-mix(in oklch, #58a6ff 30%, ${bg});`);
|
|
66
|
+
}
|
|
67
|
+
if (lines.length === 0)
|
|
68
|
+
return '';
|
|
69
|
+
return `:where(${scopePrefix}.pcb) {\n${lines.join('\n')}\n}`;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Generate the dark-mode CSS selector based on the user's dark mode strategy.
|
|
73
|
+
*
|
|
74
|
+
* Returns the selector prefix that should be placed before `.pcb` in CSS rules.
|
|
75
|
+
* For 'media' strategy, returns empty string (the rules are wrapped in @media).
|
|
76
|
+
*/
|
|
77
|
+
export function generateDarkModeSelector(darkMode, scope) {
|
|
78
|
+
const scopePrefix = scope ? `${scope} ` : '';
|
|
79
|
+
if (!darkMode || darkMode.strategy === 'media' || !darkMode.strategy) {
|
|
80
|
+
// Default: prefers-color-scheme media query
|
|
81
|
+
return { selector: '', mediaQuery: 'prefers-color-scheme: dark' };
|
|
82
|
+
}
|
|
83
|
+
if (darkMode.strategy === 'attribute') {
|
|
84
|
+
const attr = darkMode.attribute ?? 'data-theme';
|
|
85
|
+
const val = darkMode.attributeValue ?? 'dark';
|
|
86
|
+
return {
|
|
87
|
+
selector: `html[${attr}="${val}"] ${scopePrefix}`.trim(),
|
|
88
|
+
mediaQuery: null,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (darkMode.strategy === 'class') {
|
|
92
|
+
const cls = darkMode.class ?? 'dark';
|
|
93
|
+
return {
|
|
94
|
+
selector: `html.${cls} ${scopePrefix}`.trim(),
|
|
95
|
+
mediaQuery: null,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (darkMode.strategy === 'custom') {
|
|
99
|
+
const sel = darkMode.customSelector ?? ':root';
|
|
100
|
+
return {
|
|
101
|
+
selector: `${sel} ${scopePrefix}`.trim(),
|
|
102
|
+
mediaQuery: null,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
return { selector: '', mediaQuery: 'prefers-color-scheme: dark' };
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Generate the light-mode CSS selector (the inverse of dark mode).
|
|
109
|
+
* When dark mode is NOT active, light mode defaults apply.
|
|
110
|
+
*/
|
|
111
|
+
export function generateLightModeSelector(darkMode, scope) {
|
|
112
|
+
const scopePrefix = scope ? `${scope} ` : '';
|
|
113
|
+
if (!darkMode || darkMode.strategy === 'media' || !darkMode.strategy) {
|
|
114
|
+
return { selector: '', mediaQuery: 'prefers-color-scheme: light' };
|
|
115
|
+
}
|
|
116
|
+
if (darkMode.strategy === 'attribute') {
|
|
117
|
+
const attr = darkMode.attribute ?? 'data-theme';
|
|
118
|
+
const val = darkMode.attributeValue ?? 'dark';
|
|
119
|
+
// Light = when the attribute is NOT the dark value
|
|
120
|
+
return {
|
|
121
|
+
selector: `html:not([${attr}="${val}"]) ${scopePrefix}`.trim(),
|
|
122
|
+
mediaQuery: null,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
if (darkMode.strategy === 'class') {
|
|
126
|
+
const cls = darkMode.class ?? 'dark';
|
|
127
|
+
return {
|
|
128
|
+
selector: `html:not(.${cls}) ${scopePrefix}`.trim(),
|
|
129
|
+
mediaQuery: null,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
if (darkMode.strategy === 'custom') {
|
|
133
|
+
// For custom, light = when the custom selector does NOT match
|
|
134
|
+
// This is tricky — we can't easily negate an arbitrary selector.
|
|
135
|
+
// Fall back to media query for the light case.
|
|
136
|
+
return { selector: '', mediaQuery: 'prefers-color-scheme: light' };
|
|
137
|
+
}
|
|
138
|
+
return { selector: '', mediaQuery: 'prefers-color-scheme: light' };
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Apply a scope prefix to all CSS selectors in a stylesheet.
|
|
142
|
+
* This is a simple regex-based approach that handles the plugin's CSS
|
|
143
|
+
* structure. It prefixes every selector that starts with `.pcb` or
|
|
144
|
+
* `:where(.pcb` or `html` with the scope.
|
|
145
|
+
*/
|
|
146
|
+
export function applyScopeToCss(css, scope) {
|
|
147
|
+
if (!scope)
|
|
148
|
+
return css;
|
|
149
|
+
// Don't double-prefix if the scope is already present
|
|
150
|
+
if (css.includes(`${scope} .pcb`) || css.includes(`${scope}.pcb`))
|
|
151
|
+
return css;
|
|
152
|
+
// Prefix selectors that target .pcb or html.no-js
|
|
153
|
+
let result = css;
|
|
154
|
+
// :where(.pcb) → :where(scope .pcb)
|
|
155
|
+
result = result.replace(/:where\(\.pcb\)/g, `:where(${scope} .pcb)`);
|
|
156
|
+
// :where(html:not(...)) :where(.pcb:not(...)) → :where(scope html:not(...)) :where(scope .pcb:not(...))
|
|
157
|
+
// This is complex — for nested :where() with html, just prefix the whole compound
|
|
158
|
+
result = result.replace(/:where\(html/g, `:where(${scope} html`);
|
|
159
|
+
// .pcb pre → scope .pcb pre (the framework-reset overrides)
|
|
160
|
+
result = result.replace(/^(\.pcb\s)/gm, `${scope} $1`);
|
|
161
|
+
// .pcb__copy → scope .pcb__copy (note: .pcb__ starts with a dot, don't add another)
|
|
162
|
+
result = result.replace(/^(\.pcb__)/gm, `${scope} $1`);
|
|
163
|
+
// html.no-js .pcb__copy → scope html.no-js scope .pcb__copy
|
|
164
|
+
// (This is an edge case — the no-js rule needs both html and .pcb scoped)
|
|
165
|
+
result = result.replace(/html\.no-js\s+\.pcb/g, `${scope} html.no-js ${scope} .pcb`);
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAuC,IAAI,EAAQ,MAAM,MAAM,CAAC;AAI5E,OAAO,KAAK,EAAE,kBAAkB,EAA2C,MAAM,YAAY,CAAC;AA+C9F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAMzE;AAoFD,wBAAgB,uBAAuB,CAAC,WAAW,GAAE,kBAAuB,
|
|
1
|
+
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAuC,IAAI,EAAQ,MAAM,MAAM,CAAC;AAI5E,OAAO,KAAK,EAAE,kBAAkB,EAA2C,MAAM,YAAY,CAAC;AA+C9F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAMzE;AAoFD,wBAAgB,uBAAuB,CAAC,WAAW,GAAE,kBAAuB,IA8E5D,MAAM,IAAI,mBAqCzB"}
|
package/dist/transformer.js
CHANGED
|
@@ -229,6 +229,11 @@ export function rehypePerfectCodeBlocks(userOptions = {}) {
|
|
|
229
229
|
preset: 'default',
|
|
230
230
|
injectStyles: true,
|
|
231
231
|
theme: 'auto',
|
|
232
|
+
cssInjection: 'inline',
|
|
233
|
+
cssLayer: 'pcb',
|
|
234
|
+
tokens: undefined,
|
|
235
|
+
darkMode: undefined,
|
|
236
|
+
scope: undefined,
|
|
232
237
|
inline: false,
|
|
233
238
|
...rest,
|
|
234
239
|
};
|