-
User ID
-
{id}
+
+
+
+ Username
+ {username}
-
-
+
+
+
+
+
+
diff --git a/src/lib/components/avatar/avatar-fallback.svelte b/src/lib/components/avatar/avatar-fallback.svelte
new file mode 100644
index 0000000..4a452e9
--- /dev/null
+++ b/src/lib/components/avatar/avatar-fallback.svelte
@@ -0,0 +1,17 @@
+
+
+
diff --git a/src/lib/components/avatar/avatar-image.svelte b/src/lib/components/avatar/avatar-image.svelte
new file mode 100644
index 0000000..7ccc3ce
--- /dev/null
+++ b/src/lib/components/avatar/avatar-image.svelte
@@ -0,0 +1,17 @@
+
+
+
diff --git a/src/lib/components/avatar/avatar.svelte b/src/lib/components/avatar/avatar.svelte
new file mode 100644
index 0000000..3fd4dc2
--- /dev/null
+++ b/src/lib/components/avatar/avatar.svelte
@@ -0,0 +1,19 @@
+
+
+
diff --git a/src/lib/components/avatar/index.ts b/src/lib/components/avatar/index.ts
new file mode 100644
index 0000000..9585f8a
--- /dev/null
+++ b/src/lib/components/avatar/index.ts
@@ -0,0 +1,13 @@
+import Root from './avatar.svelte';
+import Image from './avatar-image.svelte';
+import Fallback from './avatar-fallback.svelte';
+
+export {
+ Root,
+ Image,
+ Fallback,
+ //
+ Root as Avatar,
+ Image as AvatarImage,
+ Fallback as AvatarFallback
+};
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-checkbox-item.svelte b/src/lib/components/dropdown-menu/dropdown-menu-checkbox-item.svelte
new file mode 100644
index 0000000..ed52f67
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-checkbox-item.svelte
@@ -0,0 +1,41 @@
+
+
+
+ {#snippet children({ checked, indeterminate })}
+
+ {#if indeterminate}
+
+ {:else}
+
+ {/if}
+
+ {@render childrenProp?.()}
+ {/snippet}
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-content.svelte b/src/lib/components/dropdown-menu/dropdown-menu-content.svelte
new file mode 100644
index 0000000..305557b
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-content.svelte
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-group-heading.svelte b/src/lib/components/dropdown-menu/dropdown-menu-group-heading.svelte
new file mode 100644
index 0000000..920848e
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-group-heading.svelte
@@ -0,0 +1,22 @@
+
+
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-group.svelte b/src/lib/components/dropdown-menu/dropdown-menu-group.svelte
new file mode 100644
index 0000000..261ab7e
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-group.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-item.svelte b/src/lib/components/dropdown-menu/dropdown-menu-item.svelte
new file mode 100644
index 0000000..b0d4ed3
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-item.svelte
@@ -0,0 +1,27 @@
+
+
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-label.svelte b/src/lib/components/dropdown-menu/dropdown-menu-label.svelte
new file mode 100644
index 0000000..14e40f7
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-label.svelte
@@ -0,0 +1,24 @@
+
+
+
+ {@render children?.()}
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-radio-group.svelte b/src/lib/components/dropdown-menu/dropdown-menu-radio-group.svelte
new file mode 100644
index 0000000..3e98749
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-radio-group.svelte
@@ -0,0 +1,16 @@
+
+
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-radio-item.svelte b/src/lib/components/dropdown-menu/dropdown-menu-radio-item.svelte
new file mode 100644
index 0000000..ca8ccaf
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-radio-item.svelte
@@ -0,0 +1,31 @@
+
+
+
+ {#snippet children({ checked })}
+
+ {#if checked}
+
+ {/if}
+
+ {@render childrenProp?.({ checked })}
+ {/snippet}
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-separator.svelte b/src/lib/components/dropdown-menu/dropdown-menu-separator.svelte
new file mode 100644
index 0000000..a076e43
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-separator.svelte
@@ -0,0 +1,17 @@
+
+
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-shortcut.svelte b/src/lib/components/dropdown-menu/dropdown-menu-shortcut.svelte
new file mode 100644
index 0000000..eb86e67
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-shortcut.svelte
@@ -0,0 +1,20 @@
+
+
+
+ {@render children?.()}
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-sub-content.svelte b/src/lib/components/dropdown-menu/dropdown-menu-sub-content.svelte
new file mode 100644
index 0000000..8528d25
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-sub-content.svelte
@@ -0,0 +1,20 @@
+
+
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-sub-trigger.svelte b/src/lib/components/dropdown-menu/dropdown-menu-sub-trigger.svelte
new file mode 100644
index 0000000..96bb810
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-sub-trigger.svelte
@@ -0,0 +1,29 @@
+
+
+
+ {@render children?.()}
+
+
diff --git a/src/lib/components/dropdown-menu/dropdown-menu-trigger.svelte b/src/lib/components/dropdown-menu/dropdown-menu-trigger.svelte
new file mode 100644
index 0000000..032b645
--- /dev/null
+++ b/src/lib/components/dropdown-menu/dropdown-menu-trigger.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/lib/components/dropdown-menu/index.ts b/src/lib/components/dropdown-menu/index.ts
new file mode 100644
index 0000000..aeb398e
--- /dev/null
+++ b/src/lib/components/dropdown-menu/index.ts
@@ -0,0 +1,49 @@
+import { DropdownMenu as DropdownMenuPrimitive } from 'bits-ui';
+import CheckboxItem from './dropdown-menu-checkbox-item.svelte';
+import Content from './dropdown-menu-content.svelte';
+import Group from './dropdown-menu-group.svelte';
+import Item from './dropdown-menu-item.svelte';
+import Label from './dropdown-menu-label.svelte';
+import RadioGroup from './dropdown-menu-radio-group.svelte';
+import RadioItem from './dropdown-menu-radio-item.svelte';
+import Separator from './dropdown-menu-separator.svelte';
+import Shortcut from './dropdown-menu-shortcut.svelte';
+import Trigger from './dropdown-menu-trigger.svelte';
+import SubContent from './dropdown-menu-sub-content.svelte';
+import SubTrigger from './dropdown-menu-sub-trigger.svelte';
+import GroupHeading from './dropdown-menu-group-heading.svelte';
+const Sub = DropdownMenuPrimitive.Sub;
+const Root = DropdownMenuPrimitive.Root;
+
+export {
+ CheckboxItem,
+ Content,
+ Root as DropdownMenu,
+ CheckboxItem as DropdownMenuCheckboxItem,
+ Content as DropdownMenuContent,
+ Group as DropdownMenuGroup,
+ Item as DropdownMenuItem,
+ Label as DropdownMenuLabel,
+ RadioGroup as DropdownMenuRadioGroup,
+ RadioItem as DropdownMenuRadioItem,
+ Separator as DropdownMenuSeparator,
+ Shortcut as DropdownMenuShortcut,
+ Sub as DropdownMenuSub,
+ SubContent as DropdownMenuSubContent,
+ SubTrigger as DropdownMenuSubTrigger,
+ Trigger as DropdownMenuTrigger,
+ GroupHeading as DropdownMenuGroupHeading,
+ Group,
+ GroupHeading,
+ Item,
+ Label,
+ RadioGroup,
+ RadioItem,
+ Root,
+ Separator,
+ Shortcut,
+ Sub,
+ SubContent,
+ SubTrigger,
+ Trigger
+};
diff --git a/src/lib/components/skeleton/index.ts b/src/lib/components/skeleton/index.ts
new file mode 100644
index 0000000..3120ce1
--- /dev/null
+++ b/src/lib/components/skeleton/index.ts
@@ -0,0 +1,7 @@
+import Root from './skeleton.svelte';
+
+export {
+ Root,
+ //
+ Root as Skeleton
+};
diff --git a/src/lib/components/skeleton/skeleton.svelte b/src/lib/components/skeleton/skeleton.svelte
new file mode 100644
index 0000000..cdd10e0
--- /dev/null
+++ b/src/lib/components/skeleton/skeleton.svelte
@@ -0,0 +1,17 @@
+
+
+
diff --git a/src/lib/index.ts b/src/lib/index.ts
index c6e1480..03a42e5 100644
--- a/src/lib/index.ts
+++ b/src/lib/index.ts
@@ -2,7 +2,6 @@
export { default as Input } from './components/Input.svelte';
export { default as Button } from './components/Button.svelte';
export { default as ErrorMessage } from './components/ErrorMessage.svelte';
-export { default as ProfileIcon } from './components/ProfileIcon.svelte';
export { default as ProfilePanel } from './components/ProfilePanel.svelte';
export { default as Header } from './components/Header.svelte';
export { default as Modal } from './components/Modal.svelte';
diff --git a/src/lib/stores/location.ts b/src/lib/stores/location.ts
index e9e2cf7..ca943dd 100644
--- a/src/lib/stores/location.ts
+++ b/src/lib/stores/location.ts
@@ -199,17 +199,20 @@ export const getMapCenter = derived(coordinates, ($coordinates) => {
});
// Utility function to get appropriate zoom level based on accuracy
-export const getMapZoom = derived([coordinates, shouldZoomToLocation], ([$coordinates, $shouldZoom]) => {
- if ($coordinates?.accuracy) {
- // More aggressive zoom levels when location button is clicked
- const baseZoom = $shouldZoom ? 2 : 0; // Add 2 zoom levels when triggered by button
+export const getMapZoom = derived(
+ [coordinates, shouldZoomToLocation],
+ ([$coordinates, $shouldZoom]) => {
+ if ($coordinates?.accuracy) {
+ // More aggressive zoom levels when location button is clicked
+ const baseZoom = $shouldZoom ? 2 : 0; // Add 2 zoom levels when triggered by button
- // Adjust zoom based on accuracy (lower accuracy = lower zoom)
- if ($coordinates.accuracy < 10) return Math.min(20, 18 + baseZoom); // Very accurate
- if ($coordinates.accuracy < 50) return Math.min(19, 16 + baseZoom); // Good accuracy
- if ($coordinates.accuracy < 100) return Math.min(18, 14 + baseZoom); // Moderate accuracy
- if ($coordinates.accuracy < 500) return Math.min(16, 12 + baseZoom); // Low accuracy
- return Math.min(15, 10 + baseZoom); // Very low accuracy
+ // Adjust zoom based on accuracy (lower accuracy = lower zoom)
+ if ($coordinates.accuracy < 10) return Math.min(20, 18 + baseZoom); // Very accurate
+ if ($coordinates.accuracy < 50) return Math.min(19, 16 + baseZoom); // Good accuracy
+ if ($coordinates.accuracy < 100) return Math.min(18, 14 + baseZoom); // Moderate accuracy
+ if ($coordinates.accuracy < 500) return Math.min(16, 12 + baseZoom); // Low accuracy
+ return Math.min(15, 10 + baseZoom); // Very low accuracy
+ }
+ return $shouldZoom ? 16 : 13; // More aggressive default when triggered by button
}
- return $shouldZoom ? 16 : 13; // More aggressive default when triggered by button
-});
+);