@leaflink/stash 51.9.2 → 51.10.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/assets/icons/cloud-share.svg +1 -0
- package/assets/spritesheet.svg +1 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/Accordion.vue.d.ts +7 -38
- package/dist/ActionsDropdown.js +2 -2
- package/dist/ActionsDropdown.js.map +1 -1
- package/dist/ActionsDropdown.vue.d.ts +0 -74
- package/dist/AddressSelect.js +56 -60
- package/dist/AddressSelect.js.map +1 -1
- package/dist/AddressSelect.vue.d.ts +8 -65
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.vue.d.ts +4 -41
- package/dist/AppNavigationItem.js.map +1 -1
- package/dist/AppNavigationItem.vue.d.ts +5 -32
- package/dist/AppSidebar.js.map +1 -1
- package/dist/AppSidebar.vue.d.ts +8 -35
- package/dist/AppTopbar.js +1 -1
- package/dist/AppTopbar.js.map +1 -1
- package/dist/AppTopbar.vue.d.ts +4 -33
- package/dist/Avatar.js.map +1 -1
- package/dist/Avatar.vue.d.ts +5 -44
- package/dist/Backdrop.js.map +1 -1
- package/dist/Backdrop.vue.d.ts +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Badge.vue.d.ts +6 -55
- package/dist/Box.vue.d.ts +3 -36
- package/dist/Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/Button.vue.d.ts +5 -50
- package/dist/ButtonGroup.js +33 -37
- package/dist/ButtonGroup.js.map +1 -1
- package/dist/ButtonGroup.vue.d.ts +6 -39
- package/dist/Card.js.map +1 -1
- package/dist/Card.vue.d.ts +5 -32
- package/dist/CardContent.js.map +1 -1
- package/dist/CardContent.vue.d.ts +1 -1
- package/dist/CardFooter.js.map +1 -1
- package/dist/CardFooter.vue.d.ts +1 -1
- package/dist/CardHeader.js.map +1 -1
- package/dist/CardHeader.vue.d.ts +2 -15
- package/dist/CardMedia.js.map +1 -1
- package/dist/CardMedia.vue.d.ts +2 -15
- package/dist/Carousel.js +66 -72
- package/dist/Carousel.js.map +1 -1
- package/dist/Carousel.vue.d.ts +10 -10
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.vue.d.ts +8 -53
- package/dist/ChevronToggle.vue.d.ts +7 -34
- package/dist/ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js.map +1 -1
- package/dist/Chip.js.map +1 -1
- package/dist/Chip.vue.d.ts +10 -52
- package/dist/ConfirmationCodeInput.js +40 -44
- package/dist/ConfirmationCodeInput.js.map +1 -1
- package/dist/ConfirmationCodeInput.vue.d.ts +8 -43
- package/dist/ContextSwitcher.js.map +1 -1
- package/dist/ContextSwitcher.vue.d.ts +6 -41
- package/dist/Copy.js.map +1 -1
- package/dist/Copy.vue.d.ts +3 -34
- package/dist/CurrencyInput.js +20 -21
- package/dist/CurrencyInput.js.map +1 -1
- package/dist/CurrencyInput.vue.d.ts +125 -46
- package/dist/CustomRender.js.map +1 -1
- package/dist/DataView.js +94 -96
- package/dist/DataView.js.map +1 -1
- package/dist/DataView.keys-aSOnA4AD.js.map +1 -1
- package/dist/DataView.vue.d.ts +15 -57
- package/dist/DataViewFilters.js +127 -139
- package/dist/DataViewFilters.js.map +1 -1
- package/dist/DataViewFilters.keys-BLu07FiP.js.map +1 -1
- package/dist/DataViewFilters.vue.d.ts +9 -54
- package/dist/DataViewSortButton.js +2 -2
- package/dist/DataViewSortButton.js.map +1 -1
- package/dist/DataViewSortButton.vue.d.ts +3 -30
- package/dist/DataViewToolbar.js +70 -62
- package/dist/DataViewToolbar.js.map +1 -1
- package/dist/DataViewToolbar.vue.d.ts +5 -40
- package/dist/DatePicker.js +4524 -4636
- package/dist/DatePicker.js.map +1 -1
- package/dist/DatePicker.vue.d.ts +32 -81
- package/dist/DescriptionList.js.map +1 -1
- package/dist/DescriptionList.vue.d.ts +3 -32
- package/dist/DescriptionListDetail.js.map +1 -1
- package/dist/DescriptionListDetail.vue.d.ts +1 -1
- package/dist/DescriptionListGroup.js.map +1 -1
- package/dist/DescriptionListGroup.vue.d.ts +1 -1
- package/dist/DescriptionListTerm.js.map +1 -1
- package/dist/DescriptionListTerm.vue.d.ts +1 -1
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.vue.d.ts +10 -53
- package/dist/Divider.js.map +1 -1
- package/dist/Dropdown.js +89 -95
- package/dist/Dropdown.js.map +1 -1
- package/dist/Dropdown.vue.d.ts +12 -48
- package/dist/EmptyState.js +1 -1
- package/dist/EmptyState.js.map +1 -1
- package/dist/EmptyState.vue.d.ts +5 -62
- package/dist/Expand.vue.d.ts +10 -40
- package/dist/Expand.vue_vue_type_script_setup_true_lang-CiONJfAp.js.map +1 -1
- package/dist/Field.vue.d.ts +4 -53
- package/dist/Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js.map +1 -1
- package/dist/FileUpload.js +72 -74
- package/dist/FileUpload.js.map +1 -1
- package/dist/FileUpload.vue.d.ts +10 -44
- package/dist/FilterChip.js.map +1 -1
- package/dist/FilterChip.vue.d.ts +6 -41
- package/dist/FilterDrawerItem.js +21 -21
- package/dist/FilterDrawerItem.js.map +1 -1
- package/dist/FilterDrawerItem.vue.d.ts +6 -23
- package/dist/FilterDropdown.js +63 -69
- package/dist/FilterDropdown.js.map +1 -1
- package/dist/FilterDropdown.vue.d.ts +122 -35
- package/dist/FilterSelect.js.map +1 -1
- package/dist/FilterSelect.vue.d.ts +4 -31
- package/dist/Filters.js +157 -164
- package/dist/Filters.js.map +1 -1
- package/dist/Filters.vue.d.ts +0 -2190
- package/dist/HttpError.js +7 -7
- package/dist/HttpError.js.map +1 -1
- package/dist/HttpError.vue.d.ts +4 -41
- package/dist/Icon.js +16 -15
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.vue.d.ts +4 -37
- package/dist/IconLabel.js.map +1 -1
- package/dist/IconLabel.vue.d.ts +6 -41
- package/dist/Illustration.js +2 -2
- package/dist/Illustration.vue.d.ts +3 -42
- package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js → Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js} +11 -11
- package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js.map → Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js.map} +1 -1
- package/dist/Image.js +2 -2
- package/dist/Image.vue.d.ts +5 -40
- package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js → Image.vue_vue_type_script_setup_true_lang-Dg2Zk2r2.js} +37 -41
- package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map → Image.vue_vue_type_script_setup_true_lang-Dg2Zk2r2.js.map} +1 -1
- package/dist/InlineEdit.js.map +1 -1
- package/dist/InlineEdit.vue.d.ts +126 -47
- package/dist/Input.js.map +1 -1
- package/dist/Input.vue.d.ts +12 -45
- package/dist/InputOptions.js +66 -69
- package/dist/InputOptions.js.map +1 -1
- package/dist/InputOptions.vue.d.ts +10 -55
- package/dist/IntegrationIcon.js +7 -7
- package/dist/IntegrationIcon.js.map +1 -1
- package/dist/IntegrationIcon.vue.d.ts +3 -36
- package/dist/Label.vue.d.ts +3 -42
- package/dist/Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js.map +1 -1
- package/dist/LicenseChip.js.map +1 -1
- package/dist/LicenseChip.vue.d.ts +3 -30
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItem.vue.d.ts +0 -294
- package/dist/ListItemCell.js.map +1 -1
- package/dist/ListItemCell.vue.d.ts +0 -21
- package/dist/ListView.js +122 -132
- package/dist/ListView.js.map +1 -1
- package/dist/ListView.types.d.ts +0 -29
- package/dist/ListView.vue.d.ts +0 -5496
- package/dist/Loading.js +2 -2
- package/dist/Loading.js.map +1 -1
- package/dist/Loading.vue.d.ts +1 -1
- package/dist/Logo.js +1 -1
- package/dist/Logo.vue.d.ts +6 -41
- package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js → Logo.vue_vue_type_script_setup_true_lang-Y3iE9utm.js} +17 -17
- package/dist/Logo.vue_vue_type_script_setup_true_lang-Y3iE9utm.js.map +1 -0
- package/dist/Menu.js.map +1 -1
- package/dist/Menu.vue.d.ts +1 -1
- package/dist/MenuItem.js.map +1 -1
- package/dist/MenuItem.vue.d.ts +1 -1
- package/dist/MenusPlugin-B4jpNe7x.js +12 -0
- package/dist/{MenusPlugin-Bk6UW6o9.js.map → MenusPlugin-B4jpNe7x.js.map} +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Metric.vue.d.ts +3 -34
- package/dist/Modal.js +62 -64
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.vue.d.ts +13 -60
- package/dist/Modals.js +17 -18
- package/dist/Modals.js.map +1 -1
- package/dist/ModalsPlugin.js +11 -11
- package/dist/ModalsPlugin.js.map +1 -1
- package/dist/Module.js.map +1 -1
- package/dist/Module.keys-CEsrW2f0.js.map +1 -1
- package/dist/Module.types-B1FfGGac.js.map +1 -1
- package/dist/Module.vue.d.ts +2 -29
- package/dist/ModuleContent.js.map +1 -1
- package/dist/ModuleContent.vue.d.ts +3 -3
- package/dist/ModuleFooter.js.map +1 -1
- package/dist/ModuleFooter.vue.d.ts +1 -1
- package/dist/ModuleHeader.js.map +1 -1
- package/dist/ModuleHeader.vue.d.ts +5 -39
- package/dist/ObfuscateText.js.map +1 -1
- package/dist/ObfuscateText.vue.d.ts +3 -40
- package/dist/PageContent.js.map +1 -1
- package/dist/PageContent.vue.d.ts +3 -30
- package/dist/PageHeader.js.map +1 -1
- package/dist/PageHeader.vue.d.ts +6 -35
- package/dist/PageNavigation.js +50 -50
- package/dist/PageNavigation.js.map +1 -1
- package/dist/PageNavigation.vue.d.ts +7 -36
- package/dist/Paginate.js.map +1 -1
- package/dist/Paginate.vue.d.ts +5 -40
- package/dist/PlaidLink.js.map +1 -1
- package/dist/PlaidLink.vue.d.ts +12 -49
- package/dist/QuickAction.js.map +1 -1
- package/dist/QuickAction.vue.d.ts +3 -16
- package/dist/Radio.js.map +1 -1
- package/dist/Radio.vue.d.ts +0 -93
- package/dist/RadioGroup.js +94 -101
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.vue.d.ts +116 -42
- package/dist/RadioNew.js +96 -99
- package/dist/RadioNew.js.map +1 -1
- package/dist/RadioNew.vue.d.ts +7 -48
- package/dist/RangeInput.js.map +1 -1
- package/dist/RangeInput.vue.d.ts +1 -1
- package/dist/SearchBar.js +38 -39
- package/dist/SearchBar.js.map +1 -1
- package/dist/SearchBar.vue.d.ts +127 -44
- package/dist/SectionHeader.js.map +1 -1
- package/dist/SectionHeader.vue.d.ts +6 -37
- package/dist/Select.js +171 -183
- package/dist/Select.js.map +1 -1
- package/dist/Select.vue.d.ts +23 -102
- package/dist/SelectStatus.js +38 -38
- package/dist/SelectStatus.js.map +1 -1
- package/dist/SelectStatus.vue.d.ts +227 -47
- package/dist/Skeleton.js.map +1 -1
- package/dist/Skeleton.vue.d.ts +3 -34
- package/dist/Step.js +44 -44
- package/dist/Step.js.map +1 -1
- package/dist/Step.vue.d.ts +4 -43
- package/dist/Stepper.js.map +1 -1
- package/dist/Stepper.vue.d.ts +9 -44
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.vue.d.ts +8 -47
- package/dist/Tab.js +1 -1
- package/dist/Tab.js.map +1 -1
- package/dist/Tab.vue.d.ts +2 -15
- package/dist/TabPanel.js.map +1 -1
- package/dist/TabPanel.vue.d.ts +3 -30
- package/dist/Table.js +53 -59
- package/dist/Table.js.map +1 -1
- package/dist/Table.keys-LHQf6FEH.js.map +1 -1
- package/dist/Table.vue.d.ts +3 -50
- package/dist/TableCell.js +1 -1
- package/dist/TableCell.js.map +1 -1
- package/dist/TableCell.vue.d.ts +3 -32
- package/dist/TableHeaderCell.js +1 -1
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableHeaderCell.vue.d.ts +3 -30
- package/dist/TableHeaderRow.js +47 -45
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableHeaderRow.vue.d.ts +5 -34
- package/dist/TableRow.js +60 -61
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRow.vue.d.ts +7 -48
- package/dist/Tabs.js +2 -2
- package/dist/Tabs.vue.d.ts +122 -31
- package/dist/Tabs.vue_vue_type_script_setup_true_lang-Dprx064Y.js +156 -0
- package/dist/{Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js.map → Tabs.vue_vue_type_script_setup_true_lang-Dprx064Y.js.map} +1 -1
- package/dist/TextEditor.js +2414 -2420
- package/dist/TextEditor.js.map +1 -1
- package/dist/TextEditor.vue.d.ts +9 -40
- package/dist/Textarea.js +69 -69
- package/dist/Textarea.js.map +1 -1
- package/dist/Textarea.vue.d.ts +9 -44
- package/dist/Thumbnail.js +1 -1
- package/dist/Thumbnail.js.map +1 -1
- package/dist/Thumbnail.vue.d.ts +4 -4
- package/dist/ThumbnailEmpty.js.map +1 -1
- package/dist/ThumbnailEmpty.vue.d.ts +1 -1
- package/dist/ThumbnailGroup.js.map +1 -1
- package/dist/ThumbnailGroup.keys-EJ4qFNhx.js.map +1 -1
- package/dist/ThumbnailGroup.vue.d.ts +26 -22
- package/dist/Timeline.js.map +1 -1
- package/dist/Timeline.vue.d.ts +3 -32
- package/dist/TimelineItem.js.map +1 -1
- package/dist/TimelineItem.vue.d.ts +1 -1
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.vue.d.ts +3 -30
- package/dist/Toasts.js.map +1 -1
- package/dist/ToastsPlugin.js +11 -11
- package/dist/ToastsPlugin.js.map +1 -1
- package/dist/Tooltip.js +29 -30
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.vue.d.ts +11 -43
- package/dist/colors-DDDVvqfQ.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/directives/autofocus.js.map +1 -1
- package/dist/directives/clickoutside.js.map +1 -1
- package/dist/directives/observe.js.map +1 -1
- package/dist/directives/sticky.js.map +1 -1
- package/dist/directives/tooltip.js +3 -3
- package/dist/directives/tooltip.js.map +1 -1
- package/dist/directives/viewable.js +39 -44
- package/dist/directives/viewable.js.map +1 -1
- package/dist/{floating-ui.vue-pzUuloyX.js → floating-ui.vue-CL01Y9ER.js} +2 -2
- package/dist/{floating-ui.vue-pzUuloyX.js.map → floating-ui.vue-CL01Y9ER.js.map} +1 -1
- package/dist/formatDateTime-DG7kBc2T.js +1414 -0
- package/dist/{formatDateTime-Dz8bXV0R.js.map → formatDateTime-DG7kBc2T.js.map} +1 -1
- package/dist/index-D6bxWkZ1.js.map +1 -1
- package/dist/{index-ConQ3o31.js → index-GUu9zvbg.js} +3 -3
- package/dist/{index-ConQ3o31.js.map → index-GUu9zvbg.js.map} +1 -1
- package/dist/index.js +99 -104
- package/dist/index.js.map +1 -1
- package/dist/isDefined-DzVx0B6k.js.map +1 -1
- package/dist/keys-BEdEsanp.js.map +1 -1
- package/dist/keys-C8Zfr_By.js.map +1 -1
- package/dist/locale.js.map +1 -1
- package/dist/misc-CHQs-G03.js.map +1 -1
- package/dist/obfuscateText.d.ts +1 -1
- package/dist/parseISO-wlfIB_QJ.js.map +1 -1
- package/dist/searchFuzzy-DBDE6jkd.js +408 -0
- package/dist/{searchFuzzy-DRasJ33G.js.map → searchFuzzy-DBDE6jkd.js.map} +1 -1
- package/dist/statusLevels-D8EgtE_L.js.map +1 -1
- package/dist/storage.js.map +1 -1
- package/dist/tailwind-base.js +4 -4
- package/dist/tailwind-base.js.map +1 -1
- package/dist/toTimeZone-Coq1oPTt.js.map +1 -1
- package/dist/useConfirmBeforeClosing.js.map +1 -1
- package/dist/useDialog.d.ts +2 -2
- package/dist/useDialog.js +21 -25
- package/dist/useDialog.js.map +1 -1
- package/dist/useGoogleMaps.js +108 -110
- package/dist/useGoogleMaps.js.map +1 -1
- package/dist/useMediaQuery.d.ts +0 -6
- package/dist/useMediaQuery.js +11 -15
- package/dist/useMediaQuery.js.map +1 -1
- package/dist/useModals.d.ts +1 -1
- package/dist/useModals.js.map +1 -1
- package/dist/usePaginationStats-d_q39naC.js.map +1 -1
- package/dist/usePlaidLink.js +20 -27
- package/dist/usePlaidLink.js.map +1 -1
- package/dist/useScriptTag.js.map +1 -1
- package/dist/useSearch.js +13 -13
- package/dist/useSearch.js.map +1 -1
- package/dist/useSelection.js +56 -56
- package/dist/useSelection.js.map +1 -1
- package/dist/useSortable.js +54 -63
- package/dist/useSortable.js.map +1 -1
- package/dist/useStepper.d.ts +2 -2
- package/dist/useStepper.js +36 -40
- package/dist/useStepper.js.map +1 -1
- package/dist/useToasts.js +23 -23
- package/dist/useToasts.js.map +1 -1
- package/dist/useValidation.js +96 -100
- package/dist/useValidation.js.map +1 -1
- package/dist/utils/calculateElementOverflow.js +4 -4
- package/dist/utils/calculateElementOverflow.js.map +1 -1
- package/dist/utils/colorScheme.js +2 -2
- package/dist/utils/colorScheme.js.map +1 -1
- package/dist/utils/createQueryString.js.map +1 -1
- package/dist/utils/createValidDate.js.map +1 -1
- package/dist/utils/formatDateTime.js +1 -1
- package/dist/utils/getContrastingTextColor.js.map +1 -1
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/normalizeDate.js.map +1 -1
- package/dist/utils/obfuscateText.js +6 -6
- package/dist/utils/obfuscateText.js.map +1 -1
- package/dist/utils/searchFuzzy.js +1 -1
- package/dist/utils/storage.js +23 -23
- package/dist/utils/storage.js.map +1 -1
- package/package.json +13 -14
- package/tailwind-base.ts +4 -4
- package/types/vite.d.ts +7 -0
- package/types/vitest.d.ts +7 -0
- package/dist/Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map +0 -1
- package/dist/MenusPlugin-Bk6UW6o9.js +0 -12
- package/dist/Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js +0 -159
- package/dist/formatDateTime-Dz8bXV0R.js +0 -1418
- package/dist/searchFuzzy-DRasJ33G.js +0 -409
package/dist/Carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.js","sources":["../node_modules/vue3-carousel/dist/carousel.es.js","../src/components/Carousel/Carousel.vue"],"sourcesContent":["/**\n * Vue 3 Carousel 0.3.4\n * (c) 2024\n * @license MIT\n */\nimport { Fragment, defineComponent, inject, reactive, ref, h, provide, onMounted, nextTick, onUnmounted, computed, watch, cloneVNode } from 'vue';\n\nconst defaultConfigs = {\n itemsToShow: 1,\n itemsToScroll: 1,\n modelValue: 0,\n transition: 300,\n autoplay: 0,\n snapAlign: 'center',\n wrapAround: false,\n throttle: 16,\n pauseAutoplayOnHover: false,\n mouseDrag: true,\n touchDrag: true,\n dir: 'ltr',\n breakpoints: undefined,\n i18n: {\n ariaNextSlide: 'Navigate to next slide',\n ariaPreviousSlide: 'Navigate to previous slide',\n ariaNavigateToSlide: 'Navigate to slide {slideNumber}',\n ariaGallery: 'Gallery',\n itemXofY: 'Item {currentSlide} of {slidesCount}',\n iconArrowUp: 'Arrow pointing upwards',\n iconArrowDown: 'Arrow pointing downwards',\n iconArrowRight: 'Arrow pointing to the right',\n iconArrowLeft: 'Arrow pointing to the left',\n },\n};\n\nconst carouselProps = {\n // count of items to showed per view\n itemsToShow: {\n default: defaultConfigs.itemsToShow,\n type: Number,\n },\n // count of items to be scrolled\n itemsToScroll: {\n default: defaultConfigs.itemsToScroll,\n type: Number,\n },\n // control infinite scrolling mode\n wrapAround: {\n default: defaultConfigs.wrapAround,\n type: Boolean,\n },\n // control max drag\n throttle: {\n default: defaultConfigs.throttle,\n type: Number,\n },\n // control snap position alignment\n snapAlign: {\n default: defaultConfigs.snapAlign,\n validator(value) {\n // The value must match one of these strings\n return ['start', 'end', 'center', 'center-even', 'center-odd'].includes(value);\n },\n },\n // sliding transition time in ms\n transition: {\n default: defaultConfigs.transition,\n type: Number,\n },\n // an object to store breakpoints\n breakpoints: {\n default: defaultConfigs.breakpoints,\n type: Object,\n },\n // time to auto advance slides in ms\n autoplay: {\n default: defaultConfigs.autoplay,\n type: Number,\n },\n // pause autoplay when mouse hover over the carousel\n pauseAutoplayOnHover: {\n default: defaultConfigs.pauseAutoplayOnHover,\n type: Boolean,\n },\n // slide number number of initial slide\n modelValue: {\n default: undefined,\n type: Number,\n },\n // toggle mouse dragging.\n mouseDrag: {\n default: defaultConfigs.mouseDrag,\n type: Boolean,\n },\n // toggle mouse dragging.\n touchDrag: {\n default: defaultConfigs.touchDrag,\n type: Boolean,\n },\n // control snap position alignment\n dir: {\n default: defaultConfigs.dir,\n validator(value) {\n // The value must match one of these strings\n return ['rtl', 'ltr'].includes(value);\n },\n },\n // aria-labels and additional text labels\n i18n: {\n default: defaultConfigs.i18n,\n type: Object,\n },\n // an object to pass all settings\n settings: {\n default() {\n return {};\n },\n type: Object,\n },\n};\n\nfunction getMaxSlideIndex({ config, slidesCount }) {\n const { snapAlign, wrapAround, itemsToShow = 1 } = config;\n if (wrapAround) {\n return Math.max(slidesCount - 1, 0);\n }\n let output;\n switch (snapAlign) {\n case 'start':\n output = slidesCount - itemsToShow;\n break;\n case 'end':\n output = slidesCount - 1;\n break;\n case 'center':\n case 'center-odd':\n output = slidesCount - Math.ceil((itemsToShow - 0.5) / 2);\n break;\n case 'center-even':\n output = slidesCount - Math.ceil(itemsToShow / 2);\n break;\n default:\n output = 0;\n break;\n }\n return Math.max(output, 0);\n}\n\nfunction getMinSlideIndex({ config, slidesCount }) {\n const { wrapAround, snapAlign, itemsToShow = 1 } = config;\n let output = 0;\n if (wrapAround || itemsToShow > slidesCount) {\n return output;\n }\n switch (snapAlign) {\n case 'start':\n output = 0;\n break;\n case 'end':\n output = itemsToShow - 1;\n break;\n case 'center':\n case 'center-odd':\n output = Math.floor((itemsToShow - 1) / 2);\n break;\n case 'center-even':\n output = Math.floor((itemsToShow - 2) / 2);\n break;\n default:\n output = 0;\n break;\n }\n return output;\n}\n\nfunction getNumberInRange({ val, max, min }) {\n if (max < min) {\n return val;\n }\n return Math.min(Math.max(val, min), max);\n}\n\nfunction getSlidesToScroll({ config, currentSlide, slidesCount }) {\n const { snapAlign, wrapAround, itemsToShow = 1 } = config;\n let output = currentSlide;\n switch (snapAlign) {\n case 'center':\n case 'center-odd':\n output -= (itemsToShow - 1) / 2;\n break;\n case 'center-even':\n output -= (itemsToShow - 2) / 2;\n break;\n case 'end':\n output -= itemsToShow - 1;\n break;\n }\n if (wrapAround) {\n return output;\n }\n return getNumberInRange({\n val: output,\n max: slidesCount - itemsToShow,\n min: 0,\n });\n}\n\nfunction getSlidesVNodes(vNode) {\n if (!vNode)\n return [];\n return vNode.reduce((acc, node) => {\n var _a;\n if (node.type === Fragment) {\n return [...acc, ...getSlidesVNodes(node.children)];\n }\n if (((_a = node.type) === null || _a === void 0 ? void 0 : _a.name) === 'CarouselSlide') {\n return [...acc, node];\n }\n return acc;\n }, []);\n}\n\nfunction mapNumberToRange({ val, max, min = 0 }) {\n if (val > max) {\n return mapNumberToRange({ val: val - (max + 1), max, min });\n }\n if (val < min) {\n return mapNumberToRange({ val: val + (max + 1), max, min });\n }\n return val;\n}\n\n/**\n * return a throttle version of the function\n * Throttling\n *\n */\n// eslint-disable-next-line no-unused-vars\nfunction throttle(fn, limit) {\n let inThrottle;\n if (!limit) {\n return fn;\n }\n return function (...args) {\n const self = this;\n if (!inThrottle) {\n fn.apply(self, args);\n inThrottle = true;\n setTimeout(() => (inThrottle = false), limit);\n }\n };\n}\n\n/**\n * return a debounced version of the function\n * @param fn\n * @param delay\n */\n// eslint-disable-next-line no-unused-vars\nfunction debounce(fn, delay) {\n let timerId;\n return function (...args) {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(() => {\n fn(...args);\n timerId = null;\n }, delay);\n };\n}\n\nfunction i18nFormatter(string = '', values = {}) {\n return Object.entries(values).reduce((acc, [key, value]) => acc.replace(`{${key}}`, String(value)), string);\n}\n\nvar ARIAComponent = defineComponent({\n name: 'ARIA',\n setup() {\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const currentSlide = inject('currentSlide', ref(0));\n const slidesCount = inject('slidesCount', ref(0));\n return () => h('div', {\n class: ['carousel__liveregion', 'carousel__sr-only'],\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n }, i18nFormatter(config.i18n['itemXofY'], {\n currentSlide: currentSlide.value + 1,\n slidesCount: slidesCount.value,\n }));\n },\n});\n\nvar Carousel = defineComponent({\n name: 'Carousel',\n props: carouselProps,\n setup(props, { slots, emit, expose }) {\n var _a;\n const root = ref(null);\n const slides = ref([]);\n const slideWidth = ref(0);\n const slidesCount = ref(0);\n // current config\n const config = reactive(Object.assign({}, defaultConfigs));\n // default carousel configs\n let __defaultConfig = Object.assign({}, defaultConfigs);\n // breakpoints configs\n let breakpoints;\n // slides\n const currentSlideIndex = ref((_a = props.modelValue) !== null && _a !== void 0 ? _a : 0);\n const prevSlideIndex = ref(0);\n const middleSlideIndex = ref(0);\n const maxSlideIndex = ref(0);\n const minSlideIndex = ref(0);\n let autoplayTimer;\n let transitionTimer;\n provide('config', config);\n provide('slidesCount', slidesCount);\n provide('currentSlide', currentSlideIndex);\n provide('maxSlide', maxSlideIndex);\n provide('minSlide', minSlideIndex);\n provide('slideWidth', slideWidth);\n /**\n * Configs\n */\n function initDefaultConfigs() {\n breakpoints = Object.assign({}, props.breakpoints);\n __defaultConfig = Object.assign(Object.assign(Object.assign({}, __defaultConfig), props), { i18n: Object.assign(Object.assign({}, __defaultConfig.i18n), props.i18n), breakpoints: undefined });\n bindConfigs(__defaultConfig);\n }\n function updateBreakpointsConfigs() {\n if (!breakpoints || !Object.keys(breakpoints).length)\n return;\n const breakpointsArray = Object.keys(breakpoints)\n .map((key) => Number(key))\n .sort((a, b) => +b - +a);\n let newConfig = Object.assign({}, __defaultConfig);\n breakpointsArray.some((breakpoint) => {\n const isMatched = window.matchMedia(`(min-width: ${breakpoint}px)`).matches;\n if (isMatched) {\n newConfig = Object.assign(Object.assign({}, newConfig), breakpoints[breakpoint]);\n }\n return isMatched;\n });\n bindConfigs(newConfig);\n }\n function bindConfigs(newConfig) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n Object.entries(newConfig).forEach(([key, val]) => (config[key] = val));\n }\n const handleWindowResize = debounce(() => {\n updateBreakpointsConfigs();\n updateSlidesData();\n updateSlideWidth();\n }, 16);\n /**\n * Setup functions\n */\n function updateSlideWidth() {\n if (!root.value)\n return;\n const rect = root.value.getBoundingClientRect();\n slideWidth.value = rect.width / config.itemsToShow;\n }\n function updateSlidesData() {\n if (slidesCount.value <= 0)\n return;\n middleSlideIndex.value = Math.ceil((slidesCount.value - 1) / 2);\n maxSlideIndex.value = getMaxSlideIndex({ config, slidesCount: slidesCount.value });\n minSlideIndex.value = getMinSlideIndex({ config, slidesCount: slidesCount.value });\n if (!config.wrapAround) {\n currentSlideIndex.value = getNumberInRange({\n val: currentSlideIndex.value,\n max: maxSlideIndex.value,\n min: minSlideIndex.value,\n });\n }\n }\n onMounted(() => {\n nextTick(() => updateSlideWidth());\n // Overcome some edge cases\n setTimeout(() => updateSlideWidth(), 1000);\n updateBreakpointsConfigs();\n initAutoplay();\n window.addEventListener('resize', handleWindowResize, { passive: true });\n emit('init');\n });\n onUnmounted(() => {\n if (transitionTimer) {\n clearTimeout(transitionTimer);\n }\n if (autoplayTimer) {\n clearInterval(autoplayTimer);\n }\n window.removeEventListener('resize', handleWindowResize, {\n passive: true,\n });\n });\n /**\n * Carousel Event listeners\n */\n let isTouch = false;\n const startPosition = { x: 0, y: 0 };\n const endPosition = { x: 0, y: 0 };\n const dragged = reactive({ x: 0, y: 0 });\n const isHover = ref(false);\n const isDragging = ref(false);\n const handleMouseEnter = () => {\n isHover.value = true;\n };\n const handleMouseLeave = () => {\n isHover.value = false;\n };\n function handleDragStart(event) {\n if (['INPUT', 'TEXTAREA', 'SELECT'].includes(event.target.tagName)) {\n return;\n }\n isTouch = event.type === 'touchstart';\n if (!isTouch) {\n event.preventDefault();\n }\n if ((!isTouch && event.button !== 0) || isSliding.value) {\n return;\n }\n startPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\n startPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\n document.addEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\n document.addEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\n }\n const handleDragging = throttle((event) => {\n isDragging.value = true;\n endPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\n endPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\n const deltaX = endPosition.x - startPosition.x;\n const deltaY = endPosition.y - startPosition.y;\n dragged.y = deltaY;\n dragged.x = deltaX;\n }, config.throttle);\n function handleDragEnd() {\n const direction = config.dir === 'rtl' ? -1 : 1;\n const tolerance = Math.sign(dragged.x) * 0.4;\n const draggedSlides = Math.round(dragged.x / slideWidth.value + tolerance) * direction;\n // Prevent clicking if there is clicked slides\n if (draggedSlides && !isTouch) {\n const captureClick = (e) => {\n window.removeEventListener('click', captureClick, true);\n };\n window.addEventListener('click', captureClick, true);\n }\n slideTo(currentSlideIndex.value - draggedSlides);\n dragged.x = 0;\n dragged.y = 0;\n isDragging.value = false;\n document.removeEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\n document.removeEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\n }\n /**\n * Autoplay\n */\n function initAutoplay() {\n if (!config.autoplay || config.autoplay <= 0) {\n return;\n }\n autoplayTimer = setInterval(() => {\n if (config.pauseAutoplayOnHover && isHover.value) {\n return;\n }\n next();\n }, config.autoplay);\n }\n function resetAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer);\n autoplayTimer = null;\n }\n initAutoplay();\n }\n /**\n * Navigation function\n */\n const isSliding = ref(false);\n function slideTo(slideIndex) {\n const currentVal = config.wrapAround\n ? slideIndex\n : getNumberInRange({\n val: slideIndex,\n max: maxSlideIndex.value,\n min: minSlideIndex.value,\n });\n if (currentSlideIndex.value === currentVal || isSliding.value) {\n return;\n }\n emit('slide-start', {\n slidingToIndex: slideIndex,\n currentSlideIndex: currentSlideIndex.value,\n prevSlideIndex: prevSlideIndex.value,\n slidesCount: slidesCount.value,\n });\n isSliding.value = true;\n prevSlideIndex.value = currentSlideIndex.value;\n currentSlideIndex.value = currentVal;\n transitionTimer = setTimeout(() => {\n if (config.wrapAround) {\n const mappedNumber = mapNumberToRange({\n val: currentVal,\n max: maxSlideIndex.value,\n min: 0,\n });\n if (mappedNumber !== currentSlideIndex.value) {\n currentSlideIndex.value = mappedNumber;\n emit('loop', {\n currentSlideIndex: currentSlideIndex.value,\n slidingToIndex: slideIndex,\n });\n }\n }\n emit('update:modelValue', currentSlideIndex.value);\n emit('slide-end', {\n currentSlideIndex: currentSlideIndex.value,\n prevSlideIndex: prevSlideIndex.value,\n slidesCount: slidesCount.value,\n });\n isSliding.value = false;\n resetAutoplay();\n }, config.transition);\n }\n function next() {\n slideTo(currentSlideIndex.value + config.itemsToScroll);\n }\n function prev() {\n slideTo(currentSlideIndex.value - config.itemsToScroll);\n }\n const nav = { slideTo, next, prev };\n provide('nav', nav);\n provide('isSliding', isSliding);\n /**\n * Track style\n */\n const slidesToScroll = computed(() => getSlidesToScroll({\n config,\n currentSlide: currentSlideIndex.value,\n slidesCount: slidesCount.value,\n }));\n provide('slidesToScroll', slidesToScroll);\n const trackStyle = computed(() => {\n const direction = config.dir === 'rtl' ? -1 : 1;\n const xScroll = slidesToScroll.value * slideWidth.value * direction;\n return {\n transform: `translateX(${dragged.x - xScroll}px)`,\n transition: `${isSliding.value ? config.transition : 0}ms`,\n margin: config.wrapAround ? `0 -${slidesCount.value * slideWidth.value}px` : '',\n width: `100%`,\n };\n });\n function restartCarousel() {\n initDefaultConfigs();\n updateBreakpointsConfigs();\n updateSlidesData();\n updateSlideWidth();\n resetAutoplay();\n }\n // Update the carousel on props change\n Object.keys(carouselProps).forEach((prop) => {\n if (['modelValue'].includes(prop))\n return;\n watch(() => props[prop], restartCarousel);\n });\n // Handle changing v-model value\n watch(() => props['modelValue'], (val) => {\n if (val === currentSlideIndex.value) {\n return;\n }\n slideTo(Number(val));\n });\n // Handel when slides added/removed\n watch(slidesCount, updateSlidesData);\n // Init carousel\n emit('before-init');\n initDefaultConfigs();\n const data = {\n config,\n slidesCount,\n slideWidth,\n next,\n prev,\n slideTo,\n currentSlide: currentSlideIndex,\n maxSlide: maxSlideIndex,\n minSlide: minSlideIndex,\n middleSlide: middleSlideIndex,\n };\n expose({\n updateBreakpointsConfigs,\n updateSlidesData,\n updateSlideWidth,\n initDefaultConfigs,\n restartCarousel,\n slideTo,\n next,\n prev,\n nav,\n data,\n });\n const slotSlides = slots.default || slots.slides;\n const slotAddons = slots.addons;\n const slotsProps = reactive(data);\n return () => {\n const slidesElements = getSlidesVNodes(slotSlides === null || slotSlides === void 0 ? void 0 : slotSlides(slotsProps));\n const addonsElements = (slotAddons === null || slotAddons === void 0 ? void 0 : slotAddons(slotsProps)) || [];\n slidesElements.forEach((el, index) => (el.props.index = index));\n let output = slidesElements;\n if (config.wrapAround) {\n const slidesBefore = slidesElements.map((el, index) => cloneVNode(el, {\n index: -slidesElements.length + index,\n isClone: true,\n key: `clone-before-${index}`,\n }));\n const slidesAfter = slidesElements.map((el, index) => cloneVNode(el, {\n index: slidesElements.length + index,\n isClone: true,\n key: `clone-after-${index}`,\n }));\n output = [...slidesBefore, ...slidesElements, ...slidesAfter];\n }\n slides.value = slidesElements;\n slidesCount.value = Math.max(slidesElements.length, 1);\n const trackEl = h('ol', {\n class: 'carousel__track',\n style: trackStyle.value,\n onMousedownCapture: config.mouseDrag ? handleDragStart : null,\n onTouchstartPassiveCapture: config.touchDrag ? handleDragStart : null,\n }, output);\n const viewPortEl = h('div', { class: 'carousel__viewport' }, trackEl);\n return h('section', {\n ref: root,\n class: {\n carousel: true,\n 'is-sliding': isSliding.value,\n 'is-dragging': isDragging.value,\n 'is-hover': isHover.value,\n 'carousel--rtl': config.dir === 'rtl',\n },\n dir: config.dir,\n 'aria-label': config.i18n['ariaGallery'],\n tabindex: '0',\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n }, [viewPortEl, addonsElements, h(ARIAComponent)]);\n };\n },\n});\n\nvar IconName;\n(function (IconName) {\n IconName[\"arrowUp\"] = \"arrowUp\";\n IconName[\"arrowDown\"] = \"arrowDown\";\n IconName[\"arrowRight\"] = \"arrowRight\";\n IconName[\"arrowLeft\"] = \"arrowLeft\";\n})(IconName || (IconName = {}));\nconst icons = {\n arrowUp: 'M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z',\n arrowDown: 'M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z',\n arrowRight: 'M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z',\n arrowLeft: 'M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z',\n};\n\nfunction isIconName(candidate) {\n return candidate in IconName;\n}\nconst Icon = (props) => {\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const iconName = String(props.name);\n const iconI18n = `icon${iconName.charAt(0).toUpperCase() + iconName.slice(1)}`;\n if (!iconName || typeof iconName !== 'string' || !isIconName(iconName)) {\n return;\n }\n const path = icons[iconName];\n const pathEl = h('path', { d: path });\n const iconTitle = config.i18n[iconI18n] || props.title || iconName;\n const titleEl = h('title', iconTitle);\n return h('svg', {\n class: 'carousel__icon',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-label': iconTitle,\n }, [titleEl, pathEl]);\n};\nIcon.props = { name: String, title: String };\n\nconst Navigation = (props, { slots, attrs }) => {\n const { next: slotNext, prev: slotPrev } = slots || {};\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const maxSlide = inject('maxSlide', ref(1));\n const minSlide = inject('minSlide', ref(1));\n const currentSlide = inject('currentSlide', ref(1));\n const nav = inject('nav', {});\n const { dir, wrapAround, i18n } = config;\n const isRTL = dir === 'rtl';\n const prevButton = h('button', {\n type: 'button',\n class: [\n 'carousel__prev',\n !wrapAround && currentSlide.value <= minSlide.value && 'carousel__prev--disabled',\n attrs === null || attrs === void 0 ? void 0 : attrs.class,\n ],\n 'aria-label': i18n['ariaPreviousSlide'],\n onClick: nav.prev,\n }, (slotPrev === null || slotPrev === void 0 ? void 0 : slotPrev()) || h(Icon, { name: isRTL ? 'arrowRight' : 'arrowLeft' }));\n const nextButton = h('button', {\n type: 'button',\n class: [\n 'carousel__next',\n !wrapAround && currentSlide.value >= maxSlide.value && 'carousel__next--disabled',\n attrs === null || attrs === void 0 ? void 0 : attrs.class,\n ],\n 'aria-label': i18n['ariaNextSlide'],\n onClick: nav.next,\n }, (slotNext === null || slotNext === void 0 ? void 0 : slotNext()) || h(Icon, { name: isRTL ? 'arrowLeft' : 'arrowRight' }));\n return [prevButton, nextButton];\n};\n\nconst Pagination = () => {\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const maxSlide = inject('maxSlide', ref(1));\n const minSlide = inject('minSlide', ref(1));\n const currentSlide = inject('currentSlide', ref(1));\n const nav = inject('nav', {});\n const isActive = (slide) => mapNumberToRange({\n val: currentSlide.value,\n max: maxSlide.value,\n min: 0,\n }) === slide;\n const children = [];\n for (let slide = minSlide.value; slide < maxSlide.value + 1; slide++) {\n const button = h('button', {\n type: 'button',\n class: {\n 'carousel__pagination-button': true,\n 'carousel__pagination-button--active': isActive(slide),\n },\n 'aria-label': i18nFormatter(config.i18n['ariaNavigateToSlide'], {\n slideNumber: slide + 1,\n }),\n onClick: () => nav.slideTo(slide),\n });\n const item = h('li', { class: 'carousel__pagination-item', key: slide }, button);\n children.push(item);\n }\n return h('ol', { class: 'carousel__pagination' }, children);\n};\n\nvar Slide = defineComponent({\n name: 'CarouselSlide',\n props: {\n index: {\n type: Number,\n default: 1,\n },\n isClone: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const currentSlide = inject('currentSlide', ref(0));\n const slidesToScroll = inject('slidesToScroll', ref(0));\n const isSliding = inject('isSliding', ref(false));\n const isActive = computed(() => props.index === currentSlide.value);\n const isPrev = computed(() => props.index === currentSlide.value - 1);\n const isNext = computed(() => props.index === currentSlide.value + 1);\n const isVisible = computed(() => {\n const min = Math.floor(slidesToScroll.value);\n const max = Math.ceil(slidesToScroll.value + config.itemsToShow - 1);\n return props.index >= min && props.index <= max;\n });\n return () => {\n var _a;\n return h('li', {\n style: { width: `${100 / config.itemsToShow}%` },\n class: {\n carousel__slide: true,\n 'carousel__slide--clone': props.isClone,\n 'carousel__slide--visible': isVisible.value,\n 'carousel__slide--active': isActive.value,\n 'carousel__slide--prev': isPrev.value,\n 'carousel__slide--next': isNext.value,\n 'carousel__slide--sliding': isSliding.value,\n },\n 'aria-hidden': !isVisible.value,\n }, (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots, {\n isActive: isActive.value,\n isClone: props.isClone,\n isPrev: isPrev.value,\n isNext: isNext.value,\n isSliding: isSliding.value,\n isVisible: isVisible.value\n }));\n };\n },\n});\n\nexport { Carousel, Icon, Navigation, Pagination, Slide };\n","<script lang=\"ts\">\n import { CarouselInstanceRef, CarouselSlide } from './Carousel.types';\n\n export * from './Carousel.types';\n</script>\n\n<script setup lang=\"ts\" generic=\"Slide extends CarouselSlide\">\n import 'vue3-carousel/dist/carousel.css';\n import { ref, useAttrs, useCssModule } from 'vue';\n import * as Vue3Carousel from 'vue3-carousel';\n\n import { t } from '../../locale';\n import Thumbnail from '../Thumbnail/Thumbnail.vue';\n import ThumbnailGroup from '../ThumbnailGroup/ThumbnailGroup.vue';\n\n defineOptions({\n inheritAttrs: false,\n });\n\n const props = withDefaults(\n defineProps<{\n /**\n * The slides to display in the carousel.\n */\n slides: Slide[];\n\n /**\n * Time, in ms, before slides will automatically transition.\n * If not specified, slides are static until manually transitioned.\n */\n autoplayInterval?: number;\n\n /**\n * Hide the navigation buttons\n */\n hideNavigation?: boolean;\n\n /**\n * Hide the pagination dots/tile\n */\n hidePagination?: boolean;\n\n /**\n * Number of slides to be scrolled at a time\n */\n itemsToScroll?: number;\n\n /**\n * Number of items to show on each slide\n */\n itemsToShow?: number;\n\n /**\n * Whether the carousel should loop back to the first slide after the last slide.\n */\n loop?: boolean;\n\n /**\n * The type of pagination to display.\n */\n pagination?: 'tile' | 'dot';\n\n /**\n * The radius of the pagination tiles.\n */\n paginationTileRadius?: 'standard' | 'full';\n\n /**\n * Prevents slides from automatically transitioning when hovering over the slide.\n */\n pauseAutoplayOnHover?: boolean;\n\n /**\n * Whether to round the borders of the slides.\n */\n roundBorders?: boolean;\n\n /**\n * Whether to show the pagination dots on all screen sizes.\n */\n staticPaginationDots?: boolean;\n }>(),\n {\n slides: () => [],\n autoplayInterval: 0,\n hideNavigation: false,\n hidePagination: false,\n itemsToScroll: 1,\n itemsToShow: 1,\n loop: false,\n pagination: 'tile',\n paginationTileRadius: 'standard',\n pauseAutoplayOnHover: false,\n roundBorders: false,\n staticPaginationDots: false,\n },\n );\n\n const attrs = useAttrs();\n const classes = useCssModule();\n const carouselRef = ref<CarouselInstanceRef>();\n\n const emit = defineEmits<{\n (e: 'click', slide: Slide): void;\n (e: 'transition', slide: Slide): void;\n (e: 'transition:multi', slides: Slide[]): void;\n }>();\n\n const currentIndex = ref(0);\n\n function handleUpdateCarouselModelValue(...args: unknown[]) {\n const [index] = args;\n if (index === undefined) return;\n slideTo(index as number);\n }\n\n const slideTo = (index: number) => {\n currentIndex.value = index;\n };\n\n const onCarouselInit = () => {\n // carousel does not fire a transition event to the first slide when mounted.\n // subsequent transition events are fired in the slide-end event handler.\n onSlideTransition();\n };\n\n const onSlideClick = () => {\n emit('click', props.slides[currentIndex.value]);\n };\n\n const onSlideTransition = () => {\n // by default only one slide is displayed at a time for each\n // page in the carousel. In this case, we will only emit a\n // transition event with a single slide object.\n if (props.itemsToShow === 1) {\n emit('transition', props.slides[currentIndex.value]);\n return;\n }\n\n // otherwise, we will emit a transition event with an array of\n // slides currently in view on the current page of the carousel.\n const slidesInView = props.slides.slice(currentIndex.value, currentIndex.value + props.itemsToShow);\n\n emit('transition:multi', slidesInView);\n return;\n };\n\n /**\n * Expose the carousel's next and prev and a move slide methods to the parent component\n */\n defineExpose({\n next: () => carouselRef.value?.next(),\n prev: () => carouselRef.value?.prev(),\n slideTo,\n });\n</script>\n\n<template>\n <Vue3Carousel.Carousel\n ref=\"carouselRef\"\n :model-value=\"currentIndex\"\n aria-live=\"polite\"\n aria-roledescription=\"carousel\"\n class=\"stash-carousel tw-mb-6\"\n data-test=\"stash-carousel\"\n :autoplay=\"autoplayInterval\"\n :class=\"classes.root\"\n :i18n=\"{\n ariaNextSlide: t('ll.next'),\n ariaPreviousSlide: t('ll.previous'),\n iconArrowLeft: t('ll.previous'),\n iconArrowRight: t('ll.next'),\n }\"\n :items-to-scroll=\"props.itemsToScroll\"\n :items-to-show=\"props.itemsToShow\"\n :pause-autoplay-on-hover=\"pauseAutoplayOnHover\"\n :wrap-around=\"props.loop\"\n v-bind=\"attrs\"\n @init=\"onCarouselInit\"\n @slide-end=\"onSlideTransition\"\n @update:model-value=\"handleUpdateCarouselModelValue\"\n >\n <Vue3Carousel.Slide\n v-for=\"(slide, index) in props.slides\"\n :key=\"slide.id\"\n data-test=\"stash-carousel|slide\"\n class=\"tw-cursor-pointer\"\n @click=\"onSlideClick\"\n >\n <slot name=\"slide\" :slide=\"slide\" :index=\"index\">\n <img\n class=\"tw-size-full\"\n :class=\"[{ 'tw-rounded': props.roundBorders }]\"\n :src=\"slide.imageUrl\"\n :title=\"\n t('ll.carousel.imageLabel', {\n index: index + 1,\n total: slides.length,\n })\n \"\n />\n </slot>\n </Vue3Carousel.Slide>\n\n <template #addons>\n <Vue3Carousel.Navigation v-if=\"props.slides.length > 1 && !props.hideNavigation\" />\n </template>\n </Vue3Carousel.Carousel>\n\n <template v-if=\"!props.hidePagination\">\n <!-- Pagination Tiles -->\n <ThumbnailGroup\n v-if=\"props.pagination === 'tile'\"\n :active-thumbnail=\"currentIndex\"\n :thumbnails=\"slides\"\n :radius=\"props.paginationTileRadius === 'full' ? 'circle' : 'rounded'\"\n @update:active-thumbnail=\"slideTo\"\n >\n <Thumbnail v-for=\"slide in slides\" :key=\"slide.id\" :thumbnail=\"slide\" variant=\"translucent\" />\n </ThumbnailGroup>\n\n <!-- Pagination Dots -->\n <ul\n v-else\n class=\"tw-text-center\"\n data-test=\"stash-carousel|pagination-dots\"\n :class=\"[!staticPaginationDots && 'lg:tw-hidden']\"\n >\n <li\n v-for=\"(slide, index) in slides\"\n :key=\"slide.imageUrl\"\n class=\"tw-inline-block tw-rounded-full\"\n :class=\"[classes['pagination-dot'], [currentIndex === index ? 'tw-bg-blue-500' : 'tw-bg-blue-100']]\"\n />\n </ul>\n </template>\n</template>\n\n<style module>\n .root :deep(.carousel__icon) {\n background-color: var(--color-white);\n border-radius: theme('borderRadius.DEFAULT');\n color: var(--color-blue-500);\n height: theme('spacing.9');\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: theme('spacing.9');\n }\n\n .root :deep(.carousel__icon:hover) {\n background-color: var(--color-ice-100);\n color: var(--color-blue-700);\n }\n\n .root :deep(.carousel__next) {\n padding-right: theme('spacing.9');\n }\n\n .root :deep(.carousel__next--disabled) {\n display: none;\n }\n\n .root :deep(.carousel__prev) {\n padding-left: theme('spacing.9');\n }\n\n .root :deep(.carousel__prev--disabled) {\n display: none;\n }\n\n .pagination-dot {\n height: 4px;\n margin-right: 2px;\n width: 4px;\n }\n</style>\n"],"names":["defaultConfigs","carouselProps","value","getMaxSlideIndex","config","slidesCount","snapAlign","wrapAround","itemsToShow","output","getMinSlideIndex","getNumberInRange","val","max","min","getSlidesToScroll","currentSlide","getSlidesVNodes","vNode","acc","node","_a","Fragment","mapNumberToRange","throttle","fn","limit","inThrottle","args","self","debounce","delay","timerId","i18nFormatter","string","values","key","ARIAComponent","defineComponent","inject","reactive","ref","h","Carousel","props","slots","emit","expose","root","slides","slideWidth","__defaultConfig","breakpoints","currentSlideIndex","prevSlideIndex","middleSlideIndex","maxSlideIndex","minSlideIndex","autoplayTimer","transitionTimer","provide","initDefaultConfigs","bindConfigs","updateBreakpointsConfigs","breakpointsArray","a","b","newConfig","breakpoint","isMatched","handleWindowResize","updateSlidesData","updateSlideWidth","rect","onMounted","nextTick","initAutoplay","onUnmounted","isTouch","startPosition","endPosition","dragged","isHover","isDragging","handleMouseEnter","handleMouseLeave","handleDragStart","event","isSliding","handleDragging","handleDragEnd","deltaX","deltaY","direction","tolerance","draggedSlides","captureClick","e","slideTo","next","resetAutoplay","slideIndex","currentVal","mappedNumber","prev","nav","slidesToScroll","computed","trackStyle","xScroll","restartCarousel","prop","watch","data","slotSlides","slotAddons","slotsProps","slidesElements","addonsElements","el","index","slidesBefore","cloneVNode","slidesAfter","trackEl","viewPortEl","IconName","icons","isIconName","candidate","Icon","iconName","iconI18n","path","pathEl","iconTitle","titleEl","Navigation","attrs","slotNext","slotPrev","maxSlide","minSlide","dir","i18n","isRTL","prevButton","nextButton","Slide","isActive","isPrev","isNext","isVisible","__props","useAttrs","classes","useCssModule","carouselRef","__emit","currentIndex","handleUpdateCarouselModelValue","onCarouselInit","onSlideTransition","onSlideClick","slidesInView","__expose"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Carousel.js","sources":["../node_modules/vue3-carousel/dist/carousel.es.js","../src/components/Carousel/Carousel.vue"],"sourcesContent":["/**\n * Vue 3 Carousel 0.3.4\n * (c) 2024\n * @license MIT\n */\nimport { Fragment, defineComponent, inject, reactive, ref, h, provide, onMounted, nextTick, onUnmounted, computed, watch, cloneVNode } from 'vue';\n\nconst defaultConfigs = {\n itemsToShow: 1,\n itemsToScroll: 1,\n modelValue: 0,\n transition: 300,\n autoplay: 0,\n snapAlign: 'center',\n wrapAround: false,\n throttle: 16,\n pauseAutoplayOnHover: false,\n mouseDrag: true,\n touchDrag: true,\n dir: 'ltr',\n breakpoints: undefined,\n i18n: {\n ariaNextSlide: 'Navigate to next slide',\n ariaPreviousSlide: 'Navigate to previous slide',\n ariaNavigateToSlide: 'Navigate to slide {slideNumber}',\n ariaGallery: 'Gallery',\n itemXofY: 'Item {currentSlide} of {slidesCount}',\n iconArrowUp: 'Arrow pointing upwards',\n iconArrowDown: 'Arrow pointing downwards',\n iconArrowRight: 'Arrow pointing to the right',\n iconArrowLeft: 'Arrow pointing to the left',\n },\n};\n\nconst carouselProps = {\n // count of items to showed per view\n itemsToShow: {\n default: defaultConfigs.itemsToShow,\n type: Number,\n },\n // count of items to be scrolled\n itemsToScroll: {\n default: defaultConfigs.itemsToScroll,\n type: Number,\n },\n // control infinite scrolling mode\n wrapAround: {\n default: defaultConfigs.wrapAround,\n type: Boolean,\n },\n // control max drag\n throttle: {\n default: defaultConfigs.throttle,\n type: Number,\n },\n // control snap position alignment\n snapAlign: {\n default: defaultConfigs.snapAlign,\n validator(value) {\n // The value must match one of these strings\n return ['start', 'end', 'center', 'center-even', 'center-odd'].includes(value);\n },\n },\n // sliding transition time in ms\n transition: {\n default: defaultConfigs.transition,\n type: Number,\n },\n // an object to store breakpoints\n breakpoints: {\n default: defaultConfigs.breakpoints,\n type: Object,\n },\n // time to auto advance slides in ms\n autoplay: {\n default: defaultConfigs.autoplay,\n type: Number,\n },\n // pause autoplay when mouse hover over the carousel\n pauseAutoplayOnHover: {\n default: defaultConfigs.pauseAutoplayOnHover,\n type: Boolean,\n },\n // slide number number of initial slide\n modelValue: {\n default: undefined,\n type: Number,\n },\n // toggle mouse dragging.\n mouseDrag: {\n default: defaultConfigs.mouseDrag,\n type: Boolean,\n },\n // toggle mouse dragging.\n touchDrag: {\n default: defaultConfigs.touchDrag,\n type: Boolean,\n },\n // control snap position alignment\n dir: {\n default: defaultConfigs.dir,\n validator(value) {\n // The value must match one of these strings\n return ['rtl', 'ltr'].includes(value);\n },\n },\n // aria-labels and additional text labels\n i18n: {\n default: defaultConfigs.i18n,\n type: Object,\n },\n // an object to pass all settings\n settings: {\n default() {\n return {};\n },\n type: Object,\n },\n};\n\nfunction getMaxSlideIndex({ config, slidesCount }) {\n const { snapAlign, wrapAround, itemsToShow = 1 } = config;\n if (wrapAround) {\n return Math.max(slidesCount - 1, 0);\n }\n let output;\n switch (snapAlign) {\n case 'start':\n output = slidesCount - itemsToShow;\n break;\n case 'end':\n output = slidesCount - 1;\n break;\n case 'center':\n case 'center-odd':\n output = slidesCount - Math.ceil((itemsToShow - 0.5) / 2);\n break;\n case 'center-even':\n output = slidesCount - Math.ceil(itemsToShow / 2);\n break;\n default:\n output = 0;\n break;\n }\n return Math.max(output, 0);\n}\n\nfunction getMinSlideIndex({ config, slidesCount }) {\n const { wrapAround, snapAlign, itemsToShow = 1 } = config;\n let output = 0;\n if (wrapAround || itemsToShow > slidesCount) {\n return output;\n }\n switch (snapAlign) {\n case 'start':\n output = 0;\n break;\n case 'end':\n output = itemsToShow - 1;\n break;\n case 'center':\n case 'center-odd':\n output = Math.floor((itemsToShow - 1) / 2);\n break;\n case 'center-even':\n output = Math.floor((itemsToShow - 2) / 2);\n break;\n default:\n output = 0;\n break;\n }\n return output;\n}\n\nfunction getNumberInRange({ val, max, min }) {\n if (max < min) {\n return val;\n }\n return Math.min(Math.max(val, min), max);\n}\n\nfunction getSlidesToScroll({ config, currentSlide, slidesCount }) {\n const { snapAlign, wrapAround, itemsToShow = 1 } = config;\n let output = currentSlide;\n switch (snapAlign) {\n case 'center':\n case 'center-odd':\n output -= (itemsToShow - 1) / 2;\n break;\n case 'center-even':\n output -= (itemsToShow - 2) / 2;\n break;\n case 'end':\n output -= itemsToShow - 1;\n break;\n }\n if (wrapAround) {\n return output;\n }\n return getNumberInRange({\n val: output,\n max: slidesCount - itemsToShow,\n min: 0,\n });\n}\n\nfunction getSlidesVNodes(vNode) {\n if (!vNode)\n return [];\n return vNode.reduce((acc, node) => {\n var _a;\n if (node.type === Fragment) {\n return [...acc, ...getSlidesVNodes(node.children)];\n }\n if (((_a = node.type) === null || _a === void 0 ? void 0 : _a.name) === 'CarouselSlide') {\n return [...acc, node];\n }\n return acc;\n }, []);\n}\n\nfunction mapNumberToRange({ val, max, min = 0 }) {\n if (val > max) {\n return mapNumberToRange({ val: val - (max + 1), max, min });\n }\n if (val < min) {\n return mapNumberToRange({ val: val + (max + 1), max, min });\n }\n return val;\n}\n\n/**\n * return a throttle version of the function\n * Throttling\n *\n */\n// eslint-disable-next-line no-unused-vars\nfunction throttle(fn, limit) {\n let inThrottle;\n if (!limit) {\n return fn;\n }\n return function (...args) {\n const self = this;\n if (!inThrottle) {\n fn.apply(self, args);\n inThrottle = true;\n setTimeout(() => (inThrottle = false), limit);\n }\n };\n}\n\n/**\n * return a debounced version of the function\n * @param fn\n * @param delay\n */\n// eslint-disable-next-line no-unused-vars\nfunction debounce(fn, delay) {\n let timerId;\n return function (...args) {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(() => {\n fn(...args);\n timerId = null;\n }, delay);\n };\n}\n\nfunction i18nFormatter(string = '', values = {}) {\n return Object.entries(values).reduce((acc, [key, value]) => acc.replace(`{${key}}`, String(value)), string);\n}\n\nvar ARIAComponent = defineComponent({\n name: 'ARIA',\n setup() {\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const currentSlide = inject('currentSlide', ref(0));\n const slidesCount = inject('slidesCount', ref(0));\n return () => h('div', {\n class: ['carousel__liveregion', 'carousel__sr-only'],\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n }, i18nFormatter(config.i18n['itemXofY'], {\n currentSlide: currentSlide.value + 1,\n slidesCount: slidesCount.value,\n }));\n },\n});\n\nvar Carousel = defineComponent({\n name: 'Carousel',\n props: carouselProps,\n setup(props, { slots, emit, expose }) {\n var _a;\n const root = ref(null);\n const slides = ref([]);\n const slideWidth = ref(0);\n const slidesCount = ref(0);\n // current config\n const config = reactive(Object.assign({}, defaultConfigs));\n // default carousel configs\n let __defaultConfig = Object.assign({}, defaultConfigs);\n // breakpoints configs\n let breakpoints;\n // slides\n const currentSlideIndex = ref((_a = props.modelValue) !== null && _a !== void 0 ? _a : 0);\n const prevSlideIndex = ref(0);\n const middleSlideIndex = ref(0);\n const maxSlideIndex = ref(0);\n const minSlideIndex = ref(0);\n let autoplayTimer;\n let transitionTimer;\n provide('config', config);\n provide('slidesCount', slidesCount);\n provide('currentSlide', currentSlideIndex);\n provide('maxSlide', maxSlideIndex);\n provide('minSlide', minSlideIndex);\n provide('slideWidth', slideWidth);\n /**\n * Configs\n */\n function initDefaultConfigs() {\n breakpoints = Object.assign({}, props.breakpoints);\n __defaultConfig = Object.assign(Object.assign(Object.assign({}, __defaultConfig), props), { i18n: Object.assign(Object.assign({}, __defaultConfig.i18n), props.i18n), breakpoints: undefined });\n bindConfigs(__defaultConfig);\n }\n function updateBreakpointsConfigs() {\n if (!breakpoints || !Object.keys(breakpoints).length)\n return;\n const breakpointsArray = Object.keys(breakpoints)\n .map((key) => Number(key))\n .sort((a, b) => +b - +a);\n let newConfig = Object.assign({}, __defaultConfig);\n breakpointsArray.some((breakpoint) => {\n const isMatched = window.matchMedia(`(min-width: ${breakpoint}px)`).matches;\n if (isMatched) {\n newConfig = Object.assign(Object.assign({}, newConfig), breakpoints[breakpoint]);\n }\n return isMatched;\n });\n bindConfigs(newConfig);\n }\n function bindConfigs(newConfig) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n Object.entries(newConfig).forEach(([key, val]) => (config[key] = val));\n }\n const handleWindowResize = debounce(() => {\n updateBreakpointsConfigs();\n updateSlidesData();\n updateSlideWidth();\n }, 16);\n /**\n * Setup functions\n */\n function updateSlideWidth() {\n if (!root.value)\n return;\n const rect = root.value.getBoundingClientRect();\n slideWidth.value = rect.width / config.itemsToShow;\n }\n function updateSlidesData() {\n if (slidesCount.value <= 0)\n return;\n middleSlideIndex.value = Math.ceil((slidesCount.value - 1) / 2);\n maxSlideIndex.value = getMaxSlideIndex({ config, slidesCount: slidesCount.value });\n minSlideIndex.value = getMinSlideIndex({ config, slidesCount: slidesCount.value });\n if (!config.wrapAround) {\n currentSlideIndex.value = getNumberInRange({\n val: currentSlideIndex.value,\n max: maxSlideIndex.value,\n min: minSlideIndex.value,\n });\n }\n }\n onMounted(() => {\n nextTick(() => updateSlideWidth());\n // Overcome some edge cases\n setTimeout(() => updateSlideWidth(), 1000);\n updateBreakpointsConfigs();\n initAutoplay();\n window.addEventListener('resize', handleWindowResize, { passive: true });\n emit('init');\n });\n onUnmounted(() => {\n if (transitionTimer) {\n clearTimeout(transitionTimer);\n }\n if (autoplayTimer) {\n clearInterval(autoplayTimer);\n }\n window.removeEventListener('resize', handleWindowResize, {\n passive: true,\n });\n });\n /**\n * Carousel Event listeners\n */\n let isTouch = false;\n const startPosition = { x: 0, y: 0 };\n const endPosition = { x: 0, y: 0 };\n const dragged = reactive({ x: 0, y: 0 });\n const isHover = ref(false);\n const isDragging = ref(false);\n const handleMouseEnter = () => {\n isHover.value = true;\n };\n const handleMouseLeave = () => {\n isHover.value = false;\n };\n function handleDragStart(event) {\n if (['INPUT', 'TEXTAREA', 'SELECT'].includes(event.target.tagName)) {\n return;\n }\n isTouch = event.type === 'touchstart';\n if (!isTouch) {\n event.preventDefault();\n }\n if ((!isTouch && event.button !== 0) || isSliding.value) {\n return;\n }\n startPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\n startPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\n document.addEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\n document.addEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\n }\n const handleDragging = throttle((event) => {\n isDragging.value = true;\n endPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\n endPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\n const deltaX = endPosition.x - startPosition.x;\n const deltaY = endPosition.y - startPosition.y;\n dragged.y = deltaY;\n dragged.x = deltaX;\n }, config.throttle);\n function handleDragEnd() {\n const direction = config.dir === 'rtl' ? -1 : 1;\n const tolerance = Math.sign(dragged.x) * 0.4;\n const draggedSlides = Math.round(dragged.x / slideWidth.value + tolerance) * direction;\n // Prevent clicking if there is clicked slides\n if (draggedSlides && !isTouch) {\n const captureClick = (e) => {\n window.removeEventListener('click', captureClick, true);\n };\n window.addEventListener('click', captureClick, true);\n }\n slideTo(currentSlideIndex.value - draggedSlides);\n dragged.x = 0;\n dragged.y = 0;\n isDragging.value = false;\n document.removeEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\n document.removeEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\n }\n /**\n * Autoplay\n */\n function initAutoplay() {\n if (!config.autoplay || config.autoplay <= 0) {\n return;\n }\n autoplayTimer = setInterval(() => {\n if (config.pauseAutoplayOnHover && isHover.value) {\n return;\n }\n next();\n }, config.autoplay);\n }\n function resetAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer);\n autoplayTimer = null;\n }\n initAutoplay();\n }\n /**\n * Navigation function\n */\n const isSliding = ref(false);\n function slideTo(slideIndex) {\n const currentVal = config.wrapAround\n ? slideIndex\n : getNumberInRange({\n val: slideIndex,\n max: maxSlideIndex.value,\n min: minSlideIndex.value,\n });\n if (currentSlideIndex.value === currentVal || isSliding.value) {\n return;\n }\n emit('slide-start', {\n slidingToIndex: slideIndex,\n currentSlideIndex: currentSlideIndex.value,\n prevSlideIndex: prevSlideIndex.value,\n slidesCount: slidesCount.value,\n });\n isSliding.value = true;\n prevSlideIndex.value = currentSlideIndex.value;\n currentSlideIndex.value = currentVal;\n transitionTimer = setTimeout(() => {\n if (config.wrapAround) {\n const mappedNumber = mapNumberToRange({\n val: currentVal,\n max: maxSlideIndex.value,\n min: 0,\n });\n if (mappedNumber !== currentSlideIndex.value) {\n currentSlideIndex.value = mappedNumber;\n emit('loop', {\n currentSlideIndex: currentSlideIndex.value,\n slidingToIndex: slideIndex,\n });\n }\n }\n emit('update:modelValue', currentSlideIndex.value);\n emit('slide-end', {\n currentSlideIndex: currentSlideIndex.value,\n prevSlideIndex: prevSlideIndex.value,\n slidesCount: slidesCount.value,\n });\n isSliding.value = false;\n resetAutoplay();\n }, config.transition);\n }\n function next() {\n slideTo(currentSlideIndex.value + config.itemsToScroll);\n }\n function prev() {\n slideTo(currentSlideIndex.value - config.itemsToScroll);\n }\n const nav = { slideTo, next, prev };\n provide('nav', nav);\n provide('isSliding', isSliding);\n /**\n * Track style\n */\n const slidesToScroll = computed(() => getSlidesToScroll({\n config,\n currentSlide: currentSlideIndex.value,\n slidesCount: slidesCount.value,\n }));\n provide('slidesToScroll', slidesToScroll);\n const trackStyle = computed(() => {\n const direction = config.dir === 'rtl' ? -1 : 1;\n const xScroll = slidesToScroll.value * slideWidth.value * direction;\n return {\n transform: `translateX(${dragged.x - xScroll}px)`,\n transition: `${isSliding.value ? config.transition : 0}ms`,\n margin: config.wrapAround ? `0 -${slidesCount.value * slideWidth.value}px` : '',\n width: `100%`,\n };\n });\n function restartCarousel() {\n initDefaultConfigs();\n updateBreakpointsConfigs();\n updateSlidesData();\n updateSlideWidth();\n resetAutoplay();\n }\n // Update the carousel on props change\n Object.keys(carouselProps).forEach((prop) => {\n if (['modelValue'].includes(prop))\n return;\n watch(() => props[prop], restartCarousel);\n });\n // Handle changing v-model value\n watch(() => props['modelValue'], (val) => {\n if (val === currentSlideIndex.value) {\n return;\n }\n slideTo(Number(val));\n });\n // Handel when slides added/removed\n watch(slidesCount, updateSlidesData);\n // Init carousel\n emit('before-init');\n initDefaultConfigs();\n const data = {\n config,\n slidesCount,\n slideWidth,\n next,\n prev,\n slideTo,\n currentSlide: currentSlideIndex,\n maxSlide: maxSlideIndex,\n minSlide: minSlideIndex,\n middleSlide: middleSlideIndex,\n };\n expose({\n updateBreakpointsConfigs,\n updateSlidesData,\n updateSlideWidth,\n initDefaultConfigs,\n restartCarousel,\n slideTo,\n next,\n prev,\n nav,\n data,\n });\n const slotSlides = slots.default || slots.slides;\n const slotAddons = slots.addons;\n const slotsProps = reactive(data);\n return () => {\n const slidesElements = getSlidesVNodes(slotSlides === null || slotSlides === void 0 ? void 0 : slotSlides(slotsProps));\n const addonsElements = (slotAddons === null || slotAddons === void 0 ? void 0 : slotAddons(slotsProps)) || [];\n slidesElements.forEach((el, index) => (el.props.index = index));\n let output = slidesElements;\n if (config.wrapAround) {\n const slidesBefore = slidesElements.map((el, index) => cloneVNode(el, {\n index: -slidesElements.length + index,\n isClone: true,\n key: `clone-before-${index}`,\n }));\n const slidesAfter = slidesElements.map((el, index) => cloneVNode(el, {\n index: slidesElements.length + index,\n isClone: true,\n key: `clone-after-${index}`,\n }));\n output = [...slidesBefore, ...slidesElements, ...slidesAfter];\n }\n slides.value = slidesElements;\n slidesCount.value = Math.max(slidesElements.length, 1);\n const trackEl = h('ol', {\n class: 'carousel__track',\n style: trackStyle.value,\n onMousedownCapture: config.mouseDrag ? handleDragStart : null,\n onTouchstartPassiveCapture: config.touchDrag ? handleDragStart : null,\n }, output);\n const viewPortEl = h('div', { class: 'carousel__viewport' }, trackEl);\n return h('section', {\n ref: root,\n class: {\n carousel: true,\n 'is-sliding': isSliding.value,\n 'is-dragging': isDragging.value,\n 'is-hover': isHover.value,\n 'carousel--rtl': config.dir === 'rtl',\n },\n dir: config.dir,\n 'aria-label': config.i18n['ariaGallery'],\n tabindex: '0',\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n }, [viewPortEl, addonsElements, h(ARIAComponent)]);\n };\n },\n});\n\nvar IconName;\n(function (IconName) {\n IconName[\"arrowUp\"] = \"arrowUp\";\n IconName[\"arrowDown\"] = \"arrowDown\";\n IconName[\"arrowRight\"] = \"arrowRight\";\n IconName[\"arrowLeft\"] = \"arrowLeft\";\n})(IconName || (IconName = {}));\nconst icons = {\n arrowUp: 'M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z',\n arrowDown: 'M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z',\n arrowRight: 'M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z',\n arrowLeft: 'M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z',\n};\n\nfunction isIconName(candidate) {\n return candidate in IconName;\n}\nconst Icon = (props) => {\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const iconName = String(props.name);\n const iconI18n = `icon${iconName.charAt(0).toUpperCase() + iconName.slice(1)}`;\n if (!iconName || typeof iconName !== 'string' || !isIconName(iconName)) {\n return;\n }\n const path = icons[iconName];\n const pathEl = h('path', { d: path });\n const iconTitle = config.i18n[iconI18n] || props.title || iconName;\n const titleEl = h('title', iconTitle);\n return h('svg', {\n class: 'carousel__icon',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-label': iconTitle,\n }, [titleEl, pathEl]);\n};\nIcon.props = { name: String, title: String };\n\nconst Navigation = (props, { slots, attrs }) => {\n const { next: slotNext, prev: slotPrev } = slots || {};\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const maxSlide = inject('maxSlide', ref(1));\n const minSlide = inject('minSlide', ref(1));\n const currentSlide = inject('currentSlide', ref(1));\n const nav = inject('nav', {});\n const { dir, wrapAround, i18n } = config;\n const isRTL = dir === 'rtl';\n const prevButton = h('button', {\n type: 'button',\n class: [\n 'carousel__prev',\n !wrapAround && currentSlide.value <= minSlide.value && 'carousel__prev--disabled',\n attrs === null || attrs === void 0 ? void 0 : attrs.class,\n ],\n 'aria-label': i18n['ariaPreviousSlide'],\n onClick: nav.prev,\n }, (slotPrev === null || slotPrev === void 0 ? void 0 : slotPrev()) || h(Icon, { name: isRTL ? 'arrowRight' : 'arrowLeft' }));\n const nextButton = h('button', {\n type: 'button',\n class: [\n 'carousel__next',\n !wrapAround && currentSlide.value >= maxSlide.value && 'carousel__next--disabled',\n attrs === null || attrs === void 0 ? void 0 : attrs.class,\n ],\n 'aria-label': i18n['ariaNextSlide'],\n onClick: nav.next,\n }, (slotNext === null || slotNext === void 0 ? void 0 : slotNext()) || h(Icon, { name: isRTL ? 'arrowLeft' : 'arrowRight' }));\n return [prevButton, nextButton];\n};\n\nconst Pagination = () => {\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const maxSlide = inject('maxSlide', ref(1));\n const minSlide = inject('minSlide', ref(1));\n const currentSlide = inject('currentSlide', ref(1));\n const nav = inject('nav', {});\n const isActive = (slide) => mapNumberToRange({\n val: currentSlide.value,\n max: maxSlide.value,\n min: 0,\n }) === slide;\n const children = [];\n for (let slide = minSlide.value; slide < maxSlide.value + 1; slide++) {\n const button = h('button', {\n type: 'button',\n class: {\n 'carousel__pagination-button': true,\n 'carousel__pagination-button--active': isActive(slide),\n },\n 'aria-label': i18nFormatter(config.i18n['ariaNavigateToSlide'], {\n slideNumber: slide + 1,\n }),\n onClick: () => nav.slideTo(slide),\n });\n const item = h('li', { class: 'carousel__pagination-item', key: slide }, button);\n children.push(item);\n }\n return h('ol', { class: 'carousel__pagination' }, children);\n};\n\nvar Slide = defineComponent({\n name: 'CarouselSlide',\n props: {\n index: {\n type: Number,\n default: 1,\n },\n isClone: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\n const currentSlide = inject('currentSlide', ref(0));\n const slidesToScroll = inject('slidesToScroll', ref(0));\n const isSliding = inject('isSliding', ref(false));\n const isActive = computed(() => props.index === currentSlide.value);\n const isPrev = computed(() => props.index === currentSlide.value - 1);\n const isNext = computed(() => props.index === currentSlide.value + 1);\n const isVisible = computed(() => {\n const min = Math.floor(slidesToScroll.value);\n const max = Math.ceil(slidesToScroll.value + config.itemsToShow - 1);\n return props.index >= min && props.index <= max;\n });\n return () => {\n var _a;\n return h('li', {\n style: { width: `${100 / config.itemsToShow}%` },\n class: {\n carousel__slide: true,\n 'carousel__slide--clone': props.isClone,\n 'carousel__slide--visible': isVisible.value,\n 'carousel__slide--active': isActive.value,\n 'carousel__slide--prev': isPrev.value,\n 'carousel__slide--next': isNext.value,\n 'carousel__slide--sliding': isSliding.value,\n },\n 'aria-hidden': !isVisible.value,\n }, (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots, {\n isActive: isActive.value,\n isClone: props.isClone,\n isPrev: isPrev.value,\n isNext: isNext.value,\n isSliding: isSliding.value,\n isVisible: isVisible.value\n }));\n };\n },\n});\n\nexport { Carousel, Icon, Navigation, Pagination, Slide };\n","<script lang=\"ts\">\n import { CarouselInstanceRef, CarouselSlide } from './Carousel.types';\n\n export * from './Carousel.types';\n</script>\n\n<script setup lang=\"ts\" generic=\"Slide extends CarouselSlide\">\n import 'vue3-carousel/dist/carousel.css';\n import { ref, useAttrs, useCssModule } from 'vue';\n import * as Vue3Carousel from 'vue3-carousel';\n\n import { t } from '../../locale';\n import Thumbnail from '../Thumbnail/Thumbnail.vue';\n import ThumbnailGroup from '../ThumbnailGroup/ThumbnailGroup.vue';\n\n defineOptions({\n inheritAttrs: false,\n });\n\n const props = withDefaults(\n defineProps<{\n /**\n * The slides to display in the carousel.\n */\n slides: Slide[];\n\n /**\n * Time, in ms, before slides will automatically transition.\n * If not specified, slides are static until manually transitioned.\n */\n autoplayInterval?: number;\n\n /**\n * Hide the navigation buttons\n */\n hideNavigation?: boolean;\n\n /**\n * Hide the pagination dots/tile\n */\n hidePagination?: boolean;\n\n /**\n * Number of slides to be scrolled at a time\n */\n itemsToScroll?: number;\n\n /**\n * Number of items to show on each slide\n */\n itemsToShow?: number;\n\n /**\n * Whether the carousel should loop back to the first slide after the last slide.\n */\n loop?: boolean;\n\n /**\n * The type of pagination to display.\n */\n pagination?: 'tile' | 'dot';\n\n /**\n * The radius of the pagination tiles.\n */\n paginationTileRadius?: 'standard' | 'full';\n\n /**\n * Prevents slides from automatically transitioning when hovering over the slide.\n */\n pauseAutoplayOnHover?: boolean;\n\n /**\n * Whether to round the borders of the slides.\n */\n roundBorders?: boolean;\n\n /**\n * Whether to show the pagination dots on all screen sizes.\n */\n staticPaginationDots?: boolean;\n }>(),\n {\n slides: () => [],\n autoplayInterval: 0,\n hideNavigation: false,\n hidePagination: false,\n itemsToScroll: 1,\n itemsToShow: 1,\n loop: false,\n pagination: 'tile',\n paginationTileRadius: 'standard',\n pauseAutoplayOnHover: false,\n roundBorders: false,\n staticPaginationDots: false,\n },\n );\n\n const attrs = useAttrs();\n const classes = useCssModule();\n const carouselRef = ref<CarouselInstanceRef>();\n\n const emit = defineEmits<{\n (e: 'click', slide: Slide): void;\n (e: 'transition', slide: Slide): void;\n (e: 'transition:multi', slides: Slide[]): void;\n }>();\n\n const currentIndex = ref(0);\n\n function handleUpdateCarouselModelValue(...args: unknown[]) {\n const [index] = args;\n if (index === undefined) return;\n slideTo(index as number);\n }\n\n const slideTo = (index: number) => {\n currentIndex.value = index;\n };\n\n const onCarouselInit = () => {\n // carousel does not fire a transition event to the first slide when mounted.\n // subsequent transition events are fired in the slide-end event handler.\n onSlideTransition();\n };\n\n const onSlideClick = () => {\n emit('click', props.slides[currentIndex.value]);\n };\n\n const onSlideTransition = () => {\n // by default only one slide is displayed at a time for each\n // page in the carousel. In this case, we will only emit a\n // transition event with a single slide object.\n if (props.itemsToShow === 1) {\n emit('transition', props.slides[currentIndex.value]);\n return;\n }\n\n // otherwise, we will emit a transition event with an array of\n // slides currently in view on the current page of the carousel.\n const slidesInView = props.slides.slice(currentIndex.value, currentIndex.value + props.itemsToShow);\n\n emit('transition:multi', slidesInView);\n return;\n };\n\n /**\n * Expose the carousel's next and prev and a move slide methods to the parent component\n */\n defineExpose({\n next: () => carouselRef.value?.next(),\n prev: () => carouselRef.value?.prev(),\n slideTo,\n });\n</script>\n\n<template>\n <Vue3Carousel.Carousel\n ref=\"carouselRef\"\n :model-value=\"currentIndex\"\n aria-live=\"polite\"\n aria-roledescription=\"carousel\"\n class=\"stash-carousel tw-mb-6\"\n data-test=\"stash-carousel\"\n :autoplay=\"autoplayInterval\"\n :class=\"classes.root\"\n :i18n=\"{\n ariaNextSlide: t('ll.next'),\n ariaPreviousSlide: t('ll.previous'),\n iconArrowLeft: t('ll.previous'),\n iconArrowRight: t('ll.next'),\n }\"\n :items-to-scroll=\"props.itemsToScroll\"\n :items-to-show=\"props.itemsToShow\"\n :pause-autoplay-on-hover=\"pauseAutoplayOnHover\"\n :wrap-around=\"props.loop\"\n v-bind=\"attrs\"\n @init=\"onCarouselInit\"\n @slide-end=\"onSlideTransition\"\n @update:model-value=\"handleUpdateCarouselModelValue\"\n >\n <Vue3Carousel.Slide\n v-for=\"(slide, index) in props.slides\"\n :key=\"slide.id\"\n data-test=\"stash-carousel|slide\"\n class=\"tw-cursor-pointer\"\n @click=\"onSlideClick\"\n >\n <slot name=\"slide\" :slide=\"slide\" :index=\"index\">\n <img\n class=\"tw-size-full\"\n :class=\"[{ 'tw-rounded': props.roundBorders }]\"\n :src=\"slide.imageUrl\"\n :title=\"\n t('ll.carousel.imageLabel', {\n index: index + 1,\n total: slides.length,\n })\n \"\n />\n </slot>\n </Vue3Carousel.Slide>\n\n <template #addons>\n <Vue3Carousel.Navigation v-if=\"props.slides.length > 1 && !props.hideNavigation\" />\n </template>\n </Vue3Carousel.Carousel>\n\n <template v-if=\"!props.hidePagination\">\n <!-- Pagination Tiles -->\n <ThumbnailGroup\n v-if=\"props.pagination === 'tile'\"\n :active-thumbnail=\"currentIndex\"\n :thumbnails=\"slides\"\n :radius=\"props.paginationTileRadius === 'full' ? 'circle' : 'rounded'\"\n @update:active-thumbnail=\"slideTo\"\n >\n <Thumbnail v-for=\"slide in slides\" :key=\"slide.id\" :thumbnail=\"slide\" variant=\"translucent\" />\n </ThumbnailGroup>\n\n <!-- Pagination Dots -->\n <ul\n v-else\n class=\"tw-text-center\"\n data-test=\"stash-carousel|pagination-dots\"\n :class=\"[!staticPaginationDots && 'lg:tw-hidden']\"\n >\n <li\n v-for=\"(slide, index) in slides\"\n :key=\"slide.imageUrl\"\n class=\"tw-inline-block tw-rounded-full\"\n :class=\"[classes['pagination-dot'], [currentIndex === index ? 'tw-bg-blue-500' : 'tw-bg-blue-100']]\"\n />\n </ul>\n </template>\n</template>\n\n<style module>\n .root :deep(.carousel__icon) {\n background-color: var(--color-white);\n border-radius: theme('borderRadius.DEFAULT');\n color: var(--color-blue-500);\n height: theme('spacing.9');\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: theme('spacing.9');\n }\n\n .root :deep(.carousel__icon:hover) {\n background-color: var(--color-ice-100);\n color: var(--color-blue-700);\n }\n\n .root :deep(.carousel__next) {\n padding-right: theme('spacing.9');\n }\n\n .root :deep(.carousel__next--disabled) {\n display: none;\n }\n\n .root :deep(.carousel__prev) {\n padding-left: theme('spacing.9');\n }\n\n .root :deep(.carousel__prev--disabled) {\n display: none;\n }\n\n .pagination-dot {\n height: 4px;\n margin-right: 2px;\n width: 4px;\n }\n</style>\n"],"names":["defaultConfigs","carouselProps","value","getMaxSlideIndex","config","slidesCount","snapAlign","wrapAround","itemsToShow","output","getMinSlideIndex","getNumberInRange","val","max","min","getSlidesToScroll","currentSlide","getSlidesVNodes","vNode","acc","node","_a","Fragment","mapNumberToRange","throttle","fn","limit","inThrottle","args","self","debounce","delay","timerId","i18nFormatter","string","values","key","ARIAComponent","defineComponent","inject","reactive","ref","h","Carousel","props","slots","emit","expose","root","slides","slideWidth","__defaultConfig","breakpoints","currentSlideIndex","prevSlideIndex","middleSlideIndex","maxSlideIndex","minSlideIndex","autoplayTimer","transitionTimer","provide","initDefaultConfigs","bindConfigs","updateBreakpointsConfigs","breakpointsArray","a","b","newConfig","breakpoint","isMatched","handleWindowResize","updateSlidesData","updateSlideWidth","rect","onMounted","nextTick","initAutoplay","onUnmounted","isTouch","startPosition","endPosition","dragged","isHover","isDragging","handleMouseEnter","handleMouseLeave","handleDragStart","event","isSliding","handleDragging","handleDragEnd","deltaX","deltaY","direction","tolerance","draggedSlides","captureClick","e","slideTo","next","resetAutoplay","slideIndex","currentVal","mappedNumber","prev","nav","slidesToScroll","computed","trackStyle","xScroll","restartCarousel","prop","watch","data","slotSlides","slotAddons","slotsProps","slidesElements","addonsElements","el","index","slidesBefore","cloneVNode","slidesAfter","trackEl","viewPortEl","IconName","icons","isIconName","candidate","Icon","iconName","iconI18n","path","pathEl","iconTitle","titleEl","Navigation","attrs","slotNext","slotPrev","maxSlide","minSlide","dir","i18n","isRTL","prevButton","nextButton","Slide","isActive","isPrev","isNext","isVisible","__props","useAttrs","classes","useCssModule","carouselRef","__emit","currentIndex","handleUpdateCarouselModelValue","onCarouselInit","onSlideTransition","onSlideClick","slidesInView","__expose","_createVNode","Vue3Carousel.Carousel","_mergeProps","_unref","autoplayInterval","t","pauseAutoplayOnHover","_createBlock","Vue3Carousel.Navigation","_openBlock","_createElementBlock","_Fragment","slide","Vue3Carousel.Slide","_renderSlot","_ctx","_createElementVNode","_normalizeClass","ThumbnailGroup","_renderList","Thumbnail","staticPaginationDots"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/Carousel.vue.d.ts
CHANGED
|
@@ -40,28 +40,28 @@ export declare type CarouselSlideDirection = 'left' | 'right';
|
|
|
40
40
|
|
|
41
41
|
declare const _default: <Slide extends CarouselSlide>(__VLS_props: {
|
|
42
42
|
readonly onClick?: ((slide: Slide) => any) | undefined;
|
|
43
|
-
itemsToShow?: number | undefined;
|
|
44
|
-
itemsToScroll?: number | undefined;
|
|
45
|
-
pauseAutoplayOnHover?: boolean | undefined;
|
|
46
43
|
readonly onTransition?: ((slide: Slide) => any) | undefined;
|
|
47
44
|
readonly "onTransition:multi"?: ((slides: Slide[]) => any) | undefined;
|
|
48
45
|
slides: Slide[];
|
|
49
46
|
autoplayInterval?: number | undefined;
|
|
50
47
|
hideNavigation?: boolean | undefined;
|
|
51
48
|
hidePagination?: boolean | undefined;
|
|
49
|
+
itemsToScroll?: number | undefined;
|
|
50
|
+
itemsToShow?: number | undefined;
|
|
52
51
|
loop?: boolean | undefined;
|
|
53
52
|
pagination?: "dot" | "tile" | undefined;
|
|
54
53
|
paginationTileRadius?: "standard" | "full" | undefined;
|
|
54
|
+
pauseAutoplayOnHover?: boolean | undefined;
|
|
55
55
|
roundBorders?: boolean | undefined;
|
|
56
56
|
staticPaginationDots?: boolean | undefined;
|
|
57
57
|
} & VNodeProps & AllowedComponentProps & ComponentCustomProps, __VLS_ctx?: {
|
|
58
|
-
attrs: any;
|
|
59
58
|
slots: {
|
|
60
59
|
slide?(_: {
|
|
61
60
|
slide: Slide;
|
|
62
61
|
index: number;
|
|
63
62
|
}): any;
|
|
64
63
|
};
|
|
64
|
+
attrs: any;
|
|
65
65
|
emit: {
|
|
66
66
|
(e: 'click', slide: Slide): void;
|
|
67
67
|
(e: 'transition', slide: Slide): void;
|
|
@@ -74,18 +74,18 @@ slideTo: (index: number) => void;
|
|
|
74
74
|
}>) => void) | undefined, __VLS_setup?: Promise<{
|
|
75
75
|
props: {
|
|
76
76
|
readonly onClick?: ((slide: Slide) => any) | undefined;
|
|
77
|
-
itemsToShow?: number | undefined;
|
|
78
|
-
itemsToScroll?: number | undefined;
|
|
79
|
-
pauseAutoplayOnHover?: boolean | undefined;
|
|
80
77
|
readonly onTransition?: ((slide: Slide) => any) | undefined;
|
|
81
78
|
readonly "onTransition:multi"?: ((slides: Slide[]) => any) | undefined;
|
|
82
79
|
slides: Slide[];
|
|
83
80
|
autoplayInterval?: number | undefined;
|
|
84
81
|
hideNavigation?: boolean | undefined;
|
|
85
82
|
hidePagination?: boolean | undefined;
|
|
83
|
+
itemsToScroll?: number | undefined;
|
|
84
|
+
itemsToShow?: number | undefined;
|
|
86
85
|
loop?: boolean | undefined;
|
|
87
86
|
pagination?: "dot" | "tile" | undefined;
|
|
88
87
|
paginationTileRadius?: "standard" | "full" | undefined;
|
|
88
|
+
pauseAutoplayOnHover?: boolean | undefined;
|
|
89
89
|
roundBorders?: boolean | undefined;
|
|
90
90
|
staticPaginationDots?: boolean | undefined;
|
|
91
91
|
} & VNodeProps & AllowedComponentProps & ComponentCustomProps;
|
|
@@ -112,18 +112,18 @@ slideTo: (index: number) => void;
|
|
|
112
112
|
__ctx?: {
|
|
113
113
|
props: {
|
|
114
114
|
readonly onClick?: ((slide: Slide) => any) | undefined;
|
|
115
|
-
itemsToShow?: number | undefined;
|
|
116
|
-
itemsToScroll?: number | undefined;
|
|
117
|
-
pauseAutoplayOnHover?: boolean | undefined;
|
|
118
115
|
readonly onTransition?: ((slide: Slide) => any) | undefined;
|
|
119
116
|
readonly "onTransition:multi"?: ((slides: Slide[]) => any) | undefined;
|
|
120
117
|
slides: Slide[];
|
|
121
118
|
autoplayInterval?: number | undefined;
|
|
122
119
|
hideNavigation?: boolean | undefined;
|
|
123
120
|
hidePagination?: boolean | undefined;
|
|
121
|
+
itemsToScroll?: number | undefined;
|
|
122
|
+
itemsToShow?: number | undefined;
|
|
124
123
|
loop?: boolean | undefined;
|
|
125
124
|
pagination?: "dot" | "tile" | undefined;
|
|
126
125
|
paginationTileRadius?: "standard" | "full" | undefined;
|
|
126
|
+
pauseAutoplayOnHover?: boolean | undefined;
|
|
127
127
|
roundBorders?: boolean | undefined;
|
|
128
128
|
staticPaginationDots?: boolean | undefined;
|
|
129
129
|
} & VNodeProps & AllowedComponentProps & ComponentCustomProps;
|
package/dist/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../src/components/Checkbox/Checkbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import logger from '@leaflink/snitch';\n import uniqueId from 'lodash-es/uniqueId';\n import { computed, useAttrs, useCssModule, useSlots } from 'vue';\n\n export interface CheckboxProps {\n /**\n * Whether the checkbox is currently checked based on the current value.\n * Either defined by a boolean, or whether `checked` as an array includes `value`.\n */\n checked: boolean | Array<string | number>;\n\n /**\n * Whether the checkbox is in an error state (optional). For error styling without error text.\n *\n * @deprecated Just pass `error-text` instead.\n */\n hasError?: boolean;\n\n /**\n * Unique ID for the checkbox, required for accessibility purposes\n */\n id?: string;\n\n /**\n * Label text to display with checkbox\n */\n label?: string;\n\n /**\n * Error text to display. Replaces `hintText` (if provided) and adds error styling (overrides `hasError`).\n */\n errorText?: string;\n\n /**\n * Displays text below the input; hidden when the isReadOnly prop is truthy.\n */\n hintText?: string;\n\n /**\n * @deprecated use the `checked` prop instead\n */\n modelValue?: boolean | Array<string | number>;\n\n /**\n * The value of the checkbox.\n */\n value?: string | number;\n\n /**\n * Whether the checkbox is disabled.\n */\n disabled?: boolean;\n }\n\n defineOptions({\n name: 'll-checkbox',\n inheritAttrs: false,\n });\n\n const props = withDefaults(defineProps<CheckboxProps>(), {\n checked: false,\n errorId: undefined,\n errorText: '',\n hasError: false,\n hintText: '',\n id: undefined,\n label: undefined,\n modelValue: undefined,\n value: undefined,\n disabled: false,\n });\n\n const attrs = useAttrs();\n const slots = useSlots();\n const classes = useCssModule();\n\n const emit = defineEmits<{\n (e: 'update:checked', value: CheckboxProps['checked']): void;\n }>();\n\n if (props.modelValue !== undefined) {\n throw new Error('ll-checkbox: use :checked or v-model:checked instead of :model-value and v-model.');\n }\n\n if (typeof props.value === 'boolean') {\n logger.warn('ll-checkbox: use `checked` to toggle the state; `value` is what will be set if `checked` is true');\n }\n\n if (attrs.onChange) {\n throw new Error('ll-checkbox: use the @update:checked event instead of @change.');\n }\n\n const inputAttrs = computed(() => {\n const tempAttrs = { ...attrs };\n\n delete tempAttrs['data-test'];\n delete tempAttrs.class;\n\n return tempAttrs;\n });\n\n const internalValue = computed({\n get() {\n return props.checked;\n },\n set(value) {\n emit('update:checked', value);\n },\n });\n\n const internalHasError = computed(() => !!props.errorText || props.hasError);\n const checkboxId = computed(() => props.id || uniqueId('checkbox-'));\n const checkboxErrorId = computed(() => (props.errorText ? uniqueId('checkbox-error-') : undefined));\n</script>\n\n<template>\n <div\n class=\"stash-checkbox tw-relative tw-m-0\"\n :class=\"[\n attrs.class,\n {\n 'stash-checkbox--checked': !!internalValue,\n [`stash-checkbox--has-error ${classes['has-error']}`]: internalHasError,\n },\n ]\"\n :data-test=\"attrs['data-test'] || 'stash-checkbox'\"\n >\n <input\n :id=\"checkboxId\"\n v-model=\"internalValue\"\n :aria-invalid=\"!!props.errorText\"\n :aria-errormessage=\"checkboxErrorId\"\n :disabled=\"props.disabled\"\n class=\"tw-sr-only lg:tw-m-0\"\n :class=\"classes.input\"\n type=\"checkbox\"\n :value=\"value\"\n v-bind=\"inputAttrs\"\n />\n\n <label\n data-test=\"stash-checkbox|label\"\n class=\"stash-checkbox__label tw-relative tw-inline-block tw-min-h-9 tw-cursor-pointer tw-overflow-visible tw-py-1.5 tw-pl-8 tw-align-top tw-text-sm tw-font-normal tw-leading-6\"\n :class=\"[\n classes.label,\n {\n 'tw-text-ice-900': !internalHasError && !props.disabled,\n 'tw-text-red-500': internalHasError,\n 'tw-text-ice-500': props.disabled,\n },\n ]\"\n :for=\"checkboxId\"\n >\n <slot>\n {{ label }}\n </slot>\n </label>\n\n <span\n v-if=\"props.errorText\"\n :id=\"checkboxErrorId\"\n class=\"stash-checkbox__error-text tw-ml-8 tw-block tw-whitespace-pre-line tw-text-xs tw-text-red-500\"\n data-test=\"stash-checkbox|error\"\n >\n {{ props.errorText }}\n </span>\n <span\n v-else-if=\"props.hintText || slots.hint\"\n class=\"stash-checkbox__hint-text tw-ml-8 tw-block tw-whitespace-pre-line tw-text-xs\"\n :class=\"{ 'tw-text-ice-500': props.disabled }\"\n data-test=\"stash-checkbox|hint\"\n >\n <!-- @slot for displaying hint text -->\n <slot name=\"hint\">{{ props.hintText }}</slot>\n </span>\n </div>\n</template>\n\n<style module>\n .input:disabled + .label {\n cursor: auto;\n }\n\n .label::before {\n content: '';\n border: 1px solid var(--color-ice-500);\n display: inline-block;\n vertical-align: top;\n }\n\n .label::before,\n .label::after {\n border-radius: theme('borderRadius.DEFAULT');\n height: 20px;\n left: 0;\n position: absolute;\n top: theme('spacing[1.5]');\n width: 20px;\n }\n\n .has-error .label::before,\n .has-error .input {\n border-color: var(--color-red-500);\n }\n\n .input:indeterminate + .label::after {\n content: url('data:image/svg+xml; utf8, <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 10.4C6 10.1791 6.17909 10 6.4 10H17.6C17.8209 10 18 10.1791 18 10.4V12.6C18 12.8209 17.8209 13 17.6 13H6.4C6.17909 13 6 12.8209 6 12.6V10.4Z\" fill=\"white\"/></svg>');\n }\n\n .input:checked + .label::after {\n content: url('data:image/svg+xml; utf8, <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.89 8.281a.723.723 0 0 1 .22.531.723.723 0 0 1-.22.532l-6.718 6.719a.723.723 0 0 1-.531.218.723.723 0 0 1-.532-.218l-3.89-3.891A.723.723 0 0 1 6 11.64c0-.209.073-.386.219-.532l1.062-1.062a.723.723 0 0 1 .532-.219.72.72 0 0 1 .53.219l2.298 2.305 5.125-5.133a.723.723 0 0 1 .53-.219c.21 0 .386.073.532.219l1.063 1.062z\" fill=\"white\"/></svg>');\n background: var(--color-blue-500);\n height: 20px;\n width: 20px;\n top: theme('spacing[1.5]');\n }\n\n .input:checked + .label::before,\n .input:indeterminate + .label::before {\n background: var(--color-blue-500);\n border-color: var(--color-blue-500);\n }\n\n .input:disabled + .label::before,\n .input:disabled + .label::after {\n background: var(--color-ice-100);\n border: 1px solid var(--color-ice-500);\n }\n\n .input:disabled:is(:checked, :indeterminate) + .label::after {\n background: var(--color-ice-500);\n }\n\n .input:not(:disabled, :checked, :indeterminate) + .label:hover::before {\n border-color: var(--color-blue-500);\n }\n</style>\n"],"names":["props","__props","attrs","useAttrs","slots","useSlots","classes","useCssModule","emit","__emit","logger","inputAttrs","computed","tempAttrs","internalValue","value","internalHasError","checkboxId","uniqueId","checkboxErrorId"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4DE,UAAMA,IAAQC,GAaRC,IAAQC,
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../src/components/Checkbox/Checkbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import logger from '@leaflink/snitch';\n import uniqueId from 'lodash-es/uniqueId';\n import { computed, useAttrs, useCssModule, useSlots } from 'vue';\n\n export interface CheckboxProps {\n /**\n * Whether the checkbox is currently checked based on the current value.\n * Either defined by a boolean, or whether `checked` as an array includes `value`.\n */\n checked: boolean | Array<string | number>;\n\n /**\n * Whether the checkbox is in an error state (optional). For error styling without error text.\n *\n * @deprecated Just pass `error-text` instead.\n */\n hasError?: boolean;\n\n /**\n * Unique ID for the checkbox, required for accessibility purposes\n */\n id?: string;\n\n /**\n * Label text to display with checkbox\n */\n label?: string;\n\n /**\n * Error text to display. Replaces `hintText` (if provided) and adds error styling (overrides `hasError`).\n */\n errorText?: string;\n\n /**\n * Displays text below the input; hidden when the isReadOnly prop is truthy.\n */\n hintText?: string;\n\n /**\n * @deprecated use the `checked` prop instead\n */\n modelValue?: boolean | Array<string | number>;\n\n /**\n * The value of the checkbox.\n */\n value?: string | number;\n\n /**\n * Whether the checkbox is disabled.\n */\n disabled?: boolean;\n }\n\n defineOptions({\n name: 'll-checkbox',\n inheritAttrs: false,\n });\n\n const props = withDefaults(defineProps<CheckboxProps>(), {\n checked: false,\n errorId: undefined,\n errorText: '',\n hasError: false,\n hintText: '',\n id: undefined,\n label: undefined,\n modelValue: undefined,\n value: undefined,\n disabled: false,\n });\n\n const attrs = useAttrs();\n const slots = useSlots();\n const classes = useCssModule();\n\n const emit = defineEmits<{\n (e: 'update:checked', value: CheckboxProps['checked']): void;\n }>();\n\n if (props.modelValue !== undefined) {\n throw new Error('ll-checkbox: use :checked or v-model:checked instead of :model-value and v-model.');\n }\n\n if (typeof props.value === 'boolean') {\n logger.warn('ll-checkbox: use `checked` to toggle the state; `value` is what will be set if `checked` is true');\n }\n\n if (attrs.onChange) {\n throw new Error('ll-checkbox: use the @update:checked event instead of @change.');\n }\n\n const inputAttrs = computed(() => {\n const tempAttrs = { ...attrs };\n\n delete tempAttrs['data-test'];\n delete tempAttrs.class;\n\n return tempAttrs;\n });\n\n const internalValue = computed({\n get() {\n return props.checked;\n },\n set(value) {\n emit('update:checked', value);\n },\n });\n\n const internalHasError = computed(() => !!props.errorText || props.hasError);\n const checkboxId = computed(() => props.id || uniqueId('checkbox-'));\n const checkboxErrorId = computed(() => (props.errorText ? uniqueId('checkbox-error-') : undefined));\n</script>\n\n<template>\n <div\n class=\"stash-checkbox tw-relative tw-m-0\"\n :class=\"[\n attrs.class,\n {\n 'stash-checkbox--checked': !!internalValue,\n [`stash-checkbox--has-error ${classes['has-error']}`]: internalHasError,\n },\n ]\"\n :data-test=\"attrs['data-test'] || 'stash-checkbox'\"\n >\n <input\n :id=\"checkboxId\"\n v-model=\"internalValue\"\n :aria-invalid=\"!!props.errorText\"\n :aria-errormessage=\"checkboxErrorId\"\n :disabled=\"props.disabled\"\n class=\"tw-sr-only lg:tw-m-0\"\n :class=\"classes.input\"\n type=\"checkbox\"\n :value=\"value\"\n v-bind=\"inputAttrs\"\n />\n\n <label\n data-test=\"stash-checkbox|label\"\n class=\"stash-checkbox__label tw-relative tw-inline-block tw-min-h-9 tw-cursor-pointer tw-overflow-visible tw-py-1.5 tw-pl-8 tw-align-top tw-text-sm tw-font-normal tw-leading-6\"\n :class=\"[\n classes.label,\n {\n 'tw-text-ice-900': !internalHasError && !props.disabled,\n 'tw-text-red-500': internalHasError,\n 'tw-text-ice-500': props.disabled,\n },\n ]\"\n :for=\"checkboxId\"\n >\n <slot>\n {{ label }}\n </slot>\n </label>\n\n <span\n v-if=\"props.errorText\"\n :id=\"checkboxErrorId\"\n class=\"stash-checkbox__error-text tw-ml-8 tw-block tw-whitespace-pre-line tw-text-xs tw-text-red-500\"\n data-test=\"stash-checkbox|error\"\n >\n {{ props.errorText }}\n </span>\n <span\n v-else-if=\"props.hintText || slots.hint\"\n class=\"stash-checkbox__hint-text tw-ml-8 tw-block tw-whitespace-pre-line tw-text-xs\"\n :class=\"{ 'tw-text-ice-500': props.disabled }\"\n data-test=\"stash-checkbox|hint\"\n >\n <!-- @slot for displaying hint text -->\n <slot name=\"hint\">{{ props.hintText }}</slot>\n </span>\n </div>\n</template>\n\n<style module>\n .input:disabled + .label {\n cursor: auto;\n }\n\n .label::before {\n content: '';\n border: 1px solid var(--color-ice-500);\n display: inline-block;\n vertical-align: top;\n }\n\n .label::before,\n .label::after {\n border-radius: theme('borderRadius.DEFAULT');\n height: 20px;\n left: 0;\n position: absolute;\n top: theme('spacing[1.5]');\n width: 20px;\n }\n\n .has-error .label::before,\n .has-error .input {\n border-color: var(--color-red-500);\n }\n\n .input:indeterminate + .label::after {\n content: url('data:image/svg+xml; utf8, <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 10.4C6 10.1791 6.17909 10 6.4 10H17.6C17.8209 10 18 10.1791 18 10.4V12.6C18 12.8209 17.8209 13 17.6 13H6.4C6.17909 13 6 12.8209 6 12.6V10.4Z\" fill=\"white\"/></svg>');\n }\n\n .input:checked + .label::after {\n content: url('data:image/svg+xml; utf8, <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.89 8.281a.723.723 0 0 1 .22.531.723.723 0 0 1-.22.532l-6.718 6.719a.723.723 0 0 1-.531.218.723.723 0 0 1-.532-.218l-3.89-3.891A.723.723 0 0 1 6 11.64c0-.209.073-.386.219-.532l1.062-1.062a.723.723 0 0 1 .532-.219.72.72 0 0 1 .53.219l2.298 2.305 5.125-5.133a.723.723 0 0 1 .53-.219c.21 0 .386.073.532.219l1.063 1.062z\" fill=\"white\"/></svg>');\n background: var(--color-blue-500);\n height: 20px;\n width: 20px;\n top: theme('spacing[1.5]');\n }\n\n .input:checked + .label::before,\n .input:indeterminate + .label::before {\n background: var(--color-blue-500);\n border-color: var(--color-blue-500);\n }\n\n .input:disabled + .label::before,\n .input:disabled + .label::after {\n background: var(--color-ice-100);\n border: 1px solid var(--color-ice-500);\n }\n\n .input:disabled:is(:checked, :indeterminate) + .label::after {\n background: var(--color-ice-500);\n }\n\n .input:not(:disabled, :checked, :indeterminate) + .label:hover::before {\n border-color: var(--color-blue-500);\n }\n</style>\n"],"names":["props","__props","attrs","useAttrs","slots","useSlots","classes","useCssModule","emit","__emit","logger","inputAttrs","computed","tempAttrs","internalValue","value","internalHasError","checkboxId","uniqueId","checkboxErrorId","_createElementBlock","_unref","_withDirectives","_createElementVNode","_mergeProps","$event","_hoisted_2","_renderSlot","_ctx","label","_toDisplayString","_hoisted_4","_normalizeClass","_createTextVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4DE,UAAMA,IAAQC,GAaRC,IAAQC,EAAA,GACRC,IAAQC,EAAA,GACRC,IAAUC,EAAA,GAEVC,IAAOC;AAIb,QAAIT,EAAM,eAAe;AACvB,YAAM,IAAI,MAAM,mFAAmF;AAOrG,QAJI,OAAOA,EAAM,SAAU,aACzBU,EAAO,KAAK,kGAAkG,GAG5GR,EAAM;AACR,YAAM,IAAI,MAAM,gEAAgE;AAGlF,UAAMS,IAAaC,EAAS,MAAM;AAChC,YAAMC,IAAY,EAAE,GAAGX,EAAA;AAEvB,oBAAOW,EAAU,WAAW,GAC5B,OAAOA,EAAU,OAEVA;AAAA,IACT,CAAC,GAEKC,IAAgBF,EAAS;AAAA,MAC7B,MAAM;AACJ,eAAOZ,EAAM;AAAA,MACf;AAAA,MACA,IAAIe,GAAO;AACT,QAAAP,EAAK,kBAAkBO,CAAK;AAAA,MAC9B;AAAA,IAAA,CACD,GAEKC,IAAmBJ,EAAS,MAAM,CAAC,CAACZ,EAAM,aAAaA,EAAM,QAAQ,GACrEiB,IAAaL,EAAS,MAAMZ,EAAM,MAAMkB,EAAS,WAAW,CAAC,GAC7DC,IAAkBP,EAAS,MAAOZ,EAAM,YAAYkB,EAAS,iBAAiB,IAAI,MAAU;2BAIlGE,EA2DM,OAAA;AAAA,MA1DJ,UAAM,qCAAmC;AAAA,QACzBC,EAAAnB,CAAA,EAAM;AAAA;uCAAoDY,EAAA;AAAA,UAAqD,CAAA,6BAAAO,EAAAf,CAAA,mBAAyBU,EAAA;AAAA,QAAA;AAAA;MAOvJ,aAAWK,EAAAnB,CAAA,EAAK,WAAA,KAAA;AAAA,IAAA;MAEjBoB,EAAAC,EAWE,SAXFC,EAWE;AAAA,QAVC,IAAIP,EAAA;AAAA,sDACIH,EAAa,QAAAW;AAAA,QACrB,gBAAY,CAAA,CAAIzB,EAAM;AAAA,QACtB,qBAAmBmB,EAAA;AAAA,QACnB,UAAUnB,EAAM;AAAA,QACjB,OAAK,CAAC,wBACEqB,EAAAf,CAAA,EAAQ,KAAK;AAAA,QACrB,MAAK;AAAA,QACJ,OAAOS,EAAAA;AAAAA,MAAAA,GACAJ,EAAA,KAAU,GAAA,MAAA,IAAAe,CAAA,GAAA;AAAA,YARTZ,EAAA,KAAa;AAAA,MAAA;MAWxBS,EAgBQ,SAAA;AAAA,QAfN,aAAU;AAAA,QACV,UAAM,4KAA0K;AAAA,UAC9JF,EAAAf,CAAA,EAAQ;AAAA;gCAA+CU,EAAA,SAAgB,CAAKhB,EAAM;AAAA,+BAAuCgB,EAAA;AAAA,YAA+C,mBAAAhB,EAAM;AAAA,UAAA;AAAA;QAQ/L,KAAKiB,EAAA;AAAA,MAAA;QAENU,EAEOC,yBAFP,MAEO;AAAA,cADFC,EAAAA,KAAK,GAAA,CAAA;AAAA,QAAA;;MAKJ7B,EAAM,kBADdoB,EAOO,QAAA;AAAA;QALJ,IAAID,EAAA;AAAA,QACL,OAAM;AAAA,QACN,aAAU;AAAA,MAAA,GAEPW,EAAA9B,EAAM,SAAS,GAAA,GAAA+B,CAAA,KAGP/B,EAAM,YAAYqB,EAAAjB,CAAA,EAAM,aADrCgB,EAQO,QAAA;AAAA;QANL,OAAKY,EAAA,CAAC,gFAA8E,EAAA,mBACvDhC,EAAM,SAAA,CAAQ,CAAA;AAAA,QAC3C,aAAU;AAAA,MAAA;QAGV2B,EAA6CC,sBAA7C,MAA6C;AAAA,UAAxBK,EAAAH,EAAA9B,EAAM,QAAQ,GAAA,CAAA;AAAA,QAAA;;;;;;;;;;;"}
|
package/dist/Checkbox.vue.d.ts
CHANGED
|
@@ -1,38 +1,15 @@
|
|
|
1
1
|
import { ComponentOptionsMixin } from 'vue';
|
|
2
2
|
import { ComponentProvideOptions } from 'vue';
|
|
3
3
|
import { DefineComponent } from 'vue';
|
|
4
|
-
import { ExtractPropTypes } from 'vue';
|
|
5
|
-
import { PropType } from 'vue';
|
|
6
4
|
import { PublicProps } from 'vue';
|
|
7
5
|
|
|
8
|
-
declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
9
|
-
|
|
10
|
-
declare type __VLS_Prettify<T> = {
|
|
11
|
-
[K in keyof T]: T[K];
|
|
12
|
-
} & {};
|
|
13
|
-
|
|
14
|
-
declare type __VLS_TypePropsToRuntimeProps<T> = {
|
|
15
|
-
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
16
|
-
type: PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
17
|
-
} : {
|
|
18
|
-
type: PropType<T[K]>;
|
|
19
|
-
required: true;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
declare type __VLS_WithDefaults<P, D> = {
|
|
24
|
-
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
25
|
-
default: D[K];
|
|
26
|
-
}> : P[K];
|
|
27
|
-
};
|
|
28
|
-
|
|
29
6
|
declare type __VLS_WithTemplateSlots<T, S> = T & {
|
|
30
7
|
new (): {
|
|
31
8
|
$slots: S;
|
|
32
9
|
};
|
|
33
10
|
};
|
|
34
11
|
|
|
35
|
-
|
|
12
|
+
declare interface CheckboxProps {
|
|
36
13
|
/**
|
|
37
14
|
* Whether the checkbox is currently checked based on the current value.
|
|
38
15
|
* Either defined by a boolean, or whether `checked` as an array includes `value`.
|
|
@@ -74,43 +51,21 @@ export declare interface CheckboxProps {
|
|
|
74
51
|
disabled?: boolean;
|
|
75
52
|
}
|
|
76
53
|
|
|
77
|
-
declare const _default: __VLS_WithTemplateSlots<DefineComponent<
|
|
78
|
-
checked: boolean;
|
|
79
|
-
|
|
80
|
-
errorText: string;
|
|
81
|
-
hasError: boolean;
|
|
82
|
-
hintText: string;
|
|
83
|
-
id: undefined;
|
|
84
|
-
label: undefined;
|
|
85
|
-
modelValue: undefined;
|
|
86
|
-
value: undefined;
|
|
87
|
-
disabled: boolean;
|
|
88
|
-
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
89
|
-
"update:checked": (value: boolean | (string | number)[]) => void;
|
|
90
|
-
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<CheckboxProps>, {
|
|
91
|
-
checked: boolean;
|
|
92
|
-
errorId: undefined;
|
|
93
|
-
errorText: string;
|
|
94
|
-
hasError: boolean;
|
|
95
|
-
hintText: string;
|
|
96
|
-
id: undefined;
|
|
97
|
-
label: undefined;
|
|
98
|
-
modelValue: undefined;
|
|
99
|
-
value: undefined;
|
|
100
|
-
disabled: boolean;
|
|
101
|
-
}>>> & Readonly<{
|
|
54
|
+
declare const _default: __VLS_WithTemplateSlots<DefineComponent<CheckboxProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
55
|
+
"update:checked": (value: boolean | (string | number)[]) => any;
|
|
56
|
+
}, string, PublicProps, Readonly<CheckboxProps> & Readonly<{
|
|
102
57
|
"onUpdate:checked"?: ((value: boolean | (string | number)[]) => any) | undefined;
|
|
103
58
|
}>, {
|
|
104
|
-
disabled: boolean;
|
|
105
|
-
label: string;
|
|
106
59
|
id: string;
|
|
60
|
+
label: string;
|
|
61
|
+
value: string | number;
|
|
62
|
+
disabled: boolean;
|
|
107
63
|
hasError: boolean;
|
|
108
64
|
errorText: string;
|
|
109
65
|
hintText: string;
|
|
110
66
|
modelValue: boolean | (string | number)[];
|
|
111
|
-
value: string | number;
|
|
112
67
|
checked: boolean | (string | number)[];
|
|
113
|
-
}, {}, {}, {}, string, ComponentProvideOptions,
|
|
68
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>, {
|
|
114
69
|
default?(_: {}): any;
|
|
115
70
|
hint?(_: {}): any;
|
|
116
71
|
}>;
|
|
@@ -1,32 +1,9 @@
|
|
|
1
1
|
import { ComponentOptionsMixin } from 'vue';
|
|
2
2
|
import { ComponentProvideOptions } from 'vue';
|
|
3
3
|
import { DefineComponent } from 'vue';
|
|
4
|
-
import { ExtractPropTypes } from 'vue';
|
|
5
|
-
import { PropType } from 'vue';
|
|
6
4
|
import { PublicProps } from 'vue';
|
|
7
5
|
|
|
8
|
-
declare type
|
|
9
|
-
|
|
10
|
-
declare type __VLS_Prettify<T> = {
|
|
11
|
-
[K in keyof T]: T[K];
|
|
12
|
-
} & {};
|
|
13
|
-
|
|
14
|
-
declare type __VLS_TypePropsToRuntimeProps<T> = {
|
|
15
|
-
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
16
|
-
type: PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
17
|
-
} : {
|
|
18
|
-
type: PropType<T[K]>;
|
|
19
|
-
required: true;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
declare type __VLS_WithDefaults<P, D> = {
|
|
24
|
-
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
25
|
-
default: D[K];
|
|
26
|
-
}> : P[K];
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export declare type ChevronToggleDirection = `${ChevronToggleDirections}`;
|
|
6
|
+
declare type ChevronToggleDirection = `${ChevronToggleDirections}`;
|
|
30
7
|
|
|
31
8
|
declare enum ChevronToggleDirections {
|
|
32
9
|
Up = "up",
|
|
@@ -35,21 +12,17 @@ declare enum ChevronToggleDirections {
|
|
|
35
12
|
Right = "right"
|
|
36
13
|
}
|
|
37
14
|
|
|
38
|
-
|
|
15
|
+
declare interface ChevronToggleProps {
|
|
39
16
|
direction?: ChevronToggleDirection;
|
|
40
17
|
}
|
|
41
18
|
|
|
42
|
-
declare const _default: DefineComponent<
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
click: () => void;
|
|
46
|
-
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ChevronToggleProps>, {
|
|
47
|
-
direction: string;
|
|
48
|
-
}>>> & Readonly<{
|
|
19
|
+
declare const _default: DefineComponent<ChevronToggleProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
20
|
+
click: () => any;
|
|
21
|
+
}, string, PublicProps, Readonly<ChevronToggleProps> & Readonly<{
|
|
49
22
|
onClick?: (() => any) | undefined;
|
|
50
23
|
}>, {
|
|
51
|
-
direction: "
|
|
52
|
-
}, {}, {}, {}, string, ComponentProvideOptions,
|
|
24
|
+
direction: "right" | "left" | "up" | "down";
|
|
25
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
53
26
|
export default _default;
|
|
54
27
|
|
|
55
28
|
export { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js","sources":["../src/components/ChevronToggle/ChevronToggle.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue';\n\n import Button from '../Button/Button.vue';\n import { IconName } from '../Icon/Icon.types';\n import Icon from '../Icon/Icon.vue';\n\n enum ChevronToggleDirections {\n Up = 'up',\n Down = 'down',\n Left = 'left',\n Right = 'right',\n }\n\n export type ChevronToggleDirection = `${ChevronToggleDirections}`;\n\n export interface ChevronToggleProps {\n direction?: ChevronToggleDirection;\n }\n\n const props = withDefaults(defineProps<ChevronToggleProps>(), {\n direction: 'down',\n });\n\n const emit = defineEmits<{ (e: 'click'): void }>();\n\n const icon = computed<IconName>(() => `chevron-${props.direction}`);\n</script>\n\n<template>\n <Button class=\"stash-chevron-toggle\" icon data-test=\"stash-chevron-toggle\" @click=\"emit('click')\">\n <Icon :name=\"icon\" :data-test=\"`icon|${icon}`\" />\n </Button>\n</template>\n"],"names":["props","__props","emit","__emit","icon","computed"],"mappings":";;;;;;;;;;AAoBE,UAAMA,IAAQC,GAIRC,IAAOC,GAEPC,IAAOC,EAAmB,MAAM,WAAWL,EAAM,SAAS,EAAE
|
|
1
|
+
{"version":3,"file":"ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js","sources":["../src/components/ChevronToggle/ChevronToggle.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue';\n\n import Button from '../Button/Button.vue';\n import { IconName } from '../Icon/Icon.types';\n import Icon from '../Icon/Icon.vue';\n\n enum ChevronToggleDirections {\n Up = 'up',\n Down = 'down',\n Left = 'left',\n Right = 'right',\n }\n\n export type ChevronToggleDirection = `${ChevronToggleDirections}`;\n\n export interface ChevronToggleProps {\n direction?: ChevronToggleDirection;\n }\n\n const props = withDefaults(defineProps<ChevronToggleProps>(), {\n direction: 'down',\n });\n\n const emit = defineEmits<{ (e: 'click'): void }>();\n\n const icon = computed<IconName>(() => `chevron-${props.direction}`);\n</script>\n\n<template>\n <Button class=\"stash-chevron-toggle\" icon data-test=\"stash-chevron-toggle\" @click=\"emit('click')\">\n <Icon :name=\"icon\" :data-test=\"`icon|${icon}`\" />\n </Button>\n</template>\n"],"names":["props","__props","emit","__emit","icon","computed","_createBlock","Button","_createVNode","Icon"],"mappings":";;;;;;;;;;AAoBE,UAAMA,IAAQC,GAIRC,IAAOC,GAEPC,IAAOC,EAAmB,MAAM,WAAWL,EAAM,SAAS,EAAE;2BAIlEM,EAESC,GAAA;AAAA,MAFD,OAAM;AAAA,MAAuB,MAAA;AAAA,MAAK,aAAU;AAAA,MAAwB,gCAAOL,EAAI,OAAA;AAAA,IAAA;iBACrF,MAAiD;AAAA,QAAjDM,EAAiDC,GAAA;AAAA,UAA1C,MAAML,EAAA;AAAA,UAAO,qBAAmBA,EAAA,KAAI;AAAA,QAAA;;;;;;"}
|
package/dist/Chip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.js","sources":["../src/components/Chip/Chip.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { useCssModule } from 'vue';\n\n import { StashCommonColor, StashPrimaryColorGroup } from '../../../types/colors';\n import colorSchemeUtil from '../../utils/colorScheme';\n import Icon from '../Icon/Icon.vue';\n\n defineOptions({\n name: 'll-chip',\n });\n\n export interface ChipProps {\n /**\n * The color for the chip that determines both the text and bg color. Needs to\n * be one of the brand colors in our design system (not a shade).\n */\n colorScheme?: StashPrimaryColorGroup;\n\n /**\n * The shade of the provided color to use for the background color. This effects the inferred\n * text color unless a specific text color is provided. Currently only `light` and `main`\n * shades are supported. `dark` may be added in the future.\n */\n shade?: 'light' | 'main';\n\n /**\n * The size of the chip.\n */\n size?: 'small' | 'medium';\n\n /**\n * The type of border radius to use.\n */\n radius?: 'none' | 'standard' | 'pill';\n\n /**\n * The background color of the chip. Needs to be one of our design system colors.\n */\n bgColor?: StashCommonColor;\n\n /**\n * The color of the chip text. Needs to be one of our design system colors.\n */\n textColor?: StashCommonColor;\n\n /**\n * Determines if a close icon is surfaced.\n */\n isRemovable?: boolean;\n\n /**\n * Determines if background and text color in Chip should be overidden.\n */\n shouldOverrideColors?: boolean;\n\n /**\n * Determines if the chip is disabled.\n */\n disabled?: boolean;\n }\n\n const props = withDefaults(defineProps<ChipProps>(), {\n size: 'medium',\n radius: 'standard',\n colorScheme: 'ice',\n shade: 'light',\n bgColor: undefined,\n textColor: undefined,\n isRemovable: false,\n shouldOverrideColors: false,\n disabled: false,\n });\n\n const emit = defineEmits<{\n /**\n * Fires on click of the chip.\n */\n (e: 'click'): void;\n /**\n * If `is-removable` is true, fires on click of the close button.\n */\n (e: 'remove'): void;\n }>();\n\n const classes = useCssModule();\n\n function determineConditionalStyles() {\n const { computedBgColor, computedTextColor } = colorSchemeUtil({\n shade: props.shade,\n color: props.colorScheme,\n });\n\n const colorStyles = `tw-text-${props.textColor || computedTextColor} tw-bg-${props.bgColor || computedBgColor}`;\n\n return {\n 'tw-rounded-none': props.radius === 'none',\n 'tw-rounded-sm': props.radius === 'standard',\n 'tw-rounded-full': props.radius === 'pill',\n [colorStyles]: !props.shouldOverrideColors && !props.disabled,\n 'tw-bg-ice-500 tw-text-white': props.disabled,\n };\n }\n</script>\n\n<template>\n <span\n class=\"stash-chip tw-relative tw-inline-flex tw-items-center\"\n :class=\"[\n `stash-chip--radius-${props.radius}`,\n `stash-chip--size-${props.size}`,\n `stash-chip--shade-${props.shade}`,\n classes.root,\n classes.removableChip,\n classes[`size-${props.size}`],\n determineConditionalStyles(),\n ]\"\n data-test=\"stash-chip\"\n @click=\"emit('click')\"\n >\n <span v-if=\"isRemovable\" :class=\"[{ 'tw-mr-6 tw-truncate': props.isRemovable }]\">\n <!-- @slot Chip text -->\n <slot></slot>\n </span>\n\n <!-- Allows easier testing and DOM quering when the chip text isn't nested in an inner span -->\n <!-- @slot Chip text -->\n <slot v-else></slot>\n\n <button\n v-if=\"props.isRemovable\"\n tabindex=\"-1\"\n class=\"stash-chip__remove-button\"\n :class=\"['tw-absolute', classes['remove-button']]\"\n data-test=\"stash-chip|remove-button\"\n :disabled=\"props.disabled\"\n @keypress.enter.prevent=\"emit('remove')\"\n @mousedown.prevent.stop=\"emit('remove')\"\n >\n <Icon data-test=\"icon|close\" name=\"close\" size=\"small\" />\n </button>\n </span>\n</template>\n\n<style module>\n .root {\n /**\n * Applying these styles this way because the rule of thumb is that tailwind classes should\n * always end up taking precedence, so we're converted these specific styles to be generated\n * in a custom class instead, giving `FilterChip` (which wraps `Chip`) the ability to easily\n * override them.\n */\n @apply tw-leading-none tw-font-semibold tw-uppercase tw-text-[10px];\n }\n\n .size-medium {\n height: 20px;\n padding: 2px 8px 0 8px;\n }\n\n .size-small {\n height: 16px;\n padding: 2px 8px 0 8px;\n }\n\n .remove-button {\n border-radius: inherit;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n height: inherit;\n margin-top: -2px; /* used to offset 2px top padding from .size-medium and size-small */\n padding: 0 4px;\n right: 0;\n }\n\n .remove-button:not(:disabled):hover {\n background: rgb(0 0 0 / 10%);\n }\n</style>\n"],"names":["props","__props","emit","__emit","classes","useCssModule","determineConditionalStyles","computedBgColor","computedTextColor","colorSchemeUtil","colorStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;AA6DE,UAAMA,IAAQC,GAYRC,IAAOC,GAWPC,IAAUC,
|
|
1
|
+
{"version":3,"file":"Chip.js","sources":["../src/components/Chip/Chip.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { useCssModule } from 'vue';\n\n import { StashCommonColor, StashPrimaryColorGroup } from '../../../types/colors';\n import colorSchemeUtil from '../../utils/colorScheme';\n import Icon from '../Icon/Icon.vue';\n\n defineOptions({\n name: 'll-chip',\n });\n\n export interface ChipProps {\n /**\n * The color for the chip that determines both the text and bg color. Needs to\n * be one of the brand colors in our design system (not a shade).\n */\n colorScheme?: StashPrimaryColorGroup;\n\n /**\n * The shade of the provided color to use for the background color. This effects the inferred\n * text color unless a specific text color is provided. Currently only `light` and `main`\n * shades are supported. `dark` may be added in the future.\n */\n shade?: 'light' | 'main';\n\n /**\n * The size of the chip.\n */\n size?: 'small' | 'medium';\n\n /**\n * The type of border radius to use.\n */\n radius?: 'none' | 'standard' | 'pill';\n\n /**\n * The background color of the chip. Needs to be one of our design system colors.\n */\n bgColor?: StashCommonColor;\n\n /**\n * The color of the chip text. Needs to be one of our design system colors.\n */\n textColor?: StashCommonColor;\n\n /**\n * Determines if a close icon is surfaced.\n */\n isRemovable?: boolean;\n\n /**\n * Determines if background and text color in Chip should be overidden.\n */\n shouldOverrideColors?: boolean;\n\n /**\n * Determines if the chip is disabled.\n */\n disabled?: boolean;\n }\n\n const props = withDefaults(defineProps<ChipProps>(), {\n size: 'medium',\n radius: 'standard',\n colorScheme: 'ice',\n shade: 'light',\n bgColor: undefined,\n textColor: undefined,\n isRemovable: false,\n shouldOverrideColors: false,\n disabled: false,\n });\n\n const emit = defineEmits<{\n /**\n * Fires on click of the chip.\n */\n (e: 'click'): void;\n /**\n * If `is-removable` is true, fires on click of the close button.\n */\n (e: 'remove'): void;\n }>();\n\n const classes = useCssModule();\n\n function determineConditionalStyles() {\n const { computedBgColor, computedTextColor } = colorSchemeUtil({\n shade: props.shade,\n color: props.colorScheme,\n });\n\n const colorStyles = `tw-text-${props.textColor || computedTextColor} tw-bg-${props.bgColor || computedBgColor}`;\n\n return {\n 'tw-rounded-none': props.radius === 'none',\n 'tw-rounded-sm': props.radius === 'standard',\n 'tw-rounded-full': props.radius === 'pill',\n [colorStyles]: !props.shouldOverrideColors && !props.disabled,\n 'tw-bg-ice-500 tw-text-white': props.disabled,\n };\n }\n</script>\n\n<template>\n <span\n class=\"stash-chip tw-relative tw-inline-flex tw-items-center\"\n :class=\"[\n `stash-chip--radius-${props.radius}`,\n `stash-chip--size-${props.size}`,\n `stash-chip--shade-${props.shade}`,\n classes.root,\n classes.removableChip,\n classes[`size-${props.size}`],\n determineConditionalStyles(),\n ]\"\n data-test=\"stash-chip\"\n @click=\"emit('click')\"\n >\n <span v-if=\"isRemovable\" :class=\"[{ 'tw-mr-6 tw-truncate': props.isRemovable }]\">\n <!-- @slot Chip text -->\n <slot></slot>\n </span>\n\n <!-- Allows easier testing and DOM quering when the chip text isn't nested in an inner span -->\n <!-- @slot Chip text -->\n <slot v-else></slot>\n\n <button\n v-if=\"props.isRemovable\"\n tabindex=\"-1\"\n class=\"stash-chip__remove-button\"\n :class=\"['tw-absolute', classes['remove-button']]\"\n data-test=\"stash-chip|remove-button\"\n :disabled=\"props.disabled\"\n @keypress.enter.prevent=\"emit('remove')\"\n @mousedown.prevent.stop=\"emit('remove')\"\n >\n <Icon data-test=\"icon|close\" name=\"close\" size=\"small\" />\n </button>\n </span>\n</template>\n\n<style module>\n .root {\n /**\n * Applying these styles this way because the rule of thumb is that tailwind classes should\n * always end up taking precedence, so we're converted these specific styles to be generated\n * in a custom class instead, giving `FilterChip` (which wraps `Chip`) the ability to easily\n * override them.\n */\n @apply tw-leading-none tw-font-semibold tw-uppercase tw-text-[10px];\n }\n\n .size-medium {\n height: 20px;\n padding: 2px 8px 0 8px;\n }\n\n .size-small {\n height: 16px;\n padding: 2px 8px 0 8px;\n }\n\n .remove-button {\n border-radius: inherit;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n height: inherit;\n margin-top: -2px; /* used to offset 2px top padding from .size-medium and size-small */\n padding: 0 4px;\n right: 0;\n }\n\n .remove-button:not(:disabled):hover {\n background: rgb(0 0 0 / 10%);\n }\n</style>\n"],"names":["props","__props","emit","__emit","classes","useCssModule","determineConditionalStyles","computedBgColor","computedTextColor","colorSchemeUtil","colorStyles","_createElementBlock","_unref","isRemovable","_normalizeClass","_renderSlot","_ctx","_createVNode","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;AA6DE,UAAMA,IAAQC,GAYRC,IAAOC,GAWPC,IAAUC,EAAA;AAEhB,aAASC,IAA6B;AACpC,YAAM,EAAE,iBAAAC,GAAiB,mBAAAC,EAAA,IAAsBC,EAAgB;AAAA,QAC7D,OAAOT,EAAM;AAAA,QACb,OAAOA,EAAM;AAAA,MAAA,CACd,GAEKU,IAAc,WAAWV,EAAM,aAAaQ,CAAiB,UAAUR,EAAM,WAAWO,CAAe;AAE7G,aAAO;AAAA,QACL,mBAAmBP,EAAM,WAAW;AAAA,QACpC,iBAAiBA,EAAM,WAAW;AAAA,QAClC,mBAAmBA,EAAM,WAAW;AAAA,QACpC,CAACU,CAAW,GAAG,CAACV,EAAM,wBAAwB,CAACA,EAAM;AAAA,QACrD,+BAA+BA,EAAM;AAAA,MAAA;AAAA,IAEzC;2BAIAW,EAmCO,QAAA;AAAA,MAlCL,UAAM,yDAAuD;AAAA,QACvB,sBAAAX,EAAM,MAAM;AAAA,QAA8B,oBAAAA,EAAM,IAAI;AAAA,QAA+B,qBAAAA,EAAM,KAAK;AAAA,QAAUY,EAAAR,CAAA,EAAQ;AAAA,QAAYQ,EAAAR,CAAA,EAAQ;AAAA,QAAqBQ,EAAAR,CAAA,EAAO,QAASJ,EAAM,IAAI,EAAA;AAAA,QAAWM,EAAA;AAAA,MAA0B;MAS9P,aAAU;AAAA,MACT,gCAAOJ,EAAI,OAAA;AAAA,IAAA;MAEAW,EAAAA,oBAAZF,EAGO,QAAA;AAAA;QAHmB,OAAKG,EAAA,CAAA,EAAA,uBAA4Bd,EAAM,YAAA,CAAW,CAAA;AAAA,MAAA;QAE1Ee,EAAaC,EAAA,QAAA,SAAA;AAAA,MAAA,SAKfD,EAAoBC,EAAA,QAAA,WAAA,EAAA,KAAA,GAAA;AAAA,MAGZhB,EAAM,oBADdW,EAWS,UAAA;AAAA;QATP,UAAS;AAAA,QACT,OAAKG,EAAA,CAAC,6BAA2B,CAAA,eACTF,EAAAR,CAAA,EAAO,eAAA,CAAA,CAAA,CAAA;AAAA,QAC/B,aAAU;AAAA,QACT,UAAUJ,EAAM;AAAA,QAChB,uCAAwBE,EAAI,QAAA,GAAA,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA,QAC5B,sCAAwBA,EAAI,QAAA,GAAA,CAAA,WAAA,MAAA,CAAA;AAAA,MAAA;QAE7Be,EAAyDC,GAAA;AAAA,UAAnD,aAAU;AAAA,UAAa,MAAK;AAAA,UAAQ,MAAK;AAAA,QAAA;;;;;;;;;;;;"}
|