@interopio/iocd-cli 0.0.41 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +795 -782
  2. package/dist/services/license.service.js +14 -14
  3. package/dist/services/modifications/modifications.service.js +14 -0
  4. package/dist/services/modifications/modifications.service.js.map +1 -1
  5. package/dist/templates/groups/apps/groups/.gitignore.template +23 -23
  6. package/dist/templates/groups/apps/groups/README.md +15 -15
  7. package/dist/templates/groups/apps/groups/config/web-group-dev.json +12 -12
  8. package/dist/templates/groups/apps/groups/index.html +17 -17
  9. package/dist/templates/groups/apps/groups/iocd.app.json +19 -19
  10. package/dist/templates/groups/apps/groups/package.json +25 -25
  11. package/dist/templates/groups/apps/groups/public/manifest.json +24 -24
  12. package/dist/templates/groups/apps/groups/public/robots.txt +3 -3
  13. package/dist/templates/groups/apps/groups/src/App.css +38 -38
  14. package/dist/templates/groups/apps/groups/src/App.tsx +11 -11
  15. package/dist/templates/groups/apps/groups/src/index.css +13 -13
  16. package/dist/templates/groups/apps/groups/src/index.tsx +19 -19
  17. package/dist/templates/groups/apps/groups/vite.config.ts +8 -8
  18. package/dist/templates/groups/template.json +12 -12
  19. package/dist/templates/ioconnect-desktop/.github/actions/setup-smctl/action.yml +121 -121
  20. package/dist/templates/ioconnect-desktop/.github/workflows/build.yml +395 -395
  21. package/dist/templates/ioconnect-desktop/.gitignore.template +15 -15
  22. package/dist/templates/ioconnect-desktop/README.md +795 -782
  23. package/dist/templates/ioconnect-desktop/config/forge.config.js +38 -38
  24. package/dist/templates/ioconnect-desktop/config/iocd.cli.config.json +16 -16
  25. package/dist/templates/ioconnect-desktop/config/mac-build/entitlements.mac.plist +44 -44
  26. package/dist/templates/ioconnect-desktop/config/win-build/template.nuspectemplate +32 -32
  27. package/dist/templates/ioconnect-desktop/modifications/base/iocd/config/system.json.merge +2 -2
  28. package/dist/templates/ioconnect-desktop/modifications/base/iocd/config/system.json.merge-autoUpdate +9 -9
  29. package/dist/templates/ioconnect-desktop/package.json +33 -33
  30. package/dist/templates/ioconnect-desktop/template.json +6 -6
  31. package/dist/templates/launchpad/apps/launchpad/.eslintrc.json +3 -3
  32. package/dist/templates/launchpad/apps/launchpad/.gitignore.template +1 -1
  33. package/dist/templates/launchpad/apps/launchpad/config/iocd.app.def.dev.json +56 -56
  34. package/dist/templates/launchpad/apps/launchpad/config/iocd.system.build.json +2 -2
  35. package/dist/templates/launchpad/apps/launchpad/config/iocd.system.dev.json +2 -2
  36. package/dist/templates/launchpad/apps/launchpad/index.html +16 -16
  37. package/dist/templates/launchpad/apps/launchpad/iocd.app.json +27 -27
  38. package/dist/templates/launchpad/apps/launchpad/package-lock.json +2778 -2778
  39. package/dist/templates/launchpad/apps/launchpad/package.json +21 -21
  40. package/dist/templates/launchpad/apps/launchpad/src/app/app.tsx +41 -41
  41. package/dist/templates/launchpad/apps/launchpad/src/app/constants.ts +27 -27
  42. package/dist/templates/launchpad/apps/launchpad/src/components/logo.tsx +11 -11
  43. package/dist/templates/launchpad/apps/launchpad/src/components/main-context-menu.tsx +161 -161
  44. package/dist/templates/launchpad/apps/launchpad/src/components/notifications-button.tsx +44 -44
  45. package/dist/templates/launchpad/apps/launchpad/src/main.tsx +6 -6
  46. package/dist/templates/launchpad/apps/launchpad/src/styles.css +16 -16
  47. package/dist/templates/launchpad/apps/launchpad/tsconfig.json +10 -10
  48. package/dist/templates/launchpad/apps/launchpad/vite.config.ts +13 -13
  49. package/dist/templates/launchpad/template.json +12 -12
  50. package/dist/templates/splash/apps/splash/assets/styles/style.css +39 -39
  51. package/dist/templates/splash/apps/splash/iocd.app.json +7 -7
  52. package/dist/templates/splash/apps/splash/script.js +53 -53
  53. package/dist/templates/splash/apps/splash/splash.html +25 -25
  54. package/dist/templates/splash/template.json +12 -12
  55. package/dist/templates/tests/template.json +8 -8
  56. package/dist/templates/tests/tests/package-lock.json +7289 -7289
  57. package/dist/templates/tests/tests/package.json +22 -22
  58. package/dist/templates/tests/tests/tests/sample.spec.ts +30 -30
  59. package/dist/templates/tests/tests/tsconfig.json +10 -10
  60. package/dist/templates/tests/tests/wdio.config.ts +32 -32
  61. package/dist/templates/workspaces/apps/workspaces/README.md +15 -15
  62. package/dist/templates/workspaces/apps/workspaces/config/workspaces-dev.json +20 -20
  63. package/dist/templates/workspaces/apps/workspaces/index.html +17 -17
  64. package/dist/templates/workspaces/apps/workspaces/iocd.app.json +19 -19
  65. package/dist/templates/workspaces/apps/workspaces/package.json +29 -29
  66. package/dist/templates/workspaces/apps/workspaces/public/manifest.json +25 -25
  67. package/dist/templates/workspaces/apps/workspaces/public/robots.txt +3 -3
  68. package/dist/templates/workspaces/apps/workspaces/src/App.css +38 -38
  69. package/dist/templates/workspaces/apps/workspaces/src/App.tsx +102 -102
  70. package/dist/templates/workspaces/apps/workspaces/src/index.css +3 -3
  71. package/dist/templates/workspaces/apps/workspaces/src/index.tsx +28 -28
  72. package/dist/templates/workspaces/apps/workspaces/src/logo.svg +7 -7
  73. package/dist/templates/workspaces/apps/workspaces/src/reportWebVitals.ts +15 -15
  74. package/dist/templates/workspaces/apps/workspaces/src/setupTests.ts +5 -5
  75. package/dist/templates/workspaces/apps/workspaces/vite.config.ts +8 -8
  76. package/dist/templates/workspaces/template.json +12 -12
  77. package/package.json +83 -83
  78. package/scripts/copy-assets.js +19 -19
  79. package/scripts/delete-dist.js +12 -12
  80. package/scripts/generate-schema.js +50 -50
  81. package/scripts/handle-gitignore-templates.js +157 -157
