@use-voltra/android 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/build/cjs/VoltraModule.js +6 -0
- package/build/cjs/VoltraModule.js.map +1 -0
- package/build/cjs/client.js +34 -0
- package/build/cjs/client.js.map +1 -0
- package/build/cjs/components/VoltraView.js +48 -0
- package/build/cjs/components/VoltraView.js.map +1 -0
- package/build/cjs/components/VoltraWidgetPreview.js +28 -0
- package/build/cjs/components/VoltraWidgetPreview.js.map +1 -0
- package/build/cjs/events.js +35 -0
- package/build/cjs/events.js.map +1 -0
- package/build/cjs/index.js +39 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/jsx/AreaMark.js +10 -0
- package/build/cjs/jsx/AreaMark.js.map +1 -0
- package/build/cjs/jsx/BarMark.js +10 -0
- package/build/cjs/jsx/BarMark.js.map +1 -0
- package/build/cjs/jsx/Box.js +6 -0
- package/build/cjs/jsx/Box.js.map +1 -0
- package/build/cjs/jsx/Button.js +6 -0
- package/build/cjs/jsx/Button.js.map +1 -0
- package/build/cjs/jsx/Chart.js +116 -0
- package/build/cjs/jsx/Chart.js.map +1 -0
- package/build/cjs/jsx/CheckBox.js +6 -0
- package/build/cjs/jsx/CheckBox.js.map +1 -0
- package/build/cjs/jsx/CircleIconButton.js +14 -0
- package/build/cjs/jsx/CircleIconButton.js.map +1 -0
- package/build/cjs/jsx/CircularProgressIndicator.js +6 -0
- package/build/cjs/jsx/CircularProgressIndicator.js.map +1 -0
- package/build/cjs/jsx/Column.js +6 -0
- package/build/cjs/jsx/Column.js.map +1 -0
- package/build/cjs/jsx/FilledButton.js +14 -0
- package/build/cjs/jsx/FilledButton.js.map +1 -0
- package/build/cjs/jsx/Image.js +14 -0
- package/build/cjs/jsx/Image.js.map +1 -0
- package/build/cjs/jsx/LazyColumn.js +6 -0
- package/build/cjs/jsx/LazyColumn.js.map +1 -0
- package/build/cjs/jsx/LazyVerticalGrid.js +6 -0
- package/build/cjs/jsx/LazyVerticalGrid.js.map +1 -0
- package/build/cjs/jsx/LineMark.js +10 -0
- package/build/cjs/jsx/LineMark.js.map +1 -0
- package/build/cjs/jsx/LinearProgressIndicator.js +6 -0
- package/build/cjs/jsx/LinearProgressIndicator.js.map +1 -0
- package/build/cjs/jsx/OutlineButton.js +14 -0
- package/build/cjs/jsx/OutlineButton.js.map +1 -0
- package/build/cjs/jsx/PointMark.js +10 -0
- package/build/cjs/jsx/PointMark.js.map +1 -0
- package/build/cjs/jsx/RadioButton.js +6 -0
- package/build/cjs/jsx/RadioButton.js.map +1 -0
- package/build/cjs/jsx/Row.js +6 -0
- package/build/cjs/jsx/Row.js.map +1 -0
- package/build/cjs/jsx/RuleMark.js +10 -0
- package/build/cjs/jsx/RuleMark.js.map +1 -0
- package/build/cjs/jsx/Scaffold.js +6 -0
- package/build/cjs/jsx/Scaffold.js.map +1 -0
- package/build/cjs/jsx/SectorMark.js +10 -0
- package/build/cjs/jsx/SectorMark.js.map +1 -0
- package/build/cjs/jsx/Spacer.js +6 -0
- package/build/cjs/jsx/Spacer.js.map +1 -0
- package/build/cjs/jsx/SquareIconButton.js +14 -0
- package/build/cjs/jsx/SquareIconButton.js.map +1 -0
- package/build/cjs/jsx/Switch.js +6 -0
- package/build/cjs/jsx/Switch.js.map +1 -0
- package/build/cjs/jsx/Text.js +6 -0
- package/build/cjs/jsx/Text.js.map +1 -0
- package/build/cjs/jsx/TitleBar.js +14 -0
- package/build/cjs/jsx/TitleBar.js.map +1 -0
- package/build/cjs/jsx/baseProps.js +3 -0
- package/build/cjs/jsx/baseProps.js.map +1 -0
- package/build/cjs/jsx/chart-types.js +3 -0
- package/build/cjs/jsx/chart-types.js.map +1 -0
- package/build/cjs/jsx/createVoltraComponent.js +21 -0
- package/build/cjs/jsx/createVoltraComponent.js.map +1 -0
- package/build/cjs/jsx/index.js +18 -0
- package/build/cjs/jsx/index.js.map +1 -0
- package/build/cjs/jsx/primitives.js +45 -0
- package/build/cjs/jsx/primitives.js.map +1 -0
- package/build/cjs/jsx/props/Box.js +3 -0
- package/build/cjs/jsx/props/Box.js.map +1 -0
- package/build/cjs/jsx/props/Button.js +3 -0
- package/build/cjs/jsx/props/Button.js.map +1 -0
- package/build/cjs/jsx/props/CheckBox.js +3 -0
- package/build/cjs/jsx/props/CheckBox.js.map +1 -0
- package/build/cjs/jsx/props/CircleIconButton.js +3 -0
- package/build/cjs/jsx/props/CircleIconButton.js.map +1 -0
- package/build/cjs/jsx/props/CircularProgressIndicator.js +3 -0
- package/build/cjs/jsx/props/CircularProgressIndicator.js.map +1 -0
- package/build/cjs/jsx/props/Column.js +3 -0
- package/build/cjs/jsx/props/Column.js.map +1 -0
- package/build/cjs/jsx/props/FilledButton.js +3 -0
- package/build/cjs/jsx/props/FilledButton.js.map +1 -0
- package/build/cjs/jsx/props/Image.js +6 -0
- package/build/cjs/jsx/props/Image.js.map +1 -0
- package/build/cjs/jsx/props/LazyColumn.js +3 -0
- package/build/cjs/jsx/props/LazyColumn.js.map +1 -0
- package/build/cjs/jsx/props/LazyVerticalGrid.js +3 -0
- package/build/cjs/jsx/props/LazyVerticalGrid.js.map +1 -0
- package/build/cjs/jsx/props/LinearProgressIndicator.js +3 -0
- package/build/cjs/jsx/props/LinearProgressIndicator.js.map +1 -0
- package/build/cjs/jsx/props/OutlineButton.js +3 -0
- package/build/cjs/jsx/props/OutlineButton.js.map +1 -0
- package/build/cjs/jsx/props/RadioButton.js +3 -0
- package/build/cjs/jsx/props/RadioButton.js.map +1 -0
- package/build/cjs/jsx/props/Row.js +3 -0
- package/build/cjs/jsx/props/Row.js.map +1 -0
- package/build/cjs/jsx/props/Scaffold.js +3 -0
- package/build/cjs/jsx/props/Scaffold.js.map +1 -0
- package/build/cjs/jsx/props/Spacer.js +3 -0
- package/build/cjs/jsx/props/Spacer.js.map +1 -0
- package/build/cjs/jsx/props/SquareIconButton.js +3 -0
- package/build/cjs/jsx/props/SquareIconButton.js.map +1 -0
- package/build/cjs/jsx/props/Switch.js +3 -0
- package/build/cjs/jsx/props/Switch.js.map +1 -0
- package/build/cjs/jsx/props/Text.js +3 -0
- package/build/cjs/jsx/props/Text.js.map +1 -0
- package/build/cjs/jsx/props/TitleBar.js +3 -0
- package/build/cjs/jsx/props/TitleBar.js.map +1 -0
- package/build/cjs/live-update/api.js +215 -0
- package/build/cjs/live-update/api.js.map +1 -0
- package/build/cjs/live-update/renderer.js +46 -0
- package/build/cjs/live-update/renderer.js.map +1 -0
- package/build/cjs/live-update/types.js +3 -0
- package/build/cjs/live-update/types.js.map +1 -0
- package/build/cjs/package.json +3 -0
- package/build/cjs/payload/component-ids.js +84 -0
- package/build/cjs/payload/component-ids.js.map +1 -0
- package/build/cjs/preload.js +80 -0
- package/build/cjs/preload.js.map +1 -0
- package/build/cjs/renderer/index.js +8 -0
- package/build/cjs/renderer/index.js.map +1 -0
- package/build/cjs/renderer/renderer.js +18 -0
- package/build/cjs/renderer/renderer.js.map +1 -0
- package/build/cjs/server.js +8 -0
- package/build/cjs/server.js.map +1 -0
- package/build/cjs/styles/types.js +7 -0
- package/build/cjs/styles/types.js.map +1 -0
- package/build/cjs/types.js +3 -0
- package/build/cjs/types.js.map +1 -0
- package/build/cjs/utils/index.js +18 -0
- package/build/cjs/utils/index.js.map +1 -0
- package/build/cjs/utils/useUpdateOnHMR.js +27 -0
- package/build/cjs/utils/useUpdateOnHMR.js.map +1 -0
- package/build/cjs/widgets/api.js +155 -0
- package/build/cjs/widgets/api.js.map +1 -0
- package/build/cjs/widgets/index.js +12 -0
- package/build/cjs/widgets/index.js.map +1 -0
- package/build/cjs/widgets/renderer.js +56 -0
- package/build/cjs/widgets/renderer.js.map +1 -0
- package/build/cjs/widgets/server-credentials.js +31 -0
- package/build/cjs/widgets/server-credentials.js.map +1 -0
- package/build/cjs/widgets/types.js +3 -0
- package/build/cjs/widgets/types.js.map +1 -0
- package/build/esm/VoltraModule.js +4 -0
- package/build/esm/VoltraModule.js.map +1 -0
- package/build/esm/client.js +12 -0
- package/build/esm/client.js.map +1 -0
- package/build/esm/components/VoltraView.js +45 -0
- package/build/esm/components/VoltraView.js.map +1 -0
- package/build/esm/components/VoltraWidgetPreview.js +25 -0
- package/build/esm/components/VoltraWidgetPreview.js.map +1 -0
- package/build/esm/events.js +29 -0
- package/build/esm/events.js.map +1 -0
- package/build/esm/index.js +3 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/jsx/AreaMark.js +6 -0
- package/build/esm/jsx/AreaMark.js.map +1 -0
- package/build/esm/jsx/BarMark.js +6 -0
- package/build/esm/jsx/BarMark.js.map +1 -0
- package/build/esm/jsx/Box.js +3 -0
- package/build/esm/jsx/Box.js.map +1 -0
- package/build/esm/jsx/Button.js +3 -0
- package/build/esm/jsx/Button.js.map +1 -0
- package/build/esm/jsx/Chart.js +110 -0
- package/build/esm/jsx/Chart.js.map +1 -0
- package/build/esm/jsx/CheckBox.js +3 -0
- package/build/esm/jsx/CheckBox.js.map +1 -0
- package/build/esm/jsx/CircleIconButton.js +11 -0
- package/build/esm/jsx/CircleIconButton.js.map +1 -0
- package/build/esm/jsx/CircularProgressIndicator.js +3 -0
- package/build/esm/jsx/CircularProgressIndicator.js.map +1 -0
- package/build/esm/jsx/Column.js +3 -0
- package/build/esm/jsx/Column.js.map +1 -0
- package/build/esm/jsx/FilledButton.js +11 -0
- package/build/esm/jsx/FilledButton.js.map +1 -0
- package/build/esm/jsx/Image.js +11 -0
- package/build/esm/jsx/Image.js.map +1 -0
- package/build/esm/jsx/LazyColumn.js +3 -0
- package/build/esm/jsx/LazyColumn.js.map +1 -0
- package/build/esm/jsx/LazyVerticalGrid.js +3 -0
- package/build/esm/jsx/LazyVerticalGrid.js.map +1 -0
- package/build/esm/jsx/LineMark.js +6 -0
- package/build/esm/jsx/LineMark.js.map +1 -0
- package/build/esm/jsx/LinearProgressIndicator.js +3 -0
- package/build/esm/jsx/LinearProgressIndicator.js.map +1 -0
- package/build/esm/jsx/OutlineButton.js +11 -0
- package/build/esm/jsx/OutlineButton.js.map +1 -0
- package/build/esm/jsx/PointMark.js +6 -0
- package/build/esm/jsx/PointMark.js.map +1 -0
- package/build/esm/jsx/RadioButton.js +3 -0
- package/build/esm/jsx/RadioButton.js.map +1 -0
- package/build/esm/jsx/Row.js +3 -0
- package/build/esm/jsx/Row.js.map +1 -0
- package/build/esm/jsx/RuleMark.js +6 -0
- package/build/esm/jsx/RuleMark.js.map +1 -0
- package/build/esm/jsx/Scaffold.js +3 -0
- package/build/esm/jsx/Scaffold.js.map +1 -0
- package/build/esm/jsx/SectorMark.js +6 -0
- package/build/esm/jsx/SectorMark.js.map +1 -0
- package/build/esm/jsx/Spacer.js +3 -0
- package/build/esm/jsx/Spacer.js.map +1 -0
- package/build/esm/jsx/SquareIconButton.js +11 -0
- package/build/esm/jsx/SquareIconButton.js.map +1 -0
- package/build/esm/jsx/Switch.js +3 -0
- package/build/esm/jsx/Switch.js.map +1 -0
- package/build/esm/jsx/Text.js +3 -0
- package/build/esm/jsx/Text.js.map +1 -0
- package/build/esm/jsx/TitleBar.js +11 -0
- package/build/esm/jsx/TitleBar.js.map +1 -0
- package/build/esm/jsx/baseProps.js +2 -0
- package/build/esm/jsx/baseProps.js.map +1 -0
- package/build/esm/jsx/chart-types.js +2 -0
- package/build/esm/jsx/chart-types.js.map +1 -0
- package/build/esm/jsx/createVoltraComponent.js +16 -0
- package/build/esm/jsx/createVoltraComponent.js.map +1 -0
- package/build/esm/jsx/index.js +2 -0
- package/build/esm/jsx/index.js.map +1 -0
- package/build/esm/jsx/primitives.js +29 -0
- package/build/esm/jsx/primitives.js.map +1 -0
- package/build/esm/jsx/props/Box.js +2 -0
- package/build/esm/jsx/props/Box.js.map +1 -0
- package/build/esm/jsx/props/Button.js +2 -0
- package/build/esm/jsx/props/Button.js.map +1 -0
- package/build/esm/jsx/props/CheckBox.js +2 -0
- package/build/esm/jsx/props/CheckBox.js.map +1 -0
- package/build/esm/jsx/props/CircleIconButton.js +2 -0
- package/build/esm/jsx/props/CircleIconButton.js.map +1 -0
- package/build/esm/jsx/props/CircularProgressIndicator.js +2 -0
- package/build/esm/jsx/props/CircularProgressIndicator.js.map +1 -0
- package/build/esm/jsx/props/Column.js +2 -0
- package/build/esm/jsx/props/Column.js.map +1 -0
- package/build/esm/jsx/props/FilledButton.js +2 -0
- package/build/esm/jsx/props/FilledButton.js.map +1 -0
- package/build/esm/jsx/props/Image.js +5 -0
- package/build/esm/jsx/props/Image.js.map +1 -0
- package/build/esm/jsx/props/LazyColumn.js +2 -0
- package/build/esm/jsx/props/LazyColumn.js.map +1 -0
- package/build/esm/jsx/props/LazyVerticalGrid.js +2 -0
- package/build/esm/jsx/props/LazyVerticalGrid.js.map +1 -0
- package/build/esm/jsx/props/LinearProgressIndicator.js +2 -0
- package/build/esm/jsx/props/LinearProgressIndicator.js.map +1 -0
- package/build/esm/jsx/props/OutlineButton.js +2 -0
- package/build/esm/jsx/props/OutlineButton.js.map +1 -0
- package/build/esm/jsx/props/RadioButton.js +2 -0
- package/build/esm/jsx/props/RadioButton.js.map +1 -0
- package/build/esm/jsx/props/Row.js +2 -0
- package/build/esm/jsx/props/Row.js.map +1 -0
- package/build/esm/jsx/props/Scaffold.js +2 -0
- package/build/esm/jsx/props/Scaffold.js.map +1 -0
- package/build/esm/jsx/props/Spacer.js +2 -0
- package/build/esm/jsx/props/Spacer.js.map +1 -0
- package/build/esm/jsx/props/SquareIconButton.js +2 -0
- package/build/esm/jsx/props/SquareIconButton.js.map +1 -0
- package/build/esm/jsx/props/Switch.js +2 -0
- package/build/esm/jsx/props/Switch.js.map +1 -0
- package/build/esm/jsx/props/Text.js +2 -0
- package/build/esm/jsx/props/Text.js.map +1 -0
- package/build/esm/jsx/props/TitleBar.js +2 -0
- package/build/esm/jsx/props/TitleBar.js.map +1 -0
- package/build/esm/live-update/api.js +203 -0
- package/build/esm/live-update/api.js.map +1 -0
- package/build/esm/live-update/renderer.js +41 -0
- package/build/esm/live-update/renderer.js.map +1 -0
- package/build/esm/live-update/types.js +2 -0
- package/build/esm/live-update/types.js.map +1 -0
- package/build/esm/package.json +3 -0
- package/build/esm/payload/component-ids.js +79 -0
- package/build/esm/payload/component-ids.js.map +1 -0
- package/build/esm/preload.js +72 -0
- package/build/esm/preload.js.map +1 -0
- package/build/esm/renderer/index.js +2 -0
- package/build/esm/renderer/index.js.map +1 -0
- package/build/esm/renderer/renderer.js +13 -0
- package/build/esm/renderer/renderer.js.map +1 -0
- package/build/esm/server.js +3 -0
- package/build/esm/server.js.map +1 -0
- package/build/esm/styles/types.js +6 -0
- package/build/esm/styles/types.js.map +1 -0
- package/build/esm/types.js +2 -0
- package/build/esm/types.js.map +1 -0
- package/build/esm/utils/index.js +2 -0
- package/build/esm/utils/index.js.map +1 -0
- package/build/esm/utils/useUpdateOnHMR.js +23 -0
- package/build/esm/utils/useUpdateOnHMR.js.map +1 -0
- package/build/esm/widgets/api.js +143 -0
- package/build/esm/widgets/api.js.map +1 -0
- package/build/esm/widgets/index.js +3 -0
- package/build/esm/widgets/index.js.map +1 -0
- package/build/esm/widgets/renderer.js +51 -0
- package/build/esm/widgets/renderer.js.map +1 -0
- package/build/esm/widgets/server-credentials.js +24 -0
- package/build/esm/widgets/server-credentials.js.map +1 -0
- package/build/esm/widgets/types.js +2 -0
- package/build/esm/widgets/types.js.map +1 -0
- package/build/types/VoltraModule.d.ts +30 -0
- package/build/types/VoltraModule.d.ts.map +1 -0
- package/build/types/client.d.ts +9 -0
- package/build/types/client.d.ts.map +1 -0
- package/build/types/components/VoltraView.d.ts +29 -0
- package/build/types/components/VoltraView.d.ts.map +1 -0
- package/build/types/components/VoltraWidgetPreview.d.ts +21 -0
- package/build/types/components/VoltraWidgetPreview.d.ts.map +1 -0
- package/build/types/events.d.ts +49 -0
- package/build/types/events.d.ts.map +1 -0
- package/build/types/index.d.ts +15 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/jsx/AreaMark.d.ts +14 -0
- package/build/types/jsx/AreaMark.d.ts.map +1 -0
- package/build/types/jsx/BarMark.d.ts +15 -0
- package/build/types/jsx/BarMark.d.ts.map +1 -0
- package/build/types/jsx/Box.d.ts +4 -0
- package/build/types/jsx/Box.d.ts.map +1 -0
- package/build/types/jsx/Button.d.ts +4 -0
- package/build/types/jsx/Button.d.ts.map +1 -0
- package/build/types/jsx/Chart.d.ts +16 -0
- package/build/types/jsx/Chart.d.ts.map +1 -0
- package/build/types/jsx/CheckBox.d.ts +4 -0
- package/build/types/jsx/CheckBox.d.ts.map +1 -0
- package/build/types/jsx/CircleIconButton.d.ts +4 -0
- package/build/types/jsx/CircleIconButton.d.ts.map +1 -0
- package/build/types/jsx/CircularProgressIndicator.d.ts +4 -0
- package/build/types/jsx/CircularProgressIndicator.d.ts.map +1 -0
- package/build/types/jsx/Column.d.ts +4 -0
- package/build/types/jsx/Column.d.ts.map +1 -0
- package/build/types/jsx/FilledButton.d.ts +4 -0
- package/build/types/jsx/FilledButton.d.ts.map +1 -0
- package/build/types/jsx/Image.d.ts +13 -0
- package/build/types/jsx/Image.d.ts.map +1 -0
- package/build/types/jsx/LazyColumn.d.ts +4 -0
- package/build/types/jsx/LazyColumn.d.ts.map +1 -0
- package/build/types/jsx/LazyVerticalGrid.d.ts +4 -0
- package/build/types/jsx/LazyVerticalGrid.d.ts.map +1 -0
- package/build/types/jsx/LineMark.d.ts +15 -0
- package/build/types/jsx/LineMark.d.ts.map +1 -0
- package/build/types/jsx/LinearProgressIndicator.d.ts +4 -0
- package/build/types/jsx/LinearProgressIndicator.d.ts.map +1 -0
- package/build/types/jsx/OutlineButton.d.ts +4 -0
- package/build/types/jsx/OutlineButton.d.ts.map +1 -0
- package/build/types/jsx/PointMark.d.ts +14 -0
- package/build/types/jsx/PointMark.d.ts.map +1 -0
- package/build/types/jsx/RadioButton.d.ts +4 -0
- package/build/types/jsx/RadioButton.d.ts.map +1 -0
- package/build/types/jsx/Row.d.ts +4 -0
- package/build/types/jsx/Row.d.ts.map +1 -0
- package/build/types/jsx/RuleMark.d.ts +13 -0
- package/build/types/jsx/RuleMark.d.ts.map +1 -0
- package/build/types/jsx/Scaffold.d.ts +4 -0
- package/build/types/jsx/Scaffold.d.ts.map +1 -0
- package/build/types/jsx/SectorMark.d.ts +15 -0
- package/build/types/jsx/SectorMark.d.ts.map +1 -0
- package/build/types/jsx/Spacer.d.ts +4 -0
- package/build/types/jsx/Spacer.d.ts.map +1 -0
- package/build/types/jsx/SquareIconButton.d.ts +4 -0
- package/build/types/jsx/SquareIconButton.d.ts.map +1 -0
- package/build/types/jsx/Switch.d.ts +4 -0
- package/build/types/jsx/Switch.d.ts.map +1 -0
- package/build/types/jsx/Text.d.ts +7 -0
- package/build/types/jsx/Text.d.ts.map +1 -0
- package/build/types/jsx/TitleBar.d.ts +4 -0
- package/build/types/jsx/TitleBar.d.ts.map +1 -0
- package/build/types/jsx/baseProps.d.ts +9 -0
- package/build/types/jsx/baseProps.d.ts.map +1 -0
- package/build/types/jsx/chart-types.d.ts +10 -0
- package/build/types/jsx/chart-types.d.ts.map +1 -0
- package/build/types/jsx/createVoltraComponent.d.ts +12 -0
- package/build/types/jsx/createVoltraComponent.d.ts.map +1 -0
- package/build/types/jsx/index.d.ts +2 -0
- package/build/types/jsx/index.d.ts.map +1 -0
- package/build/types/jsx/primitives.d.ts +29 -0
- package/build/types/jsx/primitives.d.ts.map +1 -0
- package/build/types/jsx/props/Box.d.ts +6 -0
- package/build/types/jsx/props/Box.d.ts.map +1 -0
- package/build/types/jsx/props/Button.d.ts +6 -0
- package/build/types/jsx/props/Button.d.ts.map +1 -0
- package/build/types/jsx/props/CheckBox.d.ts +17 -0
- package/build/types/jsx/props/CheckBox.d.ts.map +1 -0
- package/build/types/jsx/props/CircleIconButton.d.ts +15 -0
- package/build/types/jsx/props/CircleIconButton.d.ts.map +1 -0
- package/build/types/jsx/props/CircularProgressIndicator.d.ts +12 -0
- package/build/types/jsx/props/CircularProgressIndicator.d.ts.map +1 -0
- package/build/types/jsx/props/Column.d.ts +8 -0
- package/build/types/jsx/props/Column.d.ts.map +1 -0
- package/build/types/jsx/props/FilledButton.d.ts +17 -0
- package/build/types/jsx/props/FilledButton.d.ts.map +1 -0
- package/build/types/jsx/props/Image.d.ts +21 -0
- package/build/types/jsx/props/Image.d.ts.map +1 -0
- package/build/types/jsx/props/LazyColumn.d.ts +6 -0
- package/build/types/jsx/props/LazyColumn.d.ts.map +1 -0
- package/build/types/jsx/props/LazyVerticalGrid.d.ts +12 -0
- package/build/types/jsx/props/LazyVerticalGrid.d.ts.map +1 -0
- package/build/types/jsx/props/LinearProgressIndicator.d.ts +10 -0
- package/build/types/jsx/props/LinearProgressIndicator.d.ts.map +1 -0
- package/build/types/jsx/props/OutlineButton.d.ts +15 -0
- package/build/types/jsx/props/OutlineButton.d.ts.map +1 -0
- package/build/types/jsx/props/RadioButton.d.ts +19 -0
- package/build/types/jsx/props/RadioButton.d.ts.map +1 -0
- package/build/types/jsx/props/Row.d.ts +8 -0
- package/build/types/jsx/props/Row.d.ts.map +1 -0
- package/build/types/jsx/props/Scaffold.d.ts +8 -0
- package/build/types/jsx/props/Scaffold.d.ts.map +1 -0
- package/build/types/jsx/props/Spacer.d.ts +6 -0
- package/build/types/jsx/props/Spacer.d.ts.map +1 -0
- package/build/types/jsx/props/SquareIconButton.d.ts +15 -0
- package/build/types/jsx/props/SquareIconButton.d.ts.map +1 -0
- package/build/types/jsx/props/Switch.d.ts +21 -0
- package/build/types/jsx/props/Switch.d.ts.map +1 -0
- package/build/types/jsx/props/Text.d.ts +12 -0
- package/build/types/jsx/props/Text.d.ts.map +1 -0
- package/build/types/jsx/props/TitleBar.d.ts +15 -0
- package/build/types/jsx/props/TitleBar.d.ts.map +1 -0
- package/build/types/live-update/api.d.ts +126 -0
- package/build/types/live-update/api.d.ts.map +1 -0
- package/build/types/live-update/renderer.d.ts +11 -0
- package/build/types/live-update/renderer.d.ts.map +1 -0
- package/build/types/live-update/types.d.ts +100 -0
- package/build/types/live-update/types.d.ts.map +1 -0
- package/build/types/payload/component-ids.d.ts +20 -0
- package/build/types/payload/component-ids.d.ts.map +1 -0
- package/build/types/preload.d.ts +45 -0
- package/build/types/preload.d.ts.map +1 -0
- package/build/types/renderer/index.d.ts +2 -0
- package/build/types/renderer/index.d.ts.map +1 -0
- package/build/types/renderer/renderer.d.ts +12 -0
- package/build/types/renderer/renderer.d.ts.map +1 -0
- package/build/types/server.d.ts +3 -0
- package/build/types/server.d.ts.map +1 -0
- package/build/types/styles/types.d.ts +116 -0
- package/build/types/styles/types.d.ts.map +1 -0
- package/build/types/types.d.ts +2 -0
- package/build/types/types.d.ts.map +1 -0
- package/build/types/utils/index.d.ts +2 -0
- package/build/types/utils/index.d.ts.map +1 -0
- package/build/types/utils/useUpdateOnHMR.d.ts +9 -0
- package/build/types/utils/useUpdateOnHMR.d.ts.map +1 -0
- package/build/types/widgets/api.d.ts +131 -0
- package/build/types/widgets/api.d.ts.map +1 -0
- package/build/types/widgets/index.d.ts +3 -0
- package/build/types/widgets/index.d.ts.map +1 -0
- package/build/types/widgets/renderer.d.ts +22 -0
- package/build/types/widgets/renderer.d.ts.map +1 -0
- package/build/types/widgets/server-credentials.d.ts +18 -0
- package/build/types/widgets/server-credentials.d.ts.map +1 -0
- package/build/types/widgets/types.d.ts +58 -0
- package/build/types/widgets/types.d.ts.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { useUpdateOnHMR } from '../utils/index.js';
|
|
3
|
+
import VoltraModule from '../VoltraModule.js';
|
|
4
|
+
import { renderAndroidLiveUpdateToString } from './renderer.js';
|
|
5
|
+
/**
|
|
6
|
+
* @unstable This API is experimental and may change in future versions.
|
|
7
|
+
*
|
|
8
|
+
* React hook for managing Android Live Updates with automatic lifecycle handling.
|
|
9
|
+
*
|
|
10
|
+
* @param variants - The Android Live Update content variants to display
|
|
11
|
+
* @param options - Configuration options for the hook
|
|
12
|
+
* @returns Object with start, update, end methods and isActive state
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* import { VoltraAndroid, useAndroidLiveUpdate } from 'voltra'
|
|
17
|
+
*
|
|
18
|
+
* const MyLiveUpdate = () => {
|
|
19
|
+
* const { start, update, end, isActive } = useAndroidLiveUpdate({
|
|
20
|
+
* collapsed: <VoltraAndroid.Text>Delivery arriving</VoltraAndroid.Text>,
|
|
21
|
+
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
22
|
+
* channelId: 'delivery_updates',
|
|
23
|
+
* }, {
|
|
24
|
+
* updateName: 'my-live-update',
|
|
25
|
+
* autoStart: true,
|
|
26
|
+
* autoUpdate: true
|
|
27
|
+
* })
|
|
28
|
+
*
|
|
29
|
+
* return (
|
|
30
|
+
* <View>
|
|
31
|
+
* <Button title={isActive ? "Stop" : "Start"} onPress={isActive ? end : start} />
|
|
32
|
+
* </View>
|
|
33
|
+
* )
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export const useAndroidLiveUpdate = (variants, options) => {
|
|
38
|
+
const [targetId, setTargetId] = useState(() => {
|
|
39
|
+
if (options?.updateName) {
|
|
40
|
+
return isAndroidLiveUpdateActive(options.updateName) ? options.updateName : null;
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
});
|
|
44
|
+
const isActive = targetId !== null;
|
|
45
|
+
const optionsRef = useRef(options);
|
|
46
|
+
const variantsRef = useRef(variants);
|
|
47
|
+
const lastUpdateOptionsRef = useRef(undefined);
|
|
48
|
+
// Update refs when values change
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
optionsRef.current = options;
|
|
51
|
+
}, [options]);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
variantsRef.current = variants;
|
|
54
|
+
}, [variants]);
|
|
55
|
+
useUpdateOnHMR();
|
|
56
|
+
const start = useCallback(async (options) => {
|
|
57
|
+
const id = await startAndroidLiveUpdate(variantsRef.current, {
|
|
58
|
+
...optionsRef.current,
|
|
59
|
+
...options,
|
|
60
|
+
});
|
|
61
|
+
setTargetId(id);
|
|
62
|
+
}, []);
|
|
63
|
+
const update = useCallback(async (options) => {
|
|
64
|
+
if (!targetId) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const updateOptions = { ...optionsRef.current, ...options };
|
|
68
|
+
lastUpdateOptionsRef.current = updateOptions;
|
|
69
|
+
await updateAndroidLiveUpdate(targetId, variantsRef.current, updateOptions);
|
|
70
|
+
}, [targetId]);
|
|
71
|
+
const end = useCallback(async () => {
|
|
72
|
+
if (!targetId) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
await stopAndroidLiveUpdate(targetId);
|
|
76
|
+
setTargetId(null);
|
|
77
|
+
}, [targetId]);
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
if (!options?.autoStart) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
start();
|
|
83
|
+
}, [options?.autoStart, start]);
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
if (!options?.autoUpdate)
|
|
86
|
+
return;
|
|
87
|
+
update(lastUpdateOptionsRef.current);
|
|
88
|
+
}, [options?.autoUpdate, update, variants]);
|
|
89
|
+
return {
|
|
90
|
+
start,
|
|
91
|
+
update,
|
|
92
|
+
end,
|
|
93
|
+
isActive,
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* @unstable This API is experimental and may change in future versions.
|
|
98
|
+
*
|
|
99
|
+
* Start a new Android Live Update with the provided content variants.
|
|
100
|
+
*
|
|
101
|
+
* @param variants - The Android Live Update content variants to display
|
|
102
|
+
* @param options - Configuration options for the Live Update
|
|
103
|
+
* @returns Promise resolving to the notification ID
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```tsx
|
|
107
|
+
* import { VoltraAndroid, startAndroidLiveUpdate } from 'voltra'
|
|
108
|
+
*
|
|
109
|
+
* const notificationId = await startAndroidLiveUpdate({
|
|
110
|
+
* collapsed: <VoltraAndroid.Text>Delivery arriving</VoltraAndroid.Text>,
|
|
111
|
+
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
112
|
+
* channelId: 'delivery_updates',
|
|
113
|
+
* }, {
|
|
114
|
+
* updateName: 'my-live-update',
|
|
115
|
+
* })
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export const startAndroidLiveUpdate = async (variants, options) => {
|
|
119
|
+
const payload = renderAndroidLiveUpdateToString(variants);
|
|
120
|
+
const notificationId = await VoltraModule.startAndroidLiveUpdate(payload, {
|
|
121
|
+
updateName: options?.updateName,
|
|
122
|
+
channelId: options?.channelId || variants.channelId || 'voltra_live_updates',
|
|
123
|
+
});
|
|
124
|
+
return notificationId;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* @unstable This API is experimental and may change in future versions.
|
|
128
|
+
*
|
|
129
|
+
* Update an existing Android Live Update with new content.
|
|
130
|
+
*
|
|
131
|
+
* @param notificationId - The ID of the notification to update
|
|
132
|
+
* @param variants - The new Android Live Update content variants
|
|
133
|
+
* @param options - Update options
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```tsx
|
|
137
|
+
* import { VoltraAndroid, updateAndroidLiveUpdate } from 'voltra'
|
|
138
|
+
*
|
|
139
|
+
* await updateAndroidLiveUpdate('notification-123', {
|
|
140
|
+
* collapsed: <VoltraAndroid.Text>Updated: Delivery arriving</VoltraAndroid.Text>,
|
|
141
|
+
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
142
|
+
* })
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export const updateAndroidLiveUpdate = async (notificationId, variants, options) => {
|
|
146
|
+
const payload = renderAndroidLiveUpdateToString(variants);
|
|
147
|
+
return VoltraModule.updateAndroidLiveUpdate(notificationId, payload);
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* @unstable This API is experimental and may change in future versions.
|
|
151
|
+
*
|
|
152
|
+
* Stop an Android Live Update and dismiss the notification.
|
|
153
|
+
*
|
|
154
|
+
* @param notificationId - The ID of the notification to stop
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```tsx
|
|
158
|
+
* import { stopAndroidLiveUpdate } from 'voltra'
|
|
159
|
+
*
|
|
160
|
+
* await stopAndroidLiveUpdate('notification-123')
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
export const stopAndroidLiveUpdate = async (notificationId) => {
|
|
164
|
+
return VoltraModule.stopAndroidLiveUpdate(notificationId);
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* @unstable This API is experimental and may change in future versions.
|
|
168
|
+
*
|
|
169
|
+
* Check if an Android Live Update with the given name is currently active.
|
|
170
|
+
*
|
|
171
|
+
* @param updateName - The name of the Live Update to check
|
|
172
|
+
* @returns true if the update is active, false otherwise
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```tsx
|
|
176
|
+
* import { isAndroidLiveUpdateActive } from 'voltra'
|
|
177
|
+
*
|
|
178
|
+
* if (isAndroidLiveUpdateActive('my-live-update')) {
|
|
179
|
+
* console.log('Update is running')
|
|
180
|
+
* }
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
export const isAndroidLiveUpdateActive = (updateName) => {
|
|
184
|
+
return VoltraModule.isAndroidLiveUpdateActive(updateName);
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* @unstable This API is experimental and may change in future versions.
|
|
188
|
+
*
|
|
189
|
+
* End all active Android Live Updates.
|
|
190
|
+
*
|
|
191
|
+
* This function stops and dismisses all currently running Live Updates in the app.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```tsx
|
|
195
|
+
* import { endAllAndroidLiveUpdates } from 'voltra'
|
|
196
|
+
*
|
|
197
|
+
* await endAllAndroidLiveUpdates()
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export async function endAllAndroidLiveUpdates() {
|
|
201
|
+
return VoltraModule.endAllAndroidLiveUpdates();
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/live-update/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getAndroidComponentId } from '../payload/component-ids.js';
|
|
2
|
+
import { createVoltraRenderer } from '../renderer/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Android component registry that uses Android component ID mappings
|
|
5
|
+
*/
|
|
6
|
+
const androidComponentRegistry = {
|
|
7
|
+
getComponentId: (name) => getAndroidComponentId(name),
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Renders Android Live Update variants to JSON.
|
|
11
|
+
* Uses the Android component registry for component ID lookups.
|
|
12
|
+
*/
|
|
13
|
+
export const renderAndroidLiveUpdateToJson = (variants) => {
|
|
14
|
+
// Create renderer with Android component registry
|
|
15
|
+
const renderer = createVoltraRenderer(androidComponentRegistry);
|
|
16
|
+
// Add collapsed notification content
|
|
17
|
+
if (variants.collapsed) {
|
|
18
|
+
renderer.addRootNode('collapsed', variants.collapsed);
|
|
19
|
+
}
|
|
20
|
+
// Add expanded notification content
|
|
21
|
+
if (variants.expanded) {
|
|
22
|
+
renderer.addRootNode('expanded', variants.expanded);
|
|
23
|
+
}
|
|
24
|
+
// Render to JSON
|
|
25
|
+
const result = renderer.render();
|
|
26
|
+
// Add non-JSX properties
|
|
27
|
+
if (variants.smallIcon) {
|
|
28
|
+
result.smallIcon = variants.smallIcon;
|
|
29
|
+
}
|
|
30
|
+
if (variants.channelId) {
|
|
31
|
+
result.channelId = variants.channelId;
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Renders Android Live Update variants to a JSON string.
|
|
37
|
+
*/
|
|
38
|
+
export const renderAndroidLiveUpdateToString = (variants) => {
|
|
39
|
+
return JSON.stringify(renderAndroidLiveUpdateToJson(variants));
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/live-update/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAG3D;;GAEG;AACH,MAAM,wBAAwB,GAAsB;IAClD,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;CAC9D,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,QAAmC,EAAyB,EAAE;IAC1G,kDAAkD;IAClD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAA;IAE/D,qCAAqC;IACrC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;IACvD,CAAC;IAED,oCAAoC;IACpC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACrD,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAA2B,CAAA;IAEzD,yBAAyB;IACzB,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IACvC,CAAC;IAED,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IACvC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,QAAmC,EAAU,EAAE;IAC7F,OAAO,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC,CAAA;AAChE,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/live-update/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// 🤖 AUTO-GENERATED from data/components.json
|
|
2
|
+
// DO NOT EDIT MANUALLY - Changes will be overwritten
|
|
3
|
+
// Schema version: 1.0.0
|
|
4
|
+
/**
|
|
5
|
+
* Mapping from Android component name to numeric ID
|
|
6
|
+
* Component IDs are assigned sequentially based on order in components.json (0-indexed)
|
|
7
|
+
*/
|
|
8
|
+
export const ANDROID_COMPONENT_NAME_TO_ID = {
|
|
9
|
+
AndroidFilledButton: 0,
|
|
10
|
+
AndroidImage: 1,
|
|
11
|
+
AndroidSwitch: 2,
|
|
12
|
+
AndroidCheckBox: 3,
|
|
13
|
+
AndroidRadioButton: 4,
|
|
14
|
+
AndroidBox: 5,
|
|
15
|
+
AndroidButton: 6,
|
|
16
|
+
AndroidCircleIconButton: 7,
|
|
17
|
+
AndroidCircularProgressIndicator: 8,
|
|
18
|
+
AndroidColumn: 9,
|
|
19
|
+
AndroidLazyColumn: 10,
|
|
20
|
+
AndroidLazyVerticalGrid: 11,
|
|
21
|
+
AndroidLinearProgressIndicator: 12,
|
|
22
|
+
AndroidOutlineButton: 13,
|
|
23
|
+
AndroidRow: 14,
|
|
24
|
+
AndroidScaffold: 15,
|
|
25
|
+
AndroidSpacer: 16,
|
|
26
|
+
AndroidSquareIconButton: 17,
|
|
27
|
+
AndroidText: 18,
|
|
28
|
+
AndroidTitleBar: 19,
|
|
29
|
+
AndroidChart: 20,
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Mapping from numeric ID to Android component name
|
|
33
|
+
*/
|
|
34
|
+
export const ANDROID_COMPONENT_ID_TO_NAME = {
|
|
35
|
+
0: 'AndroidFilledButton',
|
|
36
|
+
1: 'AndroidImage',
|
|
37
|
+
2: 'AndroidSwitch',
|
|
38
|
+
3: 'AndroidCheckBox',
|
|
39
|
+
4: 'AndroidRadioButton',
|
|
40
|
+
5: 'AndroidBox',
|
|
41
|
+
6: 'AndroidButton',
|
|
42
|
+
7: 'AndroidCircleIconButton',
|
|
43
|
+
8: 'AndroidCircularProgressIndicator',
|
|
44
|
+
9: 'AndroidColumn',
|
|
45
|
+
10: 'AndroidLazyColumn',
|
|
46
|
+
11: 'AndroidLazyVerticalGrid',
|
|
47
|
+
12: 'AndroidLinearProgressIndicator',
|
|
48
|
+
13: 'AndroidOutlineButton',
|
|
49
|
+
14: 'AndroidRow',
|
|
50
|
+
15: 'AndroidScaffold',
|
|
51
|
+
16: 'AndroidSpacer',
|
|
52
|
+
17: 'AndroidSquareIconButton',
|
|
53
|
+
18: 'AndroidText',
|
|
54
|
+
19: 'AndroidTitleBar',
|
|
55
|
+
20: 'AndroidChart',
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Get Android component ID from name
|
|
59
|
+
* @throws Error if component name is not found
|
|
60
|
+
*/
|
|
61
|
+
export function getAndroidComponentId(name) {
|
|
62
|
+
const id = ANDROID_COMPONENT_NAME_TO_ID[name];
|
|
63
|
+
if (id === undefined) {
|
|
64
|
+
throw new Error(`Unknown Android component name: "${name}". Available components: ${Object.keys(ANDROID_COMPONENT_NAME_TO_ID).join(', ')}`);
|
|
65
|
+
}
|
|
66
|
+
return id;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get Android component name from ID
|
|
70
|
+
* @throws Error if component ID is not found
|
|
71
|
+
*/
|
|
72
|
+
export function getAndroidComponentName(id) {
|
|
73
|
+
const name = ANDROID_COMPONENT_ID_TO_NAME[id];
|
|
74
|
+
if (name === undefined) {
|
|
75
|
+
throw new Error(`Unknown Android component ID: ${id}. Valid IDs: 0-${Object.keys(ANDROID_COMPONENT_ID_TO_NAME).length - 1}`);
|
|
76
|
+
}
|
|
77
|
+
return name;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=component-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-ids.js","sourceRoot":"","sources":["../../../src/payload/component-ids.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,qDAAqD;AACrD,wBAAwB;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,mBAAmB,EAAE,CAAC;IACtB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,eAAe,EAAE,CAAC;IAClB,kBAAkB,EAAE,CAAC;IACrB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAChB,uBAAuB,EAAE,CAAC;IAC1B,gCAAgC,EAAE,CAAC;IACnC,aAAa,EAAE,CAAC;IAChB,iBAAiB,EAAE,EAAE;IACrB,uBAAuB,EAAE,EAAE;IAC3B,8BAA8B,EAAE,EAAE;IAClC,oBAAoB,EAAE,EAAE;IACxB,UAAU,EAAE,EAAE;IACd,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE,EAAE;IACjB,uBAAuB,EAAE,EAAE;IAC3B,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,EAAE;CACjB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,CAAC,EAAE,qBAAqB;IACxB,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,iBAAiB;IACpB,CAAC,EAAE,oBAAoB;IACvB,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,yBAAyB;IAC5B,CAAC,EAAE,kCAAkC;IACrC,CAAC,EAAE,eAAe;IAClB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,gCAAgC;IACpC,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,cAAc;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,4BAA4B,MAAM,CAAC,IAAI,CAC7E,4BAA4B,CAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAA;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,EAAU;IAChD,MAAM,IAAI,GAAG,4BAA4B,CAAC,EAAE,CAAC,CAAA;IAC7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,iCAAiC,EAAE,kBAAkB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAC5G,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import VoltraModule from './VoltraModule.js';
|
|
2
|
+
/**
|
|
3
|
+
* Preload images to Android cache for use in Widgets.
|
|
4
|
+
*
|
|
5
|
+
* Downloaded images are stored in the app's cache directory and exposed via FileProvider.
|
|
6
|
+
* Images can then be referenced using the `assetName` property in the Image component.
|
|
7
|
+
*
|
|
8
|
+
* @param images - Array of images to preload
|
|
9
|
+
* @returns Result indicating which images succeeded or failed
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const result = await preloadImages([
|
|
14
|
+
* {
|
|
15
|
+
* url: 'https://example.com/album-art.jpg',
|
|
16
|
+
* key: 'current-album',
|
|
17
|
+
* headers: { 'Authorization': 'Bearer token' }
|
|
18
|
+
* }
|
|
19
|
+
* ])
|
|
20
|
+
*
|
|
21
|
+
* // Use in Android Widget
|
|
22
|
+
* <VoltraAndroid.Image source={{ assetName: 'current-album' }} />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export async function preloadImages(images) {
|
|
26
|
+
try {
|
|
27
|
+
return await VoltraModule.preloadImages(images);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return {
|
|
31
|
+
succeeded: [],
|
|
32
|
+
failed: images.map((img) => ({
|
|
33
|
+
key: img.key,
|
|
34
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
35
|
+
})),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Clear preloaded images from Android cache.
|
|
41
|
+
*
|
|
42
|
+
* @param keys - Optional array of image keys to clear. If omitted, clears all preloaded images.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* // Clear specific images
|
|
47
|
+
* await clearPreloadedImages(['album-art', 'profile-pic'])
|
|
48
|
+
*
|
|
49
|
+
* // Clear all preloaded images
|
|
50
|
+
* await clearPreloadedImages()
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export async function clearPreloadedImages(keys) {
|
|
54
|
+
try {
|
|
55
|
+
await VoltraModule.clearPreloadedImages(keys ?? null);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('Failed to clear preloaded images:', error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Reload Android Widgets. (Alias for reloadAndroidWidgets)
|
|
63
|
+
*/
|
|
64
|
+
export async function reloadWidgets(widgetIds) {
|
|
65
|
+
try {
|
|
66
|
+
await VoltraModule.reloadAndroidWidgets(widgetIds ?? null);
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.error('Failed to reload Android widgets:', error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=preload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/preload.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA6B;IAC/D,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAe;IACxD,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,oBAAoB,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAoB;IACtD,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,oBAAoB,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createVoltraRenderer as createCoreVoltraRenderer, renderVariantToJson, VOLTRA_PAYLOAD_VERSION, } from '@use-voltra/core';
|
|
2
|
+
import { getAndroidComponentId } from '../payload/component-ids.js';
|
|
3
|
+
export const androidComponentRegistry = {
|
|
4
|
+
getComponentId: (name) => getAndroidComponentId(name),
|
|
5
|
+
};
|
|
6
|
+
export { VOLTRA_PAYLOAD_VERSION };
|
|
7
|
+
export const renderAndroidVariantToJson = (element) => {
|
|
8
|
+
return renderVariantToJson(element, androidComponentRegistry);
|
|
9
|
+
};
|
|
10
|
+
export const createVoltraRenderer = (componentRegistry = androidComponentRegistry) => {
|
|
11
|
+
return createCoreVoltraRenderer(componentRegistry);
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/renderer/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,IAAI,wBAAwB,EAChD,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAGnE,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;CAC9D,CAAA;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAA;AAGjC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAkB,EAAkB,EAAE;IAC/E,OAAO,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,oBAAuC,wBAAwB,EAAE,EAAE;IACtG,OAAO,wBAAwB,CAAC,iBAAiB,CAAC,CAAA;AACpD,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/styles/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Taps into the HMR accept function to forcefully re-render the component when any module is updated.
|
|
4
|
+
* Is only available in development mode.
|
|
5
|
+
*/
|
|
6
|
+
export const useUpdateOnHMR = () => {
|
|
7
|
+
const [, forceUpdate] = useState(0);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (!__DEV__) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
// Override the accept function to forcefully re-render when any module is updated
|
|
13
|
+
const oldAccept = global['__accept'];
|
|
14
|
+
global['__accept'] = (...args) => {
|
|
15
|
+
forceUpdate((prev) => prev + 1);
|
|
16
|
+
oldAccept?.(...args);
|
|
17
|
+
};
|
|
18
|
+
return () => {
|
|
19
|
+
global['__accept'] = oldAccept;
|
|
20
|
+
};
|
|
21
|
+
}, []);
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=useUpdateOnHMR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateOnHMR.js","sourceRoot":"","sources":["../../../src/utils/useUpdateOnHMR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAO3C;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QAED,kFAAkF;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;YAC/B,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YAC/B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;QACtB,CAAC,CAAA;QAED,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;QAChC,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import VoltraModule from '../VoltraModule.js';
|
|
2
|
+
import { renderAndroidWidgetToString } from './renderer.js';
|
|
3
|
+
/**
|
|
4
|
+
* Update an Android home screen widget with new content.
|
|
5
|
+
*
|
|
6
|
+
* The content will be stored in SharedPreferences and the widget
|
|
7
|
+
* will be updated to display the new content.
|
|
8
|
+
*
|
|
9
|
+
* @param widgetId - The widget identifier
|
|
10
|
+
* @param variants - An array of size variants with their breakpoints and content.
|
|
11
|
+
* Android will automatically select the best matching variant based on the
|
|
12
|
+
* actual widget dimensions.
|
|
13
|
+
* @param options - Optional settings like deep link URL
|
|
14
|
+
*
|
|
15
|
+
* @example Different content per size
|
|
16
|
+
* ```tsx
|
|
17
|
+
* import { VoltraAndroid, updateAndroidWidget } from 'voltra'
|
|
18
|
+
*
|
|
19
|
+
* await updateAndroidWidget('weather', [
|
|
20
|
+
* {
|
|
21
|
+
* size: { width: 150, height: 100 },
|
|
22
|
+
* content: <VoltraAndroid.Text fontSize={32}>72°F</VoltraAndroid.Text>
|
|
23
|
+
* },
|
|
24
|
+
* {
|
|
25
|
+
* size: { width: 250, height: 150 },
|
|
26
|
+
* content: (
|
|
27
|
+
* <VoltraAndroid.Row>
|
|
28
|
+
* <VoltraAndroid.Text fontSize={32}>72°F</VoltraAndroid.Text>
|
|
29
|
+
* <VoltraAndroid.Column>
|
|
30
|
+
* <VoltraAndroid.Text>Sunny</VoltraAndroid.Text>
|
|
31
|
+
* <VoltraAndroid.Text>High: 78° Low: 65°</VoltraAndroid.Text>
|
|
32
|
+
* </VoltraAndroid.Column>
|
|
33
|
+
* </VoltraAndroid.Row>
|
|
34
|
+
* )
|
|
35
|
+
* }
|
|
36
|
+
* ], { deepLinkUrl: '/weather' })
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export const updateAndroidWidget = async (widgetId, variants, options) => {
|
|
40
|
+
const payload = renderAndroidWidgetToString(variants);
|
|
41
|
+
return VoltraModule.updateAndroidWidget(widgetId, payload, {
|
|
42
|
+
deepLinkUrl: options?.deepLinkUrl,
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Reload widget timelines to refresh their content.
|
|
47
|
+
*
|
|
48
|
+
* Use this after updating data that widgets depend on (e.g., after preloading
|
|
49
|
+
* new images) to force them to re-render.
|
|
50
|
+
*
|
|
51
|
+
* @param widgetIds - Optional array of widget IDs to reload. If omitted, reloads all widgets.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* // Reload specific widgets
|
|
56
|
+
* await reloadAndroidWidgets(['weather', 'calendar'])
|
|
57
|
+
*
|
|
58
|
+
* // Reload all widgets
|
|
59
|
+
* await reloadAndroidWidgets()
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export const reloadAndroidWidgets = async (widgetIds) => {
|
|
63
|
+
return VoltraModule.reloadAndroidWidgets(widgetIds ?? null);
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Clear a widget's stored data.
|
|
67
|
+
*
|
|
68
|
+
* This removes the JSON content and deep link URL for the specified widget,
|
|
69
|
+
* causing it to show its placeholder state.
|
|
70
|
+
*
|
|
71
|
+
* @param widgetId - The widget identifier to clear
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* await clearAndroidWidget('weather')
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export const clearAndroidWidget = async (widgetId) => {
|
|
79
|
+
return VoltraModule.clearAndroidWidget(widgetId);
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Clear all widgets' stored data.
|
|
83
|
+
*
|
|
84
|
+
* This removes the JSON content and deep link URLs for all configured widgets,
|
|
85
|
+
* causing them to show their placeholder states.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* await clearAllAndroidWidgets()
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export const clearAllAndroidWidgets = async () => {
|
|
93
|
+
return VoltraModule.clearAllAndroidWidgets();
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Request to pin a widget to the home screen.
|
|
97
|
+
*
|
|
98
|
+
* This will show the Android system pin widget dialog, allowing the user
|
|
99
|
+
* to add the widget to their home screen. Optionally, you can provide
|
|
100
|
+
* preview dimensions to show a preview of the widget in the pin dialog.
|
|
101
|
+
*
|
|
102
|
+
* See: https://developer.android.com/develop/ui/compose/glance/pin-in-app
|
|
103
|
+
*
|
|
104
|
+
* @param widgetId - The widget identifier to pin
|
|
105
|
+
* @param options - Optional settings for the pin request
|
|
106
|
+
* @param options.previewWidth - Optional preview width in dp (default: 245)
|
|
107
|
+
* @param options.previewHeight - Optional preview height in dp (default: 115)
|
|
108
|
+
* @returns Promise that resolves to true if the pin request was successful
|
|
109
|
+
*
|
|
110
|
+
* @example Basic usage
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const success = await requestPinAndroidWidget('weather')
|
|
113
|
+
* if (success) {
|
|
114
|
+
* console.log('Widget pin request sent')
|
|
115
|
+
* }
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @example With preview dimensions
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const success = await requestPinAndroidWidget('weather', {
|
|
121
|
+
* previewWidth: 245,
|
|
122
|
+
* previewHeight: 115
|
|
123
|
+
* })
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export const requestPinAndroidWidget = async (widgetId, options) => {
|
|
127
|
+
return VoltraModule.requestPinGlanceAppWidget(widgetId, options);
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Fetches all active widget instances for the containing app on Android.
|
|
131
|
+
*
|
|
132
|
+
* @returns A promise that resolves to an array of active widget instances.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* const widgets = await getActiveWidgets()
|
|
137
|
+
* console.log('Active widgets:', widgets)
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export const getActiveWidgets = async () => {
|
|
141
|
+
return VoltraModule.getActiveWidgets();
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=api.js.map
|