diff --git a/src/shared/shadcn/ui/select/index.ts b/src/shared/shadcn/ui/select/index.ts
new file mode 100644
index 0000000..8c303c3
--- /dev/null
+++ b/src/shared/shadcn/ui/select/index.ts
@@ -0,0 +1,37 @@
+import Content from './select-content.svelte';
+import GroupHeading from './select-group-heading.svelte';
+import Group from './select-group.svelte';
+import Item from './select-item.svelte';
+import Label from './select-label.svelte';
+import Portal from './select-portal.svelte';
+import ScrollDownButton from './select-scroll-down-button.svelte';
+import ScrollUpButton from './select-scroll-up-button.svelte';
+import Separator from './select-separator.svelte';
+import Trigger from './select-trigger.svelte';
+import Root from './select.svelte';
+
+export {
+ Content,
+ Content as SelectContent,
+ Group,
+ Group as SelectGroup,
+ GroupHeading,
+ GroupHeading as SelectGroupHeading,
+ Item,
+ Item as SelectItem,
+ Label,
+ Label as SelectLabel,
+ Portal,
+ Portal as SelectPortal,
+ Root,
+ //
+ Root as Select,
+ ScrollDownButton,
+ ScrollDownButton as SelectScrollDownButton,
+ ScrollUpButton,
+ ScrollUpButton as SelectScrollUpButton,
+ Separator,
+ Separator as SelectSeparator,
+ Trigger,
+ Trigger as SelectTrigger,
+};
diff --git a/src/shared/shadcn/ui/select/select-content.svelte b/src/shared/shadcn/ui/select/select-content.svelte
new file mode 100644
index 0000000..572f197
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-content.svelte
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ {@render children?.()}
+
+
+
+
diff --git a/src/shared/shadcn/ui/select/select-group-heading.svelte b/src/shared/shadcn/ui/select/select-group-heading.svelte
new file mode 100644
index 0000000..4e8f720
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-group-heading.svelte
@@ -0,0 +1,21 @@
+
+
+
+ {@render children?.()}
+
diff --git a/src/shared/shadcn/ui/select/select-group.svelte b/src/shared/shadcn/ui/select/select-group.svelte
new file mode 100644
index 0000000..8e0e694
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-group.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/shared/shadcn/ui/select/select-item.svelte b/src/shared/shadcn/ui/select/select-item.svelte
new file mode 100644
index 0000000..e375e45
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-item.svelte
@@ -0,0 +1,41 @@
+
+
+
+ {#snippet children({ selected, highlighted })}
+
+ {#if selected}
+
+ {/if}
+
+ {#if childrenProp}
+ {@render childrenProp({ selected, highlighted })}
+ {:else}
+ {label || value}
+ {/if}
+ {/snippet}
+
diff --git a/src/shared/shadcn/ui/select/select-label.svelte b/src/shared/shadcn/ui/select/select-label.svelte
new file mode 100644
index 0000000..301930d
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-label.svelte
@@ -0,0 +1,23 @@
+
+
+
+ {@render children?.()}
+
diff --git a/src/shared/shadcn/ui/select/select-portal.svelte b/src/shared/shadcn/ui/select/select-portal.svelte
new file mode 100644
index 0000000..c4fc326
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-portal.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/shared/shadcn/ui/select/select-scroll-down-button.svelte b/src/shared/shadcn/ui/select/select-scroll-down-button.svelte
new file mode 100644
index 0000000..bdb96f5
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-scroll-down-button.svelte
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/src/shared/shadcn/ui/select/select-scroll-up-button.svelte b/src/shared/shadcn/ui/select/select-scroll-up-button.svelte
new file mode 100644
index 0000000..b28fbc9
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-scroll-up-button.svelte
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/src/shared/shadcn/ui/select/select-separator.svelte b/src/shared/shadcn/ui/select/select-separator.svelte
new file mode 100644
index 0000000..a570547
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-separator.svelte
@@ -0,0 +1,18 @@
+
+
+
diff --git a/src/shared/shadcn/ui/select/select-trigger.svelte b/src/shared/shadcn/ui/select/select-trigger.svelte
new file mode 100644
index 0000000..b9b280f
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select-trigger.svelte
@@ -0,0 +1,32 @@
+
+
+
+ {@render children?.()}
+
+
diff --git a/src/shared/shadcn/ui/select/select.svelte b/src/shared/shadcn/ui/select/select.svelte
new file mode 100644
index 0000000..8eca78b
--- /dev/null
+++ b/src/shared/shadcn/ui/select/select.svelte
@@ -0,0 +1,11 @@
+
+
+