diff --git a/web/bun.lock b/web/bun.lock index 586c0c1..3f5d731 100644 --- a/web/bun.lock +++ b/web/bun.lock @@ -4,11 +4,14 @@ "": { "name": "nuxt-app", "dependencies": { + "@iconify-json/lucide": "^1.2.42", "@internationalized/date": "^3.8.0", "@nuxt/eslint": "1.3.0", "@nuxt/test-utils": "3.18.0", "@nuxt/ui": "3.1.1", + "@types/moment": "^2.13.0", "eslint": "^9.0.0", + "moment": "^2.30.1", "nuxt": "^3.17.2", "nuxt-app": "file:", "typescript": "^5.6.3", @@ -192,6 +195,8 @@ "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.2", "", {}, "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ=="], + "@iconify-json/lucide": ["@iconify-json/lucide@1.2.42", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-exkRygF4yd6e5q966TXJQc/b+MAu3iQb8LeExCjl2JoP4/RlpudkYpg1AIZVCVCjAiElDYmVJYDWiJXPLkFN/g=="], + "@iconify/collections": ["@iconify/collections@1.0.545", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-LQprSmX6Wp69insYYSHM6bj5ZF4gT4ZwoqX9UXdCxGxRMzRpaNzQZUZ++2kP0wnOg3lX2ocMla8ns8oRPzxO2g=="], "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], @@ -468,6 +473,8 @@ "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + "@types/moment": ["@types/moment@2.13.0", "", { "dependencies": { "moment": "*" } }, "sha512-DyuyYGpV6r+4Z1bUznLi/Y7HpGn4iQ4IVcGn8zrr1P4KotKLdH0sbK1TFR6RGyX6B+G8u83wCzL+bpawKU/hdQ=="], + "@types/node": ["@types/node@22.15.12", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-K0fpC/ZVeb8G9rm7bH7vI0KAec4XHEhBam616nVJCV51bKzJ6oA3luG4WdKoaztxe70QaNjS/xBmcDLmr4PiGw=="], "@types/normalize-package-data": ["@types/normalize-package-data@2.4.4", "", {}, "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="], @@ -1392,6 +1399,8 @@ "module-definition": ["module-definition@5.0.1", "", { "dependencies": { "ast-module-types": "^5.0.0", "node-source-walk": "^6.0.1" }, "bin": { "module-definition": "bin/cli.js" } }, "sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA=="], + "moment": ["moment@2.30.1", "", {}, "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="], + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], diff --git a/web/components/ui/MainContent.vue b/web/components/ui/MainContent.vue new file mode 100644 index 0000000..d7da085 --- /dev/null +++ b/web/components/ui/MainContent.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/web/components/ui/Sidebar.vue b/web/components/ui/Sidebar.vue index 75316e6..cf9bed0 100644 --- a/web/components/ui/Sidebar.vue +++ b/web/components/ui/Sidebar.vue @@ -2,13 +2,29 @@ import { CalendarDate } from '@internationalized/date'; import ListItem from './ListItem.vue'; import Title1 from './Title1.vue'; +import type { DropdownMenuItem } from '@nuxt/ui'; +import type { Moment } from 'moment'; +import moment from 'moment'; -const selectedDate = shallowRef(new CalendarDate(2024, 6, 29)); - -const dropDownItems = ref([ - {label: "Profile", icon: "i-lucide-user"} +const dropDownItems = ref([ + { label: "Profile", icon: "i-lucide-user" }, + { label: "Settings", icon: "i-lucide-settings" } ]) +const date = defineModel('date', { required: true }) + +const selectedDate = computed({ + get() { + return new CalendarDate(date.value.year(), date.value.month() + 1, date.value.date()) + }, + set(value) { + if (value === undefined) { + return + } + date.value = moment(value.toString()); + } +}) + defineProps<{ todos: string[] }>() @@ -17,35 +33,32 @@ defineProps<{