flowbite-svelte 0.44.8 → 0.44.10
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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -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 +225 -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 +19 -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,81 @@
|
|
|
1
|
+
<script lang="ts" context="module">
|
|
2
|
+
export type DropdownType = {
|
|
3
|
+
activeClass: string;
|
|
4
|
+
};
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<script lang="ts">
|
|
8
|
+
import { twMerge } from 'tailwind-merge';
|
|
9
|
+
import Popper from '$lib/utils/Popper.svelte';
|
|
10
|
+
import type { ComponentProps } from 'svelte';
|
|
11
|
+
import { setContext } from 'svelte';
|
|
12
|
+
import { writable } from 'svelte/store';
|
|
13
|
+
|
|
14
|
+
const activeUrlStore = writable('');
|
|
15
|
+
|
|
16
|
+
export let activeUrl: string = '';
|
|
17
|
+
export let open: boolean = false;
|
|
18
|
+
export let containerClass: string = 'divide-y z-50';
|
|
19
|
+
export let headerClass: string = 'py-1 overflow-hidden rounded-t-lg';
|
|
20
|
+
export let footerClass: string = 'py-1 overflow-hidden rounded-b-lg';
|
|
21
|
+
export let activeClass: string = 'text-primary-700 dark:text-primary-700 hover:text-primary-900 dark:hover:text-primary-900';
|
|
22
|
+
|
|
23
|
+
let activeCls = twMerge(activeClass, $$props.classActive);
|
|
24
|
+
|
|
25
|
+
setContext<DropdownType>('DropdownType', { activeClass: activeCls });
|
|
26
|
+
|
|
27
|
+
$: activeUrlStore.set(activeUrl);
|
|
28
|
+
|
|
29
|
+
setContext('activeUrl', activeUrlStore);
|
|
30
|
+
// propagate props type from underlying Frame
|
|
31
|
+
interface $$Props extends ComponentProps<Popper> {
|
|
32
|
+
open?: boolean;
|
|
33
|
+
containerClass?: string;
|
|
34
|
+
headerClass?: string;
|
|
35
|
+
footerClass?: string;
|
|
36
|
+
activeUrl?: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
let containerCls: string = twMerge(containerClass, $$props.classContainer);
|
|
40
|
+
let headerCls: string = twMerge(headerClass, $$props.classHeader);
|
|
41
|
+
let ulCls: string = twMerge('py-1', $$props.class);
|
|
42
|
+
let footerCls: string = twMerge(footerClass, $$props.classFooter);
|
|
43
|
+
|
|
44
|
+
$: {
|
|
45
|
+
// set default values
|
|
46
|
+
$$restProps.arrow = $$restProps.arrow ?? false;
|
|
47
|
+
$$restProps.trigger = $$restProps.trigger ?? 'click';
|
|
48
|
+
$$restProps.placement = $$restProps.placement ?? 'bottom';
|
|
49
|
+
$$restProps.color = $$restProps.color ?? 'dropdown';
|
|
50
|
+
$$restProps.shadow = $$restProps.shadow ?? true;
|
|
51
|
+
$$restProps.rounded = $$restProps.rounded ?? true;
|
|
52
|
+
}
|
|
53
|
+
</script>
|
|
54
|
+
|
|
55
|
+
<Popper activeContent {...$$restProps} class={containerCls} on:show bind:open>
|
|
56
|
+
{#if $$slots.header}
|
|
57
|
+
<div class={headerCls}>
|
|
58
|
+
<slot name="header" />
|
|
59
|
+
</div>
|
|
60
|
+
{/if}
|
|
61
|
+
<ul class={ulCls}>
|
|
62
|
+
<slot />
|
|
63
|
+
</ul>
|
|
64
|
+
{#if $$slots.footer}
|
|
65
|
+
<div class={footerCls}>
|
|
66
|
+
<slot name="footer" />
|
|
67
|
+
</div>
|
|
68
|
+
{/if}
|
|
69
|
+
</Popper>
|
|
70
|
+
|
|
71
|
+
<!--
|
|
72
|
+
@component
|
|
73
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
74
|
+
## Props
|
|
75
|
+
@prop export let activeUrl: string = '';
|
|
76
|
+
@prop export let open: boolean = false;
|
|
77
|
+
@prop export let containerClass: string = 'divide-y z-50';
|
|
78
|
+
@prop export let headerClass: string = 'py-1 overflow-hidden rounded-t-lg';
|
|
79
|
+
@prop export let footerClass: string = 'py-1 overflow-hidden rounded-b-lg';
|
|
80
|
+
@prop export let activeClass: string = 'text-primary-700 dark:text-primary-700 hover:text-primary-900 dark:hover:text-primary-900';
|
|
81
|
+
-->
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let divClass: string = 'my-1 h-px bg-gray-100 dark:bg-gray-600';
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<div {...$$restProps} class={twMerge(divClass, $$props.class)} />
|
|
7
|
+
|
|
8
|
+
<!--
|
|
9
|
+
@component
|
|
10
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
11
|
+
## Props
|
|
12
|
+
@prop export let divClass: string = 'my-1 h-px bg-gray-100 dark:bg-gray-600';
|
|
13
|
+
-->
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import DropdownDivider from './DropdownDivider.svelte';
|
|
4
|
+
export let divClass: string = 'py-2 px-4 text-gray-700 dark:text-white';
|
|
5
|
+
export let divider: boolean = true;
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<div {...$$restProps} class={twMerge(divClass, $$props.class)}>
|
|
9
|
+
<slot />
|
|
10
|
+
</div>
|
|
11
|
+
{#if divider}
|
|
12
|
+
<DropdownDivider />
|
|
13
|
+
{/if}
|
|
14
|
+
|
|
15
|
+
<!--
|
|
16
|
+
@component
|
|
17
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
18
|
+
## Props
|
|
19
|
+
@prop export let divClass: string = 'py-2 px-4 text-gray-700 dark:text-white';
|
|
20
|
+
@prop export let divider: boolean = true;
|
|
21
|
+
-->
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Wrapper from '$lib/utils/Wrapper.svelte';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
import { getContext } from 'svelte';
|
|
5
|
+
import type { DropdownType } from './Dropdown.svelte';
|
|
6
|
+
|
|
7
|
+
export let defaultClass: string = 'font-medium py-2 px-4 text-sm hover:bg-gray-100 dark:hover:bg-gray-600';
|
|
8
|
+
export let href: string | undefined = undefined;
|
|
9
|
+
export let activeClass: string | undefined = undefined;
|
|
10
|
+
// export let active: boolean = false;
|
|
11
|
+
|
|
12
|
+
const context = getContext<DropdownType>('DropdownType') ?? {};
|
|
13
|
+
const activeUrlStore = getContext('activeUrl') as { subscribe: (callback: (value: string) => void) => void };
|
|
14
|
+
|
|
15
|
+
let sidebarUrl = '';
|
|
16
|
+
activeUrlStore.subscribe((value) => {
|
|
17
|
+
// console.log('value: ', value)
|
|
18
|
+
sidebarUrl = value;
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
$: active = sidebarUrl ? href === sidebarUrl : false;
|
|
22
|
+
|
|
23
|
+
// let liClass: string;
|
|
24
|
+
$: liClass = twMerge(defaultClass, href ? 'block' : 'w-full text-left', active && (activeClass ?? context.activeClass), $$props.class);
|
|
25
|
+
// twMerge(active ? activeClass ?? context.activeClass : nonActiveClass ?? context.nonActiveClass, $$props.class);
|
|
26
|
+
// console.log('active: ', active)
|
|
27
|
+
let wrap: boolean = true;
|
|
28
|
+
function init(node: HTMLElement) {
|
|
29
|
+
wrap = node.parentElement?.tagName === 'UL';
|
|
30
|
+
}
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<Wrapper tag="li" show={wrap} use={init}>
|
|
34
|
+
<svelte:element this={href ? 'a' : 'button'} {href} type={href ? undefined : 'button'} role={href ? 'link' : 'button'} {...$$restProps} class={liClass} on:click on:change on:keydown on:keyup on:focus on:blur on:mouseenter on:mouseleave>
|
|
35
|
+
<slot />
|
|
36
|
+
</svelte:element>
|
|
37
|
+
</Wrapper>
|
|
38
|
+
|
|
39
|
+
<!--
|
|
40
|
+
@component
|
|
41
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
42
|
+
## Props
|
|
43
|
+
@prop export let defaultClass: string = 'font-medium py-2 px-4 text-sm hover:bg-gray-100 dark:hover:bg-gray-600';
|
|
44
|
+
@prop export let href: string | undefined = undefined;
|
|
45
|
+
@prop export let activeClass: string | undefined = undefined;
|
|
46
|
+
@prop export let active: boolean = false;
|
|
47
|
+
-->
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
export let footerType: 'sitemap' | 'default' | 'logo' | 'socialmedia' = 'default';
|
|
5
|
+
|
|
6
|
+
let footerClass = twMerge(footerType === 'sitemap' && 'bg-gray-800', footerType === 'socialmedia' && 'p-4 bg-white sm:p-6 dark:bg-gray-800', footerType === 'logo' && 'p-4 bg-white rounded-lg shadow md:px-6 md:py-8 dark:bg-gray-800', footerType === 'default' && 'p-4 bg-white rounded-lg shadow md:flex md:items-center md:justify-between md:p-6 dark:bg-gray-800', $$props.class);
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<footer {...$$restProps} class={footerClass}>
|
|
10
|
+
<slot />
|
|
11
|
+
</footer>
|
|
12
|
+
|
|
13
|
+
<!--
|
|
14
|
+
@component
|
|
15
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
16
|
+
## Props
|
|
17
|
+
@prop export let footerType: 'sitemap' | 'default' | 'logo' | 'socialmedia' = 'default';
|
|
18
|
+
-->
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let aClass: string = 'flex items-center';
|
|
4
|
+
export let spanClass: string = 'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
|
|
5
|
+
export let imgClass: string = 'mr-3 h-8';
|
|
6
|
+
export let href: string = '';
|
|
7
|
+
export let src: string = '';
|
|
8
|
+
export let alt: string = '';
|
|
9
|
+
export let name: string = '';
|
|
10
|
+
export let target: string | undefined = undefined;
|
|
11
|
+
|
|
12
|
+
let aCls: string = twMerge(aClass, $$props.classA);
|
|
13
|
+
let spanCls: string = twMerge(spanClass, $$props.classSpan);
|
|
14
|
+
let imgCls: string = twMerge(imgClass, $$props.classImg);
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
{#if href}
|
|
18
|
+
<a {...$$restProps} {href} {target} class={aCls}>
|
|
19
|
+
<img {src} class={imgCls} {alt} />
|
|
20
|
+
<span class={spanCls}>{name}</span>
|
|
21
|
+
<slot />
|
|
22
|
+
</a>
|
|
23
|
+
{:else}
|
|
24
|
+
<img {...$$restProps} {src} class={imgCls} {alt} />
|
|
25
|
+
{/if}
|
|
26
|
+
|
|
27
|
+
<!--
|
|
28
|
+
@component
|
|
29
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
30
|
+
## Props
|
|
31
|
+
@prop export let aClass: string = 'flex items-center';
|
|
32
|
+
@prop export let spanClass: string = 'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
|
|
33
|
+
@prop export let imgClass: string = 'mr-3 h-8';
|
|
34
|
+
@prop export let href: string = '';
|
|
35
|
+
@prop export let src: string = '';
|
|
36
|
+
@prop export let alt: string = '';
|
|
37
|
+
@prop export let name: string = '';
|
|
38
|
+
@prop export let target: string | undefined = undefined;
|
|
39
|
+
-->
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let spanClass: string = 'block text-sm text-gray-500 sm:text-center dark:text-gray-400';
|
|
4
|
+
export let aClass: string = 'hover:underline';
|
|
5
|
+
export let year: number = new Date().getFullYear();
|
|
6
|
+
export let href: string = '';
|
|
7
|
+
export let by: string = '';
|
|
8
|
+
export let target: string | undefined = undefined;
|
|
9
|
+
export let copyrightMessage: string = 'All Rights Reserved.';
|
|
10
|
+
|
|
11
|
+
let spanCls: string = twMerge(spanClass, $$props.classSpan);
|
|
12
|
+
let aCls: string = twMerge(aClass, $$props.classA);
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<span class={spanCls}>
|
|
16
|
+
© {year}
|
|
17
|
+
{#if href}
|
|
18
|
+
<a {...$$restProps} {href} {target} class={aCls}>
|
|
19
|
+
{by}
|
|
20
|
+
</a>
|
|
21
|
+
{:else}
|
|
22
|
+
<span class="ml-1">{by}</span>
|
|
23
|
+
{/if}
|
|
24
|
+
{copyrightMessage}
|
|
25
|
+
</span>
|
|
26
|
+
|
|
27
|
+
<!--
|
|
28
|
+
@component
|
|
29
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
30
|
+
## Props
|
|
31
|
+
@prop export let spanClass: string = 'block text-sm text-gray-500 sm:text-center dark:text-gray-400';
|
|
32
|
+
@prop export let aClass: string = 'hover:underline';
|
|
33
|
+
@prop export let year: number = new Date().getFullYear();
|
|
34
|
+
@prop export let href: string = '';
|
|
35
|
+
@prop export let by: string = '';
|
|
36
|
+
@prop export let target: string | undefined = undefined;
|
|
37
|
+
@prop export let copyrightMessage: string = 'All Rights Reserved.';
|
|
38
|
+
-->
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let href: string = '';
|
|
4
|
+
export let ariaLabel: string = '';
|
|
5
|
+
export let aClass: string = 'text-gray-500 hover:text-gray-900 dark:hover:text-white';
|
|
6
|
+
export let target: string | undefined = undefined;
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
{#if href}
|
|
10
|
+
<a {...$$restProps} {href} {target} aria-label={ariaLabel} class={twMerge(aClass, $$props.class)}>
|
|
11
|
+
<slot />
|
|
12
|
+
</a>
|
|
13
|
+
{:else}
|
|
14
|
+
<slot />
|
|
15
|
+
{/if}
|
|
16
|
+
|
|
17
|
+
<!--
|
|
18
|
+
@component
|
|
19
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
20
|
+
## Props
|
|
21
|
+
@prop export let href: string = '';
|
|
22
|
+
@prop export let ariaLabel: string = '';
|
|
23
|
+
@prop export let aClass: string = 'text-gray-500 hover:text-gray-900 dark:hover:text-white';
|
|
24
|
+
@prop export let target: string | undefined = undefined;
|
|
25
|
+
-->
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let liClass: string = 'mr-4 last:mr-0 md:mr-6';
|
|
4
|
+
export let aClass: string = 'hover:underline';
|
|
5
|
+
export let href: string = '';
|
|
6
|
+
export let target: string | undefined = undefined;
|
|
7
|
+
|
|
8
|
+
let liCls: string = twMerge(liClass, $$props.classLi);
|
|
9
|
+
let aCls: string = twMerge(aClass, $$props.classA);
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<li class={liCls}>
|
|
13
|
+
<a {...$$restProps} {href} class={aCls} {target}>
|
|
14
|
+
<slot />
|
|
15
|
+
</a>
|
|
16
|
+
</li>
|
|
17
|
+
|
|
18
|
+
<!--
|
|
19
|
+
@component
|
|
20
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
21
|
+
## Props
|
|
22
|
+
@prop export let liClass: string = 'mr-4 last:mr-0 md:mr-6';
|
|
23
|
+
@prop export let aClass: string = 'hover:underline';
|
|
24
|
+
@prop export let href: string = '';
|
|
25
|
+
@prop export let target: string | undefined = undefined;
|
|
26
|
+
-->
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let ulClass: string = 'text-gray-600 dark:text-gray-400';
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<ul class={twMerge(ulClass, $$props.class)}>
|
|
7
|
+
<slot />
|
|
8
|
+
</ul>
|
|
9
|
+
|
|
10
|
+
<!--
|
|
11
|
+
@component
|
|
12
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
13
|
+
## Props
|
|
14
|
+
@prop export let ulClass: string = 'text-gray-600 dark:text-gray-400';
|
|
15
|
+
-->
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import { getContext } from 'svelte';
|
|
4
|
+
import type { FormColorType } from '../types';
|
|
5
|
+
import { labelClass, inputClass } from './Radio.svelte';
|
|
6
|
+
import Label from './Label.svelte';
|
|
7
|
+
|
|
8
|
+
// properties forwarding
|
|
9
|
+
export let color: FormColorType = 'primary';
|
|
10
|
+
export let custom: boolean = false;
|
|
11
|
+
export let inline: boolean = false;
|
|
12
|
+
export let group: (string | number)[] = [];
|
|
13
|
+
export let value: string | number = 'on';
|
|
14
|
+
export let checked: boolean | undefined = undefined;
|
|
15
|
+
export let spacing: string = 'mr-2';
|
|
16
|
+
|
|
17
|
+
// tinted if put in component having its own background
|
|
18
|
+
let background: boolean = getContext('background');
|
|
19
|
+
|
|
20
|
+
// react on external group changes
|
|
21
|
+
function init(_: HTMLElement, _group: (string | number)[]) {
|
|
22
|
+
if (checked === undefined) checked = _group.includes(value);
|
|
23
|
+
onChange();
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
update(_group: (string | number)[]) {
|
|
27
|
+
checked = _group.includes(value);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function onChange() {
|
|
33
|
+
// There's a bug in Svelte and bind:group is not working with wrapped checkbox
|
|
34
|
+
// This workaround is taken from:
|
|
35
|
+
// https://svelte.dev/repl/de117399559f4e7e9e14e2fc9ab243cc?version=3.12.1
|
|
36
|
+
const index = group.indexOf(value);
|
|
37
|
+
|
|
38
|
+
if (checked === undefined) checked = index >= 0;
|
|
39
|
+
|
|
40
|
+
if (checked) {
|
|
41
|
+
if (index < 0) {
|
|
42
|
+
group.push(value);
|
|
43
|
+
group = group;
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
if (index >= 0) {
|
|
47
|
+
group.splice(index, 1);
|
|
48
|
+
group = group;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
</script>
|
|
53
|
+
|
|
54
|
+
<Label class={labelClass(inline, $$props.class)} show={$$slots.default}>
|
|
55
|
+
<input use:init={group} type="checkbox" bind:checked on:keyup on:keydown on:keypress on:focus on:blur on:click on:mouseover on:mouseenter on:mouseleave on:paste on:change={onChange} on:change {value} {...$$restProps} class={twMerge(spacing, inputClass(custom, color, true, background, $$slots.default || $$props.class))} />
|
|
56
|
+
<slot />
|
|
57
|
+
</Label>
|
|
58
|
+
|
|
59
|
+
<!--
|
|
60
|
+
@component
|
|
61
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
62
|
+
## Props
|
|
63
|
+
@prop export let color: FormColorType = 'primary';
|
|
64
|
+
@prop export let custom: boolean = false;
|
|
65
|
+
@prop export let inline: boolean = false;
|
|
66
|
+
@prop export let group: (string | number)[] = [];
|
|
67
|
+
@prop export let value: string | number = 'on';
|
|
68
|
+
@prop export let checked: boolean | undefined = undefined;
|
|
69
|
+
@prop export let spacing: string = 'mr-2';
|
|
70
|
+
-->
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
export let value: string = '';
|
|
5
|
+
export let files: FileList | undefined = undefined;
|
|
6
|
+
export let defaultClass: string = 'flex flex-col justify-center items-center w-full h-64 bg-gray-50 rounded-lg border-2 border-gray-300 border-dashed cursor-pointer dark:hover:bg-bray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600';
|
|
7
|
+
|
|
8
|
+
let input: HTMLInputElement;
|
|
9
|
+
|
|
10
|
+
function keydown(ev: KeyboardEvent) {
|
|
11
|
+
if ([' ', 'Enter'].includes(ev.key)) {
|
|
12
|
+
ev.preventDefault();
|
|
13
|
+
input.click();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<button class={twMerge(defaultClass, $$props.class)} on:keydown={keydown} on:focus on:blur on:mouseenter on:mouseleave on:mouseover on:dragenter on:dragleave on:dragover on:drop type="button">
|
|
19
|
+
<label class="flex flex-col items-center" tabIndex="0">
|
|
20
|
+
<slot />
|
|
21
|
+
<input {...$$restProps} bind:value bind:files bind:this={input} on:change on:click type="file" class="hidden" />
|
|
22
|
+
</label>
|
|
23
|
+
</button>
|
|
24
|
+
|
|
25
|
+
<!--
|
|
26
|
+
@component
|
|
27
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
28
|
+
## Props
|
|
29
|
+
@prop export let value: string = '';
|
|
30
|
+
@prop export let files: FileList | undefined = undefined;
|
|
31
|
+
@prop export let defaultClass: string = 'flex flex-col justify-center items-center w-full h-64 bg-gray-50 rounded-lg border-2 border-gray-300 border-dashed cursor-pointer dark:hover:bg-bray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600';
|
|
32
|
+
-->
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import Input from './Input.svelte';
|
|
4
|
+
|
|
5
|
+
export let value: string = '';
|
|
6
|
+
export let files: FileList | undefined = undefined;
|
|
7
|
+
export let inputClass: string = 'border !p-0 dark:text-gray-400';
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<Input {...$$restProps} class={twMerge(inputClass, $$props.class)} let:props>
|
|
11
|
+
<input type="file" on:change on:keyup on:keydown on:keypress on:focus on:blur on:click on:mouseover on:mouseenter on:mouseleave on:paste bind:value bind:files {...props} />
|
|
12
|
+
</Input>
|
|
13
|
+
|
|
14
|
+
<!--
|
|
15
|
+
@component
|
|
16
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
17
|
+
## Props
|
|
18
|
+
@prop export let value: string = '';
|
|
19
|
+
@prop export let files: FileList | undefined = undefined;
|
|
20
|
+
@prop export let inputClass: string = 'border !p-0 dark:text-gray-400';
|
|
21
|
+
-->
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import generateId from '../utils/generateId.js';
|
|
4
|
+
import type { InputType } from '../types';
|
|
5
|
+
|
|
6
|
+
export let id: string = generateId();
|
|
7
|
+
export let style: 'filled' | 'outlined' | 'standard' = 'standard';
|
|
8
|
+
export let type: InputType = 'text';
|
|
9
|
+
export let size: 'small' | 'default' = 'default';
|
|
10
|
+
export let color: 'base' | 'green' | 'red' = 'base';
|
|
11
|
+
export let value: any = undefined;
|
|
12
|
+
export let label: string = '';
|
|
13
|
+
|
|
14
|
+
const divClasses = {
|
|
15
|
+
filled: 'relative',
|
|
16
|
+
outlined: 'relative',
|
|
17
|
+
standard: 'relative z-0'
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const inputSizes = {
|
|
21
|
+
filled: {
|
|
22
|
+
small: 'px-2.5 pb-1.5 pt-4',
|
|
23
|
+
default: 'px-2.5 pb-2.5 pt-5'
|
|
24
|
+
},
|
|
25
|
+
outlined: {
|
|
26
|
+
small: 'px-2.5 pb-1.5 pt-3',
|
|
27
|
+
default: 'px-2.5 pb-2.5 pt-4'
|
|
28
|
+
},
|
|
29
|
+
standard: {
|
|
30
|
+
small: 'py-2 px-0',
|
|
31
|
+
default: 'py-2.5 px-0'
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const labelSizes = {
|
|
36
|
+
filled: {
|
|
37
|
+
small: 'top-3',
|
|
38
|
+
default: 'top-4'
|
|
39
|
+
},
|
|
40
|
+
outlined: {
|
|
41
|
+
small: 'top-1',
|
|
42
|
+
default: 'top-2'
|
|
43
|
+
},
|
|
44
|
+
standard: {
|
|
45
|
+
small: 'top-3',
|
|
46
|
+
default: 'top-3'
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const inputClasses = {
|
|
51
|
+
filled: 'block rounded-t-lg w-full text-sm text-gray-900 bg-gray-50 dark:bg-gray-700 border-0 border-b-2 appearance-none dark:text-white focus:outline-none focus:ring-0 peer',
|
|
52
|
+
outlined: 'block w-full text-sm text-gray-900 bg-transparent rounded-lg border-1 appearance-none dark:text-white focus:outline-none focus:ring-0 peer',
|
|
53
|
+
standard: 'block w-full text-sm text-gray-900 bg-transparent border-0 border-b-2 appearance-none dark:text-white focus:outline-none focus:ring-0 peer'
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const labelClasses = {
|
|
57
|
+
filled: 'absolute text-sm duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] left-2.5 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4',
|
|
58
|
+
outlined: 'absolute text-sm duration-300 transform -translate-y-4 scale-75 top-2 z-10 origin-[0] bg-white dark:bg-gray-900 px-2 peer-focus:px-2 peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:top-1/2 peer-focus:top-2 peer-focus:scale-75 peer-focus:-translate-y-4 left-1',
|
|
59
|
+
standard: 'absolute text-sm duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:left-0 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6'
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const inputColorClasses = {
|
|
63
|
+
base: 'border-gray-300 dark:border-gray-600 dark:focus:border-primary-500 focus:border-primary-600',
|
|
64
|
+
green: 'border-green-600 dark:border-green-500 dark:focus:border-green-500 focus:border-green-600',
|
|
65
|
+
red: 'border-red-600 dark:border-red-500 dark:focus:border-red-500 focus:border-red-600'
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const labelColorClasses = {
|
|
69
|
+
base: 'text-gray-500 dark:text-gray-400 peer-focus:text-primary-600 peer-focus:dark:text-primary-500',
|
|
70
|
+
green: 'text-green-600 dark:text-green-500',
|
|
71
|
+
red: 'text-red-600 dark:text-red-500'
|
|
72
|
+
};
|
|
73
|
+
</script>
|
|
74
|
+
|
|
75
|
+
<div class={twMerge(divClasses[style], $$props.classDiv)}>
|
|
76
|
+
<input {id} {...$$restProps} bind:value on:blur on:change on:click on:focus on:input on:keydown on:keypress on:keyup on:mouseenter on:mouseleave on:mouseover on:paste {...{ type }} placeholder=" " class={twMerge(inputClasses[style], inputColorClasses[color], inputSizes[style][size], $$props.classInput)} />
|
|
77
|
+
|
|
78
|
+
<label for={id} class={twMerge(labelClasses[style], labelColorClasses[color], labelSizes[style][size], $$props.classLabel)}>
|
|
79
|
+
{label}
|
|
80
|
+
</label>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<!--
|
|
84
|
+
@component
|
|
85
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
86
|
+
## Props
|
|
87
|
+
@prop export let id: string = generateId();
|
|
88
|
+
@prop export let style: 'filled' | 'outlined' | 'standard' = 'standard';
|
|
89
|
+
@prop export let type: InputType = 'text';
|
|
90
|
+
@prop export let size: 'small' | 'default' = 'default';
|
|
91
|
+
@prop export let color: 'base' | 'green' | 'red' = 'base';
|
|
92
|
+
@prop export let value: any = undefined;
|
|
93
|
+
@prop export let label: string = '';
|
|
94
|
+
-->
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
export let helperClass: string = 'text-xs font-normal text-gray-500 dark:text-gray-300';
|
|
4
|
+
export let color: 'gray' | 'green' | 'red' | 'disabled' = 'gray';
|
|
5
|
+
const colorClasses = {
|
|
6
|
+
gray: 'text-gray-900 dark:text-gray-300',
|
|
7
|
+
green: 'text-green-700 dark:text-green-500',
|
|
8
|
+
red: 'text-red-700 dark:text-red-500',
|
|
9
|
+
disabled: 'text-gray-400 dark:text-gray-500'
|
|
10
|
+
};
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<p {...$$restProps} class={twMerge(helperClass, colorClasses[color], $$props.class)}>
|
|
14
|
+
<slot />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<!--
|
|
18
|
+
@component
|
|
19
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
20
|
+
## Props
|
|
21
|
+
@prop export let helperClass: string = 'text-xs font-normal text-gray-500 dark:text-gray-300';
|
|
22
|
+
@prop export let color: 'gray' | 'green' | 'red' | 'disabled' = 'gray';
|
|
23
|
+
-->
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script context="module" lang="ts">
|
|
2
|
+
import type { SizeType, FormSizeType } from '$lib/types';
|
|
3
|
+
export function clampSize(s: SizeType) {
|
|
4
|
+
return s && s === 'xs' ? 'sm' : s === 'xl' ? 'lg' : s;
|
|
5
|
+
}
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<script lang="ts">
|
|
9
|
+
import Wrapper from '$lib/utils/Wrapper.svelte';
|
|
10
|
+
import { twMerge } from 'tailwind-merge';
|
|
11
|
+
import { getContext } from 'svelte';
|
|
12
|
+
import type { InputType } from '../types';
|
|
13
|
+
|
|
14
|
+
export let type: InputType = 'text';
|
|
15
|
+
export let value: any = undefined;
|
|
16
|
+
export let size: FormSizeType | undefined = undefined;
|
|
17
|
+
export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50';
|
|
18
|
+
export let color: 'base' | 'green' | 'red' = 'base';
|
|
19
|
+
export let floatClass: string = 'flex absolute inset-y-0 items-center text-gray-500 dark:text-gray-400';
|
|
20
|
+
|
|
21
|
+
const borderClasses = {
|
|
22
|
+
base: 'border-gray-300 dark:border-gray-600',
|
|
23
|
+
tinted: 'border-gray-300 dark:border-gray-500',
|
|
24
|
+
green: 'border-green-500 dark:border-green-400',
|
|
25
|
+
red: 'border-red-500 dark:border-red-400'
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const ringClasses = {
|
|
29
|
+
base: 'focus:border-primary-500 focus:ring-primary-500 dark:focus:border-primary-500 dark:focus:ring-primary-500',
|
|
30
|
+
green: 'focus:ring-green-500 focus:border-green-500 dark:focus:border-green-500 dark:focus:ring-green-500',
|
|
31
|
+
red: 'focus:ring-red-500 focus:border-red-500 dark:focus:ring-red-500 dark:focus:border-red-500'
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const colorClasses = {
|
|
35
|
+
base: 'bg-gray-50 text-gray-900 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400',
|
|
36
|
+
tinted: 'bg-gray-50 text-gray-900 dark:bg-gray-600 dark:text-white dark:placeholder-gray-400',
|
|
37
|
+
green: 'bg-green-50 text-green-900 placeholder-green-700 dark:text-green-400 dark:placeholder-green-500 dark:bg-gray-700',
|
|
38
|
+
red: 'bg-red-50 text-red-900 placeholder-red-700 dark:text-red-500 dark:placeholder-red-500 dark:bg-gray-700'
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// tinted if put in component having its own background
|
|
42
|
+
let background: boolean = getContext('background');
|
|
43
|
+
|
|
44
|
+
let group: { size: SizeType } = getContext('group');
|
|
45
|
+
|
|
46
|
+
const textSizes = { sm: 'sm:text-xs', md: 'text-sm', lg: 'sm:text-base' };
|
|
47
|
+
const leftPadding = { sm: 'pl-9', md: 'pl-10', lg: 'pl-11' };
|
|
48
|
+
const rightPadding = { sm: 'pr-9', md: 'pr-10', lg: 'pr-11' };
|
|
49
|
+
const inputPadding = { sm: 'p-2', md: 'p-2.5', lg: 'p-3' };
|
|
50
|
+
|
|
51
|
+
$: _size = size || clampSize(group?.size) || 'md';
|
|
52
|
+
let inputClass: string;
|
|
53
|
+
$: {
|
|
54
|
+
const _color = color === 'base' && background ? 'tinted' : color;
|
|
55
|
+
inputClass = twMerge([defaultClass, ($$slots.left && leftPadding[_size]) || ($$slots.right && rightPadding[_size]) || inputPadding[_size], ringClasses[color], colorClasses[_color], borderClasses[_color], textSizes[_size], group || 'rounded-lg', group && 'first:rounded-l-lg last:rounded-r-lg', group && 'border-l-0 first:border-l last:border-r', $$props.class]);
|
|
56
|
+
}
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
<Wrapper class="relative w-full" show={$$slots.left || $$slots.right}>
|
|
60
|
+
{#if $$slots.left}
|
|
61
|
+
<div class="{twMerge(floatClass, $$props.classLeft)} left-0 pl-2.5 pointer-events-none">
|
|
62
|
+
<slot name="left" />
|
|
63
|
+
</div>
|
|
64
|
+
{/if}
|
|
65
|
+
<slot props={{ ...$$restProps, class: inputClass }}>
|
|
66
|
+
<input {...$$restProps} bind:value on:blur on:change on:click on:contextmenu on:focus on:keydown on:keypress on:keyup on:mouseover on:mouseenter on:mouseleave on:paste on:input {...{ type }} class={inputClass} />
|
|
67
|
+
</slot>
|
|
68
|
+
{#if $$slots.right}
|
|
69
|
+
<div class="{twMerge(floatClass, $$props.classRight)} right-0 pr-2.5"><slot name="right" /></div>
|
|
70
|
+
{/if}
|
|
71
|
+
</Wrapper>
|
|
72
|
+
|
|
73
|
+
<!--
|
|
74
|
+
@component
|
|
75
|
+
[Go to docs](https://flowbite-svelte.com/)
|
|
76
|
+
## Props
|
|
77
|
+
@prop export let type: InputType = 'text';
|
|
78
|
+
@prop export let value: any = undefined;
|
|
79
|
+
@prop export let size: FormSizeType | undefined = undefined;
|
|
80
|
+
@prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50';
|
|
81
|
+
@prop export let color: 'base' | 'green' | 'red' = 'base';
|
|
82
|
+
@prop export let floatClass: string = 'flex absolute inset-y-0 items-center text-gray-500 dark:text-gray-400';
|
|
83
|
+
-->
|