diff --git a/apps/shinkai-visor-e2e/cypress.config.ts b/apps/shinkai-visor-e2e/cypress.config.ts index bc91e98d8..a45b4fd68 100644 --- a/apps/shinkai-visor-e2e/cypress.config.ts +++ b/apps/shinkai-visor-e2e/cypress.config.ts @@ -2,5 +2,7 @@ import { defineConfig } from 'cypress'; import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; export default defineConfig({ - e2e: nxE2EPreset(__dirname), + e2e: nxE2EPreset(__dirname, { + bundler: 'vite', + }), }); diff --git a/apps/shinkai-visor-e2e/src/e2e/app.cy.ts b/apps/shinkai-visor-e2e/src/e2e/app.cy.ts index 04341b9fc..264b6016c 100644 --- a/apps/shinkai-visor-e2e/src/e2e/app.cy.ts +++ b/apps/shinkai-visor-e2e/src/e2e/app.cy.ts @@ -1,13 +1,9 @@ -import { getGreeting } from '../support/app.po'; +import { getWelcomeMessage } from '../support/app.po'; describe('shinkai-visor', () => { beforeEach(() => cy.visit('/')); it('should display welcome message', () => { - // Custom command example, see `../support/commands.ts` file - cy.login('my-email@something.com', 'myPassword'); - - // Function helper example, see `../support/app.po.ts` file - getGreeting().contains('Welcome shinkai-visor'); + getWelcomeMessage().should('exist').contains('Setup Shinkai Visor to transform your web browser into a first class Shinkai client'); }); }); diff --git a/apps/shinkai-visor-e2e/src/support/app.po.ts b/apps/shinkai-visor-e2e/src/support/app.po.ts index 329342469..76f0561c9 100644 --- a/apps/shinkai-visor-e2e/src/support/app.po.ts +++ b/apps/shinkai-visor-e2e/src/support/app.po.ts @@ -1 +1 @@ -export const getGreeting = () => cy.get('h1'); +export const getWelcomeMessage = () => cy.get('[data-cy=welcome-message]'); diff --git a/apps/shinkai-visor/.babelrc b/apps/shinkai-visor/.babelrc deleted file mode 100644 index 25ae6f463..000000000 --- a/apps/shinkai-visor/.babelrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "presets": [ - [ - "@nx/react/babel", - { - "runtime": "automatic" - } - ], - [ - "@babel/preset-env", - { - "modules": false - } - ], - "@babel/preset-react" -], - "plugins": [] -} diff --git a/apps/shinkai-visor/jest.config.ts b/apps/shinkai-visor/jest.config.ts deleted file mode 100644 index d2d3c3074..000000000 --- a/apps/shinkai-visor/jest.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* eslint-disable */ -export default { - displayName: 'shinkai-visor', - preset: '../../jest.preset.js', - transform: { - '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest', - '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }], - }, - moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], - coverageDirectory: '../../coverage/apps/shinkai-visor', -}; diff --git a/apps/shinkai-visor/package.json b/apps/shinkai-visor/package.json index 74b722636..726cd0a1c 100644 --- a/apps/shinkai-visor/package.json +++ b/apps/shinkai-visor/package.json @@ -1,6 +1,7 @@ { "name": "shinkai-visor", - "version": "0.1.0", - "description": "", - "license": "ISC" + "private": true, + "version": "0.0.1", + "type": "module", + "description": "Shinkai Visor" } diff --git a/apps/shinkai-visor/postcss.config.js b/apps/shinkai-visor/postcss.config.js new file mode 100644 index 000000000..079f80e79 --- /dev/null +++ b/apps/shinkai-visor/postcss.config.js @@ -0,0 +1,12 @@ +import { join, dirname } from 'path'; +import { fileURLToPath } from 'url'; +const __filename = fileURLToPath(import.meta.url); + +export default { + plugins: { + tailwindcss: { + config: join(dirname(__filename), 'tailwind.config.js'), + }, + autoprefixer: {}, + }, +} diff --git a/apps/shinkai-visor/project.json b/apps/shinkai-visor/project.json index e33885f8a..080f30b30 100644 --- a/apps/shinkai-visor/project.json +++ b/apps/shinkai-visor/project.json @@ -5,57 +5,32 @@ "projectType": "application", "targets": { "build": { - "executor": "@nx/webpack:webpack", + "executor": "@nx/vite:build", "outputs": ["{options.outputPath}"], "defaultConfiguration": "production", "options": { - "compiler": "babel", - "outputPath": "dist/apps/shinkai-visor", - "baseHref": "/", - "main": "apps/shinkai-visor/src/popup.tsx", - "additionalEntryPoints": [ - { "entryName": "popup", "entryPath": "apps/shinkai-visor/src/popup.tsx" }, - { "entryName": "launcher", "entryPath": "apps/shinkai-visor/src/launcher.tsx" }, - { "entryName": "content", "entryPath": "apps/shinkai-visor/src/content.ts" }, - { "entryName": "background", "entryPath": "apps/shinkai-visor/src/background.ts" } - ], - "index": "apps/shinkai-visor/src/index.html", - "tsConfig": "apps/shinkai-visor/tsconfig.app.json", - "assets": [ - { "glob": "*", "input": "apps/shinkai-visor/public", "output": "."} - ], - "styles": [], - "scripts": [], - "webpackConfig": "apps/shinkai-visor/webpack.config.js" + "outputPath": "dist/apps/shinkai-visor" }, "configurations": { "development": { - "extractLicenses": false, - "optimization": false, - "sourceMap": true, - "vendorChunk": false + "mode": "development", + "watch": true }, "production": { - "fileReplacements": [], - "optimization": false, - "outputHashing": "none", - "sourceMap": false, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": false + "mode": "production" } } }, "serve": { - "executor": "@nx/webpack:dev-server", + "executor": "@nx/vite:dev-server", "defaultConfiguration": "development", "options": { - "buildTarget": "shinkai-visor:build", - "hmr": true + "buildTarget": "shinkai-visor:build" }, "configurations": { "development": { - "buildTarget": "shinkai-visor:build:development" + "buildTarget": "shinkai-visor:build:development", + "hmr": true }, "production": { "buildTarget": "shinkai-visor:build:production", @@ -63,6 +38,29 @@ } } }, + "preview": { + "executor": "@nx/vite:preview-server", + "defaultConfiguration": "development", + "options": { + "buildTarget": "shinkai-visor:build" + }, + "configurations": { + "development": { + "buildTarget": "shinkai-visor:build:development" + }, + "production": { + "buildTarget": "shinkai-visor:build:production" + } + } + }, + "test": { + "executor": "@nx/vite:test", + "outputs": ["{options.reportsDirectory}"], + "options": { + "passWithNoTests": true, + "reportsDirectory": "../../coverage/apps/shinkai-visor" + } + }, "lint": { "executor": "@nx/linter:eslint", "outputs": ["{options.outputFile}"], @@ -75,22 +73,7 @@ "options": { "buildTarget": "shinkai-visor:build" } - }, - "test": { - "executor": "@nx/jest:jest", - "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], - "options": { - "jestConfig": "apps/shinkai-visor/jest.config.ts", - "passWithNoTests": true - }, - "configurations": { - "ci": { - "ci": true, - "codeCoverage": true - } - } } }, "tags": [] } - diff --git a/apps/shinkai-visor/public/dcsparklogo.png b/apps/shinkai-visor/public/dcsparklogo.png deleted file mode 100644 index 51507271e..000000000 Binary files a/apps/shinkai-visor/public/dcsparklogo.png and /dev/null differ diff --git a/apps/shinkai-visor/public/icon128.png b/apps/shinkai-visor/public/icon128.png index eeca56488..8b65ff5e3 100644 Binary files a/apps/shinkai-visor/public/icon128.png and b/apps/shinkai-visor/public/icon128.png differ diff --git a/apps/shinkai-visor/public/icon16.png b/apps/shinkai-visor/public/icon16.png index fec76c699..8b65ff5e3 100644 Binary files a/apps/shinkai-visor/public/icon16.png and b/apps/shinkai-visor/public/icon16.png differ diff --git a/apps/shinkai-visor/public/icon48.png b/apps/shinkai-visor/public/icon48.png index ab5595133..8b65ff5e3 100644 Binary files a/apps/shinkai-visor/public/icon48.png and b/apps/shinkai-visor/public/icon48.png differ diff --git a/apps/shinkai-visor/public/launcher.html b/apps/shinkai-visor/public/launcher.html deleted file mode 100644 index 60ebd86f8..000000000 --- a/apps/shinkai-visor/public/launcher.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - Shinkai Visor command launcher - - - - -
- - - diff --git a/apps/shinkai-visor/public/manifest.json b/apps/shinkai-visor/public/manifest.json index 2900a92c9..c1f396094 100644 --- a/apps/shinkai-visor/public/manifest.json +++ b/apps/shinkai-visor/public/manifest.json @@ -15,19 +15,19 @@ "16": "icon16.png", "48": "icon48.png" }, - "default_popup": "popup.html" + "default_popup": "src/popup/popup.html" }, "background": { - "scripts": ["background.js"], + "scripts": ["assets/background.js"], "persistent": true }, "content_scripts": [ { "matches": ["*://*/*"], - "js": ["content.js"] + "js": ["assets/content.js"] } ], - "web_accessible_resources": ["popup.html", "launcher.html"], + "web_accessible_resources": ["src/popup.html"], "commands": { "_execute_browser_action": { "suggested_key": { diff --git a/apps/shinkai-visor/public/popup.html b/apps/shinkai-visor/public/popup.html deleted file mode 100644 index 5729b1b44..000000000 --- a/apps/shinkai-visor/public/popup.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - Shinkai Visor - - - - - - - - diff --git a/apps/shinkai-visor/scripts/compress.js b/apps/shinkai-visor/scripts/compress.js deleted file mode 100644 index f0772d2f1..000000000 --- a/apps/shinkai-visor/scripts/compress.js +++ /dev/null @@ -1,54 +0,0 @@ -// add package-specific dependencies -module.paths.unshift(`${process.cwd()}/node_modules`); - -const fs = require("fs"); -const path = require("path"); -const ChromeExtension = require("crx"); -const argv = require("minimist")(process.argv.slice(2)); -/* eslint import/no-unresolved: 0 */ - -const name = require(path.join(process.cwd(), "/dist/manifest.json")).name; - -function readKeyFromFile(keyPath) { - if (!fs.existsSync(keyPath)) { - throw new Error(`Key not found at ${keyPath}`); - } - return fs.readFileSync(keyPath); -} - -function getPrivateKey() { - if (argv.key == null) return null; - if (argv.key.startsWith("./")) { - return readKeyFromFile(argv.key); - } - return Buffer.from(argv.key, "utf-8"); -} - -const privateKey = getPrivateKey(); -const zipOnly = argv["zip-only"]; -const isCrx = !zipOnly; - -if (!argv.codebase) { - console.error("Missing codebase param."); - process.exit(); -} - -const crx = new ChromeExtension({ - appId: argv["app-id"], - codebase: argv.codebase, - version: 3, - privateKey, -}); - -async function compress(isCrxBuild) { - await crx.load(path.join(process.cwd(), "/dist")); - const archiveBuffer = await crx.loadContents(); - fs.writeFileSync(`${name}.zip`, archiveBuffer); - - if (isCrxBuild) { - const crxBuffer = await crx.pack(); - fs.writeFileSync(`${name}-${argv.env}.crx`, crxBuffer); - } -} - -compress(isCrx).catch((err) => console.error(err)); diff --git a/apps/shinkai-visor/src/App.css b/apps/shinkai-visor/src/App.css deleted file mode 100644 index cdccf5a18..000000000 --- a/apps/shinkai-visor/src/App.css +++ /dev/null @@ -1,517 +0,0 @@ -@import './variables.css'; -@font-face { - font-family: 'Inter'; - src: url('./fonts/Inter-Regular.ttf'); -} - -/* @media (prefers-color-scheme: dark) { - :root { - --background: rgb(26, 26, 26); - --foreground: rgb(255, 255, 255); - } -} */ - -/* @media (prefers-color-scheme: light) { - :root { - --background: rgb(255, 255, 255); - --foreground: rgb(0, 0, 0); - } -} */ - -* { - box-sizing: border-box; -} - -div#popup { - overflow: hidden; - height: 100%; -} - -body { - font-family: 'Inter', sans-serif; - margin: 0; - width: 357px; - height: 600px; - overflow-y: hidden; - font-size: 16px; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - background-color: #1e1e1e; -} - -.App { - color: var(--background-color-contrast); - height: 100%; - background-color: var(--background-color); -} - -h4 { - font-size: 1.4rem; -} - -.App-content { - background-color: inherit; - color: var(--background-color-contrast); - width: 100%; - height: calc(100% - 62px); - display: flex; - flex-direction: column; - align-items: center; -} - -@media (min-width: 600px) { - body { - margin: 20px auto; - width: 500px; - height: 840px; - box-shadow: 2px 2px 8px 1px rgb(150 150 150 / 50%); - font-family: 'Inter', sans-serif; - /* box-shadow: 0 0 7px 0 rgb(0 0 0 / 8%); */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - .App-content { - color: var(--foreground); - height: 778px; - max-height: 778px; - } -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -.welcome { - margin: auto; - position: relative; -} - -.App-logo { - height: 150px; - display: flex; - margin: 3em auto; - margin-top: 30%; -} - -a { - text-decoration: none; - color: white; -} - -.successMessage { - font-size: 1rem; - height: 1rem; - color: rgb(3, 125, 214); - text-align: center; - margin: 0; -} - -.spinner { - text-align: center; -} - -.errorMessage { - font-size: 12px; - color: var(--alert-color); - text-align: center; -} - -.succesMessage { - color: var(--foreground); -} - -.setup .errorMessage { - margin-bottom: 0.5rem; -} - -.tooltip-trigger { - vertical-align: super; - margin: 0.1rem 0 0.1rem 0.1rem; -} - -.setup .tooltip { - position: fixed; - top: 180px; - left: 200px; - height: 98px; - width: 150px; - font-size: 0.9rem; - border: 1px solid var(--foreground); - background-color: #1a1c1b; - border-radius: 8px; - color: white; - z-index: 900; -} - -.setup .tooltip p { - margin-left: 10px; - margin-right: 2px; -} - -.setup { - padding: 1rem; - margin: auto; -} - -/* titles */ - -.title-page { - font-size: 20px; - line-height: 30px; - display: flex; - align-items: center; - color: var(--background-color-contrast); - margin: 0 0 1em; -} - -.centered { - justify-content: center; - text-align: center; -} - -.description { - font-weight: normal; - font-size: 13px; - line-height: 15px; - letter-spacing: 0.02em; - color: var(--light-gray); - margin-top: -1.5em; -} - -.margin-0 { - margin-top: 0 !important; -} - -.linear-red-bg { - border: 1px solid var(--alert-color); - background: transparent !important; - color: var(--alert-color); -} - -.red-bg { - background-color: var(--alert-color) !important; - /* border: 1px solid rgba(100,0,0,1) !important; */ -} - -/* forms */ - -label { - line-height: 1.5; -} - -.label-input { - font-style: normal; - font-weight: 500; - font-size: 12px; - line-height: 20px; - letter-spacing: 2px; - text-transform: uppercase; - color: var(--medium-gray); - margin: 0; -} - -input { - width: 100%; - height: 48px; - background: transparent; - border: 1px solid var(--medium-gray); - color: var(--background-color-contrast); - box-sizing: border-box; - border-radius: 12px; - margin: 5px 0 10px; - padding: 10px; - text-align: left; - font-size: 14px; - box-shadow: none; - display: block; - outline: none; -} - -.separator { - margin: 5px; -} - -.flex { - display: flex; - align-items: center; -} - -.flex-grow-wrapper { - display: flex; - flex-direction: column; - justify-content: space-between; - flex-grow: 1; - max-height: 100%; - height: 100%; - width: 100%; - padding: 2.5em 1.5em 1.5em; - overflow-y: auto; -} - -.flex-grow { - flex: 1 1 0%; -} - -.vertical { - display: flex; - flex-direction: column; - align-items: flex-start; -} - -.form { - text-align: left; - width: 100%; - display: flex; - flex-direction: column; - justify-content: space-between; -} - -.modal-background { - height: 100%; - width: 100%; - background-color: rgb(0, 0, 0, 0.7); -} - -.modal-foreground { - padding: 0.5rem; - background-color: grey; - margin: 40% auto; - width: 70%; -} - -.modal-foreground img { - width: 120px; -} - -.moonname p, -.moonname span { - font-weight: 500; - font-size: 16px; - line-height: 16px; - color: var(--background-color-contrast); - white-space: nowrap; - overflow: hidden; - display: block; - text-overflow: ellipsis; - margin: 0; -} - -/* buttons */ - -button { - font-family: 'Inter', sans-serif; - width: 100%; - transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - border-radius: 12px; - display: flex; - flex-direction: row; - -webkit-box-pack: center; - justify-content: center; - align-items: center; - padding: 14px 0px; - font-size: 14px; - line-height: 19px; - font-weight: 500; - color: #fff; - pointer-events: auto; - border: none; - outline-color: transparent; - outline-style: none; - cursor: pointer; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -button:hover { - opacity: 0.5; -} - -.submit-setup-button { - margin: auto; - width: 100%; -} - -.small-button { - display: block; - width: 100%; - background-color: var(--primary-color); - cursor: pointer; - padding: 8px; -} - -.buttonContainer { - display: flex; - background-color: #282c34; - color: white; - min-width: 150px; - padding: 10px; -} - -.loginButton { - border: 0; - background-color: #1a1d22; - color: white; - padding: 5px 10px; - width: 100%; - cursor: pointer; -} - -.small-button:disabled { - border-color: currentColor; - pointer-events: none; - cursor: not-allowed; - opacity: 0.5; -} - -.single-button { - width: 100%; - background-color: var(--primary-color); - color: var(--background-color-contrast); -} - -.linear-button { - background: transparent; - border: 1px solid var(--primary-color); - color: var(--primary-color); -} - -.surface-button { - background: var(--background-color-tint-contrast); - border-radius: 12px; - display: flex; - align-items: center; - font-weight: 500; - font-size: 12px; - line-height: 15px; - height: 65px; - margin-top: 10px; -} - -.surface-button .button-icon { - width: 16px; - margin-bottom: 5px; -} - -.block-footer { - margin: 0.5em -1.5em -1.5em; - padding: 1.5em; - border-radius: 20px 20px 0 0; - background: var(--background-color-tint); - position: relative; -} - -.confirm-string { - font-weight: 600; - font-size: 16px; - line-height: 22px; - color: #ffffff; - margin: 0; - position: absolute; - top: -10px; - transform: translate(0, -100%); -} - -.collapse-header { - text-overflow: ellipsis; - overflow: hidden; -} - -.confirm-string::after { - position: absolute; - content: ''; - width: 30px; - height: 2px; - background-color: white; - bottom: -10px; - left: 0; -} - -.title-footer { - position: relative; - margin-bottom: 0; -} - -.title-footer::after { - position: absolute; - content: ''; - width: 30px; - height: 2px; - background-color: white; - bottom: -9px; - left: 0; - z-index: 9999; -} - -.row-buttons { - display: flex; - align-items: center; -} - -.two-buttons { - display: flex; - width: 100%; -} - -.two-buttons button { - width: 100%; -} - -.flex-end { - align-self: flex-end; -} - -.blue-button { - background-color: rgb(3, 125, 214, 0.5); -} - -.two-buttons .right { - margin-left: 5px; -} - -.two-buttons .left { - margin-right: 5px; -} - -.cancel-button { - background-color: rgb(45, 45, 45); -} - -.multiple-buttons { - margin: 0.5rem 0; -} - -.small-padding { - width: 100%; - padding: 1rem; -} - -.full-size { - height: 100%; - width: 100%; -} - -::-webkit-scrollbar { - width: 10px; -} - -::-webkit-scrollbar-thumb { - background: #3e3e3e; - border-radius: 20px; -} - -::-webkit-scrollbar-track { - background: #969494; - border-radius: 20px; -} diff --git a/apps/shinkai-visor/src/App.tsx b/apps/shinkai-visor/src/App.tsx deleted file mode 100644 index fdd9e0b15..000000000 --- a/apps/shinkai-visor/src/App.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import * as React from 'react'; -import { useState, useEffect } from 'react'; -import NavBar from './components/ui/NavBar'; -import Welcome from './components/setup/Welcome'; -import Setup from './components/setup/Setup'; -import AddShip from './components/adding/AddShip'; -import AddLLM from './components/adding/AddLLM'; -import ShipLLMsList from './components/list/ShipLLMsList'; -import ShipShow from './components/show/ShipShow'; -import PermissionsPrompt from './components/perms/PermissionsPrompt'; -import Settings from './components/settings/Settings'; -import About from './components/ui/About'; -import { AnimatePresence } from 'framer-motion'; -import { EncryptedLLMCredentials, EncryptedShipCredentials } from './types'; -import { Messaging } from './messaging'; -import { MemoryRouter as Router, Switch, Route, Redirect, useHistory } from 'react-router-dom'; -import { LocationDescriptor } from 'history'; - -import './App.css'; -import LLMShow from './components/show/LLMShow'; - -export default function App() { - useEffect(() => { - Messaging.sendToBackground({ action: 'get_initial_state' }).then(state => { - console.log('initial state: ', state); - setFirst(state.first); - setShips(state.ships); - setLLMs(state.llms); - setActiveLLM(state.activeLLM); - setActive(state.activeShip); - setPermsRequest(state.requestedPerms); - setInteracting(state.requestedPerms != undefined || state.first); - route(state); - }); - }, []); - const [active, setActive] = useState(null); - const [activeLLM, setActiveLLM] = useState(null); - const [interacting, setInteracting] = useState(false); - const [ships, setShips] = useState([]); - const [llms, setLLMs] = useState([]); - const [first, setFirst] = useState(false); - const [permsRequest, setPermsRequest] = useState(null); - - const history = useHistory(); - - function route(state: any): void { - console.log('state to route from: ', state); - console.log('state.cachedURL?.length: ', state.cachedURL?.length); - console.log('state.cachedCreds: ', state.cachedCreds); - if (state.first) history.push('/welcome'); - else if (state.cachedURL?.length || state.cachedCreds) history.push('/add_llm'); // TODO: not sure if this is right - else if (state.requestedPerms) history.push('/ask_perms'); - else if (state.activeLLM) { - Messaging.sendToBackground({ action: 'select_llm', data: { llm: state.activeLLM } }).then( - res => history.push(`/llm/${state.activeLLM.uniqueId}`) - ); - } else if (state.llms.length) history.push('/ship_list'); - else { - console.log('pushing to add_llm'); - console.log('state.activeLLM: ', state.activeLLM); - history.push('/add_llm'); - } - } - - function redirect(): LocationDescriptor { - if (first) return '/welcome'; - else if (activeLLM) return '/llm/' + activeLLM.uniqueId; - else if (llms.length) return '/ship_list'; - else return '/add_llm'; - } - - return ( -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- ); -} diff --git a/apps/shinkai-visor/src/api.ts b/apps/shinkai-visor/src/api.ts deleted file mode 100644 index 1c9beea9a..000000000 --- a/apps/shinkai-visor/src/api.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { EncryptedShipCredentials } from './types'; - -export class Shinkai { - constructor(public ships: EncryptedShipCredentials[]) { - return this; - } -} diff --git a/apps/shinkai-visor/src/app/app.module.css b/apps/shinkai-visor/src/app/app.module.css deleted file mode 100644 index 7b88fbabf..000000000 --- a/apps/shinkai-visor/src/app/app.module.css +++ /dev/null @@ -1 +0,0 @@ -/* Your styles goes here. */ diff --git a/apps/shinkai-visor/src/app/app.spec.tsx b/apps/shinkai-visor/src/app/app.spec.tsx deleted file mode 100644 index 3a6f4f1d4..000000000 --- a/apps/shinkai-visor/src/app/app.spec.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { render } from '@testing-library/react'; - -import { BrowserRouter } from 'react-router-dom'; - -import App from './app'; - -describe('App', () => { - it('should render successfully', () => { - const { baseElement } = render( - - - - ); - expect(baseElement).toBeTruthy(); - }); - - it('should have a greeting as the title', () => { - const { getByText } = render( - - - - ); - expect(getByText(/Welcome shinkai-visor/gi)).toBeTruthy(); - }); -}); diff --git a/apps/shinkai-visor/src/app/app.tsx b/apps/shinkai-visor/src/app/app.tsx deleted file mode 100644 index ff1f1c740..000000000 --- a/apps/shinkai-visor/src/app/app.tsx +++ /dev/null @@ -1,53 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import styles from './app.module.css'; - -import NxWelcome from './nx-welcome'; - -import { Route, Routes, Link } from 'react-router-dom'; - -export function App() { - return ( -
- - - {/* START: routes */} - {/* These routes and navigation have been generated for you */} - {/* Feel free to move and update them to fit your needs */} -
-
-
-
-
    -
  • - Home -
  • -
  • - Page 2 -
  • -
-
- - - This is the generated root route.{' '} - Click here for page 2. -
- } - /> - - Click here to go back to root page. - - } - /> - - {/* END: routes */} - - ); -} - -export default App; diff --git a/apps/shinkai-visor/src/app/nx-welcome.tsx b/apps/shinkai-visor/src/app/nx-welcome.tsx deleted file mode 100644 index f0cd657b7..000000000 --- a/apps/shinkai-visor/src/app/nx-welcome.tsx +++ /dev/null @@ -1,845 +0,0 @@ -/* - * * * * * * * * * * * * * * * * * * * * * * * * * * * * - This is a starter component and can be deleted. - * * * * * * * * * * * * * * * * * * * * * * * * * * * * - Delete this file and get started with your project! - * * * * * * * * * * * * * * * * * * * * * * * * * * * * - */ -export function NxWelcome({ title }: { title: string }) { - return ( - <> -