diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 95aefff..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,35 +0,0 @@ -/* eslint-env node */ -require('@rushstack/eslint-patch/modern-module-resolution') - -module.exports = { - root: true, - extends: [ - 'plugin:vue/vue3-essential', - 'eslint:recommended', - '@vue/eslint-config-typescript', - '@vue/eslint-config-prettier/skip-formatting' - ], - overrides: [ - { - files: [ - '**/__tests__/*.{cy,spec}.{js,ts,jsx,tsx}', - 'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}', - 'cypress/support/**/*.{js,ts,jsx,tsx}' - ], - extends: ['plugin:cypress/recommended'] - } - ], - parserOptions: { - ecmaVersion: 'latest' - }, - rules: { - indent: ['error', 2, { SwitchCase: 1 }], - 'prettier/prettier': [ - 'error', - { - endOfLine: 'auto' - } - ], - 'vue/multi-word-component-names': 'off' - } -} diff --git a/.gitignore b/.gitignore index 514d5db..6575dcc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,32 +1,28 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + # Logs logs *.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* -node_modules +# Misc .DS_Store -dist -dist-ssr -coverage -*.local - -/cypress/videos/ -/cypress/screenshots/ - -# Editor directories and files -.vscode/* -!.vscode/extensions.json +.fleet .idea -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -*.tsbuildinfo +# Local env files .env +.env.* +!.env.example + +# Supabase +.branches +.temp diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..5bee2d4 --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +# https://pnpm.io/npmrc#shamefully-hoist +# Fixes: WARN Failed to resolve dependency: @supabase/gotrue-js, present in 'optimizeDeps.include' +shamefully-hoist=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 93ea3e7..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "Vue.volar", - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode" - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d259bb4 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "eslint.experimental.useFlatConfig": true, + "editor.indentSize": "tabSize", + "editor.tabSize": 2, +} \ No newline at end of file diff --git a/README.md b/README.md index 1d3a6b8..f5db2a2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,75 @@ -# Leim Tools -A congregate of tools used to visualize TTRPG elements and help content creators (mostly me for now tbh) build their worlds. +# Nuxt 3 Minimal Starter -## Timeline -Visual helper for time-related data, such as events, eras and characters. Helpful to know how old a character is while something is happening in the world, or how far two events are separated in the timeline. +Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. + +## Setup + +Make sure to install the dependencies: + +```bash +# npm +npm install + +# pnpm +pnpm install + +# yarn +yarn install + +# bun +bun install +``` + +## Development Server + +Start the development server on `http://localhost:3000`: + +```bash +# npm +npm run dev + +# pnpm +pnpm run dev + +# yarn +yarn dev + +# bun +bun run dev +``` + +## Production + +Build the application for production: + +```bash +# npm +npm run build + +# pnpm +pnpm run build + +# yarn +yarn build + +# bun +bun run build +``` + +Locally preview production build: + +```bash +# npm +npm run preview + +# pnpm +pnpm run preview + +# yarn +yarn preview + +# bun +bun run preview +``` + +Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. diff --git a/app.vue b/app.vue new file mode 100644 index 0000000..ffcefe3 --- /dev/null +++ b/app.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/assets/main.css b/assets/main.css similarity index 95% rename from src/assets/main.css rename to assets/main.css index 010919c..71f25ec 100644 --- a/src/assets/main.css +++ b/assets/main.css @@ -2,70 +2,68 @@ @tailwind components; @tailwind utilities; -@layer base { - :root { +:root { --background: 0 0% 100%; --foreground: 222.2 84% 4.9%; - + --muted: 210 40% 96.1%; --muted-foreground: 215.4 16.3% 46.9%; - + --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; - + --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; - + --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; - + --primary: 222.2 47.4% 11.2%; --primary-foreground: 210 40% 98%; - + --secondary: 210 40% 96.1%; --secondary-foreground: 222.2 47.4% 11.2%; - + --accent: 210 40% 96.1%; --accent-foreground: 222.2 47.4% 11.2%; - + --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; - + --ring: 222.2 84% 4.9%; - + --radius: 0.5rem; } - - .dark { + + :root.dark { --background: 222.2 84% 4.9%; --foreground: 210 40% 98%; - + --muted: 217.2 32.6% 17.5%; --muted-foreground: 215 20.2% 65.1%; - + --popover: 222.2 84% 4.9%; --popover-foreground: 210 40% 98%; - + --card: 222.2 84% 4.9%; --card-foreground: 210 40% 98%; - + --border: 217.2 32.6% 17.5%; --input: 217.2 32.6% 17.5%; - + --primary: 210 40% 98%; --primary-foreground: 222.2 47.4% 11.2%; - + --secondary: 217.2 32.6% 17.5%; --secondary-foreground: 210 40% 98%; - + --accent: 217.2 32.6% 17.5%; --accent-foreground: 210 40% 98%; - + --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 40% 98%; - + --ring: 212.7 26.8% 83.9%; - } } @layer base { @@ -75,4 +73,4 @@ body { @apply bg-background text-foreground; } -} +} \ No newline at end of file diff --git a/components.json b/components.json index 9c826ef..be94b1d 100644 --- a/components.json +++ b/components.json @@ -4,11 +4,11 @@ "typescript": true, "tailwind": { "config": "tailwind.config.js", - "css": "src/assets/main.css", + "css": "assets/main.css", "baseColor": "slate", "cssVariables": true }, - "framework": "vite", + "framework": "nuxt", "aliases": { "components": "@/components", "utils": "@/lib/utils" diff --git a/components/calendar/Calendar.vue b/components/calendar/Calendar.vue new file mode 100644 index 0000000..b16f81e --- /dev/null +++ b/components/calendar/Calendar.vue @@ -0,0 +1,115 @@ + + + diff --git a/components/calendar/CalendarCurrentDate.vue b/components/calendar/CalendarCurrentDate.vue new file mode 100644 index 0000000..6447d5e --- /dev/null +++ b/components/calendar/CalendarCurrentDate.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/calendar/CalendarEvent.vue b/components/calendar/CalendarEvent.vue similarity index 68% rename from src/components/calendar/CalendarEvent.vue rename to components/calendar/CalendarEvent.vue index 7f1c6e5..0fa5535 100644 --- a/src/components/calendar/CalendarEvent.vue +++ b/components/calendar/CalendarEvent.vue @@ -1,56 +1,55 @@ diff --git a/components/calendar/CalendarEventDetails.vue b/components/calendar/CalendarEventDetails.vue new file mode 100644 index 0000000..9816ace --- /dev/null +++ b/components/calendar/CalendarEventDetails.vue @@ -0,0 +1,247 @@ + + + + + diff --git a/src/components/calendar/CalendarMenu.vue b/components/calendar/CalendarMenu.vue similarity index 69% rename from src/components/calendar/CalendarMenu.vue rename to components/calendar/CalendarMenu.vue index d44762b..4c84849 100644 --- a/src/components/calendar/CalendarMenu.vue +++ b/components/calendar/CalendarMenu.vue @@ -1,13 +1,7 @@ @@ -29,10 +23,10 @@ const { revealAdvancedSearch } = useCalendar()
  • - +
  • diff --git a/src/components/calendar/CalendarMenuNav.vue b/components/calendar/CalendarMenuNav.vue similarity index 69% rename from src/components/calendar/CalendarMenuNav.vue rename to components/calendar/CalendarMenuNav.vue index dd671e9..67c9402 100644 --- a/src/components/calendar/CalendarMenuNav.vue +++ b/components/calendar/CalendarMenuNav.vue @@ -2,14 +2,12 @@ import { computed, type ComputedRef } from 'vue' import { useCalendar } from '@/stores/CalendarStore' -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip' import { PhCaretDoubleLeft, PhCaretDoubleRight, PhCaretLeft, PhCaretRight } from '@phosphor-icons/vue' -import Button from '@/components/ui/button/Button.vue' interface DirectionLabels { pastFar: string @@ -145,56 +143,56 @@ function toFutureFar(): void { diff --git a/src/components/calendar/CalendarMenuSubnav.vue b/components/calendar/CalendarMenuSubnav.vue similarity index 65% rename from src/components/calendar/CalendarMenuSubnav.vue rename to components/calendar/CalendarMenuSubnav.vue index cd879c6..aa87fd7 100644 --- a/src/components/calendar/CalendarMenuSubnav.vue +++ b/components/calendar/CalendarMenuSubnav.vue @@ -1,17 +1,20 @@ + + diff --git a/components/calendar/CalendarSwitch.vue b/components/calendar/CalendarSwitch.vue new file mode 100644 index 0000000..3d97212 --- /dev/null +++ b/components/calendar/CalendarSwitch.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/calendar/Search.ts b/components/calendar/SearchMode.ts similarity index 100% rename from src/components/calendar/Search.ts rename to components/calendar/SearchMode.ts diff --git a/components/calendar/form/CreateEvent.vue b/components/calendar/form/CreateEvent.vue new file mode 100644 index 0000000..fe9d3c4 --- /dev/null +++ b/components/calendar/form/CreateEvent.vue @@ -0,0 +1,126 @@ + + +