@@ -1,23 +1,23 @@
1
- {
2
- "name": "tests",
3
- "version": "1.0.0",
4
- "description": "",
5
- "license": "ISC",
6
- "author": "",
7
- "type": "commonjs",
8
- "main": "basic.test.js",
9
- "scripts": {
10
- "test": "npx wdio run ./wdio.config.ts"
11
- },
12
- "devDependencies": {
13
- "@interopio/wdio-iocd-service": "^0.1.0",
14
- "@types/node": "^24.10.0",
15
- "@wdio/cli": "^8.46.0",
16
- "@wdio/local-runner": "^8.46.0",
17
- "@wdio/mocha-framework": "^8.46.0",
18
- "@wdio/spec-reporter": "^8.43.0",
19
- "ts-node": "^10.9.2",
20
- "typescript": "^5.9.3",
21
- "webdriverio": "^8.46.0"
22
- }
1
+ {
2
+ "name": "tests",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "license": "ISC",
6
+ "author": "",
7
+ "type": "commonjs",
8
+ "main": "basic.test.js",
9
+ "scripts": {
10
+ "test": "npx wdio run ./wdio.config.ts"
11
+ },
12
+ "devDependencies": {
13
+ "@interopio/wdio-iocd-service": "^0.1.0",
14
+ "@types/node": "^24.10.0",
15
+ "@wdio/cli": "^8.46.0",
16
+ "@wdio/local-runner": "^8.46.0",
17
+ "@wdio/mocha-framework": "^8.46.0",
18
+ "@wdio/spec-reporter": "^8.43.0",
19
+ "ts-node": "^10.9.2",
20
+ "typescript": "^5.9.3",
21
+ "webdriverio": "^8.46.0"
22
+ }
23
23
  }
@@ -1,30 +1,30 @@
1
- describe('Example usage of @interopio/wdio-iocd-service', () => {
2
- it('should have access to browser.io()', async () => {
3
- console.log('test start');
4
- // A fully working io.Connect Desktop client
5
- const io = await browser.io();
6
- console.log('io object ready', io.version);
7
-
8
- expect(io).toHaveAttribute('appManager');
9
- expect(io).toHaveAttribute('contexts');
10
- expect(io).toHaveAttribute('channels');
11
- });
12
-
13
- it('should raise a test notifications, and then navigate to notifications panel', async () => {
14
- const io = await browser.io();
15
- await io.notifications.configure({ enable: true });
16
- await io.notifications.raise({
17
- title: 'Test Notification title',
18
- body: 'Test Notification body',
19
- toastExpiry: 999999,
20
- });
21
-
22
- await browser.switchToLaunchpad();
23
-
24
- await browser.$('.launchpad-header-notifications-button button').waitAndClick();
25
-
26
- await browser.switchToNotificationsPanel();
27
-
28
- await browser.pause(2000);
29
- });
30
- });
1
+ describe('Example usage of @interopio/wdio-iocd-service', () => {
2
+ it('should have access to browser.io()', async () => {
3
+ console.log('test start');
4
+ // A fully working io.Connect Desktop client
5
+ const io = await browser.io();
6
+ console.log('io object ready', io.version);
7
+
8
+ expect(io).toHaveAttribute('appManager');
9
+ expect(io).toHaveAttribute('contexts');
10
+ expect(io).toHaveAttribute('channels');
11
+ });
12
+
13
+ it('should raise a test notifications, and then navigate to notifications panel', async () => {
14
+ const io = await browser.io();
15
+ await io.notifications.configure({ enable: true });
16
+ await io.notifications.raise({
17
+ title: 'Test Notification title',
18
+ body: 'Test Notification body',
19
+ toastExpiry: 999999,
20
+ });
21
+
22
+ await browser.switchToLaunchpad();
23
+
24
+ await browser.$('.launchpad-header-notifications-button button').waitAndClick();
25
+
26
+ await browser.switchToNotificationsPanel();
27
+
28
+ await browser.pause(2000);
29
+ });
30
+ });
@@ -1,11 +1,11 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "module": "CommonJS",
5
- "moduleResolution": "Node",
6
- "outDir": "dist",
7
- "esModuleInterop": true,
8
- "types": ["node", "@wdio/globals/types", "@wdio/mocha-framework"]
9
- },
10
- "include": ["wdio.config.ts", "tests/**/*.ts"]
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "CommonJS",
5
+ "moduleResolution": "Node",
6
+ "outDir": "dist",
7
+ "esModuleInterop": true,
8
+ "types": ["node", "@wdio/globals/types", "@wdio/mocha-framework"]
9
+ },
10
+ "include": ["wdio.config.ts", "tests/**/*.ts"]
11
11
  }
