@vibes.diy/vibe-runtime 3.0.0 → 3.0.1

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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAuB,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAwB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,eAAe,IAAI,QAAQ,GAO5B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,aAAa,EACb,SAAS,EACT,aAAa,GAOd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAuD,MAAM,eAAe,CAAC;AAC7F,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,GAE5B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AAIjC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAuB,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAwB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,eAAe,IAAI,QAAQ,GAO5B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,aAAa,EACb,SAAS,EACT,aAAa,GAOd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAuD,MAAM,eAAe,CAAC;AAC7F,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,GAE5B,MAAM,kBAAkB,CAAC"}
package/mount-vibes.js CHANGED
@@ -1,14 +1,14 @@
1
- import React, { Fragment } from "react";
2
- import { createRoot } from "react-dom/client";
1
+ import { createRoot, hydrateRoot } from "react-dom/client";
3
2
  import { type } from "arktype";
4
3
  import { vibeMountParams } from "./vibe.js";
5
- import { VibeContextProvider } from "./VibeContext.js";
4
+ import { buildVibeTree } from "./vibe-tree.js";
6
5
  let activeRoot;
7
6
  let activeProps;
8
7
  export function unmountVibe() {
9
8
  if (activeRoot) {
10
- activeRoot.unmount();
9
+ const root = activeRoot;
11
10
  activeRoot = undefined;
11
+ root.unmount();
12
12
  }
13
13
  }
14
14
  export function getActiveProps() {
@@ -23,15 +23,16 @@ export function mountVibe(comps, iprops) {
23
23
  if (!element || element.length !== 1) {
24
24
  throw new Error(`Can't find the dom element root`);
25
25
  }
26
+ activeProps = iprops;
27
+ const providerElement = buildVibeTree(comps, props);
26
28
  if (activeRoot === undefined) {
27
- activeRoot = createRoot(element[0]);
29
+ const container = element[0];
30
+ if (container.hasChildNodes()) {
31
+ activeRoot = hydrateRoot(container, providerElement);
32
+ return;
33
+ }
34
+ activeRoot = createRoot(container);
28
35
  }
29
- activeProps = iprops;
30
- const vibeElement = React.createElement(Fragment, null, ...comps.map((Comp, index) => React.createElement(Comp, { key: index })));
31
- const providerElement = React.createElement(VibeContextProvider, {
32
- mountParams: { ...props },
33
- children: vibeElement,
34
- });
35
36
  activeRoot.render(providerElement);
36
37
  }
37
38
  //# sourceMappingURL=mount-vibes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mount-vibes.js","sourceRoot":"","sources":["../jsr/mount-vibes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,IAAI,UAA4B,CAAC;AACjC,IAAI,WAAoB,CAAC;AAEzB,MAAM,UAAU,WAAW;IACzB,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAGD,MAAM,UAAU,SAAS,CACvB,KAA0B,EAC1B,MAAe;IAEf,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IACtE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAMD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,WAAW,GAAG,MAAM,CAAC;IAErB,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAClI,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,mBAAmB,EAAE;QAC/D,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE;QACzB,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;IACH,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"mount-vibes.js","sourceRoot":"","sources":["../jsr/mount-vibes.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,IAAI,UAA4B,CAAC;AACjC,IAAI,WAAoB,CAAC;AAEzB,MAAM,UAAU,WAAW;IACzB,IAAI,UAAU,EAAE,CAAC;QAKf,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,UAAU,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAGD,MAAM,UAAU,SAAS,CACvB,KAA0B,EAC1B,MAAe;IAEf,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IACtE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,WAAW,GAAG,MAAM,CAAC;IAIrB,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEpD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAM7B,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;YAC9B,UAAU,GAAG,WAAW,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAMD,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/vibe-runtime",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "scripts": {
@@ -8,8 +8,8 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@adviser/cement": "~0.5.34",
11
- "@vibes.diy/base": "3.0.0",
12
- "@vibes.diy/vibe-types": "3.0.0",
11
+ "@vibes.diy/base": "3.0.1",
12
+ "@vibes.diy/vibe-types": "3.0.1",
13
13
  "arktype": "~2.2.1",
14
14
  "charwise": "~3.0.1",
15
15
  "react": "~19.2.7",
@@ -0,0 +1,2 @@
1
+ import { type FunctionComponent } from "react";
2
+ export declare function renderVibeToString(comps: FunctionComponent[], iprops: unknown): string;
@@ -0,0 +1,12 @@
1
+ import { type } from "arktype";
2
+ import { renderToString } from "react-dom/server";
3
+ import { vibeMountParams } from "./vibe.js";
4
+ import { buildVibeTree } from "./vibe-tree.js";
5
+ export function renderVibeToString(comps, iprops) {
6
+ const props = vibeMountParams(iprops);
7
+ if (props instanceof type.errors) {
8
+ throw new Error(`Invalid mount params: ${props.summary}`);
9
+ }
10
+ return renderToString(buildVibeTree(comps, props));
11
+ }
12
+ //# sourceMappingURL=render-vibes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-vibes.js","sourceRoot":"","sources":["../jsr/render-vibes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAmB/C,MAAM,UAAU,kBAAkB,CAAC,KAA0B,EAAE,MAAe;IAC5E,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC"}
package/vibe-tree.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { type FunctionComponent, type ReactElement } from "react";
2
+ import { type VibeMountParams } from "./vibe.js";
3
+ export declare function buildVibeTree(comps: FunctionComponent[], props: VibeMountParams): ReactElement;
package/vibe-tree.js ADDED
@@ -0,0 +1,10 @@
1
+ import React, { Fragment } from "react";
2
+ import { VibeContextProvider } from "./VibeContext.js";
3
+ export function buildVibeTree(comps, props) {
4
+ const vibeElement = React.createElement(Fragment, null, ...comps.map((Comp, index) => React.createElement(Comp, { key: index })));
5
+ return React.createElement(VibeContextProvider, {
6
+ mountParams: { ...props },
7
+ children: vibeElement,
8
+ });
9
+ }
10
+ //# sourceMappingURL=vibe-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe-tree.js","sourceRoot":"","sources":["../jsr/vibe-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAA6C,MAAM,OAAO,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAgBvD,MAAM,UAAU,aAAa,CAAC,KAA0B,EAAE,KAAsB;IAC9E,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAClI,OAAO,KAAK,CAAC,aAAa,CAAC,mBAAmB,EAAE;QAC9C,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE;QACzB,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;AACL,CAAC"}