@use-voltra/ios 1.3.0 → 1.4.0-rc.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.
- package/build/cjs/index.js +9 -1
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/payload/component-ids.js +1 -0
- package/build/cjs/payload/component-ids.js.map +1 -1
- package/build/cjs/widgets/renderer.js +1 -1
- package/build/cjs/widgets/renderer.js.map +1 -1
- package/build/esm/index.js +3 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/payload/component-ids.js +1 -0
- package/build/esm/payload/component-ids.js.map +1 -1
- package/build/esm/widgets/renderer.js +1 -1
- package/build/esm/widgets/renderer.js.map +1 -1
- package/build/types/index.d.ts +7 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/payload/component-ids.d.ts.map +1 -1
- package/build/types/styles/index.d.ts +1 -1
- package/build/types/styles/index.d.ts.map +1 -1
- package/build/types/styles/types.d.ts +89 -1
- package/build/types/styles/types.d.ts.map +1 -1
- package/build/types/types.d.ts +25 -1
- package/build/types/types.d.ts.map +1 -1
- package/package.json +3 -11
- package/build/cjs/VoltraModule.js +0 -6
- package/build/cjs/VoltraModule.js.map +0 -1
- package/build/cjs/client.js +0 -49
- package/build/cjs/client.js.map +0 -1
- package/build/cjs/components/VoltraLiveActivityPreview.js +0 -42
- package/build/cjs/components/VoltraLiveActivityPreview.js.map +0 -1
- package/build/cjs/components/VoltraView.js +0 -54
- package/build/cjs/components/VoltraView.js.map +0 -1
- package/build/cjs/components/VoltraWidgetPreview.js +0 -47
- package/build/cjs/components/VoltraWidgetPreview.js.map +0 -1
- package/build/cjs/events.js +0 -35
- package/build/cjs/events.js.map +0 -1
- package/build/cjs/helpers.js +0 -39
- package/build/cjs/helpers.js.map +0 -1
- package/build/cjs/live-activity/api.js +0 -277
- package/build/cjs/live-activity/api.js.map +0 -1
- package/build/cjs/logger.js +0 -36
- package/build/cjs/logger.js.map +0 -1
- package/build/cjs/preload.js +0 -115
- package/build/cjs/preload.js.map +0 -1
- package/build/cjs/utils/assertRunningOnApple.js +0 -13
- package/build/cjs/utils/assertRunningOnApple.js.map +0 -1
- package/build/cjs/utils/helpers.js +0 -39
- package/build/cjs/utils/helpers.js.map +0 -1
- package/build/cjs/utils/index.js +0 -19
- package/build/cjs/utils/index.js.map +0 -1
- package/build/cjs/utils/useUpdateOnHMR.js +0 -27
- package/build/cjs/utils/useUpdateOnHMR.js.map +0 -1
- package/build/cjs/widgets/server-credentials.js +0 -62
- package/build/cjs/widgets/server-credentials.js.map +0 -1
- package/build/cjs/widgets/widget-api.js +0 -196
- package/build/cjs/widgets/widget-api.js.map +0 -1
- package/build/esm/VoltraModule.js +0 -4
- package/build/esm/VoltraModule.js.map +0 -1
- package/build/esm/client.js +0 -10
- package/build/esm/client.js.map +0 -1
- package/build/esm/components/VoltraLiveActivityPreview.js +0 -39
- package/build/esm/components/VoltraLiveActivityPreview.js.map +0 -1
- package/build/esm/components/VoltraView.js +0 -51
- package/build/esm/components/VoltraView.js.map +0 -1
- package/build/esm/components/VoltraWidgetPreview.js +0 -44
- package/build/esm/components/VoltraWidgetPreview.js.map +0 -1
- package/build/esm/events.js +0 -29
- package/build/esm/events.js.map +0 -1
- package/build/esm/helpers.js +0 -32
- package/build/esm/helpers.js.map +0 -1
- package/build/esm/live-activity/api.js +0 -265
- package/build/esm/live-activity/api.js.map +0 -1
- package/build/esm/logger.js +0 -33
- package/build/esm/logger.js.map +0 -1
- package/build/esm/preload.js +0 -107
- package/build/esm/preload.js.map +0 -1
- package/build/esm/utils/assertRunningOnApple.js +0 -9
- package/build/esm/utils/assertRunningOnApple.js.map +0 -1
- package/build/esm/utils/helpers.js +0 -32
- package/build/esm/utils/helpers.js.map +0 -1
- package/build/esm/utils/index.js +0 -3
- package/build/esm/utils/index.js.map +0 -1
- package/build/esm/utils/useUpdateOnHMR.js +0 -23
- package/build/esm/utils/useUpdateOnHMR.js.map +0 -1
- package/build/esm/widgets/server-credentials.js +0 -55
- package/build/esm/widgets/server-credentials.js.map +0 -1
- package/build/esm/widgets/widget-api.js +0 -184
- package/build/esm/widgets/widget-api.js.map +0 -1
- package/build/types/VoltraModule.d.ts +0 -143
- package/build/types/VoltraModule.d.ts.map +0 -1
- package/build/types/client.d.ts +0 -13
- package/build/types/client.d.ts.map +0 -1
- package/build/types/components/VoltraLiveActivityPreview.d.ts +0 -28
- package/build/types/components/VoltraLiveActivityPreview.d.ts.map +0 -1
- package/build/types/components/VoltraView.d.ts +0 -43
- package/build/types/components/VoltraView.d.ts.map +0 -1
- package/build/types/components/VoltraWidgetPreview.d.ts +0 -32
- package/build/types/components/VoltraWidgetPreview.d.ts.map +0 -1
- package/build/types/events.d.ts +0 -49
- package/build/types/events.d.ts.map +0 -1
- package/build/types/helpers.d.ts +0 -12
- package/build/types/helpers.d.ts.map +0 -1
- package/build/types/live-activity/api.d.ts +0 -189
- package/build/types/live-activity/api.d.ts.map +0 -1
- package/build/types/logger.d.ts +0 -16
- package/build/types/logger.d.ts.map +0 -1
- package/build/types/preload.d.ts +0 -67
- package/build/types/preload.d.ts.map +0 -1
- package/build/types/utils/assertRunningOnApple.d.ts +0 -2
- package/build/types/utils/assertRunningOnApple.d.ts.map +0 -1
- package/build/types/utils/helpers.d.ts +0 -12
- package/build/types/utils/helpers.d.ts.map +0 -1
- package/build/types/utils/index.d.ts +0 -3
- package/build/types/utils/index.d.ts.map +0 -1
- package/build/types/utils/useUpdateOnHMR.d.ts +0 -9
- package/build/types/utils/useUpdateOnHMR.d.ts.map +0 -1
- package/build/types/widgets/server-credentials.d.ts +0 -49
- package/build/types/widgets/server-credentials.d.ts.map +0 -1
- package/build/types/widgets/widget-api.d.ts +0 -146
- package/build/types/widgets/widget-api.d.ts.map +0 -1
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.setWidgetServerCredentials = setWidgetServerCredentials;
|
|
7
|
-
exports.clearWidgetServerCredentials = clearWidgetServerCredentials;
|
|
8
|
-
const VoltraModule_js_1 = __importDefault(require("../VoltraModule.js"));
|
|
9
|
-
/**
|
|
10
|
-
* Store server credentials for widget server-driven updates.
|
|
11
|
-
*
|
|
12
|
-
* On iOS, credentials are stored in the Shared Keychain (accessible by both the
|
|
13
|
-
* main app and widget extension) with `kSecAttrAccessibleAfterFirstUnlock` to allow
|
|
14
|
-
* background access.
|
|
15
|
-
*
|
|
16
|
-
* On Android, credentials are encrypted via Google Tink (AES-256-GCM) and
|
|
17
|
-
* persisted in Jetpack DataStore. The encryption key is managed by the Android
|
|
18
|
-
* Keystore. The WorkManager background worker can access this storage directly
|
|
19
|
-
* since widgets are part of the main app binary.
|
|
20
|
-
*
|
|
21
|
-
* Call this after the user logs in to enable authenticated widget updates.
|
|
22
|
-
*
|
|
23
|
-
* @param credentials - The server credentials to store
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* import { setWidgetServerCredentials } from 'voltra'
|
|
28
|
-
*
|
|
29
|
-
* // After user login
|
|
30
|
-
* await setWidgetServerCredentials({
|
|
31
|
-
* token: userAccessToken,
|
|
32
|
-
* headers: {
|
|
33
|
-
* 'X-App-Version': '1.0.0',
|
|
34
|
-
* }
|
|
35
|
-
* })
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
async function setWidgetServerCredentials(credentials) {
|
|
39
|
-
if (!credentials.token) {
|
|
40
|
-
throw new Error('[Voltra][iOS] setWidgetServerCredentials: token is required');
|
|
41
|
-
}
|
|
42
|
-
return VoltraModule_js_1.default.setWidgetServerCredentials(credentials);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Clear stored server credentials for widget updates.
|
|
46
|
-
*
|
|
47
|
-
* Call this when the user logs out to stop authenticated widget updates.
|
|
48
|
-
* All widgets are automatically reloaded after clearing credentials so they
|
|
49
|
-
* revert to their default/unauthenticated state.
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* ```typescript
|
|
53
|
-
* import { clearWidgetServerCredentials } from 'voltra'
|
|
54
|
-
*
|
|
55
|
-
* // On user logout
|
|
56
|
-
* await clearWidgetServerCredentials()
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
async function clearWidgetServerCredentials() {
|
|
60
|
-
return VoltraModule_js_1.default.clearWidgetServerCredentials();
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=server-credentials.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-credentials.js","sourceRoot":"","sources":["../../../src/widgets/server-credentials.ts"],"names":[],"mappings":";;;;;AAmCA,gEAMC;AAiBD,oEAEC;AA3DD,yEAA6C;AAK7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACI,KAAK,UAAU,0BAA0B,CAAC,WAAoC;IACnF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,OAAO,yBAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,4BAA4B;IAChD,OAAO,yBAAY,CAAC,4BAA4B,EAAE,CAAA;AACpD,CAAC"}
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getActiveWidgets = exports.scheduleWidget = exports.clearAllWidgets = exports.clearWidget = exports.reloadWidgets = exports.updateWidget = void 0;
|
|
7
|
-
const assertRunningOnApple_js_1 = require("../utils/assertRunningOnApple.js");
|
|
8
|
-
const VoltraModule_js_1 = __importDefault(require("../VoltraModule.js"));
|
|
9
|
-
const renderer_js_1 = require("./renderer.js");
|
|
10
|
-
/**
|
|
11
|
-
* Update a home screen widget with new content.
|
|
12
|
-
*
|
|
13
|
-
* The content will be stored in App Group storage and the widget timeline
|
|
14
|
-
* will be reloaded to display the new content.
|
|
15
|
-
*
|
|
16
|
-
* @param widgetId - The widget identifier (as defined in your config plugin)
|
|
17
|
-
* @param variants - An object mapping widget families to specific content.
|
|
18
|
-
* Each key corresponds to a widget size family.
|
|
19
|
-
* @param options - Optional settings like deep link URL
|
|
20
|
-
*
|
|
21
|
-
* @example Different content per size
|
|
22
|
-
* ```tsx
|
|
23
|
-
* import { updateWidget, Voltra } from 'voltra'
|
|
24
|
-
*
|
|
25
|
-
* await updateWidget('weather', {
|
|
26
|
-
* systemSmall: <Voltra.Text fontSize={32}>72°F</Voltra.Text>,
|
|
27
|
-
* systemMedium: (
|
|
28
|
-
* <Voltra.HStack>
|
|
29
|
-
* <Voltra.Text fontSize={32}>72°F</Voltra.Text>
|
|
30
|
-
* <Voltra.VStack>
|
|
31
|
-
* <Voltra.Text>Sunny</Voltra.Text>
|
|
32
|
-
* <Voltra.Text>High: 78° Low: 65°</Voltra.Text>
|
|
33
|
-
* </Voltra.VStack>
|
|
34
|
-
* </Voltra.HStack>
|
|
35
|
-
* ),
|
|
36
|
-
* }, { deepLinkUrl: '/weather' })
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
const updateWidget = async (widgetId, variants, options) => {
|
|
40
|
-
if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
|
|
41
|
-
return Promise.resolve();
|
|
42
|
-
const payload = (0, renderer_js_1.renderWidgetToString)(variants);
|
|
43
|
-
return VoltraModule_js_1.default.updateWidget(widgetId, payload, {
|
|
44
|
-
deepLinkUrl: options?.deepLinkUrl,
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
exports.updateWidget = updateWidget;
|
|
48
|
-
/**
|
|
49
|
-
* Reload widget timelines to refresh their content.
|
|
50
|
-
*
|
|
51
|
-
* Use this after updating data that widgets depend on (e.g., after preloading
|
|
52
|
-
* new images) to force them to re-render.
|
|
53
|
-
*
|
|
54
|
-
* @param widgetIds - Optional array of widget IDs to reload. If omitted, reloads all widgets.
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```typescript
|
|
58
|
-
* // Reload specific widgets
|
|
59
|
-
* await reloadWidgets(['weather', 'calendar'])
|
|
60
|
-
*
|
|
61
|
-
* // Reload all widgets
|
|
62
|
-
* await reloadWidgets()
|
|
63
|
-
* ```
|
|
64
|
-
*/
|
|
65
|
-
const reloadWidgets = async (widgetIds) => {
|
|
66
|
-
if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
|
|
67
|
-
return Promise.resolve();
|
|
68
|
-
return VoltraModule_js_1.default.reloadWidgets(widgetIds ?? null);
|
|
69
|
-
};
|
|
70
|
-
exports.reloadWidgets = reloadWidgets;
|
|
71
|
-
/**
|
|
72
|
-
* Clear a widget's stored data.
|
|
73
|
-
*
|
|
74
|
-
* This removes the JSON content and deep link URL for the specified widget,
|
|
75
|
-
* causing it to show its placeholder state.
|
|
76
|
-
*
|
|
77
|
-
* @param widgetId - The widget identifier to clear
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```typescript
|
|
81
|
-
* await clearWidget('weather')
|
|
82
|
-
* ```
|
|
83
|
-
*/
|
|
84
|
-
const clearWidget = async (widgetId) => {
|
|
85
|
-
if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
|
|
86
|
-
return Promise.resolve();
|
|
87
|
-
return VoltraModule_js_1.default.clearWidget(widgetId);
|
|
88
|
-
};
|
|
89
|
-
exports.clearWidget = clearWidget;
|
|
90
|
-
/**
|
|
91
|
-
* Clear all widgets' stored data.
|
|
92
|
-
*
|
|
93
|
-
* This removes the JSON content and deep link URLs for all configured widgets,
|
|
94
|
-
* causing them to show their placeholder states.
|
|
95
|
-
*
|
|
96
|
-
* @example
|
|
97
|
-
* ```typescript
|
|
98
|
-
* await clearAllWidgets()
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
const clearAllWidgets = async () => {
|
|
102
|
-
if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
|
|
103
|
-
return Promise.resolve();
|
|
104
|
-
return VoltraModule_js_1.default.clearAllWidgets();
|
|
105
|
-
};
|
|
106
|
-
exports.clearAllWidgets = clearAllWidgets;
|
|
107
|
-
/**
|
|
108
|
-
* Schedule a widget timeline with multiple entries to be displayed at future times.
|
|
109
|
-
*
|
|
110
|
-
* iOS will automatically display each entry at its scheduled time, even when your
|
|
111
|
-
* app is not running. This allows you to batch widget updates in advance.
|
|
112
|
-
*
|
|
113
|
-
* @param widgetId - The widget identifier (as defined in your config plugin)
|
|
114
|
-
* @param entries - Array of scheduled entries, each with a date and content variants
|
|
115
|
-
* @param options - Optional settings like reload policy
|
|
116
|
-
*
|
|
117
|
-
* @example Schedule weather updates throughout the day
|
|
118
|
-
* ```tsx
|
|
119
|
-
* import { scheduleWidget, Voltra } from 'voltra'
|
|
120
|
-
*
|
|
121
|
-
* await scheduleWidget('weather', [
|
|
122
|
-
* {
|
|
123
|
-
* date: new Date('2026-01-16T09:00:00'),
|
|
124
|
-
* variants: {
|
|
125
|
-
* systemSmall: <Voltra.Text>Morning: 65°F</Voltra.Text>
|
|
126
|
-
* }
|
|
127
|
-
* },
|
|
128
|
-
* {
|
|
129
|
-
* date: new Date('2026-01-16T15:00:00'),
|
|
130
|
-
* variants: {
|
|
131
|
-
* systemSmall: <Voltra.Text>Afternoon: 72°F</Voltra.Text>
|
|
132
|
-
* }
|
|
133
|
-
* },
|
|
134
|
-
* {
|
|
135
|
-
* date: new Date('2026-01-16T21:00:00'),
|
|
136
|
-
* variants: {
|
|
137
|
-
* systemSmall: <Voltra.Text>Evening: 68°F</Voltra.Text>
|
|
138
|
-
* }
|
|
139
|
-
* }
|
|
140
|
-
* ], {
|
|
141
|
-
* policy: { type: 'atEnd' } // Request new timeline when last entry expires
|
|
142
|
-
* })
|
|
143
|
-
* ```
|
|
144
|
-
*
|
|
145
|
-
* @example With deep links per entry
|
|
146
|
-
* ```tsx
|
|
147
|
-
* await scheduleWidget('news', [
|
|
148
|
-
* {
|
|
149
|
-
* date: new Date('2026-01-16T08:00:00'),
|
|
150
|
-
* variants: { systemSmall: <Voltra.Text>Morning News</Voltra.Text> },
|
|
151
|
-
* deepLinkUrl: '/news/morning'
|
|
152
|
-
* },
|
|
153
|
-
* {
|
|
154
|
-
* date: new Date('2026-01-16T20:00:00'),
|
|
155
|
-
* variants: { systemSmall: <Voltra.Text>Evening News</Voltra.Text> },
|
|
156
|
-
* deepLinkUrl: '/news/evening'
|
|
157
|
-
* }
|
|
158
|
-
* ])
|
|
159
|
-
* ```
|
|
160
|
-
*/
|
|
161
|
-
const scheduleWidget = async (widgetId, entries) => {
|
|
162
|
-
if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
|
|
163
|
-
return Promise.resolve();
|
|
164
|
-
// Render each entry's variants to JSON
|
|
165
|
-
const renderedEntries = entries.map((entry) => ({
|
|
166
|
-
date: entry.date.getTime(), // Convert to milliseconds timestamp
|
|
167
|
-
json: (0, renderer_js_1.renderWidgetToString)(entry.variants),
|
|
168
|
-
deepLinkUrl: entry.deepLinkUrl,
|
|
169
|
-
}));
|
|
170
|
-
// Prepare timeline data (always use 'never' policy since widget extension can't regenerate content)
|
|
171
|
-
const timelineData = {
|
|
172
|
-
entries: renderedEntries,
|
|
173
|
-
policy: { type: 'never' },
|
|
174
|
-
};
|
|
175
|
-
const timelineJson = JSON.stringify(timelineData);
|
|
176
|
-
return VoltraModule_js_1.default.scheduleWidget(widgetId, timelineJson);
|
|
177
|
-
};
|
|
178
|
-
exports.scheduleWidget = scheduleWidget;
|
|
179
|
-
/**
|
|
180
|
-
* Fetches all active widget configurations for the containing app on iOS.
|
|
181
|
-
*
|
|
182
|
-
* @returns A promise that resolves to an array of active widget configurations.
|
|
183
|
-
*
|
|
184
|
-
* @example
|
|
185
|
-
* ```typescript
|
|
186
|
-
* const widgets = await getActiveWidgets()
|
|
187
|
-
* console.log('Active widgets:', widgets)
|
|
188
|
-
* ```
|
|
189
|
-
*/
|
|
190
|
-
const getActiveWidgets = async () => {
|
|
191
|
-
if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
|
|
192
|
-
return [];
|
|
193
|
-
return VoltraModule_js_1.default.getActiveWidgets();
|
|
194
|
-
};
|
|
195
|
-
exports.getActiveWidgets = getActiveWidgets;
|
|
196
|
-
//# sourceMappingURL=widget-api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"widget-api.js","sourceRoot":"","sources":["../../../src/widgets/widget-api.ts"],"names":[],"mappings":";;;;;;AACA,8EAAuE;AACvE,yEAA6C;AAC7C,+CAAoD;AAOpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACI,MAAM,YAAY,GAAG,KAAK,EAC/B,QAAgB,EAChB,QAAwB,EACxB,OAA6B,EACd,EAAE;IACjB,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,MAAM,OAAO,GAAG,IAAA,kCAAoB,EAAC,QAAQ,CAAC,CAAA;IAE9C,OAAO,yBAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE;QAClD,WAAW,EAAE,OAAO,EAAE,WAAW;KAClC,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,YAAY,gBAYxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,aAAa,GAAG,KAAK,EAAE,SAAoB,EAAiB,EAAE;IACzE,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,yBAAY,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;AACtD,CAAC,CAAA;AAJY,QAAA,aAAa,iBAIzB;AAED;;;;;;;;;;;;GAYG;AACI,MAAM,WAAW,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IACnE,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,yBAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AAC3C,CAAC,CAAA;AAJY,QAAA,WAAW,eAIvB;AAED;;;;;;;;;;GAUG;AACI,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;IACvD,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,yBAAY,CAAC,eAAe,EAAE,CAAA;AACvC,CAAC,CAAA;AAJY,QAAA,eAAe,mBAI3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACI,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAE,OAA+B,EAAiB,EAAE;IACvG,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,uCAAuC;IACvC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,oCAAoC;QAChE,IAAI,EAAE,IAAA,kCAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC,CAAA;IAEH,oGAAoG;IACpG,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC1B,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAEjD,OAAO,yBAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AAC5D,CAAC,CAAA;AAnBY,QAAA,cAAc,kBAmB1B;AAED;;;;;;;;;;GAUG;AACI,MAAM,gBAAgB,GAAG,KAAK,IAA2B,EAAE;IAChE,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,EAAE,CAAA;IAEtC,OAAO,yBAAY,CAAC,gBAAgB,EAAE,CAAA;AACxC,CAAC,CAAA;AAJY,QAAA,gBAAgB,oBAI5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraModule.js","sourceRoot":"","sources":["../../src/VoltraModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AA4K1C,MAAM,YAAY,GAAG,mBAAmB,CAAsB,cAAc,CAAC,CAAA;AAE7E,eAAe,YAAY,CAAA"}
|
package/build/esm/client.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { VoltraLiveActivityPreview, } from './components/VoltraLiveActivityPreview.js';
|
|
2
|
-
export { VoltraView } from './components/VoltraView.js';
|
|
3
|
-
export { VoltraWidgetPreview } from './components/VoltraWidgetPreview.js';
|
|
4
|
-
export * from './events.js';
|
|
5
|
-
export { isGlassSupported, isHeadless } from './helpers.js';
|
|
6
|
-
export { endAllLiveActivities, isLiveActivityActive, startLiveActivity, stopLiveActivity, updateLiveActivity, useLiveActivity, } from './live-activity/api.js';
|
|
7
|
-
export { clearPreloadedImages, preloadImages, reloadLiveActivities, } from './preload.js';
|
|
8
|
-
export { clearWidgetServerCredentials, setWidgetServerCredentials, } from './widgets/server-credentials.js';
|
|
9
|
-
export { clearAllWidgets, clearWidget, getActiveWidgets, reloadWidgets, scheduleWidget, updateWidget, } from './widgets/widget-api.js';
|
|
10
|
-
//# sourceMappingURL=client.js.map
|
package/build/esm/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAiC,MAAM,qCAAqC,CAAA;AACxG,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EACL,oBAAoB,EAEpB,oBAAoB,EAEpB,iBAAiB,EAEjB,gBAAgB,EAChB,kBAAkB,EAElB,eAAe,GAGhB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,oBAAoB,EAEpB,aAAa,EAEb,oBAAoB,GACrB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAE3B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EAEb,cAAc,EACd,YAAY,GAEb,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { VoltraView } from './VoltraView.js';
|
|
3
|
-
/**
|
|
4
|
-
* Dimensions for iOS lock screen Live Activity in points (approximate)
|
|
5
|
-
* Based on iPhone 14 Pro/15 Pro dimensions
|
|
6
|
-
*/
|
|
7
|
-
const LOCK_SCREEN_DIMENSIONS = {
|
|
8
|
-
width: 364,
|
|
9
|
-
height: 160,
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* A preview component that renders Voltra JSX lock screen Live Activity content
|
|
13
|
-
* at the exact dimensions of a lock screen Live Activity. Useful for testing
|
|
14
|
-
* Live Activity layouts.
|
|
15
|
-
*
|
|
16
|
-
* This component extends VoltraView but automatically sets the width and height
|
|
17
|
-
* to match the lock screen Live Activity dimensions. Live Activities cannot be
|
|
18
|
-
* fully emulated, so this provides a close approximation for development.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```tsx
|
|
22
|
-
* <VoltraLiveActivityPreview
|
|
23
|
-
* style={{ backgroundColor: 'lightgray' }}
|
|
24
|
-
* >
|
|
25
|
-
* <Voltra.Text>Hello Live Activity!</Voltra.Text>
|
|
26
|
-
* </VoltraLiveActivityPreview>
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export function VoltraLiveActivityPreview({ style, children, ...voltraViewProps }) {
|
|
30
|
-
const previewStyle = [
|
|
31
|
-
{
|
|
32
|
-
width: LOCK_SCREEN_DIMENSIONS.width,
|
|
33
|
-
height: LOCK_SCREEN_DIMENSIONS.height,
|
|
34
|
-
},
|
|
35
|
-
style,
|
|
36
|
-
];
|
|
37
|
-
return (_jsx(VoltraView, { ...voltraViewProps, style: previewStyle, children: children }));
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=VoltraLiveActivityPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraLiveActivityPreview.js","sourceRoot":"","sources":["../../../src/components/VoltraLiveActivityPreview.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAE7D;;;GAGG;AACH,MAAM,sBAAsB,GAAG;IAC7B,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;CACZ,CAAA;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAkC;IAC/G,MAAM,YAAY,GAAyB;QACzC;YACE,KAAK,EAAE,sBAAsB,CAAC,KAAK;YACnC,MAAM,EAAE,sBAAsB,CAAC,MAAM;SACtC;QACD,KAAK;KACN,CAAA;IAED,OAAO,CACL,KAAC,UAAU,OAAK,eAAe,EAAE,KAAK,EAAE,YAAY,YACjD,QAAQ,GACE,CACd,CAAA;AACH,CAAC"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { requireNativeView } from 'expo';
|
|
3
|
-
import { useEffect, useMemo } from 'react';
|
|
4
|
-
import { View } from 'react-native';
|
|
5
|
-
import { addVoltraListener } from '../events.js';
|
|
6
|
-
import { renderVoltraVariantToJson } from '../renderer/index.js';
|
|
7
|
-
const NativeVoltraView = requireNativeView('VoltraModule');
|
|
8
|
-
// Generate a unique ID for views that don't have one
|
|
9
|
-
const generateViewId = () => `voltra-view-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
10
|
-
const voltraViewStyle = {
|
|
11
|
-
flex: 1,
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* A React Native component that renders Voltra UI using SwiftUI in the native layer.
|
|
15
|
-
* This component accepts Voltra JSX components as children and renders them as SwiftUI components.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```tsx
|
|
19
|
-
* <VoltraView id="my-view" style={{ width: 200, height: 100 }}>
|
|
20
|
-
* <Voltra.VStack>
|
|
21
|
-
* <Voltra.Text>Hello World</Voltra.Text>
|
|
22
|
-
* </Voltra.VStack>
|
|
23
|
-
* </VoltraView>
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export function VoltraView({ id, children, style, onInteraction, testID }) {
|
|
27
|
-
// Generate a stable ID if not provided
|
|
28
|
-
const viewId = useMemo(() => id || generateViewId(), [id]);
|
|
29
|
-
const json = renderVoltraVariantToJson(children);
|
|
30
|
-
const payload = JSON.stringify(json);
|
|
31
|
-
// Subscribe to interaction events and filter by this view's ID
|
|
32
|
-
useEffect(() => {
|
|
33
|
-
if (!onInteraction)
|
|
34
|
-
return;
|
|
35
|
-
const subscription = addVoltraListener('interaction', (event) => {
|
|
36
|
-
// Only forward events from this view
|
|
37
|
-
if (event.source === viewId) {
|
|
38
|
-
onInteraction({
|
|
39
|
-
type: 'interaction',
|
|
40
|
-
source: event.source,
|
|
41
|
-
timestamp: event.timestamp,
|
|
42
|
-
identifier: event.identifier,
|
|
43
|
-
payload: event.payload,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
return () => subscription.remove();
|
|
48
|
-
}, [viewId, onInteraction]);
|
|
49
|
-
return (_jsx(View, { testID: testID, style: style, children: _jsx(NativeVoltraView, { payload: payload, viewId: viewId, style: voltraViewStyle }) }));
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=VoltraView.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraView.js","sourceRoot":"","sources":["../../../src/components/VoltraView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AACxC,OAAc,EAAa,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAa,IAAI,EAAa,MAAM,cAAc,CAAA;AAEzD,OAAO,EAAE,iBAAiB,EAA0B,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAEhE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAE1D,qDAAqD;AACrD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AAEtG,MAAM,eAAe,GAAc;IACjC,IAAI,EAAE,CAAC;CACR,CAAA;AA4BD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAmB;IACxF,uCAAuC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAE1D,MAAM,IAAI,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAM;QAE1B,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9D,qCAAqC;YACrC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5B,aAAa,CAAC;oBACZ,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IACpC,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IAE3B,OAAO,CACL,KAAC,IAAI,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,YAChC,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAI,GACzE,CACR,CAAA;AACH,CAAC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { VoltraView } from './VoltraView.js';
|
|
3
|
-
/**
|
|
4
|
-
* Dimensions for iOS widget families in points (approximate)
|
|
5
|
-
* Based on iPhone 14 Pro/15 Pro dimensions
|
|
6
|
-
*/
|
|
7
|
-
const WIDGET_DIMENSIONS = {
|
|
8
|
-
systemSmall: { width: 170, height: 170 },
|
|
9
|
-
systemMedium: { width: 364, height: 170 },
|
|
10
|
-
systemLarge: { width: 364, height: 382 },
|
|
11
|
-
systemExtraLarge: { width: 364, height: 768 }, // Approximate for iPad
|
|
12
|
-
accessoryCircular: { width: 76, height: 76 },
|
|
13
|
-
accessoryRectangular: { width: 172, height: 76 },
|
|
14
|
-
accessoryInline: { width: 172, height: 40 }, // Approximate
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* A preview component that renders Voltra JSX content at the exact dimensions
|
|
18
|
-
* of a specific iOS widget family. Useful for testing widget layouts.
|
|
19
|
-
*
|
|
20
|
-
* This component extends VoltraView but automatically sets the width and height
|
|
21
|
-
* to match the specified widget family's dimensions.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```tsx
|
|
25
|
-
* <VoltraWidgetPreview
|
|
26
|
-
* family="systemSmall"
|
|
27
|
-
* style={{ backgroundColor: 'lightgray' }}
|
|
28
|
-
* >
|
|
29
|
-
* <Voltra.Text>Hello Widget!</Voltra.Text>
|
|
30
|
-
* </VoltraWidgetPreview>
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
export function VoltraWidgetPreview({ family, style, children, ...voltraViewProps }) {
|
|
34
|
-
const dimensions = WIDGET_DIMENSIONS[family];
|
|
35
|
-
const previewStyle = [
|
|
36
|
-
{
|
|
37
|
-
width: dimensions.width,
|
|
38
|
-
height: dimensions.height,
|
|
39
|
-
},
|
|
40
|
-
style,
|
|
41
|
-
];
|
|
42
|
-
return (_jsx(VoltraView, { ...voltraViewProps, style: previewStyle, children: children }));
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=VoltraWidgetPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraWidgetPreview.js","sourceRoot":"","sources":["../../../src/components/VoltraWidgetPreview.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAE7D;;;GAGG;AACH,MAAM,iBAAiB,GAA4D;IACjF,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACxC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACzC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACxC,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,uBAAuB;IACtE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5C,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAChD,eAAe,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc;CAC5D,CAAA;AAaD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,eAAe,EAA4B;IAC3G,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAyB;QACzC;YACE,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B;QACD,KAAK;KACN,CAAA;IAED,OAAO,CACL,KAAC,UAAU,OAAK,eAAe,EAAE,KAAK,EAAE,YAAY,YACjD,QAAQ,GACE,CACd,CAAA;AACH,CAAC"}
|
package/build/esm/events.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Platform } from 'react-native';
|
|
2
|
-
import VoltraModule from './VoltraModule.js';
|
|
3
|
-
const noopSubscription = {
|
|
4
|
-
remove: () => { },
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Add a listener for Voltra events.
|
|
8
|
-
*
|
|
9
|
-
* Supported events:
|
|
10
|
-
* - `interaction`: User interactions with widgets (buttons, switches, checkboxes) (iOS only)
|
|
11
|
-
* - `stateChange`: Live Activity state changes (iOS only)
|
|
12
|
-
* - `activityTokenReceived`: Push token for Live Activity (iOS only)
|
|
13
|
-
* - `activityPushToStartTokenReceived`: Push-to-start token (iOS only)
|
|
14
|
-
*
|
|
15
|
-
* Note: On Android, interactions open the app directly (optionally via deep links)
|
|
16
|
-
* instead of emitting background events.
|
|
17
|
-
*
|
|
18
|
-
* @param event The event type to listen for
|
|
19
|
-
* @param listener Callback function to handle the event
|
|
20
|
-
* @returns EventSubscription with a remove() method to unsubscribe
|
|
21
|
-
*/
|
|
22
|
-
export function addVoltraListener(event, listener) {
|
|
23
|
-
if (Platform.OS !== 'ios') {
|
|
24
|
-
console.warn(`[Voltra] Event '${event}' is only supported on iOS. Returning no-op subscription.`);
|
|
25
|
-
return noopSubscription;
|
|
26
|
-
}
|
|
27
|
-
return VoltraModule.addListener(event, listener);
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=events.js.map
|
package/build/esm/events.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAGvC,OAAO,YAAY,MAAM,mBAAmB,CAAA;AA6B5C,MAAM,gBAAgB,GAAsB;IAC1C,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;CACjB,CAAA;AASD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAQ,EACR,QAA4C;IAE5C,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,2DAA2D,CAAC,CAAA;QACjG,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,OAAO,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAClD,CAAC"}
|
package/build/esm/helpers.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Platform } from 'react-native';
|
|
2
|
-
import VoltraModule from './VoltraModule.js';
|
|
3
|
-
/**
|
|
4
|
-
* Return whether Liquid Glass APIs are supported on this device (iOS 26+).
|
|
5
|
-
* This is a convenience gate for authoring fallbacks in JS.
|
|
6
|
-
*/
|
|
7
|
-
export function isGlassSupported() {
|
|
8
|
-
if (Platform.OS !== 'ios')
|
|
9
|
-
return false;
|
|
10
|
-
const v = Platform.Version;
|
|
11
|
-
let major = 0;
|
|
12
|
-
if (typeof v === 'string') {
|
|
13
|
-
const m = parseInt(v.split('.')[0] || '0', 10);
|
|
14
|
-
if (!Number.isNaN(m))
|
|
15
|
-
major = m;
|
|
16
|
-
}
|
|
17
|
-
else if (typeof v === 'number') {
|
|
18
|
-
major = Math.floor(v);
|
|
19
|
-
}
|
|
20
|
-
return major >= 26;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Return whether the app was launched in the background (headless).
|
|
24
|
-
* Returns true if the app was launched in background, false if launched in foreground.
|
|
25
|
-
* Always returns false on non-iOS platforms.
|
|
26
|
-
*/
|
|
27
|
-
export function isHeadless() {
|
|
28
|
-
if (Platform.OS !== 'ios')
|
|
29
|
-
return false;
|
|
30
|
-
return VoltraModule.isHeadless?.() ?? false;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=helpers.js.map
|
package/build/esm/helpers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAE5C;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACvC,MAAM,CAAC,GAAQ,QAAQ,CAAC,OAAO,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,KAAK,GAAG,CAAC,CAAA;IACjC,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,KAAK,IAAI,EAAE,CAAA;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACvC,OAAO,YAAY,CAAC,UAAU,EAAE,EAAE,IAAI,KAAK,CAAA;AAC7C,CAAC"}
|