@getmicdrop/svelte-components 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AboutShow/AboutShow.svelte +22 -123
- package/dist/components/AboutShow/AboutShow.svelte.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.svelte +16 -9
- package/dist/components/Accordion/Accordion.svelte.d.ts +2 -0
- package/dist/components/Accordion/Accordion.svelte.d.ts.map +1 -1
- package/dist/components/Accordion/AccordionItem.svelte +40 -103
- package/dist/components/Accordion/AccordionItem.svelte.d.ts.map +1 -1
- package/dist/components/Alert/Alert.svelte +45 -56
- package/dist/components/Alert/Alert.svelte.d.ts +42 -13
- package/dist/components/Alert/Alert.svelte.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.svelte +56 -0
- package/dist/components/Avatar/Avatar.svelte.d.ts +37 -0
- package/dist/components/Avatar/Avatar.svelte.d.ts.map +1 -0
- package/dist/components/Badges/Badge.stories.svelte +6 -7
- package/dist/components/Badges/Badge.stories.svelte.d.ts +0 -20
- package/dist/components/Badges/Badge.stories.svelte.d.ts.map +1 -1
- package/dist/components/Badges/Badge.svelte +114 -395
- package/dist/components/Badges/Badge.svelte.d.ts +52 -64
- package/dist/components/Badges/Badge.svelte.d.ts.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.stories.svelte +7 -14
- package/dist/components/BottomSheet/BottomSheet.stories.svelte.d.ts +0 -18
- package/dist/components/BottomSheet/BottomSheet.stories.svelte.d.ts.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.svelte +32 -135
- package/dist/components/BottomSheet/BottomSheet.svelte.d.ts +47 -45
- package/dist/components/BottomSheet/BottomSheet.svelte.d.ts.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.spec.js +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.stories.svelte +7 -8
- package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts +0 -9
- package/dist/components/Breadcrumb/Breadcrumb.stories.svelte.d.ts.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.svelte +45 -57
- package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +31 -50
- package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
- package/dist/components/Button/Button.stories.svelte +5 -7
- package/dist/components/Button/Button.stories.svelte.d.ts +0 -32
- package/dist/components/Button/Button.stories.svelte.d.ts.map +1 -1
- package/dist/components/Button/Button.svelte +128 -792
- package/dist/components/Button/Button.svelte.d.ts +60 -37
- package/dist/components/Button/Button.svelte.d.ts.map +1 -1
- package/dist/components/Button/ButtonSaveDemo.svelte +1 -1
- package/dist/components/Calendar/MiniMonthCalendar.svelte +56 -654
- package/dist/components/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
- package/dist/components/Card.spec.js +28 -26
- package/dist/components/Card.stories.svelte +7 -11
- package/dist/components/Card.stories.svelte.d.ts +0 -9
- package/dist/components/Card.stories.svelte.d.ts.map +1 -1
- package/dist/components/Card.svelte +12 -4
- package/dist/components/Card.svelte.d.ts +8 -2
- package/dist/components/Card.svelte.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.svelte +50 -101
- package/dist/components/Checkbox/Checkbox.svelte.d.ts +62 -34
- package/dist/components/Checkbox/Checkbox.svelte.d.ts.map +1 -1
- package/dist/components/CropImage/CropImage.stories.svelte +7 -29
- package/dist/components/CropImage/CropImage.stories.svelte.d.ts +0 -13
- package/dist/components/CropImage/CropImage.stories.svelte.d.ts.map +1 -1
- package/dist/components/CropImage/CropImage.svelte +101 -172
- package/dist/components/CropImage/CropImage.svelte.d.ts.map +1 -1
- package/dist/components/DarkModeToggle.stories.svelte +15 -13
- package/dist/components/DarkModeToggle.stories.svelte.d.ts +0 -5
- package/dist/components/DarkModeToggle.stories.svelte.d.ts.map +1 -1
- package/dist/components/DarkModeToggle.svelte +30 -136
- package/dist/components/DarkModeToggle.svelte.d.ts.map +1 -1
- package/dist/components/DesignSystemAudit.stories.svelte +428 -0
- package/dist/components/{CardAudit.stories.svelte.d.ts → DesignSystemAudit.stories.svelte.d.ts} +4 -9
- package/dist/components/DesignSystemAudit.stories.svelte.d.ts.map +1 -0
- package/dist/components/Drawer/Drawer.svelte +110 -182
- package/dist/components/Drawer/Drawer.svelte.d.ts +58 -116
- package/dist/components/Drawer/Drawer.svelte.d.ts.map +1 -1
- package/dist/components/Dropdown/Dropdown.svelte +164 -203
- package/dist/components/Dropdown/Dropdown.svelte.d.ts +46 -44
- package/dist/components/Dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/components/Dropdown/DropdownItem.svelte +69 -124
- package/dist/components/Dropdown/DropdownItem.svelte.d.ts +43 -39
- package/dist/components/Dropdown/DropdownItem.svelte.d.ts.map +1 -1
- package/dist/components/Dropdown/SelectDropdown.svelte +60 -192
- package/dist/components/Dropdown/SelectDropdown.svelte.d.ts +29 -48
- package/dist/components/Dropdown/SelectDropdown.svelte.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.svelte +6 -47
- package/dist/components/EmptyState/EmptyState.svelte.d.ts.map +1 -1
- package/dist/components/ErrorDisplay.spec.js +3 -3
- package/dist/components/ErrorDisplay.stories.svelte +8 -9
- package/dist/components/ErrorDisplay.stories.svelte.d.ts +0 -35
- package/dist/components/ErrorDisplay.stories.svelte.d.ts.map +1 -1
- package/dist/components/ErrorDisplay.svelte +1 -29
- package/dist/components/ErrorDisplay.svelte.d.ts.map +1 -1
- package/dist/components/FAQs/FAQs.svelte +62 -32
- package/dist/components/FAQs/FAQs.svelte.d.ts +10 -2
- package/dist/components/FAQs/FAQs.svelte.d.ts.map +1 -1
- package/dist/components/FormActions.stories.svelte +8 -9
- package/dist/components/FormActions.stories.svelte.d.ts +0 -30
- package/dist/components/FormActions.stories.svelte.d.ts.map +1 -1
- package/dist/components/FormActions.svelte +3 -3
- package/dist/components/FormValidationSummary.stories.svelte +8 -6
- package/dist/components/FormValidationSummary.stories.svelte.d.ts +0 -5
- package/dist/components/FormValidationSummary.stories.svelte.d.ts.map +1 -1
- package/dist/components/FormValidationSummary.svelte +4 -4
- package/dist/components/Icons/ArrowLeft.svelte.d.ts +2 -2
- package/dist/components/Icons/ArrowRight.svelte.d.ts +2 -2
- package/dist/components/Icons/Availability.svelte.d.ts +2 -2
- package/dist/components/Icons/Back.svelte.d.ts +2 -2
- package/dist/components/Icons/CheckCircle.svelte.d.ts +2 -2
- package/dist/components/Icons/CheckCircleOutline.svelte.d.ts +2 -2
- package/dist/components/Icons/CheckCircleSolid.svelte +15 -0
- package/dist/components/{Badges/BadgeAudit.stories.svelte.d.ts → Icons/CheckCircleSolid.svelte.d.ts} +7 -12
- package/dist/components/Icons/CheckCircleSolid.svelte.d.ts.map +1 -0
- package/dist/components/Icons/CheckOutline.svelte +17 -0
- package/dist/components/{Alert/AlertAudit.stories.svelte.d.ts → Icons/CheckOutline.svelte.d.ts} +7 -12
- package/dist/components/Icons/CheckOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/ChevronDownOutline.svelte +17 -0
- package/dist/components/{Input/InputAudit.stories.svelte.d.ts → Icons/ChevronDownOutline.svelte.d.ts} +7 -12
- package/dist/components/Icons/ChevronDownOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/ChevronLeft.svelte.d.ts +2 -2
- package/dist/components/Icons/ChevronLeftOutline.svelte +17 -0
- package/dist/components/Icons/ChevronLeftOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/ChevronLeftOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/ChevronRight.svelte.d.ts +2 -2
- package/dist/components/Icons/ChevronRightOutline.svelte +17 -0
- package/dist/components/Icons/ChevronRightOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/ChevronRightOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/ChevronUpOutline.svelte +17 -0
- package/dist/components/Icons/ChevronUpOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/ChevronUpOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/CloseCircleOutline.svelte +17 -0
- package/dist/components/Icons/CloseCircleOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/CloseCircleOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/CloseOutline.svelte +17 -0
- package/dist/components/Icons/CloseOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/CloseOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/Copy.svelte.d.ts +2 -2
- package/dist/components/Icons/Cross.svelte.d.ts +2 -2
- package/dist/components/Icons/DotsHorizontalOutline.svelte +15 -0
- package/dist/components/Icons/DotsHorizontalOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/DotsHorizontalOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/DownArrow.svelte.d.ts +2 -2
- package/dist/components/Icons/ErrorCircle.svelte.d.ts +2 -2
- package/dist/components/Icons/ExclamationCircleOutline.svelte +17 -0
- package/dist/components/Icons/ExclamationCircleOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/ExclamationCircleOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/ExclamationTriangleOutline.svelte +17 -0
- package/dist/components/Icons/ExclamationTriangleOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/ExclamationTriangleOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/EyeOutline.svelte +18 -0
- package/dist/components/Icons/EyeOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/EyeOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/EyeSlashOutline.svelte +17 -0
- package/dist/components/Icons/EyeSlashOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/EyeSlashOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/FacebookIcon.svelte.d.ts +2 -2
- package/dist/components/Icons/FileCopyOutline.svelte +17 -0
- package/dist/components/Icons/FileCopyOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/FileCopyOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/Home.svelte.d.ts +2 -2
- package/dist/components/Icons/HomeSolid.svelte +16 -0
- package/dist/components/Icons/HomeSolid.svelte.d.ts +27 -0
- package/dist/components/Icons/HomeSolid.svelte.d.ts.map +1 -0
- package/dist/components/Icons/Icon.stories.svelte +18 -19
- package/dist/components/Icons/Icon.stories.svelte.d.ts +0 -17
- package/dist/components/Icons/Icon.stories.svelte.d.ts.map +1 -1
- package/dist/components/Icons/Icon.svelte.d.ts +2 -2
- package/dist/components/Icons/IconGallery.stories.svelte +29 -27
- package/dist/components/Icons/IconGallery.stories.svelte.d.ts +0 -4
- package/dist/components/Icons/IconGallery.stories.svelte.d.ts.map +1 -1
- package/dist/components/Icons/Info.svelte.d.ts +2 -2
- package/dist/components/Icons/InfoCircleOutline.svelte +17 -0
- package/dist/components/Icons/InfoCircleOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/InfoCircleOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/InstagramIcon.svelte.d.ts +2 -2
- package/dist/components/Icons/LogoInstagram.svelte +18 -0
- package/dist/components/Icons/LogoInstagram.svelte.d.ts +29 -0
- package/dist/components/Icons/LogoInstagram.svelte.d.ts.map +1 -0
- package/dist/components/Icons/Message.svelte.d.ts +2 -2
- package/dist/components/Icons/MinusOutline.svelte +17 -0
- package/dist/components/Icons/MinusOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/MinusOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/MoonIcon.svelte.d.ts +2 -2
- package/dist/components/Icons/More.svelte.d.ts +2 -2
- package/dist/components/Icons/MoreHori.svelte.d.ts +2 -2
- package/dist/components/Icons/Notification.svelte.d.ts +2 -2
- package/dist/components/Icons/Payment.svelte.d.ts +2 -2
- package/dist/components/Icons/PlusOutline.svelte +17 -0
- package/dist/components/Icons/PlusOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/PlusOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/Profile.svelte.d.ts +2 -2
- package/dist/components/Icons/Reload.svelte.d.ts +2 -2
- package/dist/components/Icons/SearchOutline.svelte +17 -0
- package/dist/components/Icons/SearchOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/SearchOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/ShareOutline.svelte +17 -0
- package/dist/components/Icons/ShareOutline.svelte.d.ts +27 -0
- package/dist/components/Icons/ShareOutline.svelte.d.ts.map +1 -0
- package/dist/components/Icons/Shows.svelte.d.ts +2 -2
- package/dist/components/Icons/Signout.svelte.d.ts +2 -2
- package/dist/components/Icons/SunIcon.svelte.d.ts +2 -2
- package/dist/components/Icons/TiktokIcon.svelte.d.ts +2 -2
- package/dist/components/Icons/TwitterIcon.svelte.d.ts +2 -2
- package/dist/components/Icons/index.d.ts +53 -0
- package/dist/components/Icons/index.d.ts.map +1 -0
- package/dist/components/Icons/index.js +59 -0
- package/dist/components/Input/Input.stories.svelte +7 -8
- package/dist/components/Input/Input.stories.svelte.d.ts +0 -53
- package/dist/components/Input/Input.stories.svelte.d.ts.map +1 -1
- package/dist/components/Input/Input.svelte +123 -571
- package/dist/components/Input/Input.svelte.d.ts +110 -94
- package/dist/components/Input/Input.svelte.d.ts.map +1 -1
- package/dist/components/Input/MultiSelect.stories.svelte +9 -12
- package/dist/components/Input/MultiSelect.stories.svelte.d.ts +0 -5
- package/dist/components/Input/MultiSelect.stories.svelte.d.ts.map +1 -1
- package/dist/components/Input/MultiSelect.svelte +78 -416
- package/dist/components/Input/MultiSelect.svelte.d.ts +40 -101
- package/dist/components/Input/MultiSelect.svelte.d.ts.map +1 -1
- package/dist/components/Input/OTPInput.stories.svelte +17 -20
- package/dist/components/Input/OTPInput.stories.svelte.d.ts +0 -21
- package/dist/components/Input/OTPInput.stories.svelte.d.ts.map +1 -1
- package/dist/components/Input/OTPInput.svelte +18 -50
- package/dist/components/Input/OTPInput.svelte.d.ts +36 -45
- package/dist/components/Input/OTPInput.svelte.d.ts.map +1 -1
- package/dist/components/Input/Search.svelte +78 -196
- package/dist/components/Input/Search.svelte.d.ts +65 -36
- package/dist/components/Input/Search.svelte.d.ts.map +1 -1
- package/dist/components/Input/Select.svelte +55 -299
- package/dist/components/Input/Select.svelte.d.ts +46 -44
- package/dist/components/Input/Select.svelte.d.ts.map +1 -1
- package/dist/components/Input/Textarea.svelte +75 -187
- package/dist/components/Input/Textarea.svelte.d.ts +66 -56
- package/dist/components/Input/Textarea.svelte.d.ts.map +1 -1
- package/dist/components/Label/Label.svelte +8 -39
- package/dist/components/Label/Label.svelte.d.ts.map +1 -1
- package/dist/components/Layout/BottomNav.stories.svelte +27 -25
- package/dist/components/Layout/BottomNav.stories.svelte.d.ts +0 -5
- package/dist/components/Layout/BottomNav.stories.svelte.d.ts.map +1 -1
- package/dist/components/Layout/BottomNav.svelte +9 -72
- package/dist/components/Layout/BottomNav.svelte.d.ts.map +1 -1
- package/dist/components/Layout/Header.stories.svelte +7 -8
- package/dist/components/Layout/Header.stories.svelte.d.ts +0 -20
- package/dist/components/Layout/Header.stories.svelte.d.ts.map +1 -1
- package/dist/components/Layout/Header.svelte +59 -353
- package/dist/components/Layout/PageLayout.svelte +2 -2
- package/dist/components/Layout/PageLayout.svelte.d.ts +2 -2
- package/dist/components/Modal/ConfirmationModal.spec.js +3 -3
- package/dist/components/Modal/ConfirmationModal.stories.svelte +7 -12
- package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts +0 -19
- package/dist/components/Modal/ConfirmationModal.stories.svelte.d.ts.map +1 -1
- package/dist/components/Modal/ConfirmationModal.svelte +84 -109
- package/dist/components/Modal/ConfirmationModal.svelte.d.ts +47 -132
- package/dist/components/Modal/ConfirmationModal.svelte.d.ts.map +1 -1
- package/dist/components/Modal/InputModal.svelte +131 -157
- package/dist/components/Modal/InputModal.svelte.d.ts +48 -181
- package/dist/components/Modal/InputModal.svelte.d.ts.map +1 -1
- package/dist/components/Modal/Modal.stories.svelte +13 -11
- package/dist/components/Modal/Modal.stories.svelte.d.ts +0 -5
- package/dist/components/Modal/Modal.stories.svelte.d.ts.map +1 -1
- package/dist/components/Modal/Modal.svelte +60 -237
- package/dist/components/Modal/Modal.svelte.d.ts +41 -56
- package/dist/components/Modal/Modal.svelte.d.ts.map +1 -1
- package/dist/components/Modal/ModalStateManager.svelte +5 -5
- package/dist/components/Modal/ModalTestWrapper.svelte.d.ts +2 -2
- package/dist/components/Modal/StatusModal.svelte +121 -155
- package/dist/components/Modal/StatusModal.svelte.d.ts +47 -126
- package/dist/components/Modal/StatusModal.svelte.d.ts.map +1 -1
- package/dist/components/MonthSwitcher/MonthSwitcher.svelte +21 -99
- package/dist/components/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
- package/dist/components/OrderSummary/OrderSummary.svelte +103 -313
- package/dist/components/OrderSummary/OrderSummary.svelte.d.ts +60 -72
- package/dist/components/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
- package/dist/components/PageLoader.stories.svelte +7 -13
- package/dist/components/PageLoader.stories.svelte.d.ts +0 -26
- package/dist/components/PageLoader.stories.svelte.d.ts.map +1 -1
- package/dist/components/PageLoader.svelte +2 -2
- package/dist/components/Pagination/Pagination.svelte +200 -146
- package/dist/components/Pagination/Pagination.svelte.d.ts +44 -89
- package/dist/components/Pagination/Pagination.svelte.d.ts.map +1 -1
- package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +8 -8
- package/dist/components/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +3 -3
- package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +14 -17
- package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts +0 -33
- package/dist/components/PlaceAutocomplete/PlaceAutocomplete.stories.svelte.d.ts.map +1 -1
- package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte +31 -198
- package/dist/components/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
- package/dist/components/PublicCard/PublicCard.svelte +30 -148
- package/dist/components/PublicCard/PublicCard.svelte.d.ts +32 -14
- package/dist/components/PublicCard/PublicCard.svelte.d.ts.map +1 -1
- package/dist/components/Radio/Radio.svelte +44 -117
- package/dist/components/Radio/Radio.svelte.d.ts +53 -22
- package/dist/components/Radio/Radio.svelte.d.ts.map +1 -1
- package/dist/components/ShowCard/ShowCard.svelte +57 -138
- package/dist/components/ShowCard/ShowCard.svelte.d.ts +36 -30
- package/dist/components/ShowCard/ShowCard.svelte.d.ts.map +1 -1
- package/dist/components/ShowTimeCard/ShowTimeCard.svelte +20 -60
- package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts +34 -20
- package/dist/components/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
- package/dist/components/Skeleton/CardPlaceholder.svelte +98 -0
- package/dist/components/Skeleton/CardPlaceholder.svelte.d.ts +35 -0
- package/dist/components/Skeleton/CardPlaceholder.svelte.d.ts.map +1 -0
- package/dist/components/Skeleton/ImagePlaceholder.svelte +65 -0
- package/dist/components/{Button/ButtonAudit.stories.svelte.d.ts → Skeleton/ImagePlaceholder.svelte.d.ts} +13 -14
- package/dist/components/Skeleton/ImagePlaceholder.svelte.d.ts.map +1 -0
- package/dist/components/Skeleton/ListPlaceholder.svelte +86 -0
- package/dist/components/Skeleton/ListPlaceholder.svelte.d.ts +37 -0
- package/dist/components/Skeleton/ListPlaceholder.svelte.d.ts.map +1 -0
- package/dist/components/Skeleton/Skeleton.svelte +49 -60
- package/dist/components/Skeleton/Skeleton.svelte.d.ts +6 -10
- package/dist/components/Skeleton/Skeleton.svelte.d.ts.map +1 -1
- package/dist/components/Skeleton/index.d.ts +5 -0
- package/dist/components/Skeleton/index.d.ts.map +1 -0
- package/dist/components/Skeleton/index.js +10 -0
- package/dist/components/Spinner/Spinner.stories.svelte +9 -10
- package/dist/components/Spinner/Spinner.stories.svelte.d.ts +0 -4
- package/dist/components/Spinner/Spinner.stories.svelte.d.ts.map +1 -1
- package/dist/components/Spinner/Spinner.svelte +41 -64
- package/dist/components/Spinner/Spinner.svelte.d.ts +6 -4
- package/dist/components/Spinner/Spinner.svelte.d.ts.map +1 -1
- package/dist/components/StatusIndicator/StatusIndicator.svelte +13 -47
- package/dist/components/StatusIndicator/StatusIndicator.svelte.d.ts.map +1 -1
- package/dist/components/Tabs/TabItem.svelte +3 -9
- package/dist/components/Tabs/TabItem.svelte.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.svelte +49 -126
- package/dist/components/Tabs/Tabs.svelte.d.ts +2 -2
- package/dist/components/Tabs/Tabs.svelte.d.ts.map +1 -1
- package/dist/components/Toaster/Toaster.stories.svelte +15 -13
- package/dist/components/Toaster/Toaster.stories.svelte.d.ts +0 -3
- package/dist/components/Toaster/Toaster.stories.svelte.d.ts.map +1 -1
- package/dist/components/Toggle.stories.svelte +14 -15
- package/dist/components/Toggle.stories.svelte.d.ts +0 -14
- package/dist/components/Toggle.stories.svelte.d.ts.map +1 -1
- package/dist/components/Toggle.svelte +54 -76
- package/dist/components/Toggle.svelte.d.ts +47 -17
- package/dist/components/Toggle.svelte.d.ts.map +1 -1
- package/dist/components/Typography/Typography.svelte.d.ts +4 -4
- package/dist/components/ValidationError.stories.svelte +8 -9
- package/dist/components/ValidationError.stories.svelte.d.ts +0 -14
- package/dist/components/ValidationError.stories.svelte.d.ts.map +1 -1
- package/dist/components/ValidationError.svelte +1 -1
- package/dist/components/pages/performers/ModalShowInfo.svelte +7 -61
- package/dist/components/pages/performers/ModalShowInfo.svelte.d.ts.map +1 -1
- package/dist/components/pages/performers/PageBackButton.spec.js +1 -1
- package/dist/components/pages/performers/PageBackButton.stories.svelte +7 -8
- package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts +0 -9
- package/dist/components/pages/performers/PageBackButton.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/performers/PageBackButton.svelte +1 -1
- package/dist/components/pages/performers/SectionHeader.spec.js +2 -2
- package/dist/components/pages/performers/SectionHeader.stories.svelte +13 -14
- package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts +0 -14
- package/dist/components/pages/performers/SectionHeader.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/performers/SectionHeader.svelte +2 -2
- package/dist/components/pages/performers/ShowDetails.spec.js +2 -2
- package/dist/components/pages/performers/ShowDetails.stories.svelte +9 -12
- package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts +0 -10
- package/dist/components/pages/performers/ShowDetails.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/performers/ShowDetails.svelte +11 -11
- package/dist/components/pages/performers/ShowDetails.svelte.d.ts +2 -2
- package/dist/components/pages/performers/ShowItemCard.spec.js +1 -1
- package/dist/components/pages/performers/ShowItemCard.stories.svelte +7 -5
- package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts +0 -16
- package/dist/components/pages/performers/ShowItemCard.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/performers/ShowItemCard.svelte +52 -61
- package/dist/components/pages/performers/ShowItemCard.svelte.d.ts +4 -4
- package/dist/components/pages/performers/SwitchOption.stories.svelte +7 -10
- package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts +0 -13
- package/dist/components/pages/performers/SwitchOption.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/performers/SwitchOption.svelte +3 -3
- package/dist/components/pages/performers/VenueInfo.svelte +6 -60
- package/dist/components/pages/performers/VenueInfo.svelte.d.ts.map +1 -1
- package/dist/components/pages/performers/VenueItemCard.stories.svelte +10 -8
- package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts +0 -10
- package/dist/components/pages/performers/VenueItemCard.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/performers/VenueItemCard.svelte +16 -15
- package/dist/components/pages/performers/VenueItemCard.svelte.d.ts +2 -2
- package/dist/components/pages/performers/VenueItemCard.svelte.d.ts.map +1 -1
- package/dist/components/pages/profile/profile-form.stories.svelte +7 -10
- package/dist/components/pages/profile/profile-form.stories.svelte.d.ts +0 -21
- package/dist/components/pages/profile/profile-form.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/profile/profile-form.svelte +21 -74
- package/dist/components/pages/profile/profile-form.svelte.d.ts.map +1 -1
- package/dist/components/pages/profile/profile-photos.stories.svelte +7 -14
- package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts +0 -4
- package/dist/components/pages/profile/profile-photos.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/profile/profile-photos.svelte +1 -1
- package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte +11 -12
- package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts +0 -22
- package/dist/components/pages/settings/tabs/CustomImageDropzone.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte +44 -57
- package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts +36 -22
- package/dist/components/pages/settings/tabs/CustomImageDropzone.svelte.d.ts.map +1 -1
- package/dist/components/pages/shows/ShowList.stories.svelte +7 -10
- package/dist/components/pages/shows/ShowList.stories.svelte.d.ts +0 -14
- package/dist/components/pages/shows/ShowList.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/shows/TabContent.stories.svelte +7 -10
- package/dist/components/pages/shows/TabContent.stories.svelte.d.ts +0 -18
- package/dist/components/pages/shows/TabContent.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/shows/TabContent.svelte +4 -13
- package/dist/components/pages/shows/TabContent.svelte.d.ts.map +1 -1
- package/dist/components/pages/shows/TabNavigation.stories.svelte +19 -22
- package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts +0 -14
- package/dist/components/pages/shows/TabNavigation.stories.svelte.d.ts.map +1 -1
- package/dist/components/pages/shows/TabNavigation.svelte +9 -50
- package/dist/components/pages/shows/TabNavigation.svelte.d.ts +30 -20
- package/dist/components/pages/shows/TabNavigation.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/package.json +2 -5
- package/dist/components/Alert/AlertAudit.stories.svelte +0 -241
- package/dist/components/Alert/AlertAudit.stories.svelte.d.ts.map +0 -1
- package/dist/components/Badges/BadgeAudit.stories.svelte +0 -238
- package/dist/components/Badges/BadgeAudit.stories.svelte.d.ts.map +0 -1
- package/dist/components/Button/ButtonAudit.stories.svelte +0 -333
- package/dist/components/Button/ButtonAudit.stories.svelte.d.ts.map +0 -1
- package/dist/components/CardAudit.stories.svelte +0 -175
- package/dist/components/CardAudit.stories.svelte.d.ts.map +0 -1
- package/dist/components/Input/InputAudit.stories.svelte +0 -483
- package/dist/components/Input/InputAudit.stories.svelte.d.ts.map +0 -1
- package/dist/components/Input/SelectAudit.stories.svelte +0 -364
- package/dist/components/Input/SelectAudit.stories.svelte.d.ts +0 -32
- package/dist/components/Input/SelectAudit.stories.svelte.d.ts.map +0 -1
- package/dist/components/Modal/ModalAudit.stories.svelte +0 -329
- package/dist/components/Modal/ModalAudit.stories.svelte.d.ts +0 -32
- package/dist/components/Modal/ModalAudit.stories.svelte.d.ts.map +0 -1
|
@@ -1,50 +1,33 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import { fly, fade } from 'svelte/transition';
|
|
3
3
|
import { cubicOut } from 'svelte/easing';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import { createEventDispatcher } from 'svelte';
|
|
5
|
+
import { ChevronDownOutline, CloseOutline } from '../Icons';
|
|
6
6
|
import Spinner from '../Spinner/Spinner.svelte';
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
btnText = 'Checkout',
|
|
32
|
-
promoApplied = false,
|
|
33
|
-
promoDiscount = 0,
|
|
34
|
-
currentPromoRule = null,
|
|
35
|
-
executePurchase = null,
|
|
36
|
-
elements = null,
|
|
37
|
-
venueServiceCharge = {
|
|
38
|
-
serviceFeeCents: 0,
|
|
39
|
-
serviceFeePercentage: 0,
|
|
40
|
-
serviceFeeChargeType: 'both',
|
|
41
|
-
maxServiceFeeCents: 0,
|
|
42
|
-
taxPercentage: 0,
|
|
43
|
-
},
|
|
44
|
-
onpriceupdate
|
|
45
|
-
} = $props();
|
|
46
|
-
|
|
47
|
-
let feeFor = $derived((price) => {
|
|
8
|
+
export let loading = false;
|
|
9
|
+
export let quantities = {};
|
|
10
|
+
export let eventTickets = [];
|
|
11
|
+
|
|
12
|
+
export let checkoutTicket = null;
|
|
13
|
+
export let isAgreed = true;
|
|
14
|
+
export let btnText = 'Checkout';
|
|
15
|
+
export let promoApplied = false;
|
|
16
|
+
export let promoDiscount = 0;
|
|
17
|
+
export let currentPromoRule = null;
|
|
18
|
+
|
|
19
|
+
export let executePurchase = null;
|
|
20
|
+
export let elements = null;
|
|
21
|
+
|
|
22
|
+
export let venueServiceCharge = {
|
|
23
|
+
serviceFeeCents: 0,
|
|
24
|
+
serviceFeePercentage: 0,
|
|
25
|
+
serviceFeeChargeType: 'both', // 'both', 'percent', or 'flat'
|
|
26
|
+
maxServiceFeeCents: 0, // 0 means no cap
|
|
27
|
+
taxPercentage: 0, // Default 0% - only charge tax if venue has set it
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
$: feeFor = price => {
|
|
48
31
|
const chargeType = venueServiceCharge.serviceFeeChargeType || 'both';
|
|
49
32
|
let fee = 0;
|
|
50
33
|
|
|
@@ -63,22 +46,31 @@
|
|
|
63
46
|
}
|
|
64
47
|
|
|
65
48
|
return fee;
|
|
66
|
-
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const dispatch = createEventDispatcher();
|
|
67
52
|
|
|
68
|
-
let
|
|
53
|
+
let showFooter = false;
|
|
54
|
+
let subtotal = 0;
|
|
55
|
+
let fees = 0;
|
|
56
|
+
let taxes = 0;
|
|
57
|
+
let total = 0;
|
|
58
|
+
let showOrderSummaryOnMobile = false;
|
|
69
59
|
|
|
70
60
|
function makeOrderSummaryVisible() {
|
|
71
61
|
showOrderSummaryOnMobile = !showOrderSummaryOnMobile;
|
|
72
62
|
}
|
|
73
63
|
|
|
74
64
|
// Calculate discounted price for a ticket
|
|
75
|
-
|
|
65
|
+
$: getDiscountedPrice = (ticket) => {
|
|
76
66
|
if (!currentPromoRule?.provideDiscount) return null;
|
|
77
67
|
|
|
78
68
|
// Check if this discount applies to this specific ticket
|
|
69
|
+
// If discountTicketIds is empty or not provided, discount applies to all tickets
|
|
70
|
+
// If discountTicketIds has values, only apply to those specific ticket IDs
|
|
79
71
|
const discountTicketIds = currentPromoRule.discountTicketIds || [];
|
|
80
72
|
if (discountTicketIds.length > 0 && !discountTicketIds.includes(ticket.ID)) {
|
|
81
|
-
return null;
|
|
73
|
+
return null; // This ticket is not eligible for the discount
|
|
82
74
|
}
|
|
83
75
|
|
|
84
76
|
const basePrice = parseFloat(ticket.price) || 0;
|
|
@@ -89,54 +81,53 @@
|
|
|
89
81
|
return Math.max(0, basePrice - discountAmount).toFixed(2);
|
|
90
82
|
}
|
|
91
83
|
return null;
|
|
92
|
-
}
|
|
84
|
+
};
|
|
93
85
|
|
|
94
|
-
|
|
95
|
-
let showFooter = $derived(totalQuantity > 0);
|
|
86
|
+
$: showFooter = totalQuantity > 0;
|
|
96
87
|
|
|
97
88
|
// Calculate subtotal without any discounts (for calculating savings)
|
|
98
|
-
|
|
89
|
+
$: subtotalWithoutDiscount = Object.keys(quantities).reduce((acc, key) => {
|
|
99
90
|
const ticket = eventTickets.find(t => t.ID == key);
|
|
100
91
|
if (!ticket) return acc;
|
|
101
92
|
return acc + quantities[key] * ticket.price;
|
|
102
|
-
}, 0)
|
|
93
|
+
}, 0);
|
|
103
94
|
|
|
104
95
|
// Calculate subtotal with discounts applied
|
|
105
|
-
|
|
96
|
+
$: subtotal = Object.keys(quantities).reduce((acc, key) => {
|
|
106
97
|
const ticket = eventTickets.find(t => t.ID == key);
|
|
107
98
|
if (!ticket) return acc;
|
|
108
99
|
const discountedPrice = getDiscountedPrice(ticket);
|
|
109
100
|
const priceToUse = discountedPrice !== null ? parseFloat(discountedPrice) : ticket.price;
|
|
110
101
|
return acc + quantities[key] * priceToUse;
|
|
111
|
-
}, 0)
|
|
102
|
+
}, 0);
|
|
112
103
|
|
|
113
104
|
// Calculate actual savings from promo code
|
|
114
|
-
|
|
105
|
+
$: promoSavings = currentPromoRule?.provideDiscount ? (subtotalWithoutDiscount - subtotal) : 0;
|
|
115
106
|
|
|
116
|
-
|
|
107
|
+
$: fees = Object.keys(quantities).reduce((acc, key) => {
|
|
117
108
|
const ticket = eventTickets.find(t => t.ID == key);
|
|
118
109
|
if (!ticket || ticket.price == 0) return acc;
|
|
119
110
|
const discountedPrice = getDiscountedPrice(ticket);
|
|
120
111
|
const priceToUse = discountedPrice !== null ? parseFloat(discountedPrice) : ticket.price;
|
|
121
112
|
return acc + quantities[key] * feeFor(priceToUse);
|
|
122
|
-
}, 0)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
});
|
|
113
|
+
}, 0);
|
|
114
|
+
$: taxRate = (venueServiceCharge.taxPercentage || 0) / 100;
|
|
115
|
+
$: taxes = subtotal > 0 ? subtotal * taxRate : 0;
|
|
116
|
+
// When currentPromoRule is used, discounts are already applied per-ticket in subtotal calculation
|
|
117
|
+
// Only subtract promoDiscount separately when NOT using currentPromoRule (legacy behavior)
|
|
118
|
+
// Use Math.max(0, ...) to prevent negative totals in edge cases
|
|
119
|
+
$: total = Math.max(0, subtotal + fees + taxes - (promoApplied && !currentPromoRule?.provideDiscount ? promoDiscount : 0));
|
|
120
|
+
$: dispatch('priceUpdate', { subtotal, fees, taxes, total, promoSavings });
|
|
121
|
+
$: totalQuantity = Object.values(quantities).reduce((sum, q) => sum + q, 0);
|
|
132
122
|
</script>
|
|
133
123
|
|
|
124
|
+
<!-- Desktop Order Summary -->
|
|
134
125
|
<div
|
|
135
126
|
id="orderSummary"
|
|
136
|
-
class="
|
|
127
|
+
class="hidden min-[872px]:block h-fit rounded-lg bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600"
|
|
137
128
|
>
|
|
138
|
-
<div class="
|
|
139
|
-
<h2 class="text-lg font-semibold text-
|
|
129
|
+
<div class="px-5 py-4 border-b border-gray-200 dark:border-gray-600">
|
|
130
|
+
<h2 class="text-lg font-semibold text-gray-900 dark:text-white">
|
|
140
131
|
Order summary
|
|
141
132
|
</h2>
|
|
142
133
|
</div>
|
|
@@ -145,7 +136,7 @@
|
|
|
145
136
|
{#if totalQuantity === 0}
|
|
146
137
|
<!-- Empty state -->
|
|
147
138
|
<div class="py-8 text-center">
|
|
148
|
-
<p class="text-
|
|
139
|
+
<p class="text-gray-500 dark:text-gray-400 text-sm">Select tickets to continue</p>
|
|
149
140
|
</div>
|
|
150
141
|
{:else}
|
|
151
142
|
<!-- Selected tickets - always show original prices -->
|
|
@@ -153,18 +144,18 @@
|
|
|
153
144
|
{#if quantities[key] > 0}
|
|
154
145
|
{#each eventTickets as ticket}
|
|
155
146
|
{#if ticket.ID == key}
|
|
156
|
-
<div class="
|
|
147
|
+
<div class="flex justify-between py-3 border-b border-gray-200/50 dark:border-gray-600/50">
|
|
157
148
|
<div>
|
|
158
|
-
<p class="font-medium text-
|
|
159
|
-
<p class="text-sm text-
|
|
149
|
+
<p class="font-medium text-gray-900 dark:text-white">{ticket.name}</p>
|
|
150
|
+
<p class="text-sm text-gray-500 dark:text-gray-400">
|
|
160
151
|
{#if ticket.price === 0}
|
|
161
|
-
Free
|
|
152
|
+
Free x {quantities[key]}
|
|
162
153
|
{:else}
|
|
163
|
-
${ticket.price.toFixed(2)}
|
|
154
|
+
${ticket.price.toFixed(2)} x {quantities[key]}
|
|
164
155
|
{/if}
|
|
165
156
|
</p>
|
|
166
157
|
</div>
|
|
167
|
-
<div class="font-medium text-
|
|
158
|
+
<div class="font-medium text-gray-900 dark:text-white">
|
|
168
159
|
{ticket.price === 0
|
|
169
160
|
? 'Free'
|
|
170
161
|
: `$${(ticket.price * quantities[key]).toFixed(2)}`}
|
|
@@ -178,48 +169,47 @@
|
|
|
178
169
|
<!-- Price breakdown -->
|
|
179
170
|
<div class="flex flex-col py-3 gap-2 text-sm">
|
|
180
171
|
{#if promoSavings > 0 || (promoDiscount > 0 && !currentPromoRule?.provideDiscount)}
|
|
181
|
-
<div class="flex justify-between text-
|
|
172
|
+
<div class="flex justify-between text-gray-600 dark:text-gray-300">
|
|
182
173
|
<span>Full Price</span><span>${subtotalWithoutDiscount.toFixed(2)}</span>
|
|
183
174
|
</div>
|
|
184
175
|
{/if}
|
|
185
176
|
{#if promoSavings > 0}
|
|
186
|
-
<div class="flex justify-between
|
|
177
|
+
<div class="flex justify-between text-green-600 dark:text-green-500">
|
|
187
178
|
<span>Discount</span><span>-${promoSavings.toFixed(2)}</span>
|
|
188
179
|
</div>
|
|
189
180
|
{:else if promoDiscount > 0 && !currentPromoRule?.provideDiscount}
|
|
190
|
-
<div class="flex justify-between
|
|
181
|
+
<div class="flex justify-between text-green-600 dark:text-green-500">
|
|
191
182
|
<span>Discount</span><span>-${promoDiscount.toFixed(2)}</span>
|
|
192
183
|
</div>
|
|
193
184
|
{/if}
|
|
194
|
-
<div class="flex justify-between text-
|
|
185
|
+
<div class="flex justify-between text-gray-600 dark:text-gray-300">
|
|
195
186
|
<span>Subtotal</span><span>${subtotal.toFixed(2)}</span>
|
|
196
187
|
</div>
|
|
197
|
-
<div class="flex justify-between text-
|
|
188
|
+
<div class="flex justify-between text-gray-600 dark:text-gray-300">
|
|
198
189
|
<span>Fees</span><span>${fees.toFixed(2)}</span>
|
|
199
190
|
</div>
|
|
200
|
-
<div class="flex justify-between text-
|
|
191
|
+
<div class="flex justify-between text-gray-600 dark:text-gray-300">
|
|
201
192
|
<span>Taxes</span><span>${taxes.toFixed(2)}</span>
|
|
202
193
|
</div>
|
|
203
194
|
</div>
|
|
204
195
|
|
|
205
196
|
<!-- Total -->
|
|
206
|
-
<div class="
|
|
197
|
+
<div class="flex justify-between font-semibold text-gray-900 dark:text-white py-4 text-lg border-t border-gray-200 dark:border-gray-600">
|
|
207
198
|
<span>Total</span><span>${total.toFixed(2)}</span>
|
|
208
199
|
</div>
|
|
209
200
|
{/if}
|
|
210
201
|
|
|
211
202
|
<!-- Terms of service -->
|
|
212
203
|
{#if totalQuantity > 0 && btnText === 'Place order'}
|
|
213
|
-
<p class="
|
|
214
|
-
By selecting Place order, I agree to the <a href="https://get-micdrop.com/tos" class="
|
|
204
|
+
<p class="text-xs text-gray-500 dark:text-gray-400 text-center mb-3">
|
|
205
|
+
By selecting Place order, I agree to the <a href="https://get-micdrop.com/tos" class="text-blue-700 dark:text-blue-500 underline hover:opacity-80" target="_blank" rel="noopener noreferrer">terms of service</a>
|
|
215
206
|
</p>
|
|
216
207
|
{/if}
|
|
217
208
|
|
|
218
209
|
<!-- Checkout button -->
|
|
219
210
|
<button
|
|
220
|
-
class="
|
|
221
|
-
|
|
222
|
-
onclick={() => {
|
|
211
|
+
class="w-full h-12 font-semibold rounded-lg flex items-center justify-center transition-colors select-none touch-manipulation {totalQuantity === 0 ? 'bg-gray-200 dark:bg-gray-700 text-gray-500 dark:text-gray-400 cursor-not-allowed' : 'bg-blue-700 dark:bg-blue-600 text-white hover:bg-blue-800 dark:hover:bg-blue-700'}"
|
|
212
|
+
on:click={() => {
|
|
223
213
|
if (totalQuantity === 0) return;
|
|
224
214
|
if (executePurchase) {
|
|
225
215
|
executePurchase(elements);
|
|
@@ -241,8 +231,8 @@
|
|
|
241
231
|
{#if showOrderSummaryOnMobile}
|
|
242
232
|
<!-- Backdrop overlay - dims background -->
|
|
243
233
|
<button
|
|
244
|
-
class="
|
|
245
|
-
|
|
234
|
+
class="min-[872px]:hidden fixed inset-0 bg-black/50 z-40 border-none cursor-pointer"
|
|
235
|
+
on:click={() => (showOrderSummaryOnMobile = false)}
|
|
246
236
|
aria-label="Close order summary"
|
|
247
237
|
transition:fade={{ duration: 200 }}
|
|
248
238
|
></button>
|
|
@@ -250,18 +240,18 @@
|
|
|
250
240
|
<div
|
|
251
241
|
in:fly={{ y: 800, duration: 300, easing: cubicOut }}
|
|
252
242
|
out:fly={{ y: 800, duration: 300, easing: cubicOut }}
|
|
253
|
-
class="
|
|
243
|
+
class="min-[872px]:hidden fixed bottom-0 left-0 w-full overflow-x-hidden overflow-y-auto z-50 max-h-[80vh] rounded-t-lg shadow-xl bg-white dark:bg-gray-800"
|
|
254
244
|
>
|
|
255
|
-
<div class="
|
|
256
|
-
<h2 class="text-xl font-semibold text-
|
|
245
|
+
<div class="flex flex-row justify-between items-center px-5 py-4 border-b border-gray-200 dark:border-gray-600">
|
|
246
|
+
<h2 class="text-xl font-semibold text-gray-900 dark:text-white">
|
|
257
247
|
Order summary
|
|
258
248
|
</h2>
|
|
259
249
|
<button
|
|
260
|
-
|
|
261
|
-
class="
|
|
250
|
+
on:click={() => (showOrderSummaryOnMobile = false)}
|
|
251
|
+
class="transition-colors p-2 rounded-lg text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-700"
|
|
262
252
|
aria-label="Close order summary"
|
|
263
253
|
>
|
|
264
|
-
<
|
|
254
|
+
<CloseOutline class="w-7 h-7" />
|
|
265
255
|
</button>
|
|
266
256
|
</div>
|
|
267
257
|
|
|
@@ -271,18 +261,18 @@
|
|
|
271
261
|
{#if quantities[key] > 0}
|
|
272
262
|
{#each eventTickets as ticket}
|
|
273
263
|
{#if ticket.ID == key}
|
|
274
|
-
<div class="
|
|
264
|
+
<div class="flex justify-between py-4 border-b border-gray-200 dark:border-gray-600">
|
|
275
265
|
<div>
|
|
276
|
-
<p class="font-semibold text-
|
|
277
|
-
<p class="text-sm text-
|
|
266
|
+
<p class="font-semibold text-gray-900 dark:text-white">{ticket.name}</p>
|
|
267
|
+
<p class="text-sm text-gray-500 dark:text-gray-400">
|
|
278
268
|
{#if ticket.price === 0}
|
|
279
|
-
Free
|
|
269
|
+
Free x {quantities[key]}
|
|
280
270
|
{:else}
|
|
281
|
-
${ticket.price.toFixed(2)}
|
|
271
|
+
${ticket.price.toFixed(2)} x {quantities[key]}
|
|
282
272
|
{/if}
|
|
283
273
|
</p>
|
|
284
274
|
</div>
|
|
285
|
-
<div class="font-semibold text-
|
|
275
|
+
<div class="font-semibold text-gray-900 dark:text-white">
|
|
286
276
|
{ticket.price === 0
|
|
287
277
|
? 'Free'
|
|
288
278
|
: `$${(ticket.price * quantities[key]).toFixed(2)}`}
|
|
@@ -293,18 +283,18 @@
|
|
|
293
283
|
{/if}
|
|
294
284
|
{/each}
|
|
295
285
|
|
|
296
|
-
<div class="flex flex-col py-4 gap-3 text-
|
|
286
|
+
<div class="flex flex-col py-4 gap-3 text-gray-600 dark:text-gray-300">
|
|
297
287
|
{#if promoSavings > 0 || (promoDiscount > 0 && !currentPromoRule?.provideDiscount)}
|
|
298
288
|
<div class="flex justify-between">
|
|
299
289
|
<span>Full Price</span><span>${subtotalWithoutDiscount.toFixed(2)}</span>
|
|
300
290
|
</div>
|
|
301
291
|
{/if}
|
|
302
292
|
{#if promoSavings > 0}
|
|
303
|
-
<div class="flex justify-between
|
|
293
|
+
<div class="flex justify-between text-green-600 dark:text-green-500">
|
|
304
294
|
<span>Discount</span><span>-${promoSavings.toFixed(2)}</span>
|
|
305
295
|
</div>
|
|
306
296
|
{:else if promoDiscount > 0 && !currentPromoRule?.provideDiscount}
|
|
307
|
-
<div class="flex justify-between
|
|
297
|
+
<div class="flex justify-between text-green-600 dark:text-green-500">
|
|
308
298
|
<span>Discount</span><span>-${promoDiscount.toFixed(2)}</span>
|
|
309
299
|
</div>
|
|
310
300
|
{/if}
|
|
@@ -319,7 +309,7 @@
|
|
|
319
309
|
</div>
|
|
320
310
|
</div>
|
|
321
311
|
|
|
322
|
-
<div class="
|
|
312
|
+
<div class="flex justify-between font-bold text-gray-900 dark:text-white py-5 border-t border-gray-200 dark:border-gray-600">
|
|
323
313
|
<span>Total</span><span>${total.toFixed(2)}</span>
|
|
324
314
|
</div>
|
|
325
315
|
</div>
|
|
@@ -329,20 +319,20 @@
|
|
|
329
319
|
{#if showFooter}
|
|
330
320
|
<div
|
|
331
321
|
transition:fly={{ y: 100, duration: 200 }}
|
|
332
|
-
class="
|
|
322
|
+
class="min-[872px]:hidden fixed bottom-0 left-0 right-0 z-40 bg-white dark:bg-gray-800 border-t border-gray-200 dark:border-gray-600 shadow-xl p-4 pb-[max(16px,calc(env(safe-area-inset-bottom)+8px))] select-none touch-manipulation"
|
|
333
323
|
>
|
|
334
|
-
<div class="
|
|
335
|
-
<button class="
|
|
336
|
-
<span class="
|
|
324
|
+
<div class="flex items-stretch gap-3">
|
|
325
|
+
<button class="flex flex-col justify-between items-start shrink-0 whitespace-nowrap bg-transparent border-none p-0 cursor-pointer touch-manipulation" on:click={makeOrderSummaryVisible}>
|
|
326
|
+
<span class="flex items-center gap-1 text-sm font-normal text-gray-600 dark:text-gray-300">
|
|
337
327
|
{totalQuantity} {totalQuantity > 1 ? 'tickets' : 'ticket'}
|
|
338
|
-
<
|
|
328
|
+
<ChevronDownOutline class="w-4 h-4 text-gray-500 dark:text-gray-400 transition-transform duration-200 {showOrderSummaryOnMobile ? 'rotate-180' : ''}" />
|
|
339
329
|
</span>
|
|
340
|
-
<span class="
|
|
330
|
+
<span class="text-xl font-bold text-gray-900 dark:text-white">${total.toFixed(2)}</span>
|
|
341
331
|
</button>
|
|
342
332
|
|
|
343
333
|
<button
|
|
344
|
-
class="
|
|
345
|
-
|
|
334
|
+
class="flex-1 min-w-36 h-12 rounded-lg text-sm font-semibold touch-manipulation flex items-center justify-center {totalQuantity === 0 || !isAgreed ? 'bg-gray-200 dark:bg-gray-700 text-gray-500 dark:text-gray-400 cursor-not-allowed' : 'bg-blue-700 dark:bg-blue-600 text-white hover:bg-blue-800 dark:hover:bg-blue-700'}"
|
|
335
|
+
on:click={() => {
|
|
346
336
|
if (executePurchase) {
|
|
347
337
|
executePurchase(elements);
|
|
348
338
|
} else if (checkoutTicket) {
|
|
@@ -360,203 +350,3 @@
|
|
|
360
350
|
</div>
|
|
361
351
|
</div>
|
|
362
352
|
{/if}
|
|
363
|
-
|
|
364
|
-
<style>
|
|
365
|
-
/* Custom breakpoint at 872px for desktop/mobile switch */
|
|
366
|
-
.desktop-only {
|
|
367
|
-
display: none;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
.mobile-only {
|
|
371
|
-
display: block;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
@media (min-width: 872px) {
|
|
375
|
-
.desktop-only {
|
|
376
|
-
display: block;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
.mobile-only {
|
|
380
|
-
display: none !important;
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
/* Theme-responsive colors using CSS variables */
|
|
385
|
-
.order-summary {
|
|
386
|
-
background-color: hsl(var(--BG-Primary));
|
|
387
|
-
border: 1px solid hsl(var(--Stroke-Secondary));
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
.summary-header {
|
|
391
|
-
border-bottom: 1px solid hsl(var(--Stroke-Secondary));
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
.text-primary {
|
|
395
|
-
color: hsl(var(--Text-Primary));
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
.text-secondary {
|
|
399
|
-
color: hsl(var(--Text-Secondary));
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
.text-tertiary {
|
|
403
|
-
color: hsl(var(--Text-Tartiary));
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
.ticket-line {
|
|
407
|
-
border-bottom: 1px solid hsl(var(--Stroke-Secondary) / 0.5);
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
.promo-discount-line {
|
|
411
|
-
color: hsl(var(--Accent-Success));
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
.total-line {
|
|
415
|
-
border-top: 1px solid hsl(var(--Stroke-Secondary));
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
.terms-text {
|
|
419
|
-
font-size: 12px;
|
|
420
|
-
color: hsl(var(--Text-Tartiary));
|
|
421
|
-
text-align: center;
|
|
422
|
-
margin: 0 0 12px 0;
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
.terms-link {
|
|
426
|
-
color: hsl(var(--Brand-Primary));
|
|
427
|
-
text-decoration: underline;
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
.terms-link:hover {
|
|
431
|
-
opacity: 0.8;
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
.checkout-btn {
|
|
435
|
-
background-color: hsl(var(--Brand-Primary));
|
|
436
|
-
color: white;
|
|
437
|
-
-moz-user-select: none;
|
|
438
|
-
user-select: none;
|
|
439
|
-
-webkit-user-select: none;
|
|
440
|
-
touch-action: manipulation;
|
|
441
|
-
-webkit-tap-highlight-color: transparent;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
.checkout-btn:hover:not(:disabled) {
|
|
445
|
-
background-color: hsl(var(--Brand-Primary) / 0.9);
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
.checkout-btn.disabled,
|
|
449
|
-
.checkout-btn:disabled {
|
|
450
|
-
background-color: hsl(var(--BG-Quaternary));
|
|
451
|
-
color: hsl(var(--Text-Tartiary));
|
|
452
|
-
cursor: not-allowed;
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
/* Mobile backdrop - dims background behind drawer */
|
|
456
|
-
.mobile-backdrop {
|
|
457
|
-
position: fixed;
|
|
458
|
-
inset: 0;
|
|
459
|
-
background-color: rgba(0, 0, 0, 0.5);
|
|
460
|
-
z-index: 98;
|
|
461
|
-
border: none;
|
|
462
|
-
cursor: pointer;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
/* Mobile summary drawer - stays bright above backdrop */
|
|
466
|
-
.mobile-summary {
|
|
467
|
-
background-color: hsl(var(--BG-Primary));
|
|
468
|
-
max-height: 80vh;
|
|
469
|
-
border-radius: 16px 16px 0 0;
|
|
470
|
-
box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
|
|
471
|
-
z-index: 99;
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
.mobile-summary-header {
|
|
475
|
-
border-bottom: 1px solid hsl(var(--Stroke-Secondary));
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
.close-btn {
|
|
479
|
-
color: hsl(var(--Text-Tartiary));
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
.close-btn:hover {
|
|
483
|
-
color: hsl(var(--Text-Primary));
|
|
484
|
-
background-color: hsl(var(--BG-Secondary));
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
.mobile-ticket-line {
|
|
488
|
-
border-bottom: 1px solid hsl(var(--Stroke-Secondary));
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
.mobile-total {
|
|
492
|
-
border-top: 1px solid hsl(var(--Stroke-Secondary));
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
/* Mobile footer */
|
|
496
|
-
.mobile-footer {
|
|
497
|
-
background-color: hsl(var(--BG-Primary));
|
|
498
|
-
border-top: 1px solid hsl(var(--Stroke-Secondary));
|
|
499
|
-
box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
|
|
500
|
-
padding: 16px;
|
|
501
|
-
padding-bottom: max(16px, calc(env(safe-area-inset-bottom) + 8px));
|
|
502
|
-
-moz-user-select: none;
|
|
503
|
-
user-select: none;
|
|
504
|
-
-webkit-user-select: none;
|
|
505
|
-
touch-action: manipulation;
|
|
506
|
-
-webkit-tap-highlight-color: transparent;
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
.mobile-footer-content {
|
|
510
|
-
display: flex;
|
|
511
|
-
align-items: stretch;
|
|
512
|
-
gap: 12px;
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
.mobile-footer-left {
|
|
516
|
-
display: flex;
|
|
517
|
-
flex-direction: column;
|
|
518
|
-
justify-content: space-between;
|
|
519
|
-
align-items: flex-start;
|
|
520
|
-
flex-shrink: 0;
|
|
521
|
-
white-space: nowrap;
|
|
522
|
-
background: none;
|
|
523
|
-
border: none;
|
|
524
|
-
padding: 0;
|
|
525
|
-
cursor: pointer;
|
|
526
|
-
touch-action: manipulation;
|
|
527
|
-
-webkit-tap-highlight-color: transparent;
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
.mobile-footer-tickets {
|
|
531
|
-
display: flex;
|
|
532
|
-
align-items: center;
|
|
533
|
-
gap: 4px;
|
|
534
|
-
font-size: 14px;
|
|
535
|
-
font-weight: 400;
|
|
536
|
-
color: hsl(var(--Text-Secondary));
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
.mobile-footer-price {
|
|
540
|
-
font-size: 20px;
|
|
541
|
-
font-weight: 700;
|
|
542
|
-
color: hsl(var(--Text-Primary));
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
.mobile-footer-btn {
|
|
546
|
-
flex: 1;
|
|
547
|
-
min-width: 140px;
|
|
548
|
-
height: 48px;
|
|
549
|
-
border-radius: 10px;
|
|
550
|
-
font-size: 14px;
|
|
551
|
-
font-weight: 600;
|
|
552
|
-
touch-action: manipulation;
|
|
553
|
-
-webkit-tap-highlight-color: transparent;
|
|
554
|
-
display: flex;
|
|
555
|
-
align-items: center;
|
|
556
|
-
justify-content: center;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
:global(.chevron-icon) {
|
|
560
|
-
color: hsl(var(--Text-Tartiary));
|
|
561
|
-
}
|
|
562
|
-
</style>
|