nexa-runtime 0.5.1 → 0.6.0

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.
Files changed (92) hide show
  1. package/dist/component/Transition.d.ts +0 -1
  2. package/dist/component/Transition.js +0 -1
  3. package/dist/component/asyncComponent.d.ts +0 -1
  4. package/dist/component/asyncComponent.js +0 -1
  5. package/dist/component/defineComponent.d.ts +0 -1
  6. package/dist/component/defineComponent.js +0 -1
  7. package/dist/component/errorBoundary.d.ts +0 -1
  8. package/dist/component/errorBoundary.js +3 -4
  9. package/dist/component/index.d.ts +1 -1
  10. package/dist/component/index.js +1 -1
  11. package/dist/component/inject.d.ts +2 -0
  12. package/dist/component/inject.js +16 -0
  13. package/dist/component/lifecycle.d.ts +0 -1
  14. package/dist/component/lifecycle.js +0 -1
  15. package/dist/component/suspense.d.ts +0 -1
  16. package/dist/component/suspense.js +3 -4
  17. package/dist/directives/index.d.ts +0 -1
  18. package/dist/directives/index.js +4 -5
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/scheduler.d.ts +3 -2
  22. package/dist/scheduler.d.ts.map +1 -1
  23. package/dist/scheduler.js +32 -13
  24. package/dist/scheduler.js.map +1 -1
  25. package/dist/ssr/hydrate.d.ts +0 -1
  26. package/dist/ssr/hydrate.js +3 -1
  27. package/dist/ssr/hydrate.js.map +1 -1
  28. package/dist/ssr/renderToStream.d.ts +0 -1
  29. package/dist/ssr/renderToStream.js +0 -1
  30. package/dist/ssr/renderToString.d.ts +0 -1
  31. package/dist/ssr/renderToString.js +4 -2
  32. package/dist/vdom/diff.d.ts +0 -1
  33. package/dist/vdom/diff.js +8 -12
  34. package/dist/vdom/dom.d.ts +0 -1
  35. package/dist/vdom/dom.js +45 -14
  36. package/dist/vdom/h.d.ts +0 -1
  37. package/dist/vdom/h.js +4 -3
  38. package/dist/vdom/hmr.d.ts +0 -1
  39. package/dist/vdom/hmr.js +3 -2
  40. package/dist/vdom/index.d.ts +0 -1
  41. package/dist/vdom/index.js +0 -1
  42. package/dist/vdom/mountComponent.d.ts +1 -1
  43. package/dist/vdom/mountComponent.d.ts.map +1 -1
  44. package/dist/vdom/mountComponent.js +116 -33
  45. package/dist/vdom/mountComponent.js.map +1 -1
  46. package/dist/vdom/mountProps.d.ts +0 -1
  47. package/dist/vdom/mountProps.js +31 -9
  48. package/dist/vdom/patch.d.ts +0 -1
  49. package/dist/vdom/patch.d.ts.map +1 -1
  50. package/dist/vdom/patch.js +27 -13
  51. package/dist/vdom/patch.js.map +1 -1
  52. package/dist/vdom/renderer.d.ts +0 -1
  53. package/dist/vdom/renderer.js +0 -1
  54. package/dist/vdom/scope.d.ts +0 -1
  55. package/dist/vdom/scope.js +0 -1
  56. package/dist/vdom/slots.d.ts +0 -1
  57. package/dist/vdom/slots.js +9 -2
  58. package/dist/vdom/transition.d.ts +0 -1
  59. package/dist/vdom/transition.js +0 -1
  60. package/dist/vdom/types.d.ts +4 -2
  61. package/dist/vdom/types.js +0 -1
  62. package/dist/vdom/unmount.d.ts +0 -1
  63. package/dist/vdom/unmount.js +25 -24
  64. package/package.json +2 -2
  65. package/dist/component/defineComponent.d.ts.map +0 -1
  66. package/dist/component/defineComponent.js.map +0 -1
  67. package/dist/component/index.js.map +0 -1
  68. package/dist/component/lifecycle.d.ts.map +0 -1
  69. package/dist/component/lifecycle.js.map +0 -1
  70. package/dist/index.js.map +0 -1
  71. package/dist/ssr/renderToStream.d.ts.map +0 -1
  72. package/dist/ssr/renderToStream.js.map +0 -1
  73. package/dist/ssr/renderToString.d.ts.map +0 -1
  74. package/dist/ssr/renderToString.js.map +0 -1
  75. package/dist/vdom/diff.d.ts.map +0 -1
  76. package/dist/vdom/diff.js.map +0 -1
  77. package/dist/vdom/h.js.map +0 -1
  78. package/dist/vdom/hmr.d.ts.map +0 -1
  79. package/dist/vdom/hmr.js.map +0 -1
  80. package/dist/vdom/index.js.map +0 -1
  81. package/dist/vdom/renderer.d.ts.map +0 -1
  82. package/dist/vdom/renderer.js.map +0 -1
  83. package/dist/vdom/scope.d.ts.map +0 -1
  84. package/dist/vdom/scope.js.map +0 -1
  85. package/dist/vdom/slots.d.ts.map +0 -1
  86. package/dist/vdom/slots.js.map +0 -1
  87. package/dist/vdom/transition.d.ts.map +0 -1
  88. package/dist/vdom/transition.js.map +0 -1
  89. package/dist/vdom/types.d.ts.map +0 -1
  90. package/dist/vdom/types.js.map +0 -1
  91. package/dist/vdom/unmount.d.ts.map +0 -1
  92. package/dist/vdom/unmount.js.map +0 -1
