takumi-js 1.7.0 → 1.8.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/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_render = require("./render-B9hqbnWb.cjs");
2
+ const require_render = require("./render-BkAfi_5a.cjs");
3
3
  exports.render = require_render.render;
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { n as RenderOptions, r as render } from "./render-OnOdK-Cc.cjs";
1
+ import { n as RenderOptions, r as render } from "./render-lU4_qVw3.cjs";
2
2
  import { ContainerNode, FetchResourcesOptions, ImageNode, Node, NodeAttributes, NodeMetadata, ReactElementLike, TextNode } from "@takumi-rs/helpers";
3
3
  import { AnimationFrameSource, AnimationOutputFormat, AnimationSceneSource, ConstructRendererOptions, DitheringAlgorithm, EncodeFramesOptions, Font, FontDetails, FontLoader, FontLoaderSync, ImageSource, ImageSourceLoader, ImageSourceLoaderSync, Keyframes, KeyframesMap, KeyframesRuleList, MeasuredNode, MeasuredTextRun, OutputFormat, RenderAnimationOptions } from "@takumi-rs/core";
4
4
 
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { n as RenderOptions, r as render } from "./render-OnOdK-Cc.mjs";
1
+ import { n as RenderOptions, r as render } from "./render-lU4_qVw3.mjs";
2
2
  import { ContainerNode, FetchResourcesOptions, ImageNode, Node, NodeAttributes, NodeMetadata, ReactElementLike, TextNode } from "@takumi-rs/helpers";
3
3
  import { AnimationFrameSource, AnimationOutputFormat, AnimationSceneSource, ConstructRendererOptions, DitheringAlgorithm, EncodeFramesOptions, Font, FontDetails, FontLoader, FontLoaderSync, ImageSource, ImageSourceLoader, ImageSourceLoaderSync, Keyframes, KeyframesMap, KeyframesRuleList, MeasuredNode, MeasuredTextRun, OutputFormat, RenderAnimationOptions } from "@takumi-rs/core";
4
4
 
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as render } from "./render-DM24DsDc.mjs";
1
+ import { t as render } from "./render-BKqYuN_7.mjs";
2
2
  export { render };
@@ -3,6 +3,14 @@ import { extractResourceUrls, fetchResources } from "@takumi-rs/helpers";
3
3
  import { fromJsx } from "@takumi-rs/helpers/jsx";
4
4
  import { fromHtml } from "@takumi-rs/helpers/html";
5
5
  //#region src/renderer.ts
