flowbite-svelte 1.21.0 → 1.22.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 +1 -1
- package/dist/accordion/AccordionItem.svelte.d.ts +1 -1
- package/dist/alert/Alert.svelte +1 -1
- 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 +1 -1
- package/dist/badge/Badge.svelte.d.ts +1 -1
- package/dist/banner/Banner.svelte +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/device-mockups/Android.svelte +1 -1
- package/dist/device-mockups/Android.svelte.d.ts +1 -1
- package/dist/device-mockups/DefaultMockup.svelte +1 -1
- 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 +1 -1
- package/dist/device-mockups/Ios.svelte.d.ts +1 -1
- package/dist/device-mockups/Laptop.svelte +1 -1
- package/dist/device-mockups/Laptop.svelte.d.ts +1 -1
- package/dist/device-mockups/Smartwatch.svelte +1 -1
- package/dist/device-mockups/Smartwatch.svelte.d.ts +1 -1
- package/dist/device-mockups/Tablet.svelte +1 -1
- package/dist/device-mockups/Tablet.svelte.d.ts +1 -1
- package/dist/dialog/Dialog.svelte +1 -1
- package/dist/dialog/Dialog.svelte.d.ts +1 -1
- package/dist/drawer/Drawer.svelte +1 -1
- 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 +1 -1
- package/dist/forms/button-toggle/ButtonToggle.svelte.d.ts +1 -1
- package/dist/forms/button-toggle/CheckIcon.svelte +1 -1
- package/dist/forms/button-toggle/CheckIcon.svelte.d.ts +1 -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 +1 -1
- package/dist/forms/fileupload/Fileupload.svelte.d.ts +1 -1
- package/dist/forms/floating-label/FloatingLabelInput.svelte +1 -1
- 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 +1 -1
- package/dist/forms/input-addon/InputAddon.svelte.d.ts +1 -1
- package/dist/forms/label/Label.svelte +1 -1
- package/dist/forms/label/Label.svelte.d.ts +1 -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 +1 -1
- package/dist/forms/search/Search.svelte.d.ts +1 -1
- package/dist/forms/textarea/Textarea.svelte +1 -1
- package/dist/forms/textarea/Textarea.svelte.d.ts +1 -1
- package/dist/forms/timepicker/Timepicker.svelte +1 -1
- 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 +2 -1
- package/dist/index.js +2 -1
- package/dist/indicator/Indicator.svelte +1 -1
- package/dist/indicator/Indicator.svelte.d.ts +1 -1
- package/dist/kanban/KanbanCard.svelte +1 -1
- package/dist/kanban/KanbanCard.svelte.d.ts +1 -1
- 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 +2 -2
- package/dist/mega-menu/MegaMenu.svelte.d.ts +1 -1
- package/dist/mega-menu/theme.js +2 -2
- package/dist/modal/Modal.svelte +1 -1
- 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 +1 -1
- package/dist/navbar/NavLi.svelte.d.ts +1 -1
- package/dist/navbar/NavUl.svelte +1 -1
- 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/popover/Popover.svelte +1 -1
- package/dist/popover/Popover.svelte.d.ts +1 -1
- package/dist/progress/Progressbar.svelte +1 -1
- package/dist/progress/Progressbar.svelte.d.ts +1 -1
- package/dist/progress/Progressradial.svelte +1 -1
- package/dist/progress/Progressradial.svelte.d.ts +1 -1
- package/dist/rating/AdvancedRating.svelte +1 -1
- package/dist/rating/AdvancedRating.svelte.d.ts +1 -1
- package/dist/rating/CustomIcon.svelte +1 -1
- package/dist/rating/CustomIcon.svelte.d.ts +1 -1
- package/dist/rating/Heart.svelte +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/rating/Star.svelte.d.ts +1 -1
- package/dist/rating/Thumbup.svelte +1 -1
- package/dist/rating/Thumbup.svelte.d.ts +1 -1
- package/dist/sidebar/Sidebar.svelte +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/skeleton/CardPlaceholder.svelte.d.ts +1 -1
- package/dist/skeleton/ImagePlaceholder.svelte +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
- package/dist/speed-dial/SpeedDialButton.svelte +1 -1
- 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 +1 -1
- package/dist/spinner/Spinner.svelte.d.ts +1 -1
- package/dist/{splitpane → split-pane}/Divider.svelte +2 -2
- package/dist/{splitpane → split-pane}/Divider.svelte.d.ts +2 -2
- package/dist/{splitpane → split-pane}/Pane.svelte +3 -3
- package/dist/{splitpane → split-pane}/Pane.svelte.d.ts +3 -3
- package/dist/{splitpane → split-pane}/SplitPane.svelte +1 -1
- package/dist/{splitpane → split-pane}/SplitPane.svelte.d.ts +1 -1
- package/dist/step-indicator/StepIndicator.svelte +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/themes.d.ts +2 -1
- package/dist/theme/themes.js +2 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/timeline/TimelineItem.svelte.d.ts +1 -1
- package/dist/toast/Toast.svelte +1 -1
- 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 +1 -1
- package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
- package/dist/tour/Tour.svelte +268 -0
- package/dist/tour/Tour.svelte.d.ts +4 -0
- package/dist/tour/index.d.ts +2 -0
- package/dist/tour/index.js +2 -0
- package/dist/tour/theme.d.ts +214 -0
- package/dist/tour/theme.js +79 -0
- package/dist/types.d.ts +18 -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 +1 -1
- 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 +1 -1
- package/dist/utils/CloseButton.svelte.d.ts +1 -1
- package/dist/utils/Popper.svelte +1 -1
- 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/package.json +11 -7
- /package/dist/{splitpane → split-pane}/index.d.ts +0 -0
- /package/dist/{splitpane → split-pane}/index.js +0 -0
- /package/dist/{splitpane → split-pane}/theme.d.ts +0 -0
- /package/dist/{splitpane → split-pane}/theme.js +0 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { tick } from "svelte";
|
|
3
|
+
import { computePosition, flip, shift, offset, arrow, type Placement } from "@floating-ui/dom";
|
|
4
|
+
import { tour } from "./theme";
|
|
5
|
+
import type { TourProps } from "../types";
|
|
6
|
+
import { getTheme } from "../theme/themeUtils";
|
|
7
|
+
import clsx from "clsx";
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
steps = [],
|
|
11
|
+
active = $bindable(false),
|
|
12
|
+
currentStep = $bindable(0),
|
|
13
|
+
oncomplete = () => {},
|
|
14
|
+
onskip = () => {},
|
|
15
|
+
showOverlay = true,
|
|
16
|
+
scrollBehavior = "smooth",
|
|
17
|
+
tooltipOffset = 12,
|
|
18
|
+
size = "md",
|
|
19
|
+
color = "primary",
|
|
20
|
+
highlightClass,
|
|
21
|
+
class: className,
|
|
22
|
+
classes,
|
|
23
|
+
...restProps
|
|
24
|
+
}: TourProps = $props();
|
|
25
|
+
|
|
26
|
+
const theme = getTheme("tour");
|
|
27
|
+
|
|
28
|
+
let highlightStyle = $state<string>("");
|
|
29
|
+
let tooltipStyle = $state<string>("");
|
|
30
|
+
let tooltipElement: HTMLDivElement | null = $state(null);
|
|
31
|
+
let arrowElement: HTMLDivElement | null = $state(null);
|
|
32
|
+
let arrowStyle = $state<string>("");
|
|
33
|
+
let actualPlacement = $state<Placement>("bottom");
|
|
34
|
+
let clipPathStyle = $state<string>("");
|
|
35
|
+
|
|
36
|
+
const isLastStep = $derived(currentStep === steps.length - 1);
|
|
37
|
+
const isFirstStep = $derived(currentStep === 0);
|
|
38
|
+
const currentStepData = $derived(steps[currentStep]);
|
|
39
|
+
|
|
40
|
+
const styles = $derived(tour({ size, color }));
|
|
41
|
+
|
|
42
|
+
async function updatePositions(): Promise<void> {
|
|
43
|
+
if (!active || !currentStepData?.target || !tooltipElement) return;
|
|
44
|
+
|
|
45
|
+
await tick();
|
|
46
|
+
|
|
47
|
+
const target = document.querySelector(currentStepData.target) as HTMLElement;
|
|
48
|
+
if (!target) {
|
|
49
|
+
console.warn(`Tour: Target element "${currentStepData.target}" not found`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Scroll target into view
|
|
54
|
+
target.scrollIntoView({ behavior: scrollBehavior, block: "center" });
|
|
55
|
+
await tick();
|
|
56
|
+
|
|
57
|
+
const rect = target.getBoundingClientRect();
|
|
58
|
+
|
|
59
|
+
// Calculate highlight position (no padding, exact match to element)
|
|
60
|
+
const highlightTop = rect.top;
|
|
61
|
+
const highlightLeft = rect.left;
|
|
62
|
+
const highlightWidth = rect.width;
|
|
63
|
+
const highlightHeight = rect.height;
|
|
64
|
+
|
|
65
|
+
highlightStyle = `
|
|
66
|
+
top: ${highlightTop}px;
|
|
67
|
+
left: ${highlightLeft}px;
|
|
68
|
+
width: ${highlightWidth}px;
|
|
69
|
+
height: ${highlightHeight}px;
|
|
70
|
+
`;
|
|
71
|
+
|
|
72
|
+
// Create clip-path for overlay to cut out the highlighted area
|
|
73
|
+
clipPathStyle = `clip-path: polygon(
|
|
74
|
+
0% 0%,
|
|
75
|
+
0% 100%,
|
|
76
|
+
${highlightLeft}px 100%,
|
|
77
|
+
${highlightLeft}px ${highlightTop}px,
|
|
78
|
+
${highlightLeft + highlightWidth}px ${highlightTop}px,
|
|
79
|
+
${highlightLeft + highlightWidth}px ${highlightTop + highlightHeight}px,
|
|
80
|
+
${highlightLeft}px ${highlightTop + highlightHeight}px,
|
|
81
|
+
${highlightLeft}px 100%,
|
|
82
|
+
100% 100%,
|
|
83
|
+
100% 0%
|
|
84
|
+
);`;
|
|
85
|
+
|
|
86
|
+
// Calculate tooltip position using Floating UI
|
|
87
|
+
const placement = currentStepData.placement || "bottom";
|
|
88
|
+
|
|
89
|
+
const {
|
|
90
|
+
x,
|
|
91
|
+
y,
|
|
92
|
+
placement: finalPlacement,
|
|
93
|
+
middlewareData
|
|
94
|
+
} = await computePosition(target, tooltipElement, {
|
|
95
|
+
placement,
|
|
96
|
+
middleware: [
|
|
97
|
+
offset(tooltipOffset),
|
|
98
|
+
flip({
|
|
99
|
+
fallbackPlacements: ["top", "bottom", "left", "right"]
|
|
100
|
+
}),
|
|
101
|
+
shift({ padding: 16 }),
|
|
102
|
+
...(arrowElement ? [arrow({ element: arrowElement })] : [])
|
|
103
|
+
]
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
tooltipStyle = `
|
|
107
|
+
left: ${x}px;
|
|
108
|
+
top: ${y}px;
|
|
109
|
+
`;
|
|
110
|
+
|
|
111
|
+
actualPlacement = finalPlacement;
|
|
112
|
+
|
|
113
|
+
// Update arrow position
|
|
114
|
+
if (middlewareData.arrow && arrowElement) {
|
|
115
|
+
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
116
|
+
|
|
117
|
+
const staticSide = {
|
|
118
|
+
top: "bottom",
|
|
119
|
+
right: "left",
|
|
120
|
+
bottom: "top",
|
|
121
|
+
left: "right"
|
|
122
|
+
}[finalPlacement.split("-")[0]]!;
|
|
123
|
+
|
|
124
|
+
arrowStyle = `
|
|
125
|
+
left: ${arrowX != null ? `${arrowX}px` : ""};
|
|
126
|
+
top: ${arrowY != null ? `${arrowY}px` : ""};
|
|
127
|
+
${staticSide}: -4px;
|
|
128
|
+
`;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function next(): void {
|
|
133
|
+
if (isLastStep) {
|
|
134
|
+
complete();
|
|
135
|
+
} else {
|
|
136
|
+
currentStep++;
|
|
137
|
+
updatePositions();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function previous(): void {
|
|
142
|
+
if (!isFirstStep) {
|
|
143
|
+
currentStep--;
|
|
144
|
+
updatePositions();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function skip(): void {
|
|
149
|
+
active = false;
|
|
150
|
+
onskip();
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function complete(): void {
|
|
154
|
+
active = false;
|
|
155
|
+
oncomplete();
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function goToStep(index: number): void {
|
|
159
|
+
currentStep = index;
|
|
160
|
+
updatePositions();
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Position updates - depends on active
|
|
164
|
+
$effect(() => {
|
|
165
|
+
if (active) {
|
|
166
|
+
updatePositions();
|
|
167
|
+
window.addEventListener("resize", updatePositions);
|
|
168
|
+
window.addEventListener("scroll", updatePositions, true);
|
|
169
|
+
|
|
170
|
+
return () => {
|
|
171
|
+
window.removeEventListener("resize", updatePositions);
|
|
172
|
+
window.removeEventListener("scroll", updatePositions, true);
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
// Focus management - depends on active AND tooltipElement
|
|
178
|
+
$effect(() => {
|
|
179
|
+
if (active && tooltipElement) {
|
|
180
|
+
tooltipElement.focus();
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
// Keyboard events - depends on active
|
|
185
|
+
$effect(() => {
|
|
186
|
+
if (active) {
|
|
187
|
+
const handleKeydown = (e: KeyboardEvent) => {
|
|
188
|
+
switch (e.key) {
|
|
189
|
+
case "Escape":
|
|
190
|
+
skip();
|
|
191
|
+
break;
|
|
192
|
+
case "ArrowRight":
|
|
193
|
+
case "ArrowDown":
|
|
194
|
+
e.preventDefault();
|
|
195
|
+
next();
|
|
196
|
+
break;
|
|
197
|
+
case "ArrowLeft":
|
|
198
|
+
case "ArrowUp":
|
|
199
|
+
e.preventDefault();
|
|
200
|
+
if (!isFirstStep) previous();
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
window.addEventListener("keydown", handleKeydown);
|
|
206
|
+
return () => window.removeEventListener("keydown", handleKeydown);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
</script>
|
|
210
|
+
|
|
211
|
+
{#if active && currentStepData}
|
|
212
|
+
<!-- Overlay -->
|
|
213
|
+
{#if showOverlay}
|
|
214
|
+
<div
|
|
215
|
+
class="{styles.overlay({ class: clsx(theme?.overlay, classes?.overlay) })} z-[9998]"
|
|
216
|
+
style={clipPathStyle}
|
|
217
|
+
onclick={skip}
|
|
218
|
+
onkeydown={(e) => e.key === "Escape" && skip()}
|
|
219
|
+
role="button"
|
|
220
|
+
tabindex="0"
|
|
221
|
+
aria-label="Close tour"
|
|
222
|
+
></div>
|
|
223
|
+
{/if}
|
|
224
|
+
|
|
225
|
+
<!-- Highlight -->
|
|
226
|
+
<div class="{highlightClass ? highlightClass : styles.highlight({ class: clsx(theme?.highlight, classes?.highlight) })} z-[9999]" style={highlightStyle}></div>
|
|
227
|
+
|
|
228
|
+
<!-- Tooltip -->
|
|
229
|
+
<div tabindex="-1" bind:this={tooltipElement} class={clsx(styles.tooltip({ class: clsx(theme?.tooltip, classes?.tooltip) }), "z-[10001]", className)} style={tooltipStyle}>
|
|
230
|
+
<!-- Arrow -->
|
|
231
|
+
<div bind:this={arrowElement} class={styles.arrow({ class: clsx(theme?.arrow, classes?.arrow) })} style={arrowStyle} data-placement={actualPlacement}></div>
|
|
232
|
+
|
|
233
|
+
<div {...restProps} class={styles.content({ class: clsx(theme?.content, classes?.content) })}>
|
|
234
|
+
{#if currentStepData.title}
|
|
235
|
+
<h3 class={styles.title({ class: clsx(theme?.title, classes?.title) })}>{currentStepData.title}</h3>
|
|
236
|
+
{/if}
|
|
237
|
+
|
|
238
|
+
<p class={styles.description({ class: clsx(theme?.description, classes?.description) })}>{currentStepData.description}</p>
|
|
239
|
+
|
|
240
|
+
{#if steps.length > 1}
|
|
241
|
+
<div class={styles.progressContainer({ class: clsx(theme?.progressContainer, classes?.progressContainer) })}>
|
|
242
|
+
{#each steps as _, index (index)}
|
|
243
|
+
<button
|
|
244
|
+
class="{styles.progressDot({ class: clsx(theme?.progressDot, classes?.progressDot) })} {index === currentStep ? styles.progressDotActive() : ''}"
|
|
245
|
+
onclick={() => goToStep(index)}
|
|
246
|
+
aria-label="Go to step {index + 1}"
|
|
247
|
+
aria-current={index === currentStep ? "step" : undefined}
|
|
248
|
+
></button>
|
|
249
|
+
{/each}
|
|
250
|
+
</div>
|
|
251
|
+
{/if}
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
<div class={styles.actions({ class: clsx(theme?.actions, classes?.actions) })}>
|
|
255
|
+
<button class="{styles.button({ class: clsx(theme?.button, classes?.button) })} {styles.buttonSecondary()}" onclick={skip}>Skip</button>
|
|
256
|
+
|
|
257
|
+
<div class={styles.navigation({ class: clsx(theme?.navigation, classes?.navigation) })}>
|
|
258
|
+
{#if !isFirstStep}
|
|
259
|
+
<button class="{styles.button({ class: clsx(theme?.button, classes?.button) })} {styles.buttonSecondary()}" onclick={previous}>Previous</button>
|
|
260
|
+
{/if}
|
|
261
|
+
|
|
262
|
+
<button class="{styles.button({ class: clsx(theme?.button, classes?.button) })} {styles.buttonPrimary()}" onclick={next}>
|
|
263
|
+
{isLastStep ? "Finish" : "Next"}
|
|
264
|
+
</button>
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
{/if}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { type VariantProps } from "tailwind-variants";
|
|
2
|
+
import type { Classes } from "../theme/themeUtils";
|
|
3
|
+
export type TourVariants = VariantProps<typeof tour> & Classes<typeof tour>;
|
|
4
|
+
export declare const tour: import("tailwind-variants").TVReturnType<{
|
|
5
|
+
size: {
|
|
6
|
+
sm: {
|
|
7
|
+
tooltip: string;
|
|
8
|
+
content: string;
|
|
9
|
+
actions: string;
|
|
10
|
+
title: string;
|
|
11
|
+
description: string;
|
|
12
|
+
button: string;
|
|
13
|
+
};
|
|
14
|
+
md: {
|
|
15
|
+
tooltip: string;
|
|
16
|
+
content: string;
|
|
17
|
+
actions: string;
|
|
18
|
+
title: string;
|
|
19
|
+
description: string;
|
|
20
|
+
button: string;
|
|
21
|
+
};
|
|
22
|
+
lg: {
|
|
23
|
+
tooltip: string;
|
|
24
|
+
content: string;
|
|
25
|
+
actions: string;
|
|
26
|
+
title: string;
|
|
27
|
+
description: string;
|
|
28
|
+
button: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
color: {
|
|
32
|
+
primary: {
|
|
33
|
+
highlight: string;
|
|
34
|
+
progressDotActive: string;
|
|
35
|
+
buttonPrimary: string;
|
|
36
|
+
};
|
|
37
|
+
blue: {
|
|
38
|
+
highlight: string;
|
|
39
|
+
progressDotActive: string;
|
|
40
|
+
buttonPrimary: string;
|
|
41
|
+
};
|
|
42
|
+
purple: {
|
|
43
|
+
highlight: string;
|
|
44
|
+
progressDotActive: string;
|
|
45
|
+
buttonPrimary: string;
|
|
46
|
+
};
|
|
47
|
+
green: {
|
|
48
|
+
highlight: string;
|
|
49
|
+
progressDotActive: string;
|
|
50
|
+
buttonPrimary: string;
|
|
51
|
+
};
|
|
52
|
+
red: {
|
|
53
|
+
highlight: string;
|
|
54
|
+
progressDotActive: string;
|
|
55
|
+
buttonPrimary: string;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
}, {
|
|
59
|
+
overlay: string;
|
|
60
|
+
highlight: string[];
|
|
61
|
+
tooltip: string[];
|
|
62
|
+
arrow: string;
|
|
63
|
+
content: string;
|
|
64
|
+
title: string;
|
|
65
|
+
description: string;
|
|
66
|
+
progressContainer: string;
|
|
67
|
+
progressDot: string[];
|
|
68
|
+
progressDotActive: string;
|
|
69
|
+
actions: string[];
|
|
70
|
+
navigation: string;
|
|
71
|
+
button: string[];
|
|
72
|
+
buttonPrimary: string[];
|
|
73
|
+
buttonSecondary: string[];
|
|
74
|
+
}, undefined, {
|
|
75
|
+
size: {
|
|
76
|
+
sm: {
|
|
77
|
+
tooltip: string;
|
|
78
|
+
content: string;
|
|
79
|
+
actions: string;
|
|
80
|
+
title: string;
|
|
81
|
+
description: string;
|
|
82
|
+
button: string;
|
|
83
|
+
};
|
|
84
|
+
md: {
|
|
85
|
+
tooltip: string;
|
|
86
|
+
content: string;
|
|
87
|
+
actions: string;
|
|
88
|
+
title: string;
|
|
89
|
+
description: string;
|
|
90
|
+
button: string;
|
|
91
|
+
};
|
|
92
|
+
lg: {
|
|
93
|
+
tooltip: string;
|
|
94
|
+
content: string;
|
|
95
|
+
actions: string;
|
|
96
|
+
title: string;
|
|
97
|
+
description: string;
|
|
98
|
+
button: string;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
color: {
|
|
102
|
+
primary: {
|
|
103
|
+
highlight: string;
|
|
104
|
+
progressDotActive: string;
|
|
105
|
+
buttonPrimary: string;
|
|
106
|
+
};
|
|
107
|
+
blue: {
|
|
108
|
+
highlight: string;
|
|
109
|
+
progressDotActive: string;
|
|
110
|
+
buttonPrimary: string;
|
|
111
|
+
};
|
|
112
|
+
purple: {
|
|
113
|
+
highlight: string;
|
|
114
|
+
progressDotActive: string;
|
|
115
|
+
buttonPrimary: string;
|
|
116
|
+
};
|
|
117
|
+
green: {
|
|
118
|
+
highlight: string;
|
|
119
|
+
progressDotActive: string;
|
|
120
|
+
buttonPrimary: string;
|
|
121
|
+
};
|
|
122
|
+
red: {
|
|
123
|
+
highlight: string;
|
|
124
|
+
progressDotActive: string;
|
|
125
|
+
buttonPrimary: string;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
}, {
|
|
129
|
+
overlay: string;
|
|
130
|
+
highlight: string[];
|
|
131
|
+
tooltip: string[];
|
|
132
|
+
arrow: string;
|
|
133
|
+
content: string;
|
|
134
|
+
title: string;
|
|
135
|
+
description: string;
|
|
136
|
+
progressContainer: string;
|
|
137
|
+
progressDot: string[];
|
|
138
|
+
progressDotActive: string;
|
|
139
|
+
actions: string[];
|
|
140
|
+
navigation: string;
|
|
141
|
+
button: string[];
|
|
142
|
+
buttonPrimary: string[];
|
|
143
|
+
buttonSecondary: string[];
|
|
144
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
145
|
+
size: {
|
|
146
|
+
sm: {
|
|
147
|
+
tooltip: string;
|
|
148
|
+
content: string;
|
|
149
|
+
actions: string;
|
|
150
|
+
title: string;
|
|
151
|
+
description: string;
|
|
152
|
+
button: string;
|
|
153
|
+
};
|
|
154
|
+
md: {
|
|
155
|
+
tooltip: string;
|
|
156
|
+
content: string;
|
|
157
|
+
actions: string;
|
|
158
|
+
title: string;
|
|
159
|
+
description: string;
|
|
160
|
+
button: string;
|
|
161
|
+
};
|
|
162
|
+
lg: {
|
|
163
|
+
tooltip: string;
|
|
164
|
+
content: string;
|
|
165
|
+
actions: string;
|
|
166
|
+
title: string;
|
|
167
|
+
description: string;
|
|
168
|
+
button: string;
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
color: {
|
|
172
|
+
primary: {
|
|
173
|
+
highlight: string;
|
|
174
|
+
progressDotActive: string;
|
|
175
|
+
buttonPrimary: string;
|
|
176
|
+
};
|
|
177
|
+
blue: {
|
|
178
|
+
highlight: string;
|
|
179
|
+
progressDotActive: string;
|
|
180
|
+
buttonPrimary: string;
|
|
181
|
+
};
|
|
182
|
+
purple: {
|
|
183
|
+
highlight: string;
|
|
184
|
+
progressDotActive: string;
|
|
185
|
+
buttonPrimary: string;
|
|
186
|
+
};
|
|
187
|
+
green: {
|
|
188
|
+
highlight: string;
|
|
189
|
+
progressDotActive: string;
|
|
190
|
+
buttonPrimary: string;
|
|
191
|
+
};
|
|
192
|
+
red: {
|
|
193
|
+
highlight: string;
|
|
194
|
+
progressDotActive: string;
|
|
195
|
+
buttonPrimary: string;
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
}, {
|
|
199
|
+
overlay: string;
|
|
200
|
+
highlight: string[];
|
|
201
|
+
tooltip: string[];
|
|
202
|
+
arrow: string;
|
|
203
|
+
content: string;
|
|
204
|
+
title: string;
|
|
205
|
+
description: string;
|
|
206
|
+
progressContainer: string;
|
|
207
|
+
progressDot: string[];
|
|
208
|
+
progressDotActive: string;
|
|
209
|
+
actions: string[];
|
|
210
|
+
navigation: string;
|
|
211
|
+
button: string[];
|
|
212
|
+
buttonPrimary: string[];
|
|
213
|
+
buttonSecondary: string[];
|
|
214
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { tv } from "tailwind-variants";
|
|
2
|
+
export const tour = tv({
|
|
3
|
+
slots: {
|
|
4
|
+
overlay: "fixed inset-0 bg-black/50 backdrop-blur-sm",
|
|
5
|
+
highlight: ["fixed border-2 pointer-events-none transition-all duration-300", "border-blue-500", "shadow-[0_0_0_4px_rgba(59,130,246,0.2)]"],
|
|
6
|
+
tooltip: ["fixed bg-white rounded-xl shadow-2xl", "w-80 max-w-[calc(100vw-2rem)]"],
|
|
7
|
+
arrow: "absolute w-2 h-2 rotate-45 bg-white",
|
|
8
|
+
content: "p-5 relative z-10 bg-white rounded-xl",
|
|
9
|
+
title: "text-lg font-semibold text-gray-900 mb-3",
|
|
10
|
+
description: "text-sm leading-relaxed text-gray-600 mb-4",
|
|
11
|
+
progressContainer: "flex gap-2 justify-center",
|
|
12
|
+
progressDot: ["w-2 h-2 rounded-full bg-gray-300", "hover:bg-gray-400 transition-all duration-200 hover:scale-110"],
|
|
13
|
+
progressDotActive: "!bg-blue-500 !w-6 rounded",
|
|
14
|
+
actions: ["flex justify-between items-center px-5 py-4", "border-t border-gray-200 relative z-10 bg-white rounded-b-xl"],
|
|
15
|
+
navigation: "flex gap-2",
|
|
16
|
+
button: ["px-4 py-2 rounded-md text-sm font-medium", "transition-all duration-200"],
|
|
17
|
+
buttonPrimary: ["text-white bg-blue-500 hover:bg-blue-600"],
|
|
18
|
+
buttonSecondary: ["text-gray-600 border border-gray-300", "hover:bg-gray-50 hover:border-gray-400"]
|
|
19
|
+
},
|
|
20
|
+
variants: {
|
|
21
|
+
size: {
|
|
22
|
+
sm: {
|
|
23
|
+
tooltip: "w-64",
|
|
24
|
+
content: "p-4",
|
|
25
|
+
actions: "px-4 py-3",
|
|
26
|
+
title: "text-base",
|
|
27
|
+
description: "text-xs",
|
|
28
|
+
button: "px-3 py-1.5 text-xs"
|
|
29
|
+
},
|
|
30
|
+
md: {
|
|
31
|
+
tooltip: "w-80",
|
|
32
|
+
content: "p-5",
|
|
33
|
+
actions: "px-5 py-4",
|
|
34
|
+
title: "text-lg",
|
|
35
|
+
description: "text-sm",
|
|
36
|
+
button: "px-4 py-2 text-sm"
|
|
37
|
+
},
|
|
38
|
+
lg: {
|
|
39
|
+
tooltip: "w-96",
|
|
40
|
+
content: "p-6",
|
|
41
|
+
actions: "px-6 py-5",
|
|
42
|
+
title: "text-xl",
|
|
43
|
+
description: "text-base",
|
|
44
|
+
button: "px-5 py-2.5 text-base"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
color: {
|
|
48
|
+
primary: {
|
|
49
|
+
highlight: "border-primary-500 shadow-[0_0_0_4px_rgba(59,130,246,0.2)]",
|
|
50
|
+
progressDotActive: "!bg-primary-500",
|
|
51
|
+
buttonPrimary: "bg-primary-500 hover:bg-primary-600"
|
|
52
|
+
},
|
|
53
|
+
blue: {
|
|
54
|
+
highlight: "border-blue-500 shadow-[0_0_0_4px_rgba(59,130,246,0.2)]",
|
|
55
|
+
progressDotActive: "!bg-blue-500",
|
|
56
|
+
buttonPrimary: "bg-blue-500 hover:bg-blue-600"
|
|
57
|
+
},
|
|
58
|
+
purple: {
|
|
59
|
+
highlight: "border-purple-500 shadow-[0_0_0_4px_rgba(168,85,247,0.2)]",
|
|
60
|
+
progressDotActive: "!bg-purple-500",
|
|
61
|
+
buttonPrimary: "bg-purple-500 hover:bg-purple-600"
|
|
62
|
+
},
|
|
63
|
+
green: {
|
|
64
|
+
highlight: "border-green-500 shadow-[0_0_0_4px_rgba(34,197,94,0.2)]",
|
|
65
|
+
progressDotActive: "!bg-green-500",
|
|
66
|
+
buttonPrimary: "bg-green-500 hover:bg-green-600"
|
|
67
|
+
},
|
|
68
|
+
red: {
|
|
69
|
+
highlight: "border-red-500 shadow-[0_0_0_4px_rgba(239,68,68,0.2)]",
|
|
70
|
+
progressDotActive: "!bg-red-500",
|
|
71
|
+
buttonPrimary: "bg-red-500 hover:bg-red-600"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
defaultVariants: {
|
|
76
|
+
size: "md",
|
|
77
|
+
color: "blue"
|
|
78
|
+
}
|
|
79
|
+
});
|
package/dist/types.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ import type { ButtonToggleVariants } from "./forms/button-toggle/theme";
|
|
|
74
74
|
import type { TagsVariants } from "./forms/tags/theme";
|
|
75
75
|
import type { VirtualListVariants } from "./virtuallist/theme";
|
|
76
76
|
import type { KanbanBoardVariants, KanbanCardVariants } from "./kanban/theme";
|
|
77
|
+
import type { TourVariants } from "./tour/theme";
|
|
77
78
|
import type { CloseButtonVariants } from "./utils/theme";
|
|
78
79
|
import type { DialogVariants } from "./dialog/theme";
|
|
79
80
|
export declare const xs = "xs";
|
|
@@ -1817,3 +1818,20 @@ export interface DividerProps {
|
|
|
1817
1818
|
class?: string;
|
|
1818
1819
|
currentSize: number;
|
|
1819
1820
|
}
|
|
1821
|
+
export type TourStep = {
|
|
1822
|
+
target: string;
|
|
1823
|
+
title?: string;
|
|
1824
|
+
description: string;
|
|
1825
|
+
placement?: Placement;
|
|
1826
|
+
};
|
|
1827
|
+
export interface TourProps extends TourVariants, Omit<HTMLAttributes<HTMLDivElement>, "color"> {
|
|
1828
|
+
steps: TourStep[];
|
|
1829
|
+
active?: boolean;
|
|
1830
|
+
currentStep?: number;
|
|
1831
|
+
oncomplete?: () => void;
|
|
1832
|
+
onskip?: () => void;
|
|
1833
|
+
showOverlay?: boolean;
|
|
1834
|
+
scrollBehavior?: ScrollBehavior;
|
|
1835
|
+
tooltipOffset?: number;
|
|
1836
|
+
highlightClass?: string;
|
|
1837
|
+
}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
@component
|
|
44
44
|
[Go to docs](https://flowbite-svelte.com/)
|
|
45
45
|
## Type
|
|
46
|
-
[AnchorProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
46
|
+
[AnchorProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1893)
|
|
47
47
|
## Props
|
|
48
48
|
@prop children
|
|
49
49
|
@prop color = "primary"
|
|
@@ -2,7 +2,7 @@ import type { AnchorProps } from "../../types";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [AnchorProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [AnchorProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1893)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop children
|
|
8
8
|
* @prop color = "primary"
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
@component
|
|
29
29
|
[Go to docs](https://flowbite-svelte.com/)
|
|
30
30
|
## Type
|
|
31
|
-
[BlockquoteProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
31
|
+
[BlockquoteProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1922)
|
|
32
32
|
## Props
|
|
33
33
|
@prop children
|
|
34
34
|
@prop class: className
|
|
@@ -2,7 +2,7 @@ import type { BlockquoteProps } from "../../types";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [BlockquoteProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [BlockquoteProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1922)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop children
|
|
8
8
|
* @prop class: className
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
@component
|
|
25
25
|
[Go to docs](https://flowbite-svelte.com/)
|
|
26
26
|
## Type
|
|
27
|
-
[DescriptionListProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
27
|
+
[DescriptionListProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1932)
|
|
28
28
|
## Props
|
|
29
29
|
@prop children
|
|
30
30
|
@prop tag
|
|
@@ -2,7 +2,7 @@ import type { DescriptionListProps } from "../../types";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [DescriptionListProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [DescriptionListProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1932)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop children
|
|
8
8
|
* @prop tag
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
@component
|
|
20
20
|
[Go to docs](https://flowbite-svelte.com/)
|
|
21
21
|
## Type
|
|
22
|
-
[HeadingProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
22
|
+
[HeadingProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1938)
|
|
23
23
|
## Props
|
|
24
24
|
@prop children
|
|
25
25
|
@prop tag = "h1"
|
|
@@ -2,7 +2,7 @@ import type { HeadingProps } from "../../types";
|
|
|
2
2
|
/**
|
|
3
3
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
4
4
|
* ## Type
|
|
5
|
-
* [HeadingProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#
|
|
5
|
+
* [HeadingProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1938)
|
|
6
6
|
* ## Props
|
|
7
7
|
* @prop children
|
|
8
8
|
* @prop tag = "h1"
|