diff --git a/src/shared/shadcn/ui/checkbox/checkbox.svelte b/src/shared/shadcn/ui/checkbox/checkbox.svelte
new file mode 100644
index 0000000..36fabcf
--- /dev/null
+++ b/src/shared/shadcn/ui/checkbox/checkbox.svelte
@@ -0,0 +1,36 @@
+
+
+
+ {#snippet children({ checked, indeterminate })}
+
+ {#if checked}
+
+ {:else if indeterminate}
+
+ {/if}
+
+ {/snippet}
+
diff --git a/src/shared/shadcn/ui/checkbox/index.ts b/src/shared/shadcn/ui/checkbox/index.ts
new file mode 100644
index 0000000..d3e5023
--- /dev/null
+++ b/src/shared/shadcn/ui/checkbox/index.ts
@@ -0,0 +1,6 @@
+import Root from './checkbox.svelte';
+export {
+ Root,
+ //
+ Root as Checkbox,
+};
diff --git a/src/shared/shadcn/ui/collapsible/collapsible-content.svelte b/src/shared/shadcn/ui/collapsible/collapsible-content.svelte
new file mode 100644
index 0000000..25a505d
--- /dev/null
+++ b/src/shared/shadcn/ui/collapsible/collapsible-content.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/shared/shadcn/ui/collapsible/collapsible-trigger.svelte b/src/shared/shadcn/ui/collapsible/collapsible-trigger.svelte
new file mode 100644
index 0000000..5204f38
--- /dev/null
+++ b/src/shared/shadcn/ui/collapsible/collapsible-trigger.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/shared/shadcn/ui/collapsible/collapsible.svelte b/src/shared/shadcn/ui/collapsible/collapsible.svelte
new file mode 100644
index 0000000..4c0539c
--- /dev/null
+++ b/src/shared/shadcn/ui/collapsible/collapsible.svelte
@@ -0,0 +1,11 @@
+
+
+
diff --git a/src/shared/shadcn/ui/collapsible/index.ts b/src/shared/shadcn/ui/collapsible/index.ts
new file mode 100644
index 0000000..dedc5e7
--- /dev/null
+++ b/src/shared/shadcn/ui/collapsible/index.ts
@@ -0,0 +1,13 @@
+import Content from './collapsible-content.svelte';
+import Trigger from './collapsible-trigger.svelte';
+import Root from './collapsible.svelte';
+
+export {
+ Content,
+ Content as CollapsibleContent,
+ Root,
+ //
+ Root as Collapsible,
+ Trigger,
+ Trigger as CollapsibleTrigger,
+};
diff --git a/src/shared/shadcn/ui/dialog/dialog-close.svelte b/src/shared/shadcn/ui/dialog/dialog-close.svelte
new file mode 100644
index 0000000..190949b
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-close.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/shared/shadcn/ui/dialog/dialog-content.svelte b/src/shared/shadcn/ui/dialog/dialog-content.svelte
new file mode 100644
index 0000000..bffa55a
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-content.svelte
@@ -0,0 +1,45 @@
+
+
+
+
+
+ {@render children?.()}
+ {#if showCloseButton}
+
+
+ Close
+
+ {/if}
+
+
diff --git a/src/shared/shadcn/ui/dialog/dialog-description.svelte b/src/shared/shadcn/ui/dialog/dialog-description.svelte
new file mode 100644
index 0000000..95ee2cb
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-description.svelte
@@ -0,0 +1,17 @@
+
+
+
diff --git a/src/shared/shadcn/ui/dialog/dialog-footer.svelte b/src/shared/shadcn/ui/dialog/dialog-footer.svelte
new file mode 100644
index 0000000..c5dd50f
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-footer.svelte
@@ -0,0 +1,20 @@
+
+
+
+ {@render children?.()}
+
diff --git a/src/shared/shadcn/ui/dialog/dialog-header.svelte b/src/shared/shadcn/ui/dialog/dialog-header.svelte
new file mode 100644
index 0000000..b319e22
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-header.svelte
@@ -0,0 +1,20 @@
+
+
+
+ {@render children?.()}
+
diff --git a/src/shared/shadcn/ui/dialog/dialog-overlay.svelte b/src/shared/shadcn/ui/dialog/dialog-overlay.svelte
new file mode 100644
index 0000000..1b28ebd
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-overlay.svelte
@@ -0,0 +1,20 @@
+
+
+
diff --git a/src/shared/shadcn/ui/dialog/dialog-portal.svelte b/src/shared/shadcn/ui/dialog/dialog-portal.svelte
new file mode 100644
index 0000000..20907d7
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-portal.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/shared/shadcn/ui/dialog/dialog-title.svelte b/src/shared/shadcn/ui/dialog/dialog-title.svelte
new file mode 100644
index 0000000..0c82aff
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-title.svelte
@@ -0,0 +1,17 @@
+
+
+
diff --git a/src/shared/shadcn/ui/dialog/dialog-trigger.svelte b/src/shared/shadcn/ui/dialog/dialog-trigger.svelte
new file mode 100644
index 0000000..b606eba
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog-trigger.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/shared/shadcn/ui/dialog/dialog.svelte b/src/shared/shadcn/ui/dialog/dialog.svelte
new file mode 100644
index 0000000..1be37a7
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/dialog.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/shared/shadcn/ui/dialog/index.ts b/src/shared/shadcn/ui/dialog/index.ts
new file mode 100644
index 0000000..f10e275
--- /dev/null
+++ b/src/shared/shadcn/ui/dialog/index.ts
@@ -0,0 +1,34 @@
+import Close from './dialog-close.svelte';
+import Content from './dialog-content.svelte';
+import Description from './dialog-description.svelte';
+import Footer from './dialog-footer.svelte';
+import Header from './dialog-header.svelte';
+import Overlay from './dialog-overlay.svelte';
+import Portal from './dialog-portal.svelte';
+import Title from './dialog-title.svelte';
+import Trigger from './dialog-trigger.svelte';
+import Root from './dialog.svelte';
+
+export {
+ Close,
+ Close as DialogClose,
+ Content,
+ Content as DialogContent,
+ Description,
+ Description as DialogDescription,
+ Footer,
+ Footer as DialogFooter,
+ Header,
+ Header as DialogHeader,
+ Overlay,
+ Overlay as DialogOverlay,
+ Portal,
+ Portal as DialogPortal,
+ Root,
+ //
+ Root as Dialog,
+ Title,
+ Title as DialogTitle,
+ Trigger,
+ Trigger as DialogTrigger,
+};
diff --git a/src/shared/shadcn/ui/label/index.ts b/src/shared/shadcn/ui/label/index.ts
new file mode 100644
index 0000000..9800cbe
--- /dev/null
+++ b/src/shared/shadcn/ui/label/index.ts
@@ -0,0 +1,7 @@
+import Root from './label.svelte';
+
+export {
+ Root,
+ //
+ Root as Label,
+};
diff --git a/src/shared/shadcn/ui/label/label.svelte b/src/shared/shadcn/ui/label/label.svelte
new file mode 100644
index 0000000..0b2fcb4
--- /dev/null
+++ b/src/shared/shadcn/ui/label/label.svelte
@@ -0,0 +1,20 @@
+
+
+