diff --git a/bun.lockb b/bun.lockb index d4152ae..41b13ec 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/components/preferences/profile/editor.vue b/components/preferences/profile/editor.vue index 0403f04..b7d94a5 100644 --- a/components/preferences/profile/editor.vue +++ b/components/preferences/profile/editor.vue @@ -16,18 +16,14 @@ - - + + {{ m.safe_icy_bulldog_quell() }} - + - - {{ m.aware_quiet_opossum_catch() }} - - @@ -183,6 +179,7 @@ import { Input } from "~/components/ui/input"; import { Switch } from "~/components/ui/switch"; import { Textarea } from "~/components/ui/textarea"; import * as m from "~/paraglide/messages.js"; +import ImageUploader from "./image-uploader.vue"; if (!identity.value) { throw new Error("Identity not found."); @@ -217,6 +214,7 @@ const formSchema = toTypedSchema( .avatar_size_limit, }), ) + .or(z.string().url()) .optional(), name: z .string() @@ -326,4 +324,4 @@ defineExpose({ submitForm: () => handleSubmit(), dirty: computed(() => form.meta.value.dirty), }); - \ No newline at end of file + diff --git a/components/preferences/profile/image-uploader.vue b/components/preferences/profile/image-uploader.vue new file mode 100644 index 0000000..791031f --- /dev/null +++ b/components/preferences/profile/image-uploader.vue @@ -0,0 +1,201 @@ + + + diff --git a/components/profiles/avatar.vue b/components/profiles/avatar.vue index 682726e..9c4cecc 100644 --- a/components/profiles/avatar.vue +++ b/components/profiles/avatar.vue @@ -31,4 +31,4 @@ const getInitials = (name: string): string => { }; const shape = useSetting(SettingIds.AvatarShape); - \ No newline at end of file + diff --git a/components/ui/tabs/Tabs.vue b/components/ui/tabs/Tabs.vue new file mode 100644 index 0000000..35b0903 --- /dev/null +++ b/components/ui/tabs/Tabs.vue @@ -0,0 +1,15 @@ + + + diff --git a/components/ui/tabs/TabsContent.vue b/components/ui/tabs/TabsContent.vue new file mode 100644 index 0000000..2eefa5b --- /dev/null +++ b/components/ui/tabs/TabsContent.vue @@ -0,0 +1,25 @@ + + + diff --git a/components/ui/tabs/TabsList.vue b/components/ui/tabs/TabsList.vue new file mode 100644 index 0000000..264a26a --- /dev/null +++ b/components/ui/tabs/TabsList.vue @@ -0,0 +1,27 @@ + + + diff --git a/components/ui/tabs/TabsTrigger.vue b/components/ui/tabs/TabsTrigger.vue new file mode 100644 index 0000000..08677fc --- /dev/null +++ b/components/ui/tabs/TabsTrigger.vue @@ -0,0 +1,31 @@ + + + diff --git a/components/ui/tabs/index.ts b/components/ui/tabs/index.ts new file mode 100644 index 0000000..3b3741b --- /dev/null +++ b/components/ui/tabs/index.ts @@ -0,0 +1,4 @@ +export { default as Tabs } from "./Tabs.vue"; +export { default as TabsContent } from "./TabsContent.vue"; +export { default as TabsList } from "./TabsList.vue"; +export { default as TabsTrigger } from "./TabsTrigger.vue";