@vibecodeapp/sdk 0.3.0 → 0.4.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.
Files changed (34) hide show
  1. package/dist/dev/StatusBar.web.d.ts +24 -0
  2. package/dist/dev/StatusBar.web.d.ts.map +1 -0
  3. package/dist/dev/StatusBar.web.js +40 -0
  4. package/dist/dev/StatusBar.web.js.map +1 -0
  5. package/dist/dev/VibeDevWrapper.d.ts +1 -0
  6. package/dist/dev/VibeDevWrapper.d.ts.map +1 -1
  7. package/dist/dev/VibeDevWrapper.js +3 -2
  8. package/dist/dev/VibeDevWrapper.js.map +1 -1
  9. package/dist/dev/error-boundry/ErrorBoundary.d.ts +8 -0
  10. package/dist/dev/error-boundry/ErrorBoundary.d.ts.map +1 -0
  11. package/dist/dev/error-boundry/ErrorBoundary.js +5 -0
  12. package/dist/dev/error-boundry/ErrorBoundary.js.map +1 -0
  13. package/dist/dev/error-boundry/ErrorBoundary.web.d.ts +22 -0
  14. package/dist/dev/error-boundry/ErrorBoundary.web.d.ts.map +1 -0
  15. package/dist/dev/error-boundry/ErrorBoundary.web.js +80 -0
  16. package/dist/dev/error-boundry/ErrorBoundary.web.js.map +1 -0
  17. package/dist/dev/safe-inserts/safe-insets.d.ts.map +1 -0
  18. package/dist/dev/safe-inserts/safe-insets.js.map +1 -0
  19. package/dist/dev/safe-inserts/safe-insets.web.d.ts.map +1 -0
  20. package/dist/dev/safe-inserts/safe-insets.web.js.map +1 -0
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/metro/index.cjs +8 -0
  26. package/package.json +3 -2
  27. package/dist/dev/safe-insets.d.ts.map +0 -1
  28. package/dist/dev/safe-insets.js.map +0 -1
  29. package/dist/dev/safe-insets.web.d.ts.map +0 -1
  30. package/dist/dev/safe-insets.web.js.map +0 -1
  31. /package/dist/dev/{safe-insets.d.ts → safe-inserts/safe-insets.d.ts} +0 -0
  32. /package/dist/dev/{safe-insets.js → safe-inserts/safe-insets.js} +0 -0
  33. /package/dist/dev/{safe-insets.web.d.ts → safe-inserts/safe-insets.web.d.ts} +0 -0
  34. /package/dist/dev/{safe-insets.web.js → safe-inserts/safe-insets.web.js} +0 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Web version of StatusBar - posts color to parent iframe
