flowbite-svelte 0.44.8 → 0.44.9
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/.env +2 -0
- package/.eslintrc.cjs +20 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +33 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
- package/.github/pull_request_template.md +71 -0
- package/.github/workflows/playwright-and-lint.yaml +47 -0
- package/.prettierignore +16 -0
- package/.prettierrc +9 -0
- package/CHANGELOG.md +3858 -0
- package/CONTRIBUTING.md +66 -0
- package/dist/bottom-nav/BottomNavItem.svelte +3 -1
- package/dist/bottom-nav/BottomNavItem.svelte.d.ts +2 -0
- package/dist/bottom-nav/BottomNavItem.svelte.d.ts.map +1 -1
- package/dist/carousels/Carousel.svelte +52 -153
- package/dist/carousels/Carousel.svelte.d.ts +22 -37
- package/dist/carousels/Carousel.svelte.d.ts.map +1 -1
- package/dist/carousels/ControlButton.svelte +31 -0
- package/dist/carousels/ControlButton.svelte.d.ts +29 -0
- package/dist/carousels/ControlButton.svelte.d.ts.map +1 -0
- package/dist/carousels/Controls.svelte +17 -0
- package/dist/carousels/Controls.svelte.d.ts +23 -0
- package/dist/carousels/Controls.svelte.d.ts.map +1 -0
- package/dist/carousels/Indicators.svelte +26 -0
- package/dist/carousels/Indicators.svelte.d.ts +32 -0
- package/dist/carousels/Indicators.svelte.d.ts.map +1 -0
- package/dist/carousels/Thumbnail.svelte +6 -23
- package/dist/carousels/Thumbnail.svelte.d.ts +5 -16
- package/dist/carousels/Thumbnail.svelte.d.ts.map +1 -1
- package/dist/carousels/Thumbnails.svelte +26 -0
- package/dist/carousels/Thumbnails.svelte.d.ts +33 -0
- package/dist/carousels/Thumbnails.svelte.d.ts.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/tables/TableSearch.svelte +2 -2
- package/dist/tables/TableSearch.svelte.d.ts +1 -1
- package/mdsvex.config.js +18 -0
- package/package.json +18 -80
- package/playwright.config.ts +12 -0
- package/postcss.config.cjs +12 -0
- package/src/app.css +45 -0
- package/src/app.d.ts +9 -0
- package/src/app.html +28 -0
- package/src/app.postcss +55 -0
- package/src/hooks.server.js +27 -0
- package/src/lib/accordion/Accordion.svelte +61 -0
- package/src/lib/accordion/AccordionItem.svelte +120 -0
- package/src/lib/alerts/Alert.svelte +60 -0
- package/src/lib/avatar/Avatar.svelte +56 -0
- package/src/lib/avatar/Placeholder.svelte +16 -0
- package/src/lib/badges/Badge.svelte +108 -0
- package/src/lib/banner/Banner.svelte +64 -0
- package/src/lib/bottom-nav/BottomNav.svelte +76 -0
- package/src/lib/bottom-nav/BottomNavHeader.svelte +19 -0
- package/src/lib/bottom-nav/BottomNavHeaderItem.svelte +23 -0
- package/src/lib/bottom-nav/BottomNavItem.svelte +76 -0
- package/src/lib/breadcrumbs/Breadcrumb.svelte +25 -0
- package/src/lib/breadcrumbs/BreadcrumbItem.svelte +51 -0
- package/src/lib/buttongroups/ButtonGroup.svelte +22 -0
- package/src/lib/buttons/Button.svelte +100 -0
- package/src/lib/buttons/GradientButton.svelte +79 -0
- package/src/lib/cards/Card.svelte +70 -0
- package/src/lib/carousels/Carousel.svelte +166 -0
- package/src/lib/carousels/ControlButton.svelte +34 -0
- package/src/lib/carousels/Controls.svelte +21 -0
- package/src/lib/carousels/Indicators.svelte +31 -0
- package/src/lib/carousels/Thumbnail.svelte +20 -0
- package/src/lib/carousels/Thumbnails.svelte +30 -0
- package/src/lib/charts/Chart.svelte +35 -0
- package/src/lib/darkmode/DarkMode.svelte +58 -0
- package/src/lib/datepicker/Calender.svelte +3 -0
- package/src/lib/datepicker/Datepicker.svelte +66 -0
- package/src/lib/device-mockup/Android.svelte +24 -0
- package/src/lib/device-mockup/DefaultMockup.svelte +21 -0
- package/src/lib/device-mockup/DeviceMockup.svelte +235 -0
- package/src/lib/device-mockup/Ios.svelte +21 -0
- package/src/lib/device-mockup/Smartwatch.svelte +15 -0
- package/src/lib/device-mockup/Tablet.svelte +21 -0
- package/src/lib/drawer/Drawer.svelte +87 -0
- package/src/lib/dropdowns/Dropdown.svelte +81 -0
- package/src/lib/dropdowns/DropdownDivider.svelte +13 -0
- package/src/lib/dropdowns/DropdownHeader.svelte +21 -0
- package/src/lib/dropdowns/DropdownItem.svelte +47 -0
- package/src/lib/footer/Footer.svelte +18 -0
- package/src/lib/footer/FooterBrand.svelte +39 -0
- package/src/lib/footer/FooterCopyright.svelte +38 -0
- package/src/lib/footer/FooterIcon.svelte +25 -0
- package/src/lib/footer/FooterLink.svelte +26 -0
- package/src/lib/footer/FooterLinkGroup.svelte +15 -0
- package/src/lib/forms/Checkbox.svelte +70 -0
- package/src/lib/forms/Dropzone.svelte +32 -0
- package/src/lib/forms/Fileupload.svelte +21 -0
- package/src/lib/forms/FloatingLabelInput.svelte +94 -0
- package/src/lib/forms/Helper.svelte +23 -0
- package/src/lib/forms/Input.svelte +83 -0
- package/src/lib/forms/InputAddon.svelte +47 -0
- package/src/lib/forms/Label.svelte +40 -0
- package/src/lib/forms/MultiSelect.svelte +126 -0
- package/src/lib/forms/NumberInput.svelte +16 -0
- package/src/lib/forms/Radio.svelte +53 -0
- package/src/lib/forms/RadioInline.svelte +9 -0
- package/src/lib/forms/Range.svelte +24 -0
- package/src/lib/forms/Search.svelte +44 -0
- package/src/lib/forms/Select.svelte +49 -0
- package/src/lib/forms/Textarea.svelte +51 -0
- package/src/lib/forms/Toggle.svelte +56 -0
- package/src/lib/forms/VoiceSearch.svelte +57 -0
- package/src/lib/gallery/Gallery.svelte +31 -0
- package/src/lib/index.ts +228 -0
- package/src/lib/indicators/Indicator.svelte +86 -0
- package/src/lib/kbd/ArrowKeyDown.svelte +15 -0
- package/src/lib/kbd/ArrowKeyLeft.svelte +15 -0
- package/src/lib/kbd/ArrowKeyRight.svelte +15 -0
- package/src/lib/kbd/ArrowKeyUp.svelte +15 -0
- package/src/lib/kbd/Kbd.svelte +15 -0
- package/src/lib/list-group/Listgroup.svelte +45 -0
- package/src/lib/list-group/ListgroupItem.svelte +57 -0
- package/src/lib/megamenu/MegaMenu.svelte +52 -0
- package/src/lib/modals/Modal.svelte +162 -0
- package/src/lib/navbar/Menu.svelte +38 -0
- package/src/lib/navbar/NavBrand.svelte +15 -0
- package/src/lib/navbar/NavHamburger.svelte +20 -0
- package/src/lib/navbar/NavLi.svelte +37 -0
- package/src/lib/navbar/NavSidebarHamburger.svelte +20 -0
- package/src/lib/navbar/NavUl.svelte +68 -0
- package/src/lib/navbar/Navbar.svelte +42 -0
- package/src/lib/navbar/SidebarMenu.svelte +37 -0
- package/src/lib/paginations/Pagination.svelte +59 -0
- package/src/lib/paginations/PaginationItem.svelte +40 -0
- package/src/lib/popover/Popover.svelte +34 -0
- package/src/lib/progressbars/Progressbar.svelte +52 -0
- package/src/lib/ratings/AdvancedRating.svelte +45 -0
- package/src/lib/ratings/Heart.svelte +39 -0
- package/src/lib/ratings/Rating.svelte +57 -0
- package/src/lib/ratings/RatingComment.svelte +85 -0
- package/src/lib/ratings/Review.svelte +78 -0
- package/src/lib/ratings/ScoreRating.svelte +76 -0
- package/src/lib/ratings/Star.svelte +47 -0
- package/src/lib/ratings/Thumbup.svelte +39 -0
- package/src/lib/sidebars/Sidebar.svelte +40 -0
- package/src/lib/sidebars/SidebarBrand.svelte +24 -0
- package/src/lib/sidebars/SidebarCta.svelte +28 -0
- package/src/lib/sidebars/SidebarDropdownItem.svelte +26 -0
- package/src/lib/sidebars/SidebarDropdownWrapper.svelte +71 -0
- package/src/lib/sidebars/SidebarGroup.svelte +24 -0
- package/src/lib/sidebars/SidebarItem.svelte +49 -0
- package/src/lib/sidebars/SidebarWrapper.svelte +16 -0
- package/src/lib/skeleton/CardPlaceholder.svelte +48 -0
- package/src/lib/skeleton/ImagePlaceholder.svelte +31 -0
- package/src/lib/skeleton/ListPlaceholder.svelte +50 -0
- package/src/lib/skeleton/Skeleton.svelte +38 -0
- package/src/lib/skeleton/TestimonialPlaceholder.svelte +24 -0
- package/src/lib/skeleton/TextPlaceholder.svelte +60 -0
- package/src/lib/skeleton/VideoPlaceholder.svelte +33 -0
- package/src/lib/skeleton/WidgetPlaceholder.svelte +26 -0
- package/src/lib/speed-dial/SpeedDial.svelte +80 -0
- package/src/lib/speed-dial/SpeedDialButton.svelte +49 -0
- package/src/lib/spinners/Spinner.svelte +49 -0
- package/src/lib/steps/StepIndicator.svelte +75 -0
- package/src/lib/tables/Table.svelte +49 -0
- package/src/lib/tables/TableBody.svelte +14 -0
- package/src/lib/tables/TableBodyCell.svelte +22 -0
- package/src/lib/tables/TableBodyRow.svelte +50 -0
- package/src/lib/tables/TableHead.svelte +45 -0
- package/src/lib/tables/TableHeadCell.svelte +15 -0
- package/src/lib/tables/TableSearch.svelte +73 -0
- package/src/lib/tabs/TabItem.svelte +61 -0
- package/src/lib/tabs/Tabs.svelte +78 -0
- package/src/lib/timeline/Activity.svelte +16 -0
- package/src/lib/timeline/ActivityItem.svelte +59 -0
- package/src/lib/timeline/Group.svelte +27 -0
- package/src/lib/timeline/GroupItem.svelte +59 -0
- package/src/lib/timeline/Timeline.svelte +25 -0
- package/src/lib/timeline/TimelineHorizontal.svelte +17 -0
- package/src/lib/timeline/TimelineItem.svelte +116 -0
- package/src/lib/timeline/TimelineItemHorizontal.svelte +72 -0
- package/src/lib/timeline/TimelineItemVertical.svelte +44 -0
- package/src/lib/toasts/Toast.svelte +99 -0
- package/src/lib/toolbar/Toolbar.svelte +52 -0
- package/src/lib/toolbar/ToolbarButton.svelte +67 -0
- package/src/lib/toolbar/ToolbarGroup.svelte +20 -0
- package/src/lib/tooltips/Tooltip.svelte +42 -0
- package/src/lib/types.ts +163 -0
- package/src/lib/typography/A.svelte +20 -0
- package/src/lib/typography/Blockquote.svelte +51 -0
- package/src/lib/typography/DescriptionList.svelte +22 -0
- package/src/lib/typography/Heading.svelte +28 -0
- package/src/lib/typography/Hr.svelte +37 -0
- package/src/lib/typography/Img.svelte +39 -0
- package/src/lib/typography/Layout.svelte +21 -0
- package/src/lib/typography/Li.svelte +19 -0
- package/src/lib/typography/List.svelte +33 -0
- package/src/lib/typography/Mark.svelte +20 -0
- package/src/lib/typography/P.svelte +102 -0
- package/src/lib/typography/Secondary.svelte +18 -0
- package/src/lib/typography/Span.svelte +35 -0
- package/src/lib/utils/CloseButton.svelte +19 -0
- package/src/lib/utils/Frame.svelte +142 -0
- package/src/lib/utils/Popper.svelte +206 -0
- package/src/lib/utils/Wrapper.svelte +22 -0
- package/src/lib/utils/backdrop.ts +101 -0
- package/src/lib/utils/clickOutside.ts +16 -0
- package/src/lib/utils/createEventDispatcher.ts +24 -0
- package/src/lib/utils/focusTrap.js +42 -0
- package/src/lib/utils/generateId.js +5 -0
- package/src/lib/video/Video.svelte +29 -0
- package/src/routes/+error.svelte +5 -0
- package/src/routes/+layout.svelte +98 -0
- package/src/routes/+page.server.ts +18 -0
- package/src/routes/+page.svelte +55 -0
- package/src/routes/api/posts/+server.js +7 -0
- package/src/routes/component-data/A.json +10 -0
- package/src/routes/component-data/Accordion.json +12 -0
- package/src/routes/component-data/AccordionItem.json +23 -0
- package/src/routes/component-data/Activity.json +1 -0
- package/src/routes/component-data/ActivityItem.json +16 -0
- package/src/routes/component-data/AdvancedRating.json +13 -0
- package/src/routes/component-data/Alert.json +9 -0
- package/src/routes/component-data/Android.json +12 -0
- package/src/routes/component-data/ArrowKeyDown.json +1 -0
- package/src/routes/component-data/ArrowKeyLeft.json +1 -0
- package/src/routes/component-data/ArrowKeyRight.json +1 -0
- package/src/routes/component-data/ArrowKeyUp.json +1 -0
- package/src/routes/component-data/Avatar.json +15 -0
- package/src/routes/component-data/Badge.json +10 -0
- package/src/routes/component-data/Banner.json +12 -0
- package/src/routes/component-data/Blockquote.json +15 -0
- package/src/routes/component-data/BottomNav.json +13 -0
- package/src/routes/component-data/BottomNavHeader.json +9 -0
- package/src/routes/component-data/BottomNavHeaderItem.json +11 -0
- package/src/routes/component-data/BottomNavItem.json +12 -0
- package/src/routes/component-data/Breadcrumb.json +11 -0
- package/src/routes/component-data/BreadcrumbItem.json +12 -0
- package/src/routes/component-data/Button.json +14 -0
- package/src/routes/component-data/ButtonGroup.json +9 -0
- package/src/routes/component-data/Calender.json +1 -0
- package/src/routes/component-data/Card.json +13 -0
- package/src/routes/component-data/CardPlaceholder.json +9 -0
- package/src/routes/component-data/Carousel.json +11 -0
- package/src/routes/component-data/Chart.json +1 -0
- package/src/routes/component-data/Checkbox.json +14 -0
- package/src/routes/component-data/CloseButton.json +1 -0
- package/src/routes/component-data/ControlButton.json +9 -0
- package/src/routes/component-data/Controls.json +1 -0
- package/src/routes/component-data/DarkMode.json +9 -0
- package/src/routes/component-data/Datepicker.json +14 -0
- package/src/routes/component-data/DefaultMockup.json +11 -0
- package/src/routes/component-data/DescriptionList.json +10 -0
- package/src/routes/component-data/DeviceMockup.json +50 -0
- package/src/routes/component-data/Drawer.json +23 -0
- package/src/routes/component-data/Dropdown.json +13 -0
- package/src/routes/component-data/DropdownDivider.json +1 -0
- package/src/routes/component-data/DropdownHeader.json +9 -0
- package/src/routes/component-data/DropdownItem.json +10 -0
- package/src/routes/component-data/Dropzone.json +10 -0
- package/src/routes/component-data/Fileupload.json +10 -0
- package/src/routes/component-data/FloatingLabelInput.json +14 -0
- package/src/routes/component-data/Footer.json +1 -0
- package/src/routes/component-data/FooterBrand.json +15 -0
- package/src/routes/component-data/FooterCopyright.json +14 -0
- package/src/routes/component-data/FooterIcon.json +11 -0
- package/src/routes/component-data/FooterLink.json +11 -0
- package/src/routes/component-data/FooterLinkGroup.json +1 -0
- package/src/routes/component-data/Frame.json +18 -0
- package/src/routes/component-data/Gallery.json +9 -0
- package/src/routes/component-data/GradientButton.json +9 -0
- package/src/routes/component-data/Group.json +11 -0
- package/src/routes/component-data/GroupItem.json +13 -0
- package/src/routes/component-data/Heading.json +10 -0
- package/src/routes/component-data/Heart.json +14 -0
- package/src/routes/component-data/Helper.json +9 -0
- package/src/routes/component-data/Hr.json +13 -0
- package/src/routes/component-data/ImagePlaceholder.json +9 -0
- package/src/routes/component-data/Img.json +17 -0
- package/src/routes/component-data/Indicator.json +13 -0
- package/src/routes/component-data/Indicators.json +9 -0
- package/src/routes/component-data/Input.json +13 -0
- package/src/routes/component-data/InputAddon.json +1 -0
- package/src/routes/component-data/Ios.json +11 -0
- package/src/routes/component-data/Kbd.json +1 -0
- package/src/routes/component-data/Label.json +10 -0
- package/src/routes/component-data/Layout.json +10 -0
- package/src/routes/component-data/Li.json +9 -0
- package/src/routes/component-data/List.json +10 -0
- package/src/routes/component-data/ListPlaceholder.json +1 -0
- package/src/routes/component-data/Listgroup.json +10 -0
- package/src/routes/component-data/ListgroupItem.json +17 -0
- package/src/routes/component-data/Mark.json +10 -0
- package/src/routes/component-data/MegaMenu.json +11 -0
- package/src/routes/component-data/Menu.json +11 -0
- package/src/routes/component-data/Modal.json +17 -0
- package/src/routes/component-data/MultiSelect.json +11 -0
- package/src/routes/component-data/NavBrand.json +1 -0
- package/src/routes/component-data/NavHamburger.json +9 -0
- package/src/routes/component-data/NavLi.json +10 -0
- package/src/routes/component-data/NavSidebarHamburger.json +9 -0
- package/src/routes/component-data/NavUl.json +14 -0
- package/src/routes/component-data/Navbar.json +10 -0
- package/src/routes/component-data/NumberInput.json +1 -0
- package/src/routes/component-data/P.json +19 -0
- package/src/routes/component-data/Pagination.json +13 -0
- package/src/routes/component-data/PaginationItem.json +12 -0
- package/src/routes/component-data/Placeholder.json +1 -0
- package/src/routes/component-data/Popover.json +9 -0
- package/src/routes/component-data/Popper.json +17 -0
- package/src/routes/component-data/Progressbar.json +14 -0
- package/src/routes/component-data/Radio.json +13 -0
- package/src/routes/component-data/RadioInline.json +1 -0
- package/src/routes/component-data/Range.json +9 -0
- package/src/routes/component-data/Rating.json +14 -0
- package/src/routes/component-data/RatingComment.json +10 -0
- package/src/routes/component-data/Review.json +13 -0
- package/src/routes/component-data/ScoreRating.json +13 -0
- package/src/routes/component-data/Search.json +10 -0
- package/src/routes/component-data/Secondary.json +9 -0
- package/src/routes/component-data/Select.json +14 -0
- package/src/routes/component-data/Sidebar.json +11 -0
- package/src/routes/component-data/SidebarBrand.json +11 -0
- package/src/routes/component-data/SidebarCta.json +11 -0
- package/src/routes/component-data/SidebarDropdownItem.json +12 -0
- package/src/routes/component-data/SidebarDropdownWrapper.json +14 -0
- package/src/routes/component-data/SidebarGroup.json +10 -0
- package/src/routes/component-data/SidebarItem.json +12 -0
- package/src/routes/component-data/SidebarMenu.json +11 -0
- package/src/routes/component-data/SidebarWrapper.json +1 -0
- package/src/routes/component-data/Skeleton.json +9 -0
- package/src/routes/component-data/Smartwatch.json +9 -0
- package/src/routes/component-data/Span.json +16 -0
- package/src/routes/component-data/SpeedDial.json +18 -0
- package/src/routes/component-data/SpeedDialButton.json +14 -0
- package/src/routes/component-data/Spinner.json +13 -0
- package/src/routes/component-data/Star.json +14 -0
- package/src/routes/component-data/StepIndicator.json +15 -0
- package/src/routes/component-data/TabItem.json +12 -0
- package/src/routes/component-data/Table.json +14 -0
- package/src/routes/component-data/TableBody.json +1 -0
- package/src/routes/component-data/TableBodyCell.json +1 -0
- package/src/routes/component-data/TableBodyRow.json +1 -0
- package/src/routes/component-data/TableHead.json +9 -0
- package/src/routes/component-data/TableHeadCell.json +1 -0
- package/src/routes/component-data/TableSearch.json +19 -0
- package/src/routes/component-data/Tablet.json +11 -0
- package/src/routes/component-data/Tabs.json +13 -0
- package/src/routes/component-data/TestimonialPlaceholder.json +1 -0
- package/src/routes/component-data/TextPlaceholder.json +9 -0
- package/src/routes/component-data/Textarea.json +11 -0
- package/src/routes/component-data/Thumbnail.json +10 -0
- package/src/routes/component-data/Thumbnails.json +9 -0
- package/src/routes/component-data/Thumbup.json +14 -0
- package/src/routes/component-data/Timeline.json +1 -0
- package/src/routes/component-data/TimelineHorizontal.json +1 -0
- package/src/routes/component-data/TimelineItem.json +10 -0
- package/src/routes/component-data/TimelineItemHorizontal.json +19 -0
- package/src/routes/component-data/TimelineItemVertical.json +13 -0
- package/src/routes/component-data/Toast.json +15 -0
- package/src/routes/component-data/Toggle.json +12 -0
- package/src/routes/component-data/Toolbar.json +9 -0
- package/src/routes/component-data/ToolbarButton.json +12 -0
- package/src/routes/component-data/ToolbarGroup.json +1 -0
- package/src/routes/component-data/Tooltip.json +9 -0
- package/src/routes/component-data/Video.json +12 -0
- package/src/routes/component-data/VideoPlaceholder.json +9 -0
- package/src/routes/component-data/VoiceSearch.json +16 -0
- package/src/routes/component-data/WidgetPlaceholder.json +1 -0
- package/src/routes/component-data/Wrapper.json +10 -0
- package/src/routes/component-data/backdrop.json +9 -0
- package/src/routes/component-data/clickOutside.json +1 -0
- package/src/routes/component-data/createEventDispatcher.json +1 -0
- package/src/routes/component-data/focusTrap.json +1 -0
- package/src/routes/component-data/generateId.json +1 -0
- package/src/routes/component-data/index.json +1 -0
- package/src/routes/component-data/types.json +1 -0
- package/src/routes/docs/+layout.js +10 -0
- package/src/routes/docs/+layout.svelte +74 -0
- package/src/routes/docs/components/[slug]/+page.js +13 -0
- package/src/routes/docs/components/[slug]/+page.svelte +6 -0
- package/src/routes/docs/components/accordion.md +315 -0
- package/src/routes/docs/components/alert.md +342 -0
- package/src/routes/docs/components/avatar.md +215 -0
- package/src/routes/docs/components/badge.md +269 -0
- package/src/routes/docs/components/banner.md +166 -0
- package/src/routes/docs/components/bottom-navigation.md +397 -0
- package/src/routes/docs/components/breadcrumb.md +112 -0
- package/src/routes/docs/components/button-group.md +198 -0
- package/src/routes/docs/components/button.md +314 -0
- package/src/routes/docs/components/card.md +423 -0
- package/src/routes/docs/components/carousel.md +242 -0
- package/src/routes/docs/components/darkmode.md +111 -0
- package/src/routes/docs/components/device-mockups.md +212 -0
- package/src/routes/docs/components/drawer.md +638 -0
- package/src/routes/docs/components/dropdown.md +748 -0
- package/src/routes/docs/components/footer.md +268 -0
- package/src/routes/docs/components/forms.md +254 -0
- package/src/routes/docs/components/gallery.md +230 -0
- package/src/routes/docs/components/imageData/+server.js +43 -0
- package/src/routes/docs/components/indicators.md +273 -0
- package/src/routes/docs/components/kbd.md +248 -0
- package/src/routes/docs/components/list-group.md +157 -0
- package/src/routes/docs/components/mega-menu.md +298 -0
- package/src/routes/docs/components/modal.md +413 -0
- package/src/routes/docs/components/navbar.md +342 -0
- package/src/routes/docs/components/pagination.md +350 -0
- package/src/routes/docs/components/popover.md +388 -0
- package/src/routes/docs/components/progress.md +170 -0
- package/src/routes/docs/components/rating.md +326 -0
- package/src/routes/docs/components/sidebar.md +568 -0
- package/src/routes/docs/components/skeleton.md +165 -0
- package/src/routes/docs/components/speed-dial.md +523 -0
- package/src/routes/docs/components/spinner.md +117 -0
- package/src/routes/docs/components/tab.md +341 -0
- package/src/routes/docs/components/table.md +871 -0
- package/src/routes/docs/components/timeline.md +267 -0
- package/src/routes/docs/components/toast.md +362 -0
- package/src/routes/docs/components/tooltip.md +156 -0
- package/src/routes/docs/components/typography.md +158 -0
- package/src/routes/docs/components/video.md +125 -0
- package/src/routes/docs/examples/[slug]/+page.js +13 -0
- package/src/routes/docs/examples/[slug]/+page.svelte +6 -0
- package/src/routes/docs/examples/sidebar-layout.md +20 -0
- package/src/routes/docs/examples/snapshot.md +59 -0
- package/src/routes/docs/examples/testsnap.svelte +49 -0
- package/src/routes/docs/experimental/[slug]/+page.js +13 -0
- package/src/routes/docs/experimental/[slug]/+page.svelte +6 -0
- package/src/routes/docs/experimental/datepicker.md +131 -0
- package/src/routes/docs/extend/CheckCircle.svelte +3 -0
- package/src/routes/docs/extend/[slug]/+page.js +13 -0
- package/src/routes/docs/extend/[slug]/+page.svelte +6 -0
- package/src/routes/docs/extend/flowbite-svelte-blocks.md +28 -0
- package/src/routes/docs/extend/flowbite-svelte-starter.md +34 -0
- package/src/routes/docs/extend/icons.md +204 -0
- package/src/routes/docs/extend/step-indicator.md +162 -0
- package/src/routes/docs/forms/[slug]/+page.js +13 -0
- package/src/routes/docs/forms/[slug]/+page.svelte +6 -0
- package/src/routes/docs/forms/checkbox.md +329 -0
- package/src/routes/docs/forms/file-input.md +171 -0
- package/src/routes/docs/forms/floating-label.md +176 -0
- package/src/routes/docs/forms/input-field.md +398 -0
- package/src/routes/docs/forms/radio.md +303 -0
- package/src/routes/docs/forms/range.md +110 -0
- package/src/routes/docs/forms/search-input.md +133 -0
- package/src/routes/docs/forms/select.md +280 -0
- package/src/routes/docs/forms/textarea.md +142 -0
- package/src/routes/docs/forms/toggle.md +86 -0
- package/src/routes/docs/pages/[slug]/+page.js +13 -0
- package/src/routes/docs/pages/[slug]/+page.svelte +6 -0
- package/src/routes/docs/pages/colors.md +152 -0
- package/src/routes/docs/pages/compiler-speed.md +116 -0
- package/src/routes/docs/pages/customization.md +103 -0
- package/src/routes/docs/pages/how-to-contribute.md +138 -0
- package/src/routes/docs/pages/ide-support.md +19 -0
- package/src/routes/docs/pages/introduction.md +131 -0
- package/src/routes/docs/pages/license.md +22 -0
- package/src/routes/docs/pages/quickstart.md +128 -0
- package/src/routes/docs/pages/typescript.md +25 -0
- package/src/routes/docs/plugins/[slug]/+page.js +13 -0
- package/src/routes/docs/plugins/[slug]/+page.svelte +6 -0
- package/src/routes/docs/plugins/charts.md +990 -0
- package/src/routes/docs/typography/[slug]/+page.js +13 -0
- package/src/routes/docs/typography/[slug]/+page.svelte +6 -0
- package/src/routes/docs/typography/blockquote.md +214 -0
- package/src/routes/docs/typography/heading.md +270 -0
- package/src/routes/docs/typography/hr.md +115 -0
- package/src/routes/docs/typography/image.md +244 -0
- package/src/routes/docs/typography/link.md +147 -0
- package/src/routes/docs/typography/list.md +358 -0
- package/src/routes/docs/typography/paragraph.md +265 -0
- package/src/routes/docs/typography/text.md +340 -0
- package/src/routes/docs/utilities/[slug]/+page.js +13 -0
- package/src/routes/docs/utilities/[slug]/+page.svelte +6 -0
- package/src/routes/docs/utilities/close-button.md +42 -0
- package/src/routes/docs/utilities/label.md +41 -0
- package/src/routes/docs/utilities/toolbar.md +157 -0
- package/src/routes/landing/CTA.svelte +98 -0
- package/src/routes/landing/Components.svelte +42 -0
- package/src/routes/landing/Contributors.svelte +55 -0
- package/src/routes/landing/DesignFigma.svelte +39 -0
- package/src/routes/landing/Featured.svelte +33 -0
- package/src/routes/landing/GetStarted.svelte +23 -0
- package/src/routes/landing/Hero.svelte +38 -0
- package/src/routes/landing/SocialProof.svelte +80 -0
- package/src/routes/landing/utils/A.svelte +5 -0
- package/src/routes/landing/utils/H2.svelte +1 -0
- package/src/routes/landing/utils/Row.svelte +16 -0
- package/src/routes/landing/utils/Section.svelte +9 -0
- package/src/routes/layouts/component/+page.svelte +44 -0
- package/src/routes/layouts/component/Anchor.svelte +29 -0
- package/src/routes/layouts/component/code.svelte +1 -0
- package/src/routes/layouts/component/h1.svelte +0 -0
- package/src/routes/layouts/component/h2.svelte +5 -0
- package/src/routes/layouts/component/h3.svelte +5 -0
- package/src/routes/layouts/testLayout/+page.svelte +5 -0
- package/src/routes/utils/AlgoliaSearch.svelte +22 -0
- package/src/routes/utils/CompoAttributesViewer.svelte +78 -0
- package/src/routes/utils/CompoCard.svelte +36 -0
- package/src/routes/utils/CompoDescription.svelte +7 -0
- package/src/routes/utils/CopyCliboardInput.svelte +45 -0
- package/src/routes/utils/DocBadge.svelte +7 -0
- package/src/routes/utils/DocBadgeList.svelte +10 -0
- package/src/routes/utils/ExampleDarkMode.svelte +16 -0
- package/src/routes/utils/ExampleWrapper.svelte +143 -0
- package/src/routes/utils/Footer.svelte +64 -0
- package/src/routes/utils/GitHubSource.svelte +13 -0
- package/src/routes/utils/GitHubSourceList.svelte +21 -0
- package/src/routes/utils/MetaTag.svelte +42 -0
- package/src/routes/utils/Newsletter.svelte +52 -0
- package/src/routes/utils/PageHeadSection.svelte +20 -0
- package/src/routes/utils/Paging.svelte +60 -0
- package/src/routes/utils/TableDefaultRow.svelte +81 -0
- package/src/routes/utils/TableProp.svelte +41 -0
- package/src/routes/utils/Toc.svelte +55 -0
- package/src/routes/utils/ToolbarLink.svelte +12 -0
- package/src/routes/utils/data.json +48 -0
- package/src/routes/utils/icons/Angular.svelte +3 -0
- package/src/routes/utils/icons/ArrowLeft.svelte +3 -0
- package/src/routes/utils/icons/ArrowRight.svelte +3 -0
- package/src/routes/utils/icons/Check.svelte +3 -0
- package/src/routes/utils/icons/China.svelte +9 -0
- package/src/routes/utils/icons/Clipboard.svelte +3 -0
- package/src/routes/utils/icons/CoinbaseWallet.svelte +4 -0
- package/src/routes/utils/icons/Combinator.svelte +35 -0
- package/src/routes/utils/icons/Community.svelte +5 -0
- package/src/routes/utils/icons/Dev.svelte +9 -0
- package/src/routes/utils/icons/Discord.svelte +5 -0
- package/src/routes/utils/icons/Dribble.svelte +3 -0
- package/src/routes/utils/icons/Figma.svelte +14 -0
- package/src/routes/utils/icons/FlowbiteLogo.svelte +49 -0
- package/src/routes/utils/icons/Fortmatic.svelte +4 -0
- package/src/routes/utils/icons/Germany.svelte +5 -0
- package/src/routes/utils/icons/GitHub.svelte +13 -0
- package/src/routes/utils/icons/Hunt.svelte +17 -0
- package/src/routes/utils/icons/Italy.svelte +7 -0
- package/src/routes/utils/icons/Mail.svelte +4 -0
- package/src/routes/utils/icons/MetaMask.svelte +31 -0
- package/src/routes/utils/icons/Moon.svelte +3 -0
- package/src/routes/utils/icons/Npm.svelte +3 -0
- package/src/routes/utils/icons/OperaWallet.svelte +17 -0
- package/src/routes/utils/icons/Quote.svelte +3 -0
- package/src/routes/utils/icons/React.svelte +4 -0
- package/src/routes/utils/icons/Reddit.svelte +23 -0
- package/src/routes/utils/icons/Sun.svelte +7 -0
- package/src/routes/utils/icons/Usa.svelte +31 -0
- package/src/routes/utils/icons/Vue.svelte +3 -0
- package/src/routes/utils/icons/WalletConnect.svelte +18 -0
- package/src/routes/utils/icons/YouTube.svelte +3 -0
- package/src/routes/utils/icons/YouTubeFull.svelte +17 -0
- package/src/routes/utils/index.ts +146 -0
- package/src/routes/utils/mdsvex.d.ts +8 -0
- package/static/images/alert-prop.png +0 -0
- package/static/images/carousel/cosmic-timetraveler-pYyOZ8q7AII-unsplash.webp +0 -0
- package/static/images/carousel/cristina-gottardi-CSpjU6hYo_0-unsplash.webp +0 -0
- package/static/images/carousel/johannes-plenio-RwHv7LgeC7s-unsplash.webp +0 -0
- package/static/images/carousel/jonatan-pie-3l3RwQdHRHg-unsplash.webp +0 -0
- package/static/images/carousel/mark-harpur-K2s_YE031CA-unsplash.webp +0 -0
- package/static/images/carousel/pietro-de-grandi-T7K4aEPoGGk-unsplash.webp +0 -0
- package/static/images/carousel/sergey-pesterev-tMvuB9se2uQ-unsplash.webp +0 -0
- package/static/images/carousel/solotravelgoals-7kLufxYoqWk-unsplash.webp +0 -0
- package/static/images/carousel-1.svg +4 -0
- package/static/images/carousel-2.svg +4 -0
- package/static/images/carousel-3.svg +4 -0
- package/static/images/carousel-4.svg +4 -0
- package/static/images/carousel-5.svg +4 -0
- package/static/images/code-example-dark.png +0 -0
- package/static/images/code-example.png +0 -0
- package/static/images/colors.webp +0 -0
- package/static/images/components/accordion-dark.svg +40 -0
- package/static/images/components/accordion.svg +40 -0
- package/static/images/components/alert-dark.svg +11 -0
- package/static/images/components/alert.svg +11 -0
- package/static/images/components/avatar-dark.svg +117 -0
- package/static/images/components/avatar.svg +117 -0
- package/static/images/components/badge-dark.svg +5 -0
- package/static/images/components/badge.svg +5 -0
- package/static/images/components/banner-dark.svg +34 -0
- package/static/images/components/banner.svg +33 -0
- package/static/images/components/bottom-navigation-dark.svg +44 -0
- package/static/images/components/bottom-navigation.svg +43 -0
- package/static/images/components/breadcrumb-dark.svg +7 -0
- package/static/images/components/breadcrumb.svg +7 -0
- package/static/images/components/button-dark.svg +10 -0
- package/static/images/components/button-group-dark.svg +10 -0
- package/static/images/components/button-group.svg +10 -0
- package/static/images/components/button.svg +10 -0
- package/static/images/components/card-dark.svg +31 -0
- package/static/images/components/card.svg +32 -0
- package/static/images/components/carousel-dark.svg +13 -0
- package/static/images/components/carousel.svg +13 -0
- package/static/images/components/charts-dark.svg +29 -0
- package/static/images/components/charts.svg +29 -0
- package/static/images/components/darkmode-dark.svg +7 -0
- package/static/images/components/darkmode.svg +3 -0
- package/static/images/components/device-mockups-dark.svg +17 -0
- package/static/images/components/device-mockups.svg +17 -0
- package/static/images/components/drawer-dark.svg +32 -0
- package/static/images/components/drawer.svg +32 -0
- package/static/images/components/dropdown-dark.svg +35 -0
- package/static/images/components/dropdown.svg +35 -0
- package/static/images/components/footer-dark.svg +52 -0
- package/static/images/components/footer.svg +50 -0
- package/static/images/components/forms-dark.svg +64 -0
- package/static/images/components/forms.svg +64 -0
- package/static/images/components/gallery-dark.svg +14 -0
- package/static/images/components/gallery.svg +14 -0
- package/static/images/components/indicators-dark.svg +38 -0
- package/static/images/components/indicators.svg +38 -0
- package/static/images/components/jumbotron-dark.svg +13 -0
- package/static/images/components/jumbotron.svg +13 -0
- package/static/images/components/kbd-dark.svg +460 -0
- package/static/images/components/kbd.svg +462 -0
- package/static/images/components/list-group-dark.svg +58 -0
- package/static/images/components/list-group.svg +58 -0
- package/static/images/components/mega-menu-dark.svg +71 -0
- package/static/images/components/mega-menu.svg +71 -0
- package/static/images/components/modal-dark.svg +32 -0
- package/static/images/components/modal.svg +33 -0
- package/static/images/components/navbar-dark.svg +78 -0
- package/static/images/components/navbar.svg +78 -0
- package/static/images/components/pagination-dark.svg +50 -0
- package/static/images/components/pagination.svg +50 -0
- package/static/images/components/popover-dark.svg +18 -0
- package/static/images/components/popover.svg +17 -0
- package/static/images/components/progress-dark.svg +10 -0
- package/static/images/components/progress.svg +10 -0
- package/static/images/components/rating-dark.svg +29 -0
- package/static/images/components/rating.svg +29 -0
- package/static/images/components/sidebar-dark.svg +17 -0
- package/static/images/components/sidebar.svg +18 -0
- package/static/images/components/skeleton-dark.svg +10 -0
- package/static/images/components/skeleton.svg +10 -0
- package/static/images/components/speed-dial-dark.svg +69 -0
- package/static/images/components/speed-dial.svg +69 -0
- package/static/images/components/spinner-dark.svg +6 -0
- package/static/images/components/spinner.svg +6 -0
- package/static/images/components/stepper-dark.svg +11 -0
- package/static/images/components/stepper.svg +10 -0
- package/static/images/components/tab-dark.svg +10 -0
- package/static/images/components/tab.svg +10 -0
- package/static/images/components/table-dark.svg +47 -0
- package/static/images/components/table.svg +47 -0
- package/static/images/components/timeline-dark.svg +20 -0
- package/static/images/components/timeline.svg +20 -0
- package/static/images/components/toast-dark.svg +49 -0
- package/static/images/components/toast.svg +49 -0
- package/static/images/components/tooltip-dark.svg +7 -0
- package/static/images/components/tooltip.svg +7 -0
- package/static/images/components/typography-dark.svg +13 -0
- package/static/images/components/typography.svg +13 -0
- package/static/images/components/video-dark.svg +4 -0
- package/static/images/components/video.svg +4 -0
- package/static/images/eugene.jpg +0 -0
- package/static/images/examples/content-gallery-3.png +0 -0
- package/static/images/examples/image-1.jpg +0 -0
- package/static/images/examples/image-1@2x.jpg +0 -0
- package/static/images/examples/image-2@2x.jpg +0 -0
- package/static/images/examples/image-3@2x.jpg +0 -0
- package/static/images/examples/image-4@2x.jpg +0 -0
- package/static/images/experimental/datepicker-dark.svg +67 -0
- package/static/images/experimental/datepicker.svg +67 -0
- package/static/images/favicon.png +0 -0
- package/static/images/favicon.svg +49 -0
- package/static/images/figma-dark.png +0 -0
- package/static/images/figma.png +0 -0
- package/static/images/flowbite-svelte-blocks-optimized.png +0 -0
- package/static/images/flowbite-svelte-icon-logo.svg +49 -0
- package/static/images/flowbite-svelte-icon.svg +49 -0
- package/static/images/flowbite-svelte-og-image.png +0 -0
- package/static/images/flowbite-svelte.png +0 -0
- package/static/images/forms/checkbox-dark.svg +14 -0
- package/static/images/forms/checkbox.svg +14 -0
- package/static/images/forms/file-input-dark.svg +59 -0
- package/static/images/forms/file-input.svg +46 -0
- package/static/images/forms/floating-label-dark.svg +11 -0
- package/static/images/forms/floating-label.svg +11 -0
- package/static/images/forms/input-field-dark.svg +65 -0
- package/static/images/forms/input-field.svg +66 -0
- package/static/images/forms/radio-dark.svg +14 -0
- package/static/images/forms/radio.svg +12 -0
- package/static/images/forms/range-dark.svg +38 -0
- package/static/images/forms/range.svg +38 -0
- package/static/images/forms/search-input-dark.svg +82 -0
- package/static/images/forms/search-input.svg +82 -0
- package/static/images/forms/select-dark.svg +64 -0
- package/static/images/forms/select.svg +64 -0
- package/static/images/forms/textarea-dark.svg +16 -0
- package/static/images/forms/textarea.svg +16 -0
- package/static/images/forms/toggle-dark.svg +12 -0
- package/static/images/forms/toggle.svg +12 -0
- package/static/images/gallery-dark.png +0 -0
- package/static/images/gallery.png +0 -0
- package/static/images/graphs-dark.png +0 -0
- package/static/images/graphs.png +0 -0
- package/static/images/image-1.jpeg +0 -0
- package/static/images/image-1.png +0 -0
- package/static/images/image-1.webp +0 -0
- package/static/images/image-2.jpeg +0 -0
- package/static/images/image-2.png +0 -0
- package/static/images/image-2.webp +0 -0
- package/static/images/image-4.jpeg +0 -0
- package/static/images/image-4.png +0 -0
- package/static/images/image-4.webp +0 -0
- package/static/images/italy.png +0 -0
- package/static/images/nature-1.jpeg +0 -0
- package/static/images/office1.webp +0 -0
- package/static/images/product-1.webp +0 -0
- package/static/images/profile-picture-1.webp +0 -0
- package/static/images/profile-picture-2.webp +0 -0
- package/static/images/profile-picture-3.webp +0 -0
- package/static/images/profile-picture-4.webp +0 -0
- package/static/images/profile-picture-5.webp +0 -0
- package/static/images/sveltekit-sidebar-layout-optimized.png +0 -0
- package/static/images/tailwind-code-dark.png +0 -0
- package/static/images/tailwind-code.png +0 -0
- package/static/images/typography/blockquote-dark.svg +8 -0
- package/static/images/typography/blockquote.svg +8 -0
- package/static/images/typography/heading-dark.svg +5 -0
- package/static/images/typography/heading.svg +5 -0
- package/static/images/typography/hr-dark.svg +7 -0
- package/static/images/typography/hr.svg +7 -0
- package/static/images/typography/image-dark.svg +6 -0
- package/static/images/typography/image.svg +6 -0
- package/static/images/typography/link-dark.svg +4 -0
- package/static/images/typography/link.svg +4 -0
- package/static/images/typography/list-dark.svg +26 -0
- package/static/images/typography/list.svg +26 -0
- package/static/images/typography/paragraph-dark.svg +13 -0
- package/static/images/typography/paragraph.svg +13 -0
- package/static/images/typography/text-dark.svg +11 -0
- package/static/images/typography/text.svg +11 -0
- package/static/site.webmanifest +12 -0
- package/static/styles/docs.css +537 -0
- package/static/videos/compo-doc.gif +0 -0
- package/static/videos/flowbite.mp4 +0 -0
- package/svelte.config.js +28 -0
- package/tailwind.config.cjs +89 -0
- package/tests/components.spec.ts +199 -0
- package/tests/examples.spec.ts +11 -0
- package/tests/extend.spec.ts +19 -0
- package/tests/forms.spec.ts +62 -0
- package/tests/page.spec.ts +46 -0
- package/tests/plugins.spec.ts +7 -0
- package/tests/redirect.spec.ts +175 -0
- package/tests/typography.spec.ts +52 -0
- package/tests/utilities.spec.ts +22 -0
- package/tsconfig.json +21 -0
- package/vite.config.ts +22 -0
- package/vite.config.ts.timestamp-1692816833518-844de2c3e2008.mjs +22 -0
- package/dist/carousels/Caption.svelte +0 -17
- package/dist/carousels/Caption.svelte.d.ts +0 -26
- package/dist/carousels/Caption.svelte.d.ts.map +0 -1
- package/dist/carousels/CarouselTransition.svelte +0 -174
- package/dist/carousels/CarouselTransition.svelte.d.ts +0 -68
- package/dist/carousels/CarouselTransition.svelte.d.ts.map +0 -1
- package/dist/carousels/Indicator.svelte +0 -20
- package/dist/carousels/Indicator.svelte.d.ts +0 -28
- package/dist/carousels/Indicator.svelte.d.ts.map +0 -1
- package/dist/carousels/Slide.svelte +0 -23
- package/dist/carousels/Slide.svelte.d.ts +0 -30
- package/dist/carousels/Slide.svelte.d.ts.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import { getContext, onMount } from 'svelte';
|
|
4
|
+
import { writable } from 'svelte/store';
|
|
5
|
+
import { fade, blur, fly, slide } from 'svelte/transition';
|
|
6
|
+
import type { TransitionTypes, TransitionParamTypes } from '../types';
|
|
7
|
+
import type { AccordionCtxType } from './Accordion.svelte';
|
|
8
|
+
|
|
9
|
+
export let open: boolean = false;
|
|
10
|
+
export let activeClass: string | undefined = undefined;
|
|
11
|
+
export let inactiveClass: string | undefined = undefined;
|
|
12
|
+
export let defaultClass: string = 'flex items-center justify-between w-full font-medium text-left group-first:rounded-t-xl border-gray-200 dark:border-gray-700';
|
|
13
|
+
export let transitionType: TransitionTypes = 'slide';
|
|
14
|
+
export let transitionParams: TransitionParamTypes = {};
|
|
15
|
+
export let paddingFlush: string = 'py-5';
|
|
16
|
+
export let paddingDefault: string = 'p-5';
|
|
17
|
+
export let textFlushOpen: string = 'text-gray-900 dark:text-white';
|
|
18
|
+
export let textFlushDefault: string = 'text-gray-500 dark:text-gray-400';
|
|
19
|
+
export let borderClass: string = 'border-l border-r group-first:border-t';
|
|
20
|
+
export let borderOpenClass: string = 'border-l border-r';
|
|
21
|
+
export let borderBottomClass: string = 'border-b';
|
|
22
|
+
export let borderSharedClass: string = 'border-gray-200 dark:border-gray-700';
|
|
23
|
+
|
|
24
|
+
export let classActive: string | undefined = undefined;
|
|
25
|
+
export let classInactive: string | undefined = undefined;
|
|
26
|
+
|
|
27
|
+
let activeCls = twMerge(activeClass, classActive);
|
|
28
|
+
let inactiveCls = twMerge(inactiveClass, classInactive);
|
|
29
|
+
|
|
30
|
+
// make a custom transition function that returns the desired transition
|
|
31
|
+
const multiple = (node: HTMLElement, params: any) => {
|
|
32
|
+
switch (transitionType) {
|
|
33
|
+
case 'blur':
|
|
34
|
+
return blur(node, params);
|
|
35
|
+
case 'fly':
|
|
36
|
+
return fly(node, params);
|
|
37
|
+
case 'fade':
|
|
38
|
+
return fade(node, params);
|
|
39
|
+
default:
|
|
40
|
+
return slide(node, params);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const ctx = getContext<AccordionCtxType>('ctx') ?? {};
|
|
45
|
+
|
|
46
|
+
// single selection
|
|
47
|
+
const self = {};
|
|
48
|
+
const selected = ctx.selected ?? writable();
|
|
49
|
+
|
|
50
|
+
let _open: boolean = open;
|
|
51
|
+
open = false;
|
|
52
|
+
|
|
53
|
+
onMount(() => {
|
|
54
|
+
if (_open) $selected = self;
|
|
55
|
+
|
|
56
|
+
// this will trigger unsubscribe on destroy
|
|
57
|
+
return selected.subscribe((x) => (open = x === self));
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
const handleToggle = (_: Event) => selected.set(open ? {} : self);
|
|
61
|
+
|
|
62
|
+
let buttonClass: string;
|
|
63
|
+
$: buttonClass = twMerge([defaultClass, ctx.flush || borderClass, borderBottomClass, borderSharedClass, ctx.flush ? paddingFlush : paddingDefault, open && (ctx.flush ? textFlushOpen : activeCls || ctx.activeClass), !open && (ctx.flush ? textFlushDefault : inactiveCls || ctx.inactiveClass), $$props.class]);
|
|
64
|
+
|
|
65
|
+
$: contentClass = twMerge([ctx.flush ? paddingFlush : paddingDefault, ctx.flush ? '' : borderOpenClass, borderBottomClass, borderSharedClass]);
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<h2 class="group">
|
|
69
|
+
<button on:click={handleToggle} type="button" class={buttonClass} aria-expanded={open}>
|
|
70
|
+
<slot name="header" />
|
|
71
|
+
{#if open}
|
|
72
|
+
<slot name="arrowup">
|
|
73
|
+
<svg class="w-3 h-3 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
|
74
|
+
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5 5 1 1 5" />
|
|
75
|
+
</svg>
|
|
76
|
+
</slot>
|
|
77
|
+
{:else}
|
|
78
|
+
<slot name="arrowdown">
|
|
79
|
+
<svg class="w-3 h-3 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
|
80
|
+
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4" />
|
|
81
|
+
</svg>
|
|
82
|
+
</slot>
|
|
83
|
+
{/if}
|
|
84
|
+
</button>
|
|
85
|
+
</h2>
|
|
86
|
+
{#if open}
|
|
87
|
+
<div transition:multiple={transitionParams}>
|
|
88
|
+
<div class={contentClass}>
|
|
89
|
+
<slot />
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
{:else}
|
|
93
|
+
<div class="hidden">
|
|
94
|
+
<div class={contentClass}>
|
|
95
|
+
<slot />
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
{/if}
|
|
99
|
+
|
|
100
|
+
<!--
|
|
101
|
+
@component
|
|
102
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
103
|
+
## Props
|
|
104
|
+
@prop export let open: boolean = false;
|
|
105
|
+
@prop export let activeClass: string | undefined = undefined;
|
|
106
|
+
@prop export let inactiveClass: string | undefined = undefined;
|
|
107
|
+
@prop export let defaultClass: string = 'flex items-center justify-between w-full font-medium text-left group-first:rounded-t-xl border-gray-200 dark:border-gray-700';
|
|
108
|
+
@prop export let transitionType: TransitionTypes = 'slide';
|
|
109
|
+
@prop export let transitionParams: TransitionParamTypes = {};
|
|
110
|
+
@prop export let paddingFlush: string = 'py-5';
|
|
111
|
+
@prop export let paddingDefault: string = 'p-5';
|
|
112
|
+
@prop export let textFlushOpen: string = 'text-gray-900 dark:text-white';
|
|
113
|
+
@prop export let textFlushDefault: string = 'text-gray-500 dark:text-gray-400';
|
|
114
|
+
@prop export let borderClass: string = 'border-l border-r group-first:border-t';
|
|
115
|
+
@prop export let borderOpenClass: string = 'border-l border-r';
|
|
116
|
+
@prop export let borderBottomClass: string = 'border-b';
|
|
117
|
+
@prop export let borderSharedClass: string = 'border-gray-200 dark:border-gray-700';
|
|
118
|
+
@prop export let classActive: string | undefined = undefined;
|
|
119
|
+
@prop export let classInactive: string | undefined = undefined;
|
|
120
|
+
-->
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import { createEventDispatcher, type ComponentProps } from 'svelte';
|
|
4
|
+
import CloseButton from '../utils/CloseButton.svelte';
|
|
5
|
+
import Frame from '../utils/Frame.svelte';
|
|
6
|
+
import { fade } from 'svelte/transition';
|
|
7
|
+
import type { Dismissable } from '$lib/types';
|
|
8
|
+
|
|
9
|
+
interface $$Props extends ComponentProps<Frame>, Dismissable {}
|
|
10
|
+
|
|
11
|
+
export let dismissable: boolean = false;
|
|
12
|
+
export let defaultClass: string = 'p-4 gap-3 text-sm';
|
|
13
|
+
|
|
14
|
+
let open = true;
|
|
15
|
+
const dispatch = createEventDispatcher();
|
|
16
|
+
$: dispatch(open ? 'open' : 'close');
|
|
17
|
+
|
|
18
|
+
function close(e: MouseEvent) {
|
|
19
|
+
e.stopPropagation();
|
|
20
|
+
open = false;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
let divClass: string;
|
|
24
|
+
$: divClass = twMerge(defaultClass, ($$slots.icon || dismissable) && 'flex items-center', $$props.class);
|
|
25
|
+
|
|
26
|
+
$: {
|
|
27
|
+
// set default values
|
|
28
|
+
$$restProps.color = $$restProps.color ?? 'primary';
|
|
29
|
+
$$restProps.rounded = $$restProps.rounded ?? true;
|
|
30
|
+
if (dismissable) $$restProps.transition = $$restProps.transition ?? fade;
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
{#if open}
|
|
35
|
+
<Frame {...$$restProps} class={divClass} role="alert">
|
|
36
|
+
{#if $$slots.icon}
|
|
37
|
+
<slot name="icon" />
|
|
38
|
+
{/if}
|
|
39
|
+
|
|
40
|
+
{#if $$slots.icon || dismissable}
|
|
41
|
+
<div><slot /></div>
|
|
42
|
+
{:else}
|
|
43
|
+
<slot />
|
|
44
|
+
{/if}
|
|
45
|
+
|
|
46
|
+
{#if dismissable}
|
|
47
|
+
<slot name="close-button" {close}>
|
|
48
|
+
<CloseButton class="-my-1.5 dark:hover:bg-gray-700" color={$$restProps.color} on:click={close} on:click on:change on:keydown on:keyup on:focus on:blur on:mouseenter on:mouseleave />
|
|
49
|
+
</slot>
|
|
50
|
+
{/if}
|
|
51
|
+
</Frame>
|
|
52
|
+
{/if}
|
|
53
|
+
|
|
54
|
+
<!--
|
|
55
|
+
@component
|
|
56
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
57
|
+
## Props
|
|
58
|
+
@prop export let dismissable: boolean = false;
|
|
59
|
+
@prop export let defaultClass: string = 'p-4 gap-3 text-sm';
|
|
60
|
+
-->
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import AvatarPlaceholder from './Placeholder.svelte';
|
|
4
|
+
import Indicator from '$lib/indicators/Indicator.svelte';
|
|
5
|
+
|
|
6
|
+
export let src: string = '';
|
|
7
|
+
export let href: string | undefined = undefined;
|
|
8
|
+
export let rounded: boolean = false;
|
|
9
|
+
export let border: boolean = false;
|
|
10
|
+
export let stacked: boolean = false;
|
|
11
|
+
export let dot: object | undefined = undefined;
|
|
12
|
+
export let alt: string = '';
|
|
13
|
+
export let size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';
|
|
14
|
+
|
|
15
|
+
$: dot = dot && { placement: 'top-right', color: 'gray', size: 'lg', ...dot };
|
|
16
|
+
|
|
17
|
+
const sizes = {
|
|
18
|
+
xs: 'w-6 h-6',
|
|
19
|
+
sm: 'w-8 h-8',
|
|
20
|
+
md: 'w-10 h-10',
|
|
21
|
+
lg: 'w-20 h-20',
|
|
22
|
+
xl: 'w-36 h-36'
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
let avatarClass: string;
|
|
26
|
+
$: avatarClass = twMerge(rounded ? 'rounded' : 'rounded-full', border && 'p-1 ring-2 ring-gray-300 dark:ring-gray-500', sizes[size], stacked && 'border-2 -ml-4 border-white dark:border-gray-800', 'bg-gray-100 dark:bg-gray-600 text-gray-600 dark:text-gray-300', $$props.class);
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
{#if !src || !!href || $$slots.default || dot}
|
|
30
|
+
<svelte:element this={href ? 'a' : 'div'} {href} {...$$restProps} class="relative flex justify-center items-center {avatarClass}">
|
|
31
|
+
{#if src}
|
|
32
|
+
<img {alt} {src} class={rounded ? 'rounded' : 'rounded-full'} />
|
|
33
|
+
{:else}
|
|
34
|
+
<slot><AvatarPlaceholder {rounded} class={twMerge($$props.classPlaceholder)} /></slot>
|
|
35
|
+
{/if}
|
|
36
|
+
{#if dot}
|
|
37
|
+
<Indicator border offset={rounded} {...dot} />
|
|
38
|
+
{/if}
|
|
39
|
+
</svelte:element>
|
|
40
|
+
{:else}
|
|
41
|
+
<img {alt} {src} {...$$restProps} class={avatarClass} />
|
|
42
|
+
{/if}
|
|
43
|
+
|
|
44
|
+
<!--
|
|
45
|
+
@component
|
|
46
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
47
|
+
## Props
|
|
48
|
+
@prop export let src: string = '';
|
|
49
|
+
@prop export let href: string | undefined = undefined;
|
|
50
|
+
@prop export let rounded: boolean = false;
|
|
51
|
+
@prop export let border: boolean = false;
|
|
52
|
+
@prop export let stacked: boolean = false;
|
|
53
|
+
@prop export let dot: object | undefined = undefined;
|
|
54
|
+
@prop export let alt: string = '';
|
|
55
|
+
@prop export let size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';
|
|
56
|
+
-->
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let rounded: boolean = false;
|
|
4
|
+
let svgClass: string = twMerge('text-gray-400 bg-gray-100 dark:bg-gray-600', rounded ? 'rounded' : 'rounded-full', $$props.class);
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<svg class={svgClass} fill="currentColor" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
|
8
|
+
<path fill-rule="evenodd" d="M8 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd" />
|
|
9
|
+
</svg>
|
|
10
|
+
|
|
11
|
+
<!--
|
|
12
|
+
@component
|
|
13
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
14
|
+
## Props
|
|
15
|
+
@prop export let rounded: boolean = false;
|
|
16
|
+
-->
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { createEventDispatcher, type ComponentProps } from 'svelte';
|
|
3
|
+
import { twMerge, twJoin } from 'tailwind-merge';
|
|
4
|
+
import CloseButton from '../utils/CloseButton.svelte';
|
|
5
|
+
import { fade } from 'svelte/transition';
|
|
6
|
+
import Frame from '$lib/utils/Frame.svelte';
|
|
7
|
+
import type { Dismissable } from '$lib/types';
|
|
8
|
+
|
|
9
|
+
interface $$Props extends Omit<ComponentProps<Frame>, 'color'>, Dismissable {
|
|
10
|
+
color?: 'primary' | 'blue' | 'dark' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink' | 'none';
|
|
11
|
+
large?: boolean;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export let color: 'primary' | 'blue' | 'dark' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink' | 'none' = 'primary';
|
|
15
|
+
export let large: boolean = false;
|
|
16
|
+
export let dismissable: boolean = false;
|
|
17
|
+
|
|
18
|
+
const colors = {
|
|
19
|
+
primary: 'bg-primary-100 text-primary-800 dark:bg-primary-900 dark:text-primary-300',
|
|
20
|
+
blue: 'bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-300',
|
|
21
|
+
dark: 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300',
|
|
22
|
+
gray: 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300',
|
|
23
|
+
red: 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-300',
|
|
24
|
+
green: 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300',
|
|
25
|
+
yellow: 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-300',
|
|
26
|
+
indigo: 'bg-indigo-100 text-indigo-800 dark:bg-indigo-900 dark:text-indigo-300',
|
|
27
|
+
purple: 'bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-300',
|
|
28
|
+
pink: 'bg-pink-100 text-pink-800 dark:bg-pink-900 dark:text-pink-300',
|
|
29
|
+
none: ''
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const borderedColors = {
|
|
33
|
+
primary: 'bg-primary-100 text-primary-800 dark:bg-gray-700 dark:text-primary-400 border-primary-400 dark:border-primary-400',
|
|
34
|
+
blue: 'bg-blue-100 text-blue-800 dark:bg-gray-700 dark:text-blue-400 border-blue-400 dark:border-blue-400',
|
|
35
|
+
dark: 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-400 border-gray-500 dark:border-gray-500',
|
|
36
|
+
red: 'bg-red-100 text-red-800 dark:bg-gray-700 dark:text-red-400 border-red-400 dark:border-red-400',
|
|
37
|
+
green: 'bg-green-100 text-green-800 dark:bg-gray-700 dark:text-green-400 border-green-400 dark:border-green-400',
|
|
38
|
+
yellow: 'bg-yellow-100 text-yellow-800 dark:bg-gray-700 dark:text-yellow-300 border-yellow-300 dark:border-yellow-300',
|
|
39
|
+
indigo: 'bg-indigo-100 text-indigo-800 dark:bg-gray-700 dark:text-indigo-400 border-indigo-400 dark:border-indigo-400',
|
|
40
|
+
purple: 'bg-purple-100 text-purple-800 dark:bg-gray-700 dark:text-purple-400 border-purple-400 dark:border-purple-400',
|
|
41
|
+
pink: 'bg-pink-100 text-pink-800 dark:bg-gray-700 dark:text-pink-400 border-pink-400 dark:border-pink-400',
|
|
42
|
+
none: ''
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const hoverColors = {
|
|
46
|
+
primary: 'hover:bg-primary-200',
|
|
47
|
+
blue: 'hover:bg-blue-200',
|
|
48
|
+
dark: 'hover:bg-gray-200',
|
|
49
|
+
red: 'hover:bg-red-200',
|
|
50
|
+
green: 'hover:bg-green-200',
|
|
51
|
+
yellow: 'hover:bg-yellow-200',
|
|
52
|
+
indigo: 'hover:bg-indigo-200',
|
|
53
|
+
purple: 'hover:bg-purple-200',
|
|
54
|
+
pink: 'hover:bg-pink-200',
|
|
55
|
+
none: ''
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const baseClass: string = 'font-medium inline-flex items-center justify-center px-2.5 py-0.5';
|
|
59
|
+
|
|
60
|
+
let badgeClass: string;
|
|
61
|
+
$: badgeClass = twMerge(baseClass, large ? 'text-sm' : 'text-xs', $$restProps.border ? `border ${borderedColors[color]}` : colors[color], $$restProps.href && hoverColors[color], $$restProps.rounded ? 'rounded-full' : 'rounded', $$props.class);
|
|
62
|
+
|
|
63
|
+
// only overwrite necessary colors (<CloseButton> v0.29.10)
|
|
64
|
+
const closeBtnColors = {
|
|
65
|
+
primary: 'text-primary-400 hover:text-primary-900 dark:hover:bg-primary-800 dark:hover:text-primary-300',
|
|
66
|
+
blue: 'text-blue-400 hover:text-blue-900 dark:hover:bg-blue-800 dark:hover:text-blue-300',
|
|
67
|
+
dark: 'text-gray-400 hover:text-gray-400 hover:bg-gray-600 dark:hover:text-gray-300',
|
|
68
|
+
red: 'text-red-400 hover:text-red-900 dark:hover:bg-red-800 dark:hover:text-red-300',
|
|
69
|
+
green: 'text-green-400 hover:text-green-900 dark:hover:bg-green-800 dark:hover:text-green-300',
|
|
70
|
+
yellow: 'text-yellow-400 hover:text-yellow-900 dark:hover:bg-yellow-800 dark:hover:text-yellow-300',
|
|
71
|
+
indigo: 'text-indigo-400 hover:text-indigo-900 dark:hover:bg-indigo-800 dark:hover:text-indigo-300',
|
|
72
|
+
purple: 'text-purple-400 hover:text-purple-900 dark:hover:bg-purple-800 dark:hover:text-purple-300',
|
|
73
|
+
pink: 'text-pink-400 hover:text-pink-900 dark:hover:bg-pink-800 dark:hover:text-pink-300',
|
|
74
|
+
none: ''
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
$: {
|
|
78
|
+
if (dismissable) $$restProps.transition = $$restProps.transition ?? fade;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
let open = true;
|
|
82
|
+
const dispatch = createEventDispatcher();
|
|
83
|
+
$: dispatch(open ? 'open' : 'close');
|
|
84
|
+
const close = (e: MouseEvent) => {
|
|
85
|
+
e.stopPropagation();
|
|
86
|
+
open = false;
|
|
87
|
+
};
|
|
88
|
+
</script>
|
|
89
|
+
|
|
90
|
+
{#if open}
|
|
91
|
+
<Frame {...$$restProps} class={badgeClass}>
|
|
92
|
+
<slot />
|
|
93
|
+
{#if dismissable}
|
|
94
|
+
<slot name="close-button" {close}>
|
|
95
|
+
<CloseButton {color} on:click={close} size={large ? 'sm' : 'xs'} name="Remove badge" class="ml-1.5 -mr-1.5" />
|
|
96
|
+
</slot>
|
|
97
|
+
{/if}
|
|
98
|
+
</Frame>
|
|
99
|
+
{/if}
|
|
100
|
+
|
|
101
|
+
<!--
|
|
102
|
+
@component
|
|
103
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
104
|
+
## Props
|
|
105
|
+
@prop export let color: 'primary' | 'blue' | 'dark' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink' | 'none' = 'primary';
|
|
106
|
+
@prop export let large: boolean = false;
|
|
107
|
+
@prop export let dismissable: boolean = false;
|
|
108
|
+
-->
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import CloseButton from '../utils/CloseButton.svelte';
|
|
4
|
+
import { createEventDispatcher } from 'svelte';
|
|
5
|
+
|
|
6
|
+
export let position: 'static' | 'fixed' | 'absolute' | 'relative' | 'sticky' = 'sticky';
|
|
7
|
+
export let dismissable: boolean = true;
|
|
8
|
+
export let bannerType: 'default' | 'bottom' | 'cta' | 'signup' | 'info' = 'default';
|
|
9
|
+
export let divClass: string = 'z-10 flex justify-between p-4 dark:bg-gray-700 dark:border-gray-600';
|
|
10
|
+
export let innerClass: string = 'flex';
|
|
11
|
+
|
|
12
|
+
let open = true;
|
|
13
|
+
const dispatch = createEventDispatcher();
|
|
14
|
+
$: dispatch(open ? 'open' : 'close');
|
|
15
|
+
|
|
16
|
+
const divClasses = {
|
|
17
|
+
default: 'top-0 left-0 w-full border-b border-gray-200 bg-gray-50',
|
|
18
|
+
bottom: 'bottom-0 left-0 w-full border-t border-gray-200 bg-gray-50',
|
|
19
|
+
cta: 'flex-col md:flex-row w-[calc(100%-2rem)] -translate-x-1/2 bg-white border border-gray-100 rounded-lg shadow-sm lg:max-w-7xl left-1/2 top-6',
|
|
20
|
+
signup: 'top-0 left-0 w-full border-b border-gray-200 bg-gray-50',
|
|
21
|
+
info: 'top-0 left-0 flex-col w-full border-b border-gray-200 md:flex-row bg-gray-50'
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const insideDivClasses = {
|
|
25
|
+
default: 'items-center mx-auto',
|
|
26
|
+
bottom: 'items-center mx-auto',
|
|
27
|
+
cta: 'flex-col items-start mb-3 mr-4 md:items-center md:flex-row md:mb-0',
|
|
28
|
+
signup: 'items-center flex-shrink-0 w-full mx-auto sm:w-auto',
|
|
29
|
+
info: 'items-center flex-shrink-0'
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
$: divClass = twMerge(position, divClass, divClasses[bannerType], $$props.classDiv);
|
|
33
|
+
$: div2Class = twMerge(innerClass, insideDivClasses[bannerType], $$props.classInner);
|
|
34
|
+
|
|
35
|
+
function close(e: MouseEvent) {
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
open = false;
|
|
38
|
+
}
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
{#if open}
|
|
42
|
+
<div tabindex="-1" class={divClass} {...$$restProps}>
|
|
43
|
+
<slot name="header" />
|
|
44
|
+
<div class={div2Class}>
|
|
45
|
+
<slot />
|
|
46
|
+
</div>
|
|
47
|
+
{#if dismissable}
|
|
48
|
+
<div class="flex items-center">
|
|
49
|
+
<CloseButton class="-mx-1.5 -my-1.5" color={$$restProps.color} on:click={close} on:click on:change on:keydown on:keyup on:focus on:blur on:mouseenter on:mouseleave />
|
|
50
|
+
</div>
|
|
51
|
+
{/if}
|
|
52
|
+
</div>
|
|
53
|
+
{/if}
|
|
54
|
+
|
|
55
|
+
<!--
|
|
56
|
+
@component
|
|
57
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
58
|
+
## Props
|
|
59
|
+
@prop export let position: 'static' | 'fixed' | 'absolute' | 'relative' | 'sticky' = 'sticky';
|
|
60
|
+
@prop export let dismissable: boolean = true;
|
|
61
|
+
@prop export let bannerType: 'default' | 'bottom' | 'cta' | 'signup' | 'info' = 'default';
|
|
62
|
+
@prop export let divClass: string = 'z-10 flex justify-between p-4 dark:bg-gray-700 dark:border-gray-600';
|
|
63
|
+
@prop export let innerClass: string = 'flex';
|
|
64
|
+
-->
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<script lang="ts" context="module">
|
|
2
|
+
export type BottomNavType = {
|
|
3
|
+
activeClass: string;
|
|
4
|
+
};
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<script lang="ts">
|
|
8
|
+
import { setContext } from 'svelte';
|
|
9
|
+
import { writable } from 'svelte/store';
|
|
10
|
+
import { twMerge } from 'tailwind-merge';
|
|
11
|
+
|
|
12
|
+
export let activeUrl: string = '';
|
|
13
|
+
export let position: 'static' | 'fixed' | 'absolute' | 'relative' | 'sticky' = 'fixed';
|
|
14
|
+
export let navType: 'default' | 'border' | 'application' | 'pagination' | 'group' | 'card' | 'meeting' | 'video' = 'default';
|
|
15
|
+
export let outerClass: string = 'w-full z-50 border-gray-200 dark:bg-gray-700 dark:border-gray-600';
|
|
16
|
+
export let innerClass: string = 'grid h-full max-w-lg mx-auto';
|
|
17
|
+
export let activeClass: string = 'text-primary-700 dark:text-primary-700 hover:text-primary-900 dark:hover:text-primary-900';
|
|
18
|
+
// export let activeUrl: string = '';
|
|
19
|
+
let activeCls = '';
|
|
20
|
+
|
|
21
|
+
const activeUrlStore = writable('');
|
|
22
|
+
|
|
23
|
+
activeCls = twMerge(activeClass, $$props.classActive);
|
|
24
|
+
setContext('navType', navType);
|
|
25
|
+
setContext<BottomNavType>('bottomNavType', { activeClass: activeCls });
|
|
26
|
+
|
|
27
|
+
$: {
|
|
28
|
+
activeUrlStore.set(activeUrl);
|
|
29
|
+
}
|
|
30
|
+
setContext('activeUrl', activeUrlStore);
|
|
31
|
+
|
|
32
|
+
const outerDivClasses = {
|
|
33
|
+
default: 'bottom-0 left-0 h-16 bg-white border-t',
|
|
34
|
+
border: 'bottom-0 left-0 h-16 bg-white border-t',
|
|
35
|
+
application: 'h-16 max-w-lg -translate-x-1/2 bg-white border rounded-full bottom-4 left-1/2',
|
|
36
|
+
pagination: 'bottom-0 h-16 -translate-x-1/2 bg-white border-t left-1/2',
|
|
37
|
+
group: 'bottom-0 -translate-x-1/2 bg-white border-t left-1/2',
|
|
38
|
+
card: 'bottom-0 left-0 h-16 bg-white border-t',
|
|
39
|
+
meeting: 'bottom-0 left-0 grid h-16 grid-cols-1 px-8 bg-white border-t md:grid-cols-3',
|
|
40
|
+
video: 'bottom-0 left-0 grid h-24 grid-cols-1 px-8 bg-white border-t md:grid-cols-3'
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const innerDivClasses = {
|
|
44
|
+
default: '',
|
|
45
|
+
border: '',
|
|
46
|
+
application: '',
|
|
47
|
+
pagination: '',
|
|
48
|
+
group: '',
|
|
49
|
+
card: '',
|
|
50
|
+
meeting: 'flex items-center justify-center mx-auto',
|
|
51
|
+
video: 'flex items-center w-full'
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
$: outerCls = twMerge(position, outerClass, outerDivClasses[navType], $$props.classOuter);
|
|
55
|
+
$: innerCls = twMerge(innerClass, innerDivClasses[navType], $$props.classInner);
|
|
56
|
+
</script>
|
|
57
|
+
|
|
58
|
+
<div {...$$restProps} class={outerCls}>
|
|
59
|
+
<slot name="header" />
|
|
60
|
+
<div class={innerCls}>
|
|
61
|
+
<slot />
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<!--
|
|
66
|
+
@component
|
|
67
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
68
|
+
## Props
|
|
69
|
+
@prop export let activeUrl: string = '';
|
|
70
|
+
@prop export let position: 'static' | 'fixed' | 'absolute' | 'relative' | 'sticky' = 'fixed';
|
|
71
|
+
@prop export let navType: 'default' | 'border' | 'application' | 'pagination' | 'group' | 'card' | 'meeting' | 'video' = 'default';
|
|
72
|
+
@prop export let outerClass: string = 'w-full z-50 border-gray-200 dark:bg-gray-700 dark:border-gray-600';
|
|
73
|
+
@prop export let innerClass: string = 'grid h-full max-w-lg mx-auto';
|
|
74
|
+
@prop export let activeClass: string = 'text-primary-700 dark:text-primary-700 hover:text-primary-900 dark:hover:text-primary-900';
|
|
75
|
+
@prop export let activeUrl: string = '';
|
|
76
|
+
-->
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let outerClass: string = 'w-full';
|
|
4
|
+
export let innerClass: string = 'grid max-w-xs grid-cols-3 gap-1 p-1 mx-auto my-2 bg-gray-100 rounded-lg dark:bg-gray-600';
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class={twMerge(outerClass, $$props.classOuter)} {...$$restProps}>
|
|
8
|
+
<div class={twMerge(innerClass, $$props.classInner)} role="group">
|
|
9
|
+
<slot />
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<!--
|
|
14
|
+
@component
|
|
15
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
16
|
+
## Props
|
|
17
|
+
@prop export let outerClass: string = 'w-full';
|
|
18
|
+
@prop export let innerClass: string = 'grid max-w-xs grid-cols-3 gap-1 p-1 mx-auto my-2 bg-gray-100 rounded-lg dark:bg-gray-600';
|
|
19
|
+
-->
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let itemName: string = '';
|
|
4
|
+
export let active: boolean = false;
|
|
5
|
+
export let defaultClass: string = 'px-5 py-1.5 text-xs font-medium text-gray-900 hover:bg-gray-200 dark:text-white dark:hover:bg-gray-700 rounded-lg';
|
|
6
|
+
export let activeClass: string = 'px-5 py-1.5 text-xs font-medium text-white bg-gray-900 dark:bg-gray-300 dark:text-gray-900 rounded-lg';
|
|
7
|
+
|
|
8
|
+
$: btnClass = active ? activeClass : defaultClass;
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<button class={twMerge(btnClass, $$props.class)} {...$$restProps} on:click on:change on:keydown on:keyup on:focus on:blur on:mouseenter on:mouseleave>
|
|
12
|
+
{itemName}
|
|
13
|
+
</button>
|
|
14
|
+
|
|
15
|
+
<!--
|
|
16
|
+
@component
|
|
17
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
18
|
+
## Props
|
|
19
|
+
@prop export let itemName: string = '';
|
|
20
|
+
@prop export let active: boolean = false;
|
|
21
|
+
@prop export let defaultClass: string = 'px-5 py-1.5 text-xs font-medium text-gray-900 hover:bg-gray-200 dark:text-white dark:hover:bg-gray-700 rounded-lg';
|
|
22
|
+
@prop export let activeClass: string = 'px-5 py-1.5 text-xs font-medium text-white bg-gray-900 dark:bg-gray-300 dark:text-gray-900 rounded-lg';
|
|
23
|
+
-->
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { getContext } from 'svelte';
|
|
3
|
+
import type { ButtonClassesTypes } from '../types';
|
|
4
|
+
import type { BottomNavType } from './BottomNav.svelte';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
|
|
7
|
+
export let btnName: string = '';
|
|
8
|
+
export let appBtnPosition: 'left' | 'middle' | 'right' = 'middle';
|
|
9
|
+
export let activeClass: string | undefined = undefined;
|
|
10
|
+
export let href: string = '';
|
|
11
|
+
export let exact: boolean = true;
|
|
12
|
+
|
|
13
|
+
const navType: 'default' | 'border' | 'application' | 'pagination' | 'group' | 'card' | 'meeting' | 'video' = getContext('navType');
|
|
14
|
+
|
|
15
|
+
const context = getContext<BottomNavType>('bottomNavType') ?? {};
|
|
16
|
+
const activeUrlStore = getContext('activeUrl') as { subscribe: (callback: (value: string) => void) => void };
|
|
17
|
+
|
|
18
|
+
let navUrl = '';
|
|
19
|
+
activeUrlStore.subscribe((value) => {
|
|
20
|
+
navUrl = value;
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
$: active = navUrl && exact ? href === navUrl : navUrl ? navUrl.startsWith(href) : false;
|
|
24
|
+
const btnClasses: ButtonClassesTypes = {
|
|
25
|
+
default: 'inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800 group',
|
|
26
|
+
border: 'inline-flex flex-col items-center justify-center px-5 border-gray-200 border-x hover:bg-gray-50 dark:hover:bg-gray-800 group dark:border-gray-600',
|
|
27
|
+
application: '',
|
|
28
|
+
pagination: 'inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800 group',
|
|
29
|
+
group: 'inline-flex flex-col items-center justify-center p-4 hover:bg-gray-50 dark:hover:bg-gray-800 group',
|
|
30
|
+
card: 'inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800 group',
|
|
31
|
+
meeting: '',
|
|
32
|
+
video: ''
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const spanClasses: ButtonClassesTypes = {
|
|
36
|
+
default: 'text-sm text-gray-500 dark:text-gray-400 group-hover:text-primary-600 dark:group-hover:text-primary-500',
|
|
37
|
+
border: 'text-sm text-gray-500 dark:text-gray-400 group-hover:text-primary-600 dark:group-hover:text-primary-500',
|
|
38
|
+
application: 'sr-only',
|
|
39
|
+
pagination: 'sr-only',
|
|
40
|
+
group: 'sr-only',
|
|
41
|
+
card: 'text-sm text-gray-500 dark:text-gray-400 group-hover:text-primary-600 dark:group-hover:text-primary-500',
|
|
42
|
+
meeting: '',
|
|
43
|
+
video: ''
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const appBtnClasses = {
|
|
47
|
+
left: 'inline-flex flex-col items-center justify-center px-5 rounded-l-full hover:bg-gray-50 dark:hover:bg-gray-800 group',
|
|
48
|
+
middle: 'inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800 group',
|
|
49
|
+
right: 'inline-flex flex-col items-center justify-center px-5 rounded-r-full hover:bg-gray-50 dark:hover:bg-gray-800 group'
|
|
50
|
+
};
|
|
51
|
+
let btnClass: string;
|
|
52
|
+
|
|
53
|
+
// let active = navUrl ? href === navUrl : false;
|
|
54
|
+
|
|
55
|
+
$: btnClass = twMerge(btnClasses[navType], appBtnClasses[appBtnPosition], active && (activeClass ?? context.activeClass), $$props.btnClass);
|
|
56
|
+
|
|
57
|
+
let spanClass: string;
|
|
58
|
+
|
|
59
|
+
$: spanClass = twMerge(spanClasses[navType], active && (activeClass ?? context.activeClass), $$props.spanClass);
|
|
60
|
+
</script>
|
|
61
|
+
|
|
62
|
+
<svelte:element this={href ? 'a' : 'button'} aria-label={btnName} {href} role={href ? 'link' : 'button'} {...$$restProps} class={btnClass} on:click on:change on:keydown on:keyup on:focus on:blur on:mouseenter on:mouseleave>
|
|
63
|
+
<slot />
|
|
64
|
+
<span class={spanClass}>{btnName}</span>
|
|
65
|
+
</svelte:element>
|
|
66
|
+
|
|
67
|
+
<!--
|
|
68
|
+
@component
|
|
69
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
70
|
+
## Props
|
|
71
|
+
@prop export let btnName: string = '';
|
|
72
|
+
@prop export let appBtnPosition: 'left' | 'middle' | 'right' = 'middle';
|
|
73
|
+
@prop export let activeClass: string | undefined = undefined;
|
|
74
|
+
@prop export let href: string = '';
|
|
75
|
+
@prop export let exact: boolean = true;
|
|
76
|
+
-->
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
export let solid: boolean = false;
|
|
5
|
+
export let navClass: string = 'flex';
|
|
6
|
+
export let solidClass: string = 'flex px-5 py-3 text-gray-700 border border-gray-200 rounded-lg bg-gray-50 dark:bg-gray-800 dark:border-gray-700';
|
|
7
|
+
export let olClass: string = 'inline-flex items-center space-x-1 md:space-x-3';
|
|
8
|
+
let classNav: string = solid ? solidClass : navClass;
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<nav aria-label="Breadcrumb" {...$$restProps} class={twMerge(classNav, $$props.class)}>
|
|
12
|
+
<ol class={twMerge(olClass, $$props.classOl)}>
|
|
13
|
+
<slot />
|
|
14
|
+
</ol>
|
|
15
|
+
</nav>
|
|
16
|
+
|
|
17
|
+
<!--
|
|
18
|
+
@component
|
|
19
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
20
|
+
## Props
|
|
21
|
+
@prop export let solid: boolean = false;
|
|
22
|
+
@prop export let navClass: string = 'flex';
|
|
23
|
+
@prop export let solidClass: string = 'flex px-5 py-3 text-gray-700 border border-gray-200 rounded-lg bg-gray-50 dark:bg-gray-800 dark:border-gray-700';
|
|
24
|
+
@prop export let olClass: string = 'inline-flex items-center space-x-1 md:space-x-3';
|
|
25
|
+
-->
|