@reactpy/client 0.3.0 → 0.3.2

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.
@@ -111,14 +111,14 @@ function ImportedElement({ model }) {
111
111
  return null;
112
112
  }
113
113
  else if (typeof importSourceFallback === "string") {
114
- return React.createElement("div", null, importSourceFallback);
114
+ return React.createElement("span", null, importSourceFallback);
115
115
  }
116
116
  else {
117
117
  return React.createElement(StandardElement, { model: importSourceFallback });
118
118
  }
119
119
  }
120
120
  else {
121
- return React.createElement("div", { ref: importSourceRef });
121
+ return React.createElement("span", { ref: importSourceRef });
122
122
  }
123
123
  }
124
124
  function useForceUpdate() {
@@ -127,6 +127,7 @@ function useForceUpdate() {
127
127
  }
128
128
  function useImportSource(model) {
129
129
  const vdomImportSource = model.importSource;
130
+ const vdomImportSourceJsonString = JSON.stringify(vdomImportSource);
130
131
  const mountPoint = useRef(null);
131
132
  const client = React.useContext(ClientContext);
132
133
  const [binding, setBinding] = useState(null);
@@ -147,7 +148,7 @@ function useImportSource(model) {
147
148
  binding.unmount();
148
149
  }
149
150
  };
150
- }, [client, vdomImportSource, setBinding, mountPoint.current]);
151
+ }, [client, vdomImportSourceJsonString, setBinding, mountPoint.current]);
151
152
  // this effect must run every time in case the model has changed
