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,45 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let ratings: { label: string; rating: number }[] = [];
|
|
4
|
+
export let divClass: string = 'flex items-center mt-4';
|
|
5
|
+
export let labelClass: string = 'text-sm font-medium text-gray-600 dark:text-gray-500';
|
|
6
|
+
export let ratingDivClass: string = 'mx-4 w-2/4 h-5 bg-gray-200 rounded dark:bg-gray-700';
|
|
7
|
+
export let ratingClass: string = 'h-5 bg-yellow-400 rounded';
|
|
8
|
+
export let rightLabelClass: string = 'text-sm font-medium text-gray-600 dark:text-gray-500';
|
|
9
|
+
export let unit: string = '%';
|
|
10
|
+
|
|
11
|
+
let divCls: string = twMerge(divClass, $$props.classDiv);
|
|
12
|
+
let labelCls: string = twMerge(labelClass, $$props.classLabel);
|
|
13
|
+
let ratingDivCls: string = twMerge(ratingDivClass, $$props.classRatingDiv);
|
|
14
|
+
let ratingCls: string = twMerge(ratingClass, $$props.classRating);
|
|
15
|
+
let rightLabelCls: string = twMerge(rightLabelClass, $$props.classRightLabel);
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
{#if $$slots.rating}
|
|
19
|
+
<slot name="rating" />
|
|
20
|
+
{/if}
|
|
21
|
+
{#if $$slots.globalText}
|
|
22
|
+
<slot name="globalText" />
|
|
23
|
+
{/if}
|
|
24
|
+
{#each ratings as { label, rating }}
|
|
25
|
+
<div class={divCls}>
|
|
26
|
+
<span class={labelCls}>{label}</span>
|
|
27
|
+
<div class={ratingDivCls}>
|
|
28
|
+
<div class={ratingCls} style="width: {rating}%" />
|
|
29
|
+
</div>
|
|
30
|
+
<span class={rightLabelCls}>{rating}{unit}</span>
|
|
31
|
+
</div>
|
|
32
|
+
{/each}
|
|
33
|
+
|
|
34
|
+
<!--
|
|
35
|
+
@component
|
|
36
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
37
|
+
## Props
|
|
38
|
+
@prop export let ratings: { label: string;
|
|
39
|
+
@prop export let divClass: string = 'flex items-center mt-4';
|
|
40
|
+
@prop export let labelClass: string = 'text-sm font-medium text-gray-600 dark:text-gray-500';
|
|
41
|
+
@prop export let ratingDivClass: string = 'mx-4 w-2/4 h-5 bg-gray-200 rounded dark:bg-gray-700';
|
|
42
|
+
@prop export let ratingClass: string = 'h-5 bg-yellow-400 rounded';
|
|
43
|
+
@prop export let rightLabelClass: string = 'text-sm font-medium text-gray-600 dark:text-gray-500';
|
|
44
|
+
@prop export let unit: string = '%';
|
|
45
|
+
-->
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
export let fillPercent: number = 100;
|
|
3
|
+
export let fillColor: string = '#ff0000';
|
|
4
|
+
export let strokeColor: string = '#ff0000';
|
|
5
|
+
export let size: number = 24;
|
|
6
|
+
export let ariaLabel: string = 'heart';
|
|
7
|
+
export let id: string = 'heart';
|
|
8
|
+
export let role = 'img';
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<svg width={size} height={size} class={$$props.class} {...$$restProps} aria-label={ariaLabel} viewBox="0 0 24 24" {role} stroke-width="1.5" stroke="currentColor" fill="none" on:click>
|
|
12
|
+
<defs>
|
|
13
|
+
<linearGradient {id}>
|
|
14
|
+
{#if fillPercent !== 100}
|
|
15
|
+
<stop offset="0%" stop-color={fillColor} />
|
|
16
|
+
<stop offset="{fillPercent}%" stop-color={fillColor} />
|
|
17
|
+
<stop offset="{fillPercent}%" stop-color="transparent" />
|
|
18
|
+
<stop offset="100%" stop-color="transparent" />
|
|
19
|
+
{:else}
|
|
20
|
+
<stop offset="0%" stop-color={fillColor} />
|
|
21
|
+
<stop offset="100%" stop-color={fillColor} />
|
|
22
|
+
{/if}
|
|
23
|
+
</linearGradient>
|
|
24
|
+
</defs>
|
|
25
|
+
<path fill="url(#{id})" stroke={strokeColor} stroke-linecap="round" stroke-linejoin="round" d="M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z" />
|
|
26
|
+
</svg>
|
|
27
|
+
|
|
28
|
+
<!--
|
|
29
|
+
@component
|
|
30
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
31
|
+
## Props
|
|
32
|
+
@prop export let fillPercent: number = 100;
|
|
33
|
+
@prop export let fillColor: string = '#ff0000';
|
|
34
|
+
@prop export let strokeColor: string = '#ff0000';
|
|
35
|
+
@prop export let size: number = 24;
|
|
36
|
+
@prop export let ariaLabel: string = 'heart';
|
|
37
|
+
@prop export let id: string = 'heart';
|
|
38
|
+
@prop export let role = 'img';
|
|
39
|
+
-->
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Star from './Star.svelte';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
import generateId from '../utils/generateId.js';
|
|
5
|
+
import type { ComponentType } from 'svelte';
|
|
6
|
+
|
|
7
|
+
export let divClass: string = 'flex items-center';
|
|
8
|
+
export let size: number = 24;
|
|
9
|
+
export let total: number = 5;
|
|
10
|
+
export let rating: number = 4;
|
|
11
|
+
export let partialId: string = 'partialStar' + generateId();
|
|
12
|
+
export let icon: ComponentType = Star;
|
|
13
|
+
export let count: boolean = false;
|
|
14
|
+
|
|
15
|
+
// generate unique id for full star and gray star
|
|
16
|
+
const fullStarId: string = generateId();
|
|
17
|
+
const grayStarId: string = generateId();
|
|
18
|
+
let fullStars: number = Math.floor(rating);
|
|
19
|
+
let rateDiffence = rating - fullStars;
|
|
20
|
+
let percentRating = Math.round(rateDiffence * 100);
|
|
21
|
+
let grayStars: number = total - (fullStars + Math.ceil(rateDiffence));
|
|
22
|
+
// console.log(fullStars, grayStars, rateDiffence, percentRating)
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<div class={twMerge(divClass, $$props.class)}>
|
|
26
|
+
{#if count}
|
|
27
|
+
<svelte:component this={icon} fillPercent={100} {size} />
|
|
28
|
+
<p class="ml-2 text-sm font-bold text-gray-900 dark:text-white">{rating}</p>
|
|
29
|
+
<slot />
|
|
30
|
+
{:else}
|
|
31
|
+
{#each Array(fullStars) as star}
|
|
32
|
+
<svelte:component this={icon} {size} fillPercent={100} id={fullStarId} />
|
|
33
|
+
{/each}
|
|
34
|
+
{#if percentRating}
|
|
35
|
+
<svelte:component this={icon} {size} fillPercent={percentRating} id={partialId} />
|
|
36
|
+
{/if}
|
|
37
|
+
{#each Array(grayStars) as star}
|
|
38
|
+
<svelte:component this={icon} {size} fillPercent={0} id={grayStarId} />
|
|
39
|
+
{/each}
|
|
40
|
+
{#if $$slots.text}
|
|
41
|
+
<slot name="text" />
|
|
42
|
+
{/if}
|
|
43
|
+
{/if}
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<!--
|
|
47
|
+
@component
|
|
48
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
49
|
+
## Props
|
|
50
|
+
@prop export let divClass: string = 'flex items-center';
|
|
51
|
+
@prop export let size: number = 24;
|
|
52
|
+
@prop export let total: number = 5;
|
|
53
|
+
@prop export let rating: number = 4;
|
|
54
|
+
@prop export let partialId: string = 'partialStar' + generateId();
|
|
55
|
+
@prop export let icon: ComponentType = Star;
|
|
56
|
+
@prop export let count: boolean = false;
|
|
57
|
+
-->
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Button from '../buttons/Button.svelte';
|
|
3
|
+
import Rating from './Rating.svelte';
|
|
4
|
+
// default is floor
|
|
5
|
+
export let ceil: boolean = false;
|
|
6
|
+
export let helpfullink: string = '';
|
|
7
|
+
export let abuselink: string = '';
|
|
8
|
+
export let comment: {
|
|
9
|
+
id: string;
|
|
10
|
+
user: {
|
|
11
|
+
name: string;
|
|
12
|
+
img: {
|
|
13
|
+
src: string;
|
|
14
|
+
alt: string;
|
|
15
|
+
};
|
|
16
|
+
joined: string;
|
|
17
|
+
};
|
|
18
|
+
total: number;
|
|
19
|
+
rating: number;
|
|
20
|
+
heading: string;
|
|
21
|
+
address: string;
|
|
22
|
+
datetime: string;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
let roundedRating: number = ceil ? Math.ceil(comment.rating) : Math.floor(comment.rating);
|
|
26
|
+
let grayStars: number = comment.total - roundedRating;
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<article>
|
|
30
|
+
<div class="flex items-center mb-4 space-x-4">
|
|
31
|
+
<img class="w-10 h-10 rounded-full" src={comment.user.img.src} alt={comment.user.img.alt} />
|
|
32
|
+
<div class="space-y-1 font-medium dark:text-white">
|
|
33
|
+
<p>
|
|
34
|
+
{comment.user.name}
|
|
35
|
+
<time datetime="2014-08-16 19:00" class="block text-sm text-gray-500 dark:text-gray-400">
|
|
36
|
+
{comment.user.joined}
|
|
37
|
+
</time>
|
|
38
|
+
</p>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="flex items-center mb-1">
|
|
42
|
+
<Rating total={comment.total} rating={comment.rating}>
|
|
43
|
+
<p slot="text" class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">
|
|
44
|
+
{comment.rating} out of {comment.total}
|
|
45
|
+
</p>
|
|
46
|
+
</Rating>
|
|
47
|
+
{#if comment.heading}
|
|
48
|
+
<h3 class="ml-2 text-sm font-semibold text-gray-900 dark:text-white">
|
|
49
|
+
{comment.heading}
|
|
50
|
+
</h3>
|
|
51
|
+
{/if}
|
|
52
|
+
</div>
|
|
53
|
+
{#if comment.address || comment.datetime}
|
|
54
|
+
<footer class="mb-5 text-sm text-gray-500 dark:text-gray-400">
|
|
55
|
+
<p>Reviewed in {comment.address} on {comment.datetime}</p>
|
|
56
|
+
</footer>
|
|
57
|
+
{/if}
|
|
58
|
+
<slot />
|
|
59
|
+
<aside>
|
|
60
|
+
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">
|
|
61
|
+
<slot name="evaluation" />
|
|
62
|
+
</p>
|
|
63
|
+
{#if helpfullink || abuselink}
|
|
64
|
+
<div class="flex items-center mt-3 space-x-3 divide-x divide-gray-200 dark:divide-gray-600">
|
|
65
|
+
{#if helpfullink}
|
|
66
|
+
<Button size="xs" href="/" color="dark">Helpful</Button>
|
|
67
|
+
{/if}
|
|
68
|
+
{#if abuselink}
|
|
69
|
+
<a href={abuselink} class="pl-4 text-sm font-medium text-primary-600 hover:underline dark:text-primary-500"> Report abuse </a>
|
|
70
|
+
{/if}
|
|
71
|
+
</div>
|
|
72
|
+
{/if}
|
|
73
|
+
</aside>
|
|
74
|
+
</article>
|
|
75
|
+
|
|
76
|
+
<!--
|
|
77
|
+
@component
|
|
78
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
79
|
+
## Props
|
|
80
|
+
@prop export let ceil: boolean = false;
|
|
81
|
+
@prop export let helpfullink: string = '';
|
|
82
|
+
@prop export let abuselink: string = '';
|
|
83
|
+
@prop export let comment: {
|
|
84
|
+
id: string;
|
|
85
|
+
-->
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { ReviewType } from '../types';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
|
|
5
|
+
export let review: ReviewType;
|
|
6
|
+
export let articleClass: string = 'md:gap-8 md:grid md:grid-cols-3';
|
|
7
|
+
export let divClass: string = 'flex items-center mb-6 space-x-4';
|
|
8
|
+
export let imgClass: string = 'w-10 h-10 rounded-full';
|
|
9
|
+
export let ulClass: string = 'space-y-4 text-sm text-gray-500 dark:text-gray-400';
|
|
10
|
+
export let liClass: string = 'flex items-center';
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<article class={twMerge(articleClass, $$props.classArticle)}>
|
|
14
|
+
<div>
|
|
15
|
+
<div class={twMerge(divClass, $$props.classDiv)}>
|
|
16
|
+
<img class={twMerge(imgClass, $$props.classImg)} src={review.imgSrc} alt={review.imgAlt} />
|
|
17
|
+
<div class="space-y-1 font-medium dark:text-white">
|
|
18
|
+
<p>{review.name}</p>
|
|
19
|
+
{#if review.address}
|
|
20
|
+
<div class="flex items-center text-sm text-gray-500 dark:text-gray-400">
|
|
21
|
+
<slot name="address" />
|
|
22
|
+
</div>
|
|
23
|
+
{/if}
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
{#if $$slots.item1 || $$slots.item2 || $$slots.item3}
|
|
27
|
+
<ul class={twMerge(ulClass, $$props.classUl)}>
|
|
28
|
+
{#if $$slots.item1}
|
|
29
|
+
<li class={twMerge(liClass, $$props.classLi)}>
|
|
30
|
+
<slot name="item1" />
|
|
31
|
+
</li>
|
|
32
|
+
{/if}
|
|
33
|
+
{#if $$slots.item2}
|
|
34
|
+
<li class={twMerge(liClass, $$props.classLi)}>
|
|
35
|
+
<slot name="item2" />
|
|
36
|
+
</li>
|
|
37
|
+
{/if}
|
|
38
|
+
{#if $$slots.item3}
|
|
39
|
+
<li class={twMerge(liClass, $$props.classLi)}>
|
|
40
|
+
<slot name="item3" />
|
|
41
|
+
</li>
|
|
42
|
+
{/if}
|
|
43
|
+
</ul>
|
|
44
|
+
{/if}
|
|
45
|
+
</div>
|
|
46
|
+
<div class="col-span-2 mt-6 md:mt-0">
|
|
47
|
+
<div class="flex items-start mb-5">
|
|
48
|
+
<div class="pr-4">
|
|
49
|
+
{#if review.reviewDate}
|
|
50
|
+
<footer>
|
|
51
|
+
<p class="mb-2 text-sm text-gray-500 dark:text-gray-400">
|
|
52
|
+
Reviewed: {review.reviewDate}
|
|
53
|
+
</p>
|
|
54
|
+
</footer>
|
|
55
|
+
{/if}
|
|
56
|
+
<h4 class="text-xl font-bold text-gray-900 dark:text-white">
|
|
57
|
+
{review.title}
|
|
58
|
+
</h4>
|
|
59
|
+
</div>
|
|
60
|
+
<p class="bg-primary-700 text-white text-sm font-semibold inline-flex items-center p-1.5 rounded">
|
|
61
|
+
{review.rating}
|
|
62
|
+
</p>
|
|
63
|
+
</div>
|
|
64
|
+
<slot />
|
|
65
|
+
</div>
|
|
66
|
+
</article>
|
|
67
|
+
|
|
68
|
+
<!--
|
|
69
|
+
@component
|
|
70
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
71
|
+
## Props
|
|
72
|
+
@prop export let review: ReviewType;
|
|
73
|
+
@prop export let articleClass: string = 'md:gap-8 md:grid md:grid-cols-3';
|
|
74
|
+
@prop export let divClass: string = 'flex items-center mb-6 space-x-4';
|
|
75
|
+
@prop export let imgClass: string = 'w-10 h-10 rounded-full';
|
|
76
|
+
@prop export let ulClass: string = 'space-y-4 text-sm text-gray-500 dark:text-gray-400';
|
|
77
|
+
@prop export let liClass: string = 'flex items-center';
|
|
78
|
+
-->
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
export let ratings: { label: string; rating: number }[] = [];
|
|
3
|
+
export let ratings2: { label: string; rating: number }[] = [];
|
|
4
|
+
export let headerLabel: {
|
|
5
|
+
desc1: string;
|
|
6
|
+
desc2: string;
|
|
7
|
+
desc3: string;
|
|
8
|
+
link: { label: string; url: string };
|
|
9
|
+
};
|
|
10
|
+
export let desc1Class: string = 'bg-primary-100 w-8 text-primary-800 text-sm font-semibold inline-flex items-center p-1.5 rounded dark:bg-primary-200 dark:text-primary-800';
|
|
11
|
+
export let desc2Class: string = 'ml-2 w-24 font-medium text-gray-900 dark:text-white';
|
|
12
|
+
export let desc3spanClass: string = 'mx-2 w-1 h-1 bg-gray-900 rounded-full dark:bg-gray-500';
|
|
13
|
+
export let desc3pClass: string = 'text-sm w-24 font-medium text-gray-500 dark:text-gray-400';
|
|
14
|
+
export let linkClass: string = 'ml-auto w-32 text-sm font-medium text-primary-600 hover:underline dark:text-primary-500';
|
|
15
|
+
export let barColor: string = 'bg-primary-600 h-2.5 rounded dark:bg-primary-500';
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<div class="flex items-center mb-5">
|
|
19
|
+
{#if headerLabel.desc1}
|
|
20
|
+
<p class={desc1Class}>{headerLabel.desc1}</p>
|
|
21
|
+
{/if}
|
|
22
|
+
{#if headerLabel.desc2}
|
|
23
|
+
<p class={desc2Class}>{headerLabel.desc2}</p>
|
|
24
|
+
{/if}
|
|
25
|
+
{#if headerLabel.desc3}
|
|
26
|
+
<span class={desc3spanClass} />
|
|
27
|
+
<p class={desc3pClass}>{headerLabel.desc3}</p>
|
|
28
|
+
{/if}
|
|
29
|
+
{#if headerLabel.link}
|
|
30
|
+
<a href={headerLabel.link.url} class={linkClass}>{headerLabel.link.label}</a>
|
|
31
|
+
{/if}
|
|
32
|
+
</div>
|
|
33
|
+
<div class="gap-8 sm:grid sm:grid-cols-2">
|
|
34
|
+
<div>
|
|
35
|
+
{#each ratings as { label, rating }}
|
|
36
|
+
<dl>
|
|
37
|
+
<dt class="text-sm font-medium text-gray-500 dark:text-gray-400">{label}</dt>
|
|
38
|
+
<dd class="flex items-center mb-3">
|
|
39
|
+
<div class="w-full bg-gray-200 rounded h-2.5 dark:bg-gray-700 mr-2">
|
|
40
|
+
<div class={barColor} style="width: {rating * 10}%" />
|
|
41
|
+
</div>
|
|
42
|
+
<span class="text-sm font-medium text-gray-500 dark:text-gray-400">{rating}</span>
|
|
43
|
+
</dd>
|
|
44
|
+
</dl>
|
|
45
|
+
{/each}
|
|
46
|
+
</div>
|
|
47
|
+
<div>
|
|
48
|
+
{#each ratings2 as { label, rating }}
|
|
49
|
+
<dl>
|
|
50
|
+
<dt class="text-sm font-medium text-gray-500 dark:text-gray-400">{label}</dt>
|
|
51
|
+
<dd class="flex items-center mb-3">
|
|
52
|
+
<div class="w-full bg-gray-200 rounded h-2.5 dark:bg-gray-700 mr-2">
|
|
53
|
+
<div class={barColor} style="width: {rating * 10}%" />
|
|
54
|
+
</div>
|
|
55
|
+
<span class="text-sm font-medium text-gray-500 dark:text-gray-400">{rating}</span>
|
|
56
|
+
</dd>
|
|
57
|
+
</dl>
|
|
58
|
+
{/each}
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<!--
|
|
63
|
+
@component
|
|
64
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
65
|
+
## Props
|
|
66
|
+
@prop export let ratings: { label: string;
|
|
67
|
+
@prop export let ratings2: { label: string;
|
|
68
|
+
@prop export let headerLabel: {
|
|
69
|
+
desc1: string;
|
|
70
|
+
@prop export let desc1Class: string = 'bg-primary-100 w-8 text-primary-800 text-sm font-semibold inline-flex items-center p-1.5 rounded dark:bg-primary-200 dark:text-primary-800';
|
|
71
|
+
@prop export let desc2Class: string = 'ml-2 w-24 font-medium text-gray-900 dark:text-white';
|
|
72
|
+
@prop export let desc3spanClass: string = 'mx-2 w-1 h-1 bg-gray-900 rounded-full dark:bg-gray-500';
|
|
73
|
+
@prop export let desc3pClass: string = 'text-sm w-24 font-medium text-gray-500 dark:text-gray-400';
|
|
74
|
+
@prop export let linkClass: string = 'ml-auto w-32 text-sm font-medium text-primary-600 hover:underline dark:text-primary-500';
|
|
75
|
+
@prop export let barColor: string = 'bg-primary-600 h-2.5 rounded dark:bg-primary-500';
|
|
76
|
+
-->
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import generateId from '$lib/utils/generateId';
|
|
3
|
+
|
|
4
|
+
export let fillPercent: number = 100;
|
|
5
|
+
export let fillColor: string = '#F5CA14';
|
|
6
|
+
export let strokeColor: string = '#F5CA14';
|
|
7
|
+
export let size: number = 24;
|
|
8
|
+
export let ariaLabel: string = 'star';
|
|
9
|
+
export let id: string = generateId();
|
|
10
|
+
export let role = 'img';
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<svg width={size} height={size} {...$$restProps} class={$$props.class} aria-label={ariaLabel} viewBox="100 100 120 120" {role} on:click>
|
|
14
|
+
<defs>
|
|
15
|
+
<linearGradient {id}>
|
|
16
|
+
{#if fillPercent !== 100}
|
|
17
|
+
<stop offset="0%" stop-color={fillColor} />
|
|
18
|
+
<stop offset="{fillPercent}%" stop-color={fillColor} />
|
|
19
|
+
<stop offset="{fillPercent}%" stop-color="transparent" />
|
|
20
|
+
<stop offset="100%" stop-color="transparent" />
|
|
21
|
+
{:else}
|
|
22
|
+
<stop offset="0%" stop-color={fillColor} />
|
|
23
|
+
<stop offset="100%" stop-color={fillColor} />
|
|
24
|
+
{/if}
|
|
25
|
+
</linearGradient>
|
|
26
|
+
</defs>
|
|
27
|
+
<g fill="url(#{id})" stroke={strokeColor} stroke-width="2">
|
|
28
|
+
<polygon
|
|
29
|
+
points="165.000, 185.000, 188.511, 197.361, 184.021, 171.180,
|
|
30
|
+
203.042, 152.639, 176.756, 148.820, 165.000, 125.000,
|
|
31
|
+
153.244, 148.820, 126.958, 152.639, 145.979, 171.180,
|
|
32
|
+
141.489, 197.361, 165.000, 185.000" />
|
|
33
|
+
</g>
|
|
34
|
+
</svg>
|
|
35
|
+
|
|
36
|
+
<!--
|
|
37
|
+
@component
|
|
38
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
39
|
+
## Props
|
|
40
|
+
@prop export let fillPercent: number = 100;
|
|
41
|
+
@prop export let fillColor: string = '#F5CA14';
|
|
42
|
+
@prop export let strokeColor: string = '#F5CA14';
|
|
43
|
+
@prop export let size: number = 24;
|
|
44
|
+
@prop export let ariaLabel: string = 'star';
|
|
45
|
+
@prop export let id: string = generateId();
|
|
46
|
+
@prop export let role = 'img';
|
|
47
|
+
-->
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
export let fillPercent: number = 100;
|
|
3
|
+
export let fillColor: string = '#00b500';
|
|
4
|
+
export let strokeColor: string = '#00b500';
|
|
5
|
+
export let size: number = 24;
|
|
6
|
+
export let ariaLabel: string = 'thumbup';
|
|
7
|
+
export let id: string = 'thumbup';
|
|
8
|
+
export let role = 'img';
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<svg width={size} height={size} {...$$restProps} class={$$props.class} aria-label={ariaLabel} viewBox="0 0 24 24" {role} stroke-width="1.5" stroke="currentColor" fill="none" on:click>
|
|
12
|
+
<defs>
|
|
13
|
+
<linearGradient {id}>
|
|
14
|
+
{#if fillPercent !== 100}
|
|
15
|
+
<stop offset="0%" stop-color={fillColor} />
|
|
16
|
+
<stop offset="{fillPercent}%" stop-color={fillColor} />
|
|
17
|
+
<stop offset="{fillPercent}%" stop-color="transparent" />
|
|
18
|
+
<stop offset="100%" stop-color="transparent" />
|
|
19
|
+
{:else}
|
|
20
|
+
<stop offset="0%" stop-color={fillColor} />
|
|
21
|
+
<stop offset="100%" stop-color={fillColor} />
|
|
22
|
+
{/if}
|
|
23
|
+
</linearGradient>
|
|
24
|
+
</defs>
|
|
25
|
+
<path fill="url(#{id})" stroke={strokeColor} stroke-linecap="round" stroke-linejoin="round" d="M6.633 10.5c.806 0 1.533-.446 2.031-1.08a9.041 9.041 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75A2.25 2.25 0 0116.5 4.5c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H13.48c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23H5.904M14.25 9h2.25M5.904 18.75c.083.205.173.405.27.602.197.4-.078.898-.523.898h-.908c-.889 0-1.713-.518-1.972-1.368a12 12 0 01-.521-3.507c0-1.553.295-3.036.831-4.398C3.387 10.203 4.167 9.75 5 9.75h1.053c.472 0 .745.556.5.96a8.958 8.958 0 00-1.302 4.665c0 1.194.232 2.333.654 3.375z" />
|
|
26
|
+
</svg>
|
|
27
|
+
|
|
28
|
+
<!--
|
|
29
|
+
@component
|
|
30
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
31
|
+
## Props
|
|
32
|
+
@prop export let fillPercent: number = 100;
|
|
33
|
+
@prop export let fillColor: string = '#00b500';
|
|
34
|
+
@prop export let strokeColor: string = '#00b500';
|
|
35
|
+
@prop export let size: number = 24;
|
|
36
|
+
@prop export let ariaLabel: string = 'thumbup';
|
|
37
|
+
@prop export let id: string = 'thumbup';
|
|
38
|
+
@prop export let role = 'img';
|
|
39
|
+
-->
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<script lang="ts" context="module">
|
|
2
|
+
export type SidebarType = {
|
|
3
|
+
activeClass: string;
|
|
4
|
+
nonActiveClass: string;
|
|
5
|
+
};
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<script lang="ts">
|
|
9
|
+
import { setContext } from 'svelte';
|
|
10
|
+
import { twMerge } from 'tailwind-merge';
|
|
11
|
+
import { writable } from 'svelte/store';
|
|
12
|
+
|
|
13
|
+
const activeUrlStore = writable('');
|
|
14
|
+
|
|
15
|
+
export let activeUrl: string = '';
|
|
16
|
+
export let asideClass: string = 'w-64';
|
|
17
|
+
export let nonActiveClass: string = 'flex items-center p-2 text-base font-normal text-gray-900 rounded-lg dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700';
|
|
18
|
+
export let activeClass: string = 'flex items-center p-2 text-base font-normal text-gray-900 bg-gray-200 dark:bg-gray-700 rounded-lg dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700';
|
|
19
|
+
|
|
20
|
+
setContext<SidebarType>('sidebarContext', { activeClass, nonActiveClass });
|
|
21
|
+
|
|
22
|
+
$: {
|
|
23
|
+
activeUrlStore.set(activeUrl);
|
|
24
|
+
}
|
|
25
|
+
setContext('activeUrl', activeUrlStore);
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<aside {...$$restProps} class={twMerge(asideClass, $$props.class)} aria-label="Sidebar">
|
|
29
|
+
<slot />
|
|
30
|
+
</aside>
|
|
31
|
+
|
|
32
|
+
<!--
|
|
33
|
+
@component
|
|
34
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
35
|
+
## Props
|
|
36
|
+
@prop export let activeUrl: string = '';
|
|
37
|
+
@prop export let asideClass: string = 'w-64';
|
|
38
|
+
@prop export let nonActiveClass: string = 'flex items-center p-2 text-base font-normal text-gray-900 rounded-lg dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700';
|
|
39
|
+
@prop export let activeClass: string = 'flex items-center p-2 text-base font-normal text-gray-900 bg-gray-200 dark:bg-gray-700 rounded-lg dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700';
|
|
40
|
+
-->
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import type { SiteType } from '../types';
|
|
4
|
+
|
|
5
|
+
export let site: SiteType;
|
|
6
|
+
export let aClass: string = 'flex items-center pl-2.5 mb-5';
|
|
7
|
+
export let imgClass: string = 'h-6 mr-3 sm:h-7';
|
|
8
|
+
export let spanClass: string = 'self-center text-xl font-semibold whitespace-nowrap dark:text-white';
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<a {...$$restProps} href={site.href} class={twMerge(aClass, $$props.class)}>
|
|
12
|
+
<img src={site.img} class={imgClass} alt={site.name} />
|
|
13
|
+
<span class={spanClass}>{site.name}</span>
|
|
14
|
+
</a>
|
|
15
|
+
|
|
16
|
+
<!--
|
|
17
|
+
@component
|
|
18
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
19
|
+
## Props
|
|
20
|
+
@prop export let site: SiteType;
|
|
21
|
+
@prop export let aClass: string = 'flex items-center pl-2.5 mb-5';
|
|
22
|
+
@prop export let imgClass: string = 'h-6 mr-3 sm:h-7';
|
|
23
|
+
@prop export let spanClass: string = 'self-center text-xl font-semibold whitespace-nowrap dark:text-white';
|
|
24
|
+
-->
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
export let divWrapperClass: string = 'p-4 mt-6 bg-primary-50 rounded-lg dark:bg-primary-900';
|
|
5
|
+
export let divClass: string = 'flex items-center mb-3';
|
|
6
|
+
export let spanClass: string = 'bg-primary-100 text-primary-800 text-sm font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-primary-200 dark:text-primary-900';
|
|
7
|
+
export let label: string = '';
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<div {...$$restProps} id="dropdown-cta" class={twMerge(divWrapperClass, $$props.class)} role="alert">
|
|
11
|
+
<div class={divClass}>
|
|
12
|
+
<span class={spanClass}>{label}</span>
|
|
13
|
+
{#if $$slots.icon}
|
|
14
|
+
<slot name="icon" />
|
|
15
|
+
{/if}
|
|
16
|
+
</div>
|
|
17
|
+
<slot />
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<!--
|
|
21
|
+
@component
|
|
22
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
23
|
+
## Props
|
|
24
|
+
@prop export let divWrapperClass: string = 'p-4 mt-6 bg-primary-50 rounded-lg dark:bg-primary-900';
|
|
25
|
+
@prop export let divClass: string = 'flex items-center mb-3';
|
|
26
|
+
@prop export let spanClass: string = 'bg-primary-100 text-primary-800 text-sm font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-primary-200 dark:text-primary-900';
|
|
27
|
+
@prop export let label: string = '';
|
|
28
|
+
-->
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
export let aClass: string = 'flex items-center p-2 pl-11 w-full text-base font-normal text-gray-900 rounded-lg transition duration-75 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700';
|
|
5
|
+
export let href: string = '';
|
|
6
|
+
export let label: string = '';
|
|
7
|
+
export let activeClass: string = 'flex items-center p-2 pl-11 text-base font-normal text-gray-900 bg-gray-200 dark:bg-gray-700 rounded-lg dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700';
|
|
8
|
+
export let active: boolean = false;
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<li>
|
|
12
|
+
<a {...$$restProps} {href} on:blur on:click on:focus on:keydown on:keypress on:keyup on:mouseenter on:mouseleave on:mouseover class={twMerge(active ? activeClass : aClass, $$props.class)}>
|
|
13
|
+
{label}
|
|
14
|
+
</a>
|
|
15
|
+
</li>
|
|
16
|
+
|
|
17
|
+
<!--
|
|
18
|
+
@component
|
|
19
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
20
|
+
## Props
|
|
21
|
+
@prop export let aClass: string = 'flex items-center p-2 pl-11 w-full text-base font-normal text-gray-900 rounded-lg transition duration-75 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700';
|
|
22
|
+
@prop export let href: string = '';
|
|
23
|
+
@prop export let label: string = '';
|
|
24
|
+
@prop export let activeClass: string = 'flex items-center p-2 pl-11 text-base font-normal text-gray-900 bg-gray-200 dark:bg-gray-700 rounded-lg dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700';
|
|
25
|
+
@prop export let active: boolean = false;
|
|
26
|
+
-->
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import { fade, blur, fly, slide } from 'svelte/transition';
|
|
4
|
+
import type { TransitionTypes, TransitionParamTypes } from '../types';
|
|
5
|
+
|
|
6
|
+
export let btnClass: string = 'flex items-center p-2 w-full text-base font-normal text-gray-900 rounded-lg transition duration-75 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700';
|
|
7
|
+
export let label: string = '';
|
|
8
|
+
export let spanClass: string = 'flex-1 ml-3 text-left whitespace-nowrap';
|
|
9
|
+
export let ulClass: string = 'py-2 space-y-2';
|
|
10
|
+
export let transitionType: TransitionTypes = 'slide';
|
|
11
|
+
export let transitionParams: TransitionParamTypes = {};
|
|
12
|
+
|
|
13
|
+
// make a custom transition function that returns the desired transition
|
|
14
|
+
const multiple = (node: HTMLElement, params: any) => {
|
|
15
|
+
switch (transitionType) {
|
|
16
|
+
case 'blur':
|
|
17
|
+
return blur(node, params);
|
|
18
|
+
case 'fly':
|
|
19
|
+
return fly(node, params);
|
|
20
|
+
case 'fade':
|
|
21
|
+
return fade(node, params);
|
|
22
|
+
default:
|
|
23
|
+
return slide(node, params);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export let isOpen = false;
|
|
28
|
+
const handleDropdown = () => {
|
|
29
|
+
isOpen = !isOpen;
|
|
30
|
+
};
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<li>
|
|
34
|
+
<button {...$$restProps} on:click={() => handleDropdown()} type="button" class={twMerge(btnClass, $$props.class)} aria-controls="sidebar-dropdown">
|
|
35
|
+
<slot name="icon" />
|
|
36
|
+
<span class={spanClass}>{label}</span>
|
|
37
|
+
{#if isOpen}
|
|
38
|
+
{#if $$slots.arrowup}
|
|
39
|
+
<slot name="arrowup" />
|
|
40
|
+
{:else}
|
|
41
|
+
<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">
|
|
42
|
+
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5 5 1 1 5" />
|
|
43
|
+
</svg>
|
|
44
|
+
{/if}
|
|
45
|
+
{:else if $$slots.arrowdown}
|
|
46
|
+
<slot name="arrowdown" />
|
|
47
|
+
{:else}
|
|
48
|
+
<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">
|
|
49
|
+
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4" />
|
|
50
|
+
</svg>
|
|
51
|
+
{/if}
|
|
52
|
+
</button>
|
|
53
|
+
{#if isOpen}
|
|
54
|
+
<ul class={ulClass} transition:multiple={transitionParams}>
|
|
55
|
+
<slot />
|
|
56
|
+
</ul>
|
|
57
|
+
{/if}
|
|
58
|
+
</li>
|
|
59
|
+
|
|
60
|
+
<!--
|
|
61
|
+
@component
|
|
62
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
63
|
+
## Props
|
|
64
|
+
@prop export let btnClass: string = 'flex items-center p-2 w-full text-base font-normal text-gray-900 rounded-lg transition duration-75 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700';
|
|
65
|
+
@prop export let label: string = '';
|
|
66
|
+
@prop export let spanClass: string = 'flex-1 ml-3 text-left whitespace-nowrap';
|
|
67
|
+
@prop export let ulClass: string = 'py-2 space-y-2';
|
|
68
|
+
@prop export let transitionType: TransitionTypes = 'slide';
|
|
69
|
+
@prop export let transitionParams: TransitionParamTypes = {};
|
|
70
|
+
@prop export let isOpen = false;
|
|
71
|
+
-->
|