├── .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 |
6 |
7 |
8 |
9 |
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 |
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 |
6 |
7 |
11 |
12 |
13 |
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 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
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 |
2 |
3 |
4 |
5 |
6 |
75 |
76 |
--------------------------------------------------------------------------------
/apps/web-hello-world/src/views/AboutView.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
63 |
64 |
164 |
--------------------------------------------------------------------------------
/apps/nativescript-hello-world/src/components/Pager.vue:
--------------------------------------------------------------------------------
1 |
68 |
69 |
70 |
71 |
72 |
76 |
77 |
78 |
79 |
80 |
87 |
88 |
89 |
90 |
91 |
95 |
96 |
97 |
98 |
99 |
104 |
105 |
106 |
111 |
112 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/apps/web-hello-world/src/app/NxWelcome.vue:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Hello {{ title }} 👋
13 | Happy Valentine Month 🌹
14 |
15 |
16 |
17 |
18 | Carefully crafted with
19 |
32 |
33 |
34 |
35 |
36 |
37 |
404 |
--------------------------------------------------------------------------------