3
+ *
4
+ * On web, StatusBar doesn't render anything visible.
5
+ * It just posts the status bar color to the parent iframe.
6
+ */
7
+ type StatusBarStyle = 'auto' | 'inverted' | 'light' | 'dark';
8
+ type StatusBarAnimation = 'none' | 'fade' | 'slide';
9
+ interface StatusBarProps {
10
+ style?: StatusBarStyle;
11
+ animated?: boolean;
12
+ hidden?: boolean;
13
+ backgroundColor?: string;
14
+ translucent?: boolean;
15
+ networkActivityIndicatorVisible?: boolean;
16
+ }
17
+ export declare function StatusBar({ style }: StatusBarProps): null;
18
+ export declare const setStatusBarStyle: (style: StatusBarStyle, _animated?: boolean) => void;
19
+ export declare const setStatusBarHidden: (_hidden: boolean, _animation?: StatusBarAnimation) => void;
20
+ export declare const setStatusBarBackgroundColor: (_backgroundColor: string, _animated?: boolean) => void;
21
+ export declare const setStatusBarNetworkActivityIndicatorVisible: (_visible: boolean) => void;
22
+ export declare const setStatusBarTranslucent: (_translucent: boolean) => void;
23
+ export type { StatusBarStyle, StatusBarAnimation, StatusBarProps };
24
+ //# sourceMappingURL=StatusBar.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBar.web.d.ts","sourceRoot":"","sources":["../../src/dev/StatusBar.web.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,KAAK,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAA;AAC5D,KAAK,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAEnD,UAAU,cAAc;IACvB,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+BAA+B,CAAC,EAAE,OAAO,CAAA;CACzC;AA0BD,wBAAgB,SAAS,CAAC,EAAE,KAAc,EAAE,EAAE,cAAc,QAM3D;AAGD,eAAO,MAAM,iBAAiB,GAAI,OAAO,cAAc,EAAE,YAAY,OAAO,SAE3E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC9B,SAAS,OAAO,EAChB,aAAa,kBAAkB,SACzB,CAAA;AAEP,eAAO,MAAM,2BAA2B,GACvC,kBAAkB,MAAM,EACxB,YAAY,OAAO,SACb,CAAA;AAEP,eAAO,MAAM,2CAA2C,GACvD,UAAU,OAAO,SACX,CAAA;AAEP,eAAO,MAAM,uBAAuB,GAAI,cAAc,OAAO,SAAO,CAAA;AAEpE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Web version of StatusBar - posts color to parent iframe
3
+ *
4
+ * On web, StatusBar doesn't render anything visible.
5
+ * It just posts the status bar color to the parent iframe.
6
+ */
7
+ import { useEffect } from 'react';
8
+ function postColorToParent(color) {
9
+ try {
10
+ if (typeof window !== 'undefined' &&
11
+ window.parent &&
12
+ window.parent !== window) {
13
+ window.parent.postMessage({ type: 'vibecode:statusbar:color', color, timestamp: Date.now() }, '*');
14
+ }
15
+ }
16
+ catch {
17
+ // Silently fail
18
+ }
19
+ }
20
+ function styleToColor(style = 'auto') {
21
+ if (style === 'dark') {
22
+ return '#000000';
23
+ }
24
+ return '#FFFFFF';
25
+ }
26
+ export function StatusBar({ style = 'auto' }) {
27
+ useEffect(() => {
28
+ postColorToParent(styleToColor(style));
29
+ }, [style]);
30
+ return null;
31
+ }
32
+ // No-op functions for web
33
+ export const setStatusBarStyle = (style, _animated) => {
34
+ postColorToParent(styleToColor(style));
35
+ };
36
+ export const setStatusBarHidden = (_hidden, _animation) => { };
37
+ export const setStatusBarBackgroundColor = (_backgroundColor, _animated) => { };
38
+ export const setStatusBarNetworkActivityIndicatorVisible = (_visible) => { };
39
+ export const setStatusBarTranslucent = (_translucent) => { };
40
+ //# sourceMappingURL=StatusBar.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBar.web.js","sourceRoot":"","sources":["../../src/dev/StatusBar.web.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAcjC,SAAS,iBAAiB,CAAC,KAAa;IACvC,IAAI,CAAC;QACJ,IACC,OAAO,MAAM,KAAK,WAAW;YAC7B,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM,KAAK,MAAM,EACvB,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,WAAW,CACxB,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAClE,GAAG,CACH,CAAA;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,gBAAgB;IACjB,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,QAAwB,MAAM;IACnD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,EAAkB;IAC3D,SAAS,CAAC,GAAG,EAAE;QACd,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,0BAA0B;AAC1B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAE,SAAmB,EAAE,EAAE;IAC/E,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,OAAgB,EAChB,UAA+B,EAC9B,EAAE,GAAE,CAAC,CAAA;AAEP,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,gBAAwB,EACxB,SAAmB,EAClB,EAAE,GAAE,CAAC,CAAA;AAEP,MAAM,CAAC,MAAM,2CAA2C,GAAG,CAC1D,QAAiB,EAChB,EAAE,GAAE,CAAC,CAAA;AAEP,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAqB,EAAE,EAAE,GAAE,CAAC,CAAA"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Automatically wraps the root layout with necessary providers.
5
5
  * Currently includes VibeSafeInsets for safe area handling on web.
6
+ * VibeErrorBoundary for error reporting on web.
6
7
  */
7
8
  import type { PropsWithChildren } from 'react';
