@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,158 @@
|
|
|
1
|
+
import ActivityKit
|
|
2
|
+
import Foundation
|
|
3
|
+
import SwiftUI
|
|
4
|
+
import WidgetKit
|
|
5
|
+
|
|
6
|
+
public struct VoltraWidget: Widget {
|
|
7
|
+
public init() {}
|
|
8
|
+
|
|
9
|
+
/// Convert an array of nodes to a single root node for rendering
|
|
10
|
+
private func rootNode(for region: VoltraRegion, from state: VoltraAttributes.ContentState) -> VoltraNode {
|
|
11
|
+
let nodes = state.regions[region] ?? []
|
|
12
|
+
if nodes.isEmpty { return .empty }
|
|
13
|
+
return nodes.count == 1 ? nodes[0] : .array(nodes)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public var body: some WidgetConfiguration {
|
|
17
|
+
if #available(iOS 18.0, *) {
|
|
18
|
+
return adaptiveConfig()
|
|
19
|
+
} else {
|
|
20
|
+
return defaultConfig()
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// MARK: - iOS 18+ Configuration (with supplemental activity families)
|
|
25
|
+
|
|
26
|
+
@available(iOS 18.0, *)
|
|
27
|
+
private func adaptiveConfig() -> some WidgetConfiguration {
|
|
28
|
+
ActivityConfiguration(for: VoltraAttributes.self) { context in
|
|
29
|
+
adaptiveLocksScreenView(context: context)
|
|
30
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
31
|
+
.voltraIfLet(context.state.activityBackgroundTint) { view, tint in
|
|
32
|
+
let color = JSColorParser.parse(tint)
|
|
33
|
+
view.activityBackgroundTint(color)
|
|
34
|
+
}
|
|
35
|
+
} dynamicIsland: { context in
|
|
36
|
+
dynamicIslandContent(context: context)
|
|
37
|
+
}
|
|
38
|
+
.supplementalActivityFamilies([.small, .medium])
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// MARK: - Default Configuration (iOS 16.2 - 17.x)
|
|
42
|
+
|
|
43
|
+
private func defaultConfig() -> some WidgetConfiguration {
|
|
44
|
+
ActivityConfiguration(for: VoltraAttributes.self) { context in
|
|
45
|
+
Voltra(root: rootNode(for: .lockScreen, from: context.state), activityId: context.activityID)
|
|
46
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
47
|
+
.voltraIfLet(context.state.activityBackgroundTint) { view, tint in
|
|
48
|
+
let color = JSColorParser.parse(tint)
|
|
49
|
+
view.activityBackgroundTint(color)
|
|
50
|
+
}
|
|
51
|
+
} dynamicIsland: { context in
|
|
52
|
+
dynamicIslandContent(context: context)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// MARK: - Adaptive Lock Screen View (iOS 18+)
|
|
57
|
+
|
|
58
|
+
@available(iOS 18.0, *)
|
|
59
|
+
private func adaptiveLocksScreenView(context: ActivityViewContext<VoltraAttributes>) -> some View {
|
|
60
|
+
VoltraAdaptiveLockScreenView(context: context, rootNodeProvider: rootNode)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// MARK: - Dynamic Island (shared between iOS versions)
|
|
64
|
+
|
|
65
|
+
private func dynamicIslandContent(context: ActivityViewContext<VoltraAttributes>) -> DynamicIsland {
|
|
66
|
+
let dynamicIsland = DynamicIsland {
|
|
67
|
+
DynamicIslandExpandedRegion(.leading) {
|
|
68
|
+
Voltra(root: rootNode(for: .islandExpandedLeading, from: context.state), activityId: context.activityID)
|
|
69
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
70
|
+
}
|
|
71
|
+
DynamicIslandExpandedRegion(.trailing) {
|
|
72
|
+
Voltra(root: rootNode(for: .islandExpandedTrailing, from: context.state), activityId: context.activityID)
|
|
73
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
74
|
+
}
|
|
75
|
+
DynamicIslandExpandedRegion(.center) {
|
|
76
|
+
Voltra(root: rootNode(for: .islandExpandedCenter, from: context.state), activityId: context.activityID)
|
|
77
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
78
|
+
}
|
|
79
|
+
DynamicIslandExpandedRegion(.bottom) {
|
|
80
|
+
Voltra(root: rootNode(for: .islandExpandedBottom, from: context.state), activityId: context.activityID)
|
|
81
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
82
|
+
}
|
|
83
|
+
} compactLeading: {
|
|
84
|
+
Voltra(root: rootNode(for: .islandCompactLeading, from: context.state), activityId: context.activityID)
|
|
85
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
86
|
+
} compactTrailing: {
|
|
87
|
+
Voltra(root: rootNode(for: .islandCompactTrailing, from: context.state), activityId: context.activityID)
|
|
88
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
89
|
+
} minimal: {
|
|
90
|
+
Voltra(root: rootNode(for: .islandMinimal, from: context.state), activityId: context.activityID)
|
|
91
|
+
.widgetURL(VoltraDeepLinkResolver.resolve(context.attributes))
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Apply keylineTint if specified
|
|
95
|
+
if let keylineTint = context.state.keylineTint,
|
|
96
|
+
let color = JSColorParser.parse(keylineTint)
|
|
97
|
+
{
|
|
98
|
+
return dynamicIsland.keylineTint(color)
|
|
99
|
+
} else {
|
|
100
|
+
return dynamicIsland
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// MARK: - Adaptive Lock Screen View Helper
|
|
106
|
+
|
|
107
|
+
@available(iOS 18.0, *)
|
|
108
|
+
private struct VoltraAdaptiveLockScreenView: View {
|
|
109
|
+
let context: ActivityViewContext<VoltraAttributes>
|
|
110
|
+
let rootNodeProvider: (VoltraRegion, VoltraAttributes.ContentState) -> VoltraNode
|
|
111
|
+
|
|
112
|
+
@Environment(\.activityFamily) private var activityFamily
|
|
113
|
+
|
|
114
|
+
var body: some View {
|
|
115
|
+
switch activityFamily {
|
|
116
|
+
case .small:
|
|
117
|
+
watchContent()
|
|
118
|
+
case .medium:
|
|
119
|
+
defaultContent()
|
|
120
|
+
@unknown default:
|
|
121
|
+
defaultContent()
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@ViewBuilder
|
|
126
|
+
private func watchContent() -> some View {
|
|
127
|
+
let leading = context.state.regions[.islandCompactLeading] ?? []
|
|
128
|
+
let trailing = context.state.regions[.islandCompactTrailing] ?? []
|
|
129
|
+
let hasCompactContent = !leading.isEmpty || !trailing.isEmpty
|
|
130
|
+
|
|
131
|
+
// 1. Try dedicated Watch region
|
|
132
|
+
if let nodes = context.state.regions[.supplementalActivityFamiliesSmall], !nodes.isEmpty {
|
|
133
|
+
Voltra(root: rootNodeProvider(.supplementalActivityFamiliesSmall, context.state), activityId: context.activityID)
|
|
134
|
+
}
|
|
135
|
+
// 2. Compose from compact Dynamic Island regions
|
|
136
|
+
else if hasCompactContent {
|
|
137
|
+
HStack(spacing: 0) {
|
|
138
|
+
if !leading.isEmpty {
|
|
139
|
+
Voltra(root: rootNodeProvider(.islandCompactLeading, context.state), activityId: context.activityID)
|
|
140
|
+
}
|
|
141
|
+
Spacer()
|
|
142
|
+
if !trailing.isEmpty {
|
|
143
|
+
Voltra(root: rootNodeProvider(.islandCompactTrailing, context.state), activityId: context.activityID)
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
.frame(maxWidth: .infinity)
|
|
147
|
+
}
|
|
148
|
+
// 3. No content available for Watch
|
|
149
|
+
else {
|
|
150
|
+
EmptyView()
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
private func defaultContent() -> some View {
|
|
155
|
+
// Default content for both StandBy (.medium) and unknown activity families
|
|
156
|
+
Voltra(root: rootNodeProvider(.lockScreen, context.state), activityId: context.activityID)
|
|
157
|
+
}
|
|
158
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import SwiftUI
|
|
2
|
+
|
|
3
|
+
extension View {
|
|
4
|
+
/// Conditionally apply a modifier if the value is not nil
|
|
5
|
+
///
|
|
6
|
+
/// - Parameters:
|
|
7
|
+
/// - value: The optional value to check
|
|
8
|
+
/// - transform: The transformation to apply if value is not nil
|
|
9
|
+
/// - Returns: The modified view or the original view if value is nil
|
|
10
|
+
@ViewBuilder
|
|
11
|
+
func voltraIfLet<Value, Content: View>(_ value: Value?, @ViewBuilder _ transform: (Self, Value) -> Content) -> some View {
|
|
12
|
+
if let value {
|
|
13
|
+
transform(self, value)
|
|
14
|
+
} else {
|
|
15
|
+
self
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/// Conditionally applies a transformation to the view.
|
|
20
|
+
@ViewBuilder
|
|
21
|
+
func voltraIf<Content: View>(_ condition: Bool, @ViewBuilder _ transform: (Self) -> Content) -> some View {
|
|
22
|
+
if condition {
|
|
23
|
+
transform(self)
|
|
24
|
+
} else {
|
|
25
|
+
self
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
|
|
3
|
+
public extension VoltraNode {
|
|
4
|
+
/// Generic type-safe parameter accessor
|
|
5
|
+
/// Only works on element cases, delegates to VoltraElement.parameters
|
|
6
|
+
/// - Parameter type: The parameter struct type to decode
|
|
7
|
+
/// - Returns: Decoded parameters (uses empty dict if props is nil)
|
|
8
|
+
func parameters<T: ComponentParameters>(_ type: T.Type) -> T {
|
|
9
|
+
// Only element cases have parameters
|
|
10
|
+
guard case let .element(element) = self else {
|
|
11
|
+
// For non-element cases, return default instance
|
|
12
|
+
// Safe to force-unwrap: decoding an empty JSON object always succeeds for ComponentParameters
|
|
13
|
+
return try! JSONDecoder().decode(T.self, from: Data("{}".utf8))
|
|
14
|
+
}
|
|
15
|
+
// Delegate to VoltraElement's parameters method
|
|
16
|
+
return element.parameters(type)
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ButtonParameters.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 Button component
|
|
11
|
+
/// Interactive button component
|
|
12
|
+
public struct ButtonParameters: ComponentParameters {
|
|
13
|
+
/// Visual style of the button
|
|
14
|
+
public let buttonStyle: String?
|
|
15
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ChartParameters.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 Chart component
|
|
11
|
+
/// Charts component for data visualization
|
|
12
|
+
public struct ChartParameters: ComponentParameters {
|
|
13
|
+
/// Compact mark data encoded from children by toJSON
|
|
14
|
+
public let marks: String?
|
|
15
|
+
|
|
16
|
+
/// Show or hide the x-axis
|
|
17
|
+
public let xAxisVisibility: String?
|
|
18
|
+
|
|
19
|
+
/// Configure x-axis grid line style
|
|
20
|
+
public let xAxisGridStyle: String?
|
|
21
|
+
|
|
22
|
+
/// Show or hide the y-axis
|
|
23
|
+
public let yAxisVisibility: String?
|
|
24
|
+
|
|
25
|
+
/// Configure y-axis grid line style
|
|
26
|
+
public let yAxisGridStyle: String?
|
|
27
|
+
|
|
28
|
+
/// Show or hide the chart legend
|
|
29
|
+
public let legendVisibility: String?
|
|
30
|
+
|
|
31
|
+
/// Map of series name to color string
|
|
32
|
+
public let foregroundStyleScale: String?
|
|
33
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
//
|
|
2
|
+
// CircularProgressViewParameters.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 CircularProgressView component
|
|
11
|
+
/// Circular progress indicator (determinate or timer-based)
|
|
12
|
+
public struct CircularProgressViewParameters: ComponentParameters {
|
|
13
|
+
/// Current progress value
|
|
14
|
+
public let value: Double?
|
|
15
|
+
|
|
16
|
+
/// Whether to count down instead of up
|
|
17
|
+
public let countDown: Bool?
|
|
18
|
+
|
|
19
|
+
/// Maximum progress value
|
|
20
|
+
public let maximumValue: Double
|
|
21
|
+
|
|
22
|
+
/// End time in milliseconds since epoch
|
|
23
|
+
public let endAtMs: Double?
|
|
24
|
+
|
|
25
|
+
/// Start time in milliseconds since epoch
|
|
26
|
+
public let startAtMs: Double?
|
|
27
|
+
|
|
28
|
+
/// Color for the track (background) of the circular progress indicator
|
|
29
|
+
public let trackColor: String?
|
|
30
|
+
|
|
31
|
+
/// Color for the progress fill
|
|
32
|
+
public let progressColor: String?
|
|
33
|
+
|
|
34
|
+
/// Width of the stroke line
|
|
35
|
+
public let lineWidth: Double?
|
|
36
|
+
|
|
37
|
+
enum CodingKeys: String, CodingKey {
|
|
38
|
+
case value
|
|
39
|
+
case countDown
|
|
40
|
+
case maximumValue
|
|
41
|
+
case endAtMs
|
|
42
|
+
case startAtMs
|
|
43
|
+
case trackColor
|
|
44
|
+
case progressColor
|
|
45
|
+
case lineWidth
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public init(from decoder: Decoder) throws {
|
|
49
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
50
|
+
value = try container.decodeIfPresent(Double.self, forKey: .value)
|
|
51
|
+
countDown = try container.decodeIfPresent(Bool.self, forKey: .countDown)
|
|
52
|
+
maximumValue = try container.decodeIfPresent(Double.self, forKey: .maximumValue) ?? 100
|
|
53
|
+
endAtMs = try container.decodeIfPresent(Double.self, forKey: .endAtMs)
|
|
54
|
+
startAtMs = try container.decodeIfPresent(Double.self, forKey: .startAtMs)
|
|
55
|
+
trackColor = try container.decodeIfPresent(String.self, forKey: .trackColor)
|
|
56
|
+
progressColor = try container.decodeIfPresent(String.self, forKey: .progressColor)
|
|
57
|
+
lineWidth = try container.decodeIfPresent(Double.self, forKey: .lineWidth)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ComponentParameters.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
|
+
/// Protocol marker for all component parameter types
|
|
11
|
+
/// All component-specific parameter structs conform to this protocol
|
|
12
|
+
public protocol ComponentParameters: Codable, Hashable {}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//
|
|
2
|
+
// DividerParameters.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 Divider component
|
|
11
|
+
/// Visual divider
|
|
12
|
+
public struct DividerParameters: ComponentParameters {}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
//
|
|
2
|
+
// GaugeParameters.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 Gauge component
|
|
11
|
+
/// Gauge indicator for progress visualization
|
|
12
|
+
public struct GaugeParameters: ComponentParameters {
|
|
13
|
+
/// Current gauge value
|
|
14
|
+
public let value: Double?
|
|
15
|
+
|
|
16
|
+
/// Minimum value of the gauge range
|
|
17
|
+
public let minimumValue: Double
|
|
18
|
+
|
|
19
|
+
/// Maximum value of the gauge range
|
|
20
|
+
public let maximumValue: Double
|
|
21
|
+
|
|
22
|
+
/// End time in milliseconds since epoch
|
|
23
|
+
public let endAtMs: Double?
|
|
24
|
+
|
|
25
|
+
/// Start time in milliseconds since epoch
|
|
26
|
+
public let startAtMs: Double?
|
|
27
|
+
|
|
28
|
+
/// Tint color for the gauge
|
|
29
|
+
public let tintColor: String?
|
|
30
|
+
|
|
31
|
+
/// Visual style of the gauge
|
|
32
|
+
public let gaugeStyle: String?
|
|
33
|
+
|
|
34
|
+
enum CodingKeys: String, CodingKey {
|
|
35
|
+
case value
|
|
36
|
+
case minimumValue
|
|
37
|
+
case maximumValue
|
|
38
|
+
case endAtMs
|
|
39
|
+
case startAtMs
|
|
40
|
+
case tintColor
|
|
41
|
+
case gaugeStyle
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public init(from decoder: Decoder) throws {
|
|
45
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
46
|
+
value = try container.decodeIfPresent(Double.self, forKey: .value)
|
|
47
|
+
minimumValue = try container.decodeIfPresent(Double.self, forKey: .minimumValue) ?? 0
|
|
48
|
+
maximumValue = try container.decodeIfPresent(Double.self, forKey: .maximumValue) ?? 1
|
|
49
|
+
endAtMs = try container.decodeIfPresent(Double.self, forKey: .endAtMs)
|
|
50
|
+
startAtMs = try container.decodeIfPresent(Double.self, forKey: .startAtMs)
|
|
51
|
+
tintColor = try container.decodeIfPresent(String.self, forKey: .tintColor)
|
|
52
|
+
gaugeStyle = try container.decodeIfPresent(String.self, forKey: .gaugeStyle)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// GlassContainerParameters.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 GlassContainer component
|
|
11
|
+
/// iOS 26+ Liquid Glass container
|
|
12
|
+
public struct GlassContainerParameters: ComponentParameters {
|
|
13
|
+
/// Spacing between glass elements
|
|
14
|
+
public let spacing: Double?
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//
|
|
2
|
+
// GroupBoxParameters.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 GroupBox component
|
|
11
|
+
/// Grouped content container
|
|
12
|
+
public struct GroupBoxParameters: ComponentParameters {}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//
|
|
2
|
+
// HStackParameters.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 HStack component
|
|
11
|
+
/// Horizontal stack container
|
|
12
|
+
public struct HStackParameters: ComponentParameters {
|
|
13
|
+
/// Vertical 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,29 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ImageParameters.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 Image component
|
|
11
|
+
/// Display images from asset catalog or base64 data
|
|
12
|
+
public struct ImageParameters: ComponentParameters {
|
|
13
|
+
/// Image source - either { assetName: string } for asset catalog images or { base64: string } for base64 encoded images
|
|
14
|
+
public let source: String?
|
|
15
|
+
|
|
16
|
+
/// How the image should be resized to fit its container
|
|
17
|
+
public let resizeMode: String
|
|
18
|
+
|
|
19
|
+
enum CodingKeys: String, CodingKey {
|
|
20
|
+
case source
|
|
21
|
+
case resizeMode
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public init(from decoder: Decoder) throws {
|
|
25
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
26
|
+
source = try container.decodeIfPresent(String.self, forKey: .source)
|
|
27
|
+
resizeMode = try container.decodeIfPresent(String.self, forKey: .resizeMode) ?? "cover"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LabelParameters.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 Label component
|
|
11
|
+
/// Label with optional icon
|
|
12
|
+
public struct LabelParameters: ComponentParameters {
|
|
13
|
+
/// Text content for the label
|
|
14
|
+
public let title: String?
|
|
15
|
+
|
|
16
|
+
/// SF Symbol name for the label icon
|
|
17
|
+
public let systemImage: String?
|
|
18
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LinearGradientParameters.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 LinearGradient component
|
|
11
|
+
/// Linear gradient background with children
|
|
12
|
+
public struct LinearGradientParameters: ComponentParameters {
|
|
13
|
+
/// Pipe-separated color list (e.g., '#ff0000|#00ff00|#0000ff')
|
|
14
|
+
public let colors: String?
|
|
15
|
+
|
|
16
|
+
/// Pipe-separated gradient stops (e.g., 'red@0|orange@0.5|yellow@1')
|
|
17
|
+
public let stops: String?
|
|
18
|
+
|
|
19
|
+
/// Start point (e.g., 'topLeading', 'center', or 'x,y')
|
|
20
|
+
public let startPoint: String?
|
|
21
|
+
|
|
22
|
+
/// End point (e.g., 'bottomTrailing', 'center', or 'x,y')
|
|
23
|
+
public let endPoint: String?
|
|
24
|
+
|
|
25
|
+
/// Enable dithering (system-controlled)
|
|
26
|
+
public let dither: Bool?
|
|
27
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LinearProgressViewParameters.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 LinearProgressView component
|
|
11
|
+
/// Linear progress indicator (determinate or timer-based)
|
|
12
|
+
public struct LinearProgressViewParameters: ComponentParameters {
|
|
13
|
+
/// Current progress value
|
|
14
|
+
public let value: Double?
|
|
15
|
+
|
|
16
|
+
/// Whether to count down instead of up
|
|
17
|
+
public let countDown: Bool?
|
|
18
|
+
|
|
19
|
+
/// Maximum progress value
|
|
20
|
+
public let maximumValue: Double
|
|
21
|
+
|
|
22
|
+
/// End time in milliseconds since epoch
|
|
23
|
+
public let endAtMs: Double?
|
|
24
|
+
|
|
25
|
+
/// Start time in milliseconds since epoch
|
|
26
|
+
public let startAtMs: Double?
|
|
27
|
+
|
|
28
|
+
/// Color for the track (background) of the progress bar
|
|
29
|
+
public let trackColor: String?
|
|
30
|
+
|
|
31
|
+
/// Color for the progress fill
|
|
32
|
+
public let progressColor: String?
|
|
33
|
+
|
|
34
|
+
/// Corner radius for the progress bar
|
|
35
|
+
public let cornerRadius: Double?
|
|
36
|
+
|
|
37
|
+
/// Explicit height for the progress bar
|
|
38
|
+
public let height: Double?
|
|
39
|
+
|
|
40
|
+
enum CodingKeys: String, CodingKey {
|
|
41
|
+
case value
|
|
42
|
+
case countDown
|
|
43
|
+
case maximumValue
|
|
44
|
+
case endAtMs
|
|
45
|
+
case startAtMs
|
|
46
|
+
case trackColor
|
|
47
|
+
case progressColor
|
|
48
|
+
case cornerRadius
|
|
49
|
+
case height
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public init(from decoder: Decoder) throws {
|
|
53
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
54
|
+
value = try container.decodeIfPresent(Double.self, forKey: .value)
|
|
55
|
+
countDown = try container.decodeIfPresent(Bool.self, forKey: .countDown)
|
|
56
|
+
maximumValue = try container.decodeIfPresent(Double.self, forKey: .maximumValue) ?? 100
|
|
57
|
+
endAtMs = try container.decodeIfPresent(Double.self, forKey: .endAtMs)
|
|
58
|
+
startAtMs = try container.decodeIfPresent(Double.self, forKey: .startAtMs)
|
|
59
|
+
trackColor = try container.decodeIfPresent(String.self, forKey: .trackColor)
|
|
60
|
+
progressColor = try container.decodeIfPresent(String.self, forKey: .progressColor)
|
|
61
|
+
cornerRadius = try container.decodeIfPresent(Double.self, forKey: .cornerRadius)
|
|
62
|
+
height = try container.decodeIfPresent(Double.self, forKey: .height)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LinkParameters.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 Link component
|
|
11
|
+
/// Navigable link that opens a URL when tapped
|
|
12
|
+
public struct LinkParameters: ComponentParameters {
|
|
13
|
+
/// URL to navigate to when the link is tapped
|
|
14
|
+
public let destination: String?
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MaskParameters.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 Mask component
|
|
11
|
+
/// Mask content using any Voltra element as the mask shape
|
|
12
|
+
public struct MaskParameters: ComponentParameters {}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SpacerParameters.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 Spacer component
|
|
11
|
+
/// Flexible space
|
|
12
|
+
public struct SpacerParameters: ComponentParameters {
|
|
13
|
+
/// Minimum length
|
|
14
|
+
public let minLength: Double?
|
|
15
|
+
}
|