152
153
  useEffect(() => {
153
154
  if (!(binding && vdomImportSource)) {
@@ -166,3 +167,4 @@ const SPECIAL_ELEMENTS = {
166
167
  select: UserInputElement,
167
168
  textarea: UserInputElement,
168
169
  };
170
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,3 +3,4 @@ export * from "./messages";
3
3
  export * from "./mount";
4
4
  export * from "./reactpy-client";
5
5
  export * from "./reactpy-vdom";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
package/dist/logger.js CHANGED
@@ -3,3 +3,4 @@ export default {
3
3
  warn: (...args) => console.warn("[ReactPy]", ...args),
4
4
  error: (...args) => console.error("[ReactPy]", ...args),
5
5
  };
6
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,GAAG,EAAE,CAAC,GAAG,IAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;IAChE,IAAI,EAAE,CAAC,GAAG,IAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;IAClE,KAAK,EAAE,CAAC,GAAG,IAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;CACrE,CAAC"}
package/dist/messages.js CHANGED
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":""}
package/dist/mount.js CHANGED
@@ -4,3 +4,4 @@ import { Layout } from "./components";
4
4
  export function mount(element, client) {
5
5
  render(React.createElement(Layout, { client: client }), element);
6
6
  }
7
+ //# sourceMappingURL=mount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,MAAM,UAAU,KAAK,CAAC,OAAoB,EAAE,MAAqB;IAC/D,MAAM,CAAC,oBAAC,MAAM,IAAC,MAAM,EAAE,MAAM,GAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
@@ -18,20 +18,22 @@ export interface ReactPyClient {
18
18
  *
19
19
  * @param message The message to send. Messages must have a `type` property.
20
20
  */
21
- sendMessage: (message: any) => void;
21
+ sendMessage(message: any): void;
22
22
  /**
23
23
  * Load a module from the server.
24
24
  * @param moduleName The name of the module to load.
25
25
  * @returns A promise that resolves to the module.
26
26
  */
27
- loadModule: (moduleName: string) => Promise<ReactPyModule>;
27
+ loadModule(moduleName: string): Promise<ReactPyModule>;
28
28
  }
29
- export declare class BaseReactPyClient implements Partial<ReactPyClient> {
29
+ export declare abstract class BaseReactPyClient implements ReactPyClient {
30
30
  private readonly handlers;
31
31
  protected readonly ready: Promise<void>;
32
32
  private resolveReady;
33
33
  constructor();
34
34
  onMessage(type: string, handler: (message: any) => void): () => void;
35
+ abstract sendMessage(message: any): void;
36
+ abstract loadModule(moduleName: string): Promise<ReactPyModule>;
35
37
  /**
36
38
  * Handle an incoming message.
37
39
  *
@@ -1 +1 @@
1
- {"version":3,"file":"reactpy-client.d.ts","sourceRoot":"","sources":["../src/reactpy-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAErE;;;;OAIG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CAC5D;AAED,qBAAa,iBAAkB,YAAW,OAAO,CAAC,aAAa,CAAC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqD;IAC9E,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,YAAY,CAA6B;;IAOjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI;IAQpE;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;CAe7C;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,gBAAgB,CAAC,EAAE,cAAc,CAAC;CACnC,CAAC;AAEF;;;;;;;;;GASG;AACH,KAAK,aAAa,GAAG;IACnB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,qBAAa,mBACX,SAAQ,iBACR,YAAW,aAAa;IAExB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,KAAK,EAAE,wBAAwB;IAmB3C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAI/B,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAGvD"}
1
+ {"version":3,"file":"reactpy-client.d.ts","sourceRoot":"","sources":["../src/reactpy-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAErE;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACxD;AAED,8BAAsB,iBAAkB,YAAW,aAAa;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqD;IAC9E,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,YAAY,CAA6B;;IAOjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI;IAQpE,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IACxC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAE/D;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;CAe7C;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,gBAAgB,CAAC,EAAE,cAAc,CAAC;CACnC,CAAC;AAEF;;;;;;;;;GASG;AACH,KAAK,aAAa,GAAG;IACnB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,qBAAa,mBACX,SAAQ,iBACR,YAAW,aAAa;IAExB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,KAAK,EAAE,wBAAwB;IAmB3C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAI/B,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAGvD"}
@@ -125,3 +125,4 @@ function addJitter(interval, jitter) {
125
125
  function rtrim(text, trim) {
126
126
  return text.replace(new RegExp(`${trim}+$`), "");
127
127
  }
128
+ //# sourceMappingURL=reactpy-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactpy-client.js","sourceRoot":"","sources":["../src/reactpy-client.ts"],"names":[],"mappings":"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"}
@@ -138,3 +138,4 @@ function snakeToCamel(str) {
138
138
  // see list of HTML attributes with dashes in them:
139
139
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes#attribute_list
140
140
  const DASHED_HTML_ATTRS = ["accept_charset", "http_equiv"];
141
+ //# sourceMappingURL=reactpy-vdom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactpy-vdom.js","sourceRoot":"","sources":["../src/reactpy-vdom.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -6,9 +6,9 @@
6
6
  "license": "MIT",
7
7
  "name": "@reactpy/client",
8
8
  "type": "module",
9
- "version": "0.3.0",
9
+ "version": "0.3.2",
10
10
  "dependencies": {
11
- "event-to-object": "^0.1.2",
11
+ "event-to-object": "file:../event-to-object",
12
12
  "json-pointer": "^0.6.2"
13
13
  },
14
14
  "devDependencies": {
@@ -161,12 +161,12 @@ function ImportedElement({ model }: { model: ReactPyVdom }) {
161
161
  if (!importSourceFallback) {
162
162
  return null;
163
163
  } else if (typeof importSourceFallback === "string") {
164
- return <div>{importSourceFallback}</div>;
164
+ return <span>{importSourceFallback}</span>;
165
165
  } else {
166
166
  return <StandardElement model={importSourceFallback} />;
167
167
  }
168
168
  } else {
169
- return <div ref={importSourceRef} />;
169
+ return <span ref={importSourceRef} />;
170
170
  }
171
171
  }
172
172
 
@@ -177,7 +177,7 @@ function useForceUpdate() {
177
177
 
178
178
  function useImportSource(model: ReactPyVdom): MutableRefObject<any> {
179
179
  const vdomImportSource = model.importSource;
180
-
180
+ const vdomImportSourceJsonString = JSON.stringify(vdomImportSource);
181
181
  const mountPoint = useRef<HTMLElement>(null);
182
182
  const client = React.useContext(ClientContext);
183
183
  const [binding, setBinding] = useState<ImportSourceBinding | null>(null);
@@ -203,7 +203,7 @@ function useImportSource(model: ReactPyVdom): MutableRefObject<any> {
203
203
  binding.unmount();
204
204
  }
205
205
  };
206
- }, [client, vdomImportSource, setBinding, mountPoint.current]);
206
+ }, [client, vdomImportSourceJsonString, setBinding, mountPoint.current]);
207
207
 
208
208
  // this effect must run every time in case the model has changed
209
209
  useEffect(() => {
@@ -21,17 +21,17 @@ export interface ReactPyClient {
21
21
  *
22
22
  * @param message The message to send. Messages must have a `type` property.
23
23
  */
24
- sendMessage: (message: any) => void;
24
+ sendMessage(message: any): void;
25
25
 
26
26
  /**
27
27
  * Load a module from the server.
28
28
  * @param moduleName The name of the module to load.
29
29
  * @returns A promise that resolves to the module.
30
30
  */
31
- loadModule: (moduleName: string) => Promise<ReactPyModule>;
31
+ loadModule(moduleName: string): Promise<ReactPyModule>;
32
32
  }
33
33
 
34
- export class BaseReactPyClient implements Partial<ReactPyClient> {
34
+ export abstract class BaseReactPyClient implements ReactPyClient {
35
35
  private readonly handlers: { [key: string]: ((message: any) => void)[] } = {};
36
36
  protected readonly ready: Promise<void>;
37
37
  private resolveReady: (value: undefined) => void;
@@ -49,6 +49,9 @@ export class BaseReactPyClient implements Partial<ReactPyClient> {
49
49
  };
50
50
  }
51
51
 
52
+ abstract sendMessage(message: any): void;
53
+ abstract loadModule(moduleName: string): Promise<ReactPyModule>;
54
+
52
55
  /**
53
56
  * Handle an incoming message.
54
57
  *