flowbite-svelte 1.19.1 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion/Accordion.svelte +1 -1
- package/dist/accordion/Accordion.svelte.d.ts +1 -1
- package/dist/accordion/AccordionItem.svelte +16 -2
- package/dist/accordion/AccordionItem.svelte.d.ts +1 -1
- package/dist/alert/Alert.svelte +15 -2
- package/dist/alert/Alert.svelte.d.ts +1 -1
- package/dist/avatar/Avatar.svelte +1 -1
- package/dist/avatar/Avatar.svelte.d.ts +1 -1
- package/dist/badge/Badge.svelte +19 -2
- package/dist/badge/Badge.svelte.d.ts +1 -1
- package/dist/banner/Banner.svelte +17 -2
- package/dist/banner/Banner.svelte.d.ts +1 -1
- package/dist/bottom-navigation/BottomNav.svelte +1 -1
- package/dist/bottom-navigation/BottomNav.svelte.d.ts +1 -1
- package/dist/bottom-navigation/BottomNavHeader.svelte +1 -1
- package/dist/bottom-navigation/BottomNavHeader.svelte.d.ts +1 -1
- package/dist/bottom-navigation/BottomNavHeaderItem.svelte +1 -1
- package/dist/bottom-navigation/BottomNavHeaderItem.svelte.d.ts +1 -1
- package/dist/bottom-navigation/BottomNavItem.svelte +8 -2
- package/dist/bottom-navigation/BottomNavItem.svelte.d.ts +1 -1
- package/dist/breadcrumb/Breadcrumb.svelte +1 -1
- package/dist/breadcrumb/Breadcrumb.svelte.d.ts +1 -1
- package/dist/breadcrumb/BreadcrumbItem.svelte +4 -2
- package/dist/breadcrumb/BreadcrumbItem.svelte.d.ts +1 -1
- package/dist/button-group/ButtonGroup.svelte +1 -1
- package/dist/button-group/ButtonGroup.svelte.d.ts +1 -1
- package/dist/buttons/Button.svelte +1 -1
- package/dist/buttons/Button.svelte.d.ts +1 -1
- package/dist/buttons/GradientButton.svelte +1 -1
- package/dist/buttons/GradientButton.svelte.d.ts +1 -1
- package/dist/card/Card.svelte +1 -1
- package/dist/card/Card.svelte.d.ts +1 -1
- package/dist/carousel/Carousel.svelte +34 -3
- package/dist/carousel/Carousel.svelte.d.ts +1 -1
- package/dist/carousel/CarouselIndicators.svelte +1 -1
- package/dist/carousel/CarouselIndicators.svelte.d.ts +1 -1
- package/dist/carousel/ControlButton.svelte +1 -1
- package/dist/carousel/ControlButton.svelte.d.ts +1 -1
- package/dist/carousel/Controls.svelte +1 -1
- package/dist/carousel/Controls.svelte.d.ts +1 -1
- package/dist/carousel/Slide.svelte +1 -1
- package/dist/carousel/Slide.svelte.d.ts +1 -1
- package/dist/carousel/Thumbnail.svelte +1 -1
- package/dist/carousel/Thumbnail.svelte.d.ts +1 -1
- package/dist/carousel/Thumbnails.svelte +1 -1
- package/dist/carousel/Thumbnails.svelte.d.ts +1 -1
- package/dist/clipboard/Clipboard.svelte +1 -1
- package/dist/clipboard/Clipboard.svelte.d.ts +1 -1
- package/dist/darkmode/DarkMode.svelte +1 -1
- package/dist/darkmode/DarkMode.svelte.d.ts +1 -1
- package/dist/datepicker/Datepicker.svelte +69 -6
- package/dist/device-mockups/Android.svelte +6 -2
- package/dist/device-mockups/Android.svelte.d.ts +1 -1
- package/dist/device-mockups/DefaultMockup.svelte +6 -2
- package/dist/device-mockups/DefaultMockup.svelte.d.ts +1 -1
- package/dist/device-mockups/Desktop.svelte +1 -1
- package/dist/device-mockups/Desktop.svelte.d.ts +1 -1
- package/dist/device-mockups/DeviceMockup.svelte +1 -1
- package/dist/device-mockups/DeviceMockup.svelte.d.ts +1 -1
- package/dist/device-mockups/Ios.svelte +6 -2
- package/dist/device-mockups/Ios.svelte.d.ts +1 -1
- package/dist/device-mockups/Laptop.svelte +6 -2
- package/dist/device-mockups/Laptop.svelte.d.ts +1 -1
- package/dist/device-mockups/Smartwatch.svelte +6 -2
- package/dist/device-mockups/Smartwatch.svelte.d.ts +1 -1
- package/dist/device-mockups/Tablet.svelte +6 -2
- package/dist/device-mockups/Tablet.svelte.d.ts +1 -1
- package/dist/dialog/Dialog.svelte +34 -3
- package/dist/dialog/Dialog.svelte.d.ts +1 -1
- package/dist/drawer/Drawer.svelte +30 -3
- package/dist/drawer/Drawer.svelte.d.ts +1 -1
- package/dist/drawer/DrawerHandle.svelte +1 -1
- package/dist/drawer/DrawerHandle.svelte.d.ts +1 -1
- package/dist/drawer/Drawerhead.svelte +1 -1
- package/dist/drawer/Drawerhead.svelte.d.ts +1 -1
- package/dist/dropdown/Dropdown.svelte +1 -1
- package/dist/dropdown/Dropdown.svelte.d.ts +1 -1
- package/dist/dropdown/DropdownDivider.svelte +1 -1
- package/dist/dropdown/DropdownDivider.svelte.d.ts +1 -1
- package/dist/dropdown/DropdownGroup.svelte +1 -1
- package/dist/dropdown/DropdownGroup.svelte.d.ts +1 -1
- package/dist/dropdown/DropdownHeader.svelte +1 -1
- package/dist/dropdown/DropdownHeader.svelte.d.ts +1 -1
- package/dist/dropdown/DropdownItem.svelte +1 -1
- package/dist/dropdown/DropdownItem.svelte.d.ts +1 -1
- package/dist/footer/Footer.svelte +1 -1
- package/dist/footer/Footer.svelte.d.ts +1 -1
- package/dist/footer/FooterBrand.svelte +1 -1
- package/dist/footer/FooterBrand.svelte.d.ts +1 -1
- package/dist/footer/FooterCopyright.svelte +1 -1
- package/dist/footer/FooterCopyright.svelte.d.ts +1 -1
- package/dist/footer/FooterIcon.svelte +1 -1
- package/dist/footer/FooterIcon.svelte.d.ts +1 -1
- package/dist/footer/FooterLink.svelte +1 -1
- package/dist/footer/FooterLink.svelte.d.ts +1 -1
- package/dist/footer/FooterLinkGroup.svelte +1 -1
- package/dist/footer/FooterLinkGroup.svelte.d.ts +1 -1
- package/dist/forms/button-toggle/ButtonToggle.svelte +10 -2
- package/dist/forms/button-toggle/ButtonToggle.svelte.d.ts +1 -1
- package/dist/forms/button-toggle/ButtonToggleGroup.svelte +14 -1
- package/dist/forms/button-toggle/CheckIcon.svelte +14 -2
- package/dist/forms/button-toggle/CheckIcon.svelte.d.ts +1 -1
- package/dist/forms/checkbox/Checkbox.svelte +18 -1
- package/dist/forms/checkbox/CheckboxButton.svelte +1 -1
- package/dist/forms/checkbox/CheckboxButton.svelte.d.ts +1 -1
- package/dist/forms/dropzone/Dropzone.svelte +1 -1
- package/dist/forms/dropzone/Dropzone.svelte.d.ts +1 -1
- package/dist/forms/fileupload/Fileupload.svelte +15 -2
- package/dist/forms/fileupload/Fileupload.svelte.d.ts +1 -1
- package/dist/forms/floating-label/FloatingLabelInput.svelte +49 -6
- package/dist/forms/floating-label/FloatingLabelInput.svelte.d.ts +1 -1
- package/dist/forms/helper/Helper.svelte +1 -1
- package/dist/forms/helper/Helper.svelte.d.ts +1 -1
- package/dist/forms/input-addon/InputAddon.svelte +13 -2
- package/dist/forms/input-addon/InputAddon.svelte.d.ts +1 -1
- package/dist/forms/input-field/Input.svelte +55 -4
- package/dist/forms/label/Label.svelte +1 -1
- package/dist/forms/label/Label.svelte.d.ts +1 -1
- package/dist/forms/phoneinput/PhoneInput.svelte +14 -2
- package/dist/forms/radio/Radio.svelte +14 -1
- package/dist/forms/range/Range.svelte +1 -1
- package/dist/forms/range/Range.svelte.d.ts +1 -1
- package/dist/forms/search/Search.svelte +17 -2
- package/dist/forms/search/Search.svelte.d.ts +1 -1
- package/dist/forms/select/MultiSelect.svelte +10 -1
- package/dist/forms/select/Select.svelte +20 -1
- package/dist/forms/tags/Tags.svelte +30 -2
- package/dist/forms/textarea/Textarea.svelte +28 -3
- package/dist/forms/textarea/Textarea.svelte.d.ts +1 -1
- package/dist/forms/textarea/theme.js +3 -1
- package/dist/forms/timepicker/Timepicker.svelte +144 -11
- package/dist/forms/timepicker/Timepicker.svelte.d.ts +1 -1
- package/dist/forms/toggle/Toggle.svelte +1 -1
- package/dist/forms/toggle/Toggle.svelte.d.ts +1 -1
- package/dist/gallery/Gallery.svelte +1 -1
- package/dist/gallery/Gallery.svelte.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/indicator/Indicator.svelte +1 -1
- package/dist/indicator/Indicator.svelte.d.ts +1 -1
- package/dist/kanban/KanbanBoard.svelte +98 -0
- package/dist/kanban/KanbanBoard.svelte.d.ts +4 -0
- package/dist/kanban/KanbanCard.svelte +58 -0
- package/dist/kanban/KanbanCard.svelte.d.ts +16 -0
- package/dist/kanban/index.d.ts +3 -0
- package/dist/kanban/index.js +3 -0
- package/dist/kanban/theme.d.ts +108 -0
- package/dist/kanban/theme.js +43 -0
- package/dist/kbd/Kbd.svelte +1 -1
- package/dist/kbd/Kbd.svelte.d.ts +1 -1
- package/dist/list-group/Listgroup.svelte +1 -1
- package/dist/list-group/Listgroup.svelte.d.ts +1 -1
- package/dist/list-group/ListgroupItem.svelte +1 -1
- package/dist/list-group/ListgroupItem.svelte.d.ts +1 -1
- package/dist/mega-menu/MegaMenu.svelte +1 -1
- package/dist/mega-menu/MegaMenu.svelte.d.ts +1 -1
- package/dist/modal/Modal.svelte +31 -3
- package/dist/modal/Modal.svelte.d.ts +1 -1
- package/dist/navbar/Menu.svelte +1 -1
- package/dist/navbar/Menu.svelte.d.ts +1 -1
- package/dist/navbar/NavBrand.svelte +1 -1
- package/dist/navbar/NavBrand.svelte.d.ts +1 -1
- package/dist/navbar/NavContainer.svelte +1 -1
- package/dist/navbar/NavContainer.svelte.d.ts +1 -1
- package/dist/navbar/NavHamburger.svelte +1 -1
- package/dist/navbar/NavHamburger.svelte.d.ts +1 -1
- package/dist/navbar/NavLi.svelte +4 -2
- package/dist/navbar/NavLi.svelte.d.ts +1 -1
- package/dist/navbar/NavUl.svelte +15 -2
- package/dist/navbar/NavUl.svelte.d.ts +1 -1
- package/dist/navbar/Navbar.svelte +1 -1
- package/dist/navbar/Navbar.svelte.d.ts +1 -1
- package/dist/pagination/Pagination.svelte +1 -1
- package/dist/pagination/Pagination.svelte.d.ts +1 -1
- package/dist/pagination/PaginationButton.svelte +1 -1
- package/dist/pagination/PaginationButton.svelte.d.ts +1 -1
- package/dist/pagination/PaginationItem.svelte +1 -1
- package/dist/pagination/PaginationItem.svelte.d.ts +1 -1
- package/dist/pagination/PaginationNav.svelte +1 -1
- package/dist/pagination/PaginationNav.svelte.d.ts +1 -1
- package/dist/pagination/theme.js +4 -1
- package/dist/popover/Popover.svelte +14 -2
- package/dist/popover/Popover.svelte.d.ts +1 -1
- package/dist/progress/Progressbar.svelte +15 -2
- package/dist/progress/Progressbar.svelte.d.ts +1 -1
- package/dist/progress/Progressradial.svelte +29 -3
- package/dist/progress/Progressradial.svelte.d.ts +1 -1
- package/dist/rating/AdvancedRating.svelte +6 -2
- package/dist/rating/AdvancedRating.svelte.d.ts +1 -1
- package/dist/rating/CustomIcon.svelte +14 -2
- package/dist/rating/CustomIcon.svelte.d.ts +1 -1
- package/dist/rating/Heart.svelte +20 -3
- package/dist/rating/Heart.svelte.d.ts +1 -1
- package/dist/rating/Rating.svelte +1 -1
- package/dist/rating/Rating.svelte.d.ts +1 -1
- package/dist/rating/RatingComment.svelte +1 -1
- package/dist/rating/RatingComment.svelte.d.ts +1 -1
- package/dist/rating/Review.svelte +6 -2
- package/dist/rating/Review.svelte.d.ts +1 -1
- package/dist/rating/ScoreRating.svelte +1 -1
- package/dist/rating/ScoreRating.svelte.d.ts +1 -1
- package/dist/rating/Star.svelte +13 -2
- package/dist/rating/Star.svelte.d.ts +1 -1
- package/dist/rating/Thumbup.svelte +20 -3
- package/dist/rating/Thumbup.svelte.d.ts +1 -1
- package/dist/sidebar/Sidebar.svelte +31 -3
- package/dist/sidebar/Sidebar.svelte.d.ts +1 -1
- package/dist/sidebar/SidebarBrand.svelte +1 -1
- package/dist/sidebar/SidebarBrand.svelte.d.ts +1 -1
- package/dist/sidebar/SidebarButton.svelte +6 -2
- package/dist/sidebar/SidebarButton.svelte.d.ts +1 -1
- package/dist/sidebar/SidebarCta.svelte +1 -1
- package/dist/sidebar/SidebarCta.svelte.d.ts +1 -1
- package/dist/sidebar/SidebarDropdownWrapper.svelte +19 -2
- package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +1 -1
- package/dist/sidebar/SidebarGroup.svelte +1 -1
- package/dist/sidebar/SidebarGroup.svelte.d.ts +1 -1
- package/dist/sidebar/SidebarItem.svelte +1 -1
- package/dist/sidebar/SidebarItem.svelte.d.ts +1 -1
- package/dist/skeleton/CardPlaceholder.svelte +9 -3
- package/dist/skeleton/CardPlaceholder.svelte.d.ts +1 -1
- package/dist/skeleton/ImagePlaceholder.svelte +4 -2
- package/dist/skeleton/ImagePlaceholder.svelte.d.ts +1 -1
- package/dist/skeleton/ListPlaceholder.svelte +1 -1
- package/dist/skeleton/ListPlaceholder.svelte.d.ts +1 -1
- package/dist/skeleton/Skeleton.svelte +1 -1
- package/dist/skeleton/Skeleton.svelte.d.ts +1 -1
- package/dist/skeleton/TestimonialPlaceholder.svelte +6 -2
- package/dist/skeleton/TestimonialPlaceholder.svelte.d.ts +1 -1
- package/dist/skeleton/TextPlaceholder.svelte +1 -1
- package/dist/skeleton/TextPlaceholder.svelte.d.ts +1 -1
- package/dist/skeleton/VideoPlaceholder.svelte +4 -2
- package/dist/skeleton/VideoPlaceholder.svelte.d.ts +1 -1
- package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
- package/dist/skeleton/WidgetPlaceholder.svelte.d.ts +1 -1
- package/dist/speed-dial/SpeedDial.svelte +14 -2
- package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
- package/dist/speed-dial/SpeedDialButton.svelte +13 -2
- package/dist/speed-dial/SpeedDialButton.svelte.d.ts +1 -1
- package/dist/speed-dial/SpeedDialTrigger.svelte +1 -1
- package/dist/speed-dial/SpeedDialTrigger.svelte.d.ts +1 -1
- package/dist/spinner/Spinner.svelte +9 -3
- package/dist/spinner/Spinner.svelte.d.ts +1 -1
- package/dist/step-indicator/StepIndicator.svelte +14 -2
- package/dist/step-indicator/StepIndicator.svelte.d.ts +1 -1
- package/dist/stepper/BreadcrumbStepper.svelte +1 -1
- package/dist/stepper/BreadcrumbStepper.svelte.d.ts +1 -1
- package/dist/stepper/DetailedStepper.svelte +1 -1
- package/dist/stepper/DetailedStepper.svelte.d.ts +1 -1
- package/dist/stepper/ProgressStepper.svelte +4 -2
- package/dist/stepper/ProgressStepper.svelte.d.ts +1 -1
- package/dist/stepper/Stepper.svelte +1 -1
- package/dist/stepper/Stepper.svelte.d.ts +1 -1
- package/dist/stepper/TimelineStepper.svelte +4 -2
- package/dist/stepper/TimelineStepper.svelte.d.ts +1 -1
- package/dist/stepper/VerticalStepper.svelte +1 -1
- package/dist/stepper/VerticalStepper.svelte.d.ts +1 -1
- package/dist/table/Table.svelte +1 -1
- package/dist/table/Table.svelte.d.ts +1 -1
- package/dist/table/TableBody.svelte +1 -1
- package/dist/table/TableBody.svelte.d.ts +1 -1
- package/dist/table/TableBodyCell.svelte +1 -1
- package/dist/table/TableBodyCell.svelte.d.ts +1 -1
- package/dist/table/TableBodyRow.svelte +1 -1
- package/dist/table/TableBodyRow.svelte.d.ts +1 -1
- package/dist/table/TableHead.svelte +1 -1
- package/dist/table/TableHead.svelte.d.ts +1 -1
- package/dist/table/TableHeadCell.svelte +1 -1
- package/dist/table/TableHeadCell.svelte.d.ts +1 -1
- package/dist/table/TableSearch.svelte +27 -3
- package/dist/table/TableSearch.svelte.d.ts +1 -1
- package/dist/tabs/TabItem.svelte +1 -1
- package/dist/tabs/TabItem.svelte.d.ts +1 -1
- package/dist/tabs/Tabs.svelte +1 -1
- package/dist/tabs/Tabs.svelte.d.ts +1 -1
- package/dist/theme/themeUtils.js +3 -1
- package/dist/theme/themes.d.ts +1 -0
- package/dist/theme/themes.js +1 -0
- package/dist/timeline/Activity.svelte +1 -1
- package/dist/timeline/Activity.svelte.d.ts +1 -1
- package/dist/timeline/ActivityItem.svelte +1 -1
- package/dist/timeline/ActivityItem.svelte.d.ts +1 -1
- package/dist/timeline/Group.svelte +1 -1
- package/dist/timeline/Group.svelte.d.ts +1 -1
- package/dist/timeline/GroupItem.svelte +11 -3
- package/dist/timeline/GroupItem.svelte.d.ts +1 -1
- package/dist/timeline/Timeline.svelte +1 -1
- package/dist/timeline/Timeline.svelte.d.ts +1 -1
- package/dist/timeline/TimelineItem.svelte +25 -3
- package/dist/timeline/TimelineItem.svelte.d.ts +1 -1
- package/dist/toast/Toast.svelte +17 -2
- package/dist/toast/Toast.svelte.d.ts +1 -1
- package/dist/toolbar/Toolbar.svelte +1 -1
- package/dist/toolbar/Toolbar.svelte.d.ts +1 -1
- package/dist/toolbar/ToolbarButton.svelte +1 -1
- package/dist/toolbar/ToolbarButton.svelte.d.ts +1 -1
- package/dist/toolbar/ToolbarGroup.svelte +1 -1
- package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
- package/dist/tooltip/Tooltip.svelte +13 -2
- package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
- package/dist/types.d.ts +26 -0
- package/dist/typography/a/A.svelte +1 -1
- package/dist/typography/a/A.svelte.d.ts +1 -1
- package/dist/typography/blockquote/Blockquote.svelte +1 -1
- package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
- package/dist/typography/descriptionlist/DescriptionList.svelte +1 -1
- package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
- package/dist/typography/heading/Heading.svelte +1 -1
- package/dist/typography/heading/Heading.svelte.d.ts +1 -1
- package/dist/typography/img/EnhancedImg.svelte +1 -1
- package/dist/typography/img/EnhancedImg.svelte.d.ts +1 -1
- package/dist/typography/img/Img.svelte +1 -1
- package/dist/typography/img/Img.svelte.d.ts +1 -1
- package/dist/typography/layout/Layout.svelte +1 -1
- package/dist/typography/layout/Layout.svelte.d.ts +1 -1
- package/dist/typography/list/Li.svelte +1 -1
- package/dist/typography/list/Li.svelte.d.ts +1 -1
- package/dist/typography/list/List.svelte +1 -1
- package/dist/typography/list/List.svelte.d.ts +1 -1
- package/dist/typography/mark/Mark.svelte +1 -1
- package/dist/typography/mark/Mark.svelte.d.ts +1 -1
- package/dist/typography/paragraph/P.svelte +15 -2
- package/dist/typography/paragraph/P.svelte.d.ts +1 -1
- package/dist/typography/secondary/Secondary.svelte +1 -1
- package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
- package/dist/typography/span/Span.svelte +1 -1
- package/dist/typography/span/Span.svelte.d.ts +1 -1
- package/dist/utils/Arrow.svelte +1 -1
- package/dist/utils/Arrow.svelte.d.ts +1 -1
- package/dist/utils/CloseButton.svelte +11 -3
- package/dist/utils/CloseButton.svelte.d.ts +1 -1
- package/dist/utils/Popper.svelte +39 -3
- package/dist/utils/Popper.svelte.d.ts +1 -1
- package/dist/video/Video.svelte +1 -1
- package/dist/video/Video.svelte.d.ts +1 -1
- package/dist/virtuallist/VirtualList.svelte +9 -2
- package/dist/virtuallist/VirtualList.svelte.d.ts +1 -1
- package/package.json +12 -4
|
@@ -7,7 +7,20 @@
|
|
|
7
7
|
import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
|
|
8
8
|
|
|
9
9
|
// remove inputClass in next major version
|
|
10
|
-
let {
|
|
10
|
+
let {
|
|
11
|
+
children,
|
|
12
|
+
"aria-describedby": ariaDescribedby,
|
|
13
|
+
inline = false,
|
|
14
|
+
labelClass,
|
|
15
|
+
color = "primary",
|
|
16
|
+
custom = false,
|
|
17
|
+
group = $bindable<T>(),
|
|
18
|
+
value = $bindable<T>(),
|
|
19
|
+
class: className,
|
|
20
|
+
inputClass,
|
|
21
|
+
classes,
|
|
22
|
+
...restProps
|
|
23
|
+
}: RadioProps<T> = $props();
|
|
11
24
|
|
|
12
25
|
warnThemeDeprecation("Radio", { inputClass, labelClass }, { inputClass: "class", labelClass: "label" });
|
|
13
26
|
const styling = $derived(classes ?? { label: labelClass });
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
@component
|
|
18
18
|
[Go to docs](https://flowbite-svelte.com/)
|
|
19
19
|
## Type
|
|
20
|
-
[RangeProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
20
|
+
[RangeProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L833)
|
|
21
21
|
## Props
|
|
22
22
|
@prop value = $bindable()
|
|
23
23
|
@prop appearance = "none"
|
|
@@ -2,7 +2,7 @@ import type { RangeProps } from "../..";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [RangeProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [RangeProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L833)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop value = $bindable()
|
|
8
8
|
* @prop appearance = "none"
|
|
@@ -6,7 +6,22 @@
|
|
|
6
6
|
import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
|
|
7
7
|
import { createDismissableContext } from "../../utils/dismissable";
|
|
8
8
|
|
|
9
|
-
let {
|
|
9
|
+
let {
|
|
10
|
+
children,
|
|
11
|
+
inputClass,
|
|
12
|
+
size,
|
|
13
|
+
placeholder = "Search",
|
|
14
|
+
value = $bindable(),
|
|
15
|
+
elementRef = $bindable(),
|
|
16
|
+
clearable = false,
|
|
17
|
+
clearableSvgClass,
|
|
18
|
+
clearableColor = "none",
|
|
19
|
+
clearableClass,
|
|
20
|
+
clearableOnClick,
|
|
21
|
+
class: className,
|
|
22
|
+
classes,
|
|
23
|
+
...restProps
|
|
24
|
+
}: SearchProps = $props();
|
|
10
25
|
|
|
11
26
|
warnThemeDeprecation("Search", { inputClass, clearableSvgClass, clearableClass }, { inputClass: "input", clearableSvgClass: "svg", clearableClass: "close" });
|
|
12
27
|
const styling = $derived(classes ?? { input: inputClass, svg: clearableSvgClass, close: clearableClass });
|
|
@@ -47,7 +62,7 @@
|
|
|
47
62
|
@component
|
|
48
63
|
[Go to docs](https://flowbite-svelte.com/)
|
|
49
64
|
## Type
|
|
50
|
-
[SearchProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
65
|
+
[SearchProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L839)
|
|
51
66
|
## Props
|
|
52
67
|
@prop children
|
|
53
68
|
@prop inputClass
|
|
@@ -2,7 +2,7 @@ import type { SearchProps } from "../..";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [SearchProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [SearchProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L839)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop children
|
|
8
8
|
* @prop inputClass
|
|
@@ -203,7 +203,16 @@
|
|
|
203
203
|
{/each}
|
|
204
204
|
</select>
|
|
205
205
|
|
|
206
|
-
<div
|
|
206
|
+
<div
|
|
207
|
+
bind:this={multiSelectContainer}
|
|
208
|
+
{...restProps}
|
|
209
|
+
onclick={toggleDropdown}
|
|
210
|
+
onblur={handleBlur}
|
|
211
|
+
onkeydown={handleKeyDown}
|
|
212
|
+
tabindex="0"
|
|
213
|
+
role="listbox"
|
|
214
|
+
class={base({ size, class: clsx(theme?.base, className) })}
|
|
215
|
+
>
|
|
207
216
|
{#if !selectItems.length}
|
|
208
217
|
<span class={placeholderSpan({ class: clsx(classes?.placeholder) })}>{placeholder}</span>
|
|
209
218
|
{/if}
|
|
@@ -7,7 +7,26 @@
|
|
|
7
7
|
import { createDismissableContext } from "../../utils/dismissable";
|
|
8
8
|
import { getContext } from "svelte";
|
|
9
9
|
|
|
10
|
-
let {
|
|
10
|
+
let {
|
|
11
|
+
children,
|
|
12
|
+
items,
|
|
13
|
+
value = $bindable(),
|
|
14
|
+
elementRef = $bindable(),
|
|
15
|
+
underline,
|
|
16
|
+
size = "md",
|
|
17
|
+
disabled,
|
|
18
|
+
placeholder = "Choose option ...",
|
|
19
|
+
clearable,
|
|
20
|
+
clearableColor = "none",
|
|
21
|
+
clearableOnClick,
|
|
22
|
+
onClear,
|
|
23
|
+
clearableSvgClass,
|
|
24
|
+
clearableClass,
|
|
25
|
+
selectClass,
|
|
26
|
+
class: className,
|
|
27
|
+
classes,
|
|
28
|
+
...restProps
|
|
29
|
+
}: SelectProps<T> = $props();
|
|
11
30
|
|
|
12
31
|
// clearableSvgClass, clearableClass, selectClass
|
|
13
32
|
warnThemeDeprecation("Select", { selectClass, clearableSvgClass, clearableClass }, { selectClass: "select", clearableSvgClass: "svg", clearableClass: "close" });
|
|
@@ -8,7 +8,25 @@
|
|
|
8
8
|
import { computePosition, offset, flip, shift, autoUpdate } from "@floating-ui/dom";
|
|
9
9
|
import { onDestroy } from "svelte";
|
|
10
10
|
|
|
11
|
-
let {
|
|
11
|
+
let {
|
|
12
|
+
value = $bindable([]),
|
|
13
|
+
placeholder = "Enter tags",
|
|
14
|
+
class: className,
|
|
15
|
+
classes,
|
|
16
|
+
itemClass,
|
|
17
|
+
spanClass,
|
|
18
|
+
closeClass,
|
|
19
|
+
inputClass,
|
|
20
|
+
closeBtnSize = "xs",
|
|
21
|
+
unique = false,
|
|
22
|
+
availableTags = [],
|
|
23
|
+
showHelper = false,
|
|
24
|
+
showAvailableTags = false,
|
|
25
|
+
allowNewTags = true,
|
|
26
|
+
inputProps = {},
|
|
27
|
+
disabled,
|
|
28
|
+
...restProps
|
|
29
|
+
}: TagsProps = $props();
|
|
12
30
|
|
|
13
31
|
warnThemeDeprecation("Tags", { itemClass, spanClass, closeClass, inputClass }, { itemClass: "tag", spanClass: "span", closeClass: "close", inputClass: "input" });
|
|
14
32
|
const styling = $derived(
|
|
@@ -160,7 +178,17 @@
|
|
|
160
178
|
</div>
|
|
161
179
|
{/each}
|
|
162
180
|
<div class="relative w-full" bind:this={inputContainer}>
|
|
163
|
-
<input
|
|
181
|
+
<input
|
|
182
|
+
{...inputProps}
|
|
183
|
+
{disabled}
|
|
184
|
+
bind:this={inputElement}
|
|
185
|
+
onkeydown={handleKeys}
|
|
186
|
+
bind:value={contents}
|
|
187
|
+
placeholder={value.length === 0 ? placeholder : ""}
|
|
188
|
+
type="text"
|
|
189
|
+
autocomplete="off"
|
|
190
|
+
class={inputCls({ class: clsx(styling.input) })}
|
|
191
|
+
/>
|
|
164
192
|
{#if availableTags.length > 0 && contents.trim() !== ""}
|
|
165
193
|
{@const filteredSuggestions = availableTags.filter((tag) => tag.toLowerCase().includes(contents.trim().toLowerCase()) && (!unique || !value.some((t) => t.toLowerCase() === tag.toLowerCase())))}
|
|
166
194
|
{#if filteredSuggestions.length > 0}
|
|
@@ -6,9 +6,34 @@
|
|
|
6
6
|
import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
|
|
7
7
|
import { createDismissableContext } from "../../utils/dismissable";
|
|
8
8
|
|
|
9
|
-
let {
|
|
9
|
+
let {
|
|
10
|
+
header,
|
|
11
|
+
footer,
|
|
12
|
+
addon,
|
|
13
|
+
value = $bindable(),
|
|
14
|
+
elementRef = $bindable(),
|
|
15
|
+
divClass,
|
|
16
|
+
innerClass,
|
|
17
|
+
headerClass,
|
|
18
|
+
footerClass,
|
|
19
|
+
addonClass,
|
|
20
|
+
disabled,
|
|
21
|
+
class: className,
|
|
22
|
+
classes,
|
|
23
|
+
clearable,
|
|
24
|
+
clearableSvgClass,
|
|
25
|
+
clearableColor = "none",
|
|
26
|
+
clearableClass,
|
|
27
|
+
clearableOnClick,
|
|
28
|
+
textareaClass,
|
|
29
|
+
...restProps
|
|
30
|
+
}: TextareaProps = $props();
|
|
10
31
|
|
|
11
|
-
warnThemeDeprecation(
|
|
32
|
+
warnThemeDeprecation(
|
|
33
|
+
"Textarea",
|
|
34
|
+
{ divClass, innerClass, headerClass, footerClass, addonClass, textareaClass, clearableClass, clearableSvgClass },
|
|
35
|
+
{ divClass: "div", innerClass: "inner", headerClass: "header", footerClass: "footer", addonClass: "addon", textareaClass: "class", clearableClass: "close", clearableSvgClass: "svg" }
|
|
36
|
+
);
|
|
12
37
|
const styling = $derived(
|
|
13
38
|
classes ?? {
|
|
14
39
|
div: divClass,
|
|
@@ -76,7 +101,7 @@
|
|
|
76
101
|
@component
|
|
77
102
|
[Go to docs](https://flowbite-svelte.com/)
|
|
78
103
|
## Type
|
|
79
|
-
[TextareaProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
104
|
+
[TextareaProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L948)
|
|
80
105
|
## Props
|
|
81
106
|
@prop header
|
|
82
107
|
@prop footer
|
|
@@ -2,7 +2,7 @@ import type { TextareaProps } from "../..";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [TextareaProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [TextareaProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L948)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop header
|
|
8
8
|
* @prop footer
|
|
@@ -13,7 +13,9 @@ export const textarea = tv({
|
|
|
13
13
|
},
|
|
14
14
|
variants: {
|
|
15
15
|
wrapped: {
|
|
16
|
-
false: {
|
|
16
|
+
false: {
|
|
17
|
+
wrapper: "p-2.5 text-sm focus:outline-hidden focus:ring-primary-500 border-gray-300 focus:border-primary-500 dark:focus:ring-primary-500 dark:focus:border-primary-500 disabled:cursor-not-allowed disabled:opacity-50"
|
|
18
|
+
}
|
|
17
19
|
},
|
|
18
20
|
hasHeader: {
|
|
19
21
|
true: {
|
|
@@ -13,7 +13,32 @@
|
|
|
13
13
|
import { parse, isValid, isBefore, isAfter } from "date-fns";
|
|
14
14
|
import { getTheme } from "../../theme/themeUtils";
|
|
15
15
|
|
|
16
|
-
let {
|
|
16
|
+
let {
|
|
17
|
+
id = "time",
|
|
18
|
+
endId = "end-time",
|
|
19
|
+
value = $bindable("00:00"),
|
|
20
|
+
endValue = $bindable("00:00"),
|
|
21
|
+
min = "",
|
|
22
|
+
max = "",
|
|
23
|
+
required = true,
|
|
24
|
+
disabled = false,
|
|
25
|
+
inputColor,
|
|
26
|
+
buttonColor = "primary",
|
|
27
|
+
Icon,
|
|
28
|
+
iconClass = "h-5 w-5 text-gray-500 dark:text-gray-400",
|
|
29
|
+
type = "default",
|
|
30
|
+
optionLabel = "Options",
|
|
31
|
+
options = [],
|
|
32
|
+
size = "md",
|
|
33
|
+
divClass,
|
|
34
|
+
inputClass,
|
|
35
|
+
selectClass,
|
|
36
|
+
timerangeLabel = "Choose time range",
|
|
37
|
+
timerangeButtonLabel = "Save time",
|
|
38
|
+
timeIntervals = [],
|
|
39
|
+
columns = 2,
|
|
40
|
+
onselect
|
|
41
|
+
}: TimepickerProps = $props();
|
|
17
42
|
|
|
18
43
|
const theme = getTheme("timepicker");
|
|
19
44
|
|
|
@@ -162,7 +187,19 @@
|
|
|
162
187
|
{#if type !== "inline-buttons"}
|
|
163
188
|
<ButtonGroup {size} class={styles.buttonGroup({ class: clsx(theme?.buttonGroup, divClass) })}>
|
|
164
189
|
{#if type === "default"}
|
|
165
|
-
<Input
|
|
190
|
+
<Input
|
|
191
|
+
{id}
|
|
192
|
+
color={inputColor}
|
|
193
|
+
type="time"
|
|
194
|
+
{min}
|
|
195
|
+
{max}
|
|
196
|
+
{required}
|
|
197
|
+
{disabled}
|
|
198
|
+
class={styles.input({ class: clsx(styles.inputWithIcon(), theme?.input, inputClass) })}
|
|
199
|
+
bind:value
|
|
200
|
+
oninput={(e) => handleTimeChange(e)}
|
|
201
|
+
onchange={(e) => handleTimeChange(e)}
|
|
202
|
+
/>
|
|
166
203
|
<div class={styles.iconWrapper({ class: clsx(theme?.iconWrapper) })}>
|
|
167
204
|
{#if Icon}
|
|
168
205
|
<Icon class={iconClass} />
|
|
@@ -173,10 +210,34 @@
|
|
|
173
210
|
{/if}
|
|
174
211
|
</div>
|
|
175
212
|
{:else if type === "select"}
|
|
176
|
-
<Input
|
|
213
|
+
<Input
|
|
214
|
+
{id}
|
|
215
|
+
color={inputColor}
|
|
216
|
+
type="time"
|
|
217
|
+
{min}
|
|
218
|
+
{max}
|
|
219
|
+
{required}
|
|
220
|
+
{disabled}
|
|
221
|
+
class={styles.input({ class: clsx(theme?.input, inputClass) })}
|
|
222
|
+
bind:value
|
|
223
|
+
oninput={(e) => handleTimeChange(e)}
|
|
224
|
+
onchange={(e) => handleTimeChange(e)}
|
|
225
|
+
/>
|
|
177
226
|
<Select selectClass={styles.select({ class: clsx(theme?.select, selectClass) })} onchange={handleOptionSelect} items={options} value={selectedOption} />
|
|
178
227
|
{:else if type === "dropdown"}
|
|
179
|
-
<Input
|
|
228
|
+
<Input
|
|
229
|
+
{id}
|
|
230
|
+
color={inputColor}
|
|
231
|
+
type="time"
|
|
232
|
+
{min}
|
|
233
|
+
{max}
|
|
234
|
+
{required}
|
|
235
|
+
{disabled}
|
|
236
|
+
class={styles.input({ class: clsx(theme?.input, inputClass) })}
|
|
237
|
+
bind:value
|
|
238
|
+
oninput={(e) => handleTimeChange(e)}
|
|
239
|
+
onchange={(e) => handleTimeChange(e)}
|
|
240
|
+
/>
|
|
180
241
|
<Button color={buttonColor} class={styles.button({ class: clsx(theme?.button) })}>
|
|
181
242
|
{optionLabel}
|
|
182
243
|
<svg class={styles.buttonIcon({ class: clsx(theme?.buttonIcon) })} aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
@@ -192,7 +253,19 @@
|
|
|
192
253
|
</Dropdown>
|
|
193
254
|
{:else if type === "range"}
|
|
194
255
|
<div class={styles.rangeInputWrapper({ class: clsx(theme?.rangeInputWrapper) })}>
|
|
195
|
-
<Input
|
|
256
|
+
<Input
|
|
257
|
+
{id}
|
|
258
|
+
color={inputColor}
|
|
259
|
+
type="time"
|
|
260
|
+
{min}
|
|
261
|
+
{max}
|
|
262
|
+
{required}
|
|
263
|
+
{disabled}
|
|
264
|
+
class={styles.input({ class: clsx(theme?.rangeInput, styles.rangeInput(), inputClass) })}
|
|
265
|
+
bind:value
|
|
266
|
+
oninput={(e) => handleTimeChange(e)}
|
|
267
|
+
onchange={(e) => handleTimeChange(e)}
|
|
268
|
+
/>
|
|
196
269
|
<button type="button" class={styles.rangeButton({ class: clsx(theme?.rangeButton) })} onclick={() => document.getElementById(id)?.click()} aria-label="Open time picker">
|
|
197
270
|
{#if Icon}
|
|
198
271
|
<Icon class={iconClass} />
|
|
@@ -205,7 +278,19 @@
|
|
|
205
278
|
</div>
|
|
206
279
|
<span class={styles.rangeSeparator({ class: clsx(theme?.rangeSeparator) })}>-</span>
|
|
207
280
|
<div class={styles.rangeInputWrapper({ class: clsx(theme?.rangeInputWrapper) })}>
|
|
208
|
-
<Input
|
|
281
|
+
<Input
|
|
282
|
+
id={endId}
|
|
283
|
+
color={inputColor}
|
|
284
|
+
type="time"
|
|
285
|
+
{min}
|
|
286
|
+
{max}
|
|
287
|
+
{required}
|
|
288
|
+
{disabled}
|
|
289
|
+
class={styles.input({ class: clsx(styles.rangeInput(), theme?.rangeInput, inputClass) })}
|
|
290
|
+
bind:value={endValue}
|
|
291
|
+
oninput={(e) => handleTimeChange(e, true)}
|
|
292
|
+
onchange={(e) => handleTimeChange(e, true)}
|
|
293
|
+
/>
|
|
209
294
|
<button type="button" class={styles.rangeButton({ class: clsx(theme?.rangeButton) })} onclick={() => document.getElementById(endId)?.click()} aria-label="Open end time picker">
|
|
210
295
|
{#if Icon}
|
|
211
296
|
<Icon class={iconClass} />
|
|
@@ -228,11 +313,35 @@
|
|
|
228
313
|
<div class={styles.dropdownTimeRow({ class: clsx(theme?.dropdownTimeRow) })}>
|
|
229
314
|
<div class={styles.dropdownTimeCol({ class: clsx(theme?.dropdownTimeCol) })}>
|
|
230
315
|
<Label for={id}>Start time:</Label>
|
|
231
|
-
<Input
|
|
316
|
+
<Input
|
|
317
|
+
{id}
|
|
318
|
+
color={inputColor}
|
|
319
|
+
type="time"
|
|
320
|
+
{min}
|
|
321
|
+
{max}
|
|
322
|
+
{required}
|
|
323
|
+
{disabled}
|
|
324
|
+
class={styles.dropdownTimeInput({ class: clsx(theme?.dropdownTimeInput, inputClass) })}
|
|
325
|
+
bind:value
|
|
326
|
+
oninput={(e) => handleTimeChange(e)}
|
|
327
|
+
onchange={(e) => handleTimeChange(e)}
|
|
328
|
+
/>
|
|
232
329
|
</div>
|
|
233
330
|
<div class={styles.dropdownTimeCol({ class: clsx(theme?.dropdownTimeCol) })}>
|
|
234
331
|
<Label for={endId}>End time:</Label>
|
|
235
|
-
<Input
|
|
332
|
+
<Input
|
|
333
|
+
id={endId}
|
|
334
|
+
color={inputColor}
|
|
335
|
+
type="time"
|
|
336
|
+
{min}
|
|
337
|
+
{max}
|
|
338
|
+
{required}
|
|
339
|
+
{disabled}
|
|
340
|
+
class={styles.dropdownTimeInput({ class: clsx(theme?.dropdownTimeInput, inputClass) })}
|
|
341
|
+
bind:value={endValue}
|
|
342
|
+
oninput={(e) => handleTimeChange(e, true)}
|
|
343
|
+
onchange={(e) => handleTimeChange(e, true)}
|
|
344
|
+
/>
|
|
236
345
|
</div>
|
|
237
346
|
</div>
|
|
238
347
|
<Button color={buttonColor} class={styles.dropdownButton({ class: clsx(theme?.dropdownButton) })} onclick={applyTimerange}>
|
|
@@ -249,11 +358,35 @@
|
|
|
249
358
|
<div class={styles.toggleTimeRow({ class: clsx(theme?.toggleTimeRow) })}>
|
|
250
359
|
<div class={styles.toggleTimeCol({ class: clsx(theme?.toggleTimeCol) })}>
|
|
251
360
|
<Label for={id}>Start time:</Label>
|
|
252
|
-
<Input
|
|
361
|
+
<Input
|
|
362
|
+
{id}
|
|
363
|
+
color={inputColor}
|
|
364
|
+
type="time"
|
|
365
|
+
{min}
|
|
366
|
+
{max}
|
|
367
|
+
{required}
|
|
368
|
+
{disabled}
|
|
369
|
+
class={styles.toggleTimeInput({ class: clsx(theme?.toggleTimeInput, inputClass) })}
|
|
370
|
+
bind:value
|
|
371
|
+
oninput={(e) => handleTimeChange(e)}
|
|
372
|
+
onchange={(e) => handleTimeChange(e)}
|
|
373
|
+
/>
|
|
253
374
|
</div>
|
|
254
375
|
<div class={styles.toggleTimeCol({ class: clsx(theme?.toggleTimeCol) })}>
|
|
255
376
|
<Label for={endId}>End time:</Label>
|
|
256
|
-
<Input
|
|
377
|
+
<Input
|
|
378
|
+
id={endId}
|
|
379
|
+
color={inputColor}
|
|
380
|
+
type="time"
|
|
381
|
+
{min}
|
|
382
|
+
{max}
|
|
383
|
+
{required}
|
|
384
|
+
{disabled}
|
|
385
|
+
class={styles.toggleTimeInput({ class: clsx(theme?.toggleTimeInput, inputClass) })}
|
|
386
|
+
bind:value={endValue}
|
|
387
|
+
oninput={(e) => handleTimeChange(e, true)}
|
|
388
|
+
onchange={(e) => handleTimeChange(e, true)}
|
|
389
|
+
/>
|
|
257
390
|
</div>
|
|
258
391
|
</div>
|
|
259
392
|
{/if}
|
|
@@ -274,7 +407,7 @@
|
|
|
274
407
|
@component
|
|
275
408
|
[Go to docs](https://flowbite-svelte.com/)
|
|
276
409
|
## Type
|
|
277
|
-
[TimepickerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
410
|
+
[TimepickerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L919)
|
|
278
411
|
## Props
|
|
279
412
|
@prop id = "time"
|
|
280
413
|
@prop endId = "end-time"
|
|
@@ -2,7 +2,7 @@ import type { TimepickerProps } from "../..";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [TimepickerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [TimepickerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L919)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop id = "time"
|
|
8
8
|
* @prop endId = "end-time"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
@component
|
|
31
31
|
[Go to docs](https://flowbite-svelte.com/)
|
|
32
32
|
## Type
|
|
33
|
-
[ToggleProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
33
|
+
[ToggleProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L970)
|
|
34
34
|
## Props
|
|
35
35
|
@prop children
|
|
36
36
|
@prop size = "default"
|
|
@@ -2,7 +2,7 @@ import type { ToggleProps } from "../..";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [ToggleProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [ToggleProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L970)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop children
|
|
8
8
|
* @prop size = "default"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
@component
|
|
43
43
|
[Go to docs](https://flowbite-svelte.com/)
|
|
44
44
|
## Type
|
|
45
|
-
[GalleryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
45
|
+
[GalleryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L987)
|
|
46
46
|
## Props
|
|
47
47
|
@prop children
|
|
48
48
|
@prop figure
|
|
@@ -2,7 +2,7 @@ import type { GalleryProps } from "..";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [GalleryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [GalleryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L987)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop children
|
|
8
8
|
* @prop figure
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
@component
|
|
34
34
|
[Go to docs](https://flowbite-svelte.com/)
|
|
35
35
|
## Type
|
|
36
|
-
[IndicatorProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
36
|
+
[IndicatorProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L998)
|
|
37
37
|
## Props
|
|
38
38
|
@prop children
|
|
39
39
|
@prop color = "primary"
|
|
@@ -2,7 +2,7 @@ import type { IndicatorProps } from "..";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [IndicatorProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [IndicatorProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L998)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop children
|
|
8
8
|
* @prop color = "primary"
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { KanbanBoardProps, KanbanCardType, KanbanColumnType } from "../types";
|
|
3
|
+
import clsx from "clsx";
|
|
4
|
+
import { kanbanBoard } from "./theme";
|
|
5
|
+
import { getTheme } from "../theme/themeUtils";
|
|
6
|
+
import KanbanCard from "./KanbanCard.svelte";
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
columns = $bindable([]),
|
|
10
|
+
onMove = (_card: KanbanCardType, _from: KanbanColumnType, _to: KanbanColumnType) => {},
|
|
11
|
+
onAddCard = (_col: KanbanColumnType) => {},
|
|
12
|
+
class: className,
|
|
13
|
+
classes,
|
|
14
|
+
...restProps
|
|
15
|
+
}: KanbanBoardProps = $props();
|
|
16
|
+
|
|
17
|
+
const theme = getTheme("kanbanBoard");
|
|
18
|
+
|
|
19
|
+
// Changed from KanbanCard to KanbanCardType
|
|
20
|
+
let draggedCard = $state<KanbanCardType | null>(null);
|
|
21
|
+
let sourceColumnId = $state<string | number | null>(null);
|
|
22
|
+
let dragOverColumnId = $state<string | number | null>(null);
|
|
23
|
+
|
|
24
|
+
const styles = kanbanBoard();
|
|
25
|
+
|
|
26
|
+
// Changed parameter type from KanbanCard to KanbanCardType
|
|
27
|
+
function handleDragStart(card: KanbanCardType, colId: string | number) {
|
|
28
|
+
draggedCard = card;
|
|
29
|
+
sourceColumnId = colId;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function handleDragOver(e: DragEvent, colId: string | number) {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
dragOverColumnId = colId;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function handleDragLeave(e: DragEvent) {
|
|
38
|
+
const currentTarget = e.currentTarget as HTMLElement;
|
|
39
|
+
const relatedTarget = e.relatedTarget as Node | null;
|
|
40
|
+
if (!relatedTarget || !currentTarget.contains(relatedTarget)) {
|
|
41
|
+
dragOverColumnId = null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function handleDrop(e: DragEvent, targetColId: string | number) {
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
dragOverColumnId = null;
|
|
48
|
+
|
|
49
|
+
if (draggedCard === null || sourceColumnId === null) return;
|
|
50
|
+
if (sourceColumnId === targetColId) {
|
|
51
|
+
draggedCard = null;
|
|
52
|
+
sourceColumnId = null;
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const fromCol = columns.find((c) => c.id === sourceColumnId);
|
|
57
|
+
const toCol = columns.find((c) => c.id === targetColId);
|
|
58
|
+
if (!fromCol || !toCol) return;
|
|
59
|
+
|
|
60
|
+
fromCol.cards = fromCol.cards.filter((c) => c.id !== draggedCard!.id);
|
|
61
|
+
toCol.cards = [...toCol.cards, draggedCard!];
|
|
62
|
+
|
|
63
|
+
onMove(draggedCard, fromCol, toCol);
|
|
64
|
+
|
|
65
|
+
draggedCard = null;
|
|
66
|
+
sourceColumnId = null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function handleDragEnd() {
|
|
70
|
+
draggedCard = null;
|
|
71
|
+
sourceColumnId = null;
|
|
72
|
+
dragOverColumnId = null;
|
|
73
|
+
}
|
|
74
|
+
</script>
|
|
75
|
+
|
|
76
|
+
<div {...restProps} class={styles.container({ class: clsx(theme?.container, className) })}>
|
|
77
|
+
{#each columns as col (col.id)}
|
|
78
|
+
<div
|
|
79
|
+
role="group"
|
|
80
|
+
aria-label={`${col.title} column drop zone`}
|
|
81
|
+
class={styles.column({ isDragOver: dragOverColumnId === col.id, class: clsx(theme?.column, classes?.column) })}
|
|
82
|
+
ondragover={(e) => handleDragOver(e, col.id)}
|
|
83
|
+
ondragleave={(e) => handleDragLeave(e)}
|
|
84
|
+
ondrop={(e) => handleDrop(e, col.id)}
|
|
85
|
+
style={col.color ? `border-top: 4px solid ${col.color}` : ""}
|
|
86
|
+
>
|
|
87
|
+
<h2 class={styles.columnTitle({ class: clsx(theme?.columnTitle, classes?.columnTitle) })}>{col.title}</h2>
|
|
88
|
+
|
|
89
|
+
<div class={styles.cardList({ class: clsx(theme?.cardList, classes?.cardList) })} role="list" aria-label={`${col.title} cards`}>
|
|
90
|
+
{#each col.cards as card (card.id)}
|
|
91
|
+
<KanbanCard {card} {classes} isDragging={draggedCard?.id === card.id} onDragStart={() => handleDragStart(card, col.id)} onDragEnd={handleDragEnd} />
|
|
92
|
+
{/each}
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<button class={styles.addButton({ class: clsx(theme?.addButton, classes?.addButton) })} onclick={() => onAddCard(col)} aria-label={`Add card to ${col.title}`}>+ Add card</button>
|
|
96
|
+
</div>
|
|
97
|
+
{/each}
|
|
98
|
+
</div>
|