svelora 2.1.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/LICENSE +21 -0
- package/README.md +145 -0
- package/dist/Accordion/Accordion.svelte +207 -0
- package/dist/Accordion/Accordion.svelte.d.ts +6 -0
- package/dist/Accordion/accordion.types.d.ts +225 -0
- package/dist/Accordion/accordion.types.js +1 -0
- package/dist/Accordion/accordion.variants.d.ts +88 -0
- package/dist/Accordion/accordion.variants.js +28 -0
- package/dist/Accordion/index.d.ts +2 -0
- package/dist/Accordion/index.js +1 -0
- package/dist/Alert/Alert.svelte +131 -0
- package/dist/Alert/Alert.svelte.d.ts +5 -0
- package/dist/Alert/alert.types.d.ts +103 -0
- package/dist/Alert/alert.types.js +1 -0
- package/dist/Alert/alert.variants.d.ts +213 -0
- package/dist/Alert/alert.variants.js +293 -0
- package/dist/Alert/index.d.ts +2 -0
- package/dist/Alert/index.js +1 -0
- package/dist/Avatar/Avatar.svelte +114 -0
- package/dist/Avatar/Avatar.svelte.d.ts +6 -0
- package/dist/Avatar/avatar.types.d.ts +73 -0
- package/dist/Avatar/avatar.types.js +1 -0
- package/dist/Avatar/avatar.variants.d.ts +316 -0
- package/dist/Avatar/avatar.variants.js +39 -0
- package/dist/Avatar/index.d.ts +2 -0
- package/dist/Avatar/index.js +1 -0
- package/dist/AvatarGroup/AvatarGroup.svelte +71 -0
- package/dist/AvatarGroup/AvatarGroup.svelte.d.ts +5 -0
- package/dist/AvatarGroup/avatar-group.types.d.ts +49 -0
- package/dist/AvatarGroup/avatar-group.types.js +1 -0
- package/dist/AvatarGroup/avatar-group.variants.d.ts +258 -0
- package/dist/AvatarGroup/avatar-group.variants.js +35 -0
- package/dist/AvatarGroup/index.d.ts +2 -0
- package/dist/AvatarGroup/index.js +1 -0
- package/dist/Badge/Badge.svelte +79 -0
- package/dist/Badge/Badge.svelte.d.ts +5 -0
- package/dist/Badge/badge.types.d.ts +83 -0
- package/dist/Badge/badge.types.js +1 -0
- package/dist/Badge/badge.variants.d.ts +303 -0
- package/dist/Badge/badge.variants.js +259 -0
- package/dist/Badge/index.d.ts +2 -0
- package/dist/Badge/index.js +1 -0
- package/dist/Banner/Banner.svelte +130 -0
- package/dist/Banner/Banner.svelte.d.ts +5 -0
- package/dist/Banner/banner.types.d.ts +148 -0
- package/dist/Banner/banner.types.js +1 -0
- package/dist/Banner/banner.variants.d.ts +293 -0
- package/dist/Banner/banner.variants.js +86 -0
- package/dist/Banner/index.d.ts +2 -0
- package/dist/Banner/index.js +1 -0
- package/dist/Breadcrumb/Breadcrumb.svelte +79 -0
- package/dist/Breadcrumb/Breadcrumb.svelte.d.ts +5 -0
- package/dist/Breadcrumb/breadcrumb.types.d.ts +66 -0
- package/dist/Breadcrumb/breadcrumb.types.js +1 -0
- package/dist/Breadcrumb/breadcrumb.variants.d.ts +138 -0
- package/dist/Breadcrumb/breadcrumb.variants.js +53 -0
- package/dist/Breadcrumb/index.d.ts +2 -0
- package/dist/Breadcrumb/index.js +1 -0
- package/dist/Button/Button.svelte +177 -0
- package/dist/Button/Button.svelte.d.ts +5 -0
- package/dist/Button/button.types.d.ts +151 -0
- package/dist/Button/button.types.js +1 -0
- package/dist/Button/button.variants.d.ts +388 -0
- package/dist/Button/button.variants.js +461 -0
- package/dist/Button/index.d.ts +2 -0
- package/dist/Button/index.js +1 -0
- package/dist/Calendar/Calendar.svelte +344 -0
- package/dist/Calendar/Calendar.svelte.d.ts +6 -0
- package/dist/Calendar/calendar.types.d.ts +122 -0
- package/dist/Calendar/calendar.types.js +1 -0
- package/dist/Calendar/calendar.variants.d.ts +553 -0
- package/dist/Calendar/calendar.variants.js +368 -0
- package/dist/Calendar/index.d.ts +2 -0
- package/dist/Calendar/index.js +1 -0
- package/dist/Card/Card.svelte +54 -0
- package/dist/Card/Card.svelte.d.ts +5 -0
- package/dist/Card/card.types.d.ts +36 -0
- package/dist/Card/card.types.js +1 -0
- package/dist/Card/card.variants.d.ts +108 -0
- package/dist/Card/card.variants.js +32 -0
- package/dist/Card/index.d.ts +2 -0
- package/dist/Card/index.js +1 -0
- package/dist/Carousel/Carousel.svelte +277 -0
- package/dist/Carousel/Carousel.svelte.d.ts +26 -0
- package/dist/Carousel/carousel.types.d.ts +251 -0
- package/dist/Carousel/carousel.types.js +1 -0
- package/dist/Carousel/carousel.variants.d.ts +408 -0
- package/dist/Carousel/carousel.variants.js +88 -0
- package/dist/Carousel/index.d.ts +2 -0
- package/dist/Carousel/index.js +1 -0
- package/dist/Checkbox/Checkbox.svelte +161 -0
- package/dist/Checkbox/Checkbox.svelte.d.ts +6 -0
- package/dist/Checkbox/checkbox.types.d.ts +101 -0
- package/dist/Checkbox/checkbox.types.js +1 -0
- package/dist/Checkbox/checkbox.variants.d.ts +448 -0
- package/dist/Checkbox/checkbox.variants.js +209 -0
- package/dist/Checkbox/index.d.ts +2 -0
- package/dist/Checkbox/index.js +1 -0
- package/dist/CheckboxGroup/CheckboxGroup.svelte +219 -0
- package/dist/CheckboxGroup/CheckboxGroup.svelte.d.ts +5 -0
- package/dist/CheckboxGroup/checkbox-group.types.d.ts +130 -0
- package/dist/CheckboxGroup/checkbox-group.types.js +1 -0
- package/dist/CheckboxGroup/checkbox-group.variants.d.ts +553 -0
- package/dist/CheckboxGroup/checkbox-group.variants.js +231 -0
- package/dist/CheckboxGroup/index.d.ts +2 -0
- package/dist/CheckboxGroup/index.js +1 -0
- package/dist/Chip/Chip.svelte +51 -0
- package/dist/Chip/Chip.svelte.d.ts +5 -0
- package/dist/Chip/chip.types.d.ts +66 -0
- package/dist/Chip/chip.types.js +1 -0
- package/dist/Chip/chip.variants.d.ts +418 -0
- package/dist/Chip/chip.variants.js +74 -0
- package/dist/Chip/index.d.ts +2 -0
- package/dist/Chip/index.js +1 -0
- package/dist/Collapsible/Collapsible.svelte +69 -0
- package/dist/Collapsible/Collapsible.svelte.d.ts +6 -0
- package/dist/Collapsible/CollapsibleTestWrapper.svelte +17 -0
- package/dist/Collapsible/CollapsibleTestWrapper.svelte.d.ts +4 -0
- package/dist/Collapsible/collapsible.types.d.ts +77 -0
- package/dist/Collapsible/collapsible.types.js +1 -0
- package/dist/Collapsible/collapsible.variants.d.ts +53 -0
- package/dist/Collapsible/collapsible.variants.js +21 -0
- package/dist/Collapsible/index.d.ts +2 -0
- package/dist/Collapsible/index.js +1 -0
- package/dist/Command/Command.svelte +183 -0
- package/dist/Command/Command.svelte.d.ts +6 -0
- package/dist/Command/CommandTestWrapper.svelte +13 -0
- package/dist/Command/CommandTestWrapper.svelte.d.ts +4 -0
- package/dist/Command/command.types.d.ts +100 -0
- package/dist/Command/command.types.js +1 -0
- package/dist/Command/command.variants.d.ts +226 -0
- package/dist/Command/command.variants.js +86 -0
- package/dist/Command/index.d.ts +2 -0
- package/dist/Command/index.js +1 -0
- package/dist/Container/Container.svelte +21 -0
- package/dist/Container/Container.svelte.d.ts +5 -0
- package/dist/Container/container.types.d.ts +19 -0
- package/dist/Container/container.types.js +1 -0
- package/dist/Container/container.variants.d.ts +29 -0
- package/dist/Container/container.variants.js +9 -0
- package/dist/Container/index.d.ts +2 -0
- package/dist/Container/index.js +1 -0
- package/dist/ContextMenu/ContextMenu.svelte +344 -0
- package/dist/ContextMenu/ContextMenu.svelte.d.ts +6 -0
- package/dist/ContextMenu/context-menu.types.d.ts +265 -0
- package/dist/ContextMenu/context-menu.types.js +1 -0
- package/dist/ContextMenu/context-menu.variants.d.ts +307 -0
- package/dist/ContextMenu/context-menu.variants.js +144 -0
- package/dist/ContextMenu/index.d.ts +2 -0
- package/dist/ContextMenu/index.js +1 -0
- package/dist/Drawer/Drawer.svelte +207 -0
- package/dist/Drawer/Drawer.svelte.d.ts +6 -0
- package/dist/Drawer/DrawerTriggerTestWrapper.svelte +10 -0
- package/dist/Drawer/DrawerTriggerTestWrapper.svelte.d.ts +18 -0
- package/dist/Drawer/drawer.types.d.ts +116 -0
- package/dist/Drawer/drawer.types.js +1 -0
- package/dist/Drawer/drawer.variants.d.ts +193 -0
- package/dist/Drawer/drawer.variants.js +139 -0
- package/dist/Drawer/index.d.ts +2 -0
- package/dist/Drawer/index.js +1 -0
- package/dist/DropdownMenu/DropdownMenu.svelte +363 -0
- package/dist/DropdownMenu/DropdownMenu.svelte.d.ts +6 -0
- package/dist/DropdownMenu/DropdownMenuTriggerTestWrapper.svelte +12 -0
- package/dist/DropdownMenu/DropdownMenuTriggerTestWrapper.svelte.d.ts +7 -0
- package/dist/DropdownMenu/dropdown-menu.types.d.ts +279 -0
- package/dist/DropdownMenu/dropdown-menu.types.js +1 -0
- package/dist/DropdownMenu/dropdown-menu.variants.d.ts +312 -0
- package/dist/DropdownMenu/dropdown-menu.variants.js +149 -0
- package/dist/DropdownMenu/index.d.ts +2 -0
- package/dist/DropdownMenu/index.js +1 -0
- package/dist/Editor/Editor.svelte +756 -0
- package/dist/Editor/Editor.svelte.d.ts +6 -0
- package/dist/Editor/EditorUrlPrompt.svelte +94 -0
- package/dist/Editor/EditorUrlPrompt.svelte.d.ts +15 -0
- package/dist/Editor/SlashPopup.svelte +74 -0
- package/dist/Editor/SlashPopup.svelte.d.ts +11 -0
- package/dist/Editor/editor.extensions.d.ts +23 -0
- package/dist/Editor/editor.extensions.js +132 -0
- package/dist/Editor/editor.schemas.d.ts +5 -0
- package/dist/Editor/editor.schemas.js +27 -0
- package/dist/Editor/editor.slash.svelte.d.ts +25 -0
- package/dist/Editor/editor.slash.svelte.js +299 -0
- package/dist/Editor/editor.suggestion.d.ts +7 -0
- package/dist/Editor/editor.suggestion.js +165 -0
- package/dist/Editor/editor.toolbar.d.ts +11 -0
- package/dist/Editor/editor.toolbar.js +204 -0
- package/dist/Editor/editor.types.d.ts +367 -0
- package/dist/Editor/editor.types.js +1 -0
- package/dist/Editor/editor.variants.d.ts +303 -0
- package/dist/Editor/editor.variants.js +135 -0
- package/dist/Editor/index.d.ts +55 -0
- package/dist/Editor/index.js +54 -0
- package/dist/Empty/Empty.svelte +118 -0
- package/dist/Empty/Empty.svelte.d.ts +5 -0
- package/dist/Empty/empty.types.d.ts +91 -0
- package/dist/Empty/empty.types.js +1 -0
- package/dist/Empty/empty.variants.d.ts +308 -0
- package/dist/Empty/empty.variants.js +73 -0
- package/dist/Empty/index.d.ts +2 -0
- package/dist/Empty/index.js +1 -0
- package/dist/FieldGroup/FieldGroup.svelte +53 -0
- package/dist/FieldGroup/FieldGroup.svelte.d.ts +5 -0
- package/dist/FieldGroup/field-group.types.d.ts +37 -0
- package/dist/FieldGroup/field-group.types.js +1 -0
- package/dist/FieldGroup/field-group.variants.d.ts +116 -0
- package/dist/FieldGroup/field-group.variants.js +49 -0
- package/dist/FieldGroup/index.d.ts +2 -0
- package/dist/FieldGroup/index.js +1 -0
- package/dist/FileUpload/FileUpload.svelte +639 -0
- package/dist/FileUpload/FileUpload.svelte.d.ts +8 -0
- package/dist/FileUpload/file-upload.types.d.ts +203 -0
- package/dist/FileUpload/file-upload.types.js +1 -0
- package/dist/FileUpload/file-upload.variants.d.ts +397 -0
- package/dist/FileUpload/file-upload.variants.js +224 -0
- package/dist/FileUpload/index.d.ts +2 -0
- package/dist/FileUpload/index.js +1 -0
- package/dist/Form/Form.svelte +197 -0
- package/dist/Form/Form.svelte.d.ts +26 -0
- package/dist/Form/form.context.svelte.d.ts +64 -0
- package/dist/Form/form.context.svelte.js +478 -0
- package/dist/Form/form.types.d.ts +164 -0
- package/dist/Form/form.types.js +12 -0
- package/dist/Form/form.variants.d.ts +39 -0
- package/dist/Form/form.variants.js +17 -0
- package/dist/Form/index.d.ts +4 -0
- package/dist/Form/index.js +6 -0
- package/dist/Form/validate-schema.d.ts +13 -0
- package/dist/Form/validate-schema.js +113 -0
- package/dist/FormField/FormField.svelte +186 -0
- package/dist/FormField/FormField.svelte.d.ts +5 -0
- package/dist/FormField/form-field.types.d.ts +109 -0
- package/dist/FormField/form-field.types.js +1 -0
- package/dist/FormField/form-field.variants.d.ts +313 -0
- package/dist/FormField/form-field.variants.js +74 -0
- package/dist/FormField/index.d.ts +2 -0
- package/dist/FormField/index.js +1 -0
- package/dist/Icon/Icon.svelte +46 -0
- package/dist/Icon/Icon.svelte.d.ts +6 -0
- package/dist/Icon/icon.types.d.ts +49 -0
- package/dist/Icon/icon.types.js +1 -0
- package/dist/Icon/index.d.ts +2 -0
- package/dist/Icon/index.js +1 -0
- package/dist/Input/Input.svelte +199 -0
- package/dist/Input/Input.svelte.d.ts +26 -0
- package/dist/Input/index.d.ts +2 -0
- package/dist/Input/index.js +1 -0
- package/dist/Input/input.types.d.ts +113 -0
- package/dist/Input/input.types.js +1 -0
- package/dist/Input/input.variants.d.ts +398 -0
- package/dist/Input/input.variants.js +387 -0
- package/dist/Kbd/Kbd.svelte +45 -0
- package/dist/Kbd/Kbd.svelte.d.ts +5 -0
- package/dist/Kbd/index.d.ts +3 -0
- package/dist/Kbd/index.js +2 -0
- package/dist/Kbd/kbd.types.d.ts +91 -0
- package/dist/Kbd/kbd.types.js +1 -0
- package/dist/Kbd/kbd.variants.d.ts +180 -0
- package/dist/Kbd/kbd.variants.js +168 -0
- package/dist/Kbd/useKbd.svelte.d.ts +29 -0
- package/dist/Kbd/useKbd.svelte.js +248 -0
- package/dist/Link/Link.svelte +168 -0
- package/dist/Link/Link.svelte.d.ts +5 -0
- package/dist/Link/index.d.ts +2 -0
- package/dist/Link/index.js +1 -0
- package/dist/Link/link.types.d.ts +86 -0
- package/dist/Link/link.types.js +1 -0
- package/dist/Link/link.variants.d.ts +113 -0
- package/dist/Link/link.variants.js +43 -0
- package/dist/Modal/Modal.svelte +218 -0
- package/dist/Modal/Modal.svelte.d.ts +5 -0
- package/dist/Modal/ModalTriggerTestWrapper.svelte +10 -0
- package/dist/Modal/ModalTriggerTestWrapper.svelte.d.ts +18 -0
- package/dist/Modal/index.d.ts +2 -0
- package/dist/Modal/index.js +1 -0
- package/dist/Modal/modal.types.d.ts +155 -0
- package/dist/Modal/modal.types.js +1 -0
- package/dist/Modal/modal.variants.d.ts +303 -0
- package/dist/Modal/modal.variants.js +90 -0
- package/dist/Pagination/Pagination.svelte +253 -0
- package/dist/Pagination/Pagination.svelte.d.ts +6 -0
- package/dist/Pagination/index.d.ts +2 -0
- package/dist/Pagination/index.js +1 -0
- package/dist/Pagination/pagination.types.d.ts +191 -0
- package/dist/Pagination/pagination.types.js +1 -0
- package/dist/Pagination/pagination.variants.d.ts +160 -0
- package/dist/Pagination/pagination.variants.js +125 -0
- package/dist/PinInput/PinInput.svelte +162 -0
- package/dist/PinInput/PinInput.svelte.d.ts +6 -0
- package/dist/PinInput/index.d.ts +2 -0
- package/dist/PinInput/index.js +1 -0
- package/dist/PinInput/pin-input.types.d.ts +110 -0
- package/dist/PinInput/pin-input.types.js +1 -0
- package/dist/PinInput/pin-input.variants.d.ts +303 -0
- package/dist/PinInput/pin-input.variants.js +196 -0
- package/dist/Popover/Popover.svelte +122 -0
- package/dist/Popover/Popover.svelte.d.ts +6 -0
- package/dist/Popover/index.d.ts +2 -0
- package/dist/Popover/index.js +1 -0
- package/dist/Popover/popover.types.d.ts +58 -0
- package/dist/Popover/popover.types.js +1 -0
- package/dist/Popover/popover.variants.d.ts +53 -0
- package/dist/Popover/popover.variants.js +31 -0
- package/dist/Progress/Progress.svelte +135 -0
- package/dist/Progress/Progress.svelte.d.ts +6 -0
- package/dist/Progress/index.d.ts +2 -0
- package/dist/Progress/index.js +1 -0
- package/dist/Progress/progress.types.d.ts +71 -0
- package/dist/Progress/progress.types.js +1 -0
- package/dist/Progress/progress.variants.d.ts +513 -0
- package/dist/Progress/progress.variants.js +204 -0
- package/dist/RadioGroup/RadioGroup.svelte +226 -0
- package/dist/RadioGroup/RadioGroup.svelte.d.ts +6 -0
- package/dist/RadioGroup/index.d.ts +2 -0
- package/dist/RadioGroup/index.js +1 -0
- package/dist/RadioGroup/radio-group.types.d.ts +111 -0
- package/dist/RadioGroup/radio-group.types.js +1 -0
- package/dist/RadioGroup/radio-group.variants.d.ts +543 -0
- package/dist/RadioGroup/radio-group.variants.js +232 -0
- package/dist/Select/Select.svelte +461 -0
- package/dist/Select/Select.svelte.d.ts +6 -0
- package/dist/Select/index.d.ts +2 -0
- package/dist/Select/index.js +1 -0
- package/dist/Select/select.types.d.ts +263 -0
- package/dist/Select/select.types.js +1 -0
- package/dist/Select/select.variants.d.ts +713 -0
- package/dist/Select/select.variants.js +482 -0
- package/dist/SelectMenu/SelectMenu.svelte +637 -0
- package/dist/SelectMenu/SelectMenu.svelte.d.ts +5 -0
- package/dist/SelectMenu/SelectMenuFormFieldTestWrapper.svelte +11 -0
- package/dist/SelectMenu/SelectMenuFormFieldTestWrapper.svelte.d.ts +7 -0
- package/dist/SelectMenu/index.d.ts +2 -0
- package/dist/SelectMenu/index.js +1 -0
- package/dist/SelectMenu/select-menu.types.d.ts +326 -0
- package/dist/SelectMenu/select-menu.types.js +1 -0
- package/dist/SelectMenu/select-menu.variants.d.ts +795 -0
- package/dist/SelectMenu/select-menu.variants.js +70 -0
- package/dist/Separator/Separator.svelte +77 -0
- package/dist/Separator/Separator.svelte.d.ts +6 -0
- package/dist/Separator/index.d.ts +2 -0
- package/dist/Separator/index.js +1 -0
- package/dist/Separator/separator.types.d.ts +53 -0
- package/dist/Separator/separator.types.js +1 -0
- package/dist/Separator/separator.variants.d.ts +509 -0
- package/dist/Separator/separator.variants.js +110 -0
- package/dist/Skeleton/Skeleton.svelte +39 -0
- package/dist/Skeleton/Skeleton.svelte.d.ts +5 -0
- package/dist/Skeleton/index.d.ts +2 -0
- package/dist/Skeleton/index.js +1 -0
- package/dist/Skeleton/skeleton.types.d.ts +27 -0
- package/dist/Skeleton/skeleton.types.js +1 -0
- package/dist/Skeleton/skeleton.variants.d.ts +18 -0
- package/dist/Skeleton/skeleton.variants.js +12 -0
- package/dist/Slideover/Slideover.svelte +212 -0
- package/dist/Slideover/Slideover.svelte.d.ts +5 -0
- package/dist/Slideover/SlideoverTriggerTestWrapper.svelte +10 -0
- package/dist/Slideover/SlideoverTriggerTestWrapper.svelte.d.ts +18 -0
- package/dist/Slideover/index.d.ts +2 -0
- package/dist/Slideover/index.js +1 -0
- package/dist/Slideover/slideover.types.d.ts +154 -0
- package/dist/Slideover/slideover.types.js +1 -0
- package/dist/Slideover/slideover.variants.d.ts +298 -0
- package/dist/Slideover/slideover.variants.js +145 -0
- package/dist/Slider/Slider.svelte +129 -0
- package/dist/Slider/Slider.svelte.d.ts +6 -0
- package/dist/Slider/index.d.ts +2 -0
- package/dist/Slider/index.js +1 -0
- package/dist/Slider/slider.types.d.ts +55 -0
- package/dist/Slider/slider.types.js +1 -0
- package/dist/Slider/slider.variants.d.ts +383 -0
- package/dist/Slider/slider.variants.js +102 -0
- package/dist/Stepper/Stepper.svelte +254 -0
- package/dist/Stepper/Stepper.svelte.d.ts +5 -0
- package/dist/Stepper/index.d.ts +2 -0
- package/dist/Stepper/index.js +1 -0
- package/dist/Stepper/stepper.types.d.ts +223 -0
- package/dist/Stepper/stepper.types.js +1 -0
- package/dist/Stepper/stepper.variants.d.ts +428 -0
- package/dist/Stepper/stepper.variants.js +204 -0
- package/dist/Switch/Switch.svelte +150 -0
- package/dist/Switch/Switch.svelte.d.ts +6 -0
- package/dist/Switch/index.d.ts +2 -0
- package/dist/Switch/index.js +1 -0
- package/dist/Switch/switch.types.d.ts +80 -0
- package/dist/Switch/switch.types.js +1 -0
- package/dist/Switch/switch.variants.d.ts +433 -0
- package/dist/Switch/switch.variants.js +171 -0
- package/dist/Table/Table.svelte +667 -0
- package/dist/Table/Table.svelte.d.ts +26 -0
- package/dist/Table/index.d.ts +2 -0
- package/dist/Table/index.js +1 -0
- package/dist/Table/table.types.d.ts +202 -0
- package/dist/Table/table.types.js +1 -0
- package/dist/Table/table.utils.d.ts +54 -0
- package/dist/Table/table.utils.js +167 -0
- package/dist/Table/table.variants.d.ts +205 -0
- package/dist/Table/table.variants.js +126 -0
- package/dist/Tabs/Tabs.svelte +188 -0
- package/dist/Tabs/Tabs.svelte.d.ts +6 -0
- package/dist/Tabs/index.d.ts +2 -0
- package/dist/Tabs/index.js +1 -0
- package/dist/Tabs/tabs.types.d.ts +207 -0
- package/dist/Tabs/tabs.types.js +1 -0
- package/dist/Tabs/tabs.variants.d.ts +298 -0
- package/dist/Tabs/tabs.variants.js +251 -0
- package/dist/Textarea/Textarea.svelte +215 -0
- package/dist/Textarea/Textarea.svelte.d.ts +5 -0
- package/dist/Textarea/index.d.ts +2 -0
- package/dist/Textarea/index.js +1 -0
- package/dist/Textarea/textarea.types.d.ts +103 -0
- package/dist/Textarea/textarea.types.js +1 -0
- package/dist/Textarea/textarea.variants.d.ts +403 -0
- package/dist/Textarea/textarea.variants.js +404 -0
- package/dist/ThemeModeButton/ThemeModeButton.svelte +74 -0
- package/dist/ThemeModeButton/ThemeModeButton.svelte.d.ts +5 -0
- package/dist/ThemeModeButton/index.d.ts +2 -0
- package/dist/ThemeModeButton/index.js +1 -0
- package/dist/ThemeModeButton/theme-mode-button.types.d.ts +69 -0
- package/dist/ThemeModeButton/theme-mode-button.types.js +1 -0
- package/dist/ThemeModeButton/theme-mode-button.variants.d.ts +21 -0
- package/dist/ThemeModeButton/theme-mode-button.variants.js +17 -0
- package/dist/Timeline/Timeline.svelte +116 -0
- package/dist/Timeline/Timeline.svelte.d.ts +5 -0
- package/dist/Timeline/index.d.ts +2 -0
- package/dist/Timeline/index.js +1 -0
- package/dist/Timeline/timeline.types.d.ts +138 -0
- package/dist/Timeline/timeline.types.js +1 -0
- package/dist/Timeline/timeline.variants.d.ts +413 -0
- package/dist/Timeline/timeline.variants.js +201 -0
- package/dist/Toast/Toaster.svelte +619 -0
- package/dist/Toast/Toaster.svelte.d.ts +5 -0
- package/dist/Toast/index.d.ts +4 -0
- package/dist/Toast/index.js +2 -0
- package/dist/Toast/toast.d.ts +38 -0
- package/dist/Toast/toast.js +73 -0
- package/dist/Toast/toast.types.d.ts +19 -0
- package/dist/Toast/toast.types.js +1 -0
- package/dist/Toast/toast.variants.d.ts +7 -0
- package/dist/Toast/toast.variants.js +5 -0
- package/dist/Tooltip/Tooltip.svelte +151 -0
- package/dist/Tooltip/Tooltip.svelte.d.ts +6 -0
- package/dist/Tooltip/TooltipTestWrapper.svelte +8 -0
- package/dist/Tooltip/TooltipTestWrapper.svelte.d.ts +4 -0
- package/dist/Tooltip/index.d.ts +2 -0
- package/dist/Tooltip/index.js +1 -0
- package/dist/Tooltip/tooltip.types.d.ts +62 -0
- package/dist/Tooltip/tooltip.types.js +1 -0
- package/dist/Tooltip/tooltip.variants.d.ts +68 -0
- package/dist/Tooltip/tooltip.variants.js +35 -0
- package/dist/User/User.svelte +98 -0
- package/dist/User/User.svelte.d.ts +5 -0
- package/dist/User/index.d.ts +2 -0
- package/dist/User/index.js +1 -0
- package/dist/User/user.types.d.ts +78 -0
- package/dist/User/user.types.js +1 -0
- package/dist/User/user.variants.d.ts +368 -0
- package/dist/User/user.variants.js +85 -0
- package/dist/config.d.ts +73 -0
- package/dist/config.js +108 -0
- package/dist/hooks/HookContextProbe.svelte +7 -0
- package/dist/hooks/HookContextProbe.svelte.d.ts +18 -0
- package/dist/hooks/HookContextProvider.svelte +9 -0
- package/dist/hooks/HookContextProvider.svelte.d.ts +18 -0
- package/dist/hooks/HookEmitProbe.svelte +14 -0
- package/dist/hooks/HookEmitProbe.svelte.d.ts +18 -0
- package/dist/hooks/index.d.ts +14 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/useClickOutside.svelte.d.ts +31 -0
- package/dist/hooks/useClickOutside.svelte.js +37 -0
- package/dist/hooks/useClipboard.svelte.d.ts +30 -0
- package/dist/hooks/useClipboard.svelte.js +45 -0
- package/dist/hooks/useDebounce.svelte.d.ts +36 -0
- package/dist/hooks/useDebounce.svelte.js +56 -0
- package/dist/hooks/useEscapeKeydown.svelte.d.ts +31 -0
- package/dist/hooks/useEscapeKeydown.svelte.js +37 -0
- package/dist/hooks/useFormField.svelte.d.ts +54 -0
- package/dist/hooks/useFormField.svelte.js +65 -0
- package/dist/hooks/useInfiniteScroll.svelte.d.ts +57 -0
- package/dist/hooks/useInfiniteScroll.svelte.js +69 -0
- package/dist/hooks/useMediaQuery.svelte.d.ts +31 -0
- package/dist/hooks/useMediaQuery.svelte.js +38 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.js +57 -0
- package/dist/theme.css +680 -0
- package/package.json +237 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { CarouselAutoplayOptions, CarouselProps } from './carousel.types.js'
|
|
3
|
+
|
|
4
|
+
export type Props<T = unknown> = CarouselProps<T>
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<script lang="ts" generics="T = unknown">
|
|
8
|
+
import type { EmblaCarouselType, EmblaOptionsType, EmblaPluginType } from 'embla-carousel'
|
|
9
|
+
import Autoplay from 'embla-carousel-autoplay'
|
|
10
|
+
import ClassNames from 'embla-carousel-class-names'
|
|
11
|
+
import Fade from 'embla-carousel-fade'
|
|
12
|
+
import useEmblaCarousel from 'embla-carousel-svelte'
|
|
13
|
+
import { untrack } from 'svelte'
|
|
14
|
+
import Button from '../Button/Button.svelte'
|
|
15
|
+
import { getComponentConfig } from '../config.js'
|
|
16
|
+
import { carouselDefaults, carouselVariants } from './carousel.variants.js'
|
|
17
|
+
|
|
18
|
+
const config = getComponentConfig('carousel', carouselDefaults)
|
|
19
|
+
|
|
20
|
+
let {
|
|
21
|
+
ref = $bindable(null),
|
|
22
|
+
api = $bindable<EmblaCarouselType | undefined>(),
|
|
23
|
+
items,
|
|
24
|
+
index = $bindable(0),
|
|
25
|
+
onIndexChange,
|
|
26
|
+
onSettle,
|
|
27
|
+
slidesToShow = 1,
|
|
28
|
+
loop = false,
|
|
29
|
+
align = 'start',
|
|
30
|
+
orientation = 'horizontal',
|
|
31
|
+
draggable = true,
|
|
32
|
+
dragFree = false,
|
|
33
|
+
slidesToScroll = 1,
|
|
34
|
+
autoplay = false,
|
|
35
|
+
fade = false,
|
|
36
|
+
classNames = false,
|
|
37
|
+
breakpoints,
|
|
38
|
+
plugins: extraPlugins,
|
|
39
|
+
options: optionsOverride,
|
|
40
|
+
arrows = true,
|
|
41
|
+
dots = true,
|
|
42
|
+
prevIcon,
|
|
43
|
+
nextIcon,
|
|
44
|
+
color = config.defaultVariants.color,
|
|
45
|
+
size = config.defaultVariants.size,
|
|
46
|
+
variant = config.defaultVariants.variant,
|
|
47
|
+
class: className,
|
|
48
|
+
ui,
|
|
49
|
+
slide: slideSnippet,
|
|
50
|
+
dot: dotSnippet,
|
|
51
|
+
prevSlot,
|
|
52
|
+
nextSlot,
|
|
53
|
+
children
|
|
54
|
+
}: Props<T> = $props()
|
|
55
|
+
|
|
56
|
+
let selectedIndex = $state(0)
|
|
57
|
+
let scrollSnaps = $state<number[]>([])
|
|
58
|
+
let canScrollPrev = $state(false)
|
|
59
|
+
let canScrollNext = $state(false)
|
|
60
|
+
|
|
61
|
+
const resolvedPrevIcon = $derived(
|
|
62
|
+
prevIcon ?? (orientation === 'vertical' ? 'lucide:chevron-up' : 'lucide:chevron-left')
|
|
63
|
+
)
|
|
64
|
+
const resolvedNextIcon = $derived(
|
|
65
|
+
nextIcon ?? (orientation === 'vertical' ? 'lucide:chevron-down' : 'lucide:chevron-right')
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
function buildAutoplay(opts: CarouselAutoplayOptions) {
|
|
69
|
+
return Autoplay({
|
|
70
|
+
delay: opts.delay ?? 4000,
|
|
71
|
+
defaultInteraction: opts.defaultInteraction ?? true,
|
|
72
|
+
stopOnLastSnap: opts.stopOnLastSnap ?? false,
|
|
73
|
+
rootNode: opts.rootNode ?? null
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const plugins = $derived.by<EmblaPluginType[]>(() => {
|
|
78
|
+
const list: EmblaPluginType[] = []
|
|
79
|
+
if (autoplay) list.push(buildAutoplay(typeof autoplay === 'object' ? autoplay : {}))
|
|
80
|
+
if (fade) list.push(Fade())
|
|
81
|
+
if (classNames) list.push(ClassNames())
|
|
82
|
+
if (extraPlugins) list.push(...extraPlugins)
|
|
83
|
+
return list
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
const emblaOptions = $derived.by<EmblaOptionsType>(() => ({
|
|
87
|
+
loop,
|
|
88
|
+
align,
|
|
89
|
+
axis: orientation === 'vertical' ? 'y' : 'x',
|
|
90
|
+
draggable,
|
|
91
|
+
dragFree,
|
|
92
|
+
slidesToScroll,
|
|
93
|
+
breakpoints,
|
|
94
|
+
...optionsOverride
|
|
95
|
+
}))
|
|
96
|
+
|
|
97
|
+
const dotIndices = $derived(scrollSnaps.map((_, i) => i))
|
|
98
|
+
|
|
99
|
+
function classListHas(cls: unknown, re: RegExp): boolean {
|
|
100
|
+
if (typeof cls === 'string') return re.test(cls)
|
|
101
|
+
if (Array.isArray(cls)) return cls.some((c) => classListHas(c, re))
|
|
102
|
+
return false
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const userOverridesBasis = $derived(classListHas(ui?.slide, /\bbasis-/))
|
|
106
|
+
const containerStyle = $derived(
|
|
107
|
+
orientation === 'vertical'
|
|
108
|
+
? 'display: flex; flex-direction: column; touch-action: pan-x;'
|
|
109
|
+
: 'display: flex; flex-direction: row; touch-action: pan-y;'
|
|
110
|
+
)
|
|
111
|
+
const slideStyle = $derived.by(() => {
|
|
112
|
+
if (userOverridesBasis) return undefined
|
|
113
|
+
const minDim = orientation === 'vertical' ? 'min-height' : 'min-width'
|
|
114
|
+
return `flex: 0 0 calc(100% / ${slidesToShow}); ${minDim}: 0;`
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
const variantSlots = $derived(carouselVariants({ orientation, size, color, variant }))
|
|
118
|
+
const classes = $derived({
|
|
119
|
+
root: variantSlots.root({ class: [config.slots.root, className, ui?.root] }),
|
|
120
|
+
viewport: variantSlots.viewport({ class: [config.slots.viewport, ui?.viewport] }),
|
|
121
|
+
container: variantSlots.container({ class: [config.slots.container, ui?.container] }),
|
|
122
|
+
slide: variantSlots.slide({ class: [config.slots.slide, ui?.slide] }),
|
|
123
|
+
arrow: variantSlots.arrow({ class: [config.slots.arrow, ui?.arrow] }),
|
|
124
|
+
arrowPrev: variantSlots.arrowPrev({ class: [config.slots.arrowPrev, ui?.arrowPrev] }),
|
|
125
|
+
arrowNext: variantSlots.arrowNext({ class: [config.slots.arrowNext, ui?.arrowNext] }),
|
|
126
|
+
dots: variantSlots.dots({ class: [config.slots.dots, ui?.dots] }),
|
|
127
|
+
dot: variantSlots.dot({ class: [config.slots.dot, ui?.dot] })
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
function syncFromApi(embla: EmblaCarouselType) {
|
|
131
|
+
const newIndex = embla.selectedSnap()
|
|
132
|
+
selectedIndex = newIndex
|
|
133
|
+
scrollSnaps = embla.snapList()
|
|
134
|
+
canScrollPrev = embla.canGoToPrev()
|
|
135
|
+
canScrollNext = embla.canGoToNext()
|
|
136
|
+
if (newIndex !== index) {
|
|
137
|
+
index = newIndex
|
|
138
|
+
onIndexChange?.(newIndex)
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function handleEmblaInit(event: CustomEvent<EmblaCarouselType>) {
|
|
143
|
+
const embla = event.detail
|
|
144
|
+
api = embla
|
|
145
|
+
syncFromApi(embla)
|
|
146
|
+
embla.on('select', () => syncFromApi(embla))
|
|
147
|
+
embla.on('reinit', () => syncFromApi(embla))
|
|
148
|
+
if (onSettle) embla.on('settle', () => onSettle(embla))
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
$effect(() => {
|
|
152
|
+
if (!api) return
|
|
153
|
+
const desired = index
|
|
154
|
+
if (desired !== untrack(() => selectedIndex)) {
|
|
155
|
+
api.goTo(desired)
|
|
156
|
+
}
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
function scrollPrev() {
|
|
160
|
+
if (!api) return
|
|
161
|
+
api.goToPrev()
|
|
162
|
+
syncFromApi(api)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function scrollNext() {
|
|
166
|
+
if (!api) return
|
|
167
|
+
api.goToNext()
|
|
168
|
+
syncFromApi(api)
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function scrollTo(i: number) {
|
|
172
|
+
if (!api) return
|
|
173
|
+
api.goTo(i)
|
|
174
|
+
syncFromApi(api)
|
|
175
|
+
}
|
|
176
|
+
</script>
|
|
177
|
+
|
|
178
|
+
{#snippet defaultPrev()}
|
|
179
|
+
<Button
|
|
180
|
+
{color}
|
|
181
|
+
{size}
|
|
182
|
+
{variant}
|
|
183
|
+
icon={resolvedPrevIcon}
|
|
184
|
+
square
|
|
185
|
+
disabled={!canScrollPrev}
|
|
186
|
+
aria-label="Previous slide"
|
|
187
|
+
class={[classes.arrow, classes.arrowPrev]}
|
|
188
|
+
onclick={scrollPrev}
|
|
189
|
+
/>
|
|
190
|
+
{/snippet}
|
|
191
|
+
|
|
192
|
+
{#snippet defaultNext()}
|
|
193
|
+
<Button
|
|
194
|
+
{color}
|
|
195
|
+
{size}
|
|
196
|
+
{variant}
|
|
197
|
+
icon={resolvedNextIcon}
|
|
198
|
+
square
|
|
199
|
+
disabled={!canScrollNext}
|
|
200
|
+
aria-label="Next slide"
|
|
201
|
+
class={[classes.arrow, classes.arrowNext]}
|
|
202
|
+
onclick={scrollNext}
|
|
203
|
+
/>
|
|
204
|
+
{/snippet}
|
|
205
|
+
|
|
206
|
+
{#snippet defaultDot(i: number, selected: boolean)}
|
|
207
|
+
<button
|
|
208
|
+
type="button"
|
|
209
|
+
class={classes.dot}
|
|
210
|
+
data-selected={selected ? '' : undefined}
|
|
211
|
+
aria-label={`Go to slide ${i + 1}`}
|
|
212
|
+
aria-current={selected ? 'true' : undefined}
|
|
213
|
+
onclick={() => scrollTo(i)}
|
|
214
|
+
></button>
|
|
215
|
+
{/snippet}
|
|
216
|
+
|
|
217
|
+
<div
|
|
218
|
+
bind:this={ref}
|
|
219
|
+
class={classes.root}
|
|
220
|
+
data-orientation={orientation}
|
|
221
|
+
style:--sv-slides={slidesToShow}
|
|
222
|
+
>
|
|
223
|
+
<div
|
|
224
|
+
class={classes.viewport}
|
|
225
|
+
use:useEmblaCarousel={{ options: emblaOptions, plugins }}
|
|
226
|
+
onemblainit={handleEmblaInit}
|
|
227
|
+
>
|
|
228
|
+
<div class={classes.container} style={containerStyle}>
|
|
229
|
+
{#if items}
|
|
230
|
+
{#each items as item, i (i)}
|
|
231
|
+
<div class={classes.slide} style={slideStyle} data-index={i}>
|
|
232
|
+
{#if slideSnippet}
|
|
233
|
+
{@render slideSnippet({
|
|
234
|
+
item,
|
|
235
|
+
index: i,
|
|
236
|
+
selected: i === selectedIndex
|
|
237
|
+
})}
|
|
238
|
+
{:else}
|
|
239
|
+
{String(item)}
|
|
240
|
+
{/if}
|
|
241
|
+
</div>
|
|
242
|
+
{/each}
|
|
243
|
+
{:else if children}
|
|
244
|
+
{@render children()}
|
|
245
|
+
{/if}
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
|
|
249
|
+
{#if arrows}
|
|
250
|
+
{#if prevSlot}
|
|
251
|
+
{@render prevSlot({ canScroll: canScrollPrev, scroll: scrollPrev })}
|
|
252
|
+
{:else}
|
|
253
|
+
{@render defaultPrev()}
|
|
254
|
+
{/if}
|
|
255
|
+
{#if nextSlot}
|
|
256
|
+
{@render nextSlot({ canScroll: canScrollNext, scroll: scrollNext })}
|
|
257
|
+
{:else}
|
|
258
|
+
{@render defaultNext()}
|
|
259
|
+
{/if}
|
|
260
|
+
{/if}
|
|
261
|
+
|
|
262
|
+
{#if dots && scrollSnaps.length > 1}
|
|
263
|
+
<div class={classes.dots} role="tablist">
|
|
264
|
+
{#each dotIndices as i (i)}
|
|
265
|
+
{#if dotSnippet}
|
|
266
|
+
{@render dotSnippet({
|
|
267
|
+
index: i,
|
|
268
|
+
selected: i === selectedIndex,
|
|
269
|
+
select: () => scrollTo(i)
|
|
270
|
+
})}
|
|
271
|
+
{:else}
|
|
272
|
+
{@render defaultDot(i, i === selectedIndex)}
|
|
273
|
+
{/if}
|
|
274
|
+
{/each}
|
|
275
|
+
</div>
|
|
276
|
+
{/if}
|
|
277
|
+
</div>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CarouselProps } from './carousel.types.js';
|
|
2
|
+
export type Props<T = unknown> = CarouselProps<T>;
|
|
3
|
+
declare function $$render<T = unknown>(): {
|
|
4
|
+
props: Props<T>;
|
|
5
|
+
exports: {};
|
|
6
|
+
bindings: "ref" | "api" | "index";
|
|
7
|
+
slots: {};
|
|
8
|
+
events: {};
|
|
9
|
+
};
|
|
10
|
+
declare class __sveltets_Render<T = unknown> {
|
|
11
|
+
props(): ReturnType<typeof $$render<T>>['props'];
|
|
12
|
+
events(): ReturnType<typeof $$render<T>>['events'];
|
|
13
|
+
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
14
|
+
bindings(): "ref" | "api" | "index";
|
|
15
|
+
exports(): {};
|
|
16
|
+
}
|
|
17
|
+
interface $$IsomorphicComponent {
|
|
18
|
+
new <T = unknown>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
|
|
19
|
+
$$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
|
|
20
|
+
} & ReturnType<__sveltets_Render<T>['exports']>;
|
|
21
|
+
<T = unknown>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
|
|
22
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
23
|
+
}
|
|
24
|
+
declare const Carousel: $$IsomorphicComponent;
|
|
25
|
+
type Carousel<T = unknown> = InstanceType<typeof Carousel<T>>;
|
|
26
|
+
export default Carousel;
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import type { EmblaCarouselType, EmblaOptionsType, EmblaPluginType } from 'embla-carousel';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { ClassNameValue } from 'tailwind-merge';
|
|
4
|
+
import type { CarouselSlots, CarouselVariantProps } from './carousel.variants.js';
|
|
5
|
+
/**
|
|
6
|
+
* Re-export the Embla API type so consumers can type their `bind:api` value
|
|
7
|
+
* without importing `embla-carousel` directly.
|
|
8
|
+
*/
|
|
9
|
+
export type CarouselApi = EmblaCarouselType;
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for the autoplay plugin. When `true` the defaults are used;
|
|
12
|
+
* pass an object to override individual settings.
|
|
13
|
+
*
|
|
14
|
+
* v9 simplified the autoplay API: `stopOnInteraction`, `stopOnMouseEnter`
|
|
15
|
+
* and `stopOnFocusIn` collapsed into a single `defaultInteraction` flag —
|
|
16
|
+
* `false` keeps autoplay running through pointer/keyboard input, `true`
|
|
17
|
+
* pauses on the first interaction (matching the old `stopOnFocusIn` +
|
|
18
|
+
* `stopOnMouseEnter` combined behavior).
|
|
19
|
+
*/
|
|
20
|
+
export interface CarouselAutoplayOptions {
|
|
21
|
+
/** Delay between slides in milliseconds, or a function returning one. @default 4000 */
|
|
22
|
+
delay?: number | ((scrollSnaps: number[], emblaApi: EmblaCarouselType) => number[]);
|
|
23
|
+
/**
|
|
24
|
+
* Whether autoplay should pause on the first interaction (pointer/keyboard).
|
|
25
|
+
* Set to `false` to keep autoplay running while the user interacts.
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
defaultInteraction?: boolean;
|
|
29
|
+
/** Stop the autoplay timer permanently after the last snap. @default false */
|
|
30
|
+
stopOnLastSnap?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Custom root node used to detect visibility changes (used by autoplay to
|
|
33
|
+
* pause when the carousel scrolls off-screen). @default null
|
|
34
|
+
*/
|
|
35
|
+
rootNode?: null | ((emblaRoot: HTMLElement) => HTMLElement | null);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Props passed to the `slide` snippet.
|
|
39
|
+
*/
|
|
40
|
+
export interface CarouselSlideSlotProps<T = unknown> {
|
|
41
|
+
/** The current slide item from the `items` array. */
|
|
42
|
+
item: T;
|
|
43
|
+
/** Zero-based slide index. */
|
|
44
|
+
index: number;
|
|
45
|
+
/** Whether this slide is the currently selected one. */
|
|
46
|
+
selected: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Props passed to the `dot` snippet for custom indicator rendering.
|
|
50
|
+
*/
|
|
51
|
+
export interface CarouselDotSlotProps {
|
|
52
|
+
/** Zero-based dot index. */
|
|
53
|
+
index: number;
|
|
54
|
+
/** Whether this dot represents the currently selected slide. */
|
|
55
|
+
selected: boolean;
|
|
56
|
+
/** Imperative helper to jump to this slide. */
|
|
57
|
+
select: () => void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Props passed to the `prev` / `next` snippets for custom arrow rendering.
|
|
61
|
+
*/
|
|
62
|
+
export interface CarouselArrowSlotProps {
|
|
63
|
+
/** Whether the corresponding direction can scroll (false at boundaries when `loop=false`). */
|
|
64
|
+
canScroll: boolean;
|
|
65
|
+
/** Imperative helper to trigger the scroll. */
|
|
66
|
+
scroll: () => void;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Props for the Carousel component.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```svelte
|
|
73
|
+
* <Carousel items={images} loop autoplay>
|
|
74
|
+
* {#snippet slide({ item })}
|
|
75
|
+
* <img src={item.url} alt={item.alt} />
|
|
76
|
+
* {/snippet}
|
|
77
|
+
* </Carousel>
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @see https://www.embla-carousel.com/
|
|
81
|
+
*/
|
|
82
|
+
export interface CarouselProps<T = unknown> {
|
|
83
|
+
/**
|
|
84
|
+
* Bindable reference to the root DOM element.
|
|
85
|
+
*/
|
|
86
|
+
ref?: HTMLElement | null;
|
|
87
|
+
/**
|
|
88
|
+
* Bindable Embla API. Use it to control the carousel imperatively, e.g.
|
|
89
|
+
* `api.goTo(3)` or `api.plugins().autoplay.stop()`.
|
|
90
|
+
*/
|
|
91
|
+
api?: EmblaCarouselType;
|
|
92
|
+
/**
|
|
93
|
+
* Array of items to render as slides. If omitted, pass slide elements as
|
|
94
|
+
* `children` instead.
|
|
95
|
+
*/
|
|
96
|
+
items?: T[];
|
|
97
|
+
/**
|
|
98
|
+
* Currently selected slide index (zero-based). Supports two-way binding.
|
|
99
|
+
* @default 0
|
|
100
|
+
*/
|
|
101
|
+
index?: number;
|
|
102
|
+
/**
|
|
103
|
+
* Callback fired when the selected slide changes.
|
|
104
|
+
*/
|
|
105
|
+
onIndexChange?: (index: number) => void;
|
|
106
|
+
/**
|
|
107
|
+
* Callback fired when the carousel settles after a scroll.
|
|
108
|
+
*/
|
|
109
|
+
onSettle?: (api: EmblaCarouselType) => void;
|
|
110
|
+
/**
|
|
111
|
+
* Number of slides visible at once. Acts as a default that can be
|
|
112
|
+
* overridden via `ui.slide` or responsive `breakpoints`.
|
|
113
|
+
* @default 1
|
|
114
|
+
*/
|
|
115
|
+
slidesToShow?: number;
|
|
116
|
+
/**
|
|
117
|
+
* Wrap around to the first slide after the last (and vice versa).
|
|
118
|
+
* @default false
|
|
119
|
+
*/
|
|
120
|
+
loop?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Alignment of slides within the viewport.
|
|
123
|
+
* @default 'start'
|
|
124
|
+
*/
|
|
125
|
+
align?: 'start' | 'center' | 'end';
|
|
126
|
+
/**
|
|
127
|
+
* Layout axis.
|
|
128
|
+
* @default 'horizontal'
|
|
129
|
+
*/
|
|
130
|
+
orientation?: 'horizontal' | 'vertical';
|
|
131
|
+
/**
|
|
132
|
+
* Allow pointer/touch dragging to scroll between slides.
|
|
133
|
+
* @default true
|
|
134
|
+
*/
|
|
135
|
+
draggable?: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Allow free-form dragging without snapping to slides.
|
|
138
|
+
* @default false
|
|
139
|
+
*/
|
|
140
|
+
dragFree?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Number of slides to advance per scroll action ('auto' lets Embla decide
|
|
143
|
+
* based on viewport size).
|
|
144
|
+
* @default 1
|
|
145
|
+
*/
|
|
146
|
+
slidesToScroll?: number | 'auto';
|
|
147
|
+
/**
|
|
148
|
+
* Enable autoplay. Pass `true` for defaults or an object to customize.
|
|
149
|
+
* @default false
|
|
150
|
+
*/
|
|
151
|
+
autoplay?: boolean | CarouselAutoplayOptions;
|
|
152
|
+
/**
|
|
153
|
+
* Use a fade transition between slides instead of sliding.
|
|
154
|
+
* @default false
|
|
155
|
+
*/
|
|
156
|
+
fade?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Apply Embla's helper class names (`is-snapped`, `is-in-view`,
|
|
159
|
+
* `is-prev`, `is-next`, `is-selected`, `is-draggable`, `is-dragging`).
|
|
160
|
+
* Useful for advanced styling.
|
|
161
|
+
* @default false
|
|
162
|
+
*/
|
|
163
|
+
classNames?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Responsive overrides keyed by media query. Each value is a partial Embla
|
|
166
|
+
* options object that applies when the media query matches.
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```ts
|
|
170
|
+
* { '(min-width: 768px)': { slidesToScroll: 2 } }
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
breakpoints?: Record<string, Omit<EmblaOptionsType, 'breakpoints'>>;
|
|
174
|
+
/**
|
|
175
|
+
* Additional Embla plugins. Use this to plug in `auto-scroll`, `wheel-gestures`,
|
|
176
|
+
* or any third-party Embla plugin not covered by built-in props.
|
|
177
|
+
*/
|
|
178
|
+
plugins?: EmblaPluginType[];
|
|
179
|
+
/**
|
|
180
|
+
* Escape hatch for setting any Embla option directly. Merged on top of
|
|
181
|
+
* options derived from typed props above.
|
|
182
|
+
*/
|
|
183
|
+
options?: Partial<EmblaOptionsType>;
|
|
184
|
+
/**
|
|
185
|
+
* Show prev/next arrow buttons.
|
|
186
|
+
* @default true
|
|
187
|
+
*/
|
|
188
|
+
arrows?: boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Show pagination dots below the carousel.
|
|
191
|
+
* @default true
|
|
192
|
+
*/
|
|
193
|
+
dots?: boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Icon for the "previous slide" arrow.
|
|
196
|
+
* @default 'lucide:chevron-left' (or 'lucide:chevron-up' when vertical)
|
|
197
|
+
*/
|
|
198
|
+
prevIcon?: string;
|
|
199
|
+
/**
|
|
200
|
+
* Icon for the "next slide" arrow.
|
|
201
|
+
* @default 'lucide:chevron-right' (or 'lucide:chevron-down' when vertical)
|
|
202
|
+
*/
|
|
203
|
+
nextIcon?: string;
|
|
204
|
+
/**
|
|
205
|
+
* Color scheme used for the active dot and the arrow buttons.
|
|
206
|
+
* @default 'primary'
|
|
207
|
+
*/
|
|
208
|
+
color?: NonNullable<CarouselVariantProps['color']>;
|
|
209
|
+
/**
|
|
210
|
+
* Controls arrow and dot sizes.
|
|
211
|
+
* @default 'md'
|
|
212
|
+
*/
|
|
213
|
+
size?: NonNullable<CarouselVariantProps['size']>;
|
|
214
|
+
/**
|
|
215
|
+
* Visual style of arrow buttons.
|
|
216
|
+
* @default 'soft'
|
|
217
|
+
*/
|
|
218
|
+
variant?: NonNullable<CarouselVariantProps['variant']>;
|
|
219
|
+
/**
|
|
220
|
+
* Additional CSS classes for the root element.
|
|
221
|
+
*/
|
|
222
|
+
class?: ClassNameValue;
|
|
223
|
+
/**
|
|
224
|
+
* Override classes for specific carousel slots.
|
|
225
|
+
*/
|
|
226
|
+
ui?: Partial<Record<CarouselSlots, ClassNameValue>>;
|
|
227
|
+
/**
|
|
228
|
+
* Per-slide renderer. Called for each item in `items`. Receives the item,
|
|
229
|
+
* its index, and whether it is the currently selected slide.
|
|
230
|
+
*/
|
|
231
|
+
slide?: Snippet<[CarouselSlideSlotProps<T>]>;
|
|
232
|
+
/**
|
|
233
|
+
* Custom dot renderer. When omitted a default dot button is rendered.
|
|
234
|
+
*/
|
|
235
|
+
dot?: Snippet<[CarouselDotSlotProps]>;
|
|
236
|
+
/**
|
|
237
|
+
* Custom prev arrow renderer. When omitted a default `Button` with
|
|
238
|
+
* `prevIcon` is rendered.
|
|
239
|
+
*/
|
|
240
|
+
prevSlot?: Snippet<[CarouselArrowSlotProps]>;
|
|
241
|
+
/**
|
|
242
|
+
* Custom next arrow renderer. When omitted a default `Button` with
|
|
243
|
+
* `nextIcon` is rendered.
|
|
244
|
+
*/
|
|
245
|
+
nextSlot?: Snippet<[CarouselArrowSlotProps]>;
|
|
246
|
+
/**
|
|
247
|
+
* Fallback content for the slide container. Used when `items` is not
|
|
248
|
+
* provided — pass `.embla__slide` elements directly.
|
|
249
|
+
*/
|
|
250
|
+
children?: Snippet;
|
|
251
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|