From 9acb1e8cbd34922601e2befc41d1a0b6001922a5 Mon Sep 17 00:00:00 2001 From: Jeanne Mas Date: Sun, 12 May 2024 18:56:18 -0400 Subject: [PATCH] Added dialog and drawer components --- .changeset/odd-chairs-allow.md | 5 + .vscode/settings.json | 6 + package.json | 12 +- pnpm-lock.yaml | 146 +++++++++-------- scripts/package.js | 11 +- .../alert-dialog/AlertDialogAction.svelte | 10 +- .../alert-dialog/AlertDialogCancel.svelte | 10 +- .../alert-dialog/AlertDialogContent.svelte | 49 +++--- .../AlertDialogDescription.svelte | 10 +- .../alert-dialog/AlertDialogFooter.svelte | 4 +- .../alert-dialog/AlertDialogHeader.svelte | 4 +- .../alert-dialog/AlertDialogOverlay.svelte | 33 ++-- .../alert-dialog/AlertDialogPortal.svelte | 10 +- .../alert-dialog/AlertDialogRoot.svelte | 12 +- .../alert-dialog/AlertDialogTitle.svelte | 30 ++-- .../alert-dialog/AlertDialogTrigger.svelte | 10 +- .../components/alert/AlertDescription.svelte | 6 +- src/lib/components/alert/AlertRoot.svelte | 6 +- src/lib/components/alert/AlertTitle.svelte | 12 +- .../breadcrumb/BreadcrumbEllipsis.svelte | 4 +- .../breadcrumb/BreadcrumbItem.svelte | 4 +- .../breadcrumb/BreadcrumbLink.svelte | 4 +- .../breadcrumb/BreadcrumbList.svelte | 4 +- .../breadcrumb/BreadcrumbPage.svelte | 4 +- .../breadcrumb/BreadcrumbRoot.svelte | 4 +- .../breadcrumb/BreadcrumbSeparator.svelte | 4 +- src/lib/components/button/Button.svelte | 10 +- .../components/calendar/CalendarCell.svelte | 10 +- .../components/calendar/CalendarDay.svelte | 10 +- .../components/calendar/CalendarGrid.svelte | 10 +- .../calendar/CalendarGridBody.svelte | 10 +- .../calendar/CalendarGridHead.svelte | 10 +- .../calendar/CalendarGridRow.svelte | 10 +- .../calendar/CalendarHeadCell.svelte | 10 +- .../components/calendar/CalendarHeader.svelte | 10 +- .../calendar/CalendarHeading.svelte | 10 +- .../components/calendar/CalendarMonths.svelte | 4 +- .../calendar/CalendarNextButton.svelte | 10 +- .../calendar/CalendarPreviousButton.svelte | 10 +- .../components/calendar/CalendarRoot.svelte | 71 ++++---- src/lib/components/card/CardContent.svelte | 6 +- .../components/card/CardDescription.svelte | 6 +- src/lib/components/card/CardFooter.svelte | 6 +- src/lib/components/card/CardHeader.svelte | 6 +- src/lib/components/card/CardRoot.svelte | 6 +- src/lib/components/card/CardTitle.svelte | 18 +-- .../collapsible/CollapsibleContent.svelte | 17 +- .../collapsible/CollapsibleRoot.svelte | 10 +- .../collapsible/CollapsibleTrigger.svelte | 11 +- src/lib/components/container/Container.svelte | 4 +- src/lib/components/dialog/DialogClose.svelte | 63 ++++++++ .../components/dialog/DialogContent.svelte | 116 +++++++++++++ .../dialog/DialogDescription.svelte | 55 +++++++ src/lib/components/dialog/DialogFooter.svelte | 53 ++++++ src/lib/components/dialog/DialogHeader.svelte | 53 ++++++ .../components/dialog/DialogOverlay.svelte | 88 ++++++++++ src/lib/components/dialog/DialogPortal.svelte | 55 +++++++ src/lib/components/dialog/DialogRoot.svelte | 56 +++++++ src/lib/components/dialog/DialogTitle.svelte | 63 ++++++++ .../components/dialog/DialogTrigger.svelte | 54 +++++++ src/lib/components/dialog/index.ts | 69 ++++++++ src/lib/components/drawer/DrawerClose.svelte | 63 ++++++++ .../components/drawer/DrawerContent.svelte | 111 +++++++++++++ .../drawer/DrawerDescription.svelte | 55 +++++++ src/lib/components/drawer/DrawerFooter.svelte | 53 ++++++ src/lib/components/drawer/DrawerHeader.svelte | 53 ++++++ .../components/drawer/DrawerNestedRoot.svelte | 79 +++++++++ .../components/drawer/DrawerOverlay.svelte | 64 ++++++++ src/lib/components/drawer/DrawerPortal.svelte | 56 +++++++ src/lib/components/drawer/DrawerRoot.svelte | 79 +++++++++ src/lib/components/drawer/DrawerTitle.svelte | 63 ++++++++ .../components/drawer/DrawerTrigger.svelte | 60 +++++++ src/lib/components/drawer/index.ts | 75 +++++++++ .../DropdownMenuCheckboxItem.svelte | 10 +- .../dropdown-menu/DropdownMenuContent.svelte | 19 ++- .../dropdown-menu/DropdownMenuGroup.svelte | 12 +- .../dropdown-menu/DropdownMenuItem.svelte | 10 +- .../dropdown-menu/DropdownMenuLabel.svelte | 10 +- .../DropdownMenuRadioGroup.svelte | 12 +- .../DropdownMenuRadioItem.svelte | 10 +- .../dropdown-menu/DropdownMenuRoot.svelte | 12 +- .../DropdownMenuSeparator.svelte | 10 +- .../dropdown-menu/DropdownMenuShortcut.svelte | 6 +- .../dropdown-menu/DropdownMenuSub.svelte | 12 +- .../DropdownMenuSubContent.svelte | 19 ++- .../DropdownMenuSubTrigger.svelte | 10 +- .../dropdown-menu/DropdownMenuTrigger.svelte | 10 +- src/lib/components/form/FormControl.svelte | 14 +- .../components/form/FormDescription.svelte | 12 +- .../components/form/FormElementField.svelte | 37 +++-- src/lib/components/form/FormField.svelte | 35 ++-- .../components/form/FormFieldErrors.svelte | 12 +- src/lib/components/form/FormFieldset.svelte | 18 +-- src/lib/components/form/FormLabel.svelte | 7 +- src/lib/components/form/FormLegend.svelte | 12 +- src/lib/components/form/FormRoot.svelte | 6 +- src/lib/components/input/Input.svelte | 8 +- src/lib/components/label/Label.svelte | 10 +- .../pagination/PaginationContent.svelte | 6 +- .../pagination/PaginationEllipsis.svelte | 6 +- .../pagination/PaginationItem.svelte | 6 +- .../pagination/PaginationLink.svelte | 10 +- .../pagination/PaginationNextButton.svelte | 10 +- .../PaginationPreviousButton.svelte | 10 +- .../pagination/PaginationRoot.svelte | 10 +- .../components/popover/PopoverClose.svelte | 12 +- .../components/popover/PopoverContent.svelte | 17 +- src/lib/components/popover/PopoverRoot.svelte | 12 +- .../components/popover/PopoverTrigger.svelte | 12 +- .../components/select/SelectContent.svelte | 25 +-- src/lib/components/select/SelectGroup.svelte | 10 +- src/lib/components/select/SelectInput.svelte | 10 +- src/lib/components/select/SelectItem.svelte | 24 +-- src/lib/components/select/SelectLabel.svelte | 10 +- src/lib/components/select/SelectRoot.svelte | 19 ++- .../components/select/SelectSeparator.svelte | 10 +- .../components/select/SelectTrigger.svelte | 10 +- src/lib/components/select/SelectValue.svelte | 10 +- src/lib/components/separator/Separator.svelte | 14 +- src/lib/components/sonner/Sonner.svelte | 12 +- src/lib/components/switch/Switch.svelte | 12 +- src/lib/components/table/TableBody.svelte | 6 +- src/lib/components/table/TableCaption.svelte | 6 +- src/lib/components/table/TableCell.svelte | 6 +- src/lib/components/table/TableFooter.svelte | 6 +- src/lib/components/table/TableHead.svelte | 6 +- src/lib/components/table/TableHeader.svelte | 6 +- src/lib/components/table/TableRoot.svelte | 6 +- src/lib/components/table/TableRow.svelte | 6 +- src/lib/components/tabs/TabsContent.svelte | 10 +- src/lib/components/tabs/TabsList.svelte | 10 +- src/lib/components/tabs/TabsRoot.svelte | 10 +- src/lib/components/tabs/TabsTrigger.svelte | 10 +- src/lib/components/textarea/Textarea.svelte | 8 +- .../components/tooltip/TooltipContent.svelte | 17 +- src/lib/components/tooltip/TooltipRoot.svelte | 12 +- .../components/tooltip/TooltipTrigger.svelte | 16 +- .../top-navigation/TopNavigationButton.svelte | 6 +- .../top-navigation/TopNavigationLink.svelte | 7 +- .../top-navigation/TopNavigationRoot.svelte | 4 +- .../TopNavigationSection.svelte | 6 +- src/lib/transition/flyAndScale.ts | 4 +- src/lib/utils/internal.ts | 4 +- src/lib/utils/types.ts | 45 ++++-- src/routes/alert-dialog/+page.svelte | 14 +- src/routes/alert/+page.svelte | 8 +- src/routes/button/+page.svelte | 12 +- src/routes/calendar/+page.svelte | 43 ++--- src/routes/collapsible/+page.svelte | 10 +- src/routes/container/+page.svelte | 10 +- src/routes/dialog/+page.svelte | 135 ++++++++++++++++ src/routes/drawer/+page.svelte | 153 ++++++++++++++++++ src/routes/dropdown-menu/+page.svelte | 24 +-- src/routes/form/+page.svelte | 8 +- src/routes/input/+page.svelte | 16 +- src/routes/pagination/+page.svelte | 16 +- src/routes/popover/+page.svelte | 16 +- src/routes/select/+page.svelte | 18 ++- src/routes/separator/+page.svelte | 8 +- src/routes/sonner/+page.svelte | 28 ++-- src/routes/switch/+page.svelte | 10 +- src/routes/tabs/+page.svelte | 12 +- src/routes/textarea/+page.svelte | 12 +- src/routes/tooltip/+page.svelte | 18 ++- src/routes/top-navigation/+page.svelte | 11 +- 165 files changed, 2868 insertions(+), 776 deletions(-) create mode 100644 .changeset/odd-chairs-allow.md create mode 100644 .vscode/settings.json create mode 100644 src/lib/components/dialog/DialogClose.svelte create mode 100644 src/lib/components/dialog/DialogContent.svelte create mode 100644 src/lib/components/dialog/DialogDescription.svelte create mode 100644 src/lib/components/dialog/DialogFooter.svelte create mode 100644 src/lib/components/dialog/DialogHeader.svelte create mode 100644 src/lib/components/dialog/DialogOverlay.svelte create mode 100644 src/lib/components/dialog/DialogPortal.svelte create mode 100644 src/lib/components/dialog/DialogRoot.svelte create mode 100644 src/lib/components/dialog/DialogTitle.svelte create mode 100644 src/lib/components/dialog/DialogTrigger.svelte create mode 100644 src/lib/components/dialog/index.ts create mode 100644 src/lib/components/drawer/DrawerClose.svelte create mode 100644 src/lib/components/drawer/DrawerContent.svelte create mode 100644 src/lib/components/drawer/DrawerDescription.svelte create mode 100644 src/lib/components/drawer/DrawerFooter.svelte create mode 100644 src/lib/components/drawer/DrawerHeader.svelte create mode 100644 src/lib/components/drawer/DrawerNestedRoot.svelte create mode 100644 src/lib/components/drawer/DrawerOverlay.svelte create mode 100644 src/lib/components/drawer/DrawerPortal.svelte create mode 100644 src/lib/components/drawer/DrawerRoot.svelte create mode 100644 src/lib/components/drawer/DrawerTitle.svelte create mode 100644 src/lib/components/drawer/DrawerTrigger.svelte create mode 100644 src/lib/components/drawer/index.ts create mode 100644 src/routes/dialog/+page.svelte create mode 100644 src/routes/drawer/+page.svelte diff --git a/.changeset/odd-chairs-allow.md b/.changeset/odd-chairs-allow.md new file mode 100644 index 0000000..2864e49 --- /dev/null +++ b/.changeset/odd-chairs-allow.md @@ -0,0 +1,5 @@ +--- +'@jeanne-mas/svelte-ui': patch +--- + +Added dialog and drawer components diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2c788f1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "tailwindCSS.experimental.classRegex": [ + // https://www.tailwind-variants.org/docs/getting-started#intellisense-setup-optional + ["tv\\((([^()]*|\\([^()]*\\))*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"] + ] +} diff --git a/package.json b/package.json index 2add710..34293c5 100644 --- a/package.json +++ b/package.json @@ -7,16 +7,16 @@ "dependencies": { "@internationalized/date": "^3.5.2", "@melt-ui/svelte": "^0.76.2", - "bits-ui": "^0.21.3", + "bits-ui": "^0.21.7", "clsx": "^2.1.0", "formsnap": "^1.0.0", "lucide-svelte": "^0.368.0", "mode-watcher": "^0.3.0", - "svelte-legos": "^0.2.2", "svelte-sonner": "^0.3.22", "sveltekit-superforms": "^2.12.5", "tailwind-merge": "^2.2.2", "tailwind-variants": "^0.2.1", + "vaul-svelte": "^0.3.0", "zod": "^3.22.5" }, "description": "A collection of Svelte components and related utilities that I use in my projects.", @@ -83,6 +83,14 @@ "types": "./dist/components/container/index.d.ts", "svelte": "./dist/components/container/index.js" }, + "./components/dialog": { + "types": "./dist/components/dialog/index.d.ts", + "svelte": "./dist/components/dialog/index.js" + }, + "./components/drawer": { + "types": "./dist/components/drawer/index.d.ts", + "svelte": "./dist/components/drawer/index.js" + }, "./components/dropdown-menu": { "types": "./dist/components/dropdown-menu/index.d.ts", "svelte": "./dist/components/dropdown-menu/index.js" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e4538d1..d333756 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,35 +15,35 @@ importers: specifier: ^0.76.2 version: 0.76.2(svelte@4.2.12) bits-ui: - specifier: ^0.21.3 - version: 0.21.3(svelte@4.2.12) + specifier: ^0.21.7 + version: 0.21.7(svelte@4.2.12) clsx: specifier: ^2.1.0 version: 2.1.0 formsnap: specifier: ^1.0.0 - version: 1.0.0(svelte@4.2.12)(sveltekit-superforms@2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12)) + version: 1.0.0(svelte@4.2.12)(sveltekit-superforms@2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12)) lucide-svelte: specifier: ^0.368.0 version: 0.368.0(svelte@4.2.12) mode-watcher: specifier: ^0.3.0 version: 0.3.0(svelte@4.2.12) - svelte-legos: - specifier: ^0.2.2 - version: 0.2.2(svelte@4.2.12) svelte-sonner: specifier: ^0.3.22 version: 0.3.22(svelte@4.2.12) sveltekit-superforms: specifier: ^2.12.5 - version: 2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12) + version: 2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12) tailwind-merge: specifier: ^2.2.2 version: 2.2.2 tailwind-variants: specifier: ^0.2.1 version: 0.2.1(tailwindcss@3.4.3) + vaul-svelte: + specifier: ^0.3.0 + version: 0.3.0(svelte@4.2.12) zod: specifier: ^3.22.5 version: 3.22.5 @@ -56,16 +56,16 @@ importers: version: 1.43.0 '@sveltejs/adapter-auto': specifier: ^3.0.0 - version: 3.2.0(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55))) + version: 3.2.0(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8)) '@sveltejs/kit': specifier: ^2.0.0 - version: 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)) + version: 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8) '@sveltejs/package': specifier: ^2.0.0 version: 2.3.1(svelte@4.2.12)(typescript@5.4.4) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.0 - version: 3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)) + version: 3.0.2(svelte@4.2.12)(vite@5.2.8) '@types/eslint': specifier: ^8.56.0 version: 8.56.7 @@ -128,10 +128,10 @@ importers: version: 5.4.4 vite: specifier: ^5.0.11 - version: 5.2.8(@types/node@12.20.55) + version: 5.2.8 vitest: specifier: ^1.2.0 - version: 1.4.0(@types/node@12.20.55) + version: 1.4.0 packages: @@ -440,6 +440,11 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@melt-ui/svelte@0.68.0': + resolution: {integrity: sha512-/QvA98hnYEodZtHJ71+ocum/WWp30hVNt3F8uiZKnNYwZDaiQYjlyR9AaGKYcZLCe6R68op1mfCzc0kTzJilyA==} + peerDependencies: + svelte: '>=3 <5' + '@melt-ui/svelte@0.76.2': resolution: {integrity: sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==} peerDependencies: @@ -832,11 +837,16 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bits-ui@0.21.3: - resolution: {integrity: sha512-VMQVXwYIjYmDoudIRm2ZlS2guy97lUQk73DwSfTnaS0dhldImbDFMATNxjLSLsTDj8FqJ8Dv78wSctdxcloIbQ==} + bits-ui@0.16.0: + resolution: {integrity: sha512-HEkuVDyUG9dTWtKujKpdDsGOe9GRmuYOEF9yGbjVwNazxMQDQa9deUX8vM3ofGBWaJgr1cEu88p38kP5Z5gQ8w==} peerDependencies: svelte: ^4.0.0 + bits-ui@0.21.7: + resolution: {integrity: sha512-1PKp90ly1R6jexIiAUj1Dk4u2pln7ok+L8Vc0rHMY7pi7YZvadFNZvkp1G5BtmL8qh2xsn4MVNgKjPAQMCxW0A==} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.118 + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -888,9 +898,6 @@ packages: caniuse-lite@1.0.30001605: resolution: {integrity: sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==} - canvas-confetti@1.9.3: - resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==} - chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} @@ -2136,13 +2143,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - prism-svelte@0.5.0: - resolution: {integrity: sha512-db91Bf3pRGKDPz1lAqLFSJXeW13mulUJxhycysFpfXV5MIK7RgWWK2E5aPAa71s8TCzQUXxF5JOV42/iOs6QkA==} - - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - property-expr@2.0.6: resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} @@ -2434,11 +2434,6 @@ packages: peerDependencies: svelte: ^3.19.0 || ^4.0.0 - svelte-legos@0.2.2: - resolution: {integrity: sha512-HTVkCIqhrxdy+OpXjxGr/4xIJEGv4d2cRQwTjm0SYfLw/YF1I1l/TQR59nb2WvjccnO8TNFNTvAWP5pgXQnU+w==} - peerDependencies: - svelte: ^4.0.0 - svelte-preprocess@5.1.3: resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} engines: {node: '>= 16.0.0', pnpm: ^8.0.0} @@ -2663,6 +2658,11 @@ packages: resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} engines: {node: '>= 0.10'} + vaul-svelte@0.3.0: + resolution: {integrity: sha512-+PBfKDWl+xfloe8Tm1G8x3TqbCiUWoyUedU2WC5iE3v6LOYPKo8FyEtzNC5ZqFVVnUKSKNg+4Fi73nuzMkT7JA==} + peerDependencies: + svelte: ^4.0.0 + vite-node@1.4.0: resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -3184,6 +3184,16 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 + '@melt-ui/svelte@0.68.0(svelte@4.2.12)': + dependencies: + '@floating-ui/core': 1.6.0 + '@floating-ui/dom': 1.6.3 + '@internationalized/date': 3.5.2 + dequal: 2.0.3 + focus-trap: 7.5.4 + nanoid: 5.0.7 + svelte: 4.2.12 + '@melt-ui/svelte@0.76.2(svelte@4.2.12)': dependencies: '@floating-ui/core': 1.6.0 @@ -3282,14 +3292,14 @@ snapshots: '@sodaru/yup-to-json-schema@2.0.1': optional: true - '@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))': + '@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8))': dependencies: - '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)) + '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8) import-meta-resolve: 4.0.0 - '@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55))': + '@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8)': dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.8) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 4.3.2 @@ -3303,7 +3313,7 @@ snapshots: sirv: 2.0.4 svelte: 4.2.12 tiny-glob: 0.2.9 - vite: 5.2.8(@types/node@12.20.55) + vite: 5.2.8 '@sveltejs/package@2.3.1(svelte@4.2.12)(typescript@5.4.4)': dependencies: @@ -3316,26 +3326,26 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55))': + '@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8)': dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.8) debug: 4.3.4 svelte: 4.2.12 - vite: 5.2.8(@types/node@12.20.55) + vite: 5.2.8 transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55))': + '@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8)': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)) + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.9 svelte: 4.2.12 svelte-hmr: 0.15.3(svelte@4.2.12) - vite: 5.2.8(@types/node@12.20.55) - vitefu: 0.2.5(vite@5.2.8(@types/node@12.20.55)) + vite: 5.2.8 + vitefu: 0.2.5(vite@5.2.8) transitivePeerDependencies: - supports-color @@ -3609,7 +3619,14 @@ snapshots: binary-extensions@2.3.0: {} - bits-ui@0.21.3(svelte@4.2.12): + bits-ui@0.16.0(svelte@4.2.12): + dependencies: + '@internationalized/date': 3.5.2 + '@melt-ui/svelte': 0.68.0(svelte@4.2.12) + nanoid: 5.0.7 + svelte: 4.2.12 + + bits-ui@0.21.7(svelte@4.2.12): dependencies: '@internationalized/date': 3.5.2 '@melt-ui/svelte': 0.76.2(svelte@4.2.12) @@ -3669,8 +3686,6 @@ snapshots: caniuse-lite@1.0.30001605: {} - canvas-confetti@1.9.3: {} - chai@4.4.1: dependencies: assertion-error: 1.1.0 @@ -4177,11 +4192,11 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - formsnap@1.0.0(svelte@4.2.12)(sveltekit-superforms@2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12)): + formsnap@1.0.0(svelte@4.2.12)(sveltekit-superforms@2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12)): dependencies: nanoid: 5.0.7 svelte: 4.2.12 - sveltekit-superforms: 2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12) + sveltekit-superforms: 2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12) fraction.js@4.3.7: {} @@ -4938,10 +4953,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.2.0 - prism-svelte@0.5.0: {} - - prismjs@1.29.0: {} - property-expr@2.0.6: optional: true @@ -5296,13 +5307,6 @@ snapshots: dependencies: svelte: 4.2.12 - svelte-legos@0.2.2(svelte@4.2.12): - dependencies: - canvas-confetti: 1.9.3 - prism-svelte: 0.5.0 - prismjs: 1.29.0 - svelte: 4.2.12 - svelte-preprocess@5.1.3(postcss-load-config@5.0.3(jiti@1.21.0)(postcss@8.4.38))(postcss@8.4.38)(svelte@4.2.12)(typescript@5.4.4): dependencies: '@types/pug': 2.0.10 @@ -5344,9 +5348,9 @@ snapshots: magic-string: 0.30.9 periscopic: 3.1.0 - sveltekit-superforms@2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12): + sveltekit-superforms@2.12.5(@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8))(@types/json-schema@7.0.15)(esbuild@0.20.2)(svelte@4.2.12): dependencies: - '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)))(svelte@4.2.12)(vite@5.2.8(@types/node@12.20.55)) + '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8))(svelte@4.2.12)(vite@5.2.8) devalue: 4.3.2 just-clone: 6.2.0 memoize-weak: 1.0.2 @@ -5553,13 +5557,18 @@ snapshots: validator@13.11.0: optional: true - vite-node@1.4.0(@types/node@12.20.55): + vaul-svelte@0.3.0(svelte@4.2.12): + dependencies: + bits-ui: 0.16.0(svelte@4.2.12) + svelte: 4.2.12 + + vite-node@1.4.0: dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.8(@types/node@12.20.55) + vite: 5.2.8 transitivePeerDependencies: - '@types/node' - less @@ -5570,20 +5579,19 @@ snapshots: - supports-color - terser - vite@5.2.8(@types/node@12.20.55): + vite@5.2.8: dependencies: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.14.0 optionalDependencies: - '@types/node': 12.20.55 fsevents: 2.3.3 - vitefu@0.2.5(vite@5.2.8(@types/node@12.20.55)): + vitefu@0.2.5(vite@5.2.8): optionalDependencies: - vite: 5.2.8(@types/node@12.20.55) + vite: 5.2.8 - vitest@1.4.0(@types/node@12.20.55): + vitest@1.4.0: dependencies: '@vitest/expect': 1.4.0 '@vitest/runner': 1.4.0 @@ -5602,11 +5610,9 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.6.0 tinypool: 0.8.3 - vite: 5.2.8(@types/node@12.20.55) - vite-node: 1.4.0(@types/node@12.20.55) + vite: 5.2.8 + vite-node: 1.4.0 why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 12.20.55 transitivePeerDependencies: - less - lightningcss diff --git a/scripts/package.js b/scripts/package.js index 0c87d3a..6c8687e 100644 --- a/scripts/package.js +++ b/scripts/package.js @@ -3,7 +3,9 @@ /** * This script is a modified version of the `package` script from the SvelteKit package. * - * It's purpose is to log emitted diagnostics when generating d.ts files, in order to be able to debug issues with the generated types. + * It's purpose is to log emitted diagnostics when generating `.d.ts` files, in order to be able to debug issues with the generated types. + * + * Usage: `node scripts/package.js` */ // @ts-check @@ -15,6 +17,7 @@ import { preprocess } from 'svelte/compiler'; import { svelte2tsx } from 'svelte2tsx'; import ts from 'typescript'; +// Those imports needs to be relative to the script file and manully resolved since they resolve to internal components that are not exposed by the package. import { load_config as loadConfig } from '../node_modules/@sveltejs/package/src/config.js'; import { copy, @@ -602,11 +605,7 @@ async function saveEmitResult(result) { } console.error( - `File "${diagnostic.file.fileName}" had the following issue:\n`, - diagnostic.messageText, - '\n', - diagnostic.file.text, - '\n', + `- File "${diagnostic.file.fileName}" had the following issue: ${diagnostic.messageText}`, ); } } diff --git a/src/lib/components/alert-dialog/AlertDialogAction.svelte b/src/lib/components/alert-dialog/AlertDialogAction.svelte index f7f9c68..a7d55d4 100644 --- a/src/lib/components/alert-dialog/AlertDialogAction.svelte +++ b/src/lib/components/alert-dialog/AlertDialogAction.svelte @@ -4,7 +4,9 @@ import { tv, type VariantProps } from 'tailwind-variants'; import { styles as buttonStyles } from '$lib/components/button/index.js'; - import type { ComponentSlots, Events } from '$lib/utils/types.js'; + import type { ComponentInfo } from '$lib/utils/types.js'; + + type Primitive = ComponentInfo; /** * The attributes of the action. @@ -13,7 +15,7 @@ /** * The props of the action. */ - export type Props = Omit & { + export type Props = Omit & { /** * The size of the action. * @@ -34,7 +36,7 @@ /** * The slots of the action. */ - export type Slots = ComponentSlots; + export type Slots = Primitive['slots']; /** * The variant of the action. */ @@ -65,7 +67,7 @@ @@ -70,8 +74,8 @@ - - + + - + diff --git a/src/lib/components/alert-dialog/AlertDialogDescription.svelte b/src/lib/components/alert-dialog/AlertDialogDescription.svelte index 2abced9..4a2c2bc 100644 --- a/src/lib/components/alert-dialog/AlertDialogDescription.svelte +++ b/src/lib/components/alert-dialog/AlertDialogDescription.svelte @@ -3,7 +3,9 @@ import type { SvelteHTMLElements } from 'svelte/elements'; import { tv } from 'tailwind-variants'; - import type { ComponentSlots, Events } from '$lib/utils/types.js'; + import type { ComponentInfo } from '$lib/utils/types.js'; + + type Primitive = ComponentInfo; /** * The attributes of the description. @@ -12,11 +14,11 @@ /** * The props of the description. */ - export type Props = Omit; + export type Props = Omit; /** * The slots of the description. */ - export type Slots = ComponentSlots; + export type Slots = Primitive['slots']; /** * The styles of the description. @@ -27,7 +29,7 @@ - type $$Events = Events; + type $$Events = Primitive['events']; type $$Props = Attributes & TypedProps; type $$Slots = Slots; type TypedProps = Props; diff --git a/src/lib/components/collapsible/CollapsibleRoot.svelte b/src/lib/components/collapsible/CollapsibleRoot.svelte index 3df482e..465d873 100644 --- a/src/lib/components/collapsible/CollapsibleRoot.svelte +++ b/src/lib/components/collapsible/CollapsibleRoot.svelte @@ -3,7 +3,9 @@ import type { SvelteHTMLElements } from 'svelte/elements'; import { tv } from 'tailwind-variants'; - import type { ComponentSlots, Events } from '$lib/utils/types.js'; + import type { ComponentInfo } from '$lib/utils/types.js'; + + type Primitive = ComponentInfo; /** * The attributes of the root. @@ -12,11 +14,11 @@ /** * The props of the root. */ - export type Props = Omit; + export type Props = Omit; /** * The slots of the root. */ - export type Slots = ComponentSlots; + export type Slots = Primitive['slots']; /** * The styles of the root. @@ -27,7 +29,7 @@ + + + + + + + + diff --git a/src/lib/components/dialog/DialogContent.svelte b/src/lib/components/dialog/DialogContent.svelte new file mode 100644 index 0000000..042172c --- /dev/null +++ b/src/lib/components/dialog/DialogContent.svelte @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + Close + + + diff --git a/src/lib/components/dialog/DialogDescription.svelte b/src/lib/components/dialog/DialogDescription.svelte new file mode 100644 index 0000000..638f72b --- /dev/null +++ b/src/lib/components/dialog/DialogDescription.svelte @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/src/lib/components/dialog/DialogFooter.svelte b/src/lib/components/dialog/DialogFooter.svelte new file mode 100644 index 0000000..f76d7a8 --- /dev/null +++ b/src/lib/components/dialog/DialogFooter.svelte @@ -0,0 +1,53 @@ + + + + + + +
+ +
diff --git a/src/lib/components/dialog/DialogHeader.svelte b/src/lib/components/dialog/DialogHeader.svelte new file mode 100644 index 0000000..706103c --- /dev/null +++ b/src/lib/components/dialog/DialogHeader.svelte @@ -0,0 +1,53 @@ + + + + + + +
+ +
diff --git a/src/lib/components/dialog/DialogOverlay.svelte b/src/lib/components/dialog/DialogOverlay.svelte new file mode 100644 index 0000000..5ecd7c6 --- /dev/null +++ b/src/lib/components/dialog/DialogOverlay.svelte @@ -0,0 +1,88 @@ + + + + + + + diff --git a/src/lib/components/dialog/DialogPortal.svelte b/src/lib/components/dialog/DialogPortal.svelte new file mode 100644 index 0000000..4041dbc --- /dev/null +++ b/src/lib/components/dialog/DialogPortal.svelte @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/src/lib/components/dialog/DialogRoot.svelte b/src/lib/components/dialog/DialogRoot.svelte new file mode 100644 index 0000000..49d3b8a --- /dev/null +++ b/src/lib/components/dialog/DialogRoot.svelte @@ -0,0 +1,56 @@ + + + + + + + + + diff --git a/src/lib/components/dialog/DialogTitle.svelte b/src/lib/components/dialog/DialogTitle.svelte new file mode 100644 index 0000000..c45972d --- /dev/null +++ b/src/lib/components/dialog/DialogTitle.svelte @@ -0,0 +1,63 @@ + + + + + + + + + diff --git a/src/lib/components/dialog/DialogTrigger.svelte b/src/lib/components/dialog/DialogTrigger.svelte new file mode 100644 index 0000000..4482088 --- /dev/null +++ b/src/lib/components/dialog/DialogTrigger.svelte @@ -0,0 +1,54 @@ + + + + + + + + + diff --git a/src/lib/components/dialog/index.ts b/src/lib/components/dialog/index.ts new file mode 100644 index 0000000..1875c6e --- /dev/null +++ b/src/lib/components/dialog/index.ts @@ -0,0 +1,69 @@ +export { + default as Close, + styles as closeStyles, + type Attributes as CloseAttributes, + type Props as CloseProps, + type Slots as CloseSlots, +} from './DialogClose.svelte'; +export { + default as Content, + styles as contentStyles, + type Attributes as ContentAttributes, + type Props as ContentProps, + type Slots as ContentSlots, +} from './DialogContent.svelte'; +export { + default as Description, + styles as descriptionStyles, + type Attributes as DescriptionAttributes, + type Props as DescriptionProps, + type Slots as DescriptionSlots, +} from './DialogDescription.svelte'; +export { + default as Footer, + styles as footerStyles, + type Attributes as FooterAttributes, + type Props as FooterProps, + type Slots as FooterSlots, +} from './DialogFooter.svelte'; +export { + default as Header, + styles as headerStyles, + type Attributes as HeaderAttributes, + type Props as HeaderProps, + type Slots as HeaderSlots, +} from './DialogHeader.svelte'; +export { + default as Overlay, + styles as overlayStyles, + type Attributes as OverlayAttributes, + type Props as OverlayProps, + type Slots as OverlaySlots, +} from './DialogOverlay.svelte'; +export { + default as Portal, + styles as portalStyles, + type Attributes as PortalAttributes, + type Props as PortalProps, + type Slots as PortalSlots, +} from './DialogPortal.svelte'; +export { + default as Root, + type Attributes as RootAttributes, + type Props as RootProps, + type Slots as RootSlots, +} from './DialogRoot.svelte'; +export { + default as Title, + styles as titleStyles, + type Attributes as TitleAttributes, + type Props as TitleProps, + type Slots as TitleSlots, +} from './DialogTitle.svelte'; +export { + default as Trigger, + styles as triggerStyles, + type Attributes as TriggerAttributes, + type Props as TriggerProps, + type Slots as TriggerSlots, +} from './DialogTrigger.svelte'; diff --git a/src/lib/components/drawer/DrawerClose.svelte b/src/lib/components/drawer/DrawerClose.svelte new file mode 100644 index 0000000..b2a5174 --- /dev/null +++ b/src/lib/components/drawer/DrawerClose.svelte @@ -0,0 +1,63 @@ + + + + + + + + + diff --git a/src/lib/components/drawer/DrawerContent.svelte b/src/lib/components/drawer/DrawerContent.svelte new file mode 100644 index 0000000..5ea2794 --- /dev/null +++ b/src/lib/components/drawer/DrawerContent.svelte @@ -0,0 +1,111 @@ + + + + + + + + + + +
+ + +
+
diff --git a/src/lib/components/drawer/DrawerDescription.svelte b/src/lib/components/drawer/DrawerDescription.svelte new file mode 100644 index 0000000..638f72b --- /dev/null +++ b/src/lib/components/drawer/DrawerDescription.svelte @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/src/lib/components/drawer/DrawerFooter.svelte b/src/lib/components/drawer/DrawerFooter.svelte new file mode 100644 index 0000000..89e1303 --- /dev/null +++ b/src/lib/components/drawer/DrawerFooter.svelte @@ -0,0 +1,53 @@ + + + + + + +
+ +
diff --git a/src/lib/components/drawer/DrawerHeader.svelte b/src/lib/components/drawer/DrawerHeader.svelte new file mode 100644 index 0000000..9c97fef --- /dev/null +++ b/src/lib/components/drawer/DrawerHeader.svelte @@ -0,0 +1,53 @@ + + + + + + +
+ +
diff --git a/src/lib/components/drawer/DrawerNestedRoot.svelte b/src/lib/components/drawer/DrawerNestedRoot.svelte new file mode 100644 index 0000000..6daf96a --- /dev/null +++ b/src/lib/components/drawer/DrawerNestedRoot.svelte @@ -0,0 +1,79 @@ + + + + + + + + + diff --git a/src/lib/components/drawer/DrawerOverlay.svelte b/src/lib/components/drawer/DrawerOverlay.svelte new file mode 100644 index 0000000..b7224e4 --- /dev/null +++ b/src/lib/components/drawer/DrawerOverlay.svelte @@ -0,0 +1,64 @@ + + + + + + + diff --git a/src/lib/components/drawer/DrawerPortal.svelte b/src/lib/components/drawer/DrawerPortal.svelte new file mode 100644 index 0000000..279400b --- /dev/null +++ b/src/lib/components/drawer/DrawerPortal.svelte @@ -0,0 +1,56 @@ + + + + + + + + + diff --git a/src/lib/components/drawer/DrawerRoot.svelte b/src/lib/components/drawer/DrawerRoot.svelte new file mode 100644 index 0000000..caa2f63 --- /dev/null +++ b/src/lib/components/drawer/DrawerRoot.svelte @@ -0,0 +1,79 @@ + + + + + + + + + diff --git a/src/lib/components/drawer/DrawerTitle.svelte b/src/lib/components/drawer/DrawerTitle.svelte new file mode 100644 index 0000000..c45972d --- /dev/null +++ b/src/lib/components/drawer/DrawerTitle.svelte @@ -0,0 +1,63 @@ + + + + + + + + + diff --git a/src/lib/components/drawer/DrawerTrigger.svelte b/src/lib/components/drawer/DrawerTrigger.svelte new file mode 100644 index 0000000..493a03a --- /dev/null +++ b/src/lib/components/drawer/DrawerTrigger.svelte @@ -0,0 +1,60 @@ + + + + + + + + + diff --git a/src/lib/components/drawer/index.ts b/src/lib/components/drawer/index.ts new file mode 100644 index 0000000..b491424 --- /dev/null +++ b/src/lib/components/drawer/index.ts @@ -0,0 +1,75 @@ +export { + default as Close, + styles as closeStyles, + type Attributes as CloseAttributes, + type Props as CloseProps, + type Slots as CloseSlots, +} from './DrawerClose.svelte'; +export { + default as Content, + styles as contentStyles, + type Attributes as ContentAttributes, + type Props as ContentProps, + type Slots as ContentSlots, +} from './DrawerContent.svelte'; +export { + default as Description, + styles as descriptionStyles, + type Attributes as DescriptionAttributes, + type Props as DescriptionProps, + type Slots as DescriptionSlots, +} from './DrawerDescription.svelte'; +export { + default as Footer, + styles as footerStyles, + type Attributes as FooterAttributes, + type Props as FooterProps, + type Slots as FooterSlots, +} from './DrawerFooter.svelte'; +export { + default as Header, + styles as headerStyles, + type Attributes as HeaderAttributes, + type Props as HeaderProps, + type Slots as HeaderSlots, +} from './DrawerHeader.svelte'; +export { + default as NestedRoot, + type Attributes as NestedRootAttributes, + type Props as NestedRootProps, + type Slots as NestedRootSlots, +} from './DrawerNestedRoot.svelte'; +export { + default as Overlay, + styles as overlayStyles, + type Attributes as OverlayAttributes, + type Props as OverlayProps, + type Slots as OverlaySlots, +} from './DrawerOverlay.svelte'; +export { + default as Portal, + styles as portalStyles, + type Attributes as PortalAttributes, + type Props as PortalProps, + type Slots as PortalSlots, +} from './DrawerPortal.svelte'; +export { + default as Root, + type Attributes as RootAttributes, + type Props as RootProps, + type Slots as RootSlots, +} from './DrawerRoot.svelte'; +export { + default as Title, + styles as titleStyles, + type Attributes as TitleAttributes, + type Props as TitleProps, + type Slots as TitleSlots, +} from './DrawerTitle.svelte'; +export { + default as Trigger, + styles as triggerStyles, + type Attributes as TriggerAttributes, + type Props as TriggerProps, + type Slots as TriggerSlots, +} from './DrawerTrigger.svelte'; diff --git a/src/lib/components/dropdown-menu/DropdownMenuCheckboxItem.svelte b/src/lib/components/dropdown-menu/DropdownMenuCheckboxItem.svelte index 86e1ae7..2551880 100644 --- a/src/lib/components/dropdown-menu/DropdownMenuCheckboxItem.svelte +++ b/src/lib/components/dropdown-menu/DropdownMenuCheckboxItem.svelte @@ -4,7 +4,9 @@ import type { SvelteHTMLElements } from 'svelte/elements'; import { tv } from 'tailwind-variants'; - import type { ComponentSlots, Events } from '$lib/utils/types.js'; + import type { ComponentInfo } from '$lib/utils/types.js'; + + type Primitive = ComponentInfo; /** * The attributes of the checkbox item. @@ -13,11 +15,11 @@ /** * The props of the checkbox item. */ - export type Props = Omit; + export type Props = Omit; /** * The slots of the checkbox item. */ - export type Slots = ComponentSlots; + export type Slots = Primitive['slots']; /** * The styles of the checkbox item. @@ -32,7 +34,7 @@ - - - @@ -49,11 +52,9 @@ " lang="ts" > - type $$Events = Events< - Omit & { - keydown: ElementEvent; // TODO change once bits-ui is updated - } - >; + type $$Events = Omit & { + keydown: ElementEvent; // TODO change once bits-ui is updated + }; type $$Props = Attributes & TypedProps; type $$Slots = Slots; type TypedProps = Props; diff --git a/src/lib/components/select/SelectGroup.svelte b/src/lib/components/select/SelectGroup.svelte index d347a5e..5573e37 100644 --- a/src/lib/components/select/SelectGroup.svelte +++ b/src/lib/components/select/SelectGroup.svelte @@ -3,7 +3,9 @@ import type { SvelteHTMLElements } from 'svelte/elements'; import { tv } from 'tailwind-variants'; - import type { ComponentSlots, Events } from '$lib/utils/types.js'; + import type { ComponentInfo } from '$lib/utils/types.js'; + + type Primitive = ComponentInfo; /** * The attributes of the group. @@ -12,11 +14,11 @@ /** * The props of the group. */ - export type Props = Omit; + export type Props = Omit; /** * The slots of the group. */ - export type Slots = ComponentSlots; + export type Slots = Primitive['slots']; /** * The styles of the group. @@ -27,7 +29,7 @@ diff --git a/src/routes/alert/+page.svelte b/src/routes/alert/+page.svelte index 99c17a1..c6fe013 100644 --- a/src/routes/alert/+page.svelte +++ b/src/routes/alert/+page.svelte @@ -10,9 +10,11 @@ import Separator from '$lib/components/separator/index.js'; const adapter = zod( - z.object({ - variant: z.enum(Alert.variants).default(Alert.defaultVariant).optional(), - }), + z + .object({ + variant: z.enum(Alert.variants).default(Alert.defaultVariant), + }) + .partial(), ); diff --git a/src/routes/button/+page.svelte b/src/routes/button/+page.svelte index 32ecf4d..f28e799 100644 --- a/src/routes/button/+page.svelte +++ b/src/routes/button/+page.svelte @@ -15,11 +15,13 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - disabled: z.boolean().default(false).optional(), - size: z.enum(sizes).default(defaultSize).optional(), - variant: z.enum(variants).default(defaultVariant).optional(), - }), + z + .object({ + disabled: z.boolean().default(false), + size: z.enum(sizes).default(defaultSize), + variant: z.enum(variants).default(defaultVariant), + }) + .partial(), ); diff --git a/src/routes/calendar/+page.svelte b/src/routes/calendar/+page.svelte index d5c6c81..15ad59a 100644 --- a/src/routes/calendar/+page.svelte +++ b/src/routes/calendar/+page.svelte @@ -11,27 +11,28 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - disabled: z.boolean().default(false).optional(), - fixedWeeks: z.boolean().default(false).optional(), - numberOfMonths: z.number().int().min(1).default(1).optional(), - pagedNavigation: z.boolean().default(false).optional(), - preventDeselect: z.boolean().default(false).optional(), - readonly: z.boolean().default(false).optional(), - weekStartsOn: z - .union([ - z.literal(0), - z.literal(1), - z.literal(2), - z.literal(3), - z.literal(4), - z.literal(5), - z.literal(6), - ]) - .default(0) - .optional(), - weekdayFormat: z.enum(['long', 'narrow', 'short']).default('narrow').optional(), - }), + z + .object({ + disabled: z.boolean().default(false), + fixedWeeks: z.boolean().default(false), + numberOfMonths: z.number().int().min(1).default(1), + pagedNavigation: z.boolean().default(false), + preventDeselect: z.boolean().default(false), + readonly: z.boolean().default(false), + weekStartsOn: z + .union([ + z.literal(0), + z.literal(1), + z.literal(2), + z.literal(3), + z.literal(4), + z.literal(5), + z.literal(6), + ]) + .default(0), + weekdayFormat: z.enum(['long', 'narrow', 'short']).default('narrow'), + }) + .partial(), ); diff --git a/src/routes/collapsible/+page.svelte b/src/routes/collapsible/+page.svelte index b9f9c45..57b6cca 100644 --- a/src/routes/collapsible/+page.svelte +++ b/src/routes/collapsible/+page.svelte @@ -10,10 +10,12 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - disabled: z.boolean().default(false).optional(), - open: z.boolean().default(false).optional(), - }), + z + .object({ + disabled: z.boolean().default(false), + open: z.boolean().default(false), + }) + .partial(), ); diff --git a/src/routes/container/+page.svelte b/src/routes/container/+page.svelte index fd9f707..78cb0fb 100644 --- a/src/routes/container/+page.svelte +++ b/src/routes/container/+page.svelte @@ -9,10 +9,12 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - xAxis: z.boolean().default(false).optional(), - yAxis: z.boolean().default(false).optional(), - }), + z + .object({ + xAxis: z.boolean().default(false), + yAxis: z.boolean().default(false), + }) + .partial(), ); diff --git a/src/routes/dialog/+page.svelte b/src/routes/dialog/+page.svelte new file mode 100644 index 0000000..8c97f74 --- /dev/null +++ b/src/routes/dialog/+page.svelte @@ -0,0 +1,135 @@ + + + + + + + + + + Close on escape + + + + + + If true, the dialog will close when the user presses the escape key. + + + + + + + + Close on outside click + + + + + + If true, the dialog will close when the user clicks outside of it. + + + + + + + + Open + + + + + + The open state of the Dialog. You can bind to this value to programatically open/close the + Dialog. + + + + + + + + Prevent scroll + + + + + + If true, the dialog will prevent scrolling on the body when it is open. + + + + + + + + + + + + + + + + Edit profile + + + Make changes to your profile here. Click save when you're done. + + + +
+
+ + + +
+ +
+ + + +
+
+ + + + +
+
diff --git a/src/routes/drawer/+page.svelte b/src/routes/drawer/+page.svelte new file mode 100644 index 0000000..7a51b0c --- /dev/null +++ b/src/routes/drawer/+page.svelte @@ -0,0 +1,153 @@ + + + + + + + + + + Close on escape + + + + + + If true, the dialog will close when the user presses the escape key. + + + + + + + + Close on outside click + + + + + + If true, the dialog will close when the user clicks outside of it. + + + + + + + + Open + + + + + + The open state of the Drawer. You can bind to this value to programatically open/close the + Drawer. + + + + + + + + + + + + + + +
+ + Move Goal + + Set your daily activity goal. + + +
+
+ + +
+
+ {goal} +
+ +
Calories/day
+
+ + +
+
+ + + + + + + + +
+
+
diff --git a/src/routes/dropdown-menu/+page.svelte b/src/routes/dropdown-menu/+page.svelte index 05182cb..052f1e7 100644 --- a/src/routes/dropdown-menu/+page.svelte +++ b/src/routes/dropdown-menu/+page.svelte @@ -25,17 +25,19 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - closeOnEscape: z.boolean().default(true).optional(), - closeOnItemClick: z.boolean().default(true).optional(), - closeOnOutsideClick: z.boolean().default(true).optional(), - dir: z.enum(DropdownMenu.rootDirs).default(DropdownMenu.rootDefaultDir).optional(), - disableFocusFirstItem: z.boolean().default(false).optional(), - loop: z.boolean().default(false).optional(), - open: z.boolean().default(false).optional(), - preventScroll: z.boolean().default(true).optional(), - typeahead: z.boolean().default(true).optional(), - }), + z + .object({ + closeOnEscape: z.boolean().default(true), + closeOnItemClick: z.boolean().default(true), + closeOnOutsideClick: z.boolean().default(true), + dir: z.enum(DropdownMenu.rootDirs).default(DropdownMenu.rootDefaultDir), + disableFocusFirstItem: z.boolean().default(false), + loop: z.boolean().default(false), + open: z.boolean().default(false), + preventScroll: z.boolean().default(true), + typeahead: z.boolean().default(true), + }) + .partial(), ); diff --git a/src/routes/form/+page.svelte b/src/routes/form/+page.svelte index e87a317..28f3f18 100644 --- a/src/routes/form/+page.svelte +++ b/src/routes/form/+page.svelte @@ -9,9 +9,11 @@ import Switch from '$lib/components/switch/index.js'; const adapter1 = zod( - z.object({ - debug: z.boolean().default(false).optional(), - }), + z + .object({ + debug: z.boolean().default(false), + }) + .partial(), ); const adapter2 = zod( z.object({ diff --git a/src/routes/input/+page.svelte b/src/routes/input/+page.svelte index 74f0751..e03e90a 100644 --- a/src/routes/input/+page.svelte +++ b/src/routes/input/+page.svelte @@ -10,11 +10,13 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - disabled: z.boolean().default(false).optional(), - placeholder: z.string().default('').optional(), - variant: z.enum(variants).default('text'), - }), + z + .object({ + disabled: z.boolean().default(false), + placeholder: z.string().default(''), + variant: z.enum(variants).default('text'), + }) + .partial(), ); @@ -64,7 +66,7 @@ value: variant, }))}" onSelectedChange="{(selected) => { - $superFormData.variant = selected?.value ?? 'text'; + $superFormData.variant = selected?.value; }}" portal="{null}" selected="{$superFormData.variant !== undefined @@ -101,5 +103,5 @@ diff --git a/src/routes/pagination/+page.svelte b/src/routes/pagination/+page.svelte index 46955c4..95a9a9a 100644 --- a/src/routes/pagination/+page.svelte +++ b/src/routes/pagination/+page.svelte @@ -11,12 +11,14 @@ import * as Pagination from '$lib/components/pagination/index.js'; const adapter = zod( - z.object({ - count: z.number().int().min(0).default(20), - perPage: z.number().int().min(1).default(10).optional(), - page: z.number().int().min(1).default(1).optional(), - siblingCount: z.number().int().min(1).default(1).optional(), - }), + z + .object({ + count: z.number().int().min(0).default(20), + perPage: z.number().int().min(1).default(10), + page: z.number().int().min(1).default(1), + siblingCount: z.number().int().min(1).default(1), + }) + .partial(), ); @@ -115,7 +117,7 @@ diff --git a/src/routes/select/+page.svelte b/src/routes/select/+page.svelte index 6e27270..16ec274 100644 --- a/src/routes/select/+page.svelte +++ b/src/routes/select/+page.svelte @@ -10,14 +10,16 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - closeOnEscape: z.boolean().default(true).optional(), - closeOnOutsideClick: z.boolean().default(true).optional(), - disabled: z.boolean().default(false).optional(), - loop: z.boolean().default(false).optional(), - open: z.boolean().default(false).optional(), - preventScroll: z.boolean().default(false).optional(), - }), + z + .object({ + closeOnEscape: z.boolean().default(true), + closeOnOutsideClick: z.boolean().default(true), + disabled: z.boolean().default(false), + loop: z.boolean().default(false), + open: z.boolean().default(false), + preventScroll: z.boolean().default(false), + }) + .partial(), ); const fruits = ['apple', 'banana', 'blueberry', 'grapes', 'pineapple']; diff --git a/src/routes/separator/+page.svelte b/src/routes/separator/+page.svelte index a271dc1..580c6aa 100644 --- a/src/routes/separator/+page.svelte +++ b/src/routes/separator/+page.svelte @@ -8,9 +8,11 @@ import Separator, { defaultOrientation, orientations } from '$lib/components/separator/index.js'; const adapter = zod( - z.object({ - orientation: z.enum(orientations).default(defaultOrientation).optional(), - }), + z + .object({ + orientation: z.enum(orientations).default(defaultOrientation), + }) + .partial(), ); diff --git a/src/routes/sonner/+page.svelte b/src/routes/sonner/+page.svelte index 8f9f93f..9d4f627 100644 --- a/src/routes/sonner/+page.svelte +++ b/src/routes/sonner/+page.svelte @@ -20,19 +20,21 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - closeButton: z.boolean().default(false).optional(), - dir: z.enum(dirs).default(defaultDir).optional(), - duration: z.number().int().default(4000).optional(), - expand: z.boolean().default(false).optional(), - gap: z.number().int().default(14).optional(), - invert: z.boolean().default(false).optional(), - offset: z.number().int().default(32).optional(), - position: z.enum(positions).default(defaultPosition).optional(), - richColors: z.boolean().default(false).optional(), - theme: z.enum(themes).default(defaultTheme).optional(), - visibleToasts: z.number().int().default(3).optional(), - }), + z + .object({ + closeButton: z.boolean().default(false), + dir: z.enum(dirs).default(defaultDir), + duration: z.number().int().default(4000), + expand: z.boolean().default(false), + gap: z.number().int().default(14), + invert: z.boolean().default(false), + offset: z.number().int().default(32), + position: z.enum(positions).default(defaultPosition), + richColors: z.boolean().default(false), + theme: z.enum(themes).default(defaultTheme), + visibleToasts: z.number().int().default(3), + }) + .partial(), ); diff --git a/src/routes/switch/+page.svelte b/src/routes/switch/+page.svelte index c371d54..0664062 100644 --- a/src/routes/switch/+page.svelte +++ b/src/routes/switch/+page.svelte @@ -8,10 +8,12 @@ import Switch from '$lib/components/switch/index.js'; const adapter = zod( - z.object({ - checked: z.boolean().default(false).optional(), - disabled: z.boolean().default(false).optional(), - }), + z + .object({ + checked: z.boolean().default(false), + disabled: z.boolean().default(false), + }) + .partial(), ); diff --git a/src/routes/tabs/+page.svelte b/src/routes/tabs/+page.svelte index 6c2e8f2..9b180bc 100644 --- a/src/routes/tabs/+page.svelte +++ b/src/routes/tabs/+page.svelte @@ -14,11 +14,13 @@ import * as Tabs from '$lib/components/tabs/index.js'; const adapter = zod( - z.object({ - activateOnFocus: z.boolean().default(true).optional(), - loop: z.boolean().default(false).optional(), - orientation: z.enum(Tabs.rootOrientations).default(Tabs.rootDefaultOrientation).optional(), - }), + z + .object({ + activateOnFocus: z.boolean().default(true), + loop: z.boolean().default(false), + orientation: z.enum(Tabs.rootOrientations).default(Tabs.rootDefaultOrientation), + }) + .partial(), ); diff --git a/src/routes/textarea/+page.svelte b/src/routes/textarea/+page.svelte index d93fa3a..4ec586d 100644 --- a/src/routes/textarea/+page.svelte +++ b/src/routes/textarea/+page.svelte @@ -9,11 +9,13 @@ import Textarea from '$lib/components/textarea/index.js'; const adapter = zod( - z.object({ - disabled: z.boolean().default(false).optional(), - placeholder: z.string().default('').optional(), - readonly: z.boolean().default(false).optional(), - }), + z + .object({ + disabled: z.boolean().default(false), + placeholder: z.string().default(''), + readonly: z.boolean().default(false), + }) + .partial(), ); diff --git a/src/routes/tooltip/+page.svelte b/src/routes/tooltip/+page.svelte index 9ead19e..1ed6d15 100644 --- a/src/routes/tooltip/+page.svelte +++ b/src/routes/tooltip/+page.svelte @@ -11,14 +11,16 @@ import * as Tooltip from '$lib/components/tooltip/index.js'; const adapter = zod( - z.object({ - closeDelay: z.number().min(0).default(0).optional(), - closeOnEscape: z.boolean().default(false).optional(), - closeOnPointerDown: z.boolean().default(false).optional(), - disableHoverableContent: z.boolean().default(false).optional(), - open: z.boolean().default(false).optional(), - openDelay: z.number().min(0).default(0).optional(), - }), + z + .object({ + closeDelay: z.number().min(0).default(0), + closeOnEscape: z.boolean().default(false), + closeOnPointerDown: z.boolean().default(false), + disableHoverableContent: z.boolean().default(false), + open: z.boolean().default(false), + openDelay: z.number().min(0).default(0), + }) + .partial(), ); diff --git a/src/routes/top-navigation/+page.svelte b/src/routes/top-navigation/+page.svelte index 1157588..2f35388 100644 --- a/src/routes/top-navigation/+page.svelte +++ b/src/routes/top-navigation/+page.svelte @@ -10,12 +10,11 @@ import * as TopNavigation from '$lib/components/top-navigation/index.js'; const adapter = zod( - z.object({ - breakpoint: z - .enum(TopNavigation.breakpoints) - .default(TopNavigation.defaultBreakpoint) - .optional(), - }), + z + .object({ + breakpoint: z.enum(TopNavigation.breakpoints).default(TopNavigation.defaultBreakpoint), + }) + .partial(), );