@arcmantle/lit-jsx 1.1.13 → 1.1.15
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/runtime/type-helpers.d.ts +1 -1
- package/dist/runtime/type-helpers.d.ts.map +1 -1
- package/dist/shared/jsx-core.d.ts +13 -39
- package/dist/shared/jsx-core.d.ts.map +1 -1
- package/dist/shared/jsx-hooks.d.ts +1 -1
- package/dist/shared/jsx-hooks.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/runtime/type-helpers.ts +1 -1
- package/src/shared/jsx-core.ts +17 -52
- package/src/shared/jsx-hooks.ts +3 -3
|
@@ -25,7 +25,7 @@ export declare const toComponent: <T extends {
|
|
|
25
25
|
new (...args: any): any;
|
|
26
26
|
tagName: string;
|
|
27
27
|
}>(element: T) => ToComponent<InstanceType<T>>;
|
|
28
|
-
export type ToComponent<T extends object = object> = (props: LitJSX.
|
|
28
|
+
export type ToComponent<T extends object = object> = (props: LitJSX.JSXElementProps<T> & {
|
|
29
29
|
static: any;
|
|
30
30
|
}) => string;
|
|
31
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/type-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE,EACjF,SAAS,CAAC,KACR,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAU7B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAChD,CAAC,KAAK,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"type-helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/type-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE,EACjF,SAAS,CAAC,KACR,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAU7B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAChD,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;CAAE,KAAK,MAAM,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,EAC1D,KAAK,CAAC,KACJ,KAAK,CAAC,CAAC,CAAe,CAAC;AAG1B,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,IACtD,CAAC,KAAK,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;CAAE,KAAK,MAAM,CAAC"}
|
|
@@ -29,31 +29,15 @@ declare global {
|
|
|
29
29
|
} & {
|
|
30
30
|
[P in keyof T as IsMandatory<T[P]> extends true ? never : P]?: T[P];
|
|
31
31
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* interface ExcludedComponentProps {
|
|
42
|
-
* 'arbitrary-name': 'ref';
|
|
43
|
-
* }
|
|
44
|
-
* }
|
|
45
|
-
* }
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
interface ExcludedComponentProps {
|
|
49
|
-
'html-element': keyof HTMLElement | 'constructor';
|
|
50
|
-
}
|
|
51
|
-
type ExcludedKeys = {
|
|
52
|
-
[K in keyof ExcludedComponentProps]: ExcludedComponentProps[K];
|
|
53
|
-
}[keyof ExcludedComponentProps];
|
|
54
|
-
type IndexableObject = object & Record<string, any>;
|
|
55
|
-
type HTMLElementAssignableProps<T extends IndexableObject> = Partial<TrimReadonly<T>>;
|
|
56
|
-
type JSXElementProps<T extends object> = SpecialProps<HTMLElementAssignableProps<T>>;
|
|
32
|
+
type IfEquals<X, Y, A = X> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? A : never;
|
|
33
|
+
type WritableKeys<T> = {
|
|
34
|
+
[P in keyof T]-?: IfEquals<{
|
|
35
|
+
[Q in P]: T[P];
|
|
36
|
+
}, {
|
|
37
|
+
-readonly [Q in P]: T[P];
|
|
38
|
+
}, P>;
|
|
39
|
+
}[keyof T];
|
|
40
|
+
type TrimReadonly<T> = Pick<T, WritableKeys<T>>;
|
|
57
41
|
interface DataProps {
|
|
58
42
|
[key: `data-${string}`]: string | undefined;
|
|
59
43
|
}
|
|
@@ -83,7 +67,7 @@ declare global {
|
|
|
83
67
|
* Example: `<div ref={myRef}></div>` \
|
|
84
68
|
* Example with callback: `<div ref={(el) => { ... }}></div>`
|
|
85
69
|
*/
|
|
86
|
-
ref?: RefOrCallback<
|
|
70
|
+
ref?: RefOrCallback<PartialExceptRequired<TrimReadonly<T>>>;
|
|
87
71
|
/**
|
|
88
72
|
* An object defining CSS classes.
|
|
89
73
|
*
|
|
@@ -124,20 +108,10 @@ declare global {
|
|
|
124
108
|
*/
|
|
125
109
|
directive?: DirectiveResult<any> | DirectiveResult<any>[];
|
|
126
110
|
} & DataProps;
|
|
127
|
-
type
|
|
111
|
+
type JSXElementProps<T extends object> = SpecialProps<PartialExceptRequired<TrimReadonly<T>>>;
|
|
112
|
+
type ElementMapToJSXElements<T extends Record<string, any>> = {
|
|
128
113
|
[K in keyof T]: JSXElementProps<T[K]>;
|
|
129
114
|
};
|
|
130
|
-
type IfEquals<X, Y, A = X> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? A : never;
|
|
131
|
-
type WritableKeys<T> = {
|
|
132
|
-
[P in keyof T]-?: IfEquals<{
|
|
133
|
-
[Q in P]: T[P];
|
|
134
|
-
}, {
|
|
135
|
-
-readonly [Q in P]: T[P];
|
|
136
|
-
}, P>;
|
|
137
|
-
}[keyof T];
|
|
138
|
-
type TrimReadonly<T> = Pick<T, WritableKeys<T>>;
|
|
139
|
-
type TrimHTMLElement<T extends object> = TrimReadonly<Omit<T, ExcludedKeys>>;
|
|
140
|
-
type JSXProps<T extends object> = PartialExceptRequired<TrimHTMLElement<T>> & Partial<Omit<TrimReadonly<HTMLElement>, keyof TrimHTMLElement<T>>>;
|
|
141
115
|
type Child = unknown;
|
|
142
116
|
type Element = unknown;
|
|
143
117
|
type AnyTagName = string & Record<never, never>;
|
|
@@ -149,7 +123,7 @@ declare global {
|
|
|
149
123
|
type Component<P extends object = {}> = (props: P) => Element;
|
|
150
124
|
type ClassComponent<Instance extends object = any> = abstract new (...args: any[]) => Instance;
|
|
151
125
|
type ComponentLike<P extends object = object> = Component<P> | ClassComponent<any>;
|
|
152
|
-
type ComponentProps<T> = T extends Component<infer P> ? P : T extends ClassComponent<infer I> ?
|
|
126
|
+
type ComponentProps<T> = T extends Component<infer P> ? P : T extends ClassComponent<infer I> ? JSXElementProps<Extract<I, object>> : T extends abstract new (...args: any[]) => infer I ? JSXElementProps<Extract<I, object>> : {};
|
|
153
127
|
}
|
|
154
128
|
var as: {
|
|
155
129
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-core.d.ts","sourceRoot":"","sources":["../../src/shared/jsx-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAG5C,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM,CAAC;QAChB,UAAU,aAAa;YAAG,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC;SAAE;QAErD;;;;;;;;;;;;WAYG;QACH,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;QAErC,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;YAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC;SAAE,GAC1D,CAAC,OAAO,cAAc,SAAS,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GACtD,KAAK,CAAC;QACT,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI;aAC7C,CAAC,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACnF,GAAG;aACF,CAAC,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACnE,CAAC;QAEF
|
|
1
|
+
{"version":3,"file":"jsx-core.d.ts","sourceRoot":"","sources":["../../src/shared/jsx-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ declare global {
|
|
|
6
6
|
namespace JSX {
|
|
7
7
|
type Element = LitJSX.Element;
|
|
8
8
|
type ElementType = keyof LitJSX.IntrinsicElements | (string & {}) | LitJSX.ComponentLike<any>;
|
|
9
|
-
type LibraryManagedAttributes<C, P extends object> = C extends abstract new (...args: any[]) => infer I ? (P extends I ? LitJSX.
|
|
9
|
+
type LibraryManagedAttributes<C, P extends object> = C extends abstract new (...args: any[]) => infer I ? (P extends I ? LitJSX.JSXElementProps<P> : LitJSX.ComponentProps<C>) : (C extends keyof LitJSX.IntrinsicElements ? LitJSX.IntrinsicElements[C] : P);
|
|
10
10
|
interface ElementClass {
|
|
11
11
|
}
|
|
12
12
|
interface ElementAttributesProperty {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-hooks.d.ts","sourceRoot":"","sources":["../../src/shared/jsx-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAGV;;GAEG;AAEH,OAAO,CAAC,MAAM,CAAC;IAGd,UAAU,GAAG,CAAC;QAMb,KAAK,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAQ9B,KAAK,WAAW,GACb,MAAM,MAAM,CAAC,iBAAiB,GAC9B,CAAC,MAAM,GAAG,EAAE,CAAC,GACb,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAU7B,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAC9C,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAEjD,CAAC,CAAC,SAAS,CAAC,GAEX,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"jsx-hooks.d.ts","sourceRoot":"","sources":["../../src/shared/jsx-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAGV;;GAEG;AAEH,OAAO,CAAC,MAAM,CAAC;IAGd,UAAU,GAAG,CAAC;QAMb,KAAK,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAQ9B,KAAK,WAAW,GACb,MAAM,MAAM,CAAC,iBAAiB,GAC9B,CAAC,MAAM,GAAG,EAAE,CAAC,GACb,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAU7B,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAC9C,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAEjD,CAAC,CAAC,SAAS,CAAC,GAEX,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,GAEzB,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAE1B,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,iBAAiB,GACxC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAE3B,CAAC,CAAC,CAAC;QAOR,UAAU,YAAY;SAAG;QAOzB,UAAU,yBAAyB;SAAG;QAKtC,UAAU,wBAAwB;YAAG,QAAQ,EAAE,EAAE,CAAC;SAAE;QAGpD,UAAU,mBAAmB;SAAG;QAGhC,UAAU,wBAAwB,CAAC,EAAE;SAAI;QAGzC,UAAU,UAAU;SAAG;QAGvB,KAAK,QAAQ,GAAG,OAAO,CAAC;QAQxB,UAAU,iBAAkB,SAAQ,MAAM,CAAC,iBAAiB;SAAG;KAC/D;CAED"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcmantle/lit-jsx",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.15",
|
|
4
4
|
"description": "A JSX runtime and compiler that transforms JSX into Lit templates.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -48,6 +48,9 @@
|
|
|
48
48
|
"vitepress": "^1.6.4",
|
|
49
49
|
"vitest": "^4.0.16"
|
|
50
50
|
},
|
|
51
|
+
"publishConfig": {
|
|
52
|
+
"registry": "https://registry.npmjs.org/"
|
|
53
|
+
},
|
|
51
54
|
"scripts": {
|
|
52
55
|
"build": "rimraf dist && tsc --project ./src/tsconfig.json",
|
|
53
56
|
"dev": "vite build --watch --mode=development",
|
|
@@ -36,7 +36,7 @@ export const toComponent = <T extends { new(...args: any): any; tagName: string;
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
export type ToComponent<T extends object = object> =
|
|
39
|
-
(props: LitJSX.
|
|
39
|
+
(props: LitJSX.JSXElementProps<T> & { static: any; }) => string;
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
/**
|
package/src/shared/jsx-core.ts
CHANGED
|
@@ -34,36 +34,19 @@ declare global {
|
|
|
34
34
|
[P in keyof T as IsMandatory<T[P]> extends true ? never : P]?: T[P]
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
*
|
|
41
|
-
* For example, to exclude `ref` from being available in <MyElement>, \
|
|
42
|
-
* you can create an extension like this:
|
|
43
|
-
* ```
|
|
44
|
-
* declare global {
|
|
45
|
-
* namespace LitJSX {
|
|
46
|
-
* interface ExcludedComponentProps {
|
|
47
|
-
* 'arbitrary-name': 'ref';
|
|
48
|
-
* }
|
|
49
|
-
* }
|
|
50
|
-
* }
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
interface ExcludedComponentProps {
|
|
54
|
-
'html-element': keyof HTMLElement | 'constructor';
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
type ExcludedKeys = {
|
|
58
|
-
[K in keyof ExcludedComponentProps]: ExcludedComponentProps[K];
|
|
59
|
-
}[keyof ExcludedComponentProps];
|
|
60
|
-
|
|
61
|
-
type IndexableObject = object & Record<string, any>;
|
|
37
|
+
type IfEquals<X, Y, A = X> =
|
|
38
|
+
(<T>() => T extends X ? 1 : 2) extends
|
|
39
|
+
(<T>() => T extends Y ? 1 : 2) ? A : never;
|
|
62
40
|
|
|
63
|
-
type
|
|
64
|
-
|
|
41
|
+
type WritableKeys<T> = {
|
|
42
|
+
[P in keyof T]-?: IfEquals<
|
|
43
|
+
{ [Q in P]: T[P] },
|
|
44
|
+
{ -readonly [Q in P]: T[P] },
|
|
45
|
+
P
|
|
46
|
+
>
|
|
47
|
+
}[keyof T];
|
|
65
48
|
|
|
66
|
-
type
|
|
49
|
+
type TrimReadonly<T> = Pick<T, WritableKeys<T>>;
|
|
67
50
|
|
|
68
51
|
interface DataProps {
|
|
69
52
|
[key: `data-${ string }`]: string | undefined;
|
|
@@ -97,7 +80,7 @@ declare global {
|
|
|
97
80
|
* Example: `<div ref={myRef}></div>` \
|
|
98
81
|
* Example with callback: `<div ref={(el) => { ... }}></div>`
|
|
99
82
|
*/
|
|
100
|
-
ref?: RefOrCallback<
|
|
83
|
+
ref?: RefOrCallback<PartialExceptRequired<TrimReadonly<T>>>;
|
|
101
84
|
|
|
102
85
|
/**
|
|
103
86
|
* An object defining CSS classes.
|
|
@@ -140,30 +123,12 @@ declare global {
|
|
|
140
123
|
directive?: DirectiveResult<any> | DirectiveResult<any>[];
|
|
141
124
|
} & DataProps;
|
|
142
125
|
|
|
143
|
-
type
|
|
126
|
+
type JSXElementProps<T extends object> = SpecialProps<PartialExceptRequired<TrimReadonly<T>>>;
|
|
127
|
+
|
|
128
|
+
type ElementMapToJSXElements<T extends Record<string, any>> = {
|
|
144
129
|
[K in keyof T]: JSXElementProps<T[K]>;
|
|
145
130
|
};
|
|
146
131
|
|
|
147
|
-
type IfEquals<X, Y, A = X> =
|
|
148
|
-
(<T>() => T extends X ? 1 : 2) extends
|
|
149
|
-
(<T>() => T extends Y ? 1 : 2) ? A : never;
|
|
150
|
-
|
|
151
|
-
type WritableKeys<T> = {
|
|
152
|
-
[P in keyof T]-?: IfEquals<
|
|
153
|
-
{ [Q in P]: T[P] },
|
|
154
|
-
{ -readonly [Q in P]: T[P] },
|
|
155
|
-
P
|
|
156
|
-
>
|
|
157
|
-
}[keyof T];
|
|
158
|
-
|
|
159
|
-
type TrimReadonly<T> = Pick<T, WritableKeys<T>>;
|
|
160
|
-
|
|
161
|
-
type TrimHTMLElement<T extends object> = TrimReadonly<Omit<T, ExcludedKeys>>;
|
|
162
|
-
|
|
163
|
-
type JSXProps<T extends object>
|
|
164
|
-
= PartialExceptRequired<TrimHTMLElement<T>>
|
|
165
|
-
& Partial<Omit<TrimReadonly<HTMLElement>, keyof TrimHTMLElement<T>>>;
|
|
166
|
-
|
|
167
132
|
type Child = unknown;
|
|
168
133
|
type Element = unknown;
|
|
169
134
|
|
|
@@ -193,8 +158,8 @@ declare global {
|
|
|
193
158
|
|
|
194
159
|
type ComponentProps<T> =
|
|
195
160
|
T extends Component<infer P> ? P :
|
|
196
|
-
T extends ClassComponent<infer I> ?
|
|
197
|
-
T extends abstract new (...args: any[]) => infer I ?
|
|
161
|
+
T extends ClassComponent<infer I> ? JSXElementProps<Extract<I, object>> :
|
|
162
|
+
T extends abstract new (...args: any[]) => infer I ? JSXElementProps<Extract<I, object>> :
|
|
198
163
|
{};
|
|
199
164
|
}
|
|
200
165
|
|
package/src/shared/jsx-hooks.ts
CHANGED
|
@@ -40,13 +40,13 @@ declare global {
|
|
|
40
40
|
// if C is a class component constructor
|
|
41
41
|
? (P extends I
|
|
42
42
|
// if props P are compatible with instance I
|
|
43
|
-
? LitJSX.
|
|
43
|
+
? LitJSX.JSXElementProps<P>
|
|
44
44
|
// else fall back to general props for I
|
|
45
|
-
: LitJSX.
|
|
45
|
+
: LitJSX.ComponentProps<C>)
|
|
46
46
|
// if C is a functional component or intrinsic element
|
|
47
47
|
: (C extends keyof LitJSX.IntrinsicElements
|
|
48
48
|
? LitJSX.IntrinsicElements[C]
|
|
49
|
-
// intrinsic element
|
|
49
|
+
// intrinsic element|
|
|
50
50
|
: P);
|
|
51
51
|
|
|
52
52
|
/*
|