Merge pull request #3 from lopugit/feature/random-nik-things
Fixed Vercel build issues due to Remix V2 / vite upgrade
This commit is contained in:
commit
de760e4484
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,6 +3,8 @@
|
||||
.env
|
||||
|
||||
app/node_modules
|
||||
remix/node_modules
|
||||
next/node_modules
|
||||
app-next/node_modules
|
||||
api/node_modules
|
||||
node_modules
|
||||
|
716
package-lock.json
generated
Normal file
716
package-lock.json
generated
Normal file
@ -0,0 +1,716 @@
|
||||
{
|
||||
"name": "thingtime",
|
||||
"version": "0.0.11",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "thingtime",
|
||||
"version": "0.0.11",
|
||||
"hasInstallScript": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"smarts": "2.0.0",
|
||||
"typescript": "^4.9.5"
|
||||
}
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
|
||||
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
|
||||
"dependencies": {
|
||||
"@jridgewell/gen-mapping": "^0.3.5",
|
||||
"@jridgewell/trace-mapping": "^0.3.24"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
|
||||
"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
|
||||
"dependencies": {
|
||||
"@babel/highlight": "^7.24.7",
|
||||
"picocolors": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/compat-data": {
|
||||
"version": "7.24.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz",
|
||||
"integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/core": {
|
||||
"version": "7.24.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz",
|
||||
"integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==",
|
||||
"dependencies": {
|
||||
"@ampproject/remapping": "^2.2.0",
|
||||
"@babel/code-frame": "^7.24.7",
|
||||
"@babel/generator": "^7.24.9",
|
||||
"@babel/helper-compilation-targets": "^7.24.8",
|
||||
"@babel/helper-module-transforms": "^7.24.9",
|
||||
"@babel/helpers": "^7.24.8",
|
||||
"@babel/parser": "^7.24.8",
|
||||
"@babel/template": "^7.24.7",
|
||||
"@babel/traverse": "^7.24.8",
|
||||
"@babel/types": "^7.24.9",
|
||||
"convert-source-map": "^2.0.0",
|
||||
"debug": "^4.1.0",
|
||||
"gensync": "^1.0.0-beta.2",
|
||||
"json5": "^2.2.3",
|
||||
"semver": "^6.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/babel"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/generator": {
|
||||
"version": "7.24.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz",
|
||||
"integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.9",
|
||||
"@jridgewell/gen-mapping": "^0.3.5",
|
||||
"@jridgewell/trace-mapping": "^0.3.25",
|
||||
"jsesc": "^2.5.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-compilation-targets": {
|
||||
"version": "7.24.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz",
|
||||
"integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==",
|
||||
"dependencies": {
|
||||
"@babel/compat-data": "^7.24.8",
|
||||
"@babel/helper-validator-option": "^7.24.8",
|
||||
"browserslist": "^4.23.1",
|
||||
"lru-cache": "^5.1.1",
|
||||
"semver": "^6.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-environment-visitor": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
|
||||
"integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-function-name": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
|
||||
"integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.24.7",
|
||||
"@babel/types": "^7.24.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-hoist-variables": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
|
||||
"integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-module-imports": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
|
||||
"integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
|
||||
"dependencies": {
|
||||
"@babel/traverse": "^7.24.7",
|
||||
"@babel/types": "^7.24.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-module-transforms": {
|
||||
"version": "7.24.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz",
|
||||
"integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==",
|
||||
"dependencies": {
|
||||
"@babel/helper-environment-visitor": "^7.24.7",
|
||||
"@babel/helper-module-imports": "^7.24.7",
|
||||
"@babel/helper-simple-access": "^7.24.7",
|
||||
"@babel/helper-split-export-declaration": "^7.24.7",
|
||||
"@babel/helper-validator-identifier": "^7.24.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-simple-access": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
|
||||
"integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
|
||||
"dependencies": {
|
||||
"@babel/traverse": "^7.24.7",
|
||||
"@babel/types": "^7.24.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-split-export-declaration": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
|
||||
"integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-string-parser": {
|
||||
"version": "7.24.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
|
||||
"integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
|
||||
"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-option": {
|
||||
"version": "7.24.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz",
|
||||
"integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helpers": {
|
||||
"version": "7.24.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz",
|
||||
"integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==",
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.24.7",
|
||||
"@babel/types": "^7.24.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/highlight": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
|
||||
"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": "^7.24.7",
|
||||
"chalk": "^2.4.2",
|
||||
"js-tokens": "^4.0.0",
|
||||
"picocolors": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.24.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz",
|
||||
"integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==",
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/polyfill": {
|
||||
"version": "7.12.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz",
|
||||
"integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==",
|
||||
"deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.",
|
||||
"dependencies": {
|
||||
"core-js": "^2.6.5",
|
||||
"regenerator-runtime": "^0.13.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/polyfill/node_modules/core-js": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
|
||||
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
|
||||
"hasInstallScript": true
|
||||
},
|
||||
"node_modules/@babel/standalone": {
|
||||
"version": "7.24.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.24.10.tgz",
|
||||
"integrity": "sha512-nGC37EKfmelpyCXto1pw6SBkD5ZQRdMbL6WISi28xWit9dtiy9dChU1WgEfzturUTxrmOGkMDRrCydFMA7uOaQ==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/template": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
|
||||
"integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.24.7",
|
||||
"@babel/parser": "^7.24.7",
|
||||
"@babel/types": "^7.24.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse": {
|
||||
"version": "7.24.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz",
|
||||
"integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.24.7",
|
||||
"@babel/generator": "^7.24.8",
|
||||
"@babel/helper-environment-visitor": "^7.24.7",
|
||||
"@babel/helper-function-name": "^7.24.7",
|
||||
"@babel/helper-hoist-variables": "^7.24.7",
|
||||
"@babel/helper-split-export-declaration": "^7.24.7",
|
||||
"@babel/parser": "^7.24.8",
|
||||
"@babel/types": "^7.24.8",
|
||||
"debug": "^4.3.1",
|
||||
"globals": "^11.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.24.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz",
|
||||
"integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==",
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.24.8",
|
||||
"@babel/helper-validator-identifier": "^7.24.7",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/gen-mapping": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
|
||||
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
|
||||
"dependencies": {
|
||||
"@jridgewell/set-array": "^1.2.1",
|
||||
"@jridgewell/sourcemap-codec": "^1.4.10",
|
||||
"@jridgewell/trace-mapping": "^0.3.24"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/resolve-uri": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
|
||||
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/set-array": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
|
||||
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
|
||||
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
|
||||
},
|
||||
"node_modules/@jridgewell/trace-mapping": {
|
||||
"version": "0.3.25",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
|
||||
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
|
||||
"dependencies": {
|
||||
"@jridgewell/resolve-uri": "^3.1.0",
|
||||
"@jridgewell/sourcemap-codec": "^1.4.14"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"dependencies": {
|
||||
"color-convert": "^1.9.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.23.2",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz",
|
||||
"integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"caniuse-lite": "^1.0.30001640",
|
||||
"electron-to-chromium": "^1.4.820",
|
||||
"node-releases": "^2.0.14",
|
||||
"update-browserslist-db": "^1.1.0"
|
||||
},
|
||||
"bin": {
|
||||
"browserslist": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001643",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
|
||||
"integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dependencies": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||
"dependencies": {
|
||||
"color-name": "1.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/color-name": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
|
||||
},
|
||||
"node_modules/convert-source-map": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
||||
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
|
||||
},
|
||||
"node_modules/core-js": {
|
||||
"version": "3.37.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz",
|
||||
"integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==",
|
||||
"hasInstallScript": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/core-js"
|
||||
}
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/deepmerge": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
|
||||
"integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.0.tgz",
|
||||
"integrity": "sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA=="
|
||||
},
|
||||
"node_modules/escalade": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
|
||||
"integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/gensync": {
|
||||
"version": "1.0.0-beta.2",
|
||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/globals": {
|
||||
"version": "11.12.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
|
||||
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/is-mergeable-object": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-mergeable-object/-/is-mergeable-object-1.1.1.tgz",
|
||||
"integrity": "sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA=="
|
||||
},
|
||||
"node_modules/js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
|
||||
},
|
||||
"node_modules/jsesc": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
|
||||
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
|
||||
"bin": {
|
||||
"jsesc": "bin/jsesc"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/json5": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
||||
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
||||
"bin": {
|
||||
"json5": "lib/cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/lru-cache": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
|
||||
"dependencies": {
|
||||
"yallist": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.18",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
|
||||
"integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g=="
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
|
||||
"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/regenerator-runtime": {
|
||||
"version": "0.13.11",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
|
||||
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "6.3.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
}
|
||||
},
|
||||
"node_modules/smarts": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/smarts/-/smarts-2.0.0.tgz",
|
||||
"integrity": "sha512-E+d1Jx7KgmM26Z0vh85bN3RttS4qvrB0Me0unwPnlbP0PfWpvRhkMCSsGBObRqat16TfzRH+IW2rxIsphTreDQ==",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.14.8",
|
||||
"@babel/generator": "^7.8.4",
|
||||
"@babel/parser": "^7.22.5",
|
||||
"@babel/polyfill": "^7.4.4",
|
||||
"@babel/standalone": "^7.14.8",
|
||||
"@babel/template": "^7.14.8",
|
||||
"@babel/types": "^7.15.0",
|
||||
"core-js": "^3.6.4",
|
||||
"deepmerge": "^3.2.0",
|
||||
"is-mergeable-object": "^1.1.1",
|
||||
"prettier": "^2.3.2",
|
||||
"uuid": "^3.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"dependencies": {
|
||||
"has-flag": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "4.9.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
||||
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/update-browserslist-db": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
|
||||
"integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"escalade": "^3.1.2",
|
||||
"picocolors": "^1.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"update-browserslist-db": "cli.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"browserslist": ">= 4.21.0"
|
||||
}
|
||||
},
|
||||
"node_modules/uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
|
||||
"bin": {
|
||||
"uuid": "bin/uuid"
|
||||
}
|
||||
},
|
||||
"node_modules/yallist": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
|
||||
}
|
||||
}
|
||||
}
|
@ -6,9 +6,9 @@
|
||||
"scripts": {
|
||||
"app": "npm run remix",
|
||||
"remix": "npm run dev --prefix remix",
|
||||
"build-remix": "npm run build --prefix remix",
|
||||
"next": "npm run dev --prefix next",
|
||||
"api": "npm run dev --prefix api",
|
||||
"build": "npm run build --prefix next",
|
||||
"postinstall": "pnpm i --prefix next ; pnpm i --prefix=api"
|
||||
},
|
||||
"repository": {
|
||||
|
@ -93,7 +93,6 @@
|
||||
"title": "Commander",
|
||||
"description": "Open Thingtime Commander",
|
||||
"mode": "view",
|
||||
"fallbackText": "test2",
|
||||
"keywords": [
|
||||
"commander",
|
||||
"thingtime",
|
||||
@ -107,7 +106,38 @@
|
||||
"key": "name",
|
||||
"title": "Name of Command to run",
|
||||
"description": "The name of the command/function to run",
|
||||
"defaultValue": "Menu"
|
||||
"defaultValue": "MagicInput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "commanderMagicInput",
|
||||
"title": "Magic Input",
|
||||
"description": "Evaluates a Magic Input",
|
||||
"mode": "no-view",
|
||||
"keywords": [
|
||||
"commander",
|
||||
"thingtime",
|
||||
"ai"
|
||||
],
|
||||
"arguments": [
|
||||
{
|
||||
"placeholder": "Path",
|
||||
"name": "path",
|
||||
"type": "text",
|
||||
"description": "The path to open the new finder window at",
|
||||
"required": false
|
||||
}
|
||||
],
|
||||
"preferences": [
|
||||
{
|
||||
"name": "name",
|
||||
"required": false,
|
||||
"type": "textfield",
|
||||
"key": "name",
|
||||
"title": "Name of Command to run",
|
||||
"description": "The name of the command/function to run",
|
||||
"defaultValue": "openNewFinderWindow"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -116,7 +146,6 @@
|
||||
"title": "Open New Finder Window",
|
||||
"description": "Open new finder window",
|
||||
"mode": "no-view",
|
||||
"fallbackText": "test2",
|
||||
"keywords": [
|
||||
"commander",
|
||||
"thingtime",
|
||||
@ -148,7 +177,6 @@
|
||||
"title": "Trim image",
|
||||
"description": "Will trim all whitespace from an image",
|
||||
"mode": "no-view",
|
||||
"fallbackText": "test2",
|
||||
"keywords": [
|
||||
"commander",
|
||||
"thingtime",
|
||||
@ -171,7 +199,6 @@
|
||||
"title": "mp4 to mp3",
|
||||
"description": "Converts an mp4 into an mp3 using ffmpeg at 320Kbps",
|
||||
"mode": "no-view",
|
||||
"fallbackText": "test2",
|
||||
"keywords": [
|
||||
"commander",
|
||||
"thingtime",
|
||||
|
@ -5,6 +5,7 @@ const end = 9999;
|
||||
|
||||
for (let i = start; i <= end; i++) {
|
||||
spaceObj[i] = `${i * 0.25}rem`;
|
||||
// spaceObj[i] = `${i}px`;
|
||||
}
|
||||
|
||||
spaceObj['container'] = '700px';
|
||||
|
12
remix/app/components/Branding/Branding.tsx
Normal file
12
remix/app/components/Branding/Branding.tsx
Normal file
@ -0,0 +1,12 @@
|
||||
import { Box, Center, Flex, Heading } from '@chakra-ui/react';
|
||||
import { Logo } from './Logo';
|
||||
|
||||
export const Branding = () => {
|
||||
return (
|
||||
<Flex pt={[25, 50]} flexDir="column" w="100%" minH="100vh" px={'18px'} maxW={'container'} textAlign={'left'}>
|
||||
<Heading>Branding</Heading>
|
||||
<Heading mt={12}>Logo</Heading>
|
||||
<Logo editable width="300" />
|
||||
</Flex>
|
||||
);
|
||||
};
|
108
remix/app/components/Branding/Logo.tsx
Normal file
108
remix/app/components/Branding/Logo.tsx
Normal file
@ -0,0 +1,108 @@
|
||||
import { Box, Center, Flex, Heading, Slider, SliderFilledTrack, SliderThumb, SliderTrack } from '@chakra-ui/react';
|
||||
import React, { useMemo, useState } from 'react';
|
||||
|
||||
export const Logo = (props) => {
|
||||
// a completely dynamic and interactive logo
|
||||
// uses borders, border radius, and colour themes to create a simple timeless beautiful logo
|
||||
|
||||
// const defaultThemeRaw = ['white', '#F20009', '#FD5F00', '#FFEB03', '#52E013', '#09A7EC', '#982E77', 'white'];
|
||||
const defaultThemeRaw = ['#F20009', '#FD5F00', '#FFEB03', '#52E013', '#09A7EC', '#982E77', 'white'];
|
||||
|
||||
const [reverseColours, setReverseColours] = useState(false);
|
||||
|
||||
const defaultTheme = reverseColours ? defaultThemeRaw?.reverse() : defaultThemeRaw;
|
||||
|
||||
const [theme, setTheme] = useState('blue');
|
||||
|
||||
const [squares, setSquares] = useState(9);
|
||||
|
||||
const initialWidth = props?.width || 300;
|
||||
|
||||
const [width, setWidth] = useState(initialWidth);
|
||||
|
||||
// logo is a T/plus shape made of two intersecting squares
|
||||
// you can toggle border sides on both squares to create different shapes
|
||||
|
||||
const [borderWidth, setBorderWidth] = useState(18);
|
||||
|
||||
const [borderRadius, setBorderRadius] = useState(0);
|
||||
|
||||
const [padding, setPadding] = useState(0);
|
||||
|
||||
const squaresArray = Array.from({ length: squares }, (_, index) => index);
|
||||
|
||||
const [spacing, setSpacing] = useState(borderWidth);
|
||||
|
||||
// log squaresArray
|
||||
console.debug('tt.squaresArray', squaresArray);
|
||||
|
||||
// basically the 5 squares that make up a plus but with the centre one missing
|
||||
|
||||
const [divisions, setDivisions] = useState(3);
|
||||
|
||||
const [boxWidth, setBoxWidth] = useState(100 / divisions + '%');
|
||||
|
||||
const uuid = useMemo(() => {
|
||||
return Math.random().toString(36).substring(2) + Date.now().toString(36);
|
||||
}, []);
|
||||
|
||||
const boxStyles = {
|
||||
padding: `${padding}px`
|
||||
};
|
||||
|
||||
const InnerBox = (props: any = {}) => <Box borderRadius={`${borderRadius}px`} background="hotpink" w="100%" h="100%" {...props}></Box>;
|
||||
|
||||
const Square = (props: any = {}) => (
|
||||
<Box {...boxStyles} display="inline-block" w={boxWidth} h={boxWidth}>
|
||||
<InnerBox {...props}></InnerBox>
|
||||
</Box>
|
||||
);
|
||||
|
||||
return (
|
||||
<>
|
||||
{/* these are the controls */}
|
||||
{/* border radius use chakra slider */}
|
||||
{props?.editable && (
|
||||
<Flex pb={12} flexDir={'column'}>
|
||||
<Heading my={4} as="h2" size="md">
|
||||
Logo Controls
|
||||
</Heading>
|
||||
<Heading my={4} as="h3" size="sm">
|
||||
Width {width}px
|
||||
</Heading>
|
||||
<Slider aria-label="slider-ex-1" defaultValue={width} min={0} max={initialWidth * 10} onChange={setWidth}>
|
||||
<SliderTrack>
|
||||
<SliderFilledTrack />
|
||||
</SliderTrack>
|
||||
<SliderThumb>🟡</SliderThumb>
|
||||
</Slider>
|
||||
<Heading my={4} as="h3" size="sm">
|
||||
Border Radius {borderRadius}px
|
||||
</Heading>
|
||||
<Slider aria-label="slider-ex-1" defaultValue={borderRadius} min={0} max={width} onChange={setBorderRadius}>
|
||||
<SliderTrack>
|
||||
<SliderFilledTrack />
|
||||
</SliderTrack>
|
||||
<SliderThumb>🟡</SliderThumb>
|
||||
</Slider>
|
||||
<Heading my={4} as="h3" size="sm">
|
||||
Padding {padding}px
|
||||
</Heading>
|
||||
<Slider aria-label="slider-ex-1" defaultValue={padding} min={0} max={width} onChange={setPadding}>
|
||||
<SliderTrack>
|
||||
<SliderFilledTrack />
|
||||
</SliderTrack>
|
||||
<SliderThumb>🟡</SliderThumb>
|
||||
</Slider>
|
||||
</Flex>
|
||||
)}
|
||||
<Box className="tt.logo" fontSize={0} overflow="hidden" w={width + 'px'} h={width + 'px'} position="relative">
|
||||
{squaresArray.map((_, index) => {
|
||||
const odd = index % 2 === 0;
|
||||
const even = !odd;
|
||||
return <Square key={uuid + 'tt.logo' + index} bg={even ? 'hotpink' : 'transparent'} />;
|
||||
})}
|
||||
</Box>
|
||||
</>
|
||||
);
|
||||
};
|
129
remix/app/components/Branding/LogoOld2.tsx
Normal file
129
remix/app/components/Branding/LogoOld2.tsx
Normal file
@ -0,0 +1,129 @@
|
||||
import { Box, Center, Flex, Slider, SliderFilledTrack, SliderThumb, SliderTrack } from '@chakra-ui/react';
|
||||
import React, { useState } from 'react';
|
||||
|
||||
export const LogoOld2 = () => {
|
||||
// a completely dynamic and interactive logo
|
||||
// uses borders, border radius, and colour themes to create a simple timeless beautiful logo
|
||||
|
||||
// const defaultThemeRaw = ['white', '#F20009', '#FD5F00', '#FFEB03', '#52E013', '#09A7EC', '#982E77', 'white'];
|
||||
const defaultThemeRaw = ['#F20009', '#FD5F00', '#FFEB03', '#52E013', '#09A7EC', '#982E77', 'white'];
|
||||
|
||||
const [reverseColours, setReverseColours] = useState(false);
|
||||
|
||||
const defaultTheme = reverseColours ? defaultThemeRaw?.reverse() : defaultThemeRaw;
|
||||
|
||||
const [theme, setTheme] = useState('blue');
|
||||
|
||||
const [squares, setSquares] = useState(8);
|
||||
|
||||
const [width, setWidth] = useState(50);
|
||||
|
||||
const [height, setHeight] = useState(50);
|
||||
|
||||
// logo is a T/plus shape made of two intersecting squares
|
||||
// you can toggle border sides on both squares to create different shapes
|
||||
|
||||
const [borderWidth, setBorderWidth] = useState(18);
|
||||
|
||||
const [borderRadius, setBorderRadius] = useState(12);
|
||||
|
||||
const squaresArray = Array.from({ length: squares }, (_, index) => index);
|
||||
|
||||
const [spacing, setSpacing] = useState(borderWidth);
|
||||
|
||||
// log squaresArray
|
||||
console.debug('tt.squaresArray', squaresArray);
|
||||
|
||||
return (
|
||||
<>
|
||||
{/* these are the controls */}
|
||||
{/* border radius use chakra slider */}
|
||||
<Center py={12}>
|
||||
<Slider aria-label="slider-ex-1" defaultValue={borderRadius} onChange={setBorderRadius}>
|
||||
<SliderTrack>
|
||||
<SliderFilledTrack />
|
||||
</SliderTrack>
|
||||
<SliderThumb>🟡</SliderThumb>
|
||||
</Slider>
|
||||
</Center>
|
||||
<Center overflow="hidden" w={width} h={height} position="relative">
|
||||
{/* border top left squares */}
|
||||
{squaresArray.map((_, index) => {
|
||||
const top = index * spacing;
|
||||
const left = index * spacing;
|
||||
const colour = defaultTheme[index];
|
||||
|
||||
const square = (
|
||||
<Box
|
||||
zIndex={2}
|
||||
backgroundColor={colour}
|
||||
borderRadius={`${borderRadius}px`}
|
||||
className="logo-square"
|
||||
position={'absolute'}
|
||||
width={width}
|
||||
top={12}
|
||||
left={12}
|
||||
height={height}
|
||||
transform={`translateY(${top}px) translateX(${left}px)`}
|
||||
>
|
||||
{/* another box which acts as a mask */}
|
||||
|
||||
{/* <Box
|
||||
backgroundColor={theme}
|
||||
borderRadius={`${borderRadius}px`}
|
||||
className="logo-square"
|
||||
position={'absolute'}
|
||||
width={width}
|
||||
top={12}
|
||||
left={12}
|
||||
height={height}
|
||||
top={`${top}px`}
|
||||
left={`${left}px`}
|
||||
/> */}
|
||||
</Box>
|
||||
);
|
||||
|
||||
return square;
|
||||
})}
|
||||
|
||||
{/* make squares for bottom right */}
|
||||
|
||||
{squaresArray.map((_, index) => {
|
||||
const bottom = index * spacing + height * 2;
|
||||
const right = index * spacing + width * 2;
|
||||
const colour = defaultTheme[index];
|
||||
|
||||
const square = (
|
||||
<Box
|
||||
zIndex={1}
|
||||
backgroundColor={colour}
|
||||
borderRadius={`${borderRadius}px`}
|
||||
className="logo-square"
|
||||
position={'absolute'}
|
||||
width={width}
|
||||
top={14}
|
||||
left={14}
|
||||
height={height}
|
||||
transform={`translateY(${-bottom}px) translateX(${-right}px)`}
|
||||
>
|
||||
{/* another box which acts as a mask */}
|
||||
|
||||
{/* <Box
|
||||
backgroundColor={theme}
|
||||
borderRadius={`${borderRadius}px`}
|
||||
className="logo-square"
|
||||
position={'absolute'}
|
||||
width={width}
|
||||
height={height}
|
||||
top={`${top}px`}
|
||||
left={`${left}px`}
|
||||
/> */}
|
||||
</Box>
|
||||
);
|
||||
|
||||
return square;
|
||||
})}
|
||||
</Center>
|
||||
</>
|
||||
);
|
||||
};
|
@ -8,8 +8,8 @@ export const Editor = (props) => {
|
||||
return (
|
||||
<>
|
||||
<Box minH="60vh" w="100%" maxW={'container'} pos={'relative'}>
|
||||
{/* only on client side render editor */}
|
||||
<Flex position="absolute" w={width} h={height} top={0} left={0} right={0} bottom={0}>
|
||||
{/* only on client side render editor */}
|
||||
<Suspense fallback={<div>Loading...</div>}>
|
||||
<MonacoEditor defaultLanguage={defaultLanguage} defaultValue={defaultValue} />
|
||||
</Suspense>
|
||||
|
@ -136,11 +136,11 @@ export const Nav = (props) => {
|
||||
</Center>
|
||||
)}
|
||||
{/* TODO - Add conditional only show if loggedIn */}
|
||||
<Center transform={['', 'scaleX(-100%)']} cursor="pointer">
|
||||
{/* <Center transform={['', 'scaleX(-100%)']} cursor="pointer">
|
||||
<Link to="/logout">
|
||||
<Icon size="12px" name="🗝️"></Icon>
|
||||
</Link>
|
||||
</Center>
|
||||
</Center> */}
|
||||
<Center transform={['', 'scaleX(-100%)']} cursor="pointer">
|
||||
<Link to="/login">
|
||||
<Icon size="12px" name="🌈"></Icon>
|
||||
|
@ -1,146 +1,143 @@
|
||||
import React, { useState } from "react"
|
||||
import ClickAwayListener from "react-click-away-listener"
|
||||
import { Center, Flex, Text } from "@chakra-ui/react"
|
||||
import React, { useState } from 'react';
|
||||
import ClickAwayListener from 'react-click-away-listener';
|
||||
import { Center, Flex, Text } from '@chakra-ui/react';
|
||||
|
||||
import { Icon } from "../Icon/Icon"
|
||||
import { useThingtime } from "./useThingtime"
|
||||
import { Icon } from '../Icon/Icon';
|
||||
import { useThingtime } from './useThingtime';
|
||||
|
||||
export const SettingsMenu = (props) => {
|
||||
const [show, setShow] = useState(false)
|
||||
const hideRef = React.useRef(null)
|
||||
const [opacity, setOpacity] = React.useState(props?.opacity === 0 ? 0 : 1)
|
||||
const [pinStatus, setPinStatus] = React.useState(false)
|
||||
const [show, setShow] = useState(false);
|
||||
const hideRef = React.useRef(null);
|
||||
const [opacity, setOpacity] = React.useState(props?.opacity === 0 ? 0 : 1);
|
||||
const [pinStatus, setPinStatus] = React.useState(false);
|
||||
|
||||
const stateRef = React.useRef({
|
||||
pinStatus,
|
||||
})
|
||||
pinStatus
|
||||
});
|
||||
|
||||
React.useEffect(() => {
|
||||
stateRef.current.pinStatus = pinStatus
|
||||
}, [pinStatus])
|
||||
stateRef.current.pinStatus = pinStatus;
|
||||
}, [pinStatus]);
|
||||
|
||||
const { thingtime, events } = useThingtime()
|
||||
const { thingtime, events } = useThingtime();
|
||||
|
||||
const opacityRef = React.useRef(null)
|
||||
const opacityRef = React.useRef(null);
|
||||
|
||||
const waitTime = 1555
|
||||
const waitTime = 1555;
|
||||
|
||||
const [uuid, setUuid] = React.useState(null)
|
||||
const [uuid, setUuid] = React.useState(null);
|
||||
|
||||
React.useEffect(() => {
|
||||
setUuid(Math.random().toString(36).substring(7))
|
||||
}, [])
|
||||
setUuid(Math.random().toString(36).substring(7));
|
||||
}, []);
|
||||
|
||||
React.useEffect(() => {
|
||||
const subscription = events.subscribe((event) => {
|
||||
if (event?.type === "settings-menu-hide" && event?.uuid !== uuid) {
|
||||
if (event?.type === 'settings-menu-hide' && event?.uuid !== uuid) {
|
||||
if (!stateRef?.current?.pinStatus || event?.force) {
|
||||
setShow(false)
|
||||
setOpacity(0)
|
||||
setShow(false);
|
||||
setOpacity(0);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
return () => {
|
||||
subscription?.unsubscribe?.()
|
||||
}
|
||||
}, [events, uuid])
|
||||
subscription?.unsubscribe?.();
|
||||
};
|
||||
}, [events, uuid]);
|
||||
|
||||
React.useEffect(() => {
|
||||
clearInterval(opacityRef?.current)
|
||||
clearInterval(opacityRef?.current);
|
||||
if (props?.opacity) {
|
||||
setOpacity(props?.opacity)
|
||||
setOpacity(props?.opacity);
|
||||
} else {
|
||||
opacityRef.current = setInterval(() => {
|
||||
if (!stateRef?.current?.pinStatus) {
|
||||
setOpacity(props?.opacity)
|
||||
setShow(false)
|
||||
setOpacity(props?.opacity);
|
||||
setShow(false);
|
||||
}
|
||||
}, waitTime)
|
||||
}, waitTime);
|
||||
}
|
||||
}, [props?.opacity])
|
||||
}, [props?.opacity]);
|
||||
|
||||
React.useEffect(() => {
|
||||
if (show || props?.opacity) {
|
||||
clearInterval(hideRef?.current)
|
||||
clearInterval(hideRef?.current);
|
||||
events.next({
|
||||
type: "settings-menu-hide",
|
||||
uuid,
|
||||
})
|
||||
type: 'settings-menu-hide',
|
||||
uuid
|
||||
});
|
||||
} else if (!show) {
|
||||
setPinStatus(false)
|
||||
setPinStatus(false);
|
||||
}
|
||||
}, [show, props?.opacity, events, uuid])
|
||||
}, [show, props?.opacity, events, uuid]);
|
||||
|
||||
const maybeHide = React.useCallback(() => {
|
||||
clearInterval(hideRef?.current)
|
||||
clearInterval(hideRef?.current);
|
||||
hideRef.current = setTimeout(() => {
|
||||
if (!stateRef?.current?.pinStatus) {
|
||||
setShow(false)
|
||||
setOpacity(0)
|
||||
setShow(false);
|
||||
setOpacity(0);
|
||||
}
|
||||
}, waitTime)
|
||||
}, [])
|
||||
}, waitTime);
|
||||
}, []);
|
||||
|
||||
const showMenu = React.useCallback(() => {
|
||||
clearInterval(hideRef?.current)
|
||||
setShow(true)
|
||||
}, [])
|
||||
clearInterval(hideRef?.current);
|
||||
setShow(true);
|
||||
}, []);
|
||||
|
||||
const hideMenu = React.useCallback(() => {
|
||||
setShow(false)
|
||||
}, [])
|
||||
setShow(false);
|
||||
}, []);
|
||||
|
||||
const basePadding = React.useMemo(() => {
|
||||
return 4
|
||||
}, [])
|
||||
return 4;
|
||||
}, []);
|
||||
|
||||
const types = React.useMemo(() => {
|
||||
const baseTypes = thingtime?.settings?.types?.javascript || {}
|
||||
const baseTypeKeys = Object.keys(baseTypes)
|
||||
const baseTypes = thingtime?.settings?.types?.javascript || {};
|
||||
const baseTypeKeys = Object.keys(baseTypes);
|
||||
|
||||
const customTypes = thingtime?.settings?.types?.custom || {}
|
||||
const customTypeKeysRaw = Object.keys(customTypes)
|
||||
const customTypes = thingtime?.settings?.types?.custom || {};
|
||||
const customTypeKeysRaw = Object.keys(customTypes);
|
||||
const customTypeKeys = customTypeKeysRaw?.filter((key) => {
|
||||
return !baseTypeKeys?.includes?.(key)
|
||||
})
|
||||
return !baseTypeKeys?.includes?.(key);
|
||||
});
|
||||
|
||||
const types = [
|
||||
...(baseTypeKeys?.map?.((key) => {
|
||||
return {
|
||||
...baseTypes?.[key],
|
||||
key,
|
||||
}
|
||||
key
|
||||
};
|
||||
}) || []),
|
||||
...(customTypeKeys?.map?.((key) => {
|
||||
return {
|
||||
...customTypes?.[key],
|
||||
key,
|
||||
}
|
||||
}) || []),
|
||||
]
|
||||
key
|
||||
};
|
||||
}) || [])
|
||||
];
|
||||
|
||||
return types
|
||||
}, [
|
||||
thingtime?.settings?.types?.javascript,
|
||||
thingtime?.settings?.types?.custom,
|
||||
])
|
||||
return types;
|
||||
}, [thingtime?.settings?.types?.javascript, thingtime?.settings?.types?.custom]);
|
||||
|
||||
const onType = React.useCallback(
|
||||
(args) => {
|
||||
props?.onType?.(args)
|
||||
props?.onType?.(args);
|
||||
},
|
||||
[props?.onType]
|
||||
)
|
||||
);
|
||||
const onDelete = React.useCallback(
|
||||
(type) => {
|
||||
props?.onDelete?.()
|
||||
props?.onDelete?.();
|
||||
},
|
||||
[props?.onDelete]
|
||||
)
|
||||
);
|
||||
|
||||
const childIconSize = 10
|
||||
const iconSize = props?.iconSize || 7
|
||||
const childIconSize = 10;
|
||||
const iconSize = props?.iconSize || 7;
|
||||
|
||||
return (
|
||||
<ClickAwayListener onClickAway={hideMenu}>
|
||||
@ -149,7 +146,7 @@ export const SettingsMenu = (props) => {
|
||||
// width="100%"
|
||||
paddingRight={36}
|
||||
opacity={opacity}
|
||||
transition={props?.transition || "all 0.2s ease-in-out"}
|
||||
transition={props?.transition || 'all 0.2s ease-in-out'}
|
||||
onMouseEnter={showMenu}
|
||||
onMouseLeave={maybeHide}
|
||||
>
|
||||
@ -159,6 +156,8 @@ export const SettingsMenu = (props) => {
|
||||
cursor="pointer"
|
||||
// onClick={deleteValue}
|
||||
transition="all 0.2s ease-in-out"
|
||||
// add title for hover context
|
||||
title={`Options`}
|
||||
>
|
||||
<Icon name="wizard" size={iconSize}></Icon>
|
||||
</Flex>
|
||||
@ -169,7 +168,7 @@ export const SettingsMenu = (props) => {
|
||||
left={0}
|
||||
flexDirection="column"
|
||||
opacity={show ? 1 : 0}
|
||||
pointerEvents={show ? "all" : "none"}
|
||||
pointerEvents={show ? 'all' : 'none'}
|
||||
>
|
||||
<Flex
|
||||
position="absolute"
|
||||
@ -178,19 +177,44 @@ export const SettingsMenu = (props) => {
|
||||
padding="5px"
|
||||
cursor="pointer"
|
||||
onClick={() => setPinStatus((prev) => !prev)}
|
||||
title={`Pin Options`}
|
||||
>
|
||||
<Icon
|
||||
opacity={pinStatus ? 1 : 0.5}
|
||||
name={pinStatus ? "pinned" : "pin"}
|
||||
size="8px"
|
||||
></Icon>
|
||||
{show === true && <Icon opacity={pinStatus ? 1 : 0.5} name={pinStatus ? 'pinned' : 'pin'} size="8px"></Icon>}
|
||||
</Flex>
|
||||
{/* edit mode menu item */}
|
||||
<Flex
|
||||
flexDirection="column"
|
||||
// rowGap={basePadding / 3}
|
||||
background="greys.lightt"
|
||||
borderRadius={4}
|
||||
boxShadow={props?.boxShadow || "0px 2px 7px 0px rgba(0,0,0,0.2)"}
|
||||
boxShadow={props?.boxShadow || '0px 2px 7px 0px rgba(0,0,0,0.2)'}
|
||||
paddingY={basePadding}
|
||||
>
|
||||
<Flex
|
||||
alignItems="center"
|
||||
flexDirection="row"
|
||||
// paddingRight={basePadding}
|
||||
paddingLeft={basePadding}
|
||||
_hover={{
|
||||
background: 'greys.light'
|
||||
}}
|
||||
cursor="pointer"
|
||||
// paddingX={basePadding * 1}
|
||||
paddingY={basePadding / 2}
|
||||
>
|
||||
<Icon marginBottom="-2px" name="🎨" size={childIconSize}></Icon>
|
||||
<Text marginTop="-2px" paddingLeft={2} fontSize="xs">
|
||||
Toggle Edit Mode
|
||||
</Text>
|
||||
</Flex>
|
||||
</Flex>
|
||||
|
||||
<Flex
|
||||
flexDirection="column"
|
||||
// rowGap={basePadding / 3}
|
||||
background="greys.lightt"
|
||||
borderRadius={4}
|
||||
boxShadow={props?.boxShadow || '0px 2px 7px 0px rgba(0,0,0,0.2)'}
|
||||
paddingY={basePadding}
|
||||
>
|
||||
{!props?.readonly && (
|
||||
@ -200,17 +224,13 @@ export const SettingsMenu = (props) => {
|
||||
// paddingRight={basePadding}
|
||||
paddingLeft={basePadding}
|
||||
_hover={{
|
||||
background: "greys.light",
|
||||
background: 'greys.light'
|
||||
}}
|
||||
cursor="pointer"
|
||||
// paddingX={basePadding * 1}
|
||||
paddingY={basePadding / 2}
|
||||
>
|
||||
<Icon
|
||||
marginBottom="-2px"
|
||||
name="cyclone"
|
||||
size={childIconSize}
|
||||
></Icon>
|
||||
<Icon marginBottom="-2px" name="cyclone" size={childIconSize}></Icon>
|
||||
<Text marginTop="-2px" paddingLeft={2} fontSize="xs">
|
||||
Types
|
||||
</Text>
|
||||
@ -228,12 +248,12 @@ export const SettingsMenu = (props) => {
|
||||
types.map((type, idx) => {
|
||||
const ret = (
|
||||
<Flex
|
||||
key={props?.uuid + props?.fullPath + "-type-menu-" + idx}
|
||||
key={props?.uuid + props?.fullPath + '-type-menu-' + idx}
|
||||
width="100%"
|
||||
_hover={{
|
||||
"&>div": {
|
||||
background: "greys.light",
|
||||
},
|
||||
'&>div': {
|
||||
background: 'greys.light'
|
||||
}
|
||||
}}
|
||||
cursor="pointer"
|
||||
onClick={() => onType({ type })}
|
||||
@ -247,11 +267,7 @@ export const SettingsMenu = (props) => {
|
||||
paddingLeft={basePadding * 2}
|
||||
paddingY={basePadding / 2}
|
||||
>
|
||||
<Icon
|
||||
marginBottom="-2px"
|
||||
name={type?.icon || type?.key || type?.label || type}
|
||||
size={childIconSize}
|
||||
></Icon>
|
||||
<Icon marginBottom="-2px" name={type?.icon || type?.key || type?.label || type} size={childIconSize}></Icon>
|
||||
<Text marginTop="-2px" paddingLeft={2} fontSize="xs">
|
||||
{type?.label || type?.key || type}
|
||||
</Text>
|
||||
@ -259,18 +275,18 @@ export const SettingsMenu = (props) => {
|
||||
<Flex
|
||||
marginLeft="auto"
|
||||
_hover={{
|
||||
transform: "scale(1.3)",
|
||||
transform: 'scale(1.3)'
|
||||
}}
|
||||
transition="all 0.2s ease-out"
|
||||
onClick={(e) => {
|
||||
e?.preventDefault?.()
|
||||
e?.stopPropagation?.()
|
||||
e?.preventDefault?.();
|
||||
e?.stopPropagation?.();
|
||||
// cancel bubble
|
||||
e?.nativeEvent?.stopImmediatePropagation?.()
|
||||
e?.nativeEvent?.stopImmediatePropagation?.();
|
||||
onType({
|
||||
type,
|
||||
wrap: true,
|
||||
})
|
||||
wrap: true
|
||||
});
|
||||
}}
|
||||
>
|
||||
<Icon name="wrap" size={childIconSize}></Icon>
|
||||
@ -278,8 +294,8 @@ export const SettingsMenu = (props) => {
|
||||
)}
|
||||
</Flex>
|
||||
</Flex>
|
||||
)
|
||||
return ret
|
||||
);
|
||||
return ret;
|
||||
})}
|
||||
</Flex>
|
||||
{!props?.readonly && props?.onDelete && (
|
||||
@ -287,18 +303,14 @@ export const SettingsMenu = (props) => {
|
||||
alignItems="center"
|
||||
flexDirection="row"
|
||||
_hover={{
|
||||
background: "greys.light",
|
||||
background: 'greys.light'
|
||||
}}
|
||||
cursor="pointer"
|
||||
onClick={onDelete}
|
||||
paddingX={basePadding * 1}
|
||||
paddingY={basePadding / 2}
|
||||
>
|
||||
<Icon
|
||||
marginBottom="-2px"
|
||||
name="bin"
|
||||
size={childIconSize}
|
||||
></Icon>
|
||||
<Icon marginBottom="-2px" name="bin" size={childIconSize}></Icon>
|
||||
<Text marginTop="-2px" paddingLeft={2} fontSize="xs">
|
||||
Recycle
|
||||
</Text>
|
||||
@ -308,5 +320,5 @@ export const SettingsMenu = (props) => {
|
||||
</Flex>
|
||||
</Center>
|
||||
</ClickAwayListener>
|
||||
)
|
||||
}
|
||||
);
|
||||
};
|
||||
|
15
remix/app/routes/branding.tsx
Normal file
15
remix/app/routes/branding.tsx
Normal file
@ -0,0 +1,15 @@
|
||||
import { Box } from '@chakra-ui/react';
|
||||
import { Branding } from '~/components/Branding/Branding';
|
||||
import { TopSpacing } from '~/components/Layout/TopSpacing';
|
||||
import { Raw } from '~/components/MongoDB/Raw';
|
||||
import { RawResults } from '~/components/MongoDB/RawResults';
|
||||
|
||||
export default function branding() {
|
||||
const template = (
|
||||
<>
|
||||
<Branding />
|
||||
</>
|
||||
);
|
||||
|
||||
return template;
|
||||
}
|
@ -19,10 +19,10 @@
|
||||
"@fortawesome/react-fontawesome": "^0.2.0",
|
||||
"@monaco-editor/react": "^4.6.0",
|
||||
"@remix-run/node": "^2.8.1",
|
||||
"@remix-run/react": "^2.8.1",
|
||||
"@remix-run/serve": "^2.8.1",
|
||||
"@remix-run/react": "^2.10.3",
|
||||
"@remix-run/serve": "^2.10.3",
|
||||
"@vercel/analytics": "^0.1.11",
|
||||
"@vercel/remix": "^1.15.0",
|
||||
"@vercel/remix": "^2.10.3",
|
||||
"axios": "^1.6.8",
|
||||
"bcrypt": "^5.1.1",
|
||||
"draft-js": "^0.11.7",
|
||||
@ -48,7 +48,8 @@
|
||||
"uuid": "^9.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@remix-run/dev": "^2.8.1",
|
||||
"@emotion/styled": "^11.13.0",
|
||||
"@remix-run/dev": "^2.10.3",
|
||||
"@remix-run/eslint-config": "^2.8.1",
|
||||
"@shopify/eslint-plugin": "^42.1.0",
|
||||
"@types/eslint": "^8.40.2",
|
||||
@ -65,8 +66,9 @@
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"eslint-plugin-simple-import-sort": "^10.0.0",
|
||||
"eslint-plugin-unused-imports": "^2.0.0",
|
||||
"framer-motion": "^11.3.12",
|
||||
"remix-flat-routes": "^0.6.4",
|
||||
"typescript": "^4.9.3",
|
||||
"typescript": "^5.5.4",
|
||||
"vite": "^5.1.0",
|
||||
"vite-tsconfig-paths": "^4.3.2"
|
||||
},
|
||||
@ -74,6 +76,6 @@
|
||||
"@types/react": "^17.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
"node": "18.x"
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import { vitePlugin as remix } from '@remix-run/dev';
|
||||
import { installGlobals } from '@remix-run/node';
|
||||
import { defineConfig } from 'vite';
|
||||
import tsconfigPaths from 'vite-tsconfig-paths';
|
||||
import { flatRoutes } from 'remix-flat-routes'
|
||||
import { flatRoutes } from 'remix-flat-routes';
|
||||
|
||||
installGlobals();
|
||||
|
||||
@ -17,11 +17,12 @@ export default defineConfig({
|
||||
},
|
||||
plugins: [
|
||||
remix({
|
||||
|
||||
routes: async defineRoutes => {
|
||||
return flatRoutes('routes', defineRoutes)
|
||||
routes: async (defineRoutes) => {
|
||||
return flatRoutes('routes', defineRoutes);
|
||||
},
|
||||
|
||||
|
||||
serverModuleFormat: 'cjs',
|
||||
|
||||
// app path
|
||||
appDirectory: 'app'
|
||||
}),
|
||||
|
0
vercel.json
Normal file
0
vercel.json
Normal file
Loading…
Reference in New Issue
Block a user