@refrakt-md/sveltekit 0.4.0 → 0.5.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/config.js CHANGED
@@ -4,7 +4,7 @@ export function loadRefraktConfig(configPath) {
4
4
  const absPath = resolve(configPath);
5
5
  if (!existsSync(absPath)) {
6
6
  throw new Error(`refrakt.config.json not found at ${absPath}. ` +
7
- `Create one with at minimum: { "contentDir": "./content", "theme": "<package-name>", "target": "sveltekit" }`);
7
+ `Create one with at minimum: { "contentDir": "./content", "theme": "<package-name>", "target": "svelte" }`);
8
8
  }
9
9
  const raw = readFileSync(absPath, 'utf-8');
10
10
  let parsed;
@@ -43,11 +43,34 @@ function validateConfig(raw) {
43
43
  }
44
44
  overrides = entries;
45
45
  }
46
+ let highlight;
47
+ if (obj.highlight !== undefined) {
48
+ if (typeof obj.highlight !== 'object' || obj.highlight === null || Array.isArray(obj.highlight)) {
49
+ throw new Error('refrakt.config.json: "highlight" must be an object');
50
+ }
51
+ const hl = obj.highlight;
52
+ if (hl.theme !== undefined) {
53
+ if (typeof hl.theme === 'string') {
54
+ highlight = { theme: hl.theme };
55
+ }
56
+ else if (typeof hl.theme === 'object' && hl.theme !== null && !Array.isArray(hl.theme)) {
57
+ const pair = hl.theme;
58
+ if (typeof pair.light !== 'string' || !pair.light || typeof pair.dark !== 'string' || !pair.dark) {
59
+ throw new Error('refrakt.config.json: highlight.theme object must have "light" and "dark" string fields');
60
+ }
61
+ highlight = { theme: { light: pair.light, dark: pair.dark } };
62
+ }
63
+ else {
64
+ throw new Error('refrakt.config.json: highlight.theme must be a string or { light, dark } object');
65
+ }
66
+ }
67
+ }
46
68
  return {
47
69
  contentDir: obj.contentDir,
48
70
  theme: obj.theme,
49
71
  target: obj.target,
50
72
  ...(overrides && { overrides }),
73
+ ...(highlight && { highlight }),
51
74
  };
52
75
  }
