@pajohns/flowbite-svelte 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/License +22 -0
- package/README.md +471 -0
- package/dist/accordion/Accordion.svelte +58 -0
- package/dist/accordion/Accordion.svelte.d.ts +18 -0
- package/dist/accordion/AccordionItem.svelte +131 -0
- package/dist/accordion/AccordionItem.svelte.d.ts +23 -0
- package/dist/accordion/index.d.ts +3 -0
- package/dist/accordion/index.js +3 -0
- package/dist/accordion/theme.d.ts +96 -0
- package/dist/accordion/theme.js +59 -0
- package/dist/alert/Alert.svelte +94 -0
- package/dist/alert/Alert.svelte.d.ts +22 -0
- package/dist/alert/index.d.ts +2 -0
- package/dist/alert/index.js +2 -0
- package/dist/alert/theme.d.ts +108 -0
- package/dist/alert/theme.js +149 -0
- package/dist/avatar/Avatar.svelte +68 -0
- package/dist/avatar/Avatar.svelte.d.ts +24 -0
- package/dist/avatar/index.d.ts +2 -0
- package/dist/avatar/index.js +2 -0
- package/dist/avatar/theme.d.ts +63 -0
- package/dist/avatar/theme.js +31 -0
- package/dist/badge/Badge.svelte +98 -0
- package/dist/badge/Badge.svelte.d.ts +26 -0
- package/dist/badge/index.d.ts +2 -0
- package/dist/badge/index.js +2 -0
- package/dist/badge/theme.d.ts +247 -0
- package/dist/badge/theme.js +250 -0
- package/dist/banner/Banner.svelte +85 -0
- package/dist/banner/Banner.svelte.d.ts +24 -0
- package/dist/banner/index.d.ts +2 -0
- package/dist/banner/index.js +2 -0
- package/dist/banner/theme.d.ts +229 -0
- package/dist/banner/theme.js +45 -0
- package/dist/bottom-navigation/BottomNav.svelte +70 -0
- package/dist/bottom-navigation/BottomNav.svelte.d.ts +21 -0
- package/dist/bottom-navigation/BottomNavHeader.svelte +42 -0
- package/dist/bottom-navigation/BottomNavHeader.svelte.d.ts +16 -0
- package/dist/bottom-navigation/BottomNavHeaderItem.svelte +29 -0
- package/dist/bottom-navigation/BottomNavHeaderItem.svelte.d.ts +14 -0
- package/dist/bottom-navigation/BottomNavItem.svelte +94 -0
- package/dist/bottom-navigation/BottomNavItem.svelte.d.ts +20 -0
- package/dist/bottom-navigation/index.d.ts +5 -0
- package/dist/bottom-navigation/index.js +5 -0
- package/dist/bottom-navigation/theme.d.ts +349 -0
- package/dist/bottom-navigation/theme.js +113 -0
- package/dist/breadcrumb/Breadcrumb.svelte +44 -0
- package/dist/breadcrumb/Breadcrumb.svelte.d.ts +17 -0
- package/dist/breadcrumb/BreadcrumbItem.svelte +73 -0
- package/dist/breadcrumb/BreadcrumbItem.svelte.d.ts +20 -0
- package/dist/breadcrumb/index.d.ts +3 -0
- package/dist/breadcrumb/index.js +3 -0
- package/dist/breadcrumb/theme.d.ts +72 -0
- package/dist/breadcrumb/theme.js +57 -0
- package/dist/button-group/ButtonGroup.svelte +43 -0
- package/dist/button-group/ButtonGroup.svelte.d.ts +15 -0
- package/dist/button-group/index.d.ts +2 -0
- package/dist/button-group/index.js +2 -0
- package/dist/button-group/theme.d.ts +21 -0
- package/dist/button-group/theme.js +14 -0
- package/dist/buttons/Button.svelte +74 -0
- package/dist/buttons/Button.svelte.d.ts +22 -0
- package/dist/buttons/GradientButton.svelte +47 -0
- package/dist/buttons/GradientButton.svelte.d.ts +21 -0
- package/dist/buttons/index.d.ts +3 -0
- package/dist/buttons/index.js +3 -0
- package/dist/buttons/theme.d.ts +707 -0
- package/dist/buttons/theme.js +303 -0
- package/dist/card/Card.svelte +79 -0
- package/dist/card/Card.svelte.d.ts +21 -0
- package/dist/card/index.d.ts +2 -0
- package/dist/card/index.js +2 -0
- package/dist/card/theme.d.ts +403 -0
- package/dist/card/theme.js +186 -0
- package/dist/carousel/Carousel.svelte +242 -0
- package/dist/carousel/Carousel.svelte.d.ts +26 -0
- package/dist/carousel/CarouselIndicators.svelte +48 -0
- package/dist/carousel/CarouselIndicators.svelte.d.ts +16 -0
- package/dist/carousel/CarouselSlide.d.ts +5 -0
- package/dist/carousel/CarouselSlide.js +7 -0
- package/dist/carousel/ControlButton.svelte +47 -0
- package/dist/carousel/ControlButton.svelte.d.ts +16 -0
- package/dist/carousel/Controls.svelte +37 -0
- package/dist/carousel/Controls.svelte.d.ts +13 -0
- package/dist/carousel/Slide.svelte +55 -0
- package/dist/carousel/Slide.svelte.d.ts +15 -0
- package/dist/carousel/Thumbnail.svelte +23 -0
- package/dist/carousel/Thumbnail.svelte.d.ts +13 -0
- package/dist/carousel/Thumbnails.svelte +59 -0
- package/dist/carousel/Thumbnails.svelte.d.ts +17 -0
- package/dist/carousel/index.d.ts +8 -0
- package/dist/carousel/index.js +8 -0
- package/dist/carousel/theme.d.ts +142 -0
- package/dist/carousel/theme.js +68 -0
- package/dist/clipboard/Clipboard.svelte +58 -0
- package/dist/clipboard/Clipboard.svelte.d.ts +17 -0
- package/dist/clipboard/index.d.ts +2 -0
- package/dist/clipboard/index.js +2 -0
- package/dist/clipboard/theme.d.ts +18 -0
- package/dist/clipboard/theme.js +13 -0
- package/dist/clipboard-manager/ClipboardManager.svelte +496 -0
- package/dist/clipboard-manager/ClipboardManager.svelte.d.ts +4 -0
- package/dist/clipboard-manager/index.d.ts +2 -0
- package/dist/clipboard-manager/index.js +2 -0
- package/dist/clipboard-manager/theme.d.ts +169 -0
- package/dist/clipboard-manager/theme.js +73 -0
- package/dist/command-palette/CommandPalette.svelte +209 -0
- package/dist/command-palette/CommandPalette.svelte.d.ts +20 -0
- package/dist/command-palette/index.d.ts +1 -0
- package/dist/command-palette/index.js +1 -0
- package/dist/command-palette/theme.d.ts +43 -0
- package/dist/command-palette/theme.js +17 -0
- package/dist/context.d.ts +50 -0
- package/dist/context.js +71 -0
- package/dist/darkmode/DarkMode.svelte +75 -0
- package/dist/darkmode/DarkMode.svelte.d.ts +16 -0
- package/dist/darkmode/index.d.ts +2 -0
- package/dist/darkmode/index.js +2 -0
- package/dist/darkmode/theme.d.ts +1 -0
- package/dist/darkmode/theme.js +4 -0
- package/dist/datepicker/Datepicker.svelte +589 -0
- package/dist/datepicker/Datepicker.svelte.d.ts +42 -0
- package/dist/datepicker/index.d.ts +2 -0
- package/dist/datepicker/index.js +2 -0
- package/dist/datepicker/theme.d.ts +388 -0
- package/dist/datepicker/theme.js +57 -0
- package/dist/device-mockups/Android.svelte +60 -0
- package/dist/device-mockups/Android.svelte.d.ts +21 -0
- package/dist/device-mockups/DefaultMockup.svelte +57 -0
- package/dist/device-mockups/DefaultMockup.svelte.d.ts +20 -0
- package/dist/device-mockups/Desktop.svelte +51 -0
- package/dist/device-mockups/Desktop.svelte.d.ts +18 -0
- package/dist/device-mockups/DeviceMockup.svelte +39 -0
- package/dist/device-mockups/DeviceMockup.svelte.d.ts +13 -0
- package/dist/device-mockups/Ios.svelte +57 -0
- package/dist/device-mockups/Ios.svelte.d.ts +20 -0
- package/dist/device-mockups/Laptop.svelte +55 -0
- package/dist/device-mockups/Laptop.svelte.d.ts +18 -0
- package/dist/device-mockups/Smartwatch.svelte +58 -0
- package/dist/device-mockups/Smartwatch.svelte.d.ts +20 -0
- package/dist/device-mockups/Tablet.svelte +57 -0
- package/dist/device-mockups/Tablet.svelte.d.ts +20 -0
- package/dist/device-mockups/index.d.ts +9 -0
- package/dist/device-mockups/index.js +9 -0
- package/dist/device-mockups/theme.d.ts +377 -0
- package/dist/device-mockups/theme.js +76 -0
- package/dist/dialog/Dialog.svelte +200 -0
- package/dist/dialog/Dialog.svelte.d.ts +28 -0
- package/dist/dialog/index.d.ts +2 -0
- package/dist/dialog/index.js +2 -0
- package/dist/dialog/theme.d.ts +16 -0
- package/dist/dialog/theme.js +17 -0
- package/dist/drawer/Drawer.svelte +163 -0
- package/dist/drawer/Drawer.svelte.d.ts +24 -0
- package/dist/drawer/DrawerHandle.svelte +33 -0
- package/dist/drawer/DrawerHandle.svelte.d.ts +16 -0
- package/dist/drawer/Drawerhead.svelte +52 -0
- package/dist/drawer/Drawerhead.svelte.d.ts +17 -0
- package/dist/drawer/index.d.ts +4 -0
- package/dist/drawer/index.js +4 -0
- package/dist/drawer/theme.d.ts +167 -0
- package/dist/drawer/theme.js +82 -0
- package/dist/dropdown/Dropdown.svelte +53 -0
- package/dist/dropdown/Dropdown.svelte.d.ts +19 -0
- package/dist/dropdown/DropdownDivider.svelte +22 -0
- package/dist/dropdown/DropdownDivider.svelte.d.ts +12 -0
- package/dist/dropdown/DropdownGroup.svelte +25 -0
- package/dist/dropdown/DropdownGroup.svelte.d.ts +13 -0
- package/dist/dropdown/DropdownHeader.svelte +25 -0
- package/dist/dropdown/DropdownHeader.svelte.d.ts +13 -0
- package/dist/dropdown/DropdownItem.svelte +60 -0
- package/dist/dropdown/DropdownItem.svelte.d.ts +19 -0
- package/dist/dropdown/index.d.ts +6 -0
- package/dist/dropdown/index.js +6 -0
- package/dist/dropdown/theme.d.ts +44 -0
- package/dist/dropdown/theme.js +20 -0
- package/dist/footer/Footer.svelte +28 -0
- package/dist/footer/Footer.svelte.d.ts +14 -0
- package/dist/footer/FooterBrand.svelte +45 -0
- package/dist/footer/FooterBrand.svelte.d.ts +19 -0
- package/dist/footer/FooterCopyright.svelte +55 -0
- package/dist/footer/FooterCopyright.svelte.d.ts +20 -0
- package/dist/footer/FooterIcon.svelte +31 -0
- package/dist/footer/FooterIcon.svelte.d.ts +15 -0
- package/dist/footer/FooterLink.svelte +43 -0
- package/dist/footer/FooterLink.svelte.d.ts +17 -0
- package/dist/footer/FooterLinkGroup.svelte +25 -0
- package/dist/footer/FooterLinkGroup.svelte.d.ts +13 -0
- package/dist/footer/index.d.ts +7 -0
- package/dist/footer/index.js +7 -0
- package/dist/footer/theme.d.ts +137 -0
- package/dist/footer/theme.js +39 -0
- package/dist/forms/button-toggle/ButtonToggle.svelte +98 -0
- package/dist/forms/button-toggle/ButtonToggle.svelte.d.ts +21 -0
- package/dist/forms/button-toggle/ButtonToggleGroup.svelte +115 -0
- package/dist/forms/button-toggle/ButtonToggleGroup.svelte.d.ts +4 -0
- package/dist/forms/button-toggle/CheckIcon.svelte +31 -0
- package/dist/forms/button-toggle/CheckIcon.svelte.d.ts +12 -0
- package/dist/forms/button-toggle/index.d.ts +4 -0
- package/dist/forms/button-toggle/index.js +4 -0
- package/dist/forms/button-toggle/theme.d.ts +347 -0
- package/dist/forms/button-toggle/theme.js +129 -0
- package/dist/forms/checkbox/Checkbox.svelte +84 -0
- package/dist/forms/checkbox/Checkbox.svelte.d.ts +4 -0
- package/dist/forms/checkbox/CheckboxButton.svelte +38 -0
- package/dist/forms/checkbox/CheckboxButton.svelte.d.ts +21 -0
- package/dist/forms/checkbox/index.d.ts +3 -0
- package/dist/forms/checkbox/index.js +3 -0
- package/dist/forms/checkbox/theme.d.ts +321 -0
- package/dist/forms/checkbox/theme.js +114 -0
- package/dist/forms/dropzone/Dropzone.svelte +64 -0
- package/dist/forms/dropzone/Dropzone.svelte.d.ts +17 -0
- package/dist/forms/dropzone/index.d.ts +2 -0
- package/dist/forms/dropzone/index.js +2 -0
- package/dist/forms/dropzone/theme.d.ts +1 -0
- package/dist/forms/dropzone/theme.js +4 -0
- package/dist/forms/fileupload/Fileupload.svelte +73 -0
- package/dist/forms/fileupload/Fileupload.svelte.d.ts +22 -0
- package/dist/forms/fileupload/index.d.ts +2 -0
- package/dist/forms/fileupload/index.js +2 -0
- package/dist/forms/fileupload/theme.d.ts +55 -0
- package/dist/forms/fileupload/theme.js +16 -0
- package/dist/forms/floating-label/FloatingLabelInput.svelte +240 -0
- package/dist/forms/floating-label/FloatingLabelInput.svelte.d.ts +32 -0
- package/dist/forms/floating-label/index.d.ts +2 -0
- package/dist/forms/floating-label/index.js +2 -0
- package/dist/forms/floating-label/theme.d.ts +349 -0
- package/dist/forms/floating-label/theme.js +182 -0
- package/dist/forms/helper/Helper.svelte +28 -0
- package/dist/forms/helper/Helper.svelte.d.ts +14 -0
- package/dist/forms/helper/index.d.ts +2 -0
- package/dist/forms/helper/index.js +2 -0
- package/dist/forms/helper/theme.d.ts +75 -0
- package/dist/forms/helper/theme.js +29 -0
- package/dist/forms/input-addon/InputAddon.svelte +64 -0
- package/dist/forms/input-addon/InputAddon.svelte.d.ts +14 -0
- package/dist/forms/input-addon/index.d.ts +1 -0
- package/dist/forms/input-addon/index.js +1 -0
- package/dist/forms/input-field/Input.svelte +309 -0
- package/dist/forms/input-field/Input.svelte.d.ts +4 -0
- package/dist/forms/input-field/index.d.ts +4 -0
- package/dist/forms/input-field/index.js +5 -0
- package/dist/forms/input-field/theme.d.ts +304 -0
- package/dist/forms/input-field/theme.js +100 -0
- package/dist/forms/label/Label.svelte +33 -0
- package/dist/forms/label/Label.svelte.d.ts +15 -0
- package/dist/forms/label/index.d.ts +2 -0
- package/dist/forms/label/index.js +2 -0
- package/dist/forms/label/theme.d.ts +75 -0
- package/dist/forms/label/theme.js +29 -0
- package/dist/forms/phoneinput/PhoneInput.svelte +51 -0
- package/dist/forms/phoneinput/PhoneInput.svelte.d.ts +4 -0
- package/dist/forms/phoneinput/index.d.ts +2 -0
- package/dist/forms/phoneinput/index.js +2 -0
- package/dist/forms/phoneinput/theme.d.ts +79 -0
- package/dist/forms/phoneinput/theme.js +28 -0
- package/dist/forms/radio/Radio.svelte +49 -0
- package/dist/forms/radio/Radio.svelte.d.ts +30 -0
- package/dist/forms/radio/RadioButton.svelte +26 -0
- package/dist/forms/radio/RadioButton.svelte.d.ts +30 -0
- package/dist/forms/radio/index.d.ts +3 -0
- package/dist/forms/radio/index.js +3 -0
- package/dist/forms/radio/theme.d.ts +290 -0
- package/dist/forms/radio/theme.js +95 -0
- package/dist/forms/range/Range.svelte +29 -0
- package/dist/forms/range/Range.svelte.d.ts +17 -0
- package/dist/forms/range/index.d.ts +2 -0
- package/dist/forms/range/index.js +2 -0
- package/dist/forms/range/theme.d.ts +66 -0
- package/dist/forms/range/theme.js +74 -0
- package/dist/forms/search/Search.svelte +87 -0
- package/dist/forms/search/Search.svelte.d.ts +24 -0
- package/dist/forms/search/index.d.ts +2 -0
- package/dist/forms/search/index.js +2 -0
- package/dist/forms/search/theme.d.ts +73 -0
- package/dist/forms/search/theme.js +34 -0
- package/dist/forms/select/MultiSelect.svelte +271 -0
- package/dist/forms/select/MultiSelect.svelte.d.ts +25 -0
- package/dist/forms/select/Select.svelte +82 -0
- package/dist/forms/select/Select.svelte.d.ts +25 -0
- package/dist/forms/select/index.d.ts +3 -0
- package/dist/forms/select/index.js +3 -0
- package/dist/forms/select/theme.d.ts +264 -0
- package/dist/forms/select/theme.js +99 -0
- package/dist/forms/tags/Tags.svelte +245 -0
- package/dist/forms/tags/Tags.svelte.d.ts +25 -0
- package/dist/forms/tags/index.d.ts +2 -0
- package/dist/forms/tags/index.js +2 -0
- package/dist/forms/tags/theme.d.ts +70 -0
- package/dist/forms/tags/theme.js +13 -0
- package/dist/forms/textarea/Textarea.svelte +128 -0
- package/dist/forms/textarea/Textarea.svelte.d.ts +30 -0
- package/dist/forms/textarea/index.d.ts +2 -0
- package/dist/forms/textarea/index.js +2 -0
- package/dist/forms/textarea/theme.d.ts +100 -0
- package/dist/forms/textarea/theme.js +37 -0
- package/dist/forms/timepicker/Timepicker.svelte +436 -0
- package/dist/forms/timepicker/Timepicker.svelte.d.ts +34 -0
- package/dist/forms/timepicker/index.d.ts +2 -0
- package/dist/forms/timepicker/index.js +2 -0
- package/dist/forms/timepicker/theme.d.ts +190 -0
- package/dist/forms/timepicker/theme.js +72 -0
- package/dist/forms/toggle/Toggle.svelte +53 -0
- package/dist/forms/toggle/Toggle.svelte.d.ts +22 -0
- package/dist/forms/toggle/index.d.ts +2 -0
- package/dist/forms/toggle/index.js +2 -0
- package/dist/forms/toggle/theme.d.ts +280 -0
- package/dist/forms/toggle/theme.js +97 -0
- package/dist/gallery/Gallery.svelte +60 -0
- package/dist/gallery/Gallery.svelte.d.ts +17 -0
- package/dist/gallery/index.d.ts +2 -0
- package/dist/gallery/index.js +2 -0
- package/dist/gallery/theme.d.ts +34 -0
- package/dist/gallery/theme.js +7 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.js +97 -0
- package/dist/indicator/Indicator.svelte +47 -0
- package/dist/indicator/Indicator.svelte.d.ts +19 -0
- package/dist/indicator/index.d.ts +2 -0
- package/dist/indicator/index.js +2 -0
- package/dist/indicator/theme.d.ts +177 -0
- package/dist/indicator/theme.js +114 -0
- package/dist/kanban/KanbanBoard.svelte +99 -0
- package/dist/kanban/KanbanBoard.svelte.d.ts +4 -0
- package/dist/kanban/KanbanCard.svelte +58 -0
- package/dist/kanban/KanbanCard.svelte.d.ts +16 -0
- package/dist/kanban/index.d.ts +3 -0
- package/dist/kanban/index.js +3 -0
- package/dist/kanban/theme.d.ts +108 -0
- package/dist/kanban/theme.js +43 -0
- package/dist/kbd/Kbd.svelte +27 -0
- package/dist/kbd/Kbd.svelte.d.ts +13 -0
- package/dist/kbd/index.d.ts +2 -0
- package/dist/kbd/index.js +2 -0
- package/dist/kbd/theme.d.ts +1 -0
- package/dist/kbd/theme.js +4 -0
- package/dist/list-group/Listgroup.svelte +71 -0
- package/dist/list-group/Listgroup.svelte.d.ts +21 -0
- package/dist/list-group/ListgroupItem.svelte +61 -0
- package/dist/list-group/ListgroupItem.svelte.d.ts +20 -0
- package/dist/list-group/index.d.ts +3 -0
- package/dist/list-group/index.js +3 -0
- package/dist/list-group/theme.d.ts +86 -0
- package/dist/list-group/theme.js +67 -0
- package/dist/mega-menu/MegaMenu.svelte +53 -0
- package/dist/mega-menu/MegaMenu.svelte.d.ts +20 -0
- package/dist/mega-menu/index.d.ts +2 -0
- package/dist/mega-menu/index.js +2 -0
- package/dist/mega-menu/theme.d.ts +46 -0
- package/dist/mega-menu/theme.js +24 -0
- package/dist/modal/Modal.svelte +107 -0
- package/dist/modal/Modal.svelte.d.ts +29 -0
- package/dist/modal/index.d.ts +2 -0
- package/dist/modal/index.js +2 -0
- package/dist/modal/theme.d.ts +82 -0
- package/dist/modal/theme.js +42 -0
- package/dist/navbar/Menu.svelte +46 -0
- package/dist/navbar/Menu.svelte.d.ts +16 -0
- package/dist/navbar/NavBrand.svelte +25 -0
- package/dist/navbar/NavBrand.svelte.d.ts +12 -0
- package/dist/navbar/NavContainer.svelte +26 -0
- package/dist/navbar/NavContainer.svelte.d.ts +14 -0
- package/dist/navbar/NavHamburger.svelte +50 -0
- package/dist/navbar/NavHamburger.svelte.d.ts +131 -0
- package/dist/navbar/NavLi.svelte +62 -0
- package/dist/navbar/NavLi.svelte.d.ts +16 -0
- package/dist/navbar/NavUl.svelte +108 -0
- package/dist/navbar/NavUl.svelte.d.ts +22 -0
- package/dist/navbar/Navbar.svelte +59 -0
- package/dist/navbar/Navbar.svelte.d.ts +17 -0
- package/dist/navbar/index.d.ts +7 -0
- package/dist/navbar/index.js +7 -0
- package/dist/navbar/theme.d.ts +233 -0
- package/dist/navbar/theme.js +160 -0
- package/dist/pagination/Pagination.svelte +81 -0
- package/dist/pagination/Pagination.svelte.d.ts +19 -0
- package/dist/pagination/PaginationButton.svelte +75 -0
- package/dist/pagination/PaginationButton.svelte.d.ts +18 -0
- package/dist/pagination/PaginationItem.svelte +52 -0
- package/dist/pagination/PaginationItem.svelte.d.ts +16 -0
- package/dist/pagination/PaginationNav.svelte +149 -0
- package/dist/pagination/PaginationNav.svelte.d.ts +28 -0
- package/dist/pagination/index.d.ts +5 -0
- package/dist/pagination/index.js +5 -0
- package/dist/pagination/theme.d.ts +228 -0
- package/dist/pagination/theme.js +118 -0
- package/dist/popover/Popover.svelte +66 -0
- package/dist/popover/Popover.svelte.d.ts +21 -0
- package/dist/popover/index.d.ts +2 -0
- package/dist/popover/index.js +2 -0
- package/dist/popover/theme.d.ts +280 -0
- package/dist/popover/theme.js +97 -0
- package/dist/progress/Progressbar.svelte +85 -0
- package/dist/progress/Progressbar.svelte.d.ts +22 -0
- package/dist/progress/Progressradial.svelte +113 -0
- package/dist/progress/Progressradial.svelte.d.ts +25 -0
- package/dist/progress/index.d.ts +3 -0
- package/dist/progress/index.js +3 -0
- package/dist/progress/theme.d.ts +570 -0
- package/dist/progress/theme.js +214 -0
- package/dist/rating/AdvancedRating.svelte +63 -0
- package/dist/rating/AdvancedRating.svelte.d.ts +21 -0
- package/dist/rating/CustomIcon.svelte +57 -0
- package/dist/rating/CustomIcon.svelte.d.ts +21 -0
- package/dist/rating/Heart.svelte +60 -0
- package/dist/rating/Heart.svelte.d.ts +20 -0
- package/dist/rating/Rating.svelte +70 -0
- package/dist/rating/Rating.svelte.d.ts +21 -0
- package/dist/rating/RatingComment.svelte +73 -0
- package/dist/rating/RatingComment.svelte.d.ts +15 -0
- package/dist/rating/Review.svelte +119 -0
- package/dist/rating/Review.svelte.d.ts +24 -0
- package/dist/rating/ScoreRating.svelte +78 -0
- package/dist/rating/ScoreRating.svelte.d.ts +14 -0
- package/dist/rating/Star.svelte +61 -0
- package/dist/rating/Star.svelte.d.ts +20 -0
- package/dist/rating/Thumbup.svelte +60 -0
- package/dist/rating/Thumbup.svelte.d.ts +20 -0
- package/dist/rating/index.d.ts +10 -0
- package/dist/rating/index.js +10 -0
- package/dist/rating/theme.d.ts +202 -0
- package/dist/rating/theme.js +38 -0
- package/dist/scroll-spy/ScrollSpy.svelte +276 -0
- package/dist/scroll-spy/ScrollSpy.svelte.d.ts +23 -0
- package/dist/scroll-spy/index.d.ts +2 -0
- package/dist/scroll-spy/index.js +2 -0
- package/dist/scroll-spy/theme.d.ts +148 -0
- package/dist/scroll-spy/theme.js +66 -0
- package/dist/sidebar/Sidebar.svelte +169 -0
- package/dist/sidebar/Sidebar.svelte.d.ts +31 -0
- package/dist/sidebar/SidebarBrand.svelte +50 -0
- package/dist/sidebar/SidebarBrand.svelte.d.ts +17 -0
- package/dist/sidebar/SidebarButton.svelte +35 -0
- package/dist/sidebar/SidebarButton.svelte.d.ts +14 -0
- package/dist/sidebar/SidebarCta.svelte +52 -0
- package/dist/sidebar/SidebarCta.svelte.d.ts +18 -0
- package/dist/sidebar/SidebarDropdownWrapper.svelte +126 -0
- package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +26 -0
- package/dist/sidebar/SidebarGroup.svelte +23 -0
- package/dist/sidebar/SidebarGroup.svelte.d.ts +15 -0
- package/dist/sidebar/SidebarItem.svelte +46 -0
- package/dist/sidebar/SidebarItem.svelte.d.ts +21 -0
- package/dist/sidebar/SidebarWrapper.svelte +15 -0
- package/dist/sidebar/SidebarWrapper.svelte.d.ts +9 -0
- package/dist/sidebar/index.d.ts +10 -0
- package/dist/sidebar/index.js +10 -0
- package/dist/sidebar/theme.d.ts +312 -0
- package/dist/sidebar/theme.js +81 -0
- package/dist/skeleton/CardPlaceholder.svelte +50 -0
- package/dist/skeleton/CardPlaceholder.svelte.d.ts +14 -0
- package/dist/skeleton/ImagePlaceholder.svelte +81 -0
- package/dist/skeleton/ImagePlaceholder.svelte.d.ts +16 -0
- package/dist/skeleton/ListPlaceholder.svelte +61 -0
- package/dist/skeleton/ListPlaceholder.svelte.d.ts +16 -0
- package/dist/skeleton/Skeleton.svelte +51 -0
- package/dist/skeleton/Skeleton.svelte.d.ts +14 -0
- package/dist/skeleton/TestimonialPlaceholder.svelte +60 -0
- package/dist/skeleton/TestimonialPlaceholder.svelte.d.ts +13 -0
- package/dist/skeleton/TextPlaceholder.svelte +86 -0
- package/dist/skeleton/TextPlaceholder.svelte.d.ts +14 -0
- package/dist/skeleton/VideoPlaceholder.svelte +31 -0
- package/dist/skeleton/VideoPlaceholder.svelte.d.ts +12 -0
- package/dist/skeleton/WidgetPlaceholder.svelte +37 -0
- package/dist/skeleton/WidgetPlaceholder.svelte.d.ts +12 -0
- package/dist/skeleton/index.d.ts +9 -0
- package/dist/skeleton/index.js +9 -0
- package/dist/skeleton/theme.d.ts +585 -0
- package/dist/skeleton/theme.js +178 -0
- package/dist/speed-dial/SpeedDial.svelte +70 -0
- package/dist/speed-dial/SpeedDial.svelte.d.ts +21 -0
- package/dist/speed-dial/SpeedDialButton.svelte +73 -0
- package/dist/speed-dial/SpeedDialButton.svelte.d.ts +20 -0
- package/dist/speed-dial/SpeedDialTrigger.svelte +57 -0
- package/dist/speed-dial/SpeedDialTrigger.svelte.d.ts +18 -0
- package/dist/speed-dial/index.d.ts +4 -0
- package/dist/speed-dial/index.js +4 -0
- package/dist/speed-dial/theme.d.ts +75 -0
- package/dist/speed-dial/theme.js +36 -0
- package/dist/spinner/Spinner.svelte +95 -0
- package/dist/spinner/Spinner.svelte.d.ts +17 -0
- package/dist/spinner/index.d.ts +2 -0
- package/dist/spinner/index.js +2 -0
- package/dist/spinner/theme.d.ts +120 -0
- package/dist/spinner/theme.js +49 -0
- package/dist/split-pane/Divider.svelte +50 -0
- package/dist/split-pane/Divider.svelte.d.ts +18 -0
- package/dist/split-pane/Pane.svelte +55 -0
- package/dist/split-pane/Pane.svelte.d.ts +13 -0
- package/dist/split-pane/SplitPane.svelte +401 -0
- package/dist/split-pane/SplitPane.svelte.d.ts +21 -0
- package/dist/split-pane/index.d.ts +4 -0
- package/dist/split-pane/index.js +4 -0
- package/dist/split-pane/theme.d.ts +65 -0
- package/dist/split-pane/theme.js +45 -0
- package/dist/step-indicator/StepIndicator.svelte +134 -0
- package/dist/step-indicator/StepIndicator.svelte.d.ts +23 -0
- package/dist/step-indicator/index.d.ts +2 -0
- package/dist/step-indicator/index.js +2 -0
- package/dist/step-indicator/theme.d.ts +248 -0
- package/dist/step-indicator/theme.js +103 -0
- package/dist/stepper/BreadcrumbStepper.svelte +147 -0
- package/dist/stepper/BreadcrumbStepper.svelte.d.ts +18 -0
- package/dist/stepper/CheckmarkIcon.svelte +92 -0
- package/dist/stepper/CheckmarkIcon.svelte.d.ts +18 -0
- package/dist/stepper/DetailedStepper.svelte +156 -0
- package/dist/stepper/DetailedStepper.svelte.d.ts +19 -0
- package/dist/stepper/DoubleArrowIcon.svelte +34 -0
- package/dist/stepper/DoubleArrowIcon.svelte.d.ts +15 -0
- package/dist/stepper/ProfileCardIcon.svelte +25 -0
- package/dist/stepper/ProfileCardIcon.svelte.d.ts +15 -0
- package/dist/stepper/ProgressStepper.svelte +162 -0
- package/dist/stepper/ProgressStepper.svelte.d.ts +18 -0
- package/dist/stepper/Stepper.svelte +119 -0
- package/dist/stepper/Stepper.svelte.d.ts +18 -0
- package/dist/stepper/TimelineStepper.svelte +122 -0
- package/dist/stepper/TimelineStepper.svelte.d.ts +19 -0
- package/dist/stepper/VerticalStepper.svelte +122 -0
- package/dist/stepper/VerticalStepper.svelte.d.ts +19 -0
- package/dist/stepper/index.d.ts +10 -0
- package/dist/stepper/index.js +10 -0
- package/dist/stepper/theme.d.ts +395 -0
- package/dist/stepper/theme.js +175 -0
- package/dist/table/Table.svelte +85 -0
- package/dist/table/Table.svelte.d.ts +23 -0
- package/dist/table/TableBody.svelte +42 -0
- package/dist/table/TableBody.svelte.d.ts +14 -0
- package/dist/table/TableBodyCell.svelte +35 -0
- package/dist/table/TableBodyCell.svelte.d.ts +15 -0
- package/dist/table/TableBodyRow.svelte +41 -0
- package/dist/table/TableBodyRow.svelte.d.ts +17 -0
- package/dist/table/TableHead.svelte +67 -0
- package/dist/table/TableHead.svelte.d.ts +19 -0
- package/dist/table/TableHeadCell.svelte +27 -0
- package/dist/table/TableHeadCell.svelte.d.ts +13 -0
- package/dist/table/TableSearch.svelte +121 -0
- package/dist/table/TableSearch.svelte.d.ts +29 -0
- package/dist/table/index.d.ts +8 -0
- package/dist/table/index.js +8 -0
- package/dist/table/theme.d.ts +593 -0
- package/dist/table/theme.js +440 -0
- package/dist/tabs/TabItem.svelte +86 -0
- package/dist/tabs/TabItem.svelte.d.ts +22 -0
- package/dist/tabs/Tabs.svelte +109 -0
- package/dist/tabs/Tabs.svelte.d.ts +19 -0
- package/dist/tabs/index.d.ts +3 -0
- package/dist/tabs/index.js +3 -0
- package/dist/tabs/theme.d.ts +135 -0
- package/dist/tabs/theme.js +83 -0
- package/dist/theme/ThemeProvider.svelte +37 -0
- package/dist/theme/ThemeProvider.svelte.d.ts +17 -0
- package/dist/theme/index.d.ts +8 -0
- package/dist/theme/index.js +2 -0
- package/dist/theme/themeUtils.d.ts +24 -0
- package/dist/theme/themeUtils.js +74 -0
- package/dist/theme/themes.d.ts +78 -0
- package/dist/theme/themes.js +84 -0
- package/dist/timeline/Activity.svelte +25 -0
- package/dist/timeline/Activity.svelte.d.ts +13 -0
- package/dist/timeline/ActivityItem.svelte +81 -0
- package/dist/timeline/ActivityItem.svelte.d.ts +22 -0
- package/dist/timeline/Group.svelte +51 -0
- package/dist/timeline/Group.svelte.d.ts +18 -0
- package/dist/timeline/GroupItem.svelte +90 -0
- package/dist/timeline/GroupItem.svelte.d.ts +19 -0
- package/dist/timeline/Timeline.svelte +30 -0
- package/dist/timeline/Timeline.svelte.d.ts +14 -0
- package/dist/timeline/TimelineItem.svelte +156 -0
- package/dist/timeline/TimelineItem.svelte.d.ts +28 -0
- package/dist/timeline/index.d.ts +7 -0
- package/dist/timeline/index.js +7 -0
- package/dist/timeline/theme.d.ts +367 -0
- package/dist/timeline/theme.js +287 -0
- package/dist/toast/Toast.svelte +97 -0
- package/dist/toast/Toast.svelte.d.ts +24 -0
- package/dist/toast/ToastContainer.svelte +35 -0
- package/dist/toast/ToastContainer.svelte.d.ts +14 -0
- package/dist/toast/index.d.ts +3 -0
- package/dist/toast/index.js +3 -0
- package/dist/toast/theme.d.ts +323 -0
- package/dist/toast/theme.js +103 -0
- package/dist/toolbar/Toolbar.svelte +64 -0
- package/dist/toolbar/Toolbar.svelte.d.ts +17 -0
- package/dist/toolbar/ToolbarButton.svelte +46 -0
- package/dist/toolbar/ToolbarButton.svelte.d.ts +17 -0
- package/dist/toolbar/ToolbarGroup.svelte +35 -0
- package/dist/toolbar/ToolbarGroup.svelte.d.ts +16 -0
- package/dist/toolbar/index.d.ts +4 -0
- package/dist/toolbar/index.js +4 -0
- package/dist/toolbar/theme.d.ts +320 -0
- package/dist/toolbar/theme.js +155 -0
- package/dist/tooltip/Tooltip.svelte +51 -0
- package/dist/tooltip/Tooltip.svelte.d.ts +20 -0
- package/dist/tooltip/index.d.ts +2 -0
- package/dist/tooltip/index.js +2 -0
- package/dist/tooltip/theme.d.ts +90 -0
- package/dist/tooltip/theme.js +45 -0
- package/dist/tour/Tour.svelte +268 -0
- package/dist/tour/Tour.svelte.d.ts +4 -0
- package/dist/tour/index.d.ts +2 -0
- package/dist/tour/index.js +2 -0
- package/dist/tour/theme.d.ts +214 -0
- package/dist/tour/theme.js +79 -0
- package/dist/types.d.ts +2058 -0
- package/dist/types.js +1 -0
- package/dist/typography/a/A.svelte +55 -0
- package/dist/typography/a/A.svelte.d.ts +17 -0
- package/dist/typography/a/index.d.ts +2 -0
- package/dist/typography/a/index.js +2 -0
- package/dist/typography/a/theme.d.ts +72 -0
- package/dist/typography/a/theme.js +29 -0
- package/dist/typography/blockquote/Blockquote.svelte +41 -0
- package/dist/typography/blockquote/Blockquote.svelte.d.ts +18 -0
- package/dist/typography/blockquote/index.d.ts +2 -0
- package/dist/typography/blockquote/index.js +2 -0
- package/dist/typography/blockquote/theme.d.ts +102 -0
- package/dist/typography/blockquote/theme.js +45 -0
- package/dist/typography/descriptionlist/DescriptionList.svelte +33 -0
- package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +14 -0
- package/dist/typography/descriptionlist/index.d.ts +2 -0
- package/dist/typography/descriptionlist/index.js +2 -0
- package/dist/typography/descriptionlist/theme.d.ts +18 -0
- package/dist/typography/descriptionlist/theme.js +12 -0
- package/dist/typography/heading/Heading.svelte +28 -0
- package/dist/typography/heading/Heading.svelte.d.ts +14 -0
- package/dist/typography/heading/index.d.ts +2 -0
- package/dist/typography/heading/index.js +2 -0
- package/dist/typography/heading/theme.d.ts +30 -0
- package/dist/typography/heading/theme.js +17 -0
- package/dist/typography/hr/Hr.svelte +59 -0
- package/dist/typography/hr/Hr.svelte.d.ts +16 -0
- package/dist/typography/hr/index.d.ts +2 -0
- package/dist/typography/hr/index.js +2 -0
- package/dist/typography/hr/theme.d.ts +40 -0
- package/dist/typography/hr/theme.js +20 -0
- package/dist/typography/img/Img.svelte +78 -0
- package/dist/typography/img/Img.svelte.d.ts +21 -0
- package/dist/typography/img/index.d.ts +2 -0
- package/dist/typography/img/index.js +2 -0
- package/dist/typography/img/theme.d.ts +211 -0
- package/dist/typography/img/theme.js +42 -0
- package/dist/typography/layout/Layout.svelte +27 -0
- package/dist/typography/layout/Layout.svelte.d.ts +13 -0
- package/dist/typography/layout/index.d.ts +2 -0
- package/dist/typography/layout/index.js +2 -0
- package/dist/typography/layout/theme.d.ts +1 -0
- package/dist/typography/layout/theme.js +4 -0
- package/dist/typography/list/Li.svelte +27 -0
- package/dist/typography/list/Li.svelte.d.ts +14 -0
- package/dist/typography/list/List.svelte +48 -0
- package/dist/typography/list/List.svelte.d.ts +17 -0
- package/dist/typography/list/index.d.ts +3 -0
- package/dist/typography/list/index.js +3 -0
- package/dist/typography/list/theme.d.ts +33 -0
- package/dist/typography/list/theme.js +19 -0
- package/dist/typography/mark/Mark.svelte +25 -0
- package/dist/typography/mark/Mark.svelte.d.ts +13 -0
- package/dist/typography/mark/index.d.ts +2 -0
- package/dist/typography/mark/index.js +2 -0
- package/dist/typography/mark/theme.d.ts +1 -0
- package/dist/typography/mark/theme.js +4 -0
- package/dist/typography/paragraph/P.svelte +49 -0
- package/dist/typography/paragraph/P.svelte.d.ts +22 -0
- package/dist/typography/paragraph/index.d.ts +2 -0
- package/dist/typography/paragraph/index.js +2 -0
- package/dist/typography/paragraph/theme.d.ts +225 -0
- package/dist/typography/paragraph/theme.js +79 -0
- package/dist/typography/secondary/Secondary.svelte +25 -0
- package/dist/typography/secondary/Secondary.svelte.d.ts +13 -0
- package/dist/typography/secondary/index.d.ts +2 -0
- package/dist/typography/secondary/index.js +2 -0
- package/dist/typography/secondary/theme.d.ts +1 -0
- package/dist/typography/secondary/theme.js +4 -0
- package/dist/typography/span/Span.svelte +51 -0
- package/dist/typography/span/Span.svelte.d.ts +22 -0
- package/dist/typography/span/index.d.ts +2 -0
- package/dist/typography/span/index.js +2 -0
- package/dist/typography/span/theme.d.ts +246 -0
- package/dist/typography/span/theme.js +88 -0
- package/dist/uiHelpers.svelte.d.ts +10 -0
- package/dist/uiHelpers.svelte.js +50 -0
- package/dist/utils/Arrow.svelte +63 -0
- package/dist/utils/Arrow.svelte.d.ts +13 -0
- package/dist/utils/CloseButton.svelte +67 -0
- package/dist/utils/CloseButton.svelte.d.ts +19 -0
- package/dist/utils/Popper.svelte +289 -0
- package/dist/utils/Popper.svelte.d.ts +31 -0
- package/dist/utils/actions.d.ts +16 -0
- package/dist/utils/actions.js +107 -0
- package/dist/utils/countdown.svelte.d.ts +8 -0
- package/dist/utils/countdown.svelte.js +64 -0
- package/dist/utils/debounce.d.ts +17 -0
- package/dist/utils/debounce.js +41 -0
- package/dist/utils/dismissable.d.ts +9 -0
- package/dist/utils/dismissable.js +16 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.js +14 -0
- package/dist/utils/nonPassiveTouch.d.ts +3 -0
- package/dist/utils/nonPassiveTouch.js +8 -0
- package/dist/utils/responsive.svelte +111 -0
- package/dist/utils/responsive.svelte.d.ts +45 -0
- package/dist/utils/singleselection.svelte.d.ts +15 -0
- package/dist/utils/singleselection.svelte.js +52 -0
- package/dist/utils/theme.d.ts +100 -0
- package/dist/utils/theme.js +69 -0
- package/dist/video/Video.svelte +34 -0
- package/dist/video/Video.svelte.d.ts +18 -0
- package/dist/video/index.d.ts +1 -0
- package/dist/video/index.js +1 -0
- package/dist/virtual-masonry/VirtualMasonry.svelte +185 -0
- package/dist/virtual-masonry/VirtualMasonry.svelte.d.ts +44 -0
- package/dist/virtual-masonry/index.d.ts +3 -0
- package/dist/virtual-masonry/index.js +2 -0
- package/dist/virtual-masonry/theme.d.ts +40 -0
- package/dist/virtual-masonry/theme.js +18 -0
- package/dist/virtuallist/VirtualList.svelte +145 -0
- package/dist/virtuallist/VirtualList.svelte.d.ts +42 -0
- package/dist/virtuallist/index.d.ts +2 -0
- package/dist/virtuallist/index.js +2 -0
- package/dist/virtuallist/theme.d.ts +40 -0
- package/dist/virtuallist/theme.js +18 -0
- package/package.json +917 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* A Svelte 5 rune-based media query hook
|
|
4
|
+
* @param query - CSS media query string (e.g., '(min-width: 768px)')
|
|
5
|
+
* @returns A function that returns the current match state
|
|
6
|
+
*/
|
|
7
|
+
export function useMediaQuery(query: string): () => boolean {
|
|
8
|
+
let matches = $state<boolean>(false);
|
|
9
|
+
|
|
10
|
+
$effect(() => {
|
|
11
|
+
if (typeof window === "undefined") return;
|
|
12
|
+
|
|
13
|
+
const mediaQuery: MediaQueryList = window.matchMedia(query);
|
|
14
|
+
matches = mediaQuery.matches;
|
|
15
|
+
|
|
16
|
+
const handler = (e: MediaQueryListEvent): void => {
|
|
17
|
+
matches = e.matches;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
mediaQuery.addEventListener("change", handler);
|
|
21
|
+
|
|
22
|
+
return (): void => {
|
|
23
|
+
mediaQuery.removeEventListener("change", handler);
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
return (): boolean => matches;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Hook for common Tailwind CSS breakpoints
|
|
32
|
+
* @returns Object with boolean values for each breakpoint
|
|
33
|
+
*/
|
|
34
|
+
export function useBreakpoints() {
|
|
35
|
+
const sm = useMediaQuery("(min-width: 640px)");
|
|
36
|
+
const md = useMediaQuery("(min-width: 768px)");
|
|
37
|
+
const lg = useMediaQuery("(min-width: 1024px)");
|
|
38
|
+
const xl = useMediaQuery("(min-width: 1280px)");
|
|
39
|
+
const xxl = useMediaQuery("(min-width: 1536px)");
|
|
40
|
+
|
|
41
|
+
return {
|
|
42
|
+
get sm() {
|
|
43
|
+
return sm();
|
|
44
|
+
},
|
|
45
|
+
get md() {
|
|
46
|
+
return md();
|
|
47
|
+
},
|
|
48
|
+
get lg() {
|
|
49
|
+
return lg();
|
|
50
|
+
},
|
|
51
|
+
get xl() {
|
|
52
|
+
return xl();
|
|
53
|
+
},
|
|
54
|
+
get "2xl"() {
|
|
55
|
+
return xxl();
|
|
56
|
+
},
|
|
57
|
+
get isMobile() {
|
|
58
|
+
return !sm();
|
|
59
|
+
},
|
|
60
|
+
get isTablet() {
|
|
61
|
+
return sm() && !lg();
|
|
62
|
+
},
|
|
63
|
+
get isDesktop() {
|
|
64
|
+
return lg();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Get current breakpoint name
|
|
71
|
+
* @returns Current breakpoint as string
|
|
72
|
+
*/
|
|
73
|
+
export function useCurrentBreakpoint(): () => "xs" | "sm" | "md" | "lg" | "xl" | "2xl" {
|
|
74
|
+
let currentBreakpoint = $state<"xs" | "sm" | "md" | "lg" | "xl" | "2xl">("xs");
|
|
75
|
+
|
|
76
|
+
$effect(() => {
|
|
77
|
+
if (typeof window === "undefined") return;
|
|
78
|
+
|
|
79
|
+
const updateBreakpoint = (): void => {
|
|
80
|
+
const width = window.innerWidth;
|
|
81
|
+
if (width >= 1536) currentBreakpoint = "2xl";
|
|
82
|
+
else if (width >= 1280) currentBreakpoint = "xl";
|
|
83
|
+
else if (width >= 1024) currentBreakpoint = "lg";
|
|
84
|
+
else if (width >= 768) currentBreakpoint = "md";
|
|
85
|
+
else if (width >= 640) currentBreakpoint = "sm";
|
|
86
|
+
else currentBreakpoint = "xs";
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
updateBreakpoint();
|
|
90
|
+
window.addEventListener("resize", updateBreakpoint);
|
|
91
|
+
|
|
92
|
+
return (): void => {
|
|
93
|
+
window.removeEventListener("resize", updateBreakpoint);
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
return (): "xs" | "sm" | "md" | "lg" | "xl" | "2xl" => currentBreakpoint;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Type definitions for common breakpoint values
|
|
101
|
+
export type BreakpointKey = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
102
|
+
|
|
103
|
+
export const BREAKPOINTS: Record<BreakpointKey, number> = {
|
|
104
|
+
xs: 0,
|
|
105
|
+
sm: 640,
|
|
106
|
+
md: 768,
|
|
107
|
+
lg: 1024,
|
|
108
|
+
xl: 1280,
|
|
109
|
+
"2xl": 1536
|
|
110
|
+
} as const;
|
|
111
|
+
</script>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Svelte 5 rune-based media query hook
|
|
3
|
+
* @param query - CSS media query string (e.g., '(min-width: 768px)')
|
|
4
|
+
* @returns A function that returns the current match state
|
|
5
|
+
*/
|
|
6
|
+
export declare function useMediaQuery(query: string): () => boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Hook for common Tailwind CSS breakpoints
|
|
9
|
+
* @returns Object with boolean values for each breakpoint
|
|
10
|
+
*/
|
|
11
|
+
export declare function useBreakpoints(): {
|
|
12
|
+
readonly sm: boolean;
|
|
13
|
+
readonly md: boolean;
|
|
14
|
+
readonly lg: boolean;
|
|
15
|
+
readonly xl: boolean;
|
|
16
|
+
readonly "2xl": boolean;
|
|
17
|
+
readonly isMobile: boolean;
|
|
18
|
+
readonly isTablet: boolean;
|
|
19
|
+
readonly isDesktop: boolean;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Get current breakpoint name
|
|
23
|
+
* @returns Current breakpoint as string
|
|
24
|
+
*/
|
|
25
|
+
export declare function useCurrentBreakpoint(): () => "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
26
|
+
export type BreakpointKey = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
27
|
+
export declare const BREAKPOINTS: Record<BreakpointKey, number>;
|
|
28
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
29
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
30
|
+
$$bindings?: Bindings;
|
|
31
|
+
} & Exports;
|
|
32
|
+
(internal: unknown, props: {
|
|
33
|
+
$$events?: Events;
|
|
34
|
+
$$slots?: Slots;
|
|
35
|
+
}): Exports & {
|
|
36
|
+
$set?: any;
|
|
37
|
+
$on?: any;
|
|
38
|
+
};
|
|
39
|
+
z_$$bindings?: Bindings;
|
|
40
|
+
}
|
|
41
|
+
declare const Responsive: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
42
|
+
[evt: string]: CustomEvent<any>;
|
|
43
|
+
}, {}, {}, string>;
|
|
44
|
+
type Responsive = InstanceType<typeof Responsive>;
|
|
45
|
+
export default Responsive;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @template T
|
|
3
|
+
* @param {boolean} [nonReactive=false] - use a non-reactive placeholder to allow multiple selection and keep context shallow
|
|
4
|
+
* @returns {SingleSelectionContext<T>}
|
|
5
|
+
*/
|
|
6
|
+
export function createSingleSelectionContext<T>(nonReactive?: boolean): SingleSelectionContext<T>;
|
|
7
|
+
/**
|
|
8
|
+
* @template T
|
|
9
|
+
* @param {(value: T|null) => void} callback
|
|
10
|
+
* @returns {(open: boolean, v?: T) => SingleSelectionContext<T>}
|
|
11
|
+
*/
|
|
12
|
+
export function useSingleSelection<T>(callback: (value: T | null) => void): (open: boolean, v?: T) => SingleSelectionContext<T>;
|
|
13
|
+
export type SingleSelectionContext<T> = {
|
|
14
|
+
value?: (T | null) | undefined;
|
|
15
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { getContext, setContext, untrack } from "svelte";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @template T
|
|
5
|
+
* @typedef {Object} SingleSelectionContext
|
|
6
|
+
* @property {T|null=} value
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** @type {symbol} */
|
|
10
|
+
const SINGLE_SELECTION_KEY = Symbol("singleton");
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @template T
|
|
14
|
+
* @param {boolean} [nonReactive=false] - use a non-reactive placeholder to allow multiple selection and keep context shallow
|
|
15
|
+
* @returns {SingleSelectionContext<T>}
|
|
16
|
+
*/
|
|
17
|
+
export function createSingleSelectionContext(nonReactive = false) {
|
|
18
|
+
if (nonReactive) return setContext(SINGLE_SELECTION_KEY, {});
|
|
19
|
+
const context = $state({ value: null });
|
|
20
|
+
return setContext(SINGLE_SELECTION_KEY, context);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @template T
|
|
25
|
+
* @param {SingleSelectionContext<T>} context
|
|
26
|
+
* @param {boolean} open
|
|
27
|
+
* @param {T=} value
|
|
28
|
+
* @returns {SingleSelectionContext<T>}
|
|
29
|
+
*/
|
|
30
|
+
function setSelected(context, open, value) {
|
|
31
|
+
if (open) context.value = value ?? null;
|
|
32
|
+
else if (context.value === value) context.value = null;
|
|
33
|
+
|
|
34
|
+
return context;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @template T
|
|
39
|
+
* @param {(value: T|null) => void} callback
|
|
40
|
+
* @returns {(open: boolean, v?: T) => SingleSelectionContext<T>}
|
|
41
|
+
*/
|
|
42
|
+
export function useSingleSelection(callback) {
|
|
43
|
+
const context = getContext(SINGLE_SELECTION_KEY) ?? createSingleSelectionContext(false);
|
|
44
|
+
|
|
45
|
+
if (!context.hasOwnProperty?.("value")) return () => context;
|
|
46
|
+
|
|
47
|
+
$effect(() => {
|
|
48
|
+
if (context.value !== null) callback(context.value);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
return (open, v) => untrack(() => setSelected(context, open, v));
|
|
52
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { type VariantProps } from "tailwind-variants";
|
|
2
|
+
import type { Classes } from "../theme/themeUtils";
|
|
3
|
+
export type CloseButtonVariants = VariantProps<typeof closeButton> & Classes<typeof closeButton>;
|
|
4
|
+
export declare const closeButton: import("tailwind-variants").TVReturnType<{
|
|
5
|
+
color: {
|
|
6
|
+
primary: string;
|
|
7
|
+
secondary: string;
|
|
8
|
+
gray: string;
|
|
9
|
+
red: string;
|
|
10
|
+
orange: string;
|
|
11
|
+
amber: string;
|
|
12
|
+
yellow: string;
|
|
13
|
+
lime: string;
|
|
14
|
+
green: string;
|
|
15
|
+
emerald: string;
|
|
16
|
+
teal: string;
|
|
17
|
+
cyan: string;
|
|
18
|
+
sky: string;
|
|
19
|
+
blue: string;
|
|
20
|
+
indigo: string;
|
|
21
|
+
violet: string;
|
|
22
|
+
purple: string;
|
|
23
|
+
fuchsia: string;
|
|
24
|
+
pink: string;
|
|
25
|
+
rose: string;
|
|
26
|
+
none: string;
|
|
27
|
+
};
|
|
28
|
+
size: {
|
|
29
|
+
xs: string;
|
|
30
|
+
sm: string;
|
|
31
|
+
md: string;
|
|
32
|
+
lg: string;
|
|
33
|
+
};
|
|
34
|
+
}, {
|
|
35
|
+
svg: string;
|
|
36
|
+
}, "focus:outline-hidden whitespace-normal disabled:cursor-not-allowed disabled:opacity-50", {
|
|
37
|
+
color: {
|
|
38
|
+
primary: string;
|
|
39
|
+
secondary: string;
|
|
40
|
+
gray: string;
|
|
41
|
+
red: string;
|
|
42
|
+
orange: string;
|
|
43
|
+
amber: string;
|
|
44
|
+
yellow: string;
|
|
45
|
+
lime: string;
|
|
46
|
+
green: string;
|
|
47
|
+
emerald: string;
|
|
48
|
+
teal: string;
|
|
49
|
+
cyan: string;
|
|
50
|
+
sky: string;
|
|
51
|
+
blue: string;
|
|
52
|
+
indigo: string;
|
|
53
|
+
violet: string;
|
|
54
|
+
purple: string;
|
|
55
|
+
fuchsia: string;
|
|
56
|
+
pink: string;
|
|
57
|
+
rose: string;
|
|
58
|
+
none: string;
|
|
59
|
+
};
|
|
60
|
+
size: {
|
|
61
|
+
xs: string;
|
|
62
|
+
sm: string;
|
|
63
|
+
md: string;
|
|
64
|
+
lg: string;
|
|
65
|
+
};
|
|
66
|
+
}, {
|
|
67
|
+
svg: string;
|
|
68
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
69
|
+
color: {
|
|
70
|
+
primary: string;
|
|
71
|
+
secondary: string;
|
|
72
|
+
gray: string;
|
|
73
|
+
red: string;
|
|
74
|
+
orange: string;
|
|
75
|
+
amber: string;
|
|
76
|
+
yellow: string;
|
|
77
|
+
lime: string;
|
|
78
|
+
green: string;
|
|
79
|
+
emerald: string;
|
|
80
|
+
teal: string;
|
|
81
|
+
cyan: string;
|
|
82
|
+
sky: string;
|
|
83
|
+
blue: string;
|
|
84
|
+
indigo: string;
|
|
85
|
+
violet: string;
|
|
86
|
+
purple: string;
|
|
87
|
+
fuchsia: string;
|
|
88
|
+
pink: string;
|
|
89
|
+
rose: string;
|
|
90
|
+
none: string;
|
|
91
|
+
};
|
|
92
|
+
size: {
|
|
93
|
+
xs: string;
|
|
94
|
+
sm: string;
|
|
95
|
+
md: string;
|
|
96
|
+
lg: string;
|
|
97
|
+
};
|
|
98
|
+
}, {
|
|
99
|
+
svg: string;
|
|
100
|
+
}, "focus:outline-hidden whitespace-normal disabled:cursor-not-allowed disabled:opacity-50", unknown, unknown, undefined>>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { tv } from "tailwind-variants";
|
|
2
|
+
export const closeButton = tv({
|
|
3
|
+
base: "focus:outline-hidden whitespace-normal disabled:cursor-not-allowed disabled:opacity-50",
|
|
4
|
+
variants: {
|
|
5
|
+
// primary, secondary, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose
|
|
6
|
+
color: {
|
|
7
|
+
primary: "text-primary-500 focus:ring-primary-400 hover:bg-primary-200 dark:hover:bg-primary-800 dark:hover:text-primary-300",
|
|
8
|
+
secondary: "text-secondary-500 focus:ring-secondary-400 hover:bg-secondary-200 dark:hover:bg-secondary-800 dark:hover:text-secondary-300",
|
|
9
|
+
gray: "text-gray-500 focus:ring-gray-400 hover:bg-gray-200 dark:hover:bg-gray-800 dark:hover:text-gray-300",
|
|
10
|
+
red: "text-red-500 focus:ring-red-400 hover:bg-red-200 dark:hover:bg-red-800 dark:hover:text-red-300",
|
|
11
|
+
orange: "text-orange-500 focus:ring-orange-400 hover:bg-orange-200 dark:hover:bg-orange-800 dark:hover:text-orange-300",
|
|
12
|
+
amber: "text-amber-500 focus:ring-amber-400 hover:bg-amber-200 dark:hover:bg-amber-800 dark:hover:text-amber-300",
|
|
13
|
+
yellow: "text-yellow-500 focus:ring-yellow-400 hover:bg-yellow-200 dark:hover:bg-yellow-800 dark:hover:text-yellow-300",
|
|
14
|
+
lime: "text-lime-500 focus:ring-lime-400 hover:bg-lime-200 dark:hover:bg-lime-800 dark:hover:text-lime-300",
|
|
15
|
+
green: "text-green-500 focus:ring-green-400 hover:bg-green-200 dark:hover:bg-green-800 dark:hover:text-green-300",
|
|
16
|
+
emerald: "text-emerald-500 focus:ring-emerald-400 hover:bg-emerald-200 dark:hover:bg-emerald-800 dark:hover:text-emerald-300",
|
|
17
|
+
teal: "text-teal-500 focus:ring-teal-400 hover:bg-teal-200 dark:hover:bg-teal-800 dark:hover:text-teal-300",
|
|
18
|
+
cyan: "text-cyan-500 focus:ring-cyan-400 hover:bg-cyan-200 dark:hover:bg-cyan-800 dark:hover:text-cyan-300",
|
|
19
|
+
sky: "text-sky-500 focus:ring-sky-400 hover:bg-sky-200 dark:hover:bg-sky-800 dark:hover:text-sky-300",
|
|
20
|
+
blue: "text-blue-500 focus:ring-blue-400 hover:bg-blue-200 dark:hover:bg-blue-800 dark:hover:text-blue-300",
|
|
21
|
+
indigo: "text-indigo-500 focus:ring-indigo-400 hover:bg-indigo-200 dark:hover:bg-indigo-800 dark:hover:text-indigo-300",
|
|
22
|
+
violet: "text-violet-500 focus:ring-violet-400 hover:bg-violet-200 dark:hover:bg-violet-800 dark:hover:text-violet-300",
|
|
23
|
+
purple: "text-purple-500 focus:ring-purple-400 hover:bg-purple-200 dark:hover:bg-purple-800 dark:hover:text-purple-300",
|
|
24
|
+
fuchsia: "text-fuchsia-500 focus:ring-fuchsia-400 hover:bg-fuchsia-200 dark:hover:bg-fuchsia-800 dark:hover:text-fuchsia-300",
|
|
25
|
+
pink: "text-pink-500 focus:ring-pink-400 hover:bg-pink-200 dark:hover:bg-pink-800 dark:hover:text-pink-300",
|
|
26
|
+
rose: "text-rose-500 focus:ring-rose-400 hover:bg-rose-200 dark:hover:bg-rose-800 dark:hover:text-rose-300",
|
|
27
|
+
none: ""
|
|
28
|
+
},
|
|
29
|
+
size: {
|
|
30
|
+
xs: "m-0.5 rounded-xs focus:ring-1 p-0.5",
|
|
31
|
+
sm: "m-0.5 rounded-sm focus:ring-1 p-0.5",
|
|
32
|
+
md: "m-0.5 rounded-lg focus:ring-2 p-1.5",
|
|
33
|
+
lg: "m-0.5 rounded-lg focus:ring-2 p-2.5"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
defaultVariants: {
|
|
37
|
+
color: "gray",
|
|
38
|
+
size: "md",
|
|
39
|
+
href: null
|
|
40
|
+
},
|
|
41
|
+
slots: {
|
|
42
|
+
svg: ""
|
|
43
|
+
},
|
|
44
|
+
compoundVariants: [
|
|
45
|
+
{
|
|
46
|
+
size: "xs",
|
|
47
|
+
class: {
|
|
48
|
+
svg: "w-3 h-3"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
size: "sm",
|
|
53
|
+
class: {
|
|
54
|
+
svg: "w-3.5 h-3.5"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
size: ["md", "lg"],
|
|
59
|
+
class: {
|
|
60
|
+
svg: "w-5 h-5"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
size: ["xs", "sm", "md", "lg"],
|
|
65
|
+
color: "none",
|
|
66
|
+
class: "focus:ring-0 rounded-none m-0"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { VideoProps } from "../types";
|
|
3
|
+
import clsx from "clsx";
|
|
4
|
+
import { getTheme } from "../theme/themeUtils";
|
|
5
|
+
|
|
6
|
+
let { children, type = "video/mp4", trackSrc, src, srclang = "en", label = "english_captions", class: classname, ...restProps }: VideoProps = $props();
|
|
7
|
+
|
|
8
|
+
const theme = $derived(getTheme("span"));
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<video {...restProps} class={clsx(theme, classname)}>
|
|
12
|
+
<source {src} {type} />
|
|
13
|
+
{#if children}
|
|
14
|
+
{@render children()}
|
|
15
|
+
{/if}
|
|
16
|
+
<track src={trackSrc} kind="captions" {srclang} {label} />
|
|
17
|
+
Your browser does not support the video tag.
|
|
18
|
+
</video>
|
|
19
|
+
|
|
20
|
+
<!--
|
|
21
|
+
@component
|
|
22
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
23
|
+
## Type
|
|
24
|
+
[VideoProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2151)
|
|
25
|
+
## Props
|
|
26
|
+
@prop children
|
|
27
|
+
@prop type = "video/mp4"
|
|
28
|
+
@prop trackSrc
|
|
29
|
+
@prop src
|
|
30
|
+
@prop srclang = "en"
|
|
31
|
+
@prop label = "english_captions"
|
|
32
|
+
@prop class: classname
|
|
33
|
+
@prop ...restProps
|
|
34
|
+
-->
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { VideoProps } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
|
+
* ## Type
|
|
5
|
+
* [VideoProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2151)
|
|
6
|
+
* ## Props
|
|
7
|
+
* @prop children
|
|
8
|
+
* @prop type = "video/mp4"
|
|
9
|
+
* @prop trackSrc
|
|
10
|
+
* @prop src
|
|
11
|
+
* @prop srclang = "en"
|
|
12
|
+
* @prop label = "english_captions"
|
|
13
|
+
* @prop class: classname
|
|
14
|
+
* @prop ...restProps
|
|
15
|
+
*/
|
|
16
|
+
declare const Video: import("svelte").Component<VideoProps, {}, "">;
|
|
17
|
+
type Video = ReturnType<typeof Video>;
|
|
18
|
+
export default Video;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Video } from "./Video.svelte";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Video } from "./Video.svelte";
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
<script lang="ts" generics="T">
|
|
2
|
+
import type { VirtualMasonryProps } from "../types";
|
|
3
|
+
import { virtualMasonry } from "./theme";
|
|
4
|
+
import clsx from "clsx";
|
|
5
|
+
import { getTheme } from "../theme/themeUtils";
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
items = [],
|
|
9
|
+
columns = 3,
|
|
10
|
+
gap = 16,
|
|
11
|
+
height = 600,
|
|
12
|
+
overscan = 200,
|
|
13
|
+
getItemHeight,
|
|
14
|
+
scrollToIndex,
|
|
15
|
+
children,
|
|
16
|
+
ariaLabel = "Virtual masonry grid",
|
|
17
|
+
class: className,
|
|
18
|
+
classes,
|
|
19
|
+
contained = false
|
|
20
|
+
}: VirtualMasonryProps<T> = $props();
|
|
21
|
+
|
|
22
|
+
const theme = $derived(getTheme("virtualMasonry"));
|
|
23
|
+
|
|
24
|
+
let container: HTMLDivElement | undefined;
|
|
25
|
+
let containerWidth = $state(0);
|
|
26
|
+
let scrollTop = $state(0);
|
|
27
|
+
let rafId: number | undefined;
|
|
28
|
+
|
|
29
|
+
const styles = $derived(virtualMasonry({ contained }));
|
|
30
|
+
|
|
31
|
+
const containStyle = $derived.by(() => {
|
|
32
|
+
if (!contained) return "";
|
|
33
|
+
const itemClasses = clsx(classes?.item);
|
|
34
|
+
const hasCustomContain = /\[contain:[^\]]+\]/.test(itemClasses);
|
|
35
|
+
return hasCustomContain ? "" : "contain: layout style paint;";
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// Calculate column width based on container width
|
|
39
|
+
const columnWidth = $derived.by(() => {
|
|
40
|
+
if (containerWidth === 0) return 0;
|
|
41
|
+
return (containerWidth - gap * (columns - 1)) / columns;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Position items in columns
|
|
45
|
+
interface PositionedItem {
|
|
46
|
+
item: T;
|
|
47
|
+
index: number;
|
|
48
|
+
x: number;
|
|
49
|
+
y: number;
|
|
50
|
+
height: number;
|
|
51
|
+
column: number;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const positionedItems = $derived.by((): PositionedItem[] => {
|
|
55
|
+
if (columnWidth === 0) return [];
|
|
56
|
+
|
|
57
|
+
const columnHeights = new Array(columns).fill(0);
|
|
58
|
+
const positioned: PositionedItem[] = [];
|
|
59
|
+
|
|
60
|
+
for (let i = 0; i < items.length; i++) {
|
|
61
|
+
// Find shortest column
|
|
62
|
+
const shortestColumn = columnHeights.indexOf(Math.min(...columnHeights));
|
|
63
|
+
const itemHeight = getItemHeight ? getItemHeight(items[i], i) : 200;
|
|
64
|
+
|
|
65
|
+
positioned.push({
|
|
66
|
+
item: items[i],
|
|
67
|
+
index: i,
|
|
68
|
+
x: shortestColumn * (columnWidth + gap),
|
|
69
|
+
y: columnHeights[shortestColumn],
|
|
70
|
+
height: itemHeight,
|
|
71
|
+
column: shortestColumn
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
columnHeights[shortestColumn] += itemHeight + gap;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return positioned;
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// Total height is the tallest column
|
|
81
|
+
const totalHeight = $derived.by(() => {
|
|
82
|
+
if (positionedItems.length === 0) return 0;
|
|
83
|
+
return Math.max(...positionedItems.map((item) => item.y + item.height));
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Visible items based on scroll position with overscan
|
|
87
|
+
const visibleItems = $derived.by(() => {
|
|
88
|
+
const viewportTop = scrollTop - overscan;
|
|
89
|
+
const viewportBottom = scrollTop + height + overscan;
|
|
90
|
+
|
|
91
|
+
return positionedItems.filter((item) => {
|
|
92
|
+
const itemTop = item.y;
|
|
93
|
+
const itemBottom = item.y + item.height;
|
|
94
|
+
return itemBottom >= viewportTop && itemTop <= viewportBottom;
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// Performance optimized scroll handler using RAF
|
|
99
|
+
function handleScroll() {
|
|
100
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
101
|
+
rafId = requestAnimationFrame(() => {
|
|
102
|
+
if (container) scrollTop = container.scrollTop;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Scroll to specific index
|
|
107
|
+
function scrollToIndexImpl(index: number) {
|
|
108
|
+
if (!container || index < 0 || index >= items.length) return;
|
|
109
|
+
const item = positionedItems[index];
|
|
110
|
+
if (item) {
|
|
111
|
+
container.scrollTop = item.y;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Bind scrollToIndex function to parent component
|
|
116
|
+
$effect(() => {
|
|
117
|
+
if (scrollToIndex) {
|
|
118
|
+
scrollToIndex(scrollToIndexImpl);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
// Measure container width on mount and resize
|
|
123
|
+
$effect(() => {
|
|
124
|
+
if (!container) return;
|
|
125
|
+
|
|
126
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
127
|
+
for (const entry of entries) {
|
|
128
|
+
containerWidth = entry.contentRect.width;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
resizeObserver.observe(container);
|
|
133
|
+
|
|
134
|
+
return () => {
|
|
135
|
+
resizeObserver.disconnect();
|
|
136
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
137
|
+
};
|
|
138
|
+
});
|
|
139
|
+
</script>
|
|
140
|
+
|
|
141
|
+
<div
|
|
142
|
+
bind:this={container}
|
|
143
|
+
onscroll={handleScroll}
|
|
144
|
+
role="list"
|
|
145
|
+
aria-label={ariaLabel}
|
|
146
|
+
class={styles.container({ class: clsx(theme?.container, className) })}
|
|
147
|
+
style={`height:${height}px; position:relative;`}
|
|
148
|
+
>
|
|
149
|
+
<div class={styles.spacer({ class: clsx(theme?.spacer, classes?.spacer) })} style={`height:${totalHeight}px;`}>
|
|
150
|
+
<div class={styles.content({ class: clsx(theme?.content, classes?.content) })}>
|
|
151
|
+
{#each visibleItems as { item, index, x, y, height: itemHeight } (index)}
|
|
152
|
+
<div
|
|
153
|
+
role="listitem"
|
|
154
|
+
aria-setsize={items.length}
|
|
155
|
+
aria-posinset={index + 1}
|
|
156
|
+
class={styles.item({ class: clsx(theme?.item, classes?.item) })}
|
|
157
|
+
style={`position:absolute; left:${x}px; top:${y}px; width:${columnWidth}px; height:${itemHeight}px; ${containStyle}`}
|
|
158
|
+
>
|
|
159
|
+
{@render children?.(item, index)}
|
|
160
|
+
</div>
|
|
161
|
+
{/each}
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<!--
|
|
167
|
+
@component
|
|
168
|
+
VirtualMasonry - Virtualized masonry/pinterest layout for efficient rendering of large image grids
|
|
169
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
170
|
+
## Type
|
|
171
|
+
[VirtualMasonryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts)
|
|
172
|
+
## Props
|
|
173
|
+
@prop items = []
|
|
174
|
+
@prop columns = 3
|
|
175
|
+
@prop gap = 16
|
|
176
|
+
@prop height = 600
|
|
177
|
+
@prop overscan = 200
|
|
178
|
+
@prop getItemHeight
|
|
179
|
+
@prop scrollToIndex
|
|
180
|
+
@prop children
|
|
181
|
+
@prop ariaLabel = "Virtual masonry grid"
|
|
182
|
+
@prop contained = false
|
|
183
|
+
@prop class: className
|
|
184
|
+
@prop classes
|
|
185
|
+
-->
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { VirtualMasonryProps } from "../types";
|
|
2
|
+
declare function $$render<T>(): {
|
|
3
|
+
props: VirtualMasonryProps<T>;
|
|
4
|
+
exports: {};
|
|
5
|
+
bindings: "";
|
|
6
|
+
slots: {};
|
|
7
|
+
events: {};
|
|
8
|
+
};
|
|
9
|
+
declare class __sveltets_Render<T> {
|
|
10
|
+
props(): ReturnType<typeof $$render<T>>['props'];
|
|
11
|
+
events(): ReturnType<typeof $$render<T>>['events'];
|
|
12
|
+
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
13
|
+
bindings(): "";
|
|
14
|
+
exports(): {};
|
|
15
|
+
}
|
|
16
|
+
interface $$IsomorphicComponent {
|
|
17
|
+
new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
|
|
18
|
+
$$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
|
|
19
|
+
} & ReturnType<__sveltets_Render<T>['exports']>;
|
|
20
|
+
<T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
|
|
21
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* VirtualMasonry - Virtualized masonry/pinterest layout for efficient rendering of large image grids
|
|
25
|
+
* [Go to docs](https://flowbite-svelte.com/)
|
|
26
|
+
* ## Type
|
|
27
|
+
* [VirtualMasonryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts)
|
|
28
|
+
* ## Props
|
|
29
|
+
* @prop items = []
|
|
30
|
+
* @prop columns = 3
|
|
31
|
+
* @prop gap = 16
|
|
32
|
+
* @prop height = 600
|
|
33
|
+
* @prop overscan = 200
|
|
34
|
+
* @prop getItemHeight
|
|
35
|
+
* @prop scrollToIndex
|
|
36
|
+
* @prop children
|
|
37
|
+
* @prop ariaLabel = "Virtual masonry grid"
|
|
38
|
+
* @prop contained = false
|
|
39
|
+
* @prop class: className
|
|
40
|
+
* @prop classes
|
|
41
|
+
*/
|
|
42
|
+
declare const VirtualMasonry: $$IsomorphicComponent;
|
|
43
|
+
type VirtualMasonry<T> = InstanceType<typeof VirtualMasonry<T>>;
|
|
44
|
+
export default VirtualMasonry;
|