@solidjs/element 2.0.0-experimental.1 → 2.0.0-experimental.3

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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2016-2023 Ryan Carniato
3
+ Copyright (c) 2016-2025 Ryan Carniato
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/dist/index.d.ts CHANGED
@@ -2,6 +2,13 @@ import { ComponentType as mComponentType, PropsDefinitionInput } from "component
2
2
  export { hot, getCurrentElement, noShadowDOM } from "component-register";
3
3
  export type ComponentType<T> = mComponentType<T>;
4
4
  declare function withSolid<T extends object>(ComponentType: ComponentType<T>): ComponentType<T>;
5
- declare function customElement<T extends object>(tag: string, ComponentType: ComponentType<T>): CustomElementConstructor;
6
- declare function customElement<T extends object>(tag: string, props: PropsDefinitionInput<T>, ComponentType: ComponentType<T>): CustomElementConstructor;
5
+ declare function customElement<T extends object>(
6
+ tag: string,
7
+ ComponentType: ComponentType<T>
8
+ ): CustomElementConstructor;
9
+ declare function customElement<T extends object>(
10
+ tag: string,
11
+ props: PropsDefinitionInput<T>,
12
+ ComponentType: ComponentType<T>
13
+ ): CustomElementConstructor;
7
14
  export { withSolid, customElement };
package/dist/index.js CHANGED
@@ -3,55 +3,50 @@ export { hot, getCurrentElement, noShadowDOM } from "component-register";
3
3
  import { createRoot, createSignal, runWithOwner } from "solid-js";
4
4
  import { insert } from "@solidjs/web";
5
5
  function createProps(raw) {
6
- const keys = Object.keys(raw);
7
- const props = {};
8
- for (let i = 0; i < keys.length; i++) {
9
- const [get, set] = createSignal(() => raw[keys[i]]);
10
- Object.defineProperty(props, keys[i], {
11
- get,
12
- set(v) {
13
- set(() => v);
14
- }
15
- });
16
- }
17
- return props;
6
+ const keys = Object.keys(raw);
7
+ const props = {};
8
+ for (let i = 0; i < keys.length; i++) {
9
+ const [get, set] = createSignal(() => raw[keys[i]]);
10
+ Object.defineProperty(props, keys[i], {
11
+ get,
12
+ set(v) {
13
+ set(() => v);
14
+ }
15
+ });
16
+ }
17
+ return props;
18
18
  }
19
19
  function lookupContext(el) {
20
- if (el.assignedSlot && el.assignedSlot._$owner)
21
- return el.assignedSlot._$owner;
22
- let next = el.parentNode;
23
- while (next &&
24
- !next._$owner &&
25
- !(next.assignedSlot && next.assignedSlot._$owner))
26
- next = next.parentNode;
27
- return next && next.assignedSlot
28
- ? next.assignedSlot._$owner
29
- : el._$owner;
20
+ if (el.assignedSlot && el.assignedSlot._$owner) return el.assignedSlot._$owner;
21
+ let next = el.parentNode;
22
+ while (next && !next._$owner && !(next.assignedSlot && next.assignedSlot._$owner))
23
+ next = next.parentNode;
24
+ return next && next.assignedSlot ? next.assignedSlot._$owner : el._$owner;
30
25
  }
31
26
  function withSolid(ComponentType) {
32
- return (rawProps, options) => {
33
- const { element } = options;
34
- const owner = lookupContext(element);
35
- function createComponent() {
36
- return createRoot((dispose) => {
37
- const props = createProps(rawProps);
38
- element.addPropertyChangedCallback((key, val) => (props[key] = val));
39
- element.addReleaseCallback(() => {
40
- element.renderRoot.textContent = "";
41
- dispose();
42
- });
43
- const comp = ComponentType(props, options);
44
- return insert(element.renderRoot, comp);
45
- });
46
- }
47
- return owner ? runWithOwner(owner, createComponent) : createComponent();
48
- };
27
+ return (rawProps, options) => {
28
+ const { element } = options;
29
+ const owner = lookupContext(element);
30
+ function createComponent() {
31
+ return createRoot(dispose => {
32
+ const props = createProps(rawProps);
33
+ element.addPropertyChangedCallback((key, val) => (props[key] = val));
34
+ element.addReleaseCallback(() => {
35
+ element.renderRoot.textContent = "";
36
+ dispose();
37
+ });
38
+ const comp = ComponentType(props, options);
39
+ return insert(element.renderRoot, comp);
40
+ });
41
+ }
42
+ return owner ? runWithOwner(owner, createComponent) : createComponent();
43
+ };
49
44
  }
50
45
  function customElement(tag, props, ComponentType) {
51
- if (arguments.length === 2) {
52
- ComponentType = props;
53
- props = {};
54
- }
55
- return register(tag, props)(withSolid(ComponentType));
46
+ if (arguments.length === 2) {
47
+ ComponentType = props;
48
+ props = {};
49
+ }
50
+ return register(tag, props)(withSolid(ComponentType));
56
51
  }
57
52
  export { withSolid, customElement };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponents wrapper for Solid",
4
4
  "author": "Ryan Carniato",
5
5
  "license": "MIT",
6
- "version": "2.0.0-experimental.1",
6
+ "version": "2.0.0-experimental.3",
7
7
  "homepage": "https://github.com/solidjs/solid/blob/main/packages/solid-element#readme",
8
8
  "type": "module",
9
9
  "main": "dist/index.js",
@@ -20,12 +20,12 @@
20
20
  "component-register": "^0.8.7"
21
21
  },
22
22
  "peerDependencies": {
23
- "solid-js": "^2.0.0-experimental.1",
24
- "@solidjs/web": "^2.0.0-experimental.1"
23
+ "solid-js": "^2.0.0-experimental.3",
24
+ "@solidjs/web": "^2.0.0-experimental.3"
25
25
  },
26
26
  "devDependencies": {
27
- "solid-js": "2.0.0-experimental.1",
28
- "@solidjs/web": "2.0.0-experimental.1"
27
+ "solid-js": "2.0.0-experimental.3",
28
+ "@solidjs/web": "2.0.0-experimental.3"
29
29
  },
30
30
  "scripts": {
31
31
  "clean": "rimraf dist/",