@mittwald/react-tunnel 0.2.0-alpha.82 → 0.2.0-alpha.820

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.js CHANGED
@@ -1,67 +1,125 @@
1
1
  "use client"
2
2
  /* */
3
- var m = Object.defineProperty;
4
- var g = (s, e, r) => e in s ? m(s, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : s[e] = r;
5
- var c = (s, e, r) => g(s, typeof e != "symbol" ? e + "" : e, r);
6
- import { jsx as C } from "react/jsx-runtime";
7
- import { useState as b, createContext as E, useContext as f, useId as v, useRef as w, useEffect as x } from "react";
8
- import { observable as a, makeObservable as y, action as p } from "mobx";
9
- import { observer as T } from "mobx-react-lite";
10
- const l = "default";
11
- class o {
12
- constructor() {
13
- c(this, "children", a.map(
14
- {},
15
- {
16
- deep: !1
17
- }
18
- ));
19
- c(this, "preparedChildren", /* @__PURE__ */ new Map());
20
- y(this, {
21
- deleteChildren: p.bound,
22
- setChildren: p.bound
3
+ import { jsx as P } from "react/jsx-runtime";
4
+ import { useId as v, useState as E, useRef as a, createContext as g, useContext as I, useEffect as f, useLayoutEffect as R } from "react";
5
+ import { observable as p, makeObservable as T, action as x } from "mobx";
6
+ import { observer as b } from "mobx-react-lite";
7
+ const h = "default", u = "default";
8
+ class l {
9
+ id;
10
+ instanceId;
11
+ committedChildren = p.map(
12
+ {},
13
+ {
14
+ deep: !1
15
+ }
16
+ );
17
+ renderPhaseChildren = /* @__PURE__ */ new Map();
18
+ nextIndex = 0;
19
+ constructor(e = u, t = u) {
20
+ this.id = e, this.instanceId = t, T(this, {
21
+ id: !1,
22
+ deleteChildren: x.bound,
23
+ setChildren: x.bound
23
24
  });
24
25
  }
25
- static useNew() {
26
- return b(() => new o())[0];
26
+ static useNew(e) {
27
+ const t = v(), r = E(() => new l(e, t))[0];
28
+ return r.resetIndex(), r;
27
29
  }
28
- setChildren(e = l, r, n) {
29
- var i;
30
- const t = this.children.get(e) ?? a.map({}, { deep: !1 });
31
- t.set(r, n), (i = this.preparedChildren.get(e)) == null || i.delete(r), this.children.set(e, t);
30
+ resetIndex() {
31
+ this.nextIndex = 0;
32
32
  }
33
- prepareChildren(e = l, r, n) {
34
- const t = this.preparedChildren.get(e) ?? /* @__PURE__ */ new Map();
35
- t.set(r, n), this.preparedChildren.set(e, t);
33
+ useEntryIndex() {
34
+ const e = a(this.instanceId), t = a(null);
35
+ return (t.current === null || e.current !== this.instanceId) && (e.current = this.instanceId, t.current = this.nextIndex++), t.current;
36
36
  }
37
- deleteChildren(e = l, r) {
38
- var n, t;
39
- (n = this.children.get(e)) == null || n.delete(r), (t = this.preparedChildren.get(e)) == null || t.delete(r);
37
+ setChildren(e = h, t, r, n) {
38
+ const s = {
39
+ id: t,
40
+ index: r,
41
+ children: n
42
+ }, i = this.committedChildren.get(e) ?? p.map({}, { deep: !1 });
43
+ i.set(t, s), this.renderPhaseChildren.get(e)?.delete(t), this.committedChildren.set(e, i);
40
44
  }
41
- getChildren(e = l) {
42
- var n, t;
43
- const r = ((n = this.children.get(e)) == null ? void 0 : n.entries()) ?? ((t = this.preparedChildren.get(e)) == null ? void 0 : t.entries());
44
- if (r)
45
- return Array.from(r);
45
+ setRenderPhaseChildren(e = h, t, r, n) {
46
+ const s = {
47
+ id: t,
48
+ index: r,
49
+ children: n
50
+ }, i = this.renderPhaseChildren.get(e) ?? /* @__PURE__ */ new Map();
51
+ i.set(t, s), this.renderPhaseChildren.set(e, i);
52
+ }
53
+ deleteChildrenFromMap(e, t, r) {
54
+ const n = e.get(t);
55
+ n?.delete(r), n?.size === 0 && e.delete(t);
56
+ }
57
+ deleteChildren(e = h, t) {
58
+ this.deleteChildrenFromMap(this.committedChildren, e, t), this.deleteChildrenFromMap(this.renderPhaseChildren, e, t);
59
+ }
60
+ takeRenderPhaseChildren(e) {
61
+ if (this.renderPhaseChildren.has(e)) {
62
+ const t = this.renderPhaseChildren.get(e)?.values();
63
+ return this.renderPhaseChildren.delete(e), t;
64
+ }
65
+ }
66
+ getEntries(e = h) {
67
+ const t = this.committedChildren.get(e)?.values(), r = t ?? this.takeRenderPhaseChildren(e);
68
+ if (r) {
69
+ const n = !!t, s = Array.from(r).sort(
70
+ (i, d) => i.index - d.index
71
+ );
72
+ return {
73
+ committed: n,
74
+ entries: s
75
+ };
76
+ }
46
77
  }
47
78
  }
48
- const h = E(new o()), A = (s) => {
49
- const { children: e } = s;
50
- return /* @__PURE__ */ C(h.Provider, { value: o.useNew(), children: e });
51
- }, O = (s) => {
52
- const { children: e, id: r, staticEntryId: n } = s, t = f(h), i = v(), d = n ?? i, u = w(!1);
53
- return u.current || t.prepareChildren(r, d, e), x(() => (u.current = !0, t.setChildren(r, d, e), () => {
54
- t.deleteChildren(r, d);
55
- }), [e, r, d]), null;
56
- }, M = (s) => {
57
- const { children: e } = s;
79
+ const C = g({
80
+ state: new l()
81
+ }), w = (o = u) => {
82
+ let e = I(C);
83
+ for (; e; ) {
84
+ if (e.state.id === o)
85
+ return e.state;
86
+ e = e.parentContext;
87
+ }
88
+ throw new Error(
89
+ `Could not get tunnel for provider ${o}. Please provider a TunnelProvider with this ID.`
90
+ );
91
+ }, N = (o) => {
92
+ const { children: e, id: t } = o, r = I(C), n = l.useNew(t);
93
+ return /* @__PURE__ */ P(
94
+ C.Provider,
95
+ {
96
+ value: {
97
+ state: n,
98
+ parentContext: r
99
+ },
100
+ children: e
101
+ }
102
+ );
103
+ }, j = (o) => {
104
+ const { children: e, id: t, staticEntryId: r, providerId: n } = o, s = w(n), i = v(), d = r ?? i, c = s.useEntryIndex(), m = a(!1);
105
+ return m.current || s.setRenderPhaseChildren(t, d, c, e), f(() => {
106
+ m.current = !0, s.setChildren(t, d, c, e);
107
+ }, [e, t, d, c, n]), f(() => () => {
108
+ s.deleteChildren(t, d);
109
+ }, [t, d, n]), null;
110
+ }, y = (o) => {
111
+ const { children: e } = o;
58
112
  return typeof e == "function" ? e() : e;
59
- }, S = T((s) => {
60
- const { children: e, id: r } = s, n = f(h).getChildren(r);
61
- return n ? n.map(([t, i]) => /* @__PURE__ */ C(M, { children: i }, t)) : e;
113
+ }, z = b((o) => {
114
+ const { children: e, id: t, providerId: r } = o, n = w(r).getEntries(t), [, s] = E(0);
115
+ R(() => {
116
+ n && !n.committed && s((d) => d + 1);
117
+ }, [n?.committed]);
118
+ const i = n?.entries.map((d) => /* @__PURE__ */ P(y, { children: d.children }, d.id));
119
+ return typeof e == "function" ? e(i) : i ?? e;
62
120
  });
63
121
  export {
64
- O as TunnelEntry,
65
- S as TunnelExit,
66
- A as TunnelProvider
122
+ j as TunnelEntry,
123
+ z as TunnelExit,
124
+ N as TunnelProvider
67
125
  };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Tunnel.browser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tunnel.browser.test.d.ts","sourceRoot":"","sources":["../../src/Tunnel.browser.test.tsx"],"names":[],"mappings":""}
@@ -1,13 +1,32 @@
1
+ import { ReactNode } from 'react';
1
2
  import { ObservableMap } from 'mobx';
2
- import { TunnelChildren } from './types';
3
+ export declare const defaultTunnelProviderId = "default";
4
+ export type TunnelChildren = ReactNode | undefined | ((tunnelChildren?: ReactNode | undefined) => ReactNode | undefined);
5
+ interface TunnelEntryState {
6
+ index: number;
7
+ id: string;
8
+ children: TunnelChildren;
9
+ }
10
+ interface TunnelEntries {
11
+ committed: boolean;
12
+ entries: TunnelEntryState[];
13
+ }
3
14
  export declare class TunnelState {
4
- readonly children: ObservableMap<string, ObservableMap<string, TunnelChildren>>;
5
- private readonly preparedChildren;
6
- constructor();
7
- static useNew(): TunnelState;
8
- setChildren(tunnelId: string | undefined, entryId: string, children: TunnelChildren): void;
9
- prepareChildren(tunnelId: string | undefined, entryId: string, children: TunnelChildren): void;
15
+ readonly id: string;
16
+ private instanceId;
17
+ readonly committedChildren: ObservableMap<string, ObservableMap<string, TunnelEntryState>>;
18
+ private readonly renderPhaseChildren;
19
+ private nextIndex;
20
+ constructor(id?: string, instanceId?: string);
21
+ static useNew(id?: string): TunnelState;
22
+ resetIndex(): void;
23
+ useEntryIndex(): number;
24
+ setChildren(tunnelId: string | undefined, entryId: string, index: number, children: TunnelChildren): void;
25
+ setRenderPhaseChildren(tunnelId: string | undefined, entryId: string, index: number, children: TunnelChildren): void;
26
+ private deleteChildrenFromMap;
10
27
  deleteChildren(tunnelId: string | undefined, entryId: string): void;
11
- getChildren(tunnelId?: string): [string, TunnelChildren][] | undefined;
28
+ private takeRenderPhaseChildren;
29
+ getEntries(tunnelId?: string): TunnelEntries | undefined;
12
30
  }
31
+ export {};
13
32
  //# sourceMappingURL=TunnelState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TunnelState.d.ts","sourceRoot":"","sources":["../../src/TunnelState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,qBAAa,WAAW;IACtB,SAAgB,QAAQ,+DAQtB;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAG7B;;WASU,MAAM,IAAI,WAAW;IAI5B,WAAW,CAChB,QAAQ,EAAE,MAAM,YAAY,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,GACvB,IAAI;IAWA,eAAe,CACpB,QAAQ,EAAE,MAAM,YAAY,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,GACvB,IAAI;IASA,cAAc,CAAC,QAAQ,EAAE,MAAM,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAKnE,WAAW,CAChB,QAAQ,GAAE,MAAkB,GAC3B,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,GAAG,SAAS;CAQ1C"}
1
+ {"version":3,"file":"TunnelState.d.ts","sourceRoot":"","sources":["../../src/TunnelState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAI1C,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,CAAC,CAAC,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC;AAExE,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,UAAU,aAAa;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,UAAU,CAAS;IAE3B,SAAgB,iBAAiB,iEAQ/B;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;IAEJ,OAAO,CAAC,SAAS,CAAK;gBAGpB,EAAE,SAA0B,EAC5B,UAAU,SAA0B;WAWxB,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW;IAOvC,UAAU;IAIV,aAAa;IAUb,WAAW,CAChB,QAAQ,EAAE,MAAM,YAAY,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,GACvB,IAAI;IAiBA,sBAAsB,CAC3B,QAAQ,EAAE,MAAM,YAAY,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,GACvB,IAAI;IAgBP,OAAO,CAAC,qBAAqB;IAYtB,cAAc,CAAC,QAAQ,EAAE,MAAM,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAK1E,OAAO,CAAC,uBAAuB;IAQxB,UAAU,CAAC,QAAQ,SAAY,GAAG,aAAa,GAAG,SAAS;CAkBnE"}
@@ -1,11 +1,13 @@
1
- import { FC } from 'react';
2
- import { TunnelChildren } from '../types';
3
- interface Props {
1
+ import { FC, ReactNode } from 'react';
2
+ export type TunnelEntryChildren = ReactNode | undefined | (() => ReactNode | undefined);
3
+ export interface TunnelEntryProps {
4
4
  id?: string;
5
- children?: TunnelChildren;
5
+ children?: TunnelEntryChildren;
6
6
  /** Static entry ID instead of generated ID by `useId` */
7
7
  staticEntryId?: string;
8
+ /** Select a dedicated tunnel provider by ID. */
9
+ providerId?: string;
8
10
  }
9
- export declare const TunnelEntry: FC<Props>;
11
+ export declare const TunnelEntry: FC<TunnelEntryProps>;
10
12
  export default TunnelEntry;
11
13
  //# sourceMappingURL=TunnelEntry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TunnelEntry.d.ts","sourceRoot":"","sources":["../../../src/components/TunnelEntry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,UAAU,KAAK;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,KAAK,CAqBjC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"TunnelEntry.d.ts","sourceRoot":"","sources":["../../../src/components/TunnelEntry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,SAAS,GACT,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA+B5C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,7 +1,12 @@
1
- import { FC, PropsWithChildren } from 'react';
2
- interface Props extends PropsWithChildren {
1
+ import { FC } from 'react';
2
+ import { TunnelChildren } from '../TunnelState';
3
+ export type TunnelExitChildren = TunnelChildren;
4
+ export interface TunnelExitProps {
3
5
  id?: string;
6
+ /** Select a dedicated tunnel provider by ID. */
7
+ providerId?: string;
8
+ children?: TunnelExitChildren;
4
9
  }
5
- export declare const TunnelExit: FC<Props>;
10
+ export declare const TunnelExit: FC<TunnelExitProps>;
6
11
  export default TunnelExit;
7
12
  //# sourceMappingURL=TunnelExit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TunnelExit.d.ts","sourceRoot":"","sources":["../../../src/components/TunnelExit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAOnD,UAAU,KAAM,SAAQ,iBAAiB;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAOD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,KAAK,CAU/B,CAAC;AAEH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"TunnelExit.d.ts","sourceRoot":"","sources":["../../../src/components/TunnelExit.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAOD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAoBzC,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -1,4 +1,11 @@
1
1
  import { FC, PropsWithChildren } from 'react';
2
- export declare const TunnelProvider: FC<PropsWithChildren>;
2
+ export interface TunnelProviderProps extends PropsWithChildren {
3
+ /**
4
+ * Dedicated id for this tunnel provider. If not provided, the tunnel provider
5
+ * will be registered as a global provider.
6
+ */
7
+ id?: string;
8
+ }
9
+ export declare const TunnelProvider: FC<TunnelProviderProps>;
3
10
  export default TunnelProvider;
4
11
  //# sourceMappingURL=TunnelProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TunnelProvider.d.ts","sourceRoot":"","sources":["../../../src/components/TunnelProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAKnD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,iBAAiB,CAQhD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"TunnelProvider.d.ts","sourceRoot":"","sources":["../../../src/components/TunnelProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAIpE,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAgBlD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,4 +1,9 @@
1
1
  import { TunnelState } from './TunnelState';
2
- export declare const tunnelContext: import('react').Context<TunnelState>;
2
+ interface TunnelContext {
3
+ state: TunnelState;
4
+ parentContext?: TunnelContext;
5
+ }
6
+ export declare const tunnelContext: import('react').Context<TunnelContext>;
3
7
  export default tunnelContext;
8
+ export declare const useTunnelState: (id?: string) => TunnelState;
4
9
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,aAAa,sCAAgD,CAAC;AAE3E,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,WAAW,EAAE,MAAM,eAAe,CAAC;AAErE,UAAU,aAAa;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,wCAExB,CAAC;AAEH,eAAe,aAAa,CAAC;AAE7B,eAAO,MAAM,cAAc,GAAI,WAA4B,gBAa1D,CAAC"}
@@ -1,4 +1,4 @@
1
- export { TunnelProvider } from './components/TunnelProvider';
2
- export { TunnelEntry } from './components/TunnelEntry';
3
- export { TunnelExit } from './components/TunnelExit';
1
+ export * from './components/TunnelProvider';
2
+ export * from './components/TunnelEntry';
3
+ export * from './components/TunnelExit';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mittwald/react-tunnel",
3
- "version": "0.2.0-alpha.82",
3
+ "version": "0.2.0-alpha.820",
4
4
  "type": "module",
5
5
  "description": "It's like a Portal – but with React components",
6
6
  "keywords": [
@@ -25,40 +25,39 @@
25
25
  "scripts": {
26
26
  "build": "vite build --config vite.build.config.ts",
27
27
  "clean": "rimraf dist",
28
- "test": "exit 0",
29
- "test:compile": "tsc --noEmit",
30
- "test:unit": "vitest run"
28
+ "test:browser": "vitest run --project=browser --browser.headless",
29
+ "test:browser:dev": "vitest dev --project=browser",
30
+ "test:compile": "tsc --noEmit"
31
31
  },
32
32
  "dependencies": {
33
- "mobx": "^6.13.6",
34
- "mobx-react-lite": "^4.1.0"
33
+ "mobx": "^6.15.0",
34
+ "mobx-react-lite": "^4.1.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@mittwald/typescript-config": "workspace:*",
38
- "@testing-library/dom": "^10.4.0",
39
- "@testing-library/react": "^16.2.0",
40
- "@types/node": "^22.13.4",
41
- "@types/react": "^19",
42
- "@types/react-dom": "^19",
43
- "@vitejs/plugin-react": "^4.3.4",
44
- "@vitest/coverage-v8": "^2.1.9",
45
- "happy-dom": "^16.8.1",
46
- "nx": "^20.4.5",
47
- "prettier": "^3.5.1",
48
- "react": "^19",
49
- "react-dom": "^19",
50
- "rimraf": "^6.0.1",
51
- "typescript": "^5.7.3",
52
- "vite": "^6.1.1",
53
- "vite-plugin-banner": "^0.8.0",
54
- "vite-plugin-checker": "^0.8.0",
55
- "vite-plugin-dts": "^4.5.0",
56
- "vite-plugin-externalize-deps": "^0.9.0",
57
- "vitest": "^2.1.9"
38
+ "@types/node": "^24.10.9",
39
+ "@types/react": "^19.2",
40
+ "@types/react-dom": "^19.2",
41
+ "@vitejs/plugin-react": "^5.1.3",
42
+ "@vitest/browser-playwright": "^4.0.18",
43
+ "@vitest/coverage-v8": "^4.0.18",
44
+ "nx": "^22.4.4",
45
+ "prettier": "^3.8.1",
46
+ "react": "^19.2.0",
47
+ "react-dom": "^19.2.0",
48
+ "rimraf": "^6.1.2",
49
+ "typescript": "^5.9.3",
50
+ "vite": "^7.3.1",
51
+ "vite-plugin-banner": "^0.8.1",
52
+ "vite-plugin-checker": "^0.12.0",
53
+ "vite-plugin-dts": "^4.5.4",
54
+ "vite-plugin-externalize-deps": "^0.10.0",
55
+ "vitest": "^4.0.18",
56
+ "vitest-browser-react": "^2.0.2"
58
57
  },
59
58
  "peerDependencies": {
60
- "react": "^19",
61
- "react-dom": "^19"
59
+ "react": "^19.2.0",
60
+ "react-dom": "^19.2.0"
62
61
  },
63
- "gitHead": "87e45d8d05e33f9cb1869c2b28f7d0bb4bf0fbfb"
62
+ "gitHead": "a113b886bd95adb2482c1c9bf387a0d6158df5b5"
64
63
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Tunnel.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tunnel.test.d.ts","sourceRoot":"","sources":["../../src/Tunnel.test.tsx"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export type TunnelChildren = ReactNode | undefined | (() => ReactNode | undefined);
3
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC"}