@refrakt-md/sveltekit 0.15.0 → 0.16.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.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAc,MAAM,MAAM,CAAC;AAI7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAqBvD,wBAAgB,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,UAAU,CA+NtE"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAc,MAAM,MAAM,CAAC;AAI7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAqBvD,wBAAgB,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,UAAU,CA6PtE"}
package/dist/plugin.js CHANGED
@@ -24,6 +24,7 @@ export function refrakt(options = {}) {
24
24
  let mergedPackages;
25
25
  let contentLoaded = false;
26
26
  let activeConfigDir = '';
27
+ let activeRawConfig = null;
27
28
  /** Generated CSS for site-level token overrides (presets + theme.tokens +
28
29
  * theme.modes), or empty string if no overrides are configured. Computed
29
30
  * asynchronously in `buildStart` and consumed by the
@@ -34,6 +35,7 @@ export function refrakt(options = {}) {
34
35
  config(_, env) {
35
36
  isBuild = env.command === 'build';
36
37
  const rawConfig = loadRefraktConfig(configPath);
38
+ activeRawConfig = rawConfig;
37
39
  // configDir is the directory containing refrakt.config.json — used by
38
40
  // the normalizer to absolutize nested-shape relative paths so adapters
39
41
  // see file-relative semantics rather than cwd-relative.
@@ -131,7 +133,28 @@ export function refrakt(options = {}) {
131
133
  const sandboxExamplesDir = activeSite.sandbox?.examplesDir
132
134
  ? resolve(resolvedRoot, activeSite.sandbox.examplesDir)
133
135
  : undefined;
134
- const site = await loadContent(resolve(resolvedRoot, activeSite.contentDir), '/', undefined, communityTags, mergedPackages, sandboxExamplesDir, undefined, options.security, resolvedRoot);
136
+ // Run each plugin's `configure` lifecycle hook before the
137
+ // pipeline runs — mirrors the createRefraktLoader path so
138
+ // plugins that need build-time config (the plan plugin reads
139
+ // `plan.dir` here to drive its unconditional scan) are set up
140
+ // before register sees their entities. Without this, the
141
+ // CSS-analysis pipeline run emits spurious "entity not found"
142
+ // warnings for any reference whose target lives outside the
143
+ // content tree.
144
+ for (const pkg of mergedPackages ?? []) {
145
+ if (pkg.pipeline?.configure) {
146
+ await pkg.pipeline.configure({
147
+ config: activeRawConfig,
148
+ configDir: activeConfigDir,
149
+ });
150
+ }
151
+ }
152
+ // `projectRoot` is the directory containing refrakt.config.json
153
+ // (the repo root in most projects), not Vite's project root —
154
+ // the plan plugin and the expand/snippet resolvers all
155
+ // compute their sandbox + sourceFile paths relative to it.
156
+ // This mirrors createRefraktLoader's `projectRoot: configDir`.
157
+ const site = await loadContent(resolve(resolvedRoot, activeSite.contentDir), '/', undefined, communityTags, mergedPackages, sandboxExamplesDir, undefined, options.security, activeConfigDir, undefined, undefined, activeSite, activeSite.repoUrl, activeSite.repoBranch);
135
158
  process.stderr.write(formatPipelineSummary(site.pipelineStats, site.pipelineWarnings));
136
159
  const report = analyzeRuneUsage(site.pages);
137
160
  const themePackage = getThemePackage(activeSite.theme);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACN,sBAAsB,EACtB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAqB,MAAM,sBAAsB,CAAC;AAE9F,MAAM,gBAAgB,GAAG;IACxB,kBAAkB;IAClB,mBAAmB;IACnB,qBAAqB;IACrB,mBAAmB;IACnB,oBAAoB;IACpB,uBAAuB;IACvB,uBAAuB;CACvB,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,UAAgC,EAAE;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,uBAAuB,CAAC;IACjE,IAAI,UAAsB,CAAC;IAC3B,IAAI,cAAsB,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,aAAsC,CAAC;IAC3C,IAAI,aAAiD,CAAC;IACtD,IAAI,eAA6F,CAAC;IAClG,IAAI,cAAoC,CAAC;IACzC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,eAAe,GAAY,IAAI,CAAC;IACpC;;;4DAGwD;IACxD,IAAI,aAAa,GAAG,EAAE,CAAC;IAEvB,OAAO;QACN,IAAI,EAAE,YAAY;QAElB,MAAM,CAAC,CAAC,EAAE,GAAG;YACZ,OAAO,GAAG,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC;YAClC,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAChD,eAAe,GAAG,SAAS,CAAC;YAC5B,sEAAsE;YACtE,uEAAuE;YACvE,wDAAwD;YACxD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/C,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,mEAAmE;YACnE,kEAAkE;YAClE,qEAAqE;YACrE,eAAe,GAAG,SAAS,CAAC;YAE5B,MAAM,UAAU,GAAG;gBAClB,GAAG,gBAAgB;gBACnB,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC;gBACjC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC7B,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,cAAc,CAAC,QAAQ;YACtB,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,UAAU;YACf,8DAA8D;YAC9D,sEAAsE;YACtE,kEAAkE;YAClE,iEAAiE;YACjE,yBAAyB;YACzB,aAAa,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YAExE,iEAAiE;YACjE,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3F,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjG,IAAI,WAAW,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACJ,MAAM,QAAQ,GAAG,mBAAmB,CAAC;oBACrC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACxH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBAEtD,IAAI,WAAW,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;oBACnC,IAAI,UAAU,GAA2B,EAAE,CAAC;oBAC5C,IAAI,MAAM,CAAC;oBAEX,0BAA0B;oBAC1B,IAAI,WAAW,EAAE,CAAC;wBACjB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,UAAU,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC3D,CAAC;wBACF,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBACvE,WAAW,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;wBAChD,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;wBACzB,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;oBACjC,CAAC;oBAED,sCAAsC;oBACtC,IAAI,QAAQ,EAAE,CAAC;wBACd,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,KAAM,CAAC,KAAM,EAAE,YAAY,CAAC,CAAC;wBAC3E,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;wBACjD,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5D,CAAC;oBAED,6BAA6B;oBAC7B,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;wBAC1B,MAAM,OAAO,GAAG,YAAY,CAC3B,WAAW,EACX,UAAU,EACV,UAAU,CAAC,KAAM,CAAC,OAAQ,EAC1B,MAAM,CAAC,UAAU,CACjB,CAAC;wBACF,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC3B,CAAC;oBAED,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;oBAE5E,6CAA6C;oBAC7C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC3J,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;wBACtE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC9C,eAAe,GAAG,mBAAmB,CAAC;4BACrC,UAAU,EAAE,UAAU;4BACtB,WAAW,EAAE,MAAM,CAAC,UAAU;4BAC9B,WAAW,EAAE,MAAM,CAAC,UAAU;4BAC9B,iBAAiB,EAAE,MAAM,CAAC,gBAAgB;4BAC1C,UAAU,EAAE,MAAM,CAAC,UAAU;yBAC7B,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBAC3E,CAAC;YACF,CAAC;YAED,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,aAAa;gBAAE,OAAO;YAC1B,aAAa,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC;gBACJ,MAAM,UAAU,GAAG,qBAAqB,CAAC;gBACzC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC1F,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW;oBACzD,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;oBACvD,CAAC,CAAC,SAAS,CAAC;gBAEb,0DAA0D;gBAC1D,0DAA0D;gBAC1D,6DAA6D;gBAC7D,8DAA8D;gBAC9D,yDAAyD;gBACzD,8DAA8D;gBAC9D,4DAA4D;gBAC5D,gBAAgB;gBAChB,KAAK,MAAM,GAAG,IAAI,cAAc,IAAI,EAAE,EAAE,CAAC;oBACxC,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;wBAC7B,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;4BAC5B,MAAM,EAAE,eAAe;4BACvB,SAAS,EAAE,eAAe;yBAC1B,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;gBAED,gEAAgE;gBAChE,8DAA8D;gBAC9D,uDAAuD;gBACvD,2DAA2D;gBAC3D,+DAA+D;gBAC/D,MAAM,IAAI,GAAG,MAAM,WAAW,CAC7B,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,EAC5C,GAAG,EACH,SAAS,EACT,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,OAAO,CAAC,QAAQ,EAChB,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,UAAU,CACrB,CAAC;gBAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAChE,CAAC;gBAEF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE5C,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvD,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,GAAG,YAAY,YAAY,CAAC,CAAC;gBACjE,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,IAAI,cAAc,CAAC,YAAY,IAAI,cAAc,CAAC,OAAO,CAAC;gBACxG,MAAM,eAAe,GAAG,eAAe,EAAE,MAAM,IAAI,WAAW,CAAC;gBAE/D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,oBAAoB,CAChD,MAAM,CAAC,QAAQ,EACf,eAAe,EACf,YAAY,CACZ,CAAC;gBACF,aAAa,GAAG,UAAU,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,6DAA6D;gBAC7D,aAAa,GAAG,SAAS,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YAC7E,CAAC;QACF,CAAC;QAED,SAAS,CAAC,EAAU;YACnB,IAAI,EAAE,KAAK,iCAAiC,EAAE,CAAC;gBAC9C,OAAO,mCAAmC,CAAC;YAC5C,CAAC;YACD,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,EAAU;YACd,IAAI,EAAE,KAAK,mCAAmC,EAAE,CAAC;gBAChD,OAAO,aAAa,CAAC;YACtB,CAAC;YACD,MAAM,QAAQ,GAAiB;gBAC9B,OAAO;gBACP,aAAa;gBACb,YAAY;gBACZ,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU;gBACV,QAAQ,EAAE,cAAc;aACxB,CAAC;YACF,OAAO,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;QAED,eAAe,CAAC,MAAM;YACrB,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW;gBAClD,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;gBACvD,CAAC,CAAC,SAAS,CAAC;YAEb,qEAAqE;YACrE,mEAAmE;YACnE,qEAAqE;YACrE,kEAAkE;YAClE,oEAAoE;YACpE,iDAAiD;YACjD,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;gBAC7B,MAAM,UAAU,GAAG,2BAA2B,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC;oBAAE,OAAO;gBAC1D,IAAI,CAAC;oBACJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;oBACjE,GAAuC,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC7D,CAAC;gBAAC,MAAM,CAAC;oBACR,2DAA2D;oBAC3D,gDAAgD;gBACjD,CAAC;YACF,CAAC,CAAC;YAEF,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACzE,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Handle } from '@sveltejs/kit';
2
+ import { type ResolvedTintCascade } from '@refrakt-md/content';
3
+ /** Minimal shape this hook needs from the loaded Site (the real `getSite` from
4
+ * `virtual:refrakt/content` is structurally compatible). */
5
+ interface SiteLike {
6
+ pages: Array<{
7
+ route: {
8
+ url: string;
9
+ };
10
+ tintCascade?: ResolvedTintCascade;
11
+ }>;
12
+ }
13
+ export declare function createThemeHandle(getSite: () => Promise<SiteLike>): Handle;
14
+ export {};
15
+ //# sourceMappingURL=theme-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-hook.d.ts","sourceRoot":"","sources":["../src/theme-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAIN,KAAK,mBAAmB,EACxB,MAAM,qBAAqB,CAAC;AA6B7B;6DAC6D;AAC7D,UAAU,QAAQ;IACjB,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,WAAW,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAC;CAC5E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAuC1E"}
@@ -0,0 +1,63 @@
1
+ import { htmlTintAttributes, colorSchemeMetaContent, prePaintScript, } from '@refrakt-md/content';
2
+ /**
3
+ * Server-safe theme SSR plumbing for SvelteKit apps (SPEC-073).
4
+ *
5
+ * Imported from `@refrakt-md/sveltekit/hooks` (this entry deliberately avoids
6
+ * the Vite plugin so it can run in the server runtime). Returns a SvelteKit
7
+ * `Handle` that, per request, looks up the route's tint cascade and splices the
8
+ * no-flash chrome into the response: tint `data-*` attributes on `<html>`, the
9
+ * `color-scheme` meta, and the anti-FOIT pre-paint script — before any
10
+ * stylesheet so the saved theme applies before first paint.
11
+ *
12
+ * Apps wire it in one line instead of hand-rolling the boilerplate:
13
+ *
14
+ * ```ts
15
+ * // src/hooks.server.ts
16
+ * import { createThemeHandle } from '@refrakt-md/sveltekit/hooks';
17
+ * import { getSite } from '$lib/content';
18
+ * export const handle = createThemeHandle(getSite);
19
+ * ```
20
+ *
21
+ * Compose with other handles via SvelteKit's `sequence()` when needed.
22
+ */
23
+ const DEFAULT_CASCADE = {
24
+ tint: null,
25
+ tintMode: 'auto',
26
+ locked: false,
27
+ };
28
+ export function createThemeHandle(getSite) {
29
+ const PRE_PAINT_SCRIPT = prePaintScript();
30
+ /** Resolve a URL's cascade from the loaded Site's pages; a sensible default
31
+ * for URLs that don't match (SvelteKit-internal routes, sitemap, etc.). */
32
+ const cascadeForUrl = async (pathname) => {
33
+ try {
34
+ const site = await getSite();
35
+ const page = site.pages.find((p) => p.route.url === pathname);
36
+ return page?.tintCascade ?? DEFAULT_CASCADE;
37
+ }
38
+ catch (_) {
39
+ // Site load may fail during early bootstrap or in tests — fall back
40
+ // to the safe default rather than crashing the response.
41
+ return DEFAULT_CASCADE;
42
+ }
43
+ };
44
+ return async ({ event, resolve }) => {
45
+ const cascade = await cascadeForUrl(event.url.pathname);
46
+ const htmlAttrs = htmlTintAttributes(cascade);
47
+ const metaScheme = colorSchemeMetaContent(cascade);
48
+ return resolve(event, {
49
+ transformPageChunk: ({ html }) => {
50
+ let result = html;
51
+ // Splice the cascade attrs inside the opening <html lang="en"> tag.
52
+ if (htmlAttrs) {
53
+ result = result.replace(/<html lang="en">/, `<html lang="en" ${htmlAttrs}>`);
54
+ }
55
+ // Pre-paint script + color-scheme meta just inside <head>, before
56
+ // any stylesheet, so the saved theme applies before first paint.
57
+ result = result.replace(/<head>/, `<head>\n\t\t<meta name="color-scheme" content="${metaScheme}" />\n\t\t<script>${PRE_PAINT_SCRIPT}</script>`);
58
+ return result;
59
+ },
60
+ });
61
+ };
62
+ }
63
+ //# sourceMappingURL=theme-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-hook.js","sourceRoot":"","sources":["../src/theme-hook.ts"],"names":[],"mappings":"AACA,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GAEd,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,eAAe,GAAwB;IAC5C,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,KAAK;CACb,CAAC;AAQF,MAAM,UAAU,iBAAiB,CAAC,OAAgC;IACjE,MAAM,gBAAgB,GAAG,cAAc,EAAE,CAAC;IAE1C;gFAC4E;IAC5E,MAAM,aAAa,GAAG,KAAK,EAAE,QAAgB,EAAgC,EAAE;QAC9E,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;YAC9D,OAAO,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;QAC7C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,oEAAoE;YACpE,yDAAyD;YACzD,OAAO,eAAe,CAAC;QACxB,CAAC;IACF,CAAC,CAAC;IAEF,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,KAAK,EAAE;YACrB,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;gBAChC,IAAI,MAAM,GAAG,IAAI,CAAC;gBAClB,oEAAoE;gBACpE,IAAI,SAAS,EAAE,CAAC;oBACf,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,SAAS,GAAG,CAAC,CAAC;gBAC9E,CAAC;gBACD,kEAAkE;gBAClE,iEAAiE;gBACjE,MAAM,GAAG,MAAM,CAAC,OAAO,CACtB,QAAQ,EACR,kDAAkD,UAAU,qBAAqB,gBAAgB,WAAW,CAC5G,CAAC;gBACF,OAAO,MAAM,CAAC;YACf,CAAC;SACD,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,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.15.0",
4
+ "version": "0.16.1",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -21,6 +21,10 @@
21
21
  "types": "./dist/index.d.ts",
22
22
  "default": "./dist/index.js"
23
23
  },
24
+ "./hooks": {
25
+ "types": "./dist/theme-hook.d.ts",
26
+ "default": "./dist/theme-hook.js"
27
+ },
24
28
  "./virtual": {
25
29
  "types": "./virtual.d.ts"
26
30
  }
@@ -33,9 +37,11 @@
33
37
  "build": "tsc"
34
38
  },
35
39
  "dependencies": {
36
- "@refrakt-md/types": "0.15.0"
40
+ "@refrakt-md/content": "0.16.1",
41
+ "@refrakt-md/types": "0.16.1"
37
42
  },
38
43
  "peerDependencies": {
44
+ "@sveltejs/kit": ">=2.0.0",
39
45
  "vite": ">=5.0.0"
40
46
  }
41
47
  }