@arcmantle/lit-jsx 1.1.9 → 1.1.10

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.
@@ -2,9 +2,16 @@ import type { DirectiveResult } from 'lit-html/async-directive.js';
2
2
  import type { RefOrCallback } from 'lit-html/directives/ref.js';
3
3
  declare global {
4
4
  namespace LitJSX {
5
+ interface ExcludedComponentProps {
6
+ 'html-element': keyof HTMLElement;
7
+ }
8
+ type ExcludedKeys = {
9
+ [K in keyof ExcludedComponentProps]: ExcludedComponentProps[K];
10
+ }[keyof ExcludedComponentProps];
5
11
  type HTMLElementAssignableProps<T extends object & Record<string, any>> = Partial<TrimReadonly<T>>;
6
12
  type HTMLElementProps = HTMLElementAssignableProps<HTMLElement>;
7
- type JSXElementProps<T extends object> = Omit<HTMLElementAssignableProps<T>, 'style'> & {
13
+ type JSXElementProps<T extends object> = SpecialProps<HTMLElementAssignableProps<T>>;
14
+ type SpecialProps<T extends object = object> = Omit<T, 'style'> & {
8
15
  children?: LitJSX.Child;
9
16
  ref?: RefOrCallback<HTMLElementAssignableProps<T>>;
10
17
  classList?: {
@@ -35,7 +42,7 @@ declare global {
35
42
  }, P>;
36
43
  }[keyof T];
37
44
  type TrimReadonly<T> = Pick<T, WritableKeys<T>>;
38
- type TrimHTMLElement<T extends object> = TrimReadonly<Omit<T, keyof HTMLElement | 'constructor'>>;
45
+ type TrimHTMLElement<T extends object> = TrimReadonly<Omit<T, ExcludedKeys | 'constructor'>>;
39
46
  type JSXProps<T extends object> = TrimHTMLElement<T> & Omit<HTMLElementProps, keyof TrimHTMLElement<T>>;
40
47
  type Child = unknown;
41
48
  type Element = unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-core.d.ts","sourceRoot":"","sources":["../../src/shared/jsx-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx-core.d.ts","sourceRoot":"","sources":["../../src/shared/jsx-core.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ declare global {
25
25
  * - preserve TSX generic arguments on class instances (avoid `unknown` props)
26
26
  * - provide proper type inference for functional component props
27
27
  */
28
- type LibraryManagedAttributes<C, P> = C extends abstract new (...args: any[]) => infer I ? (P extends I ? LitJSX.JSXProps<Extract<P, object>> & LitJSX.StaticMarker : LitJSX.ComponentProps<C> & LitJSX.StaticMarker) : (C extends keyof LitJSX.IntrinsicElements ? LitJSX.IntrinsicElementProps<C> : P);
28
+ type LibraryManagedAttributes<C, P extends object> = C extends abstract new (...args: any[]) => infer I ? (P extends I ? LitJSX.SpecialProps<LitJSX.JSXProps<P>> & LitJSX.StaticMarker : LitJSX.SpecialProps<LitJSX.ComponentProps<C>> & LitJSX.StaticMarker) : (C extends keyof LitJSX.IntrinsicElements ? LitJSX.IntrinsicElementProps<C> : P);
29
29
  /**
30
30
  * TSX hook: controls the instance type used for class components.
31
31
  *
@@ -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;QACb;;;;WAIG;QACH,KAAK,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B;;;;;WAKG;QACH,KAAK,WAAW,GACb,MAAM,MAAM,CAAC,iBAAiB,GAC9B,CAAC,MAAM,GAAG,EAAE,CAAC,GACb,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAE7B;;;;;;;WAOG;QACH,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAC/B,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GACjD,CAAC,CAAC,SAAS,CAAC,GACX,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,GACzD,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAChD,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,iBAAiB,GACxC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAC/B,CAAC,CAAC,CAAC;QAER;;;;WAIG;QACH,UAAU,YAAY;SAAG;QAEzB;;;;WAIG;QACH,UAAU,yBAAyB;SAAG;QAEtC;;WAEG;QACH,UAAU,wBAAwB;YAAG,QAAQ,EAAE,EAAE,CAAC;SAAE;QAEpD,+EAA+E;QAC/E,UAAU,mBAAmB;SAAG;QAEhC,wFAAwF;QACxF,UAAU,wBAAwB,CAAC,EAAE;SAAI;QAEzC,kFAAkF;QAClF,UAAU,UAAU;SAAG;QAEvB,+CAA+C;QAC/C,KAAK,QAAQ,GAAG,OAAO,CAAC;QAExB;;;;;WAKG;QACH,UAAU,iBAAkB,SAAQ,MAAM,CAAC,iBAAiB;SAAG;KAC/D;CAED"}
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;QACb;;;;WAIG;QACH,KAAK,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B;;;;;WAKG;QACH,KAAK,WAAW,GACb,MAAM,MAAM,CAAC,iBAAiB,GAC9B,CAAC,MAAM,GAAG,EAAE,CAAC,GACb,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAE7B;;;;;;;WAOG;QACH,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,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,GAE7D,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAErE,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,iBAAiB,GACxC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAE/B,CAAC,CAAC,CAAC;QAER;;;;WAIG;QACH,UAAU,YAAY;SAAG;QAEzB;;;;WAIG;QACH,UAAU,yBAAyB;SAAG;QAEtC;;WAEG;QACH,UAAU,wBAAwB;YAAG,QAAQ,EAAE,EAAE,CAAC;SAAE;QAEpD,+EAA+E;QAC/E,UAAU,mBAAmB;SAAG;QAEhC,wFAAwF;QACxF,UAAU,wBAAwB,CAAC,EAAE;SAAI;QAEzC,kFAAkF;QAClF,UAAU,UAAU;SAAG;QAEvB,+CAA+C;QAC/C,KAAK,QAAQ,GAAG,OAAO,CAAC;QAExB;;;;;WAKG;QACH,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.9",
3
+ "version": "1.1.10",
4
4
  "description": "A JSX runtime and compiler that transforms JSX into Lit templates.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,12 +4,23 @@ import type { RefOrCallback } from 'lit-html/directives/ref.js';
4
4
 
5
5
  declare global {
6
6
  namespace LitJSX {
7
+
8
+ interface ExcludedComponentProps {
9
+ 'html-element': keyof HTMLElement;
10
+ }
11
+
12
+ type ExcludedKeys = {
13
+ [K in keyof ExcludedComponentProps]: ExcludedComponentProps[K];
14
+ }[keyof ExcludedComponentProps];
15
+
7
16
  type HTMLElementAssignableProps<T extends object & Record<string, any>> =
8
17
  Partial<TrimReadonly<T>>;
9
18
 
10
19
  type HTMLElementProps = HTMLElementAssignableProps<HTMLElement>;
11
20
 
12
- type JSXElementProps<T extends object> = Omit<HTMLElementAssignableProps<T>, 'style'> & {
21
+ type JSXElementProps<T extends object> = SpecialProps<HTMLElementAssignableProps<T>>;
22
+
23
+ type SpecialProps<T extends object = object> = Omit<T, 'style'> & {
13
24
  children?: LitJSX.Child;
14
25
  ref?: RefOrCallback<HTMLElementAssignableProps<T>>;
15
26
  classList?: { [k: string]: boolean | undefined; };
@@ -44,10 +55,12 @@ declare global {
44
55
 
45
56
  type TrimReadonly<T> = Pick<T, WritableKeys<T>>;
46
57
 
47
- type TrimHTMLElement<T extends object> = TrimReadonly<Omit<T, keyof HTMLElement | 'constructor'>>;
58
+ type TrimHTMLElement<T extends object> = TrimReadonly<
59
+ Omit<T, ExcludedKeys | 'constructor'>
60
+ >;
48
61
 
49
- type JSXProps<T extends object> =
50
- & TrimHTMLElement<T>
62
+ type JSXProps<T extends object>
63
+ = TrimHTMLElement<T>
51
64
  & Omit<HTMLElementProps, keyof TrimHTMLElement<T>>;
52
65
 
53
66
  type Child = unknown;
@@ -35,13 +35,18 @@ declare global {
35
35
  * - preserve TSX generic arguments on class instances (avoid `unknown` props)
36
36
  * - provide proper type inference for functional component props
37
37
  */
38
- type LibraryManagedAttributes<C, P>
38
+ type LibraryManagedAttributes<C, P extends object>
39
39
  = C extends abstract new (...args: any[]) => infer I
40
+ // if C is a class component constructor
40
41
  ? (P extends I
41
- ? LitJSX.JSXProps<Extract<P, object>> & LitJSX.StaticMarker
42
- : LitJSX.ComponentProps<C> & LitJSX.StaticMarker)
42
+ // if props P are compatible with instance I
43
+ ? LitJSX.SpecialProps<LitJSX.JSXProps<P>> & LitJSX.StaticMarker
44
+ // else fall back to general props for I
45
+ : LitJSX.SpecialProps<LitJSX.ComponentProps<C>> & LitJSX.StaticMarker)
46
+ // if C is a functional component or intrinsic element
43
47
  : (C extends keyof LitJSX.IntrinsicElements
44
48
  ? LitJSX.IntrinsicElementProps<C>
49
+ // intrinsic element
45
50
  : P);
46
51
 
47
52
  /**