@use-voltra/android 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.
Files changed (186) hide show
  1. package/build/cjs/dynamic-colors.js +33 -0
  2. package/build/cjs/dynamic-colors.js.map +1 -0
  3. package/build/cjs/index.js +14 -1
  4. package/build/cjs/index.js.map +1 -1
  5. package/build/cjs/internal.js +8 -0
  6. package/build/cjs/internal.js.map +1 -0
  7. package/build/cjs/jsx/AreaMark.js.map +1 -1
  8. package/build/cjs/jsx/BarMark.js.map +1 -1
  9. package/build/cjs/jsx/LineMark.js.map +1 -1
  10. package/build/cjs/jsx/PointMark.js.map +1 -1
  11. package/build/cjs/jsx/RuleMark.js.map +1 -1
  12. package/build/cjs/jsx/SectorMark.js.map +1 -1
  13. package/build/cjs/live-update/renderer.js +0 -15
  14. package/build/cjs/live-update/renderer.js.map +1 -1
  15. package/build/cjs/ongoing-notification/components.js +19 -0
  16. package/build/cjs/ongoing-notification/components.js.map +1 -0
  17. package/build/cjs/ongoing-notification/renderer.js +262 -0
  18. package/build/cjs/ongoing-notification/renderer.js.map +1 -0
  19. package/build/cjs/ongoing-notification/types.js +3 -0
  20. package/build/cjs/ongoing-notification/types.js.map +1 -0
  21. package/build/cjs/payload/component-ids.js +1 -0
  22. package/build/cjs/payload/component-ids.js.map +1 -1
  23. package/build/cjs/server.js +6 -3
  24. package/build/cjs/server.js.map +1 -1
  25. package/build/cjs/utils/index.js +0 -16
  26. package/build/cjs/utils/index.js.map +1 -1
  27. package/build/cjs/widgets/renderer.js +19 -5
  28. package/build/cjs/widgets/renderer.js.map +1 -1
  29. package/build/esm/dynamic-colors.js +30 -0
  30. package/build/esm/dynamic-colors.js.map +1 -0
  31. package/build/esm/index.js +5 -0
  32. package/build/esm/index.js.map +1 -1
  33. package/build/esm/internal.js +2 -0
  34. package/build/esm/internal.js.map +1 -0
  35. package/build/esm/jsx/AreaMark.js.map +1 -1
  36. package/build/esm/jsx/BarMark.js.map +1 -1
  37. package/build/esm/jsx/LineMark.js.map +1 -1
  38. package/build/esm/jsx/PointMark.js.map +1 -1
  39. package/build/esm/jsx/RuleMark.js.map +1 -1
  40. package/build/esm/jsx/SectorMark.js.map +1 -1
  41. package/build/esm/live-update/renderer.js +0 -15
  42. package/build/esm/live-update/renderer.js.map +1 -1
  43. package/build/esm/ongoing-notification/components.js +16 -0
  44. package/build/esm/ongoing-notification/components.js.map +1 -0
  45. package/build/esm/ongoing-notification/renderer.js +256 -0
  46. package/build/esm/ongoing-notification/renderer.js.map +1 -0
  47. package/build/esm/ongoing-notification/types.js +2 -0
  48. package/build/esm/ongoing-notification/types.js.map +1 -0
  49. package/build/esm/payload/component-ids.js +1 -0
  50. package/build/esm/payload/component-ids.js.map +1 -1
  51. package/build/esm/server.js +2 -1
  52. package/build/esm/server.js.map +1 -1
  53. package/build/esm/utils/index.js +1 -1
  54. package/build/esm/utils/index.js.map +1 -1
  55. package/build/esm/widgets/renderer.js +17 -4
  56. package/build/esm/widgets/renderer.js.map +1 -1
  57. package/build/types/dynamic-colors.d.ts +33 -0
  58. package/build/types/dynamic-colors.d.ts.map +1 -0
  59. package/build/types/index.d.ts +10 -0
  60. package/build/types/index.d.ts.map +1 -1
  61. package/build/types/internal.d.ts +3 -0
  62. package/build/types/internal.d.ts.map +1 -0
  63. package/build/types/jsx/AreaMark.d.ts +2 -1
  64. package/build/types/jsx/AreaMark.d.ts.map +1 -1
  65. package/build/types/jsx/BarMark.d.ts +2 -1
  66. package/build/types/jsx/BarMark.d.ts.map +1 -1
  67. package/build/types/jsx/LineMark.d.ts +2 -1
  68. package/build/types/jsx/LineMark.d.ts.map +1 -1
  69. package/build/types/jsx/PointMark.d.ts +2 -1
  70. package/build/types/jsx/PointMark.d.ts.map +1 -1
  71. package/build/types/jsx/RuleMark.d.ts +2 -1
  72. package/build/types/jsx/RuleMark.d.ts.map +1 -1
  73. package/build/types/jsx/SectorMark.d.ts +2 -1
  74. package/build/types/jsx/SectorMark.d.ts.map +1 -1
  75. package/build/types/jsx/props/CheckBox.d.ts +3 -2
  76. package/build/types/jsx/props/CheckBox.d.ts.map +1 -1
  77. package/build/types/jsx/props/CircleIconButton.d.ts +3 -2
  78. package/build/types/jsx/props/CircleIconButton.d.ts.map +1 -1
  79. package/build/types/jsx/props/CircularProgressIndicator.d.ts +2 -1
  80. package/build/types/jsx/props/CircularProgressIndicator.d.ts.map +1 -1
  81. package/build/types/jsx/props/FilledButton.d.ts +3 -2
  82. package/build/types/jsx/props/FilledButton.d.ts.map +1 -1
  83. package/build/types/jsx/props/Image.d.ts +3 -2
  84. package/build/types/jsx/props/Image.d.ts.map +1 -1
  85. package/build/types/jsx/props/LinearProgressIndicator.d.ts +3 -2
  86. package/build/types/jsx/props/LinearProgressIndicator.d.ts.map +1 -1
  87. package/build/types/jsx/props/OutlineButton.d.ts +2 -1
  88. package/build/types/jsx/props/OutlineButton.d.ts.map +1 -1
  89. package/build/types/jsx/props/RadioButton.d.ts +3 -2
  90. package/build/types/jsx/props/RadioButton.d.ts.map +1 -1
  91. package/build/types/jsx/props/Scaffold.d.ts +2 -1
  92. package/build/types/jsx/props/Scaffold.d.ts.map +1 -1
  93. package/build/types/jsx/props/SquareIconButton.d.ts +3 -2
  94. package/build/types/jsx/props/SquareIconButton.d.ts.map +1 -1
  95. package/build/types/jsx/props/Switch.d.ts +5 -4
  96. package/build/types/jsx/props/Switch.d.ts.map +1 -1
  97. package/build/types/jsx/props/TitleBar.d.ts +3 -2
  98. package/build/types/jsx/props/TitleBar.d.ts.map +1 -1
  99. package/build/types/live-update/renderer.d.ts +0 -7
  100. package/build/types/live-update/renderer.d.ts.map +1 -1
  101. package/build/types/live-update/types.d.ts +0 -65
  102. package/build/types/live-update/types.d.ts.map +1 -1
  103. package/build/types/ongoing-notification/components.d.ts +18 -0
  104. package/build/types/ongoing-notification/components.d.ts.map +1 -0
  105. package/build/types/ongoing-notification/renderer.d.ts +6 -0
  106. package/build/types/ongoing-notification/renderer.d.ts.map +1 -0
  107. package/build/types/ongoing-notification/types.d.ts +160 -0
  108. package/build/types/ongoing-notification/types.d.ts.map +1 -0
  109. package/build/types/payload/component-ids.d.ts.map +1 -1
  110. package/build/types/server.d.ts +4 -1
  111. package/build/types/server.d.ts.map +1 -1
  112. package/build/types/styles/types.d.ts +5 -4
  113. package/build/types/styles/types.d.ts.map +1 -1
  114. package/build/types/types.d.ts +22 -1
  115. package/build/types/types.d.ts.map +1 -1
  116. package/build/types/utils/index.d.ts +0 -1
  117. package/build/types/utils/index.d.ts.map +1 -1
  118. package/build/types/widgets/renderer.d.ts +8 -2
  119. package/build/types/widgets/renderer.d.ts.map +1 -1
  120. package/package.json +9 -11
  121. package/build/cjs/VoltraModule.js +0 -6
  122. package/build/cjs/VoltraModule.js.map +0 -1
  123. package/build/cjs/client.js +0 -34
  124. package/build/cjs/client.js.map +0 -1
  125. package/build/cjs/components/VoltraView.js +0 -48
  126. package/build/cjs/components/VoltraView.js.map +0 -1
  127. package/build/cjs/components/VoltraWidgetPreview.js +0 -28
  128. package/build/cjs/components/VoltraWidgetPreview.js.map +0 -1
  129. package/build/cjs/events.js +0 -35
  130. package/build/cjs/events.js.map +0 -1
  131. package/build/cjs/live-update/api.js +0 -215
  132. package/build/cjs/live-update/api.js.map +0 -1
  133. package/build/cjs/preload.js +0 -80
  134. package/build/cjs/preload.js.map +0 -1
  135. package/build/cjs/utils/useUpdateOnHMR.js +0 -27
  136. package/build/cjs/utils/useUpdateOnHMR.js.map +0 -1
  137. package/build/cjs/widgets/api.js +0 -155
  138. package/build/cjs/widgets/api.js.map +0 -1
  139. package/build/cjs/widgets/index.js +0 -12
  140. package/build/cjs/widgets/index.js.map +0 -1
  141. package/build/cjs/widgets/server-credentials.js +0 -31
  142. package/build/cjs/widgets/server-credentials.js.map +0 -1
  143. package/build/esm/VoltraModule.js +0 -4
  144. package/build/esm/VoltraModule.js.map +0 -1
  145. package/build/esm/client.js +0 -12
  146. package/build/esm/client.js.map +0 -1
  147. package/build/esm/components/VoltraView.js +0 -45
  148. package/build/esm/components/VoltraView.js.map +0 -1
  149. package/build/esm/components/VoltraWidgetPreview.js +0 -25
  150. package/build/esm/components/VoltraWidgetPreview.js.map +0 -1
  151. package/build/esm/events.js +0 -29
  152. package/build/esm/events.js.map +0 -1
  153. package/build/esm/live-update/api.js +0 -203
  154. package/build/esm/live-update/api.js.map +0 -1
  155. package/build/esm/preload.js +0 -72
  156. package/build/esm/preload.js.map +0 -1
  157. package/build/esm/utils/useUpdateOnHMR.js +0 -23
  158. package/build/esm/utils/useUpdateOnHMR.js.map +0 -1
  159. package/build/esm/widgets/api.js +0 -143
  160. package/build/esm/widgets/api.js.map +0 -1
  161. package/build/esm/widgets/index.js +0 -3
  162. package/build/esm/widgets/index.js.map +0 -1
  163. package/build/esm/widgets/server-credentials.js +0 -24
  164. package/build/esm/widgets/server-credentials.js.map +0 -1
  165. package/build/types/VoltraModule.d.ts +0 -30
  166. package/build/types/VoltraModule.d.ts.map +0 -1
  167. package/build/types/client.d.ts +0 -9
  168. package/build/types/client.d.ts.map +0 -1
  169. package/build/types/components/VoltraView.d.ts +0 -29
  170. package/build/types/components/VoltraView.d.ts.map +0 -1
  171. package/build/types/components/VoltraWidgetPreview.d.ts +0 -21
  172. package/build/types/components/VoltraWidgetPreview.d.ts.map +0 -1
  173. package/build/types/events.d.ts +0 -49
  174. package/build/types/events.d.ts.map +0 -1
  175. package/build/types/live-update/api.d.ts +0 -126
  176. package/build/types/live-update/api.d.ts.map +0 -1
  177. package/build/types/preload.d.ts +0 -45
  178. package/build/types/preload.d.ts.map +0 -1
  179. package/build/types/utils/useUpdateOnHMR.d.ts +0 -9
  180. package/build/types/utils/useUpdateOnHMR.d.ts.map +0 -1
  181. package/build/types/widgets/api.d.ts +0 -131
  182. package/build/types/widgets/api.d.ts.map +0 -1
  183. package/build/types/widgets/index.d.ts +0 -3
  184. package/build/types/widgets/index.d.ts.map +0 -1
  185. package/build/types/widgets/server-credentials.d.ts +0 -18
  186. package/build/types/widgets/server-credentials.d.ts.map +0 -1
