c063 1.1.5 → 1.1.7

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.
@@ -12,7 +12,7 @@ export type CodeTokenProps<T extends React.ElementType = React.ElementType> = As
12
12
  */
13
13
  type?: CodeTokenType;
14
14
  }>;
15
- export type CodeTokenBuilder<T extends React.ElementType = "span"> = (children: CodeTokenProps<T>["children"], props?: DistributiveOmit<CodeTokenProps<T>, "type">) => CodeTokenProps<T>;
15
+ export type CodeTokenBuilder = <T extends React.ElementType>(children: CodeTokenProps<T>["children"] extends undefined ? React.ReactNode : CodeTokenProps<T>["children"], props?: DistributiveOmit<CodeTokenProps<T>, "type">) => CodeTokenProps<T>;
16
16
  /**
17
17
  * 用於單一程式碼行的屬性,用在 <CodeLine /> 或類似元件中。
18
18
  */
@@ -1,10 +1,12 @@
1
1
  export const createToken = new Proxy({}, {
2
2
  get: (_, prop) => {
3
- const builder = (children, props) => ({
4
- type: prop,
5
- children,
6
- ...props,
7
- });
3
+ const builder = (children, props) => {
4
+ return {
5
+ type: prop,
6
+ children,
7
+ ...props,
8
+ };
9
+ };
8
10
  return builder;
9
11
  },
10
12
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "c063",
4
- "version": "1.1.5",
4
+ "version": "1.1.7",
5
5
  "description": "A React component for displaying code snippets with syntax highlighting.",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -32,8 +32,10 @@ export type CodeTokenProps<T extends React.ElementType = React.ElementType> =
32
32
  }
33
33
  >;
34
34
 
35
- export type CodeTokenBuilder<T extends React.ElementType = "span"> = (
36
- children: CodeTokenProps<T>["children"],
35
+ export type CodeTokenBuilder = <T extends React.ElementType>(
36
+ children: CodeTokenProps<T>["children"] extends undefined
37
+ ? React.ReactNode
38
+ : CodeTokenProps<T>["children"],
37
39
  props?: DistributiveOmit<CodeTokenProps<T>, "type">
38
40
  ) => CodeTokenProps<T>;
39
41
 
@@ -1,14 +1,25 @@
1
- import { CodeTokenBuilder, CodeTokenProps, CodeTokenType } from "../types";
1
+ import {
2
+ CodeTokenBuilder,
3
+ CodeTokenProps,
4
+ CodeTokenType,
5
+ DistributiveOmit,
6
+ } from "../types";
2
7
 
3
8
  export const createToken = new Proxy(
4
9
  {},
5
10
  {
6
11
  get: (_, prop: CodeTokenType) => {
7
- const builder: CodeTokenBuilder = (children, props?) => ({
8
- type: prop,
9
- children,
10
- ...props,
11
- });
12
+ const builder = <T extends React.ElementType = React.ElementType>(
13
+ children: CodeTokenProps<T>["children"],
14
+ props: DistributiveOmit<CodeTokenProps<T>, "type">
15
+ ): CodeTokenProps<T> =>
16
+ {
17
+ return {
18
+ type: prop,
19
+ children,
20
+ ...props,
21
+ };
22
+ };
12
23
  return builder;
13
24
  },
14
25
  }