From 304ffd45bad7d94fc63c31b807c826d3541a6058 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Sat, 14 Dec 2024 03:34:08 +0100 Subject: [PATCH] Lib: Implement dropdown + search/autocomplete components --- src/lib/components/Dropdown.svelte | 86 ++++++++++++++++++++++++++++++ src/lib/components/Search.svelte | 83 ++++++++++++++++++++++++++++ src/lib/components/index.ts | 15 +++++- 3 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 src/lib/components/Dropdown.svelte create mode 100644 src/lib/components/Search.svelte diff --git a/src/lib/components/Dropdown.svelte b/src/lib/components/Dropdown.svelte new file mode 100644 index 0000000..a4bb86e --- /dev/null +++ b/src/lib/components/Dropdown.svelte @@ -0,0 +1,86 @@ + + +
+
+ {@render children()} +
+ +
+ +
+ + {#each options as option} + {option.label} + {/each} + +
+
diff --git a/src/lib/components/Search.svelte b/src/lib/components/Search.svelte new file mode 100644 index 0000000..3ac0be8 --- /dev/null +++ b/src/lib/components/Search.svelte @@ -0,0 +1,83 @@ + + +
+
+ {@render children()} +
+ +
+ +
+ +
diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index f968087..8e7c484 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -1,9 +1,22 @@ import Input from "./Input.svelte"; import Button from "./Button.svelte"; import Card from "./Card.svelte"; +import Search from "./Search.svelte"; +import Dropdown from "./Dropdown.svelte"; +// import type DropdownOption from "./Dropdown.svelte"; import MenuDrawerIcon from "./svg/MenuDrawerIcon.svelte"; import UserIcon from "./svg/UserIcon.svelte"; import PasswordIcon from "./svg/PasswordIcon.svelte"; -export { Input, Button, Card, MenuDrawerIcon, UserIcon, PasswordIcon }; +export { + Input, + Button, + Card, + Search, + Dropdown, + // type DropdownOption, + MenuDrawerIcon, + UserIcon, + PasswordIcon, +};