@@ -1,33 +1,33 @@
1
- import { IocdBaseConfiguration, IocdService } from '@interopio/wdio-iocd-service';
2
-
3
- export const config: WebdriverIO.Config = {
4
- ...IocdBaseConfiguration,
5
-
6
- // Services
7
- services: IocdService(),
8
-
9
- // Capabilities
10
- capabilities: [
11
- {
12
- browserName: 'iocd',
13
- 'wdio:specs': ['./tests/**/*.spec.ts'],
14
- 'iocd:options': {
15
- binary: '%BINARY_PATH%',
16
- },
17
- },
18
- ],
19
-
20
- // WDIO Options
21
- logLevel: 'info',
22
- framework: 'mocha',
23
- reporters: ['spec'],
24
-
25
- // TypeScript Autocompile
26
- autoCompileOpts: {
27
- autoCompile: true,
28
- tsNodeOpts: {
29
- transpileOnly: true,
30
- project: './tsconfig.json',
31
- },
32
- },
1
+ import { IocdBaseConfiguration, IocdService } from '@interopio/wdio-iocd-service';
2
+
3
+ export const config: WebdriverIO.Config = {
4
+ ...IocdBaseConfiguration,
5
+
6
+ // Services
7
+ services: IocdService(),
8
+
9
+ // Capabilities
10
+ capabilities: [
11
+ {
12
+ browserName: 'iocd',
13
+ 'wdio:specs': ['./tests/**/*.spec.ts'],
14
+ 'iocd:options': {
15
+ binary: '%BINARY_PATH%',
16
+ },
17
+ },
18
+ ],
19
+
20
+ // WDIO Options
21
+ logLevel: 'info',
22
+ framework: 'mocha',
23
+ reporters: ['spec'],
24
+
25
+ // TypeScript Autocompile
26
+ autoCompileOpts: {
27
+ autoCompile: true,
28
+ tsNodeOpts: {
29
+ transpileOnly: true,
30
+ project: './tsconfig.json',
31
+ },
32
+ },
33
33
  };
@@ -1,15 +1,15 @@
1
- # Workspaces App for io.Connect Desktop
2
-
3
- Template for creating a custom Workspaces App [for **io.Connect Desktop**](https://docs.interop.io/desktop/capabilities/windows/workspaces/overview/index.html#extending_workspaces) or [for **io.Connect Browser**](https://docs.interop.io/browser/capabilities/windows/workspaces/workspaces-app/index.html) projects.
4
-
5
- ## Prerequisites
6
-
7
- For an **io.Connect Desktop** project, **io.Connect Desktop** 9.0 or newer is required. For an **io.Connect Browser**
8
- project, **io.Connect Browser** 3.0 or newer is required.
9
-
10
- ## Usage
11
-
12
- - Run `npm install` to install all dependencies.
13
- - Run `npm run start` to start the app.
14
- - For **io.Connect Desktop** projects, open the `workspaces.json` definition file located in the `%LocalAppData%\interop.io\io.Connect Desktop\Desktop\config\apps` folder, add a `"url"` property under the `"details"` top-level key of the Workspaces UI app definition and set it to the location of your Workspaces App (the default is `http://localhost:5173`). For **io.Connect Browser** projects, see the [Enabling Workspaces](https://docs.interop.io/browser/capabilities/windows/workspaces/enabling-workspaces/index.html) documentation.
15
- - Start **io.Connect Desktop** or **io.Connect Browser** to start using and modifying your Workspaces App.
1
+ # Workspaces App for io.Connect Desktop
2
+
3
+ Template for creating a custom Workspaces App [for **io.Connect Desktop**](https://docs.interop.io/desktop/capabilities/windows/workspaces/overview/index.html#extending_workspaces) or [for **io.Connect Browser**](https://docs.interop.io/browser/capabilities/windows/workspaces/workspaces-app/index.html) projects.
4
+
5
+ ## Prerequisites
6
+
7
+ For an **io.Connect Desktop** project, **io.Connect Desktop** 9.0 or newer is required. For an **io.Connect Browser**
8
+ project, **io.Connect Browser** 3.0 or newer is required.
9
+
10
+ ## Usage
11
+
12
+ - Run `npm install` to install all dependencies.
13
+ - Run `npm run start` to start the app.
14
+ - For **io.Connect Desktop** projects, open the `workspaces.json` definition file located in the `%LocalAppData%\interop.io\io.Connect Desktop\Desktop\config\apps` folder, add a `"url"` property under the `"details"` top-level key of the Workspaces UI app definition and set it to the location of your Workspaces App (the default is `http://localhost:5173`). For **io.Connect Browser** projects, see the [Enabling Workspaces](https://docs.interop.io/browser/capabilities/windows/workspaces/enabling-workspaces/index.html) documentation.
15
+ - Start **io.Connect Desktop** or **io.Connect Browser** to start using and modifying your Workspaces App.
@@ -1,21 +1,21 @@
1
- [
2
- {
3
- "title": "Workspaces UI",
4
- "type": "workspaces",
5
- "name": "workspaces-demo",
6
- "icon": "file://%IO_CD_ASSETS_DIR%/workspaces/workspaces.ico",
7
- "allowRegisteringWorkspaceShortcuts": true,
8
- "details": {
9
- "url": "http://localhost:5176/",
10
- "layouts": [
11
- {
12
- "children": []
13
- }
14
- ],
15
- "windowState": "normal",
16
- "activateFrame": true
17
- },
18
- "allowMultiple": true,
19
- "customProperties": {}
20
- }
1
+ [
2
+ {
3
+ "title": "Workspaces UI",
4
+ "type": "workspaces",
5
+ "name": "workspaces-demo",
6
+ "icon": "file://%IO_CD_ASSETS_DIR%/workspaces/workspaces.ico",
7
+ "allowRegisteringWorkspaceShortcuts": true,
8
+ "details": {
9
+ "url": "http://localhost:5176/",
10
+ "layouts": [
11
+ {
12
+ "children": []
13
+ }
14
+ ],
15
+ "windowState": "normal",
16
+ "activateFrame": true
17
+ },
18
+ "allowMultiple": true,
19
+ "customProperties": {}
20
+ }
21
21
  ]
@@ -1,17 +1,17 @@
1
- <!doctype html>
2
- <html lang="en" class="dark">
3
- <head>
4
- <meta charset="utf-8" />
5
- <link rel="icon" href="/favicon.ico" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1" />
7
- <meta name="theme-color" content="#000000" />
8
- <meta name="description" content="io.Connect Workspaces Frame" />
9
- <link rel="apple-touch-icon" href="/logo192.png" />
10
- <link rel="manifest" href="/manifest.json" />
11
- <title>io.Connect Workspaces</title>
12
- </head>
13
- <body>
14
- <div id="root"></div>
15
- <script type="module" src="/src/index.tsx"></script>
16
- </body>
17
- </html>
1
+ <!doctype html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <link rel="icon" href="/favicon.ico" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <meta name="theme-color" content="#000000" />
8
+ <meta name="description" content="io.Connect Workspaces Frame" />
9
+ <link rel="apple-touch-icon" href="/logo192.png" />
10
+ <link rel="manifest" href="/manifest.json" />
11
+ <title>io.Connect Workspaces</title>
12
+ </head>
13
+ <body>
14
+ <div id="root"></div>
15
+ <script type="module" src="/src/index.tsx"></script>
16
+ </body>
17
+ </html>
@@ -1,20 +1,20 @@
1
- {
2
- "dev": {
3
- "script": "start",
4
- "modifications": [
5
- {
6
- "source": "/config/workspaces-dev.json",
7
- "destination": "/modifications/dev/iocd/config/apps/workspaces.json"
8
- }
9
- ]
10
- },
11
- "build": {
12
- "script": "build",
13
- "modifications": [
14
- {
15
- "source": "/dist/",
16
- "destination": "/modifications/build/iocd/assets/workspaces"
17
- }
18
- ]
19
- }
1
+ {
2
+ "dev": {
3
+ "script": "start",
4
+ "modifications": [
5
+ {
6
+ "source": "/config/workspaces-dev.json",
7
+ "destination": "/modifications/dev/iocd/config/apps/workspaces.json"
8
+ }
9
+ ]
10
+ },
11
+ "build": {
12
+ "script": "build",
13
+ "modifications": [
14
+ {
15
+ "source": "/dist/",
16
+ "destination": "/modifications/build/iocd/assets/workspaces"
17
+ }
18
+ ]
19
+ }
20
20
  }
@@ -1,29 +1,29 @@
1
- {
2
- "name": "workspaces-app-template",
3
- "version": "2.3.6",
4
- "private": true,
5
- "type": "module",
6
- "scripts": {
7
- "start": "vite --port 5176",
8
- "build": "tsc -b && vite build",
9
- "preview": "vite preview"
10
- },
11
- "dependencies": {
12
- "@interopio/desktop": "^6.8.4",
13
- "@interopio/react-hooks": "^4.1.1",
14
- "@interopio/workspaces-api": "^4.1.1",
15
- "@interopio/workspaces-ui-react": "^4.1.1",
16
- "react": "^16.13.1",
17
- "react-dom": "^16.13.1"
18
- },
19
- "devDependencies": {
20
- "@types/node": "^22.8.6",
21
- "@types/react": "^16.9.56",
22
- "@types/react-dom": "^16.9.9",
23
- "@vitejs/plugin-react": "^4.3.3",
24
- "globals": "^15.11.0",
25
- "typescript": "~5.6.2",
26
- "vite": "^7.1.5",
27
- "web-vitals": "^0.2.4"
28
- }
29
- }
1
+ {
2
+ "name": "workspaces-app-template",
3
+ "version": "2.3.6",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "start": "vite --port 5176",
8
+ "build": "tsc -b && vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "@interopio/desktop": "^6.8.4",
13
+ "@interopio/react-hooks": "^4.1.1",
14
+ "@interopio/workspaces-api": "^4.1.1",
15
+ "@interopio/workspaces-ui-react": "^4.1.1",
16
+ "react": "^16.13.1",
17
+ "react-dom": "^16.13.1"
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "^22.8.6",
21
+ "@types/react": "^16.9.56",
22
+ "@types/react-dom": "^16.9.9",
23
+ "@vitejs/plugin-react": "^4.3.3",
24
+ "globals": "^15.11.0",
25
+ "typescript": "~5.6.2",
26
+ "vite": "^7.1.5",
27
+ "web-vitals": "^0.2.4"
28
+ }
29
+ }
@@ -1,25 +1,25 @@
1
- {
2
- "short_name": "io.Connect Workspaces App",
3
- "name": "io.Connect Workspaces App",
4
- "icons": [
5
- {
6
- "src": "favicon.ico",
7
- "sizes": "64x64 32x32 24x24 16x16",
8
- "type": "image/x-icon"
9
- },
10
- {
11
- "src": "logo192.png",
12
- "type": "image/png",
13
- "sizes": "192x192"
14
- },
15
- {
16
- "src": "logo512.png",
17
- "type": "image/png",
18
- "sizes": "512x512"
19
- }
20
- ],
21
- "start_url": ".",
22
- "display": "standalone",
23
- "theme_color": "#000000",
24
- "background_color": "#ffffff"
25
- }
1
+ {
2
+ "short_name": "io.Connect Workspaces App",
3
+ "name": "io.Connect Workspaces App",
4
+ "icons": [
5
+ {
6
+ "src": "favicon.ico",
7
+ "sizes": "64x64 32x32 24x24 16x16",
8
+ "type": "image/x-icon"
9
+ },
10
+ {
11
+ "src": "logo192.png",
12
+ "type": "image/png",
13
+ "sizes": "192x192"
14
+ },
15
+ {
16
+ "src": "logo512.png",
17
+ "type": "image/png",
18
+ "sizes": "512x512"
19
+ }
20
+ ],
21
+ "start_url": ".",
22
+ "display": "standalone",
23
+ "theme_color": "#000000",
24
+ "background_color": "#ffffff"
25
+ }
@@ -1,3 +1,3 @@
1
- # https://www.robotstxt.org/robotstxt.html
2
- User-agent: *
3
- Disallow:
1
+ # https://www.robotstxt.org/robotstxt.html
2
+ User-agent: *
3
+ Disallow:
@@ -1,38 +1,38 @@
1
- .App {
2
- text-align: center;
3
- }
4
-
5
- .App-logo {
6
- height: 40vmin;
7
- pointer-events: none;
8
- }
9
-
10
- @media (prefers-reduced-motion: no-preference) {
11
- .App-logo {
12
- animation: App-logo-spin infinite 20s linear;
13
- }
14
- }
15
-
16
- .App-header {
17
- background-color: #282c34;
18
- min-height: 100vh;
19
- display: flex;
20
- flex-direction: column;
21
- align-items: center;
22
- justify-content: center;
23
- font-size: calc(10px + 2vmin);
24
- color: white;
25
- }
26
-
27
- .App-link {
28
- color: #61dafb;
29
- }
30
-
31
- @keyframes App-logo-spin {
32
- from {
33
- transform: rotate(0deg);
34
- }
35
- to {
36
- transform: rotate(360deg);
37
- }
38
- }
1
+ .App {
2
+ text-align: center;
3
+ }
4
+
5
+ .App-logo {
6
+ height: 40vmin;
7
+ pointer-events: none;
8
+ }
9
+
10
+ @media (prefers-reduced-motion: no-preference) {
11
+ .App-logo {
12
+ animation: App-logo-spin infinite 20s linear;
13
+ }
14
+ }
15
+
16
+ .App-header {
17
+ background-color: #282c34;
18
+ min-height: 100vh;
19
+ display: flex;
20
+ flex-direction: column;
21
+ align-items: center;
22
+ justify-content: center;
23
+ font-size: calc(10px + 2vmin);
24
+ color: white;
25
+ }
26
+
27
+ .App-link {
28
+ color: #61dafb;
29
+ }
30
+
31
+ @keyframes App-logo-spin {
32
+ from {
33
+ transform: rotate(0deg);
34
+ }
35
+ to {
36
+ transform: rotate(360deg);
37
+ }
38
+ }