@@ -1,215 +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.isAndroidLiveUpdateActive = exports.stopAndroidLiveUpdate = exports.updateAndroidLiveUpdate = exports.startAndroidLiveUpdate = exports.useAndroidLiveUpdate = void 0;
7
- exports.endAllAndroidLiveUpdates = endAllAndroidLiveUpdates;
8
- const react_1 = require("react");
9
- const index_js_1 = require("../utils/index.js");
10
- const VoltraModule_js_1 = __importDefault(require("../VoltraModule.js"));
11
- const renderer_js_1 = require("./renderer.js");
12
- /**
13
- * @unstable This API is experimental and may change in future versions.
14
- *
15
- * React hook for managing Android Live Updates with automatic lifecycle handling.
16
- *
17
- * @param variants - The Android Live Update content variants to display
18
- * @param options - Configuration options for the hook
19
- * @returns Object with start, update, end methods and isActive state
20
- *
21
- * @example
22
- * ```tsx
23
- * import { VoltraAndroid, useAndroidLiveUpdate } from 'voltra'
24
- *
25
- * const MyLiveUpdate = () => {
26
- * const { start, update, end, isActive } = useAndroidLiveUpdate({
27
- * collapsed: <VoltraAndroid.Text>Delivery arriving</VoltraAndroid.Text>,
28
- * expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
29
- * channelId: 'delivery_updates',
30
- * }, {
31
- * updateName: 'my-live-update',
32
- * autoStart: true,
33
- * autoUpdate: true
34
- * })
35
- *
36
- * return (
37
- * <View>
38
- * <Button title={isActive ? "Stop" : "Start"} onPress={isActive ? end : start} />
39
- * </View>
40
- * )
41
- * }
42
- * ```
43
- */
44
- const useAndroidLiveUpdate = (variants, options) => {
45
- const [targetId, setTargetId] = (0, react_1.useState)(() => {
46
- if (options?.updateName) {
47
- return (0, exports.isAndroidLiveUpdateActive)(options.updateName) ? options.updateName : null;
48
- }
49
- return null;
50
- });
51
- const isActive = targetId !== null;
52
- const optionsRef = (0, react_1.useRef)(options);
53
- const variantsRef = (0, react_1.useRef)(variants);
54
- const lastUpdateOptionsRef = (0, react_1.useRef)(undefined);
55
- // Update refs when values change
56
- (0, react_1.useEffect)(() => {
57
- optionsRef.current = options;
58
- }, [options]);
59
- (0, react_1.useEffect)(() => {
60
- variantsRef.current = variants;
61
- }, [variants]);
62
- (0, index_js_1.useUpdateOnHMR)();
63
- const start = (0, react_1.useCallback)(async (options) => {
64
- const id = await (0, exports.startAndroidLiveUpdate)(variantsRef.current, {
65
- ...optionsRef.current,
66
- ...options,
67
- });
68
- setTargetId(id);
69
- }, []);
70
- const update = (0, react_1.useCallback)(async (options) => {
71
- if (!targetId) {
72
- return;
73
- }
74
- const updateOptions = { ...optionsRef.current, ...options };
75
- lastUpdateOptionsRef.current = updateOptions;
76
- await (0, exports.updateAndroidLiveUpdate)(targetId, variantsRef.current, updateOptions);
77
- }, [targetId]);
78
- const end = (0, react_1.useCallback)(async () => {
79
- if (!targetId) {
80
- return;
81
- }
82
- await (0, exports.stopAndroidLiveUpdate)(targetId);
83
- setTargetId(null);
84
- }, [targetId]);
85
- (0, react_1.useEffect)(() => {
86
- if (!options?.autoStart) {
87
- return;
88
- }
89
- start();
90
- }, [options?.autoStart, start]);
91
- (0, react_1.useEffect)(() => {
92
- if (!options?.autoUpdate)
93
- return;
94
- update(lastUpdateOptionsRef.current);
95
- }, [options?.autoUpdate, update, variants]);
96
- return {
97
- start,
98
- update,
99
- end,
100
- isActive,
101
- };
102
- };
103
- exports.useAndroidLiveUpdate = useAndroidLiveUpdate;
104
- /**
105
- * @unstable This API is experimental and may change in future versions.
106
- *
107
- * Start a new Android Live Update with the provided content variants.
108
- *
109
- * @param variants - The Android Live Update content variants to display
110
- * @param options - Configuration options for the Live Update
111
- * @returns Promise resolving to the notification ID
112
- *
113
- * @example
114
- * ```tsx
115
- * import { VoltraAndroid, startAndroidLiveUpdate } from 'voltra'
116
- *
117
- * const notificationId = await startAndroidLiveUpdate({
118
- * collapsed: <VoltraAndroid.Text>Delivery arriving</VoltraAndroid.Text>,
119
- * expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
120
- * channelId: 'delivery_updates',
121
- * }, {
122
- * updateName: 'my-live-update',
123
- * })
124
- * ```
125
- */
126
- const startAndroidLiveUpdate = async (variants, options) => {
127
- const payload = (0, renderer_js_1.renderAndroidLiveUpdateToString)(variants);
128
- const notificationId = await VoltraModule_js_1.default.startAndroidLiveUpdate(payload, {
129
- updateName: options?.updateName,
130
- channelId: options?.channelId || variants.channelId || 'voltra_live_updates',
131
- });
132
- return notificationId;
133
- };
134
- exports.startAndroidLiveUpdate = startAndroidLiveUpdate;
135
- /**
136
- * @unstable This API is experimental and may change in future versions.
137
- *
138
- * Update an existing Android Live Update with new content.
139
- *
140
- * @param notificationId - The ID of the notification to update
141
- * @param variants - The new Android Live Update content variants
142
- * @param options - Update options
143
- *
144
- * @example
145
- * ```tsx
146
- * import { VoltraAndroid, updateAndroidLiveUpdate } from 'voltra'
147
- *
148
- * await updateAndroidLiveUpdate('notification-123', {
149
- * collapsed: <VoltraAndroid.Text>Updated: Delivery arriving</VoltraAndroid.Text>,
150
- * expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
151
- * })
152
- * ```
153
- */
154
- const updateAndroidLiveUpdate = async (notificationId, variants, options) => {
155
- const payload = (0, renderer_js_1.renderAndroidLiveUpdateToString)(variants);
156
- return VoltraModule_js_1.default.updateAndroidLiveUpdate(notificationId, payload);
157
- };
158
- exports.updateAndroidLiveUpdate = updateAndroidLiveUpdate;
159
- /**
160
- * @unstable This API is experimental and may change in future versions.
161
- *
162
- * Stop an Android Live Update and dismiss the notification.
163
- *
164
- * @param notificationId - The ID of the notification to stop
165
- *
166
- * @example
167
- * ```tsx
168
- * import { stopAndroidLiveUpdate } from 'voltra'
169
- *
170
- * await stopAndroidLiveUpdate('notification-123')
171
- * ```
172
- */
173
- const stopAndroidLiveUpdate = async (notificationId) => {
174
- return VoltraModule_js_1.default.stopAndroidLiveUpdate(notificationId);
175
- };
176
- exports.stopAndroidLiveUpdate = stopAndroidLiveUpdate;
177
- /**
178
- * @unstable This API is experimental and may change in future versions.
179
- *
180
- * Check if an Android Live Update with the given name is currently active.
181
- *
182
- * @param updateName - The name of the Live Update to check
183
- * @returns true if the update is active, false otherwise
184
- *
185
- * @example
186
- * ```tsx
187
- * import { isAndroidLiveUpdateActive } from 'voltra'
188
- *
189
- * if (isAndroidLiveUpdateActive('my-live-update')) {
190
- * console.log('Update is running')
191
- * }
192
- * ```
193
- */
194
- const isAndroidLiveUpdateActive = (updateName) => {
195
- return VoltraModule_js_1.default.isAndroidLiveUpdateActive(updateName);
196
- };
197
- exports.isAndroidLiveUpdateActive = isAndroidLiveUpdateActive;
198
- /**
199
- * @unstable This API is experimental and may change in future versions.
200
- *
201
- * End all active Android Live Updates.
202
- *
203
- * This function stops and dismisses all currently running Live Updates in the app.
204
- *
205
- * @example
206
- * ```tsx
207
- * import { endAllAndroidLiveUpdates } from 'voltra'
208
- *
209
- * await endAllAndroidLiveUpdates()
210
- * ```
211
- */
212
- async function endAllAndroidLiveUpdates() {
213
- return VoltraModule_js_1.default.endAllAndroidLiveUpdates();
214
- }
215
- //# 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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"}
@@ -1,80 +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.preloadImages = preloadImages;
7
- exports.clearPreloadedImages = clearPreloadedImages;
8
- exports.reloadWidgets = reloadWidgets;
9
- const VoltraModule_js_1 = __importDefault(require("./VoltraModule.js"));
10
- /**
11
- * Preload images to Android cache for use in Widgets.
12
- *
13
- * Downloaded images are stored in the app's cache directory and exposed via FileProvider.
14
- * Images can then be referenced using the `assetName` property in the Image component.
15
- *
16
- * @param images - Array of images to preload
17
- * @returns Result indicating which images succeeded or failed
18
- *
19
- * @example
20
- * ```typescript
21
- * const result = await preloadImages([
22
- * {
23
- * url: 'https://example.com/album-art.jpg',
24
- * key: 'current-album',
25
- * headers: { 'Authorization': 'Bearer token' }
26
- * }
27
- * ])
28
- *
29
- * // Use in Android Widget
30
- * <VoltraAndroid.Image source={{ assetName: 'current-album' }} />
31
- * ```
32
- */
33
- async function preloadImages(images) {
34
- try {
35
- return await VoltraModule_js_1.default.preloadImages(images);
36
- }
37
- catch (error) {
38
- return {
39
- succeeded: [],
40
- failed: images.map((img) => ({
41
- key: img.key,
42
- error: error instanceof Error ? error.message : 'Unknown error',
43
- })),
44
- };
45
- }
46
- }
47
- /**
48
- * Clear preloaded images from Android cache.
49
- *
50
- * @param keys - Optional array of image keys to clear. If omitted, clears all preloaded images.
51
- *
52
- * @example
53
- * ```typescript
54
- * // Clear specific images
55
- * await clearPreloadedImages(['album-art', 'profile-pic'])
56
- *
57
- * // Clear all preloaded images
58
- * await clearPreloadedImages()
59
- * ```
60
- */
61
- async function clearPreloadedImages(keys) {
62
- try {
63
- await VoltraModule_js_1.default.clearPreloadedImages(keys ?? null);
64
- }
65
- catch (error) {
66
- console.error('Failed to clear preloaded images:', error);
67
- }
68
- }
69
- /**
70
- * Reload Android Widgets. (Alias for reloadAndroidWidgets)
71
- */
72
- async function reloadWidgets(widgetIds) {
73
- try {
74
- await VoltraModule_js_1.default.reloadAndroidWidgets(widgetIds ?? null);
75
- }
76
- catch (error) {
77
- console.error('Failed to reload Android widgets:', error);
78
- }
79
- }
80
- //# sourceMappingURL=preload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/preload.ts"],"names":[],"mappings":";;;;;AA0BA,sCAYC;AAgBD,oDAMC;AAKD,sCAMC;AAtED,wEAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACI,KAAK,UAAU,aAAa,CAAC,MAA6B;IAC/D,IAAI,CAAC;QACH,OAAO,MAAM,yBAAY,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;AACI,KAAK,UAAU,oBAAoB,CAAC,IAAe;IACxD,IAAI,CAAC;QACH,MAAM,yBAAY,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;AACI,KAAK,UAAU,aAAa,CAAC,SAAoB;IACtD,IAAI,CAAC;QACH,MAAM,yBAAY,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,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useUpdateOnHMR = void 0;
4
- const react_1 = require("react");
5
- /**
6
- * Taps into the HMR accept function to forcefully re-render the component when any module is updated.
7
- * Is only available in development mode.
8
- */
9
- const useUpdateOnHMR = () => {
10
- const [, forceUpdate] = (0, react_1.useState)(0);
11
- (0, react_1.useEffect)(() => {
12
- if (!__DEV__) {
13
- return;
14
- }
15
- // Override the accept function to forcefully re-render when any module is updated
16
- const oldAccept = global['__accept'];
17
- global['__accept'] = (...args) => {
18
- forceUpdate((prev) => prev + 1);
19
- oldAccept?.(...args);
20
- };
21
- return () => {
22
- global['__accept'] = oldAccept;
23
- };
24
- }, []);
25
- };
26
- exports.useUpdateOnHMR = useUpdateOnHMR;
27
- //# sourceMappingURL=useUpdateOnHMR.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useUpdateOnHMR.js","sourceRoot":"","sources":["../../../src/utils/useUpdateOnHMR.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAO3C;;;GAGG;AACI,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAA;IAEnC,IAAA,iBAAS,EAAC,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;AAnBY,QAAA,cAAc,kBAmB1B"}
@@ -1,155 +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.requestPinAndroidWidget = exports.clearAllAndroidWidgets = exports.clearAndroidWidget = exports.reloadAndroidWidgets = exports.updateAndroidWidget = void 0;
7
- const VoltraModule_js_1 = __importDefault(require("../VoltraModule.js"));
8
- const renderer_js_1 = require("./renderer.js");
9
- /**
10
- * Update an Android home screen widget with new content.
11
- *
12
- * The content will be stored in SharedPreferences and the widget
13
- * will be updated to display the new content.
14
- *
15
- * @param widgetId - The widget identifier
16
- * @param variants - An array of size variants with their breakpoints and content.
17
- * Android will automatically select the best matching variant based on the
18
- * actual widget dimensions.
19
- * @param options - Optional settings like deep link URL
20
- *
21
- * @example Different content per size
22
- * ```tsx
23
- * import { VoltraAndroid, updateAndroidWidget } from 'voltra'
24
- *
25
- * await updateAndroidWidget('weather', [
26
- * {
27
- * size: { width: 150, height: 100 },
28
- * content: <VoltraAndroid.Text fontSize={32}>72°F</VoltraAndroid.Text>
29
- * },
30
- * {
31
- * size: { width: 250, height: 150 },
32
- * content: (
33
- * <VoltraAndroid.Row>
34
- * <VoltraAndroid.Text fontSize={32}>72°F</VoltraAndroid.Text>
35
- * <VoltraAndroid.Column>
36
- * <VoltraAndroid.Text>Sunny</VoltraAndroid.Text>
37
- * <VoltraAndroid.Text>High: 78° Low: 65°</VoltraAndroid.Text>
38
- * </VoltraAndroid.Column>
39
- * </VoltraAndroid.Row>
40
- * )
41
- * }
42
- * ], { deepLinkUrl: '/weather' })
43
- * ```
44
- */
45
- const updateAndroidWidget = async (widgetId, variants, options) => {
46
- const payload = (0, renderer_js_1.renderAndroidWidgetToString)(variants);
47
- return VoltraModule_js_1.default.updateAndroidWidget(widgetId, payload, {
48
- deepLinkUrl: options?.deepLinkUrl,
49
- });
50
- };
51
- exports.updateAndroidWidget = updateAndroidWidget;
52
- /**
53
- * Reload widget timelines to refresh their content.
54
- *
55
- * Use this after updating data that widgets depend on (e.g., after preloading
56
- * new images) to force them to re-render.
57
- *
58
- * @param widgetIds - Optional array of widget IDs to reload. If omitted, reloads all widgets.
59
- *
60
- * @example
61
- * ```typescript
62
- * // Reload specific widgets
63
- * await reloadAndroidWidgets(['weather', 'calendar'])
64
- *
65
- * // Reload all widgets
66
- * await reloadAndroidWidgets()
67
- * ```
68
- */
69
- const reloadAndroidWidgets = async (widgetIds) => {
70
- return VoltraModule_js_1.default.reloadAndroidWidgets(widgetIds ?? null);
71
- };
72
- exports.reloadAndroidWidgets = reloadAndroidWidgets;
73
- /**
74
- * Clear a widget's stored data.
75
- *
76
- * This removes the JSON content and deep link URL for the specified widget,
77
- * causing it to show its placeholder state.
78
- *
79
- * @param widgetId - The widget identifier to clear
80
- *
81
- * @example
82
- * ```typescript
83
- * await clearAndroidWidget('weather')
84
- * ```
85
- */
86
- const clearAndroidWidget = async (widgetId) => {
87
- return VoltraModule_js_1.default.clearAndroidWidget(widgetId);
88
- };
89
- exports.clearAndroidWidget = clearAndroidWidget;
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 clearAllAndroidWidgets()
99
- * ```
100
- */
101
- const clearAllAndroidWidgets = async () => {
102
- return VoltraModule_js_1.default.clearAllAndroidWidgets();
103
- };
104
- exports.clearAllAndroidWidgets = clearAllAndroidWidgets;
105
- /**
106
- * Request to pin a widget to the home screen.
107
- *
108
- * This will show the Android system pin widget dialog, allowing the user
109
- * to add the widget to their home screen. Optionally, you can provide
110
- * preview dimensions to show a preview of the widget in the pin dialog.
111
- *
112
- * See: https://developer.android.com/develop/ui/compose/glance/pin-in-app
113
- *
114
- * @param widgetId - The widget identifier to pin
115
- * @param options - Optional settings for the pin request
116
- * @param options.previewWidth - Optional preview width in dp (default: 245)
117
- * @param options.previewHeight - Optional preview height in dp (default: 115)
118
- * @returns Promise that resolves to true if the pin request was successful
119
- *
120
- * @example Basic usage
121
- * ```typescript
122
- * const success = await requestPinAndroidWidget('weather')
123
- * if (success) {
124
- * console.log('Widget pin request sent')
125
- * }
126
- * ```
127
- *
128
- * @example With preview dimensions
129
- * ```typescript
130
- * const success = await requestPinAndroidWidget('weather', {
131
- * previewWidth: 245,
132
- * previewHeight: 115
133
- * })
134
- * ```
135
- */
136
- const requestPinAndroidWidget = async (widgetId, options) => {
137
- return VoltraModule_js_1.default.requestPinGlanceAppWidget(widgetId, options);
138
- };
139
- exports.requestPinAndroidWidget = requestPinAndroidWidget;
140
- /**
141
- * Fetches all active widget instances for the containing app on Android.
142
- *
143
- * @returns A promise that resolves to an array of active widget instances.
144
- *
145
- * @example
146
- * ```typescript
147
- * const widgets = await getActiveWidgets()
148
- * console.log('Active widgets:', widgets)
149
- * ```
150
- */
151
- const getActiveWidgets = async () => {
152
- return VoltraModule_js_1.default.getActiveWidgets();
153
- };
154
- exports.getActiveWidgets = getActiveWidgets;
155
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/widgets/api.ts"],"names":[],"mappings":";;;;;;AAAA,yEAA6C;AAC7C,+CAA2D;AAY3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,QAAgB,EAChB,QAA+B,EAC/B,OAAoC,EACrB,EAAE;IACjB,MAAM,OAAO,GAAG,IAAA,yCAA2B,EAAC,QAAQ,CAAC,CAAA;IAErD,OAAO,yBAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE;QACzD,WAAW,EAAE,OAAO,EAAE,WAAW;KAClC,CAAC,CAAA;AACJ,CAAC,CAAA;AAVY,QAAA,mBAAmB,uBAU/B;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAoB,EAAiB,EAAE;IAChF,OAAO,yBAAY,CAAC,oBAAoB,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;AAC7D,CAAC,CAAA;AAFY,QAAA,oBAAoB,wBAEhC;AAED;;;;;;;;;;;;GAYG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAC1E,OAAO,yBAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC,CAAA;AAFY,QAAA,kBAAkB,sBAE9B;AAED;;;;;;;;;;GAUG;AACI,MAAM,sBAAsB,GAAG,KAAK,IAAmB,EAAE;IAC9D,OAAO,yBAAY,CAAC,sBAAsB,EAAE,CAAA;AAC9C,CAAC,CAAA;AAFY,QAAA,sBAAsB,0BAElC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAC1C,QAAgB,EAChB,OAA2D,EACzC,EAAE;IACpB,OAAO,yBAAY,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC,CAAA;AALY,QAAA,uBAAuB,2BAKnC;AAED;;;;;;;;;;GAUG;AACI,MAAM,gBAAgB,GAAG,KAAK,IAA2B,EAAE;IAChE,OAAO,yBAAY,CAAC,gBAAgB,EAAE,CAAA;AACxC,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateAndroidWidget = exports.requestPinAndroidWidget = exports.reloadAndroidWidgets = exports.getActiveWidgets = exports.clearAndroidWidget = exports.clearAllAndroidWidgets = void 0;
4
- // Android Widget API
5
- var api_js_1 = require("./api.js");
6
- Object.defineProperty(exports, "clearAllAndroidWidgets", { enumerable: true, get: function () { return api_js_1.clearAllAndroidWidgets; } });
7
- Object.defineProperty(exports, "clearAndroidWidget", { enumerable: true, get: function () { return api_js_1.clearAndroidWidget; } });
8
- Object.defineProperty(exports, "getActiveWidgets", { enumerable: true, get: function () { return api_js_1.getActiveWidgets; } });
9
- Object.defineProperty(exports, "reloadAndroidWidgets", { enumerable: true, get: function () { return api_js_1.reloadAndroidWidgets; } });
10
- Object.defineProperty(exports, "requestPinAndroidWidget", { enumerable: true, get: function () { return api_js_1.requestPinAndroidWidget; } });
11
- Object.defineProperty(exports, "updateAndroidWidget", { enumerable: true, get: function () { return api_js_1.updateAndroidWidget; } });
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/index.ts"],"names":[],"mappings":";;;AAAA,qBAAqB;AACrB,mCAOiB;AANf,gHAAA,sBAAsB,OAAA;AACtB,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAChB,8GAAA,oBAAoB,OAAA;AACpB,iHAAA,uBAAuB,OAAA;AACvB,6GAAA,mBAAmB,OAAA"}
@@ -1,31 +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 Android widget server-driven updates.
11
- *
12
- * Credentials are stored in DataStore, which is
13
- * automatically accessible by the widget's WorkManager background worker.
14
- *
15
- * @param credentials - The server credentials to store
16
- */
17
- async function setWidgetServerCredentials(credentials) {
18
- if (!credentials.token) {
19
- throw new Error('[Voltra] [Android] setWidgetServerCredentials: token is required');
20
- }
21
- return VoltraModule_js_1.default.setWidgetServerCredentials(credentials);
22
- }
23
- /**
24
- * Clear stored server credentials for Android widget updates.
25
- * All widgets are automatically reloaded after clearing credentials so they
26
- * revert to their default/unauthenticated state.
27
- */
28
- async function clearWidgetServerCredentials() {
29
- return VoltraModule_js_1.default.clearWidgetServerCredentials();
30
- }
31
- //# 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,gEAKC;AAOD,oEAEC;AA3BD,yEAA6C;AAK7C;;;;;;;GAOG;AACI,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,yBAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAA;AAC7D,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,4BAA4B;IAChD,OAAO,yBAAY,CAAC,4BAA4B,EAAE,CAAA;AACpD,CAAC"}
@@ -1,4 +0,0 @@
1
- import { requireNativeModule } from 'expo';
2
- const VoltraModule = requireNativeModule('VoltraModule');
3
- export default VoltraModule;
4
- //# sourceMappingURL=VoltraModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VoltraModule.js","sourceRoot":"","sources":["../../src/VoltraModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AA0B1C,MAAM,YAAY,GAAG,mBAAmB,CAA0B,cAAc,CAAC,CAAA;AAEjF,eAAe,YAAY,CAAA"}
@@ -1,12 +0,0 @@
1
- // Android Live Update API and types
2
- export { endAllAndroidLiveUpdates, isAndroidLiveUpdateActive, startAndroidLiveUpdate, stopAndroidLiveUpdate, updateAndroidLiveUpdate, useAndroidLiveUpdate, } from './live-update/api.js';
3
- // Android Widget API and types
4
- export { clearAllAndroidWidgets, clearAndroidWidget, getActiveWidgets, reloadAndroidWidgets, requestPinAndroidWidget, updateAndroidWidget, } from './widgets/api.js';
5
- // Android Widget Server Credentials API
6
- export { clearWidgetServerCredentials, setWidgetServerCredentials, } from './widgets/server-credentials.js';
7
- // Preload API
8
- export { clearPreloadedImages, preloadImages, reloadWidgets } from './preload.js';
9
- // Android Preview Components
10
- export { VoltraView } from './components/VoltraView.js';
11
- export { VoltraWidgetPreview, } from './components/VoltraWidgetPreview.js';
12
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAW7B,+BAA+B;AAC/B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AASzB,wCAAwC;AACxC,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAE3B,MAAM,iCAAiC,CAAA;AAExC,cAAc;AACd,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjF,6BAA6B;AAC7B,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAEL,mBAAmB,GAEpB,MAAM,qCAAqC,CAAA"}
@@ -1,45 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { requireNativeView } from 'expo';
3
- import { useEffect, useMemo } from 'react';
4
- import { addVoltraListener } from '../events.js';
5
- import { androidComponentRegistry, createVoltraRenderer } from '../renderer/renderer.js';
6
- const NativeVoltraView = requireNativeView('VoltraModule');
7
- // Generate a unique ID for views that don't have one
8
- const generateViewId = () => `voltra-view-android-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
9
- /**
10
- * A React Native component that renders Voltra UI for Android using Jetpack Compose.
11
- */
12
- export function VoltraView({ id, children, style, onInteraction }) {
13
- // Generate a stable ID if not provided
14
- const viewId = useMemo(() => id || generateViewId(), [id]);
15
- const payload = useMemo(() => {
16
- const renderer = createVoltraRenderer(androidComponentRegistry);
17
- renderer.addRootNode('content', children);
18
- const rendered = renderer.render();
19
- // Move 'content' into 'variants' to match VoltraPayload structure
20
- const node = rendered.content;
21
- delete rendered.content;
22
- rendered.variants = { content: node };
23
- return JSON.stringify(rendered);
24
- }, [children]);
25
- // Subscribe to interaction events and filter by this view's ID
26
- useEffect(() => {
27
- if (!onInteraction)
28
- return;
29
- const subscription = addVoltraListener('interaction', (event) => {
30
- // Only forward events from this view
31
- if (event.source === viewId) {
32
- onInteraction({
33
- type: 'interaction',
34
- source: event.source,
35
- timestamp: event.timestamp,
36
- identifier: event.identifier,
37
- payload: event.payload,
38
- });
39
- }
40
- });
41
- return () => subscription.remove();
42
- }, [viewId, onInteraction]);
43
- return _jsx(NativeVoltraView, { payload: payload, viewId: viewId, style: style });
44
- }
45
- //# 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;AAG5D,OAAO,EAAE,iBAAiB,EAA0B,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAExF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAE1D,qDAAqD;AACrD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,uBAAuB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AAwB9G;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAmB;IAChF,uCAAuC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAE1D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAA;QAC/D,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAA;QAElC,kEAAkE;QAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC7B,OAAO,QAAQ,CAAC,OAAO,CAAA;QACvB,QAAQ,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAErC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,+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,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAI,CAAA;AAC7E,CAAC"}
@@ -1,25 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { VoltraView } from './VoltraView.js';
3
- const WIDGET_DIMENSIONS = {
4
- small: { width: 150, height: 100 },
5
- mediumSquare: { width: 200, height: 200 },
6
- mediumWide: { width: 250, height: 150 },
7
- mediumTall: { width: 150, height: 250 },
8
- large: { width: 300, height: 200 },
9
- extraLarge: { width: 350, height: 300 },
10
- };
11
- /**
12
- * A preview component that renders Voltra Android JSX content at specific dimensions.
13
- */
14
- export function VoltraWidgetPreview({ family, style, children, ...voltraViewProps }) {
15
- const dimensions = WIDGET_DIMENSIONS[family];
16
- const previewStyle = [
17
- {
18
- width: dimensions.width,
19
- height: dimensions.height,
20
- },
21
- style,
22
- ];
23
- return (_jsx(VoltraView, { ...voltraViewProps, style: previewStyle, children: children }));
24
- }
25
- //# sourceMappingURL=VoltraWidgetPreview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VoltraWidgetPreview.js","sourceRoot":"","sources":["../../../src/components/VoltraWidgetPreview.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAO7D,MAAM,iBAAiB,GAAmE;IACxF,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAClC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACzC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACvC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACvC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAClC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CACxC,CAAA;AAaD;;GAEG;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"}