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

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.d.ts CHANGED
@@ -2,13 +2,6 @@ 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>(
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;
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;
14
7
  export { withSolid, customElement };
package/dist/index.js CHANGED
@@ -3,50 +3,55 @@ 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) 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;
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;
25
30
  }
26
31
  function withSolid(ComponentType) {
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
- };
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
+ };
44
49
  }
45
50
  function customElement(tag, props, ComponentType) {
46
- if (arguments.length === 2) {
47
- ComponentType = props;
48
- props = {};
49
- }
50
- return register(tag, props)(withSolid(ComponentType));
51
+ if (arguments.length === 2) {
52
+ ComponentType = props;
53
+ props = {};
54
+ }
55
+ return register(tag, props)(withSolid(ComponentType));
51
56
  }
52
57
  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.3",
6
+ "version": "2.0.0-experimental.5",
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.3",
24
- "@solidjs/web": "^2.0.0-experimental.3"
23
+ "solid-js": "^2.0.0-experimental.5",
24
+ "@solidjs/web": "^2.0.0-experimental.5"
25
25
  },
26
26
  "devDependencies": {
27
- "solid-js": "2.0.0-experimental.3",
28
- "@solidjs/web": "2.0.0-experimental.3"
27
+ "solid-js": "2.0.0-experimental.5",
28
+ "@solidjs/web": "2.0.0-experimental.5"
29
29
  },
30
30
  "scripts": {
31
31
  "clean": "rimraf dist/",