8
9
  export declare function VibeDevWrapper({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"VibeDevWrapper.d.ts","sourceRoot":"","sources":["../../src/dev/VibeDevWrapper.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAG9C,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAE7D"}
1
+ {"version":3,"file":"VibeDevWrapper.d.ts","sourceRoot":"","sources":["../../src/dev/VibeDevWrapper.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAI9C,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAQ7D"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { VibeSafeInsets } from '../dev/safe-insets';
2
+ import { VibeErrorBoundary } from './error-boundry/ErrorBoundary';
3
+ import { VibeSafeInsets } from './safe-inserts/safe-insets';
3
4
  export function VibeDevWrapper({ children }) {
4
- return _jsx(VibeSafeInsets, { children: children });
5
+ return (_jsx(VibeErrorBoundary, { children: _jsx(VibeSafeInsets, { children: children }) }));
5
6
  }
6
7
  //# sourceMappingURL=VibeDevWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VibeDevWrapper.js","sourceRoot":"","sources":["../../src/dev/VibeDevWrapper.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAqB;IAC7D,OAAO,KAAC,cAAc,cAAE,QAAQ,GAAkB,CAAA;AACnD,CAAC"}
1
+ {"version":3,"file":"VibeDevWrapper.js","sourceRoot":"","sources":["../../src/dev/VibeDevWrapper.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAqB;IAC7D,OAAO,CACN,KAAC,iBAAiB,cACjB,KAAC,cAAc,cACb,QAAQ,GACO,GACE,CACpB,CAAA;AACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Native version of ErrorBoundary - pass-through
3
+ *
4
+ * On native platforms, this is a no-op that just renders children.
5
+ */
6
+ import type { PropsWithChildren } from 'react';
7
+ export declare function VibeErrorBoundary({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=ErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/dev/error-boundry/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAE9C,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAEhE"}
@@ -0,0 +1,5 @@
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ export function VibeErrorBoundary({ children }) {
3
+ return _jsx(_Fragment, { children: children });
4
+ }
5
+ //# sourceMappingURL=ErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.js","sourceRoot":"","sources":["../../../src/dev/error-boundry/ErrorBoundary.tsx"],"names":[],"mappings":";AAQA,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAqB;IAChE,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACvB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Web version of ErrorBoundary - posts errors to parent iframe
3
+ *
4
+ * Catches React errors and global errors, sends them to parent via postMessage.
5
+ * No fallback UI - just reports errors and continues rendering.
6
+ * Hides Expo's error overlay by removing it when it appears.
7
+ */
8
+ import React from 'react';
9
+ interface Props {
10
+ children: React.ReactNode;
11
+ }
12
+ interface State {
13
+ hasError: boolean;
14
+ }
15
+ export declare class VibeErrorBoundary extends React.Component<Props, State> {
16
+ state: State;
17
+ static getDerivedStateFromError(): State;
18
+ componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
19
+ render(): React.ReactNode;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=ErrorBoundary.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.web.d.ts","sourceRoot":"","sources":["../../../src/dev/error-boundry/ErrorBoundary.web.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAsEzB,UAAU,KAAK;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB;AAED,UAAU,KAAK;IACd,QAAQ,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACnE,KAAK,EAAE,KAAK,CAAsB;IAElC,MAAM,CAAC,wBAAwB,IAAI,KAAK;IAIxC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;IAI1D,MAAM;CAQN"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Web version of ErrorBoundary - posts errors to parent iframe
3
+ *
4
+ * Catches React errors and global errors, sends them to parent via postMessage.
5
+ * No fallback UI - just reports errors and continues rendering.
6
+ * Hides Expo's error overlay by removing it when it appears.
7
+ */
8
+ import React from 'react';
9
+ // Hide Expo's error overlay by removing it when it appears
10
+ if (typeof window !== 'undefined' && typeof MutationObserver !== 'undefined') {
11
+ const observer = new MutationObserver((mutations) => {
12
+ for (const mutation of mutations) {
13
+ mutation.addedNodes.forEach((node) => {
14
+ if (node instanceof HTMLElement && node.id === 'error-overlay') {
15
+ node.remove();
16
+ }
17
+ });
18
+ }
19
+ });
20
+ observer.observe(document.body, { childList: true });
21
+ }
22
+ function sendErrorToParent(error, errorInfo) {
23
+ try {
24
+ if (typeof window !== 'undefined' &&
25
+ window.parent &&
26
+ window.parent !== window) {
27
+ const err = error;
28
+ window.parent.postMessage({
29
+ type: 'vibecode:error',
30
+ error: {
31
+ message: err?.message || String(error) || 'Unknown error',
32
+ stack: err?.stack,
33
+ componentStack: errorInfo?.componentStack,
34
+ timestamp: Date.now(),
35
+ },
36
+ }, '*');
37
+ }
38
+ }
39
+ catch {
40
+ // Silently fail
41
+ }
42
+ }
43
+ // Global error listeners
44
+ if (typeof window !== 'undefined') {
45
+ window.addEventListener('error', (event) => {
46
+ event.preventDefault();
47
+ sendErrorToParent(event.error ?? { message: event.message });
48
+ }, true);
49
+ window.addEventListener('unhandledrejection', (event) => {
50
+ event.preventDefault();
51
+ sendErrorToParent(event.reason);
52
+ }, true);
53
+ // Override console.error to intercept errors before they trigger the overlay
54
+ const originalConsoleError = console.error;
55
+ console.error = (...args) => {
56
+ sendErrorToParent(args.map((a) => String(a)).join(' '));
57
+ originalConsoleError.apply(console, args);
58
+ };
59
+ }
60
+ export class VibeErrorBoundary extends React.Component {
61
+ constructor() {
62
+ super(...arguments);
63
+ this.state = { hasError: false };
64
+ }
65
+ static getDerivedStateFromError() {
66
+ return { hasError: true };
67
+ }
68
+ componentDidCatch(error, errorInfo) {
69
+ sendErrorToParent(error, errorInfo);
70
+ }
71
+ render() {
72
+ if (this.state.hasError) {
73
+ // Return null to prevent infinite error loops
74
+ // The error has already been sent to the parent iframe
75
+ return null;
76
+ }
77
+ return this.props.children;
78
+ }
79
+ }
80
+ //# sourceMappingURL=ErrorBoundary.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.web.js","sourceRoot":"","sources":["../../../src/dev/error-boundry/ErrorBoundary.web.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-insets.d.ts","sourceRoot":"","sources":["../../../src/dev/safe-inserts/safe-insets.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAE9C,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAE7D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-insets.js","sourceRoot":"","sources":["../../../src/dev/safe-inserts/safe-insets.tsx"],"names":[],"mappings":";AASA,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAqB;IAC7D,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACvB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-insets.web.d.ts","sourceRoot":"","sources":["../../../src/dev/safe-inserts/safe-insets.web.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAW9C,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA6B7D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-insets.web.js","sourceRoot":"","sources":["../../../src/dev/safe-inserts/safe-insets.web.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,MAAM,8BAA8B,GAAG;IACtC,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,CAAC;CACP,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAqB;IAC7D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,8BAA8B,CAAC,CAAA;IAEpE,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,yBAAyB,EAAE,CAAC;gBACpD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA;gBACtD,IACC,OAAO,GAAG,KAAK,QAAQ;oBACvB,OAAO,KAAK,KAAK,QAAQ;oBACzB,OAAO,MAAM,KAAK,QAAQ;oBAC1B,OAAO,IAAI,KAAK,QAAQ,EACvB,CAAC;oBACF,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;gBACxC,CAAC;YACF,CAAC;QACF,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACjD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAA;QAE7D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAClE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACN,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAC3C,QAAQ,GACuB,CACjC,CAAA;AACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,6 @@
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
- export { VibeSafeInsets } from './dev/safe-insets';
9
+ export { VibeSafeInsets } from './dev/safe-inserts/safe-insets';
10
10
  export { VibeDevWrapper } from './dev/VibeDevWrapper';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
package/dist/index.js CHANGED
@@ -6,6 +6,6 @@
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
- export { VibeSafeInsets } from './dev/safe-insets';
9
+ export { VibeSafeInsets } from './dev/safe-inserts/safe-insets';
10
10
  export { VibeDevWrapper } from './dev/VibeDevWrapper';
11
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
package/metro/index.cjs CHANGED
@@ -151,6 +151,14 @@ function withVibecodeMetro(config, options = {}) {
151
151
  }
152
152
  }
153
153
 
154
+ // Override expo-status-bar on web to post status bar color to parent iframe
155
+ if (moduleName === 'expo-status-bar' && platform === 'web') {
156
+ return {
157
+ filePath: path.resolve(distPath, 'dev/StatusBar.web.js'),
158
+ type: 'sourceFile',
159
+ }
160
+ }
161
+
154
162
  if (originalResolveRequest) {
155
163
  return originalResolveRequest(context, moduleName, platform)
156
164
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibecodeapp/sdk",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "SDK for Vibecodeapp.com - Web polyfills and Metro configuration for React Native",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -57,7 +57,8 @@
57
57
  "react-native-web": "*",
58
58
  "react-native-safe-area-context": "^5.6.2",
59
59
  "react-native-svg-transformer": "*",
60
- "metro-cache": "*"
60
+ "metro-cache": "*",
61
+ "expo-status-bar": "*"
61
62
  },
62
63
  "type": "module"
63
64
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe-insets.d.ts","sourceRoot":"","sources":["../../src/dev/safe-insets.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAE9C,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAE7D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe-insets.js","sourceRoot":"","sources":["../../src/dev/safe-insets.tsx"],"names":[],"mappings":";AASA,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAqB;IAC7D,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe-insets.web.d.ts","sourceRoot":"","sources":["../../src/dev/safe-insets.web.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAW9C,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA6B7D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe-insets.web.js","sourceRoot":"","sources":["../../src/dev/safe-insets.web.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,MAAM,8BAA8B,GAAG;IACtC,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,CAAC;CACP,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAqB;IAC7D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,8BAA8B,CAAC,CAAA;IAEpE,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,yBAAyB,EAAE,CAAC;gBACpD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA;gBACtD,IACC,OAAO,GAAG,KAAK,QAAQ;oBACvB,OAAO,KAAK,KAAK,QAAQ;oBACzB,OAAO,MAAM,KAAK,QAAQ;oBAC1B,OAAO,IAAI,KAAK,QAAQ,EACvB,CAAC;oBACF,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;gBACxC,CAAC;YACF,CAAC;QACF,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACjD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAA;QAE7D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAClE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACN,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAC3C,QAAQ,GACuB,CACjC,CAAA;AACF,CAAC"}