@solidjs/element 2.0.0-experimental.4 → 2.0.0-experimental.6

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/README.md CHANGED
@@ -8,7 +8,7 @@ This library extends [Solid](https://github.com/solidjs/solid) by adding Custom
8
8
 
9
9
  ## Example
10
10
 
11
- [See here](https://webcomponents.dev/edit/yGRb00wV4AMncPupRmA9) for an example of a webcomponent created by `solid-element`.
11
+ [See here](./sample.jsx) for an example of a webcomponent created by `solid-element`.
12
12
 
13
13
  ## Installation
14
14
 
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.4",
6
+ "version": "2.0.0-experimental.6",
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.4",
24
- "@solidjs/web": "^2.0.0-experimental.4"
23
+ "solid-js": "^2.0.0-experimental.6",
24
+ "@solidjs/web": "^2.0.0-experimental.6"
25
25
  },
26
26
  "devDependencies": {
27
- "solid-js": "2.0.0-experimental.4",
28
- "@solidjs/web": "2.0.0-experimental.4"
27
+ "solid-js": "2.0.0-experimental.6",
28
+ "@solidjs/web": "2.0.0-experimental.6"
29
29
  },
30
30
  "scripts": {
31
31
  "clean": "rimraf dist/",