53
76
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACd,oCAAoC,OAAO,IAAI;YAC/C,6GAA6G,CAC7G,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,MAAe,CAAC;IAEpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,GAAG,GAAG,GAA8B,CAAC;IAE3C,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,SAA6C,CAAC;IAClD,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;QAC/G,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAoC,CAAC;QACzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,oCAAoC,CAAC,CAAC;YAC7F,CAAC;QACF,CAAC;QACD,SAAS,GAAG,OAAiC,CAAC;IAC/C,CAAC;IAED,OAAO;QACN,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;KAC/B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAcvD,wBAAgB,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAwClE"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAevD,wBAAgB,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAiFlE"}
package/dist/plugin.js CHANGED
@@ -1,3 +1,6 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { resolve, dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
1
4
  import { loadRefraktConfig } from './config.js';
2
5
  import { resolveVirtualId, loadVirtualModule } from './virtual-modules.js';
3
6
  import { setupContentHmr } from './content-hmr.js';
@@ -8,13 +11,18 @@ const CORE_NO_EXTERNAL = [
8
11
  '@refrakt-md/types',
9
12
  '@refrakt-md/svelte',
10
13
  '@refrakt-md/transform',
14
+ '@refrakt-md/theme-base',
11
15
  ];
12
16
  export function refrakt(options = {}) {
13
17
  const configPath = options.configPath ?? './refrakt.config.json';
14
18
  let refraktConfig;
19
+ let isBuild = false;
20
+ let resolvedRoot = '';
21
+ let usedCssBlocks;
15
22
  return {
16
23
  name: 'refrakt-md',
17
- config() {
24
+ config(_, env) {
25
+ isBuild = env.command === 'build';
18
26
  refraktConfig = loadRefraktConfig(configPath);
19
27
  const themeAdapter = `${refraktConfig.theme}/${refraktConfig.target}`;
20
28
  const noExternal = [
@@ -32,11 +40,43 @@ export function refrakt(options = {}) {
32
40
  },
33
41
  };
34
42
  },
43
+ configResolved(resolved) {
44
+ resolvedRoot = resolved.root;
45
+ },
46
+ async buildStart() {
47
+ if (!isBuild)
48
+ return;
49
+ try {
50
+ const contentPkg = '@refrakt-md/content';
51
+ const { loadContent, analyzeRuneUsage } = await import(contentPkg);
52
+ const site = await loadContent(resolve(resolvedRoot, refraktConfig.contentDir));
53
+ const report = analyzeRuneUsage(site.pages);
54
+ const themeTransform = await import(`${refraktConfig.theme}/transform`);
55
+ const themeConfig = themeTransform.themeConfig ?? themeTransform.luminaConfig ?? themeTransform.default;
56
+ usedCssBlocks = new Set();
57
+ // Resolve the theme's root export (index.css) to find the package directory
58
+ const themeEntryUrl = import.meta.resolve(refraktConfig.theme);
59
+ const themeDir = dirname(fileURLToPath(themeEntryUrl));
60
+ const stylesDir = join(themeDir, 'styles', 'runes');
61
+ for (const typeName of report.allTypes) {
62
+ const runeConfig = themeConfig.runes[typeName];
63
+ if (runeConfig && existsSync(join(stylesDir, `${runeConfig.block}.css`))) {
64
+ usedCssBlocks.add(runeConfig.block);
65
+ }
66
+ }
67
+ }
68
+ catch (err) {
69
+ // Graceful fallback — if analysis fails, all CSS is included
70
+ usedCssBlocks = undefined;
71
+ console.warn('[refrakt] CSS tree-shaking skipped:', err.message);
72
+ }
73
+ },
35
74
  resolveId(id) {
36
75
  return resolveVirtualId(id);
37
76
  },
38
77
  load(id) {
39
- return loadVirtualModule(id, refraktConfig);
78
+ const buildCtx = { isBuild, usedCssBlocks };
79
+ return loadVirtualModule(id, refraktConfig, buildCtx);
40
80
  },
41
81
  configureServer(server) {
42
82
  setupContentHmr(server, refraktConfig.contentDir);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,gBAAgB,GAAG;IACxB,kBAAkB;IAClB,mBAAmB;IACnB,qBAAqB;IACrB,mBAAmB;IACnB,oBAAoB;IACpB,uBAAuB;CACvB,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,UAAgC,EAAE;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,uBAAuB,CAAC;IACjE,IAAI,aAA4B,CAAC;IAEjC,OAAO;QACN,IAAI,EAAE,YAAY;QAElB,MAAM;YACL,aAAa,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAE9C,MAAM,YAAY,GAAG,GAAG,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACtE,MAAM,UAAU,GAAG;gBAClB,GAAG,gBAAgB;gBACnB,aAAa,CAAC,KAAK;gBACnB,YAAY;gBACZ,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;aAC7B,CAAC;YAEF,OAAO;gBACN,GAAG,EAAE;oBACJ,UAAU;oBACV,YAAY,EAAE;wBACb,OAAO,EAAE,CAAC,kBAAkB,CAAC;qBAC7B;iBACD;aACD,CAAC;QACH,CAAC;QAED,SAAS,CAAC,EAAU;YACnB,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,EAAU;YACd,OAAO,iBAAiB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAC7C,CAAC;QAED,eAAe,CAAC,MAAM;YACrB,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,10 @@ export declare const VIRTUAL_IDS: {
5
5
  readonly config: "virtual:refrakt/config";
6
6
  };
7
7
  export declare function resolveVirtualId(id: string): string | undefined;
8
- export declare function loadVirtualModule(id: string, config: RefraktConfig): string | undefined;
8
+ /** Build-time context for CSS tree-shaking */
9
+ export interface BuildContext {
10
+ isBuild: boolean;
11
+ usedCssBlocks?: Set<string>;
12
+ }
13
+ export declare function loadVirtualModule(id: string, config: RefraktConfig, buildCtx?: BuildContext): string | undefined;
9
14
  //# sourceMappingURL=virtual-modules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-modules.d.ts","sourceRoot":"","sources":["../src/virtual-modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK/D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAsCvF"}
1
+ {"version":3,"file":"virtual-modules.d.ts","sourceRoot":"","sources":["../src/virtual-modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK/D;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,CAChC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,aAAa,EACrB,QAAQ,GAAE,YAAiC,GACzC,MAAM,GAAG,SAAS,CA8CpB"}
@@ -14,7 +14,7 @@ export function resolveVirtualId(id) {
14
14
  return `${RESOLVED_PREFIX}config`;
15
15
  return undefined;
16
16
  }
17
- export function loadVirtualModule(id, config) {
17
+ export function loadVirtualModule(id, config, buildCtx = { isBuild: false }) {
18
18
  const themeAdapter = `${config.theme}/${config.target}`;
19
19
  if (id === `${RESOLVED_PREFIX}theme`) {
20
20
  const overrides = config.overrides;
@@ -42,6 +42,14 @@ export function loadVirtualModule(id, config) {
42
42
  return `export { theme } from '${themeAdapter}';`;
43
43
  }
44
44
  if (id === `${RESOLVED_PREFIX}tokens`) {
45
+ if (buildCtx.isBuild && buildCtx.usedCssBlocks) {
46
+ const theme = config.theme;
47
+ const lines = [`import '${theme}/base.css';`];
48
+ for (const block of [...buildCtx.usedCssBlocks].sort()) {
49
+ lines.push(`import '${theme}/styles/runes/${block}.css';`);
50
+ }
51
+ return lines.join('\n');
52
+ }
45
53
  return `import '${themeAdapter}/tokens.css';`;
46
54
  }
47
55
  if (id === `${RESOLVED_PREFIX}config`) {
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-modules.js","sourceRoot":"","sources":["../src/virtual-modules.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,KAAK,EAAE,GAAG,cAAc,OAAO;IAC/B,MAAM,EAAE,GAAG,cAAc,QAAQ;IACjC,MAAM,EAAE,GAAG,cAAc,QAAQ;CACxB,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAAC,EAAU;IAC1C,IAAI,EAAE,KAAK,WAAW,CAAC,KAAK;QAAE,OAAO,GAAG,eAAe,OAAO,CAAC;IAC/D,IAAI,EAAE,KAAK,WAAW,CAAC,MAAM;QAAE,OAAO,GAAG,eAAe,QAAQ,CAAC;IACjE,IAAI,EAAE,KAAK,WAAW,CAAC,MAAM;QAAE,OAAO,GAAG,eAAe,QAAQ,CAAC;IACjE,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU,EAAE,MAAqB;IAClE,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;IAExD,IAAI,EAAE,KAAK,GAAG,eAAe,OAAO,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,OAAO;iBACrB,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC;iBACrD,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,OAAO;iBACtB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,QAAQ,QAAQ,CAAC,GAAG,CAAC;iBACpD,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,OAAO;gBACN,mCAAmC,YAAY,IAAI;gBACnD,OAAO;gBACP,EAAE;gBACF,wBAAwB;gBACxB,aAAa;gBACb,iBAAiB;gBACjB,0BAA0B;gBAC1B,QAAQ;gBACR,KAAK;gBACL,IAAI;aACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QACD,OAAO,0BAA0B,YAAY,IAAI,CAAC;IACnD,CAAC;IAED,IAAI,EAAE,KAAK,GAAG,eAAe,QAAQ,EAAE,CAAC;QACvC,OAAO,WAAW,YAAY,eAAe,CAAC;IAC/C,CAAC;IAED,IAAI,EAAE,KAAK,GAAG,eAAe,QAAQ,EAAE,CAAC;QACvC,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;IACpD,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"virtual-modules.js","sourceRoot":"","sources":["../src/virtual-modules.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,KAAK,EAAE,GAAG,cAAc,OAAO;IAC/B,MAAM,EAAE,GAAG,cAAc,QAAQ;IACjC,MAAM,EAAE,GAAG,cAAc,QAAQ;CACxB,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAAC,EAAU;IAC1C,IAAI,EAAE,KAAK,WAAW,CAAC,KAAK;QAAE,OAAO,GAAG,eAAe,OAAO,CAAC;IAC/D,IAAI,EAAE,KAAK,WAAW,CAAC,MAAM;QAAE,OAAO,GAAG,eAAe,QAAQ,CAAC;IACjE,IAAI,EAAE,KAAK,WAAW,CAAC,MAAM;QAAE,OAAO,GAAG,eAAe,QAAQ,CAAC;IACjE,OAAO,SAAS,CAAC;AAClB,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAChC,EAAU,EACV,MAAqB,EACrB,WAAyB,EAAE,OAAO,EAAE,KAAK,EAAE;IAE3C,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;IAExD,IAAI,EAAE,KAAK,GAAG,eAAe,OAAO,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,OAAO;iBACrB,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC;iBACrD,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,OAAO;iBACtB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,QAAQ,QAAQ,CAAC,GAAG,CAAC;iBACpD,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,OAAO;gBACN,mCAAmC,YAAY,IAAI;gBACnD,OAAO;gBACP,EAAE;gBACF,wBAAwB;gBACxB,aAAa;gBACb,iBAAiB;gBACjB,0BAA0B;gBAC1B,QAAQ;gBACR,KAAK;gBACL,IAAI;aACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QACD,OAAO,0BAA0B,YAAY,IAAI,CAAC;IACnD,CAAC;IAED,IAAI,EAAE,KAAK,GAAG,eAAe,QAAQ,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC;YAC9C,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,KAAK,QAAQ,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,WAAW,YAAY,eAAe,CAAC;IAC/C,CAAC;IAED,IAAI,EAAE,KAAK,GAAG,eAAe,QAAQ,EAAE,CAAC;QACvC,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;IACpD,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/sveltekit",
3
3
  "description": "SvelteKit integration plugin for refrakt.md",
4
- "version": "0.4.0",
4
+ "version": "0.5.1",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "build": "tsc"
34
34
  },
35
35
  "dependencies": {
36
- "@refrakt-md/types": "0.4.0"
36
+ "@refrakt-md/types": "0.5.1"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "vite": ">=5.0.0"