6
+ /**
7
+ * Mirrors the renderer constructor behavior: when custom fonts are provided,
8
+ * default fonts are disabled so they can't shadow user fonts through generic
9
+ * family resolution (e.g. `sans-serif` resolving to the embedded font).
10
+ */
11
+ function shouldLoadDefaultFonts(options) {
12
+ return options?.loadDefaultFonts ?? (options?.fonts?.length ? false : void 0);
13
+ }
6
14
  async function loadRendererResources(renderer, options) {
7
15
  const tasks = [];
8
16
  if (options?.fonts && options.fonts.length > 0) tasks.push(renderer.loadFonts(options.fonts));
@@ -122,7 +130,7 @@ async function render(element, options) {
122
130
  options?.signal?.throwIfAborted();
123
131
  const imports = await getImports(options && "module" in options ? options.module : void 0);
124
132
  const isExternalRenderer = options && "renderer" in options;
125
- const renderer = isExternalRenderer ? options.renderer : globalRenderer ??= new imports.Renderer({ loadDefaultFonts: options?.loadDefaultFonts });
133
+ const renderer = isExternalRenderer ? options.renderer : globalRenderer ??= new imports.Renderer({ loadDefaultFonts: shouldLoadDefaultFonts(options) });
126
134
  if (!isExternalRenderer) await loadRendererResources(renderer, options);
127
135
  const { node: originalNode, stylesheets } = await transformElement(element, options);
128
136
  const emojiType = options?.emoji ?? "twemoji";
@@ -3,6 +3,14 @@ let _takumi_rs_helpers = require("@takumi-rs/helpers");
3
3
  let _takumi_rs_helpers_jsx = require("@takumi-rs/helpers/jsx");
4
4
  let _takumi_rs_helpers_html = require("@takumi-rs/helpers/html");
5
5
  //#region src/renderer.ts
6
+ /**
7
+ * Mirrors the renderer constructor behavior: when custom fonts are provided,
8
+ * default fonts are disabled so they can't shadow user fonts through generic
9
+ * family resolution (e.g. `sans-serif` resolving to the embedded font).
10
+ */
11
+ function shouldLoadDefaultFonts(options) {
12
+ return options?.loadDefaultFonts ?? (options?.fonts?.length ? false : void 0);
13
+ }
6
14
  async function loadRendererResources(renderer, options) {
7
15
  const tasks = [];
8
16
  if (options?.fonts && options.fonts.length > 0) tasks.push(renderer.loadFonts(options.fonts));
@@ -122,7 +130,7 @@ async function render(element, options) {
122
130
  options?.signal?.throwIfAborted();
123
131
  const imports = await getImports(options && "module" in options ? options.module : void 0);
124
132
  const isExternalRenderer = options && "renderer" in options;
125
- const renderer = isExternalRenderer ? options.renderer : globalRenderer ??= new imports.Renderer({ loadDefaultFonts: options?.loadDefaultFonts });
133
+ const renderer = isExternalRenderer ? options.renderer : globalRenderer ??= new imports.Renderer({ loadDefaultFonts: shouldLoadDefaultFonts(options) });
126
134
  if (!isExternalRenderer) await loadRendererResources(renderer, options);
127
135
  const { node: originalNode, stylesheets } = await transformElement(element, options);
128
136
  const emojiType = options?.emoji ?? "twemoji";
@@ -9,8 +9,8 @@ import { ReactNode } from "react";
9
9
  type ManagedRendererOptions = {
10
10
  fonts?: napi.FontLoader[];
11
11
  /**
12
- * Only supported by the native `@takumi-rs/core` renderer.
13
- * This option is ignored when using the WASM renderer.
12
+ * Whether to load the embedded default fonts.
13
+ * Defaults to `false` when `fonts` are provided.
14
14
  */
15
15
  loadDefaultFonts?: boolean;
16
16
  persistentImages?: napi.ImageSourceLoader[];
@@ -9,8 +9,8 @@ import { ReactNode } from "react";
9
9
  type ManagedRendererOptions = {
10
10
  fonts?: napi.FontLoader[];
11
11
  /**
12
- * Only supported by the native `@takumi-rs/core` renderer.
13
- * This option is ignored when using the WASM renderer.
12
+ * Whether to load the embedded default fonts.
13
+ * Defaults to `false` when `fonts` are provided.
14
14
  */
15
15
  loadDefaultFonts?: boolean;
16
16
  persistentImages?: napi.ImageSourceLoader[];
package/dist/response.cjs CHANGED
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_render = require("./render-B9hqbnWb.cjs");
5
+ const require_render = require("./render-BkAfi_5a.cjs");
6
6
  //#region src/response/index.ts
7
7
  function mergeOptions(defaultOptions, options) {
8
8
  if (!defaultOptions) return options;
@@ -1,4 +1,4 @@
1
- import { n as RenderOptions, t as RenderInput } from "./render-OnOdK-Cc.cjs";
1
+ import { n as RenderOptions, t as RenderInput } from "./render-lU4_qVw3.cjs";
2
2
 
3
3
  //#region src/response/index.d.ts
4
4
  type ImageResponseResult = Response & {
@@ -1,4 +1,4 @@
1
- import { n as RenderOptions, t as RenderInput } from "./render-OnOdK-Cc.mjs";
1
+ import { n as RenderOptions, t as RenderInput } from "./render-lU4_qVw3.mjs";
2
2
 
3
3
  //#region src/response/index.d.ts
4
4
  type ImageResponseResult = Response & {
package/dist/response.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as render } from "./render-DM24DsDc.mjs";
1
+ import { t as render } from "./render-BKqYuN_7.mjs";
2
2
  //#region src/response/index.ts
3
3
  function mergeOptions(defaultOptions, options) {
4
4
  if (!defaultOptions) return options;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "takumi-js",
3
- "version": "1.7.0",
3
+ "version": "1.8.1",
4
4
  "description": "All-in-one Takumi package for Node.js and WebAssembly runtimes.",
5
5
  "keywords": [
6
6
  "css",
@@ -96,13 +96,13 @@
96
96
  "test:bundlers": "bun test tests/bundlers.test.ts"
97
97
  },
98
98
  "dependencies": {
99
- "@takumi-rs/core": "1.7.0",
100
- "@takumi-rs/helpers": "1.7.0",
101
- "@takumi-rs/wasm": "1.7.0"
99
+ "@takumi-rs/core": "1.8.1",
100
+ "@takumi-rs/helpers": "1.8.1",
101
+ "@takumi-rs/wasm": "1.8.1"
102
102
  },
103
103
  "devDependencies": {
104
104
  "@types/bun": "catalog:",
105
- "@types/react": "^19.2.16",
105
+ "@types/react": "^19.2.17",
106
106
  "react": "^19.2.7",
107
107
  "tsdown": "catalog:",
108
108
  "unrun": "catalog:"