@@ -1,23 +1,46 @@
1
- import { effect, signal } from 'nexa-reactivity';
1
+ import { signal, track, Effect } from 'nexa-reactivity';
2
2
  import { Fragment } from './types';
3
3
  import { extractSlots } from './slots';
4
- import { setCurrentInstance, runLifecycle } from '../component/lifecycle';
4
+ import { setCurrentInstance, getCurrentInstance, runLifecycle } from '../component/lifecycle';
5
5
  import { getCurrentErrorBoundary } from '../component/errorBoundary';
6
6
  import { pushScope, popScope } from './scope';
7
7
  import { mount, applyPatches } from './patch';
8
8
  import { diff } from './diff';
9
9
  import { registerInstance } from './hmr';
10
+ import { queueJob, flushJobs } from '../scheduler';
10
11
  let currentComponent = null;
12
+ export const resolveProps = (comp, rawProps) => {
13
+ const props = {};
14
+ const declaredProps = comp.props;
15
+ if (rawProps) {
16
+ for (const key in rawProps) {
17
+ props[key] = rawProps[key];
18
+ }
19
+ }
20
+ if (declaredProps && typeof declaredProps === 'object' && !Array.isArray(declaredProps)) {
21
+ for (const key in declaredProps) {
22
+ if (props[key] === undefined) {
23
+ const propDef = declaredProps[key];
24
+ if (propDef && typeof propDef === 'object' && 'default' in propDef) {
25
+ props[key] = typeof propDef.default === 'function' ? propDef.default() : propDef.default;
26
+ }
27
+ }
28
+ }
29
+ }
30
+ return props;
31
+ };
11
32
  export function mountComponent(vnode, parent, options, anchor = null) {
12
33
  const comp = vnode.tag;
13
34
  const prevComponent = currentComponent;
14
- const hmrTrigger = signal(0);
15
35
  const instance = {
16
36
  component: comp,
17
- props: signal(vnode.props ?? {}),
37
+ props: signal(resolveProps(comp, vnode.props ?? {})),
18
38
  setupState: {},
19
39
  vnode: null,
20
40
  mounted: false,
41
+ depth: prevComponent ? prevComponent.depth + 1 : 0,
42
+ parent: prevComponent,
43
+ provides: prevComponent ? Object.create(prevComponent.provides) : {},
21
44
  lifecycle: {
22
45
  beforeMount: [],
23
46
  mounted: [],
@@ -26,14 +49,16 @@ export function mountComponent(vnode, parent, options, anchor = null) {
26
49
  beforeUnmount: [],
27
50
  unmounted: [],
28
51
  },
29
- update: () => {
30
- hmrTrigger.value++;
31
- },
52
+ update: null,
32
53
  };
33
54
  vnode.component = instance;
34
55
  currentComponent = instance;
35
56
  setCurrentInstance(instance);
36
57
  registerInstance(instance);
58
+ const devtools = (typeof window !== 'undefined') ? window.__NEXA_DEVTOOLS__ : null;
59
+ if (devtools?.registerComponent) {
60
+ devtools.registerComponent(comp.name || comp.__hmrId || 'Anonymous', instance);
61
+ }
37
62
  const childSlots = extractSlots(vnode.children);
38
63
  function buildSlotResult(nodes) {
39
64
  if (nodes.length === 0)
@@ -54,15 +79,19 @@ export function mountComponent(vnode, parent, options, anchor = null) {
54
79
  // Use a proxy or dynamic getters for slots to ensure they are always fresh
55
80
  const slotsProxy = new Proxy({}, {
56
81
  get(_, name) {
57
- const nodes = slotsSignal.value[name] || (name === 'default' ? [] : null);
58
- if (!nodes)
59
- return null;
60
- return (_props) => buildSlotResult(nodes);
82
+ return (_props) => {
83
+ const nodes = slotsSignal.value[name] || (name === 'default' ? [] : null);
84
+ if (!nodes)
85
+ return null;
86
+ return buildSlotResult(nodes);
87
+ };
61
88
  }
62
89
  });
63
90
  const setupCtx = {
64
91
  emit: (event, ...args) => {
65
- const handler = instance.vnode?.props?.[`on${event[0].toUpperCase()}${event.slice(1)}`] || vnode.props?.[`on${event[0].toUpperCase()}${event.slice(1)}`];
92
+ const key = `on${event[0].toUpperCase()}${event.slice(1)}`;
93
+ const resolvedProps = instance.props.value;
94
+ const handler = resolvedProps?.[key] || vnode.props?.[key];
66
95
  if (handler)
67
96
  handler(...args);
68
97
  },
@@ -72,8 +101,18 @@ export function mountComponent(vnode, parent, options, anchor = null) {
72
101
  let setupState = {};
73
102
  let renderFn = comp.render;
74
103
  let setupReturnedRender = false;
104
+ const propsProxy = new Proxy({}, {
105
+ get(_, key) {
106
+ track(instance.props, 'value');
107
+ const val = instance.props.value[key];
108
+ if (val && typeof val === 'object' && 'value' in val && typeof val.peek === 'function') {
109
+ return val.value;
110
+ }
111
+ return val;
112
+ }
113
+ });
75
114
  if (comp.setup) {
76
- const result = comp.setup(vnode.props ?? {}, setupCtx);
115
+ const result = comp.setup(propsProxy, setupCtx);
77
116
  if (typeof result === 'function') {
78
117
  renderFn = result;
79
118
  setupReturnedRender = true;
@@ -86,56 +125,100 @@ export function mountComponent(vnode, parent, options, anchor = null) {
86
125
  runLifecycle(instance, 'beforeMount');
87
126
  let el = null;
88
127
  if (renderFn || comp.render) {
89
- const ctx = {
90
- ...setupState,
91
- get props() { return instance.props.value; },
92
- $slots: setupCtx.slots
93
- };
94
- let oldVNode = null;
95
- let isFirstRender = true;
96
- effect(() => {
97
- hmrTrigger.value; // Track HMR signal
128
+ const ctx = new Proxy({}, {
129
+ get(_, key) {
130
+ if (key === 'props')
131
+ return instance.props.value;
132
+ if (key === '$slots')
133
+ return setupCtx.slots;
134
+ if (key === 'emit')
135
+ return setupCtx.emit;
136
+ if (key in setupState)
137
+ return setupState[key];
138
+ if (instance.props.value && key in instance.props.value) {
139
+ const val = instance.props.value[key];
140
+ if (val && typeof val === 'object' && 'value' in val && typeof val.peek === 'function') {
141
+ return val.value;
142
+ }
143
+ return val;
144
+ }
145
+ return undefined;
146
+ },
147
+ has(_, key) {
148
+ return key === 'props' || key === '$slots' || key === 'emit' || key in setupState || (instance.props.value && key in instance.props.value);
149
+ }
150
+ });
151
+ instance.update = new Effect(() => {
152
+ const prevComp = currentComponent;
153
+ const prevInst = getCurrentInstance();
98
154
  try {
155
+ currentComponent = instance;
156
+ setCurrentInstance(instance);
99
157
  pushScope(comp.__scopeId);
100
- // Use latest render function (setup return overrides definition render)
101
- const currentRender = setupReturnedRender ? renderFn : instance.component.render;
102
- const newVNode = currentRender(ctx);
158
+ let newVNode = setupReturnedRender ? renderFn(ctx) : comp.render(ctx);
159
+ // Normalize: wrap arrays in Fragments
160
+ if (Array.isArray(newVNode)) {
161
+ newVNode = {
162
+ _type: 'fragment',
163
+ tag: Fragment,
164
+ props: null,
165
+ children: newVNode,
166
+ el: null,
167
+ key: null,
168
+ component: null
169
+ };
170
+ }
103
171
  if (!newVNode) {
104
- popScope(comp.__scopeId);
105
- return;
172
+ newVNode = { _type: 'text', tag: null, props: null, children: null, el: null, key: null, component: null, text: '' };
106
173
  }
107
- if (isFirstRender) {
174
+ if (!instance.mounted) {
108
175
  instance.vnode = newVNode;
109
176
  el = mount(newVNode, parent, options, anchor);
110
177
  instance.mounted = true;
111
- isFirstRender = false;
112
178
  runLifecycle(instance, 'mounted');
179
+ if (instance._needsUpdate) {
180
+ instance._needsUpdate = false;
181
+ queueJob(instance);
182
+ flushJobs();
183
+ }
113
184
  }
114
185
  else {
115
186
  runLifecycle(instance, 'beforeUpdate');
116
- const patches = diff(oldVNode, newVNode, parent);
187
+ const patches = diff(instance.vnode, newVNode, parent);
117
188
  applyPatches(patches, options);
118
189
  instance.vnode = newVNode;
119
190
  runLifecycle(instance, 'updated');
120
191
  }
121
192
  popScope(comp.__scopeId);
122
- oldVNode = newVNode;
193
+ currentComponent = prevComp;
194
+ setCurrentInstance(prevInst);
123
195
  }
124
196
  catch (err) {
125
197
  popScope(comp.__scopeId);
198
+ currentComponent = prevComp;
199
+ setCurrentInstance(prevInst);
126
200
  const boundary = getCurrentErrorBoundary();
127
201
  if (boundary) {
128
- boundary.handleError(err instanceof Error ? err : new Error(String(err)));
202
+ boundary.handleError(err);
129
203
  }
130
204
  else {
131
205
  throw err;
132
206
  }
133
207
  }
208
+ }, () => {
209
+ if (instance.mounted) {
210
+ queueJob(instance);
211
+ }
212
+ else {
213
+ ;
214
+ instance._needsUpdate = true;
215
+ }
134
216
  });
217
+ instance.update.priority = 200;
218
+ instance.update.run();
135
219
  }
136
220
  popScope(comp.__scopeId);
137
221
  currentComponent = prevComponent;
138
222
  setCurrentInstance(prevComponent);
139
223
  return el;
140
224
  }
141
- //# sourceMappingURL=mountComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mountComponent.js","sourceRoot":"","sources":["../../src/vdom/mountComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mountComponent.js","sourceRoot":"","sources":["../../src/vdom/mountComponent.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
1
  export declare function mountProps(el: HTMLElement, props: Record<string, any> | null): void;
2
- //# sourceMappingURL=mountProps.d.ts.map
@@ -5,7 +5,11 @@ export function mountProps(el, props) {
5
5
  const prevProps = el._props || {};
6
6
  el._props = { ...props };
7
7
  for (const key of Object.keys(props)) {
8
- const val = props[key];
8
+ let val = props[key];
9
+ // Unwrap signals automatically for prop bindings
10
+ if (val && typeof val === 'object' && 'value' in val && typeof val.peek === 'function') {
11
+ val = val.value;
12
+ }
9
13
  if (val === prevProps[key] && key !== 'value')
10
14
  continue; // Skip if unchanged
11
15
  if (key === 'key')
@@ -44,10 +48,21 @@ export function mountProps(el, props) {
44
48
  el.setAttribute('class', val);
45
49
  }
46
50
  else if (val && typeof val === 'object') {
47
- const classes = Array.isArray(val)
48
- ? val.filter(Boolean)
49
- : Object.keys(val).filter(k => val[k]);
50
- el.setAttribute('class', classes.join(' '));
51
+ let classes = [];
52
+ if (Array.isArray(val)) {
53
+ for (const item of val) {
54
+ if (typeof item === 'string') {
55
+ classes.push(item);
56
+ }
57
+ else if (item && typeof item === 'object') {
58
+ classes.push(...Object.keys(item).filter(k => item[k]));
59
+ }
60
+ }
61
+ }
62
+ else {
63
+ classes = Object.keys(val).filter(k => val[k]);
64
+ }
65
+ el.setAttribute('class', classes.filter(Boolean).join(' '));
51
66
  }
52
67
  }
53
68
  else if (key === 'style') {
@@ -65,9 +80,17 @@ export function mountProps(el, props) {
65
80
  el.value = String(val);
66
81
  }
67
82
  else if (key === 'vShow') {
68
- effect(() => {
69
- el.style.display = val.value ? '' : 'none';
70
- });
83
+ if (el._vShowEffect) {
84
+ el._vShowEffect.dispose();
85
+ }
86
+ if (val) {
87
+ el._vShowEffect = effect(() => {
88
+ el.style.display = val.value ? '' : 'none';
89
+ });
90
+ }
91
+ else {
92
+ delete el._vShowEffect;
93
+ }
71
94
  }
72
95
  else if (typeof val === 'boolean') {
73
96
  if (val)
@@ -80,4 +103,3 @@ export function mountProps(el, props) {
80
103
  }
81
104
  }
82
105
  }
83
- //# sourceMappingURL=mountProps.js.map
@@ -2,4 +2,3 @@ import { type VNode, type PatchOp } from './types';
2
2
  import { type RendererOptions } from './renderer';
3
3
  export declare function applyPatches(patches: PatchOp[], options: RendererOptions): void;
4
4
  export declare function mount(vnode: VNode | any, parent: any, options: RendererOptions, anchor?: any): any;
5
- //# sourceMappingURL=patch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/vdom/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAA;AAQlD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CA+B/E;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,KAAK,GAAG,GAAG,EAClB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,GAAU,GACjB,GAAG,CAuFL"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/vdom/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAY,MAAM,SAAS,CAAA;AAQ5D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CA+B/E;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,KAAK,GAAG,GAAG,EAClB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,GAAU,GACjB,GAAG,CAoGL"}
@@ -1,5 +1,6 @@
1
+ import { Fragment } from './types';
1
2
  import { h } from './h';
2
- import { mountComponent } from './mountComponent';
3
+ import { mountComponent, resolveProps } from './mountComponent';
3
4
  import { unmount, animateLeave } from './unmount';
4
5
  import { applyEnterClasses } from './transition';
5
6
  import { effect, batch } from 'nexa-reactivity';
@@ -41,6 +42,17 @@ export function applyPatches(patches, options) {
41
42
  export function mount(vnode, parent, options, anchor = null) {
42
43
  if (!vnode)
43
44
  return null;
45
+ if (Array.isArray(vnode)) {
46
+ vnode = {
47
+ _type: 'fragment',
48
+ tag: Fragment,
49
+ props: null,
50
+ children: vnode,
51
+ el: null,
52
+ key: null,
53
+ component: null
54
+ };
55
+ }
44
56
  if (vnode && !vnode._type && (typeof vnode === 'object' || typeof vnode === 'function')) {
45
57
  vnode = h(vnode, null);
46
58
  }
@@ -80,13 +92,13 @@ export function mount(vnode, parent, options, anchor = null) {
80
92
  }
81
93
  case 'fragment': {
82
94
  const children = vnode.children ?? [];
83
- let firstEl = null;
95
+ const anchorNode = createComment('fragment');
96
+ vnode.el = anchorNode;
97
+ insert(anchorNode, parent, anchor);
84
98
  for (const child of children) {
85
- const childEl = mount(child, parent, options, anchor);
86
- if (!firstEl)
87
- firstEl = childEl;
99
+ mount(child, parent, options, anchorNode);
88
100
  }
89
- return firstEl;
101
+ return anchorNode;
90
102
  }
91
103
  case 'component': {
92
104
  const el = mountComponent(vnode, parent, options, anchor);
@@ -108,21 +120,22 @@ export function mount(vnode, parent, options, anchor = null) {
108
120
  }
109
121
  return placeholder;
110
122
  }
123
+ if (typeof console !== 'undefined' && typeof console.warn === 'function') {
124
+ console.warn(`Nexa Teleport: target not found`, targetSelector);
125
+ }
111
126
  return null;
112
127
  }
113
128
  }
114
129
  return null;
115
130
  }
116
- function mountChildren(vnode, parent, options) {
131
+ function mountChildren(vnode, parent, options, anchor = null) {
117
132
  const children = vnode.children ?? [];
118
133
  for (const child of children) {
119
- mount(child, parent, options);
134
+ mount(child, parent, options, anchor);
120
135
  }
121
136
  }
122
137
  function replaceNode(oldV, newV, parent, options, anchor) {
123
- if (oldV.el) {
124
- unmount(oldV, parent, options);
125
- }
138
+ unmount(oldV, parent, options);
126
139
  mount(newV, parent, options, anchor);
127
140
  }
128
141
  function updateNode(vnode, options) {
@@ -141,7 +154,9 @@ function updateNode(vnode, options) {
141
154
  const instance = vnode.component;
142
155
  if (instance) {
143
156
  batch(() => {
144
- instance.props.value = vnode.props ?? {};
157
+ if (instance.props) {
158
+ instance.props.value = resolveProps(instance.component, vnode.props ?? {});
159
+ }
145
160
  if (instance.slots) {
146
161
  instance.slots.value = extractSlots(vnode.children);
147
162
  }
@@ -149,4 +164,3 @@ function updateNode(vnode, options) {
149
164
  }
150
165
  }
151
166
  }
152
- //# sourceMappingURL=patch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/vdom/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/vdom/patch.ts"],"names":[],"mappings":"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"}
@@ -27,4 +27,3 @@ export declare function createRenderer<HostNode = any, HostElement = any>(_optio
27
27
  unmount: () => void;
28
28
  };
29
29
  };
30
- //# sourceMappingURL=renderer.d.ts.map
@@ -15,4 +15,3 @@ export function createRenderer(_options) {
15
15
  }
16
16
  };
17
17
  }
18
- //# sourceMappingURL=renderer.js.map
@@ -2,4 +2,3 @@ export declare function pushScope(scopeId: string | undefined): void;
2
2
  export declare function popScope(scopeId: string | undefined): void;
3
3
  export declare function currentScope(): string | undefined;
4
4
  export declare function injectStyle(id: string, css: string): void;
5
- //# sourceMappingURL=scope.d.ts.map
@@ -19,4 +19,3 @@ export function injectStyle(id, css) {
19
19
  }
20
20
  styleEl.textContent = css;
21
21
  }
22
- //# sourceMappingURL=scope.js.map
@@ -1,3 +1,2 @@
1
1
  import { type VNode } from './types';
2
2
  export declare function extractSlots(children: VNode[] | null): Record<string, VNode[]>;
3
- //# sourceMappingURL=slots.d.ts.map
@@ -5,8 +5,15 @@ export function extractSlots(children) {
5
5
  const slotName = child.props?.slot || 'default';
6
6
  if (!childSlots[slotName])
7
7
  childSlots[slotName] = [];
8
- childSlots[slotName].push(child);
8
+ if (child._type === 'element' && child.tag === 'template') {
9
+ const templateChildren = child.children ?? [];
10
+ for (const templateChild of templateChildren) {
11
+ childSlots[slotName].push(templateChild);
12
+ }
13
+ }
14
+ else {
15
+ childSlots[slotName].push(child);
16
+ }
9
17
  }
10
18
  return childSlots;
11
19
  }
12
- //# sourceMappingURL=slots.js.map
@@ -13,4 +13,3 @@ export type TransitionProps = {
13
13
  export declare function applyEnterClasses(vnode: VNode, name: string): void;
14
14
  export declare function applyLeaveClasses(vnode: VNode, name: string): Promise<void>;
15
15
  export declare function isTransitionVNode(vnode: VNode): boolean;
16
- //# sourceMappingURL=transition.d.ts.map
@@ -79,4 +79,3 @@ export function applyLeaveClasses(vnode, name) {
79
79
  export function isTransitionVNode(vnode) {
80
80
  return vnode.props?._transition === true;
81
81
  }
82
- //# sourceMappingURL=transition.js.map
@@ -18,8 +18,11 @@ export type ComponentInstance = {
18
18
  vnode: VNode | null;
19
19
  mounted: boolean;
20
20
  lifecycle: LifecycleHooks;
21
- update: () => void;
21
+ update: any;
22
22
  slots?: any;
23
+ depth: number;
24
+ parent: ComponentInstance | null;
25
+ provides: Record<string | symbol, any>;
23
26
  };
24
27
  export type LifecycleHooks = {
25
28
  beforeMount: (() => void)[];
@@ -53,4 +56,3 @@ export type VNode = {
53
56
  };
54
57
  export declare const Fragment: unique symbol;
55
58
  export declare const Teleport: unique symbol;
56
- //# sourceMappingURL=types.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export const Fragment = Symbol('Fragment');
2
2
  export const Teleport = Symbol('Teleport');
3
- //# sourceMappingURL=types.js.map
@@ -2,4 +2,3 @@ import { type VNode } from './types';
2
2
  import { type RendererOptions } from './renderer';
3
3
  export declare function unmount(vnode: VNode, parent: any, options: RendererOptions): void;
4
4
  export declare function animateLeave(vnode: VNode, _parent: any, nameOrTrue: string | true, options: RendererOptions): void;
5
- //# sourceMappingURL=unmount.d.ts.map
@@ -1,37 +1,39 @@
1
1
  import { runLifecycle } from '../component/lifecycle';
2
2
  import { unregisterInstance } from './hmr';
3
3
  export function unmount(vnode, parent, options) {
4
- if (vnode._type === 'component') {
5
- runLifecycle(vnode.component, 'beforeUnmount');
6
- }
7
- if (vnode.el) {
8
- if (vnode._type === 'text' || vnode._type === 'element') {
9
- options.remove(vnode.el);
10
- }
11
- }
12
- const children = vnode.children ?? [];
13
- if (vnode._type === 'teleport') {
14
- const targetSelector = vnode.props?.to;
15
- const target = typeof targetSelector === 'string'
16
- ? options.querySelector(targetSelector)
17
- : targetSelector;
18
- for (const child of children) {
19
- unmount(child, target || parent, options);
20
- }
21
- }
22
- else {
23
- for (const child of children) {
24
- unmount(child, parent, options);
25
- }
26
- }
4
+ if (!vnode)
5
+ return;
27
6
  if (vnode._type === 'component') {
28
7
  const instance = vnode.component;
8
+ runLifecycle(instance, 'beforeUnmount');
9
+ const devtools = typeof window !== 'undefined' && window.__NEXA_DEVTOOLS__;
10
+ devtools?.unregisterComponent(instance);
29
11
  if (instance.vnode) {
30
12
  unmount(instance.vnode, parent, options);
31
13
  }
32
14
  unregisterInstance(instance);
33
15
  runLifecycle(instance, 'unmounted');
34
16
  vnode.component = null;
17
+ return;
18
+ }
19
+ // Remove the physical element/node
20
+ if (vnode.el) {
21
+ if (vnode.el._vShowEffect) {
22
+ vnode.el._vShowEffect.dispose();
23
+ delete vnode.el._vShowEffect;
24
+ }
25
+ options.remove(vnode.el);
26
+ }
27
+ // Fragments and Teleports need to unmount their children explicitly
28
+ // because they don't have a single wrapping DOM element that removes everything.
29
+ if (vnode._type === 'fragment' || vnode._type === 'teleport' || vnode._type === 'element') {
30
+ const children = vnode.children ?? [];
31
+ const target = vnode._type === 'teleport'
32
+ ? (typeof vnode.props?.to === 'string' ? options.querySelector(vnode.props.to) : vnode.props?.to)
33
+ : parent;
34
+ for (const child of children) {
35
+ unmount(child, target || parent, options);
36
+ }
35
37
  }
36
38
  }
37
39
  export function animateLeave(vnode, _parent, nameOrTrue, options) {
@@ -59,4 +61,3 @@ export function animateLeave(vnode, _parent, nameOrTrue, options) {
59
61
  el.classList.add(`${name}-leave-to`);
60
62
  });
61
63
  }
62
- //# sourceMappingURL=unmount.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexa-runtime",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -13,7 +13,7 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "nexa-reactivity": "0.5.1"
16
+ "nexa-reactivity": "0.6.0"
17
17
  },
18
18
  "files": [
19
19
  "dist"
@@ -1 +0,0 @@
1
- {"version":3,"file":"defineComponent.d.ts","sourceRoot":"","sources":["../../src/component/defineComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAE/D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"defineComponent.js","sourceRoot":"","sources":["../../src/component/defineComponent.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,OAAO,SAAS,CAAA;AAClB,CAAC"}