@use-voltra/ios-client 1.4.0 → 2.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -0
- package/Voltra.podspec +28 -0
- package/build/commonjs/VoltraModule.js +13 -0
- package/build/commonjs/VoltraModule.js.map +1 -0
- package/build/commonjs/components/VoltraLiveActivityPreview.js +30 -0
- package/build/commonjs/components/VoltraLiveActivityPreview.js.map +1 -0
- package/build/commonjs/components/VoltraView.js +50 -0
- package/build/commonjs/components/VoltraView.js.map +1 -0
- package/build/commonjs/components/VoltraWidgetPreview.js +58 -0
- package/build/commonjs/components/VoltraWidgetPreview.js.map +1 -0
- package/build/commonjs/events.js +32 -0
- package/build/commonjs/events.js.map +1 -0
- package/build/commonjs/helpers.js +26 -0
- package/build/commonjs/helpers.js.map +1 -0
- package/build/commonjs/index.js +226 -0
- package/build/commonjs/index.js.map +1 -0
- package/build/commonjs/live-activity/api.js +168 -0
- package/build/commonjs/live-activity/api.js.map +1 -0
- package/build/commonjs/logger.js +39 -0
- package/build/commonjs/logger.js.map +1 -0
- package/build/commonjs/native/NativeVoltra.js +15 -0
- package/build/commonjs/native/NativeVoltra.js.map +1 -0
- package/build/commonjs/native/VoltraRNNativeComponent.ts +9 -0
- package/build/commonjs/package.json +1 -0
- package/build/commonjs/preload.js +54 -0
- package/build/commonjs/preload.js.map +1 -0
- package/build/commonjs/types.js +2 -0
- package/build/commonjs/types.js.map +1 -0
- package/build/commonjs/utils/assertRunningOnApple.js +16 -0
- package/build/commonjs/utils/assertRunningOnApple.js.map +1 -0
- package/build/commonjs/utils/helpers.js +19 -0
- package/build/commonjs/utils/helpers.js.map +1 -0
- package/build/commonjs/utils/index.js +28 -0
- package/build/commonjs/utils/index.js.map +1 -0
- package/build/commonjs/utils/useUpdateOnHMR.js +25 -0
- package/build/commonjs/utils/useUpdateOnHMR.js.map +1 -0
- package/build/commonjs/widgets/server-credentials.js +18 -0
- package/build/commonjs/widgets/server-credentials.js.map +1 -0
- package/build/commonjs/widgets/widget-api.js +55 -0
- package/build/commonjs/widgets/widget-api.js.map +1 -0
- package/build/module/VoltraModule.js +4 -0
- package/build/module/VoltraModule.js.map +1 -0
- package/build/module/components/VoltraLiveActivityPreview.js +25 -0
- package/build/module/components/VoltraLiveActivityPreview.js.map +1 -0
- package/build/module/components/VoltraView.js +44 -0
- package/build/module/components/VoltraView.js.map +1 -0
- package/build/module/components/VoltraWidgetPreview.js +53 -0
- package/build/module/components/VoltraWidgetPreview.js.map +1 -0
- package/build/module/events.js +28 -0
- package/build/module/events.js.map +1 -0
- package/build/module/helpers.js +21 -0
- package/build/module/helpers.js.map +1 -0
- package/build/module/index.js +17 -0
- package/build/module/index.js.map +1 -0
- package/build/module/live-activity/api.js +158 -0
- package/build/module/live-activity/api.js.map +1 -0
- package/build/module/logger.js +35 -0
- package/build/module/logger.js.map +1 -0
- package/build/module/native/NativeVoltra.js +11 -0
- package/build/module/native/NativeVoltra.js.map +1 -0
- package/build/module/native/VoltraRNNativeComponent.ts +9 -0
- package/build/module/package.json +1 -0
- package/build/module/preload.js +48 -0
- package/build/module/preload.js.map +1 -0
- package/build/module/types.js +2 -0
- package/build/module/types.js.map +1 -0
- package/build/module/utils/assertRunningOnApple.js +11 -0
- package/build/module/utils/assertRunningOnApple.js.map +1 -0
- package/build/module/utils/helpers.js +4 -0
- package/build/module/utils/helpers.js.map +1 -0
- package/build/module/utils/index.js +5 -0
- package/build/module/utils/index.js.map +1 -0
- package/build/module/utils/useUpdateOnHMR.js +20 -0
- package/build/module/utils/useUpdateOnHMR.js.map +1 -0
- package/build/module/widgets/server-credentials.js +13 -0
- package/build/module/widgets/server-credentials.js.map +1 -0
- package/build/module/widgets/widget-api.js +45 -0
- package/build/module/widgets/widget-api.js.map +1 -0
- package/build/typescript/commonjs/VoltraModule.d.ts +3 -0
- package/build/typescript/commonjs/VoltraModule.d.ts.map +1 -0
- package/build/typescript/commonjs/components/VoltraLiveActivityPreview.d.ts.map +1 -0
- package/build/typescript/commonjs/components/VoltraView.d.ts.map +1 -0
- package/build/typescript/commonjs/components/VoltraWidgetPreview.d.ts.map +1 -0
- package/build/typescript/commonjs/events.d.ts.map +1 -0
- package/build/typescript/commonjs/helpers.d.ts.map +1 -0
- package/build/{types → typescript/commonjs}/index.d.ts +5 -0
- package/build/typescript/commonjs/index.d.ts.map +1 -0
- package/build/typescript/commonjs/live-activity/api.d.ts.map +1 -0
- package/build/typescript/commonjs/logger.d.ts.map +1 -0
- package/build/typescript/commonjs/native/NativeVoltra.d.ts +100 -0
- package/build/typescript/commonjs/native/NativeVoltra.d.ts.map +1 -0
- package/build/typescript/commonjs/native/VoltraRNNativeComponent.d.ts +8 -0
- package/build/typescript/commonjs/native/VoltraRNNativeComponent.d.ts.map +1 -0
- package/build/typescript/commonjs/package.json +1 -0
- package/build/typescript/commonjs/preload.d.ts.map +1 -0
- package/build/typescript/commonjs/types.d.ts.map +1 -0
- package/build/typescript/commonjs/utils/assertRunningOnApple.d.ts.map +1 -0
- package/build/typescript/commonjs/utils/helpers.d.ts.map +1 -0
- package/build/typescript/commonjs/utils/index.d.ts.map +1 -0
- package/build/typescript/commonjs/utils/useUpdateOnHMR.d.ts.map +1 -0
- package/build/typescript/commonjs/widgets/server-credentials.d.ts.map +1 -0
- package/build/typescript/commonjs/widgets/widget-api.d.ts.map +1 -0
- package/build/typescript/module/VoltraModule.d.ts +3 -0
- package/build/typescript/module/VoltraModule.d.ts.map +1 -0
- package/build/typescript/module/components/VoltraLiveActivityPreview.d.ts +7 -0
- package/build/typescript/module/components/VoltraLiveActivityPreview.d.ts.map +1 -0
- package/build/typescript/module/components/VoltraView.d.ts +12 -0
- package/build/typescript/module/components/VoltraView.d.ts.map +1 -0
- package/build/typescript/module/components/VoltraWidgetPreview.d.ts +9 -0
- package/build/typescript/module/components/VoltraWidgetPreview.d.ts.map +1 -0
- package/build/typescript/module/events.d.ts +33 -0
- package/build/typescript/module/events.d.ts.map +1 -0
- package/build/typescript/module/helpers.d.ts +3 -0
- package/build/typescript/module/helpers.d.ts.map +1 -0
- package/build/typescript/module/index.d.ts +18 -0
- package/build/typescript/module/index.d.ts.map +1 -0
- package/build/typescript/module/live-activity/api.d.ts +35 -0
- package/build/typescript/module/live-activity/api.d.ts.map +1 -0
- package/build/typescript/module/logger.d.ts +16 -0
- package/build/typescript/module/logger.d.ts.map +1 -0
- package/build/typescript/module/native/NativeVoltra.d.ts +100 -0
- package/build/typescript/module/native/NativeVoltra.d.ts.map +1 -0
- package/build/typescript/module/native/VoltraRNNativeComponent.d.ts +8 -0
- package/build/typescript/module/native/VoltraRNNativeComponent.d.ts.map +1 -0
- package/build/typescript/module/package.json +1 -0
- package/build/typescript/module/preload.d.ts +6 -0
- package/build/typescript/module/preload.d.ts.map +1 -0
- package/build/typescript/module/types.d.ts +2 -0
- package/build/typescript/module/types.d.ts.map +1 -0
- package/build/typescript/module/utils/assertRunningOnApple.d.ts +2 -0
- package/build/typescript/module/utils/assertRunningOnApple.d.ts.map +1 -0
- package/build/{esm/utils/helpers.js → typescript/module/utils/helpers.d.ts} +1 -1
- package/build/typescript/module/utils/helpers.d.ts.map +1 -0
- package/build/{esm/utils/index.js → typescript/module/utils/index.d.ts} +1 -1
- package/build/typescript/module/utils/index.d.ts.map +1 -0
- package/build/typescript/module/utils/useUpdateOnHMR.d.ts +5 -0
- package/build/typescript/module/utils/useUpdateOnHMR.d.ts.map +1 -0
- package/build/typescript/module/widgets/server-credentials.d.ts +5 -0
- package/build/typescript/module/widgets/server-credentials.d.ts.map +1 -0
- package/build/typescript/module/widgets/widget-api.d.ts +11 -0
- package/build/typescript/module/widgets/widget-api.d.ts.map +1 -0
- package/expo-plugin/app.plugin.js +3 -0
- package/expo-plugin/build/cjs/constants.js +23 -0
- package/expo-plugin/build/cjs/constants.js.map +1 -0
- package/expo-plugin/build/cjs/index.js +51 -0
- package/expo-plugin/build/cjs/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios/eas.js +28 -0
- package/expo-plugin/build/cjs/ios/eas.js.map +1 -0
- package/expo-plugin/build/cjs/ios/entitlements.js +46 -0
- package/expo-plugin/build/cjs/ios/entitlements.js.map +1 -0
- package/expo-plugin/build/cjs/ios/index.js +39 -0
- package/expo-plugin/build/cjs/ios/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios/infoPlist.js +51 -0
- package/expo-plugin/build/cjs/ios/infoPlist.js.map +1 -0
- package/expo-plugin/build/cjs/ios/pushNotifications.js +22 -0
- package/expo-plugin/build/cjs/ios/pushNotifications.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/eas.js +66 -0
- package/expo-plugin/build/cjs/ios-widget/eas.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/assets.js +199 -0
- package/expo-plugin/build/cjs/ios-widget/files/assets.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/entitlements.js +77 -0
- package/expo-plugin/build/cjs/ios-widget/files/entitlements.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/index.js +92 -0
- package/expo-plugin/build/cjs/ios-widget/files/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js +91 -0
- package/expo-plugin/build/cjs/ios-widget/files/infoPlist.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/files/swift.js +443 -0
- package/expo-plugin/build/cjs/ios-widget/files/swift.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/fonts.js +151 -0
- package/expo-plugin/build/cjs/ios-widget/fonts.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/index.js +46 -0
- package/expo-plugin/build/cjs/ios-widget/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/podfile.js +41 -0
- package/expo-plugin/build/cjs/ios-widget/podfile.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/widgetPlist.js +99 -0
- package/expo-plugin/build/cjs/ios-widget/widgetPlist.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js +247 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/buildPhases.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/configurationList.js +91 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/configurationList.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/groups.js +79 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/groups.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/index.js +155 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/index.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/mainAppSettings.js +71 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/mainAppSettings.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/productFile.js +74 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/productFile.js.map +1 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/target.js +113 -0
- package/expo-plugin/build/cjs/ios-widget/xcode/target.js.map +1 -0
- package/expo-plugin/build/cjs/utils/fileDiscovery.js +120 -0
- package/expo-plugin/build/cjs/utils/fileDiscovery.js.map +1 -0
- package/expo-plugin/build/cjs/utils/urlScheme.js +40 -0
- package/expo-plugin/build/cjs/utils/urlScheme.js.map +1 -0
- package/expo-plugin/build/cjs/validation.js +55 -0
- package/expo-plugin/build/cjs/validation.js.map +1 -0
- package/expo-plugin/build/esm/constants.js +20 -0
- package/expo-plugin/build/esm/constants.js.map +1 -0
- package/expo-plugin/build/esm/index.js +49 -0
- package/expo-plugin/build/esm/index.js.map +1 -0
- package/expo-plugin/build/esm/ios/eas.js +24 -0
- package/expo-plugin/build/esm/ios/eas.js.map +1 -0
- package/expo-plugin/build/esm/ios/entitlements.js +42 -0
- package/expo-plugin/build/esm/ios/entitlements.js.map +1 -0
- package/expo-plugin/build/esm/ios/index.js +34 -0
- package/expo-plugin/build/esm/ios/index.js.map +1 -0
- package/expo-plugin/build/esm/ios/infoPlist.js +47 -0
- package/expo-plugin/build/esm/ios/infoPlist.js.map +1 -0
- package/expo-plugin/build/esm/ios/pushNotifications.js +18 -0
- package/expo-plugin/build/esm/ios/pushNotifications.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/eas.js +62 -0
- package/expo-plugin/build/esm/ios-widget/eas.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/assets.js +163 -0
- package/expo-plugin/build/esm/ios-widget/files/assets.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/entitlements.js +37 -0
- package/expo-plugin/build/esm/ios-widget/files/entitlements.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/index.js +55 -0
- package/expo-plugin/build/esm/ios-widget/files/index.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/infoPlist.js +55 -0
- package/expo-plugin/build/esm/ios-widget/files/infoPlist.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/files/swift.js +403 -0
- package/expo-plugin/build/esm/ios-widget/files/swift.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/fonts.js +111 -0
- package/expo-plugin/build/esm/ios-widget/fonts.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/index.js +42 -0
- package/expo-plugin/build/esm/ios-widget/index.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/podfile.js +37 -0
- package/expo-plugin/build/esm/ios-widget/podfile.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/widgetPlist.js +92 -0
- package/expo-plugin/build/esm/ios-widget/widgetPlist.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js +210 -0
- package/expo-plugin/build/esm/ios-widget/xcode/buildPhases.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/configurationList.js +87 -0
- package/expo-plugin/build/esm/ios-widget/xcode/configurationList.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/groups.js +75 -0
- package/expo-plugin/build/esm/ios-widget/xcode/groups.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/index.js +118 -0
- package/expo-plugin/build/esm/ios-widget/xcode/index.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/mainAppSettings.js +68 -0
- package/expo-plugin/build/esm/ios-widget/xcode/mainAppSettings.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/productFile.js +70 -0
- package/expo-plugin/build/esm/ios-widget/xcode/productFile.js.map +1 -0
- package/expo-plugin/build/esm/ios-widget/xcode/target.js +108 -0
- package/expo-plugin/build/esm/ios-widget/xcode/target.js.map +1 -0
- package/expo-plugin/build/esm/utils/fileDiscovery.js +83 -0
- package/expo-plugin/build/esm/utils/fileDiscovery.js.map +1 -0
- package/expo-plugin/build/esm/utils/urlScheme.js +37 -0
- package/expo-plugin/build/esm/utils/urlScheme.js.map +1 -0
- package/expo-plugin/build/esm/validation.js +51 -0
- package/expo-plugin/build/esm/validation.js.map +1 -0
- package/expo-plugin/build/types/constants.d.ts +13 -0
- package/expo-plugin/build/types/constants.d.ts.map +1 -0
- package/expo-plugin/build/types/index.d.ts +10 -0
- package/expo-plugin/build/types/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/eas.d.ts +12 -0
- package/expo-plugin/build/types/ios/eas.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/entitlements.d.ts +14 -0
- package/expo-plugin/build/types/ios/entitlements.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/index.d.ts +19 -0
- package/expo-plugin/build/types/ios/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/infoPlist.d.ts +21 -0
- package/expo-plugin/build/types/ios/infoPlist.d.ts.map +1 -0
- package/expo-plugin/build/types/ios/pushNotifications.d.ts +10 -0
- package/expo-plugin/build/types/ios/pushNotifications.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/eas.d.ts +15 -0
- package/expo-plugin/build/types/ios-widget/eas.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/assets.d.ts +13 -0
- package/expo-plugin/build/types/ios-widget/files/assets.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/entitlements.d.ts +17 -0
- package/expo-plugin/build/types/ios-widget/files/entitlements.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/index.d.ts +24 -0
- package/expo-plugin/build/types/ios-widget/files/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts +10 -0
- package/expo-plugin/build/types/ios-widget/files/infoPlist.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/files/swift.d.ts +24 -0
- package/expo-plugin/build/types/ios-widget/files/swift.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/fonts.d.ts +22 -0
- package/expo-plugin/build/types/ios-widget/fonts.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/index.d.ts +31 -0
- package/expo-plugin/build/types/ios-widget/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/podfile.d.ts +9 -0
- package/expo-plugin/build/types/ios-widget/podfile.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/widgetPlist.d.ts +20 -0
- package/expo-plugin/build/types/ios-widget/widgetPlist.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts +25 -0
- package/expo-plugin/build/types/ios-widget/xcode/buildPhases.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/configurationList.d.ts +20 -0
- package/expo-plugin/build/types/ios-widget/xcode/configurationList.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts +15 -0
- package/expo-plugin/build/types/ios-widget/xcode/groups.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/index.d.ts +20 -0
- package/expo-plugin/build/types/ios-widget/xcode/index.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/mainAppSettings.d.ts +15 -0
- package/expo-plugin/build/types/ios-widget/xcode/mainAppSettings.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/productFile.d.ts +14 -0
- package/expo-plugin/build/types/ios-widget/xcode/productFile.d.ts.map +1 -0
- package/expo-plugin/build/types/ios-widget/xcode/target.d.ts +42 -0
- package/expo-plugin/build/types/ios-widget/xcode/target.d.ts.map +1 -0
- package/expo-plugin/build/types/types.d.ts +74 -0
- package/expo-plugin/build/types/types.d.ts.map +1 -0
- package/expo-plugin/build/types/utils/fileDiscovery.d.ts +15 -0
- package/expo-plugin/build/types/utils/fileDiscovery.d.ts.map +1 -0
- package/expo-plugin/build/types/utils/urlScheme.d.ts +10 -0
- package/expo-plugin/build/types/utils/urlScheme.d.ts.map +1 -0
- package/expo-plugin/build/types/validation.d.ts +4 -0
- package/expo-plugin/build/types/validation.d.ts.map +1 -0
- package/expo-plugin/jest.config.js +18 -0
- package/expo-plugin/src/constants.ts +25 -0
- package/expo-plugin/src/index.ts +72 -0
- package/expo-plugin/src/ios/eas.ts +33 -0
- package/expo-plugin/src/ios/entitlements.ts +59 -0
- package/expo-plugin/src/ios/index.ts +47 -0
- package/expo-plugin/src/ios/infoPlist.ts +63 -0
- package/expo-plugin/src/ios/pushNotifications.ts +22 -0
- package/expo-plugin/src/ios-widget/eas.ts +79 -0
- package/expo-plugin/src/ios-widget/files/assets.ts +201 -0
- package/expo-plugin/src/ios-widget/files/entitlements.ts +48 -0
- package/expo-plugin/src/ios-widget/files/index.ts +74 -0
- package/expo-plugin/src/ios-widget/files/infoPlist.ts +57 -0
- package/expo-plugin/src/ios-widget/files/swift.node.test.ts +22 -0
- package/expo-plugin/src/ios-widget/files/swift.ts +476 -0
- package/expo-plugin/src/ios-widget/fonts.ts +132 -0
- package/expo-plugin/src/ios-widget/index.ts +73 -0
- package/expo-plugin/src/ios-widget/podfile.ts +44 -0
- package/expo-plugin/src/ios-widget/widgetPlist.ts +115 -0
- package/expo-plugin/src/ios-widget/xcode/buildPhases.ts +301 -0
- package/expo-plugin/src/ios-widget/xcode/configurationList.ts +127 -0
- package/expo-plugin/src/ios-widget/xcode/groups.ts +101 -0
- package/expo-plugin/src/ios-widget/xcode/index.ts +149 -0
- package/expo-plugin/src/ios-widget/xcode/mainAppSettings.ts +95 -0
- package/expo-plugin/src/ios-widget/xcode/productFile.ts +91 -0
- package/expo-plugin/src/ios-widget/xcode/target.ts +148 -0
- package/expo-plugin/src/types.ts +89 -0
- package/expo-plugin/src/utils/fileDiscovery.ts +96 -0
- package/expo-plugin/src/utils/urlScheme.ts +45 -0
- package/expo-plugin/src/validation.node.test.ts +19 -0
- package/expo-plugin/src/validation.ts +63 -0
- package/expo-plugin/tsconfig.base.json +17 -0
- package/expo-plugin/tsconfig.cjs.json +9 -0
- package/expo-plugin/tsconfig.esm.json +9 -0
- package/expo-plugin/tsconfig.jest.json +8 -0
- package/expo-plugin/tsconfig.typecheck.json +12 -0
- package/expo-plugin/tsconfig.types.json +10 -0
- package/ios/Package.swift +68 -0
- package/ios/Tests/JSGradientParserTests.swift +201 -0
- package/ios/Tests/VoltraSharedTests/SmokeTests.swift +8 -0
- package/ios/VoltraWidget.podspec +30 -0
- package/ios/app/NativeVoltra.h +5 -0
- package/ios/app/NativeVoltra.mm +211 -0
- package/ios/app/VoltraActivity.swift +5 -0
- package/ios/app/VoltraImagePreload.swift +154 -0
- package/ios/app/VoltraLiveActivityManager.swift +228 -0
- package/ios/app/VoltraLiveActivityService.swift +306 -0
- package/ios/app/VoltraModule.swift +215 -0
- package/ios/app/VoltraModuleImpl.swift +331 -0
- package/ios/app/VoltraOptions.swift +27 -0
- package/ios/app/VoltraViewComponentView.h +10 -0
- package/ios/app/VoltraViewComponentView.mm +67 -0
- package/ios/app/VoltraViewRoot.swift +63 -0
- package/ios/app/VoltraWidgetService.swift +154 -0
- package/ios/shared/BrotliCompression.swift +81 -0
- package/ios/shared/ComponentTypeID.swift +117 -0
- package/ios/shared/Data+hexString.swift +8 -0
- package/ios/shared/Date+toTimerInterval.swift +25 -0
- package/ios/shared/JSONValue.swift +128 -0
- package/ios/shared/ShortNames.swift +180 -0
- package/ios/shared/VoltraAttributes.swift +58 -0
- package/ios/shared/VoltraConfig.swift +18 -0
- package/ios/shared/VoltraConstants.swift +45 -0
- package/ios/shared/VoltraElement.swift +153 -0
- package/ios/shared/VoltraEvent.swift +72 -0
- package/ios/shared/VoltraEventBus.swift +80 -0
- package/ios/shared/VoltraImageStore.swift +119 -0
- package/ios/shared/VoltraInitialStateLocale.swift +54 -0
- package/ios/shared/VoltraInteractionIntent.swift +39 -0
- package/ios/shared/VoltraKeychainHelper.swift +178 -0
- package/ios/shared/VoltraLiveActivityPayload.swift +113 -0
- package/ios/shared/VoltraLogger.swift +30 -0
- package/ios/shared/VoltraNode.swift +194 -0
- package/ios/shared/VoltraPayloadMigrator.swift +63 -0
- package/ios/shared/VoltraPersistentEventQueue.swift +67 -0
- package/ios/shared/VoltraRefreshIntent.swift +29 -0
- package/ios/shared/VoltraRegion.swift +37 -0
- package/ios/shared/VoltraWidgetDefaults.swift +114 -0
- package/ios/shared/VoltraWidgetServerFetcher.swift +166 -0
- package/ios/target/VoltraHomeWidget.swift +508 -0
- package/ios/target/VoltraWidget.swift +158 -0
- package/ios/ui/Extensions/View.modifiers.swift +28 -0
- package/ios/ui/Extensions/VoltraNode+Parameters.swift +18 -0
- package/ios/ui/Generated/Parameters/.generated +8 -0
- package/ios/ui/Generated/Parameters/ButtonParameters.swift +15 -0
- package/ios/ui/Generated/Parameters/ChartParameters.swift +33 -0
- package/ios/ui/Generated/Parameters/CircularProgressViewParameters.swift +59 -0
- package/ios/ui/Generated/Parameters/ComponentParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/DividerParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/GaugeParameters.swift +54 -0
- package/ios/ui/Generated/Parameters/GlassContainerParameters.swift +15 -0
- package/ios/ui/Generated/Parameters/GroupBoxParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/HStackParameters.swift +34 -0
- package/ios/ui/Generated/Parameters/ImageParameters.swift +29 -0
- package/ios/ui/Generated/Parameters/LabelParameters.swift +18 -0
- package/ios/ui/Generated/Parameters/LinearGradientParameters.swift +27 -0
- package/ios/ui/Generated/Parameters/LinearProgressViewParameters.swift +64 -0
- package/ios/ui/Generated/Parameters/LinkParameters.swift +15 -0
- package/ios/ui/Generated/Parameters/MaskParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/SpacerParameters.swift +15 -0
- package/ios/ui/Generated/Parameters/SymbolParameters.swift +59 -0
- package/ios/ui/Generated/Parameters/TextParameters.swift +18 -0
- package/ios/ui/Generated/Parameters/TimerParameters.swift +54 -0
- package/ios/ui/Generated/Parameters/ToggleParameters.swift +24 -0
- package/ios/ui/Generated/Parameters/VStackParameters.swift +34 -0
- package/ios/ui/Generated/Parameters/ViewParameters.swift +12 -0
- package/ios/ui/Generated/Parameters/ZStackParameters.swift +15 -0
- package/ios/ui/Helpers/VoltraDeepLinkResolver.swift +43 -0
- package/ios/ui/Helpers/VoltraProgressDriver.swift +52 -0
- package/ios/ui/Layout/FlexContainerHelper.swift +114 -0
- package/ios/ui/Layout/VoltraFlexStackLayout.swift +417 -0
- package/ios/ui/Protocols/VoltraView.swift +29 -0
- package/ios/ui/Style/BackgroundValue.swift +27 -0
- package/ios/ui/Style/CompositeStyle.swift +81 -0
- package/ios/ui/Style/DecorationStyle.swift +207 -0
- package/ios/ui/Style/FlexEnvironment.swift +35 -0
- package/ios/ui/Style/FontVariant.swift +4 -0
- package/ios/ui/Style/GlassEffect.swift +6 -0
- package/ios/ui/Style/JSColorParser.swift +517 -0
- package/ios/ui/Style/JSGradientParser.swift +674 -0
- package/ios/ui/Style/JSStyleParser.swift +223 -0
- package/ios/ui/Style/LayoutStyle.swift +184 -0
- package/ios/ui/Style/Overflow.swift +4 -0
- package/ios/ui/Style/RenderingStyle.swift +33 -0
- package/ios/ui/Style/StyleConverter.swift +202 -0
- package/ios/ui/Style/TextDecoration.swift +6 -0
- package/ios/ui/Style/TextStyle.swift +50 -0
- package/ios/ui/Style/View+applyStyle.swift +38 -0
- package/ios/ui/Views/VoltraButton.swift +57 -0
- package/ios/ui/Views/VoltraChart.swift +840 -0
- package/ios/ui/Views/VoltraCircularProgressView.swift +103 -0
- package/ios/ui/Views/VoltraDivider.swift +16 -0
- package/ios/ui/Views/VoltraFlexView.swift +33 -0
- package/ios/ui/Views/VoltraGauge.swift +65 -0
- package/ios/ui/Views/VoltraGlassContainer.swift +29 -0
- package/ios/ui/Views/VoltraGroupBox.swift +26 -0
- package/ios/ui/Views/VoltraHStack.swift +70 -0
- package/ios/ui/Views/VoltraImage.swift +109 -0
- package/ios/ui/Views/VoltraLabel.swift +24 -0
- package/ios/ui/Views/VoltraLinearGradient.swift +115 -0
- package/ios/ui/Views/VoltraLinearProgressView.swift +118 -0
- package/ios/ui/Views/VoltraLink.swift +25 -0
- package/ios/ui/Views/VoltraMask.swift +23 -0
- package/ios/ui/Views/VoltraSpacer.swift +16 -0
- package/ios/ui/Views/VoltraSymbol.swift +160 -0
- package/ios/ui/Views/VoltraText.swift +87 -0
- package/ios/ui/Views/VoltraTimer.swift +131 -0
- package/ios/ui/Views/VoltraToggle.swift +39 -0
- package/ios/ui/Views/VoltraVStack.swift +68 -0
- package/ios/ui/Views/VoltraZStack.swift +33 -0
- package/ios/ui/Voltra.swift +86 -0
- package/package.json +91 -18
- package/build/cjs/VoltraModule.js +0 -6
- package/build/cjs/VoltraModule.js.map +0 -1
- package/build/cjs/components/VoltraLiveActivityPreview.js +0 -20
- package/build/cjs/components/VoltraLiveActivityPreview.js.map +0 -1
- package/build/cjs/components/VoltraView.js +0 -37
- package/build/cjs/components/VoltraView.js.map +0 -1
- package/build/cjs/components/VoltraWidgetPreview.js +0 -26
- package/build/cjs/components/VoltraWidgetPreview.js.map +0 -1
- package/build/cjs/events.js +0 -19
- package/build/cjs/events.js.map +0 -1
- package/build/cjs/helpers.js +0 -30
- package/build/cjs/helpers.js.map +0 -1
- package/build/cjs/index.js +0 -49
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/live-activity/api.js +0 -158
- 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 -54
- 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 -7
- 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 -22
- package/build/cjs/utils/useUpdateOnHMR.js.map +0 -1
- package/build/cjs/widgets/server-credentials.js +0 -18
- package/build/cjs/widgets/server-credentials.js.map +0 -1
- package/build/cjs/widgets/widget-api.js +0 -59
- 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/components/VoltraLiveActivityPreview.js +0 -17
- package/build/esm/components/VoltraLiveActivityPreview.js.map +0 -1
- package/build/esm/components/VoltraView.js +0 -34
- package/build/esm/components/VoltraView.js.map +0 -1
- package/build/esm/components/VoltraWidgetPreview.js +0 -23
- package/build/esm/components/VoltraWidgetPreview.js.map +0 -1
- package/build/esm/events.js +0 -13
- package/build/esm/events.js.map +0 -1
- package/build/esm/helpers.js +0 -23
- package/build/esm/helpers.js.map +0 -1
- package/build/esm/index.js +0 -10
- package/build/esm/index.js.map +0 -1
- package/build/esm/live-activity/api.js +0 -146
- 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 -46
- 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.map +0 -1
- package/build/esm/utils/index.js.map +0 -1
- package/build/esm/utils/useUpdateOnHMR.js +0 -18
- package/build/esm/utils/useUpdateOnHMR.js.map +0 -1
- package/build/esm/widgets/server-credentials.js +0 -11
- package/build/esm/widgets/server-credentials.js.map +0 -1
- package/build/esm/widgets/widget-api.js +0 -47
- package/build/esm/widgets/widget-api.js.map +0 -1
- package/build/types/VoltraModule.d.ts +0 -44
- package/build/types/VoltraModule.d.ts.map +0 -1
- package/build/types/components/VoltraLiveActivityPreview.d.ts.map +0 -1
- package/build/types/components/VoltraView.d.ts.map +0 -1
- package/build/types/components/VoltraWidgetPreview.d.ts.map +0 -1
- package/build/types/events.d.ts.map +0 -1
- package/build/types/helpers.d.ts.map +0 -1
- package/build/types/index.d.ts.map +0 -1
- package/build/types/live-activity/api.d.ts.map +0 -1
- package/build/types/logger.d.ts.map +0 -1
- package/build/types/preload.d.ts.map +0 -1
- package/build/types/types.d.ts.map +0 -1
- package/build/types/utils/assertRunningOnApple.d.ts.map +0 -1
- package/build/types/utils/helpers.d.ts.map +0 -1
- package/build/types/utils/index.d.ts.map +0 -1
- package/build/types/utils/useUpdateOnHMR.d.ts.map +0 -1
- package/build/types/widgets/server-credentials.d.ts.map +0 -1
- package/build/types/widgets/widget-api.d.ts.map +0 -1
- /package/build/{types → typescript/commonjs}/components/VoltraLiveActivityPreview.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/components/VoltraView.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/components/VoltraWidgetPreview.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/events.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/helpers.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/live-activity/api.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/logger.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/preload.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/types.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/utils/assertRunningOnApple.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/utils/helpers.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/utils/index.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/utils/useUpdateOnHMR.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/widgets/server-credentials.d.ts +0 -0
- /package/build/{types → typescript/commonjs}/widgets/widget-api.d.ts +0 -0
- /package/{build → expo-plugin/build}/cjs/package.json +0 -0
- /package/{build → expo-plugin/build}/cjs/types.js +0 -0
- /package/{build → expo-plugin/build}/cjs/types.js.map +0 -0
- /package/{build → expo-plugin/build}/esm/package.json +0 -0
- /package/{build → expo-plugin/build}/esm/types.js +0 -0
- /package/{build → expo-plugin/build}/esm/types.js.map +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SymbolParameters.swift
|
|
3
|
+
|
|
4
|
+
// AUTO-GENERATED from data/components.json
|
|
5
|
+
// DO NOT EDIT MANUALLY - Changes will be overwritten
|
|
6
|
+
// Schema version: 1.0.0
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/// Parameters for Symbol component
|
|
11
|
+
/// Display SF Symbols with advanced configuration
|
|
12
|
+
public struct SymbolParameters: ComponentParameters {
|
|
13
|
+
/// SF Symbol name
|
|
14
|
+
public let name: String?
|
|
15
|
+
|
|
16
|
+
/// Symbol rendering type
|
|
17
|
+
public let type: String?
|
|
18
|
+
|
|
19
|
+
/// Symbol scale
|
|
20
|
+
public let scale: String?
|
|
21
|
+
|
|
22
|
+
/// Symbol weight
|
|
23
|
+
public let weight: String?
|
|
24
|
+
|
|
25
|
+
/// Symbol size in points
|
|
26
|
+
public let size: Double
|
|
27
|
+
|
|
28
|
+
/// Tint color for the symbol
|
|
29
|
+
public let tintColor: String?
|
|
30
|
+
|
|
31
|
+
/// Pipe-separated colors for palette type
|
|
32
|
+
public let colors: String?
|
|
33
|
+
|
|
34
|
+
/// Image resize mode
|
|
35
|
+
public let resizeMode: String?
|
|
36
|
+
|
|
37
|
+
enum CodingKeys: String, CodingKey {
|
|
38
|
+
case name
|
|
39
|
+
case type
|
|
40
|
+
case scale
|
|
41
|
+
case weight
|
|
42
|
+
case size
|
|
43
|
+
case tintColor
|
|
44
|
+
case colors
|
|
45
|
+
case resizeMode
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public init(from decoder: Decoder) throws {
|
|
49
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
50
|
+
name = try container.decodeIfPresent(String.self, forKey: .name)
|
|
51
|
+
type = try container.decodeIfPresent(String.self, forKey: .type)
|
|
52
|
+
scale = try container.decodeIfPresent(String.self, forKey: .scale)
|
|
53
|
+
weight = try container.decodeIfPresent(String.self, forKey: .weight)
|
|
54
|
+
size = try container.decodeIfPresent(Double.self, forKey: .size) ?? 24
|
|
55
|
+
tintColor = try container.decodeIfPresent(String.self, forKey: .tintColor)
|
|
56
|
+
colors = try container.decodeIfPresent(String.self, forKey: .colors)
|
|
57
|
+
resizeMode = try container.decodeIfPresent(String.self, forKey: .resizeMode)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//
|
|
2
|
+
// TextParameters.swift
|
|
3
|
+
|
|
4
|
+
// AUTO-GENERATED from data/components.json
|
|
5
|
+
// DO NOT EDIT MANUALLY - Changes will be overwritten
|
|
6
|
+
// Schema version: 1.0.0
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/// Parameters for Text component
|
|
11
|
+
/// Display text content
|
|
12
|
+
public struct TextParameters: ComponentParameters {
|
|
13
|
+
/// Maximum number of lines to display
|
|
14
|
+
public let numberOfLines: Double?
|
|
15
|
+
|
|
16
|
+
/// Text alignment for multiline text
|
|
17
|
+
public let multilineTextAlignment: String?
|
|
18
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
//
|
|
2
|
+
// TimerParameters.swift
|
|
3
|
+
|
|
4
|
+
// AUTO-GENERATED from data/components.json
|
|
5
|
+
// DO NOT EDIT MANUALLY - Changes will be overwritten
|
|
6
|
+
// Schema version: 1.0.0
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/// Parameters for Timer component
|
|
11
|
+
/// Text-based countdown/stopwatch timer component
|
|
12
|
+
public struct TimerParameters: ComponentParameters {
|
|
13
|
+
/// End time in milliseconds since epoch
|
|
14
|
+
public let endAtMs: Double?
|
|
15
|
+
|
|
16
|
+
/// Start time in milliseconds since epoch
|
|
17
|
+
public let startAtMs: Double?
|
|
18
|
+
|
|
19
|
+
/// Duration in milliseconds
|
|
20
|
+
public let durationMs: Double?
|
|
21
|
+
|
|
22
|
+
/// Count direction
|
|
23
|
+
public let direction: String
|
|
24
|
+
|
|
25
|
+
/// Text formatting style
|
|
26
|
+
public let textStyle: String
|
|
27
|
+
|
|
28
|
+
/// JSON-encoded TextTemplates object with running/completed templates
|
|
29
|
+
public let textTemplates: String?
|
|
30
|
+
|
|
31
|
+
/// Whether to show hours component when duration exceeds 60 minutes. If false, minutes will exceed 60 (e.g., 94:00 instead of 1:34:00)
|
|
32
|
+
public let showHours: Bool
|
|
33
|
+
|
|
34
|
+
enum CodingKeys: String, CodingKey {
|
|
35
|
+
case endAtMs
|
|
36
|
+
case startAtMs
|
|
37
|
+
case durationMs
|
|
38
|
+
case direction
|
|
39
|
+
case textStyle
|
|
40
|
+
case textTemplates
|
|
41
|
+
case showHours
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public init(from decoder: Decoder) throws {
|
|
45
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
46
|
+
endAtMs = try container.decodeIfPresent(Double.self, forKey: .endAtMs)
|
|
47
|
+
startAtMs = try container.decodeIfPresent(Double.self, forKey: .startAtMs)
|
|
48
|
+
durationMs = try container.decodeIfPresent(Double.self, forKey: .durationMs)
|
|
49
|
+
direction = try container.decodeIfPresent(String.self, forKey: .direction) ?? "down"
|
|
50
|
+
textStyle = try container.decodeIfPresent(String.self, forKey: .textStyle) ?? "timer"
|
|
51
|
+
textTemplates = try container.decodeIfPresent(String.self, forKey: .textTemplates)
|
|
52
|
+
showHours = try container.decodeIfPresent(Bool.self, forKey: .showHours) ?? false
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ToggleParameters.swift
|
|
3
|
+
|
|
4
|
+
// AUTO-GENERATED from data/components.json
|
|
5
|
+
// DO NOT EDIT MANUALLY - Changes will be overwritten
|
|
6
|
+
// Schema version: 1.0.0
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/// Parameters for Toggle component
|
|
11
|
+
/// Toggle switch control
|
|
12
|
+
public struct ToggleParameters: ComponentParameters {
|
|
13
|
+
/// Initial toggle state
|
|
14
|
+
public let defaultValue: Bool
|
|
15
|
+
|
|
16
|
+
enum CodingKeys: String, CodingKey {
|
|
17
|
+
case defaultValue
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public init(from decoder: Decoder) throws {
|
|
21
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
22
|
+
defaultValue = try container.decodeIfPresent(Bool.self, forKey: .defaultValue) ?? false
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//
|
|
2
|
+
// VStackParameters.swift
|
|
3
|
+
|
|
4
|
+
// AUTO-GENERATED from data/components.json
|
|
5
|
+
// DO NOT EDIT MANUALLY - Changes will be overwritten
|
|
6
|
+
// Schema version: 1.0.0
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/// Parameters for VStack component
|
|
11
|
+
/// Vertical stack container
|
|
12
|
+
public struct VStackParameters: ComponentParameters {
|
|
13
|
+
/// Horizontal alignment
|
|
14
|
+
public let alignment: String
|
|
15
|
+
|
|
16
|
+
/// Layout mode. 'stack' uses native SwiftUI stacks. 'flex' uses RN-like flexbox.
|
|
17
|
+
public let layout: String
|
|
18
|
+
|
|
19
|
+
/// Spacing between children. Takes precedence over gap style property.
|
|
20
|
+
public let spacing: Double?
|
|
21
|
+
|
|
22
|
+
enum CodingKeys: String, CodingKey {
|
|
23
|
+
case alignment
|
|
24
|
+
case layout
|
|
25
|
+
case spacing
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public init(from decoder: Decoder) throws {
|
|
29
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
30
|
+
alignment = try container.decodeIfPresent(String.self, forKey: .alignment) ?? "center"
|
|
31
|
+
layout = try container.decodeIfPresent(String.self, forKey: .layout) ?? "stack"
|
|
32
|
+
spacing = try container.decodeIfPresent(Double.self, forKey: .spacing)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ViewParameters.swift
|
|
3
|
+
|
|
4
|
+
// AUTO-GENERATED from data/components.json
|
|
5
|
+
// DO NOT EDIT MANUALLY - Changes will be overwritten
|
|
6
|
+
// Schema version: 1.0.0
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/// Parameters for View component
|
|
11
|
+
/// Flex container with configurable direction. Always uses flexbox layout.
|
|
12
|
+
public struct ViewParameters: ComponentParameters {}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ZStackParameters.swift
|
|
3
|
+
|
|
4
|
+
// AUTO-GENERATED from data/components.json
|
|
5
|
+
// DO NOT EDIT MANUALLY - Changes will be overwritten
|
|
6
|
+
// Schema version: 1.0.0
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/// Parameters for ZStack component
|
|
11
|
+
/// Depth-based stack container
|
|
12
|
+
public struct ZStackParameters: ComponentParameters {
|
|
13
|
+
/// Child alignment
|
|
14
|
+
public let alignment: String?
|
|
15
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import ActivityKit
|
|
2
|
+
import Foundation
|
|
3
|
+
import SwiftUI
|
|
4
|
+
|
|
5
|
+
enum VoltraDeepLinkResolver {
|
|
6
|
+
static func deepLinkScheme() -> String? {
|
|
7
|
+
if let types = Bundle.main.object(forInfoDictionaryKey: "CFBundleURLTypes") as? [[String: Any]] {
|
|
8
|
+
for t in types {
|
|
9
|
+
if let schemes = t["CFBundleURLSchemes"] as? [String], let s = schemes.first, !s.isEmpty {
|
|
10
|
+
return s
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return Bundle.main.bundleIdentifier
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static func resolve(
|
|
18
|
+
_ attributes: VoltraAttributes
|
|
19
|
+
) -> URL? {
|
|
20
|
+
if let raw = attributes.deepLinkUrl, !raw.isEmpty {
|
|
21
|
+
return resolveUrl(raw)
|
|
22
|
+
}
|
|
23
|
+
return nil
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/// Resolves a URL string, supporting both absolute and relative paths
|
|
27
|
+
/// - Parameter raw: The URL string (e.g., "myapp://path", "/path", or "path")
|
|
28
|
+
/// - Returns: A resolved URL, or nil if invalid
|
|
29
|
+
static func resolveUrl(_ raw: String) -> URL? {
|
|
30
|
+
guard !raw.isEmpty else { return nil }
|
|
31
|
+
|
|
32
|
+
// If it's already an absolute URL, use it as-is
|
|
33
|
+
if raw.contains("://"), let url = URL(string: raw) { return url }
|
|
34
|
+
|
|
35
|
+
// Otherwise, prepend the app's URL scheme
|
|
36
|
+
if let scheme = deepLinkScheme() {
|
|
37
|
+
let path = raw.hasPrefix("/") ? raw : "/\(raw)"
|
|
38
|
+
return URL(string: "\(scheme)://\(path.trimmingCharacters(in: CharacterSet(charactersIn: "/")))")
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return nil
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//
|
|
2
|
+
// VoltraProgressDriver.swift
|
|
3
|
+
// Voltra
|
|
4
|
+
//
|
|
5
|
+
// Centralised helpers for time-driven progress behaviour shared by Timer,
|
|
6
|
+
// ProgressView, and Gauge implementations.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
import Foundation
|
|
10
|
+
|
|
11
|
+
enum VoltraProgressDriver {
|
|
12
|
+
/// Resolve a time range from the common millisecond-based parameters.
|
|
13
|
+
///
|
|
14
|
+
/// - Parameters:
|
|
15
|
+
/// - startAtMs: Epoch milliseconds when the animation should begin. Optional.
|
|
16
|
+
/// - endAtMs: Epoch milliseconds when the animation should end. Optional but preferred.
|
|
17
|
+
/// - durationMs: Duration in milliseconds. Used when `endAtMs` is omitted.
|
|
18
|
+
/// - Returns: A closed `Date` range representing the timeline, or `nil` if insufficient data was supplied.
|
|
19
|
+
static func resolveRange(startAtMs: Double?, endAtMs: Double?, durationMs: Double?) -> ClosedRange<Date>? {
|
|
20
|
+
if let endAtMs = endAtMs {
|
|
21
|
+
return Date.toTimerInterval(startAtMs: startAtMs, endAtMs: endAtMs)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if let durationMs = durationMs {
|
|
25
|
+
let now = Date()
|
|
26
|
+
let durationSeconds = max(0, durationMs / 1000)
|
|
27
|
+
let startDate: Date
|
|
28
|
+
if let startAtMs = startAtMs {
|
|
29
|
+
startDate = Date(timeIntervalSince1970: startAtMs / 1000)
|
|
30
|
+
} else {
|
|
31
|
+
startDate = now
|
|
32
|
+
}
|
|
33
|
+
let endDate = startDate.addingTimeInterval(durationSeconds)
|
|
34
|
+
let clampedEnd = max(endDate, now)
|
|
35
|
+
return startDate ... clampedEnd
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return nil
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// Compute progress (0...1) for the supplied range at `date`.
|
|
42
|
+
///
|
|
43
|
+
/// The progress value is clamped to `[0, 1]` unless `clamp` is `false`.
|
|
44
|
+
static func progress(for range: ClosedRange<Date>, at date: Date = Date(), clamp: Bool = true) -> Double {
|
|
45
|
+
let total = range.upperBound.timeIntervalSince(range.lowerBound)
|
|
46
|
+
if total <= 0 { return clamp ? 1 : 0 }
|
|
47
|
+
let elapsed = date.timeIntervalSince(range.lowerBound)
|
|
48
|
+
let ratio = elapsed / total
|
|
49
|
+
if !clamp { return ratio }
|
|
50
|
+
return min(max(ratio, 0), 1)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import SwiftUI
|
|
2
|
+
|
|
3
|
+
// MARK: - Shared Flex Container Rendering
|
|
4
|
+
|
|
5
|
+
/// Shared values computed from a flex container's style
|
|
6
|
+
struct FlexContainerValues {
|
|
7
|
+
let padding: EdgeInsets
|
|
8
|
+
let alignItems: FlexAlign
|
|
9
|
+
let justifyContent: FlexJustify
|
|
10
|
+
let gap: CGFloat
|
|
11
|
+
let layout: LayoutStyle
|
|
12
|
+
let decoration: DecorationStyle
|
|
13
|
+
let rendering: RenderingStyle
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
enum FlexContainerHelper {
|
|
17
|
+
/// Parse flex container values from an element's style dictionary.
|
|
18
|
+
/// `alignmentMapping` converts component-specific alignment strings (e.g. "leading", "top")
|
|
19
|
+
/// to FlexAlign values, used as fallback when alignItems isn't set in style.
|
|
20
|
+
static func parseValues(
|
|
21
|
+
from element: VoltraElement,
|
|
22
|
+
alignmentFallback: FlexAlign = .stretch
|
|
23
|
+
) -> FlexContainerValues {
|
|
24
|
+
let anyStyle = element.style?.mapValues { $0.toAny() } ?? [:]
|
|
25
|
+
let (layout, decoration, rendering, _) = StyleConverter.convert(anyStyle)
|
|
26
|
+
|
|
27
|
+
let alignItemsFromStyle = (anyStyle["alignItems"] as? String).flatMap { FlexAlign(fromStyle: $0) }
|
|
28
|
+
let justifyContentFromStyle = (anyStyle["justifyContent"] as? String).flatMap { FlexJustify(fromStyle: $0) }
|
|
29
|
+
|
|
30
|
+
let finalAlignItems = alignItemsFromStyle ?? alignmentFallback
|
|
31
|
+
let justifyContent = justifyContentFromStyle ?? .flexStart
|
|
32
|
+
let gap = layout.gap ?? 0
|
|
33
|
+
|
|
34
|
+
return FlexContainerValues(
|
|
35
|
+
padding: layout.padding ?? EdgeInsets(),
|
|
36
|
+
alignItems: finalAlignItems,
|
|
37
|
+
justifyContent: justifyContent,
|
|
38
|
+
gap: gap,
|
|
39
|
+
layout: layout,
|
|
40
|
+
decoration: decoration,
|
|
41
|
+
rendering: rendering
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/// Map a VStack alignment string to a FlexAlign fallback
|
|
46
|
+
static func verticalAlignmentFallback(_ alignment: String) -> FlexAlign {
|
|
47
|
+
switch alignment.lowercased() {
|
|
48
|
+
case "leading": return .flexStart
|
|
49
|
+
case "trailing": return .flexEnd
|
|
50
|
+
case "center": return .center
|
|
51
|
+
default: return .stretch
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/// Map an HStack alignment string to a FlexAlign fallback
|
|
56
|
+
static func horizontalAlignmentFallback(_ alignment: String) -> FlexAlign {
|
|
57
|
+
switch alignment.lowercased() {
|
|
58
|
+
case "top": return .flexStart
|
|
59
|
+
case "bottom": return .flexEnd
|
|
60
|
+
case "center": return .center
|
|
61
|
+
default: return .stretch
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// MARK: - Flex Container View Modifier
|
|
67
|
+
|
|
68
|
+
/// Applies layout, decoration, rendering, margin, offset, positioning, and zIndex
|
|
69
|
+
/// to a flex container — everything except padding (handled by the flex engine).
|
|
70
|
+
/// Also sets FlexItemLayoutKey so this view can be a flex child of another container.
|
|
71
|
+
struct FlexContainerStyleModifier: ViewModifier {
|
|
72
|
+
let values: FlexContainerValues
|
|
73
|
+
|
|
74
|
+
func body(content: Content) -> some View {
|
|
75
|
+
let layout = values.layout
|
|
76
|
+
let layoutWithoutPadding: LayoutStyle = {
|
|
77
|
+
var l = layout
|
|
78
|
+
l.padding = nil
|
|
79
|
+
return l
|
|
80
|
+
}()
|
|
81
|
+
|
|
82
|
+
content
|
|
83
|
+
.modifier(LayoutModifier(style: layoutWithoutPadding))
|
|
84
|
+
.modifier(DecorationModifier(style: values.decoration, layout: layout))
|
|
85
|
+
.modifier(RenderingModifier(style: values.rendering))
|
|
86
|
+
.voltraIfLet(layout.margin) { c, margin in
|
|
87
|
+
c.background(.clear).padding(margin)
|
|
88
|
+
}
|
|
89
|
+
.voltraIfLet(layout.relativeOffset) { c, offset in
|
|
90
|
+
c.offset(x: offset.x, y: offset.y)
|
|
91
|
+
}
|
|
92
|
+
.voltraIfLet(layout.absolutePosition) { c, position in
|
|
93
|
+
c.position(x: position.x, y: position.y)
|
|
94
|
+
}
|
|
95
|
+
.voltraIfLet(layout.zIndex) { c, z in
|
|
96
|
+
c.zIndex(z)
|
|
97
|
+
}
|
|
98
|
+
// Set FlexItemLayoutKey so this container can be a flex child of another container
|
|
99
|
+
.layoutValue(key: FlexItemLayoutKey.self, value: FlexItemValues(
|
|
100
|
+
flexGrow: layout.flexGrow,
|
|
101
|
+
flexShrink: layout.flexShrink,
|
|
102
|
+
flexBasis: layout.flexBasis,
|
|
103
|
+
width: layout.width,
|
|
104
|
+
height: layout.height,
|
|
105
|
+
minWidth: layout.minWidth,
|
|
106
|
+
maxWidth: layout.maxWidth,
|
|
107
|
+
minHeight: layout.minHeight,
|
|
108
|
+
maxHeight: layout.maxHeight,
|
|
109
|
+
alignSelf: layout.alignSelf,
|
|
110
|
+
margin: layout.margin,
|
|
111
|
+
aspectRatio: layout.aspectRatio
|
|
112
|
+
))
|
|
113
|
+
}
|
|
114
|
+
}
|