@use-voltra/android 1.3.1 → 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/dynamic-colors.js +33 -0
- package/build/cjs/dynamic-colors.js.map +1 -0
- package/build/cjs/index.js +14 -1
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/internal.js +8 -0
- package/build/cjs/internal.js.map +1 -0
- package/build/cjs/jsx/AreaMark.js.map +1 -1
- package/build/cjs/jsx/BarMark.js.map +1 -1
- package/build/cjs/jsx/LineMark.js.map +1 -1
- package/build/cjs/jsx/PointMark.js.map +1 -1
- package/build/cjs/jsx/RuleMark.js.map +1 -1
- package/build/cjs/jsx/SectorMark.js.map +1 -1
- package/build/cjs/live-update/renderer.js +0 -15
- package/build/cjs/live-update/renderer.js.map +1 -1
- package/build/cjs/ongoing-notification/components.js +19 -0
- package/build/cjs/ongoing-notification/components.js.map +1 -0
- package/build/cjs/ongoing-notification/renderer.js +262 -0
- package/build/cjs/ongoing-notification/renderer.js.map +1 -0
- package/build/cjs/ongoing-notification/types.js +3 -0
- package/build/cjs/ongoing-notification/types.js.map +1 -0
- package/build/cjs/payload/component-ids.js +1 -0
- package/build/cjs/payload/component-ids.js.map +1 -1
- package/build/cjs/server.js +6 -3
- package/build/cjs/server.js.map +1 -1
- package/build/cjs/utils/index.js +0 -16
- package/build/cjs/utils/index.js.map +1 -1
- package/build/cjs/widgets/renderer.js +19 -5
- package/build/cjs/widgets/renderer.js.map +1 -1
- package/build/esm/dynamic-colors.js +30 -0
- package/build/esm/dynamic-colors.js.map +1 -0
- package/build/esm/index.js +5 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/internal.js +2 -0
- package/build/esm/internal.js.map +1 -0
- package/build/esm/jsx/AreaMark.js.map +1 -1
- package/build/esm/jsx/BarMark.js.map +1 -1
- package/build/esm/jsx/LineMark.js.map +1 -1
- package/build/esm/jsx/PointMark.js.map +1 -1
- package/build/esm/jsx/RuleMark.js.map +1 -1
- package/build/esm/jsx/SectorMark.js.map +1 -1
- package/build/esm/live-update/renderer.js +0 -15
- package/build/esm/live-update/renderer.js.map +1 -1
- package/build/esm/ongoing-notification/components.js +16 -0
- package/build/esm/ongoing-notification/components.js.map +1 -0
- package/build/esm/ongoing-notification/renderer.js +256 -0
- package/build/esm/ongoing-notification/renderer.js.map +1 -0
- package/build/esm/ongoing-notification/types.js +2 -0
- package/build/esm/ongoing-notification/types.js.map +1 -0
- package/build/esm/payload/component-ids.js +1 -0
- package/build/esm/payload/component-ids.js.map +1 -1
- package/build/esm/server.js +2 -1
- package/build/esm/server.js.map +1 -1
- package/build/esm/utils/index.js +1 -1
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/widgets/renderer.js +17 -4
- package/build/esm/widgets/renderer.js.map +1 -1
- package/build/types/dynamic-colors.d.ts +33 -0
- package/build/types/dynamic-colors.d.ts.map +1 -0
- package/build/types/index.d.ts +10 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/internal.d.ts +3 -0
- package/build/types/internal.d.ts.map +1 -0
- package/build/types/jsx/AreaMark.d.ts +2 -1
- package/build/types/jsx/AreaMark.d.ts.map +1 -1
- package/build/types/jsx/BarMark.d.ts +2 -1
- package/build/types/jsx/BarMark.d.ts.map +1 -1
- package/build/types/jsx/LineMark.d.ts +2 -1
- package/build/types/jsx/LineMark.d.ts.map +1 -1
- package/build/types/jsx/PointMark.d.ts +2 -1
- package/build/types/jsx/PointMark.d.ts.map +1 -1
- package/build/types/jsx/RuleMark.d.ts +2 -1
- package/build/types/jsx/RuleMark.d.ts.map +1 -1
- package/build/types/jsx/SectorMark.d.ts +2 -1
- package/build/types/jsx/SectorMark.d.ts.map +1 -1
- package/build/types/jsx/props/CheckBox.d.ts +3 -2
- package/build/types/jsx/props/CheckBox.d.ts.map +1 -1
- package/build/types/jsx/props/CircleIconButton.d.ts +3 -2
- package/build/types/jsx/props/CircleIconButton.d.ts.map +1 -1
- package/build/types/jsx/props/CircularProgressIndicator.d.ts +2 -1
- package/build/types/jsx/props/CircularProgressIndicator.d.ts.map +1 -1
- package/build/types/jsx/props/FilledButton.d.ts +3 -2
- package/build/types/jsx/props/FilledButton.d.ts.map +1 -1
- package/build/types/jsx/props/Image.d.ts +3 -2
- package/build/types/jsx/props/Image.d.ts.map +1 -1
- package/build/types/jsx/props/LinearProgressIndicator.d.ts +3 -2
- package/build/types/jsx/props/LinearProgressIndicator.d.ts.map +1 -1
- package/build/types/jsx/props/OutlineButton.d.ts +2 -1
- package/build/types/jsx/props/OutlineButton.d.ts.map +1 -1
- package/build/types/jsx/props/RadioButton.d.ts +3 -2
- package/build/types/jsx/props/RadioButton.d.ts.map +1 -1
- package/build/types/jsx/props/Scaffold.d.ts +2 -1
- package/build/types/jsx/props/Scaffold.d.ts.map +1 -1
- package/build/types/jsx/props/SquareIconButton.d.ts +3 -2
- package/build/types/jsx/props/SquareIconButton.d.ts.map +1 -1
- package/build/types/jsx/props/Switch.d.ts +5 -4
- package/build/types/jsx/props/Switch.d.ts.map +1 -1
- package/build/types/jsx/props/TitleBar.d.ts +3 -2
- package/build/types/jsx/props/TitleBar.d.ts.map +1 -1
- package/build/types/live-update/renderer.d.ts +0 -7
- package/build/types/live-update/renderer.d.ts.map +1 -1
- package/build/types/live-update/types.d.ts +0 -65
- package/build/types/live-update/types.d.ts.map +1 -1
- package/build/types/ongoing-notification/components.d.ts +18 -0
- package/build/types/ongoing-notification/components.d.ts.map +1 -0
- package/build/types/ongoing-notification/renderer.d.ts +6 -0
- package/build/types/ongoing-notification/renderer.d.ts.map +1 -0
- package/build/types/ongoing-notification/types.d.ts +160 -0
- package/build/types/ongoing-notification/types.d.ts.map +1 -0
- package/build/types/payload/component-ids.d.ts.map +1 -1
- package/build/types/server.d.ts +4 -1
- package/build/types/server.d.ts.map +1 -1
- package/build/types/styles/types.d.ts +5 -4
- package/build/types/styles/types.d.ts.map +1 -1
- package/build/types/types.d.ts +22 -1
- package/build/types/types.d.ts.map +1 -1
- package/build/types/utils/index.d.ts +0 -1
- package/build/types/utils/index.d.ts.map +1 -1
- package/build/types/widgets/renderer.d.ts +8 -2
- package/build/types/widgets/renderer.d.ts.map +1 -1
- package/package.json +9 -11
- package/build/cjs/VoltraModule.js +0 -6
- package/build/cjs/VoltraModule.js.map +0 -1
- package/build/cjs/client.js +0 -34
- package/build/cjs/client.js.map +0 -1
- package/build/cjs/components/VoltraView.js +0 -48
- package/build/cjs/components/VoltraView.js.map +0 -1
- package/build/cjs/components/VoltraWidgetPreview.js +0 -28
- 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/live-update/api.js +0 -215
- package/build/cjs/live-update/api.js.map +0 -1
- package/build/cjs/preload.js +0 -80
- package/build/cjs/preload.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/api.js +0 -155
- package/build/cjs/widgets/api.js.map +0 -1
- package/build/cjs/widgets/index.js +0 -12
- package/build/cjs/widgets/index.js.map +0 -1
- package/build/cjs/widgets/server-credentials.js +0 -31
- package/build/cjs/widgets/server-credentials.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 -12
- package/build/esm/client.js.map +0 -1
- package/build/esm/components/VoltraView.js +0 -45
- package/build/esm/components/VoltraView.js.map +0 -1
- package/build/esm/components/VoltraWidgetPreview.js +0 -25
- 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/live-update/api.js +0 -203
- package/build/esm/live-update/api.js.map +0 -1
- package/build/esm/preload.js +0 -72
- package/build/esm/preload.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/api.js +0 -143
- package/build/esm/widgets/api.js.map +0 -1
- package/build/esm/widgets/index.js +0 -3
- package/build/esm/widgets/index.js.map +0 -1
- package/build/esm/widgets/server-credentials.js +0 -24
- package/build/esm/widgets/server-credentials.js.map +0 -1
- package/build/types/VoltraModule.d.ts +0 -30
- package/build/types/VoltraModule.d.ts.map +0 -1
- package/build/types/client.d.ts +0 -9
- package/build/types/client.d.ts.map +0 -1
- package/build/types/components/VoltraView.d.ts +0 -29
- package/build/types/components/VoltraView.d.ts.map +0 -1
- package/build/types/components/VoltraWidgetPreview.d.ts +0 -21
- 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/live-update/api.d.ts +0 -126
- package/build/types/live-update/api.d.ts.map +0 -1
- package/build/types/preload.d.ts +0 -45
- package/build/types/preload.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/api.d.ts +0 -131
- package/build/types/widgets/api.d.ts.map +0 -1
- package/build/types/widgets/index.d.ts +0 -3
- package/build/types/widgets/index.d.ts.map +0 -1
- package/build/types/widgets/server-credentials.d.ts +0 -18
- package/build/types/widgets/server-credentials.d.ts.map +0 -1
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"}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
-
import { useUpdateOnHMR } from '../utils/index.js';
|
|
3
|
-
import VoltraModule from '../VoltraModule.js';
|
|
4
|
-
import { renderAndroidLiveUpdateToString } from './renderer.js';
|
|
5
|
-
/**
|
|
6
|
-
* @unstable This API is experimental and may change in future versions.
|
|
7
|
-
*
|
|
8
|
-
* React hook for managing Android Live Updates with automatic lifecycle handling.
|
|
9
|
-
*
|
|
10
|
-
* @param variants - The Android Live Update content variants to display
|
|
11
|
-
* @param options - Configuration options for the hook
|
|
12
|
-
* @returns Object with start, update, end methods and isActive state
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```tsx
|
|
16
|
-
* import { VoltraAndroid, useAndroidLiveUpdate } from 'voltra'
|
|
17
|
-
*
|
|
18
|
-
* const MyLiveUpdate = () => {
|
|
19
|
-
* const { start, update, end, isActive } = useAndroidLiveUpdate({
|
|
20
|
-
* collapsed: <VoltraAndroid.Text>Delivery arriving</VoltraAndroid.Text>,
|
|
21
|
-
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
22
|
-
* channelId: 'delivery_updates',
|
|
23
|
-
* }, {
|
|
24
|
-
* updateName: 'my-live-update',
|
|
25
|
-
* autoStart: true,
|
|
26
|
-
* autoUpdate: true
|
|
27
|
-
* })
|
|
28
|
-
*
|
|
29
|
-
* return (
|
|
30
|
-
* <View>
|
|
31
|
-
* <Button title={isActive ? "Stop" : "Start"} onPress={isActive ? end : start} />
|
|
32
|
-
* </View>
|
|
33
|
-
* )
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export const useAndroidLiveUpdate = (variants, options) => {
|
|
38
|
-
const [targetId, setTargetId] = useState(() => {
|
|
39
|
-
if (options?.updateName) {
|
|
40
|
-
return isAndroidLiveUpdateActive(options.updateName) ? options.updateName : null;
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
});
|
|
44
|
-
const isActive = targetId !== null;
|
|
45
|
-
const optionsRef = useRef(options);
|
|
46
|
-
const variantsRef = useRef(variants);
|
|
47
|
-
const lastUpdateOptionsRef = useRef(undefined);
|
|
48
|
-
// Update refs when values change
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
optionsRef.current = options;
|
|
51
|
-
}, [options]);
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
variantsRef.current = variants;
|
|
54
|
-
}, [variants]);
|
|
55
|
-
useUpdateOnHMR();
|
|
56
|
-
const start = useCallback(async (options) => {
|
|
57
|
-
const id = await startAndroidLiveUpdate(variantsRef.current, {
|
|
58
|
-
...optionsRef.current,
|
|
59
|
-
...options,
|
|
60
|
-
});
|
|
61
|
-
setTargetId(id);
|
|
62
|
-
}, []);
|
|
63
|
-
const update = useCallback(async (options) => {
|
|
64
|
-
if (!targetId) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
const updateOptions = { ...optionsRef.current, ...options };
|
|
68
|
-
lastUpdateOptionsRef.current = updateOptions;
|
|
69
|
-
await updateAndroidLiveUpdate(targetId, variantsRef.current, updateOptions);
|
|
70
|
-
}, [targetId]);
|
|
71
|
-
const end = useCallback(async () => {
|
|
72
|
-
if (!targetId) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
await stopAndroidLiveUpdate(targetId);
|
|
76
|
-
setTargetId(null);
|
|
77
|
-
}, [targetId]);
|
|
78
|
-
useEffect(() => {
|
|
79
|
-
if (!options?.autoStart) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
start();
|
|
83
|
-
}, [options?.autoStart, start]);
|
|
84
|
-
useEffect(() => {
|
|
85
|
-
if (!options?.autoUpdate)
|
|
86
|
-
return;
|
|
87
|
-
update(lastUpdateOptionsRef.current);
|
|
88
|
-
}, [options?.autoUpdate, update, variants]);
|
|
89
|
-
return {
|
|
90
|
-
start,
|
|
91
|
-
update,
|
|
92
|
-
end,
|
|
93
|
-
isActive,
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* @unstable This API is experimental and may change in future versions.
|
|
98
|
-
*
|
|
99
|
-
* Start a new Android Live Update with the provided content variants.
|
|
100
|
-
*
|
|
101
|
-
* @param variants - The Android Live Update content variants to display
|
|
102
|
-
* @param options - Configuration options for the Live Update
|
|
103
|
-
* @returns Promise resolving to the notification ID
|
|
104
|
-
*
|
|
105
|
-
* @example
|
|
106
|
-
* ```tsx
|
|
107
|
-
* import { VoltraAndroid, startAndroidLiveUpdate } from 'voltra'
|
|
108
|
-
*
|
|
109
|
-
* const notificationId = await startAndroidLiveUpdate({
|
|
110
|
-
* collapsed: <VoltraAndroid.Text>Delivery arriving</VoltraAndroid.Text>,
|
|
111
|
-
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
112
|
-
* channelId: 'delivery_updates',
|
|
113
|
-
* }, {
|
|
114
|
-
* updateName: 'my-live-update',
|
|
115
|
-
* })
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
export const startAndroidLiveUpdate = async (variants, options) => {
|
|
119
|
-
const payload = renderAndroidLiveUpdateToString(variants);
|
|
120
|
-
const notificationId = await VoltraModule.startAndroidLiveUpdate(payload, {
|
|
121
|
-
updateName: options?.updateName,
|
|
122
|
-
channelId: options?.channelId || variants.channelId || 'voltra_live_updates',
|
|
123
|
-
});
|
|
124
|
-
return notificationId;
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
* @unstable This API is experimental and may change in future versions.
|
|
128
|
-
*
|
|
129
|
-
* Update an existing Android Live Update with new content.
|
|
130
|
-
*
|
|
131
|
-
* @param notificationId - The ID of the notification to update
|
|
132
|
-
* @param variants - The new Android Live Update content variants
|
|
133
|
-
* @param options - Update options
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
* ```tsx
|
|
137
|
-
* import { VoltraAndroid, updateAndroidLiveUpdate } from 'voltra'
|
|
138
|
-
*
|
|
139
|
-
* await updateAndroidLiveUpdate('notification-123', {
|
|
140
|
-
* collapsed: <VoltraAndroid.Text>Updated: Delivery arriving</VoltraAndroid.Text>,
|
|
141
|
-
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
142
|
-
* })
|
|
143
|
-
* ```
|
|
144
|
-
*/
|
|
145
|
-
export const updateAndroidLiveUpdate = async (notificationId, variants, options) => {
|
|
146
|
-
const payload = renderAndroidLiveUpdateToString(variants);
|
|
147
|
-
return VoltraModule.updateAndroidLiveUpdate(notificationId, payload);
|
|
148
|
-
};
|
|
149
|
-
/**
|
|
150
|
-
* @unstable This API is experimental and may change in future versions.
|
|
151
|
-
*
|
|
152
|
-
* Stop an Android Live Update and dismiss the notification.
|
|
153
|
-
*
|
|
154
|
-
* @param notificationId - The ID of the notification to stop
|
|
155
|
-
*
|
|
156
|
-
* @example
|
|
157
|
-
* ```tsx
|
|
158
|
-
* import { stopAndroidLiveUpdate } from 'voltra'
|
|
159
|
-
*
|
|
160
|
-
* await stopAndroidLiveUpdate('notification-123')
|
|
161
|
-
* ```
|
|
162
|
-
*/
|
|
163
|
-
export const stopAndroidLiveUpdate = async (notificationId) => {
|
|
164
|
-
return VoltraModule.stopAndroidLiveUpdate(notificationId);
|
|
165
|
-
};
|
|
166
|
-
/**
|
|
167
|
-
* @unstable This API is experimental and may change in future versions.
|
|
168
|
-
*
|
|
169
|
-
* Check if an Android Live Update with the given name is currently active.
|
|
170
|
-
*
|
|
171
|
-
* @param updateName - The name of the Live Update to check
|
|
172
|
-
* @returns true if the update is active, false otherwise
|
|
173
|
-
*
|
|
174
|
-
* @example
|
|
175
|
-
* ```tsx
|
|
176
|
-
* import { isAndroidLiveUpdateActive } from 'voltra'
|
|
177
|
-
*
|
|
178
|
-
* if (isAndroidLiveUpdateActive('my-live-update')) {
|
|
179
|
-
* console.log('Update is running')
|
|
180
|
-
* }
|
|
181
|
-
* ```
|
|
182
|
-
*/
|
|
183
|
-
export const isAndroidLiveUpdateActive = (updateName) => {
|
|
184
|
-
return VoltraModule.isAndroidLiveUpdateActive(updateName);
|
|
185
|
-
};
|
|
186
|
-
/**
|
|
187
|
-
* @unstable This API is experimental and may change in future versions.
|
|
188
|
-
*
|
|
189
|
-
* End all active Android Live Updates.
|
|
190
|
-
*
|
|
191
|
-
* This function stops and dismisses all currently running Live Updates in the app.
|
|
192
|
-
*
|
|
193
|
-
* @example
|
|
194
|
-
* ```tsx
|
|
195
|
-
* import { endAllAndroidLiveUpdates } from 'voltra'
|
|
196
|
-
*
|
|
197
|
-
* await endAllAndroidLiveUpdates()
|
|
198
|
-
* ```
|
|
199
|
-
*/
|
|
200
|
-
export async function endAllAndroidLiveUpdates() {
|
|
201
|
-
return VoltraModule.endAllAndroidLiveUpdates();
|
|
202
|
-
}
|
|
203
|
-
//# sourceMappingURL=api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/live-update/api.ts"],"names":[],"mappings":"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"}
|
package/build/esm/preload.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import VoltraModule from './VoltraModule.js';
|
|
2
|
-
/**
|
|
3
|
-
* Preload images to Android cache for use in Widgets.
|
|
4
|
-
*
|
|
5
|
-
* Downloaded images are stored in the app's cache directory and exposed via FileProvider.
|
|
6
|
-
* Images can then be referenced using the `assetName` property in the Image component.
|
|
7
|
-
*
|
|
8
|
-
* @param images - Array of images to preload
|
|
9
|
-
* @returns Result indicating which images succeeded or failed
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const result = await preloadImages([
|
|
14
|
-
* {
|
|
15
|
-
* url: 'https://example.com/album-art.jpg',
|
|
16
|
-
* key: 'current-album',
|
|
17
|
-
* headers: { 'Authorization': 'Bearer token' }
|
|
18
|
-
* }
|
|
19
|
-
* ])
|
|
20
|
-
*
|
|
21
|
-
* // Use in Android Widget
|
|
22
|
-
* <VoltraAndroid.Image source={{ assetName: 'current-album' }} />
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export async function preloadImages(images) {
|
|
26
|
-
try {
|
|
27
|
-
return await VoltraModule.preloadImages(images);
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
return {
|
|
31
|
-
succeeded: [],
|
|
32
|
-
failed: images.map((img) => ({
|
|
33
|
-
key: img.key,
|
|
34
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
35
|
-
})),
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Clear preloaded images from Android cache.
|
|
41
|
-
*
|
|
42
|
-
* @param keys - Optional array of image keys to clear. If omitted, clears all preloaded images.
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* // Clear specific images
|
|
47
|
-
* await clearPreloadedImages(['album-art', 'profile-pic'])
|
|
48
|
-
*
|
|
49
|
-
* // Clear all preloaded images
|
|
50
|
-
* await clearPreloadedImages()
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
export async function clearPreloadedImages(keys) {
|
|
54
|
-
try {
|
|
55
|
-
await VoltraModule.clearPreloadedImages(keys ?? null);
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
console.error('Failed to clear preloaded images:', error);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Reload Android Widgets. (Alias for reloadAndroidWidgets)
|
|
63
|
-
*/
|
|
64
|
-
export async function reloadWidgets(widgetIds) {
|
|
65
|
-
try {
|
|
66
|
-
await VoltraModule.reloadAndroidWidgets(widgetIds ?? null);
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
console.error('Failed to reload Android widgets:', error);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=preload.js.map
|
package/build/esm/preload.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/preload.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA6B;IAC/D,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAe;IACxD,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,oBAAoB,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAoB;IACtD,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,oBAAoB,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react';
|
|
2
|
-
/**
|
|
3
|
-
* Taps into the HMR accept function to forcefully re-render the component when any module is updated.
|
|
4
|
-
* Is only available in development mode.
|
|
5
|
-
*/
|
|
6
|
-
export const useUpdateOnHMR = () => {
|
|
7
|
-
const [, forceUpdate] = useState(0);
|
|
8
|
-
useEffect(() => {
|
|
9
|
-
if (!__DEV__) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
// Override the accept function to forcefully re-render when any module is updated
|
|
13
|
-
const oldAccept = global['__accept'];
|
|
14
|
-
global['__accept'] = (...args) => {
|
|
15
|
-
forceUpdate((prev) => prev + 1);
|
|
16
|
-
oldAccept?.(...args);
|
|
17
|
-
};
|
|
18
|
-
return () => {
|
|
19
|
-
global['__accept'] = oldAccept;
|
|
20
|
-
};
|
|
21
|
-
}, []);
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=useUpdateOnHMR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateOnHMR.js","sourceRoot":"","sources":["../../../src/utils/useUpdateOnHMR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAO3C;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QAED,kFAAkF;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;YAC/B,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YAC/B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;QACtB,CAAC,CAAA;QAED,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;QAChC,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA"}
|
package/build/esm/widgets/api.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import VoltraModule from '../VoltraModule.js';
|
|
2
|
-
import { renderAndroidWidgetToString } from './renderer.js';
|
|
3
|
-
/**
|
|
4
|
-
* Update an Android home screen widget with new content.
|
|
5
|
-
*
|
|
6
|
-
* The content will be stored in SharedPreferences and the widget
|
|
7
|
-
* will be updated to display the new content.
|
|
8
|
-
*
|
|
9
|
-
* @param widgetId - The widget identifier
|
|
10
|
-
* @param variants - An array of size variants with their breakpoints and content.
|
|
11
|
-
* Android will automatically select the best matching variant based on the
|
|
12
|
-
* actual widget dimensions.
|
|
13
|
-
* @param options - Optional settings like deep link URL
|
|
14
|
-
*
|
|
15
|
-
* @example Different content per size
|
|
16
|
-
* ```tsx
|
|
17
|
-
* import { VoltraAndroid, updateAndroidWidget } from 'voltra'
|
|
18
|
-
*
|
|
19
|
-
* await updateAndroidWidget('weather', [
|
|
20
|
-
* {
|
|
21
|
-
* size: { width: 150, height: 100 },
|
|
22
|
-
* content: <VoltraAndroid.Text fontSize={32}>72°F</VoltraAndroid.Text>
|
|
23
|
-
* },
|
|
24
|
-
* {
|
|
25
|
-
* size: { width: 250, height: 150 },
|
|
26
|
-
* content: (
|
|
27
|
-
* <VoltraAndroid.Row>
|
|
28
|
-
* <VoltraAndroid.Text fontSize={32}>72°F</VoltraAndroid.Text>
|
|
29
|
-
* <VoltraAndroid.Column>
|
|
30
|
-
* <VoltraAndroid.Text>Sunny</VoltraAndroid.Text>
|
|
31
|
-
* <VoltraAndroid.Text>High: 78° Low: 65°</VoltraAndroid.Text>
|
|
32
|
-
* </VoltraAndroid.Column>
|
|
33
|
-
* </VoltraAndroid.Row>
|
|
34
|
-
* )
|
|
35
|
-
* }
|
|
36
|
-
* ], { deepLinkUrl: '/weather' })
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export const updateAndroidWidget = async (widgetId, variants, options) => {
|
|
40
|
-
const payload = renderAndroidWidgetToString(variants);
|
|
41
|
-
return VoltraModule.updateAndroidWidget(widgetId, payload, {
|
|
42
|
-
deepLinkUrl: options?.deepLinkUrl,
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Reload widget timelines to refresh their content.
|
|
47
|
-
*
|
|
48
|
-
* Use this after updating data that widgets depend on (e.g., after preloading
|
|
49
|
-
* new images) to force them to re-render.
|
|
50
|
-
*
|
|
51
|
-
* @param widgetIds - Optional array of widget IDs to reload. If omitted, reloads all widgets.
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* ```typescript
|
|
55
|
-
* // Reload specific widgets
|
|
56
|
-
* await reloadAndroidWidgets(['weather', 'calendar'])
|
|
57
|
-
*
|
|
58
|
-
* // Reload all widgets
|
|
59
|
-
* await reloadAndroidWidgets()
|
|
60
|
-
* ```
|
|
61
|
-
*/
|
|
62
|
-
export const reloadAndroidWidgets = async (widgetIds) => {
|
|
63
|
-
return VoltraModule.reloadAndroidWidgets(widgetIds ?? null);
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Clear a widget's stored data.
|
|
67
|
-
*
|
|
68
|
-
* This removes the JSON content and deep link URL for the specified widget,
|
|
69
|
-
* causing it to show its placeholder state.
|
|
70
|
-
*
|
|
71
|
-
* @param widgetId - The widget identifier to clear
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* await clearAndroidWidget('weather')
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
export const clearAndroidWidget = async (widgetId) => {
|
|
79
|
-
return VoltraModule.clearAndroidWidget(widgetId);
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* Clear all widgets' stored data.
|
|
83
|
-
*
|
|
84
|
-
* This removes the JSON content and deep link URLs for all configured widgets,
|
|
85
|
-
* causing them to show their placeholder states.
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* await clearAllAndroidWidgets()
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
export const clearAllAndroidWidgets = async () => {
|
|
93
|
-
return VoltraModule.clearAllAndroidWidgets();
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* Request to pin a widget to the home screen.
|
|
97
|
-
*
|
|
98
|
-
* This will show the Android system pin widget dialog, allowing the user
|
|
99
|
-
* to add the widget to their home screen. Optionally, you can provide
|
|
100
|
-
* preview dimensions to show a preview of the widget in the pin dialog.
|
|
101
|
-
*
|
|
102
|
-
* See: https://developer.android.com/develop/ui/compose/glance/pin-in-app
|
|
103
|
-
*
|
|
104
|
-
* @param widgetId - The widget identifier to pin
|
|
105
|
-
* @param options - Optional settings for the pin request
|
|
106
|
-
* @param options.previewWidth - Optional preview width in dp (default: 245)
|
|
107
|
-
* @param options.previewHeight - Optional preview height in dp (default: 115)
|
|
108
|
-
* @returns Promise that resolves to true if the pin request was successful
|
|
109
|
-
*
|
|
110
|
-
* @example Basic usage
|
|
111
|
-
* ```typescript
|
|
112
|
-
* const success = await requestPinAndroidWidget('weather')
|
|
113
|
-
* if (success) {
|
|
114
|
-
* console.log('Widget pin request sent')
|
|
115
|
-
* }
|
|
116
|
-
* ```
|
|
117
|
-
*
|
|
118
|
-
* @example With preview dimensions
|
|
119
|
-
* ```typescript
|
|
120
|
-
* const success = await requestPinAndroidWidget('weather', {
|
|
121
|
-
* previewWidth: 245,
|
|
122
|
-
* previewHeight: 115
|
|
123
|
-
* })
|
|
124
|
-
* ```
|
|
125
|
-
*/
|
|
126
|
-
export const requestPinAndroidWidget = async (widgetId, options) => {
|
|
127
|
-
return VoltraModule.requestPinGlanceAppWidget(widgetId, options);
|
|
128
|
-
};
|
|
129
|
-
/**
|
|
130
|
-
* Fetches all active widget instances for the containing app on Android.
|
|
131
|
-
*
|
|
132
|
-
* @returns A promise that resolves to an array of active widget instances.
|
|
133
|
-
*
|
|
134
|
-
* @example
|
|
135
|
-
* ```typescript
|
|
136
|
-
* const widgets = await getActiveWidgets()
|
|
137
|
-
* console.log('Active widgets:', widgets)
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
|
-
export const getActiveWidgets = async () => {
|
|
141
|
-
return VoltraModule.getActiveWidgets();
|
|
142
|
-
};
|
|
143
|
-
//# sourceMappingURL=api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/widgets/api.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAY3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,QAAgB,EAChB,QAA+B,EAC/B,OAAoC,EACrB,EAAE;IACjB,MAAM,OAAO,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IAErD,OAAO,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE;QACzD,WAAW,EAAE,OAAO,EAAE,WAAW;KAClC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAoB,EAAiB,EAAE;IAChF,OAAO,YAAY,CAAC,oBAAoB,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAC1E,OAAO,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,IAAmB,EAAE;IAC9D,OAAO,YAAY,CAAC,sBAAsB,EAAE,CAAA;AAC9C,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,QAAgB,EAChB,OAA2D,EACzC,EAAE;IACpB,OAAO,YAAY,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAA2B,EAAE;IAChE,OAAO,YAAY,CAAC,gBAAgB,EAAE,CAAA;AACxC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAA"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import VoltraModule from '../VoltraModule.js';
|
|
2
|
-
/**
|
|
3
|
-
* Store server credentials for Android widget server-driven updates.
|
|
4
|
-
*
|
|
5
|
-
* Credentials are stored in DataStore, which is
|
|
6
|
-
* automatically accessible by the widget's WorkManager background worker.
|
|
7
|
-
*
|
|
8
|
-
* @param credentials - The server credentials to store
|
|
9
|
-
*/
|
|
10
|
-
export async function setWidgetServerCredentials(credentials) {
|
|
11
|
-
if (!credentials.token) {
|
|
12
|
-
throw new Error('[Voltra] [Android] setWidgetServerCredentials: token is required');
|
|
13
|
-
}
|
|
14
|
-
return VoltraModule.setWidgetServerCredentials(credentials);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Clear stored server credentials for Android widget updates.
|
|
18
|
-
* All widgets are automatically reloaded after clearing credentials so they
|
|
19
|
-
* revert to their default/unauthenticated state.
|
|
20
|
-
*/
|
|
21
|
-
export async function clearWidgetServerCredentials() {
|
|
22
|
-
return VoltraModule.clearWidgetServerCredentials();
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=server-credentials.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-credentials.js","sourceRoot":"","sources":["../../../src/widgets/server-credentials.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAK7C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,WAAoC;IACnF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAA;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,OAAO,YAAY,CAAC,4BAA4B,EAAE,CAAA;AACpD,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { EventSubscription, PreloadImageOptions, PreloadImagesResult, WidgetServerCredentials } from './types.js';
|
|
2
|
-
export interface VoltraAndroidModuleSpec {
|
|
3
|
-
startAndroidLiveUpdate(payload: string, options: {
|
|
4
|
-
updateName?: string;
|
|
5
|
-
channelId?: string;
|
|
6
|
-
}): Promise<string>;
|
|
7
|
-
updateAndroidLiveUpdate(notificationId: string, payload: string): Promise<void>;
|
|
8
|
-
stopAndroidLiveUpdate(notificationId: string): Promise<void>;
|
|
9
|
-
isAndroidLiveUpdateActive(updateName: string): boolean;
|
|
10
|
-
endAllAndroidLiveUpdates(): Promise<void>;
|
|
11
|
-
updateAndroidWidget(widgetId: string, jsonString: string, options?: {
|
|
12
|
-
deepLinkUrl?: string;
|
|
13
|
-
}): Promise<void>;
|
|
14
|
-
reloadAndroidWidgets(widgetIds?: string[] | null): Promise<void>;
|
|
15
|
-
clearAndroidWidget(widgetId: string): Promise<void>;
|
|
16
|
-
clearAllAndroidWidgets(): Promise<void>;
|
|
17
|
-
requestPinGlanceAppWidget(widgetId: string, options?: {
|
|
18
|
-
previewWidth?: number;
|
|
19
|
-
previewHeight?: number;
|
|
20
|
-
}): Promise<boolean>;
|
|
21
|
-
preloadImages(images: PreloadImageOptions[]): Promise<PreloadImagesResult>;
|
|
22
|
-
clearPreloadedImages(keys?: string[] | null): Promise<void>;
|
|
23
|
-
setWidgetServerCredentials(credentials: WidgetServerCredentials): Promise<void>;
|
|
24
|
-
clearWidgetServerCredentials(): Promise<void>;
|
|
25
|
-
getActiveWidgets<T = any>(): Promise<T[]>;
|
|
26
|
-
addListener(event: string, listener: (event: any) => void): EventSubscription;
|
|
27
|
-
}
|
|
28
|
-
declare const VoltraModule: VoltraAndroidModuleSpec;
|
|
29
|
-
export default VoltraModule;
|
|
30
|
-
//# sourceMappingURL=VoltraModule.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraModule.d.ts","sourceRoot":"","sources":["../../src/VoltraModule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEtH,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9G,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;IACtD,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5G,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,yBAAyB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1D,OAAO,CAAC,OAAO,CAAC,CAAA;IACnB,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC1E,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,0BAA0B,CAAC,WAAW,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,gBAAgB,CAAC,CAAC,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACzC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,iBAAiB,CAAA;CAC9E;AAED,QAAA,MAAM,YAAY,yBAA+D,CAAA;AAEjF,eAAe,YAAY,CAAA"}
|
package/build/types/client.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { endAllAndroidLiveUpdates, isAndroidLiveUpdateActive, startAndroidLiveUpdate, stopAndroidLiveUpdate, updateAndroidLiveUpdate, useAndroidLiveUpdate, } from './live-update/api.js';
|
|
2
|
-
export type { AndroidLiveUpdateJson, AndroidLiveUpdateVariants, AndroidLiveUpdateVariantsJson, StartAndroidLiveUpdateOptions, UpdateAndroidLiveUpdateOptions, UseAndroidLiveUpdateOptions, UseAndroidLiveUpdateResult, } from './live-update/types.js';
|
|
3
|
-
export { clearAllAndroidWidgets, clearAndroidWidget, getActiveWidgets, reloadAndroidWidgets, requestPinAndroidWidget, updateAndroidWidget, } from './widgets/api.js';
|
|
4
|
-
export type { AndroidWidgetSize, AndroidWidgetSizeVariant, AndroidWidgetVariants, UpdateAndroidWidgetOptions, WidgetInfo, } from './widgets/types.js';
|
|
5
|
-
export { clearWidgetServerCredentials, setWidgetServerCredentials, type WidgetServerCredentials, } from './widgets/server-credentials.js';
|
|
6
|
-
export { clearPreloadedImages, preloadImages, reloadWidgets } from './preload.js';
|
|
7
|
-
export { VoltraView, type VoltraViewProps } from './components/VoltraView.js';
|
|
8
|
-
export { type AndroidWidgetFamily, VoltraWidgetPreview, type VoltraWidgetPreviewProps, } from './components/VoltraWidgetPreview.js';
|
|
9
|
-
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,UAAU,GACX,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAA;AAGxC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,qCAAqC,CAAA"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
-
import { VoltraInteractionEvent } from '../events.js';
|
|
4
|
-
export type VoltraViewProps = {
|
|
5
|
-
/**
|
|
6
|
-
* Unique identifier for this view instance.
|
|
7
|
-
* Used as 'source' in interaction events to identify which view triggered the event.
|
|
8
|
-
* If not provided, a unique ID will be generated automatically.
|
|
9
|
-
*/
|
|
10
|
-
id?: string;
|
|
11
|
-
/**
|
|
12
|
-
* Voltra JSX components to render
|
|
13
|
-
*/
|
|
14
|
-
children: ReactNode;
|
|
15
|
-
/**
|
|
16
|
-
* Style for the view container
|
|
17
|
-
*/
|
|
18
|
-
style?: StyleProp<ViewStyle>;
|
|
19
|
-
/**
|
|
20
|
-
* Callback when user interacts with components in the view.
|
|
21
|
-
* Events are filtered by this view's id (source).
|
|
22
|
-
*/
|
|
23
|
-
onInteraction?: (event: VoltraInteractionEvent) => void;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* A React Native component that renders Voltra UI for Android using Jetpack Compose.
|
|
27
|
-
*/
|
|
28
|
-
export declare function VoltraView({ id, children, style, onInteraction }: VoltraViewProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
-
//# sourceMappingURL=VoltraView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraView.d.ts","sourceRoot":"","sources":["../../../src/components/VoltraView.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,SAAS,EAAsB,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAqB,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAQxE,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACxD,CAAA;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,eAAe,2CAsCjF"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
-
import { VoltraViewProps } from './VoltraView.js';
|
|
3
|
-
/**
|
|
4
|
-
* Android-specific widget sizes in dp.
|
|
5
|
-
*/
|
|
6
|
-
export type AndroidWidgetFamily = 'small' | 'mediumSquare' | 'mediumWide' | 'mediumTall' | 'large' | 'extraLarge';
|
|
7
|
-
export type VoltraWidgetPreviewProps = Omit<VoltraViewProps, 'style'> & {
|
|
8
|
-
/**
|
|
9
|
-
* Android widget size to preview
|
|
10
|
-
*/
|
|
11
|
-
family: AndroidWidgetFamily;
|
|
12
|
-
/**
|
|
13
|
-
* Additional styles to apply on top of the widget dimensions
|
|
14
|
-
*/
|
|
15
|
-
style?: StyleProp<ViewStyle>;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* A preview component that renders Voltra Android JSX content at specific dimensions.
|
|
19
|
-
*/
|
|
20
|
-
export declare function VoltraWidgetPreview({ family, style, children, ...voltraViewProps }: VoltraWidgetPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
-
//# sourceMappingURL=VoltraWidgetPreview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraWidgetPreview.d.ts","sourceRoot":"","sources":["../../../src/components/VoltraWidgetPreview.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAc,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE7D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,YAAY,CAAA;AAWjH,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG;IACtE;;OAEG;IACH,MAAM,EAAE,mBAAmB,CAAA;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,EAAE,wBAAwB,2CAe5G"}
|