From 4a283213d45cd1289673957af1e32ba0fb2de0a5 Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Fri, 2 Jan 2026 11:12:29 +0300 Subject: [PATCH] feat(shadcn): add new shadcn components --- src/shared/shadcn/ui/checkbox/checkbox.svelte | 36 +++++++++++++++ src/shared/shadcn/ui/checkbox/index.ts | 6 +++ .../ui/collapsible/collapsible-content.svelte | 7 +++ .../ui/collapsible/collapsible-trigger.svelte | 7 +++ .../shadcn/ui/collapsible/collapsible.svelte | 11 +++++ src/shared/shadcn/ui/collapsible/index.ts | 13 ++++++ .../shadcn/ui/dialog/dialog-close.svelte | 7 +++ .../shadcn/ui/dialog/dialog-content.svelte | 45 +++++++++++++++++++ .../ui/dialog/dialog-description.svelte | 17 +++++++ .../shadcn/ui/dialog/dialog-footer.svelte | 20 +++++++++ .../shadcn/ui/dialog/dialog-header.svelte | 20 +++++++++ .../shadcn/ui/dialog/dialog-overlay.svelte | 20 +++++++++ .../shadcn/ui/dialog/dialog-portal.svelte | 7 +++ .../shadcn/ui/dialog/dialog-title.svelte | 17 +++++++ .../shadcn/ui/dialog/dialog-trigger.svelte | 7 +++ src/shared/shadcn/ui/dialog/dialog.svelte | 7 +++ src/shared/shadcn/ui/dialog/index.ts | 34 ++++++++++++++ src/shared/shadcn/ui/label/index.ts | 7 +++ src/shared/shadcn/ui/label/label.svelte | 20 +++++++++ 19 files changed, 308 insertions(+) create mode 100644 src/shared/shadcn/ui/checkbox/checkbox.svelte create mode 100644 src/shared/shadcn/ui/checkbox/index.ts create mode 100644 src/shared/shadcn/ui/collapsible/collapsible-content.svelte create mode 100644 src/shared/shadcn/ui/collapsible/collapsible-trigger.svelte create mode 100644 src/shared/shadcn/ui/collapsible/collapsible.svelte create mode 100644 src/shared/shadcn/ui/collapsible/index.ts create mode 100644 src/shared/shadcn/ui/dialog/dialog-close.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog-content.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog-description.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog-footer.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog-header.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog-overlay.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog-portal.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog-title.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog-trigger.svelte create mode 100644 src/shared/shadcn/ui/dialog/dialog.svelte create mode 100644 src/shared/shadcn/ui/dialog/index.ts create mode 100644 src/shared/shadcn/ui/label/index.ts create mode 100644 src/shared/shadcn/ui/label/label.svelte 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 @@ + + +