├── .eslintignore ├── .prettierrc ├── .prettierignore ├── apps ├── web-hello-world │ ├── public │ │ └── logo_vue.glb │ ├── src │ │ ├── views │ │ │ ├── HomeView.vue │ │ │ └── AboutView.vue │ │ ├── app │ │ │ ├── components │ │ │ │ ├── three.js │ │ │ │ └── Logo3D.vue │ │ │ ├── App.spec.ts │ │ │ ├── App.vue │ │ │ └── NxWelcome.vue │ │ ├── main.ts │ │ ├── router │ │ │ └── index.ts │ │ └── styles.css │ ├── tsconfig.app.json │ ├── index.html │ ├── .eslintrc.json │ ├── tsconfig.json │ ├── tsconfig.spec.json │ ├── vite.config.ts │ └── project.json └── nativescript-hello-world │ ├── App_Resources │ ├── iOS │ │ ├── src │ │ │ ├── Custom-Bridging-Header.h │ │ │ ├── module.modulemap │ │ │ ├── NativeScriptStart.m │ │ │ └── NativeScriptStart.h │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ ├── icon-1024.png │ │ │ │ └── Contents.json │ │ ├── Podfile │ │ ├── build.xcconfig │ │ ├── Info.plist │ │ └── LaunchScreen.storyboard │ ├── visionOS │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ └── AppIcon.solidimagestack │ │ │ │ ├── Back.solidimagestacklayer │ │ │ │ ├── Contents.json │ │ │ │ └── Content.imageset │ │ │ │ │ ├── Back.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── Front.solidimagestacklayer │ │ │ │ ├── Contents.json │ │ │ │ └── Content.imageset │ │ │ │ │ ├── Front.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── Middle.solidimagestacklayer │ │ │ │ ├── Contents.json │ │ │ │ └── Content.imageset │ │ │ │ │ ├── Middle.png │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ ├── build.xcconfig │ │ ├── src │ │ │ └── NativeScriptApp.swift │ │ └── Info.plist │ └── Android │ │ ├── src │ │ └── main │ │ │ ├── res │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── values │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── drawable-hdpi │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-xhdpi │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ └── ic_launcher.xml │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── values-v29 │ │ │ │ └── styles.xml │ │ │ └── drawable │ │ │ │ └── ic_launcher_foreground.xml │ │ │ └── AndroidManifest.xml │ │ ├── app.gradle │ │ └── before-plugins.gradle │ ├── .eslintrc.json │ ├── webpack.config.js │ ├── types │ ├── shims.vue.d.ts │ └── references.d.ts │ ├── src │ ├── app.css │ ├── components │ │ ├── Home.vue │ │ └── Pager.vue │ └── app.ts │ ├── nativescript.config.ts │ ├── package.json │ ├── .gitignore │ ├── tsconfig.json │ └── project.json ├── .vscode └── extensions.json ├── .editorconfig ├── tsconfig.base.json ├── .gitignore ├── .eslintrc.json ├── README.md ├── nx.json └── package.json /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true 3 | } 4 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Add files here to ignore them from prettier formatting 2 | /dist 3 | /coverage 4 | /.nx/cache -------------------------------------------------------------------------------- /apps/web-hello-world/public/logo_vue.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/web-hello-world/public/logo_vue.glb -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/src/Custom-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "NativeScript/NativeScript.h" 2 | #import "NativeScriptStart.h" 3 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/src/module.modulemap: -------------------------------------------------------------------------------- 1 | module NativeScriptStartStub { 2 | header "NativeScriptStart.h" 3 | export * 4 | } -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "nrwl.angular-console", 4 | "esbenp.prettier-vscode", 5 | "dbaeumer.vscode-eslint" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/build.xcconfig: -------------------------------------------------------------------------------- 1 | // DEVELOPMENT_TEAM = YOUR_TEAM_ID; 2 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 3 | IPHONEOS_DEPLOYMENT_TARGET = 17.0; -------------------------------------------------------------------------------- /apps/nativescript-hello-world/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { "extends": "../../.eslintrc.json", "ignorePatterns": ["!**/*", "references.d.ts", "node_modules/**/*", "hooks/**/*", "platforms/**/*"], "rules": {} } 2 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/values-v21/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #65ADF1 4 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/webpack.config.js: -------------------------------------------------------------------------------- 1 | const webpack = require("@nativescript/webpack"); 2 | 3 | module.exports = (env) => { 4 | webpack.init(env); 5 | 6 | return webpack.resolveConfig(); 7 | }; 8 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/types/shims.vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import type { DefineComponent } from 'nativescript-vue'; 3 | const component: DefineComponent<{}, {}, any>; 4 | export default component; 5 | } -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/src/NativeScriptApp.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | @main 4 | struct NativeScriptApp: App { 5 | 6 | var body: some Scene { 7 | NativeScriptMainWindow() 8 | } 9 | } -------------------------------------------------------------------------------- /apps/nativescript-hello-world/src/app.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | ActionBar { 6 | background-color: #FAE8EB; 7 | color: #3f3f3f; 8 | text-align: center; 9 | } 10 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/types/references.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-hdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-hdpi/logo.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-ldpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-ldpi/logo.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-mdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-mdpi/logo.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png -------------------------------------------------------------------------------- /apps/web-hello-world/src/views/HomeView.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/web-hello-world/src/app/components/three.js: -------------------------------------------------------------------------------- 1 | import * as THREE from 'three'; 2 | window.THREE = THREE; 3 | import 'three/examples/jsm/loaders/GLTFLoader.js'; 4 | import 'three/examples/jsm/controls/OrbitControls.js'; 5 | export default THREE; -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-hdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-hdpi/background.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-ldpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-ldpi/background.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-mdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-mdpi/background.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xhdpi/background.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png -------------------------------------------------------------------------------- /apps/web-hello-world/src/main.ts: -------------------------------------------------------------------------------- 1 | import './styles.css'; 2 | 3 | import router from './router'; 4 | 5 | import { createApp } from 'vue'; 6 | import App from './app/App.vue'; 7 | 8 | const app = createApp(App); 9 | 10 | app.use(router); 11 | 12 | app.mount('#root'); 13 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Vue Platforms 4 | Vue Platforms 5 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #35495e 4 | #757575 5 | #65ADF1 6 | #272734 7 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Content.imageset/Back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Content.imageset/Back.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Content.imageset/Front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Content.imageset/Front.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Content.imageset/Middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NativeScript/vue-x-platforms/HEAD/apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Content.imageset/Middle.png -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-1024.png", 5 | "idiom" : "universal", 6 | "platform" : "ios", 7 | "size" : "1024x1024" 8 | } 9 | ], 10 | "info" : { 11 | "author" : "xcode", 12 | "version" : 1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /apps/web-hello-world/src/app/App.spec.ts: -------------------------------------------------------------------------------- 1 | import { describe, it, expect } from 'vitest'; 2 | 3 | import { mount } from '@vue/test-utils'; 4 | import App from './App.vue'; 5 | 6 | describe('App', () => { 7 | it('renders properly', () => { 8 | const wrapper = mount(App, {}); 9 | expect(wrapper.text()).toContain('Welcome web-hello-world 👋'); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Back.png", 5 | "idiom" : "reality", 6 | "scale" : "2x" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Front.png", 5 | "idiom" : "reality", 6 | "scale" : "2x" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Middle.png", 5 | "idiom" : "reality", 6 | "scale" : "2x" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '17.0' 2 | 3 | post_install do |installer| 4 | installer.pods_project.targets.each do |target| 5 | target.build_configurations.each do |config| 6 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '17.0' 7 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 8 | end 9 | end 10 | end -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/web-hello-world/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "types": ["vite/client"] 6 | }, 7 | "exclude": [ 8 | "src/**/*.spec.ts", 9 | "src/**/*.test.ts", 10 | "src/**/*.spec.vue", 11 | "src/**/*.test.vue" 12 | ], 13 | "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.vue"] 14 | } 15 | -------------------------------------------------------------------------------- /apps/web-hello-world/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | web-hello-world 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Assets.xcassets/AppIcon.solidimagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.solidimagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.solidimagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.solidimagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/app.gradle: -------------------------------------------------------------------------------- 1 | 2 | android { 3 | compileSdkVersion 34 4 | buildToolsVersion "34" 5 | 6 | defaultConfig { 7 | minSdkVersion 23 8 | targetSdkVersion 34 9 | 10 | // Version Information 11 | versionCode 1 12 | versionName "1.0.0" 13 | 14 | generatedDensities = [] 15 | } 16 | 17 | aaptOptions { 18 | additionalParameters "--no-version-vectors" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/values-v29/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/src/NativeScriptStart.m: -------------------------------------------------------------------------------- 1 | // Stub to allow @nativescript/core@vision to be shared with @nativescript/ios runtime 2 | // Note this will become part of @nativescript/ios in future and will no longer be needed 3 | 4 | #import 5 | #import 6 | #import 7 | 8 | @implementation NativeScriptStart 9 | 10 | +(void)setup{ 11 | 12 | } 13 | +(void)boot{ 14 | 15 | } 16 | @end -------------------------------------------------------------------------------- /apps/nativescript-hello-world/nativescript.config.ts: -------------------------------------------------------------------------------- 1 | import { NativeScriptConfig } from '@nativescript/core'; 2 | 3 | export default { 4 | id: 'org.nativescript.vuexplatforms', 5 | appResourcesPath: 'App_Resources', 6 | android: { 7 | v8Flags: '--expose_gc', 8 | markingMode: 'none', 9 | codeCache: true, 10 | suppressCallJSMethodExceptions: false, 11 | }, 12 | appPath: 'src', 13 | ios: { 14 | discardUncaughtJsExceptions: false, 15 | }, 16 | } as NativeScriptConfig; 17 | -------------------------------------------------------------------------------- /apps/web-hello-world/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "plugin:vue/vue3-essential", 4 | "eslint:recommended", 5 | "@vue/eslint-config-typescript", 6 | "@vue/eslint-config-prettier/skip-formatting", 7 | "../../.eslintrc.json" 8 | ], 9 | "ignorePatterns": ["!**/*"], 10 | "overrides": [ 11 | { 12 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx", "*.vue"], 13 | "rules": { 14 | "vue/multi-word-component-names": "off" 15 | } 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/build.xcconfig: -------------------------------------------------------------------------------- 1 | // You can add custom settings here 2 | // for example you can uncomment the following line to force distribution code signing 3 | // CODE_SIGN_IDENTITY = iPhone Distribution 4 | // To build for device with XCode you need to specify your development team. 5 | // DEVELOPMENT_TEAM = YOUR_TEAM_ID; 6 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 7 | IPHONEOS_DEPLOYMENT_TARGET = 17.0; 8 | SWIFT_OBJC_BRIDGING_HEADER = ../../App_Resources/iOS/src/Custom-Bridging-Header.h -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/src/NativeScriptStart.h: -------------------------------------------------------------------------------- 1 | // Stub to allow @nativescript/core@vision to be shared with @nativescript/ios runtime 2 | // Note this will become part of @nativescript/ios in future and will no longer be needed 3 | 4 | #import 5 | 6 | #ifndef NativeScriptStart_h 7 | #define NativeScriptStart_h 8 | 9 | 10 | #endif /* NativeScriptStart_h */ 11 | 12 | @interface NativeScriptStart : NSObject 13 | 14 | + (void)setup; 15 | + (void)boot; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "rootDir": ".", 5 | "sourceMap": true, 6 | "declaration": false, 7 | "moduleResolution": "node", 8 | "emitDecoratorMetadata": true, 9 | "experimentalDecorators": true, 10 | "importHelpers": true, 11 | "target": "es2015", 12 | "module": "esnext", 13 | "lib": ["es2020", "dom"], 14 | "skipLibCheck": true, 15 | "skipDefaultLibCheck": true, 16 | "baseUrl": ".", 17 | "paths": {} 18 | }, 19 | "exclude": ["node_modules", "tmp"] 20 | } 21 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/before-plugins.gradle: -------------------------------------------------------------------------------- 1 | // this configurations is loaded before building plugins, as well as before building 2 | // the app - this is where you can apply global settings and overrides 3 | 4 | project.ext { 5 | // androidXAppCompat = "1.4.1" 6 | // androidXExifInterface = "1.3.3" 7 | // androidXFragment = "1.4.1" 8 | // androidXMaterial = "1.5.0" 9 | // androidXMultidex = "2.0.1" 10 | // androidXTransition = "1.4.1" 11 | // androidXViewPager = "1.0.0" 12 | 13 | // useKotlin = true 14 | // kotlinVersion = "1.6.0" 15 | } 16 | -------------------------------------------------------------------------------- /apps/web-hello-world/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": true, 4 | "esModuleInterop": false, 5 | "allowSyntheticDefaultImports": true, 6 | "jsx": "preserve", 7 | "jsxImportSource": "vue", 8 | "moduleResolution": "node", 9 | "resolveJsonModule": true, 10 | "verbatimModuleSyntax": true 11 | }, 12 | "files": [], 13 | "include": [], 14 | "references": [ 15 | { 16 | "path": "./tsconfig.app.json" 17 | }, 18 | { 19 | "path": "./tsconfig.spec.json" 20 | } 21 | ], 22 | "extends": "../../tsconfig.base.json" 23 | } 24 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nativescript-hello-world", 3 | "version": "1.0.0", 4 | "main": "./src/app.ts", 5 | "private": true, 6 | "dependencies": { 7 | "@nativescript-community/ui-pager": "^14.1.16", 8 | "@nativescript/core": "vision", 9 | "@nativescript/swift-ui": "vision", 10 | "@nativescript/tailwind": "~2.0.1", 11 | "nativescript-vue": "3.0.0-rc.1", 12 | "vue": "^3.4.15" 13 | }, 14 | "devDependencies": { 15 | "@nativescript/android": "~8.6.0", 16 | "@nativescript/ios": "~8.6.0", 17 | "@nativescript/visionos": "~8.6.0", 18 | "typescript": "~5.3.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /apps/web-hello-world/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "types": [ 6 | "vitest/globals", 7 | "vitest/importMeta", 8 | "vite/client", 9 | "node", 10 | "vitest" 11 | ] 12 | }, 13 | "include": [ 14 | "vite.config.ts", 15 | "vitest.config.ts", 16 | "src/**/*.test.ts", 17 | "src/**/*.spec.ts", 18 | "src/**/*.test.tsx", 19 | "src/**/*.spec.tsx", 20 | "src/**/*.test.js", 21 | "src/**/*.spec.js", 22 | "src/**/*.test.jsx", 23 | "src/**/*.spec.jsx", 24 | "src/**/*.d.ts" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | dist 5 | tmp 6 | /out-tsc 7 | 8 | # dependencies 9 | node_modules 10 | 11 | # IDEs and editors 12 | /.idea 13 | .project 14 | .classpath 15 | .c9/ 16 | *.launch 17 | .settings/ 18 | *.sublime-workspace 19 | 20 | # IDE - VSCode 21 | .vscode/* 22 | !.vscode/settings.json 23 | !.vscode/tasks.json 24 | !.vscode/launch.json 25 | !.vscode/extensions.json 26 | 27 | # misc 28 | /.sass-cache 29 | /connect.lock 30 | /coverage 31 | /libpeerconnection.log 32 | npm-debug.log 33 | yarn-error.log 34 | testem.log 35 | /typings 36 | 37 | # System Files 38 | .DS_Store 39 | Thumbs.db 40 | 41 | .nx/cache -------------------------------------------------------------------------------- /apps/web-hello-world/src/router/index.ts: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from 'vue-router'; 2 | import HomeView from '../views/HomeView.vue'; 3 | 4 | const router = createRouter({ 5 | history: createWebHistory(import.meta.env.BASE_URL), 6 | routes: [ 7 | { 8 | path: '/', 9 | name: 'home', 10 | component: HomeView, 11 | }, 12 | { 13 | path: '/about', 14 | name: 'about', 15 | // route level code-splitting 16 | // this generates a separate chunk (About.[hash].js) for this route 17 | // which is lazy-loaded when the route is visited. 18 | component: () => import('../views/AboutView.vue'), 19 | }, 20 | ], 21 | }); 22 | 23 | export default router; 24 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/.gitignore: -------------------------------------------------------------------------------- 1 | # NativeScript 2 | hooks/ 3 | node_modules/ 4 | platforms/ 5 | 6 | # NativeScript Template 7 | *.js.map 8 | *.js 9 | !webpack.config.js 10 | 11 | # Logs 12 | logs 13 | *.log 14 | npm-debug.log* 15 | yarn-debug.log* 16 | yarn-error.log* 17 | 18 | # General 19 | .DS_Store 20 | .AppleDouble 21 | .LSOverride 22 | .idea 23 | .cloud 24 | .project 25 | tmp/ 26 | typings/ 27 | 28 | # misc 29 | npm-debug.log 30 | 31 | # app 32 | !*.d.ts 33 | !src/assets/fontawesome.min.css 34 | !webpack.config.js 35 | /report/ 36 | .nsbuildinfo 37 | /temp/ 38 | /src/tns_modules/ 39 | 40 | # app uses platform specific scss which can inadvertently get renamed which will cause problems 41 | app/app.scss 42 | 43 | package-lock.json 44 | !tools/** 45 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "moduleResolution": "node", 6 | "lib": ["esnext", "WebWorker"], 7 | "sourceMap": true, 8 | "noEmitHelpers": true, 9 | "importHelpers": true, 10 | "baseUrl": ".", 11 | "paths": { 12 | "~/*": ["src/*"], 13 | "@/*": ["src/*"] 14 | }, 15 | "allowSyntheticDefaultImports": true, 16 | "esModuleInterop": true, 17 | "experimentalDecorators": true, 18 | "emitDecoratorMetadata": true, 19 | "skipLibCheck": true 20 | }, 21 | "vueCompilerOptions": { 22 | "target": 3, 23 | "lib": "nativescript-vue" 24 | }, 25 | "include": ["src", "types"], 26 | "exclude": ["node_modules", "platforms"] 27 | } -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "ignorePatterns": ["**/*"], 4 | "plugins": ["@nx"], 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx", "*.vue"], 8 | "rules": { 9 | "@nx/enforce-module-boundaries": [ 10 | "error", 11 | { 12 | "enforceBuildableLibDependency": true, 13 | "allow": [], 14 | "depConstraints": [ 15 | { 16 | "sourceTag": "*", 17 | "onlyDependOnLibsWithTags": ["*"] 18 | } 19 | ] 20 | } 21 | ] 22 | } 23 | }, 24 | { 25 | "files": ["*.ts", "*.tsx"], 26 | "extends": ["plugin:@nx/typescript"], 27 | "rules": {} 28 | }, 29 | { 30 | "files": ["*.js", "*.jsx"], 31 | "extends": ["plugin:@nx/javascript"], 32 | "rules": {} 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Vuejs Logo 2 | 3 | [Vue](https://vuejs.org/) running on Web, iOS, Android and Vision Pro. 4 | 5 | https://github.com/NativeScript/vue-x-platforms/assets/457187/3efa0cc7-b2c4-49da-b477-b00fe6fd408f 6 | 7 | ## Setup 8 | 9 | Prerequisites: 10 | - [NativeScript Environment Setup](https://docs.nativescript.org/setup/macos#setting-up-macos-for-ios) 11 | - Install `vision` tagged CLI: `npm install -g nativescript@vision` 12 | - Learn more here: https://docs.nativescript.org/guide/visionos 13 | - [Xcode 15.2 Installed for Vision Pro Simulator](https://developer.apple.com/download/applications/) 14 | 15 | ```bash 16 | npm run setup 17 | ``` 18 | 19 | ## Run apps 20 | 21 | ```bash 22 | npm run web 23 | 24 | npm run ios 25 | 26 | npm run vision 27 | 28 | npm run android 29 | ``` 30 | -------------------------------------------------------------------------------- /apps/web-hello-world/src/app/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 14 | 15 | 45 | -------------------------------------------------------------------------------- /nx.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./node_modules/nx/schemas/nx-schema.json", 3 | "targetDefaults": { 4 | "build": { 5 | "cache": true, 6 | "dependsOn": ["^build"], 7 | "inputs": ["production", "^production"] 8 | }, 9 | "lint": { 10 | "cache": true, 11 | "inputs": [ 12 | "default", 13 | "{workspaceRoot}/.eslintrc.json", 14 | "{workspaceRoot}/.eslintignore", 15 | "{workspaceRoot}/eslint.config.js" 16 | ] 17 | }, 18 | "@nx/vite:test": { 19 | "cache": true, 20 | "inputs": ["default", "^production"] 21 | } 22 | }, 23 | "namedInputs": { 24 | "default": ["{projectRoot}/**/*", "sharedGlobals"], 25 | "production": [ 26 | "default", 27 | "!{projectRoot}/.eslintrc.json", 28 | "!{projectRoot}/eslint.config.js", 29 | "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", 30 | "!{projectRoot}/tsconfig.spec.json" 31 | ], 32 | "sharedGlobals": [] 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /apps/web-hello-world/src/styles.css: -------------------------------------------------------------------------------- 1 | html { 2 | -webkit-text-size-adjust: 100%; 3 | font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 4 | 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 5 | 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; 6 | line-height: 1.5; 7 | tab-size: 4; 8 | scroll-behavior: smooth; 9 | } 10 | @keyframes bg { 11 | 0% { background: #42b883cc; } 12 | 50% { background: #35495ea9; } 13 | 100% { background: #42b883cc; } 14 | } 15 | 16 | body { 17 | font-family: inherit; 18 | line-height: inherit; 19 | margin: 0; 20 | background: #000; 21 | animation: bg 5s linear infinite; 22 | } 23 | h1, 24 | h2, 25 | p, 26 | pre { 27 | margin: 0; 28 | } 29 | *, 30 | ::before, 31 | ::after { 32 | box-sizing: border-box; 33 | border-width: 0; 34 | border-style: solid; 35 | border-color: currentColor; 36 | } 37 | h1, 38 | h2 { 39 | font-size: inherit; 40 | font-weight: inherit; 41 | } 42 | a { 43 | color: inherit; 44 | text-decoration: inherit; 45 | } 46 | pre { 47 | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 48 | 'Liberation Mono', 'Courier New', monospace; 49 | } 50 | -------------------------------------------------------------------------------- /apps/web-hello-world/vite.config.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import { defineConfig } from 'vite'; 3 | import vue from '@vitejs/plugin-vue'; 4 | import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; 5 | 6 | export default defineConfig({ 7 | root: __dirname, 8 | cacheDir: '../../node_modules/.vite/apps/web-hello-world', 9 | 10 | server: { 11 | port: 4200, 12 | host: 'localhost', 13 | }, 14 | 15 | preview: { 16 | port: 4300, 17 | host: 'localhost', 18 | }, 19 | 20 | plugins: [vue(), nxViteTsPaths()], 21 | 22 | // Uncomment this if you are using workers. 23 | // worker: { 24 | // plugins: [ nxViteTsPaths() ], 25 | // }, 26 | 27 | build: { 28 | outDir: '../../dist/apps/web-hello-world', 29 | reportCompressedSize: true, 30 | commonjsOptions: { 31 | transformMixedEsModules: true, 32 | }, 33 | }, 34 | 35 | test: { 36 | globals: true, 37 | cache: { 38 | dir: '../../node_modules/.vitest', 39 | }, 40 | environment: 'jsdom', 41 | include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], 42 | 43 | reporters: ['default'], 44 | coverage: { 45 | reportsDirectory: '../../coverage/apps/web-hello-world', 46 | provider: 'v8', 47 | }, 48 | }, 49 | }); 50 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/src/components/Home.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 47 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 13 | 14 | 15 | 18 | 19 | 20 | 23 | 24 | 28 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/drawable/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/visionOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Vue Platforms 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | Vue Platforms 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion∂ 22 | 1.0 23 | LSRequiresIPhoneOS 24 | 25 | UIRequiresFullScreen 26 | 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nativescript-hello-world", 3 | "$schema": "../../node_modules/nx/schemas/project-schema.json", 4 | "sourceRoot": "apps/nativescript-hello-world/src", 5 | "projectType": "application", 6 | "targets": { 7 | "ios": { 8 | "executor": "@nativescript/nx:build", 9 | "options": { 10 | "platform": "ios", 11 | "noHmr": true 12 | }, 13 | "configurations": { 14 | "build": { 15 | "copyTo": "./dist/build.ipa" 16 | }, 17 | "prod": { 18 | "combineWithConfig": "build:prod" 19 | } 20 | } 21 | }, 22 | "vision": { 23 | "executor": "@nativescript/nx:build", 24 | "inputs": [ 25 | "default", 26 | "^production" 27 | ], 28 | "outputs": [], 29 | "options": { 30 | "platform": "vision", 31 | "noHmr": true, 32 | "debug": false 33 | } 34 | }, 35 | "android": { 36 | "executor": "@nativescript/nx:build", 37 | "options": { 38 | "platform": "android", 39 | "noHmr": true 40 | }, 41 | "configurations": { 42 | "build": { 43 | "copyTo": "./dist/build.apk" 44 | }, 45 | "prod": { 46 | "combineWithConfig": "build:prod" 47 | } 48 | } 49 | }, 50 | "clean": { 51 | "executor": "@nativescript/nx:build", 52 | "options": { 53 | "clean": true 54 | } 55 | }, 56 | "lint": { 57 | "executor": "@nx/eslint:eslint", 58 | "options": { 59 | "lintFilePatterns": [ 60 | "apps/nativescript-hello-world/**/*.ts", 61 | "apps/nativescript-hello-world/src/**/*.html" 62 | ] 63 | } 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/Android/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 17 | 18 | 20 | 21 | 22 | 29 | 30 | 32 | 33 | 34 | 39 | 40 | 42 | 43 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Vue Platforms 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | Vue Platforms 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiresFullScreen 28 | 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | ITSAppUsesNonExemptEncryption 47 | 48 | NSAppTransportSecurity 49 | 50 | NSAllowsArbitraryLoads 51 | 52 | NSAllowsArbitraryLoadsForMedia 53 | 54 | NSAllowsArbitraryLoadsInWebContent 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/App_Resources/iOS/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /apps/web-hello-world/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web-hello-world", 3 | "$schema": "../../node_modules/nx/schemas/project-schema.json", 4 | "projectType": "application", 5 | "sourceRoot": "apps/web-hello-world/src", 6 | "targets": { 7 | "lint": { 8 | "executor": "@nx/eslint:lint", 9 | "outputs": ["{options.outputFile}"] 10 | }, 11 | "build": { 12 | "executor": "@nx/vite:build", 13 | "outputs": ["{options.outputPath}"], 14 | "defaultConfiguration": "production", 15 | "options": { 16 | "outputPath": "dist/apps/web-hello-world", 17 | "skipTypeCheck": true 18 | }, 19 | "configurations": { 20 | "development": { 21 | "mode": "development" 22 | }, 23 | "production": { 24 | "mode": "production" 25 | } 26 | } 27 | }, 28 | "serve": { 29 | "executor": "@nx/vite:dev-server", 30 | "defaultConfiguration": "development", 31 | "options": { 32 | "buildTarget": "web-hello-world:build" 33 | }, 34 | "configurations": { 35 | "development": { 36 | "buildTarget": "web-hello-world:build:development", 37 | "hmr": true 38 | }, 39 | "production": { 40 | "buildTarget": "web-hello-world:build:production", 41 | "hmr": false 42 | } 43 | } 44 | }, 45 | "preview": { 46 | "executor": "@nx/vite:preview-server", 47 | "defaultConfiguration": "development", 48 | "options": { 49 | "buildTarget": "web-hello-world:build" 50 | }, 51 | "configurations": { 52 | "development": { 53 | "buildTarget": "web-hello-world:build:development" 54 | }, 55 | "production": { 56 | "buildTarget": "web-hello-world:build:production" 57 | } 58 | } 59 | }, 60 | "test": { 61 | "executor": "@nx/vite:test", 62 | "outputs": ["{options.reportsDirectory}"], 63 | "options": { 64 | "reportsDirectory": "../../coverage/apps/web-hello-world" 65 | } 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-x-platforms/source", 3 | "version": "0.0.0", 4 | "license": "MIT", 5 | "private": true, 6 | "scripts": { 7 | "setup": "npx rimraf hooks node_modules package-lock.json yarn.lock && npm install && nx run-many --target=clean --all", 8 | "postinstall": "npx patch-package", 9 | "android": "nx run nativescript-hello-world:android", 10 | "ios": "nx run nativescript-hello-world:ios", 11 | "vision": "nx run nativescript-hello-world:vision", 12 | "web": "nx serve web-hello-world" 13 | }, 14 | "dependencies": { 15 | "@nativescript/core": "vision", 16 | "@nativescript/swift-ui": "vision", 17 | "nativescript-vue": "3.0.0-rc.1", 18 | "three": "^0.160.1", 19 | "vue": "^3.4.15", 20 | "vue-router": "^4.2.5" 21 | }, 22 | "devDependencies": { 23 | "@nativescript/nx": "^17.1.0", 24 | "@nativescript/tailwind": "~2.0.1", 25 | "@nativescript/types": "~8.6.0", 26 | "@nativescript/webpack": "vision", 27 | "@nx/eslint": "17.2.8", 28 | "@nx/eslint-plugin": "17.2.8", 29 | "@nx/js": "17.2.8", 30 | "@nx/vite": "17.2.8", 31 | "@nx/vue": "17.2.8", 32 | "@nx/workspace": "17.2.8", 33 | "@swc-node/register": "~1.6.7", 34 | "@swc/core": "~1.3.85", 35 | "@typescript-eslint/eslint-plugin": "^6.9.1", 36 | "@typescript-eslint/parser": "^6.9.1", 37 | "@vitejs/plugin-vue": "^4.5.0", 38 | "@vitest/coverage-v8": "~0.34.6", 39 | "@vitest/ui": "~0.34.6", 40 | "@vue/eslint-config-prettier": "7.1.0", 41 | "@vue/eslint-config-typescript": "^11.0.3", 42 | "@vue/test-utils": "^2.4.1", 43 | "@vue/tsconfig": "^0.4.0", 44 | "eslint": "~8.48.0", 45 | "eslint-config-prettier": "^9.0.0", 46 | "eslint-plugin-vue": "^9.16.1", 47 | "jsdom": "~22.1.0", 48 | "nx": "17.2.8", 49 | "patch-package": "^8.0.0", 50 | "prettier": "^2.6.2", 51 | "tailwindcss": "~3.2.0", 52 | "typescript": "~5.3.0", 53 | "vite": "^5.0.0", 54 | "vitest": "~0.34.6", 55 | "vue-tsc": "^1.8.8" 56 | }, 57 | "nativescript-nx": { 58 | "prefix": "vue-x-platforms", 59 | "framework": "vue" 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/src/app.ts: -------------------------------------------------------------------------------- 1 | import { CoreTypes, TouchManager, View } from '@nativescript/core'; 2 | import { createApp } from 'nativescript-vue'; 3 | import Home from './components/Home.vue'; 4 | 5 | const originalTransform = Symbol('originalTransform'); 6 | TouchManager.enableGlobalTapAnimations = true; 7 | TouchManager.animations = { 8 | down: (view: View) => { 9 | if (global.isIOS) { 10 | UIView.animateWithDurationDelayUsingSpringWithDampingInitialSpringVelocityOptionsAnimationsCompletion( 11 | 0.3, 12 | 0, 13 | 0.5, 14 | 3, 15 | UIViewAnimationOptions.CurveEaseInOut | 16 | UIViewAnimationOptions.AllowUserInteraction, 17 | () => { 18 | if (view?.ios) { 19 | view[originalTransform] = 20 | view[originalTransform] ?? view.ios.transform; 21 | 22 | view.ios.transform = CGAffineTransformConcat( 23 | view[originalTransform], 24 | CGAffineTransformMakeScale(0.97, 0.97) 25 | ); 26 | } 27 | }, 28 | () => {} 29 | ); 30 | } else { 31 | view 32 | ?.animate({ 33 | scale: { x: 0.97, y: 0.97 }, 34 | duration: 120, 35 | curve: CoreTypes.AnimationCurve.easeInOut, 36 | }) 37 | .then(() => {}) 38 | .catch(() => {}); 39 | } 40 | }, 41 | up: (view: View) => { 42 | if (global.isIOS) { 43 | UIView.animateWithDurationDelayUsingSpringWithDampingInitialSpringVelocityOptionsAnimationsCompletion( 44 | 0.3, 45 | 0, 46 | 0.5, 47 | 3, 48 | UIViewAnimationOptions.CurveEaseInOut | 49 | UIViewAnimationOptions.AllowUserInteraction, 50 | () => { 51 | if (view?.ios) { 52 | view.ios.transform = 53 | view[originalTransform] ?? CGAffineTransformMakeScale(1, 1); 54 | } 55 | }, 56 | () => {} 57 | ); 58 | } else { 59 | view 60 | ?.animate({ 61 | scale: { x: 1, y: 1 }, 62 | duration: 120, 63 | curve: CoreTypes.AnimationCurve.easeInOut, 64 | }) 65 | .then(() => {}) 66 | .catch(() => {}); 67 | } 68 | }, 69 | }; 70 | 71 | createApp(Home).start(); 72 | -------------------------------------------------------------------------------- /apps/web-hello-world/src/app/components/Logo3D.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 75 | 76 | -------------------------------------------------------------------------------- /apps/web-hello-world/src/views/AboutView.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 63 | 64 | 164 | -------------------------------------------------------------------------------- /apps/nativescript-hello-world/src/components/Pager.vue: -------------------------------------------------------------------------------- 1 | 68 | 122 | -------------------------------------------------------------------------------- /apps/web-hello-world/src/app/NxWelcome.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 36 | 37 | 404 | --------------------------------------------------------------------------------