@getmicdrop/svelte-components 5.17.3 → 5.18.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/calendar/AboutShow/AboutShow.svelte +187 -187
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +780 -782
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
- package/dist/calendar/FAQs/FAQs.svelte +77 -77
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +125 -126
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
- package/dist/calendar/OrderSummary/OrderSummary.svelte +457 -457
- package/dist/calendar/PublicCard/PublicCard.svelte +155 -146
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowCard/ShowCard.spec.js +1 -7
- package/dist/calendar/ShowCard/ShowCard.svelte +166 -157
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +72 -61
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts +2 -0
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
- package/dist/components/Heading.svelte +60 -60
- package/dist/components/Layout/AppShell.svelte +104 -104
- package/dist/components/Layout/ContentSection.svelte +80 -80
- package/dist/components/Layout/Grid.svelte +4 -4
- package/dist/components/Layout/Heading.svelte +81 -81
- package/dist/components/Layout/PageContainer.svelte +69 -69
- package/dist/components/Layout/Responsive.svelte +75 -75
- package/dist/components/Layout/Section.svelte +80 -80
- package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
- package/dist/components/Layout/ShowOnMobile.svelte +37 -37
- package/dist/components/Layout/Sidebar.svelte +108 -108
- package/dist/components/Layout/Stack.spec.js +1 -1
- package/dist/components/Layout/Stack.svelte +6 -6
- package/dist/components/Layout/Text.svelte +87 -87
- package/dist/components/Layout/TwoColumn.svelte +108 -108
- package/dist/components/Text.svelte +53 -53
- package/dist/config.d.ts +102 -0
- package/dist/config.js +147 -1
- package/dist/constants/validation.js +91 -91
- package/dist/constants/validation.spec.js +64 -64
- package/dist/datetime/README.md +323 -0
- package/dist/datetime/__tests__/format.test.js +1 -1
- package/dist/datetime/__tests__/parse.test.js +1 -1
- package/dist/datetime/__tests__/timezone.test.js +1 -1
- package/dist/datetime/parse.js +1 -1
- package/dist/forms/createFormStore.svelte.js +0 -1
- package/dist/forms/createFormStore.svelte.spec.js +0 -1
- package/dist/index.js +57 -57
- package/dist/index.spec.js +369 -369
- package/dist/messages.d.ts +43 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +57 -0
- package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
- package/dist/patterns/chat/ChatBubble.svelte +95 -95
- package/dist/patterns/chat/ChatContainer.svelte +46 -46
- package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
- package/dist/patterns/chat/ChatInvitationBubble.svelte +37 -37
- package/dist/patterns/chat/ChatInvitationNotice.svelte +27 -27
- package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
- package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
- package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
- package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
- package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
- package/dist/patterns/chat/index.js +22 -22
- package/dist/patterns/data/DataGrid.svelte +45 -45
- package/dist/patterns/data/DataList.svelte +24 -24
- package/dist/patterns/data/DataTable.svelte +36 -36
- package/dist/patterns/forms/FormActions.spec.js +95 -95
- package/dist/patterns/forms/FormActions.stories.svelte +97 -97
- package/dist/patterns/forms/FormActions.svelte +46 -46
- package/dist/patterns/forms/FormGrid.svelte +33 -33
- package/dist/patterns/forms/FormSection.svelte +32 -32
- package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
- package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
- package/dist/patterns/index.js +21 -21
- package/dist/patterns/layout/Sidebar.svelte +39 -39
- package/dist/patterns/layout/index.js +29 -29
- package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
- package/dist/patterns/navigation/BottomNav.svelte +74 -74
- package/dist/patterns/navigation/Header.stories.svelte +77 -77
- package/dist/patterns/navigation/Header.svelte +251 -251
- package/dist/patterns/page/PageHeader.svelte +18 -18
- package/dist/patterns/page/PageLayout.svelte +40 -40
- package/dist/patterns/page/PageLoader.spec.js +57 -57
- package/dist/patterns/page/PageLoader.stories.svelte +137 -137
- package/dist/patterns/page/PageLoader.svelte +24 -24
- package/dist/patterns/page/SectionHeader.svelte +29 -29
- package/dist/presets/badges.js +112 -112
- package/dist/presets/buttons.js +76 -76
- package/dist/presets/index.js +9 -9
- package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
- package/dist/primitives/Accordion/Accordion.svelte +42 -42
- package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
- package/dist/primitives/Alert/Alert.spec.js +173 -173
- package/dist/primitives/Alert/Alert.stories.svelte +88 -88
- package/dist/primitives/Alert/Alert.svelte +27 -27
- package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
- package/dist/primitives/Avatar/Avatar.svelte +66 -66
- package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
- package/dist/primitives/Badges/Badge.spec.js +144 -144
- package/dist/primitives/Badges/Badge.stories.svelte +86 -86
- package/dist/primitives/Badges/Badge.svelte +99 -99
- package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -238
- package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
- package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
- package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +123 -123
- package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +99 -99
- package/dist/primitives/Button/Button.spec.js +225 -225
- package/dist/primitives/Button/Button.stories.svelte +76 -76
- package/dist/primitives/Button/Button.svelte +278 -278
- package/dist/primitives/Button/ButtonGroup.svelte +50 -50
- package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
- package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
- package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
- package/dist/primitives/Card.spec.js +49 -49
- package/dist/primitives/Card.stories.svelte +22 -22
- package/dist/primitives/Card.svelte +28 -28
- package/dist/primitives/CardAction/CardAction.svelte +68 -68
- package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
- package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
- package/dist/primitives/DarkModeToggle.spec.js +390 -390
- package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
- package/dist/primitives/DarkModeToggle.svelte +136 -136
- package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
- package/dist/primitives/Drawer/Drawer.svelte +224 -224
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
- package/dist/primitives/Dropdown/Dropdown.svelte +170 -170
- package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
- package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
- package/dist/primitives/Helper/Helper.svelte +33 -33
- package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
- package/dist/primitives/Icons/ArrowRight.svelte +8 -8
- package/dist/primitives/Icons/Availability.svelte +14 -14
- package/dist/primitives/Icons/Back.svelte +14 -14
- package/dist/primitives/Icons/CheckCircle.svelte +6 -6
- package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
- package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
- package/dist/primitives/Icons/ChevronRight.svelte +4 -4
- package/dist/primitives/Icons/Copy.svelte +15 -15
- package/dist/primitives/Icons/Cross.svelte +5 -5
- package/dist/primitives/Icons/DownArrow.svelte +8 -8
- package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
- package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
- package/dist/primitives/Icons/Home.svelte +15 -15
- package/dist/primitives/Icons/Icon.spec.js +169 -169
- package/dist/primitives/Icons/Icon.stories.svelte +100 -100
- package/dist/primitives/Icons/Icon.svelte +52 -52
- package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
- package/dist/primitives/Icons/Info.svelte +7 -7
- package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
- package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
- package/dist/primitives/Icons/Message.svelte +15 -15
- package/dist/primitives/Icons/MoonIcon.svelte +5 -5
- package/dist/primitives/Icons/More.svelte +21 -21
- package/dist/primitives/Icons/MoreHori.spec.js +61 -61
- package/dist/primitives/Icons/MoreHori.svelte +22 -22
- package/dist/primitives/Icons/Notification.svelte +14 -14
- package/dist/primitives/Icons/Payment.svelte +14 -14
- package/dist/primitives/Icons/Profile.svelte +21 -21
- package/dist/primitives/Icons/Reload.svelte +29 -29
- package/dist/primitives/Icons/Shows.svelte +21 -21
- package/dist/primitives/Icons/Signout.svelte +21 -21
- package/dist/primitives/Icons/SunIcon.svelte +8 -8
- package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
- package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
- package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
- package/dist/primitives/Icons/WarningIcon.svelte +5 -5
- package/dist/primitives/Input/Input.spec.js +1237 -1235
- package/dist/primitives/Input/Input.stories.svelte +139 -139
- package/dist/primitives/Input/Input.svelte +431 -423
- package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Select.spec.js +632 -632
- package/dist/primitives/Input/Select.stories.svelte +112 -112
- package/dist/primitives/Input/Select.svelte +252 -252
- package/dist/primitives/Input/Textarea.stories.svelte +137 -137
- package/dist/primitives/Input/Textarea.svelte +105 -105
- package/dist/primitives/Label/Label.svelte +37 -37
- package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
- package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
- package/dist/primitives/Modal/Modal.spec.js +314 -314
- package/dist/primitives/Modal/Modal.stories.svelte +86 -86
- package/dist/primitives/Modal/Modal.svelte +181 -181
- package/dist/primitives/NavItem/NavItem.svelte +75 -75
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
- package/dist/primitives/Pagination/Pagination.svelte +261 -261
- package/dist/primitives/Radio/Radio.stories.svelte +80 -80
- package/dist/primitives/Radio/Radio.svelte +67 -67
- package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
- package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
- package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
- package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
- package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
- package/dist/primitives/Spinner/Spinner.spec.js +84 -84
- package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
- package/dist/primitives/Spinner/Spinner.svelte +20 -20
- package/dist/primitives/Tabs/TabItem.svelte +49 -49
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
- package/dist/primitives/Tabs/Tabs.svelte +137 -137
- package/dist/primitives/Toggle.spec.js +221 -221
- package/dist/primitives/Toggle.stories.svelte +92 -92
- package/dist/primitives/Toggle.svelte +141 -141
- package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
- package/dist/primitives/Typography/Typography.svelte +53 -53
- package/dist/primitives/ValidationError.spec.js +103 -103
- package/dist/primitives/ValidationError.stories.svelte +69 -69
- package/dist/primitives/ValidationError.svelte +29 -29
- package/dist/primitives/index.js +113 -113
- package/dist/recipes/CropImage/CropImage.spec.js +208 -208
- package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
- package/dist/recipes/CropImage/CropImage.svelte +241 -241
- package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
- package/dist/recipes/ImageUploader/ImageUploader.svelte +992 -992
- package/dist/recipes/SuperLogin/SuperLogin.spec.js +2 -2
- package/dist/recipes/SuperLogin/SuperLogin.svelte +1 -1
- package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
- package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
- package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
- package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
- package/dist/recipes/fields/CheckboxField.svelte +85 -85
- package/dist/recipes/fields/FormField.svelte +58 -58
- package/dist/recipes/fields/RadioGroup.svelte +95 -95
- package/dist/recipes/fields/SelectField.svelte +82 -82
- package/dist/recipes/fields/TextareaField.svelte +97 -97
- package/dist/recipes/fields/ToggleField.svelte +60 -60
- package/dist/recipes/fields/index.js +7 -7
- package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
- package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
- package/dist/recipes/inputs/MultiSelect.svelte +283 -283
- package/dist/recipes/inputs/OTPInput.spec.js +251 -251
- package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
- package/dist/recipes/inputs/OTPInput.svelte +117 -117
- package/dist/recipes/inputs/PasswordInput.svelte +22 -22
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +131 -131
- package/dist/recipes/inputs/PhoneInput.svelte +258 -0
- package/dist/recipes/inputs/PhoneInput.svelte.d.ts +42 -0
- package/dist/recipes/inputs/PhoneInput.svelte.d.ts.map +1 -0
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +336 -336
- package/dist/recipes/inputs/Search.svelte +102 -102
- package/dist/recipes/inputs/index.d.ts +1 -0
- package/dist/recipes/inputs/index.js +8 -7
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +297 -0
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts +17 -0
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts.map +1 -0
- package/dist/recipes/inputs/phoneInput/countryData.d.ts +20 -0
- package/dist/recipes/inputs/phoneInput/countryData.d.ts.map +1 -0
- package/dist/recipes/inputs/phoneInput/countryData.js +211 -0
- package/dist/recipes/modals/AlertModal.svelte +130 -130
- package/dist/recipes/modals/ConfirmationModal.spec.js +396 -396
- package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
- package/dist/recipes/modals/ConfirmationModal.svelte +162 -162
- package/dist/recipes/modals/InputModal.svelte +182 -182
- package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
- package/dist/recipes/modals/ModalStateManager.svelte +77 -77
- package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
- package/dist/recipes/modals/StatusModal.svelte +206 -206
- package/dist/schemas/__tests__/auth.test.d.ts +2 -0
- package/dist/schemas/__tests__/auth.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/auth.test.js +210 -0
- package/dist/schemas/__tests__/common.test.d.ts +2 -0
- package/dist/schemas/__tests__/common.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/common.test.js +340 -0
- package/dist/schemas/__tests__/domain.test.d.ts +2 -0
- package/dist/schemas/__tests__/domain.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/domain.test.js +293 -0
- package/dist/schemas/__tests__/order.test.d.ts +2 -0
- package/dist/schemas/__tests__/order.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/order.test.js +349 -0
- package/dist/schemas/__tests__/user.test.d.ts +2 -0
- package/dist/schemas/__tests__/user.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/user.test.js +325 -0
- package/dist/schemas/auth.d.ts +41 -0
- package/dist/schemas/auth.d.ts.map +1 -0
- package/dist/schemas/auth.js +69 -0
- package/dist/schemas/common.d.ts +43 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +157 -0
- package/dist/schemas/event.d.ts +82 -0
- package/dist/schemas/event.d.ts.map +1 -0
- package/dist/schemas/event.js +58 -0
- package/dist/schemas/index.d.ts +10 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +9 -0
- package/dist/schemas/order.d.ts +111 -0
- package/dist/schemas/order.d.ts.map +1 -0
- package/dist/schemas/order.js +73 -0
- package/dist/schemas/performer.d.ts +133 -0
- package/dist/schemas/performer.d.ts.map +1 -0
- package/dist/schemas/performer.js +73 -0
- package/dist/schemas/promo.d.ts +87 -0
- package/dist/schemas/promo.d.ts.map +1 -0
- package/dist/schemas/promo.js +98 -0
- package/dist/schemas/ticket.d.ts +104 -0
- package/dist/schemas/ticket.d.ts.map +1 -0
- package/dist/schemas/ticket.js +82 -0
- package/dist/schemas/user.d.ts +92 -0
- package/dist/schemas/user.d.ts.map +1 -0
- package/dist/schemas/user.js +53 -0
- package/dist/schemas/venue.d.ts +95 -0
- package/dist/schemas/venue.d.ts.map +1 -0
- package/dist/schemas/venue.js +52 -0
- package/dist/services/EventService.js +79 -79
- package/dist/services/EventService.spec.js +217 -217
- package/dist/services/ShowService.js +144 -144
- package/dist/services/ShowService.spec.js +345 -345
- package/dist/stores/auth.svelte.spec.js +1 -1
- package/dist/stores/toaster.js +13 -13
- package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
- package/dist/stories/ButtonAuditReview.svelte +427 -427
- package/dist/stories/PatternsGallery.stories.svelte +19 -19
- package/dist/stories/PatternsGallery.svelte +206 -206
- package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
- package/dist/stories/PrimitivesGallery.svelte +756 -756
- package/dist/stories/RecipesGallery.stories.svelte +19 -19
- package/dist/stories/RecipesGallery.svelte +454 -454
- package/dist/stories/button-audit-manifest.json +11186 -11186
- package/dist/tailwind/preset.cjs +82 -82
- package/dist/telemetry.js +402 -402
- package/dist/telemetry.server.js +212 -212
- package/dist/telemetry.server.spec.js +437 -437
- package/dist/telemetry.spec.js +1173 -1168
- package/dist/tokens/__tests__/sizing.test.js +2 -2
- package/dist/tokens/sizing.d.ts +5 -0
- package/dist/tokens/sizing.d.ts.map +1 -1
- package/dist/tokens/sizing.js +6 -0
- package/dist/tokens/tokens.css +87 -87
- package/dist/tokens/typography-base.css +163 -163
- package/dist/tokens/utilities.css +353 -353
- package/dist/utils/apiConfig.js +117 -117
- package/dist/utils/apiConfig.spec.js +219 -219
- package/dist/utils/greetings.js +187 -187
- package/dist/utils/haptic.spec.js +1 -1
- package/dist/utils/imageValidation.js +121 -121
- package/dist/utils/phoneUtils.d.ts +35 -0
- package/dist/utils/phoneUtils.d.ts.map +1 -0
- package/dist/utils/phoneUtils.js +104 -0
- package/dist/utils/transitions.js +4 -4
- package/dist/utils/utils.js +693 -693
- package/package.json +297 -292
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* LandingButton Component
|
|
4
|
-
* Hero/landing page CTA buttons with shadow and prominent styling.
|
|
5
|
-
*
|
|
6
|
-
* Replaces: Button variant="landing" and variant="landing-secondary"
|
|
7
|
-
*/
|
|
8
|
-
import { twMerge } from 'tailwind-merge';
|
|
9
|
-
import type { Snippet } from 'svelte';
|
|
10
|
-
import { buttonSizes } from '../../tokens/sizing.js';
|
|
11
|
-
|
|
12
|
-
interface Props {
|
|
13
|
-
/** Visual style: primary (blue) or secondary (outline) */
|
|
14
|
-
variant?: 'primary' | 'secondary';
|
|
15
|
-
/** Disabled state */
|
|
16
|
-
disabled?: boolean;
|
|
17
|
-
/** Loading state */
|
|
18
|
-
loading?: boolean;
|
|
19
|
-
/** Link href (renders as <a> if provided) */
|
|
20
|
-
href?: string | null;
|
|
21
|
-
/** Content */
|
|
22
|
-
children?: Snippet;
|
|
23
|
-
/** Additional classes */
|
|
24
|
-
class?: string;
|
|
25
|
-
/** Click handler */
|
|
26
|
-
onclick?: (e: MouseEvent) => void;
|
|
27
|
-
[key: string]: unknown;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
let {
|
|
31
|
-
variant = 'primary',
|
|
32
|
-
disabled = false,
|
|
33
|
-
loading = false,
|
|
34
|
-
href = null,
|
|
35
|
-
children,
|
|
36
|
-
class: className = '',
|
|
37
|
-
onclick,
|
|
38
|
-
...restProps
|
|
39
|
-
}: Props = $props();
|
|
40
|
-
|
|
41
|
-
let effectiveDisabled = $derived(disabled || loading);
|
|
42
|
-
|
|
43
|
-
const baseClasses = 'inline-flex items-center justify-center rounded-xl font-medium leading-none focus:outline-hidden transition-all duration-150 ease-out select-none no-underline hover:no-underline shadow hover:shadow-md';
|
|
44
|
-
|
|
45
|
-
const variantClasses = {
|
|
46
|
-
primary: 'text-white bg-blue-600 border border-blue-600 hover:bg-blue-700 dark:bg-blue-600 dark:border-blue-600 dark:hover:bg-blue-700',
|
|
47
|
-
secondary: 'text-gray-700 bg-white border border-gray-200 hover:border-gray-400 hover:text-gray-900 dark:text-gray-300 dark:bg-gray-800 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:text-gray-100',
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const disabledClasses = 'bg-gray-200 border-gray-200 text-gray-400 cursor-not-allowed shadow-none dark:bg-gray-700 dark:border-gray-700 dark:text-gray-500';
|
|
51
|
-
|
|
52
|
-
// Landing size from tokens
|
|
53
|
-
let sizeClass = $derived(buttonSizes.landing);
|
|
54
|
-
|
|
55
|
-
let variantClass = $derived(() => {
|
|
56
|
-
if (effectiveDisabled) return disabledClasses;
|
|
57
|
-
return variantClasses[variant] || variantClasses.primary;
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
let classes = $derived(twMerge(
|
|
61
|
-
baseClasses,
|
|
62
|
-
sizeClass,
|
|
63
|
-
variantClass(),
|
|
64
|
-
effectiveDisabled ? 'cursor-not-allowed' : 'cursor-pointer active:scale-[0.97] active:opacity-90',
|
|
65
|
-
className
|
|
66
|
-
));
|
|
67
|
-
</script>
|
|
68
|
-
|
|
69
|
-
{#if href}
|
|
70
|
-
<a
|
|
71
|
-
{href}
|
|
72
|
-
class={classes}
|
|
73
|
-
{onclick}
|
|
74
|
-
{...restProps}
|
|
75
|
-
>
|
|
76
|
-
<span class="inline-flex items-center gap-1.5" class:invisible={loading}>
|
|
77
|
-
{#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
|
|
78
|
-
</span>
|
|
79
|
-
</a>
|
|
80
|
-
{:else}
|
|
81
|
-
<button
|
|
82
|
-
type="button"
|
|
83
|
-
class={classes}
|
|
84
|
-
disabled={effectiveDisabled}
|
|
85
|
-
{onclick}
|
|
86
|
-
{...restProps}
|
|
87
|
-
>
|
|
88
|
-
<span class="inline-flex items-center gap-1.5" class:invisible={loading}>
|
|
89
|
-
{#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
|
|
90
|
-
</span>
|
|
91
|
-
</button>
|
|
92
|
-
{/if}
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* LandingButton Component
|
|
4
|
+
* Hero/landing page CTA buttons with shadow and prominent styling.
|
|
5
|
+
*
|
|
6
|
+
* Replaces: Button variant="landing" and variant="landing-secondary"
|
|
7
|
+
*/
|
|
8
|
+
import { twMerge } from 'tailwind-merge';
|
|
9
|
+
import type { Snippet } from 'svelte';
|
|
10
|
+
import { buttonSizes } from '../../tokens/sizing.js';
|
|
11
|
+
|
|
12
|
+
interface Props {
|
|
13
|
+
/** Visual style: primary (blue) or secondary (outline) */
|
|
14
|
+
variant?: 'primary' | 'secondary';
|
|
15
|
+
/** Disabled state */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** Loading state */
|
|
18
|
+
loading?: boolean;
|
|
19
|
+
/** Link href (renders as <a> if provided) */
|
|
20
|
+
href?: string | null;
|
|
21
|
+
/** Content */
|
|
22
|
+
children?: Snippet;
|
|
23
|
+
/** Additional classes */
|
|
24
|
+
class?: string;
|
|
25
|
+
/** Click handler */
|
|
26
|
+
onclick?: (e: MouseEvent) => void;
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
let {
|
|
31
|
+
variant = 'primary',
|
|
32
|
+
disabled = false,
|
|
33
|
+
loading = false,
|
|
34
|
+
href = null,
|
|
35
|
+
children,
|
|
36
|
+
class: className = '',
|
|
37
|
+
onclick,
|
|
38
|
+
...restProps
|
|
39
|
+
}: Props = $props();
|
|
40
|
+
|
|
41
|
+
let effectiveDisabled = $derived(disabled || loading);
|
|
42
|
+
|
|
43
|
+
const baseClasses = 'inline-flex items-center justify-center rounded-xl font-medium leading-none focus:outline-hidden transition-all duration-150 ease-out select-none no-underline hover:no-underline shadow hover:shadow-md';
|
|
44
|
+
|
|
45
|
+
const variantClasses = {
|
|
46
|
+
primary: 'text-white bg-blue-600 border border-blue-600 hover:bg-blue-700 dark:bg-blue-600 dark:border-blue-600 dark:hover:bg-blue-700',
|
|
47
|
+
secondary: 'text-gray-700 bg-white border border-gray-200 hover:border-gray-400 hover:text-gray-900 dark:text-gray-300 dark:bg-gray-800 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:text-gray-100',
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const disabledClasses = 'bg-gray-200 border-gray-200 text-gray-400 cursor-not-allowed shadow-none dark:bg-gray-700 dark:border-gray-700 dark:text-gray-500';
|
|
51
|
+
|
|
52
|
+
// Landing size from tokens
|
|
53
|
+
let sizeClass = $derived(buttonSizes.landing);
|
|
54
|
+
|
|
55
|
+
let variantClass = $derived(() => {
|
|
56
|
+
if (effectiveDisabled) return disabledClasses;
|
|
57
|
+
return variantClasses[variant] || variantClasses.primary;
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
let classes = $derived(twMerge(
|
|
61
|
+
baseClasses,
|
|
62
|
+
sizeClass,
|
|
63
|
+
variantClass(),
|
|
64
|
+
effectiveDisabled ? 'cursor-not-allowed' : 'cursor-pointer active:scale-[0.97] active:opacity-90',
|
|
65
|
+
className
|
|
66
|
+
));
|
|
67
|
+
</script>
|
|
68
|
+
|
|
69
|
+
{#if href}
|
|
70
|
+
<a
|
|
71
|
+
{href}
|
|
72
|
+
class={classes}
|
|
73
|
+
{onclick}
|
|
74
|
+
{...restProps}
|
|
75
|
+
>
|
|
76
|
+
<span class="inline-flex items-center gap-1.5" class:invisible={loading}>
|
|
77
|
+
{#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
|
|
78
|
+
</span>
|
|
79
|
+
</a>
|
|
80
|
+
{:else}
|
|
81
|
+
<button
|
|
82
|
+
type="button"
|
|
83
|
+
class={classes}
|
|
84
|
+
disabled={effectiveDisabled}
|
|
85
|
+
{onclick}
|
|
86
|
+
{...restProps}
|
|
87
|
+
>
|
|
88
|
+
<span class="inline-flex items-center gap-1.5" class:invisible={loading}>
|
|
89
|
+
{#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
|
|
90
|
+
</span>
|
|
91
|
+
</button>
|
|
92
|
+
{/if}
|
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* MenuItem Component
|
|
4
|
-
* For dropdown menus, action sheets, and sidebar navigation items.
|
|
5
|
-
*
|
|
6
|
-
* Replaces: Button variant="menu-item" and variant="menu-item-danger"
|
|
7
|
-
*/
|
|
8
|
-
import { twMerge } from 'tailwind-merge';
|
|
9
|
-
import type { Snippet } from 'svelte';
|
|
10
|
-
import { buttonMenuItemSizes } from '../../tokens/sizing.js';
|
|
11
|
-
|
|
12
|
-
interface Props {
|
|
13
|
-
/** Destructive/danger styling (red text) */
|
|
14
|
-
danger?: boolean;
|
|
15
|
-
/** Size variant */
|
|
16
|
-
size?: 'sm' | 'md' | 'lg' | 'nav';
|
|
17
|
-
/** Disabled state */
|
|
18
|
-
disabled?: boolean;
|
|
19
|
-
/** Active/selected state */
|
|
20
|
-
active?: boolean;
|
|
21
|
-
/** Content */
|
|
22
|
-
children?: Snippet;
|
|
23
|
-
/** Trailing content (icons, badges) */
|
|
24
|
-
trailing?: Snippet;
|
|
25
|
-
/** Additional classes */
|
|
26
|
-
class?: string;
|
|
27
|
-
/** Click handler */
|
|
28
|
-
onclick?: (e: MouseEvent) => void;
|
|
29
|
-
[key: string]: unknown;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
let {
|
|
33
|
-
danger = false,
|
|
34
|
-
size = 'md',
|
|
35
|
-
disabled = false,
|
|
36
|
-
active = false,
|
|
37
|
-
children,
|
|
38
|
-
trailing,
|
|
39
|
-
class: className = '',
|
|
40
|
-
onclick,
|
|
41
|
-
...restProps
|
|
42
|
-
}: Props = $props();
|
|
43
|
-
|
|
44
|
-
const baseClasses = 'w-full text-left whitespace-nowrap bg-transparent border-transparent rounded-lg font-medium leading-none focus:outline-hidden transition-all duration-150 ease-out select-none';
|
|
45
|
-
|
|
46
|
-
const variantClasses = {
|
|
47
|
-
default: 'text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600',
|
|
48
|
-
danger: 'text-red-600 hover:bg-red-50 dark:text-red-500 dark:hover:bg-gray-600',
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const activeClasses = 'bg-blue-50 dark:bg-gray-700';
|
|
52
|
-
const disabledClasses = 'text-gray-400 cursor-not-allowed dark:text-gray-500';
|
|
53
|
-
|
|
54
|
-
let sizeClass = $derived(buttonMenuItemSizes[size] || buttonMenuItemSizes.md);
|
|
55
|
-
|
|
56
|
-
let variantClass = $derived(() => {
|
|
57
|
-
if (disabled) return disabledClasses;
|
|
58
|
-
if (active) return `${variantClasses[danger ? 'danger' : 'default']} ${activeClasses}`;
|
|
59
|
-
return variantClasses[danger ? 'danger' : 'default'];
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
let hasTrailing = $derived(typeof trailing === 'function' || trailing);
|
|
63
|
-
|
|
64
|
-
let classes = $derived(twMerge(
|
|
65
|
-
baseClasses,
|
|
66
|
-
hasTrailing ? 'flex items-center justify-between' : 'flex items-center justify-start',
|
|
67
|
-
sizeClass,
|
|
68
|
-
variantClass(),
|
|
69
|
-
disabled ? 'cursor-not-allowed' : 'cursor-pointer active:scale-[0.97] active:opacity-90',
|
|
70
|
-
className
|
|
71
|
-
));
|
|
72
|
-
</script>
|
|
73
|
-
|
|
74
|
-
<button
|
|
75
|
-
type="button"
|
|
76
|
-
class={classes}
|
|
77
|
-
{disabled}
|
|
78
|
-
{onclick}
|
|
79
|
-
{...restProps}
|
|
80
|
-
>
|
|
81
|
-
<span class="inline-flex items-center gap-1.5">
|
|
82
|
-
{#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
|
|
83
|
-
</span>
|
|
84
|
-
{#if typeof trailing === 'function'}{@render trailing()}{:else if trailing}{trailing}{/if}
|
|
85
|
-
</button>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* MenuItem Component
|
|
4
|
+
* For dropdown menus, action sheets, and sidebar navigation items.
|
|
5
|
+
*
|
|
6
|
+
* Replaces: Button variant="menu-item" and variant="menu-item-danger"
|
|
7
|
+
*/
|
|
8
|
+
import { twMerge } from 'tailwind-merge';
|
|
9
|
+
import type { Snippet } from 'svelte';
|
|
10
|
+
import { buttonMenuItemSizes } from '../../tokens/sizing.js';
|
|
11
|
+
|
|
12
|
+
interface Props {
|
|
13
|
+
/** Destructive/danger styling (red text) */
|
|
14
|
+
danger?: boolean;
|
|
15
|
+
/** Size variant */
|
|
16
|
+
size?: 'sm' | 'md' | 'lg' | 'nav';
|
|
17
|
+
/** Disabled state */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** Active/selected state */
|
|
20
|
+
active?: boolean;
|
|
21
|
+
/** Content */
|
|
22
|
+
children?: Snippet;
|
|
23
|
+
/** Trailing content (icons, badges) */
|
|
24
|
+
trailing?: Snippet;
|
|
25
|
+
/** Additional classes */
|
|
26
|
+
class?: string;
|
|
27
|
+
/** Click handler */
|
|
28
|
+
onclick?: (e: MouseEvent) => void;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
let {
|
|
33
|
+
danger = false,
|
|
34
|
+
size = 'md',
|
|
35
|
+
disabled = false,
|
|
36
|
+
active = false,
|
|
37
|
+
children,
|
|
38
|
+
trailing,
|
|
39
|
+
class: className = '',
|
|
40
|
+
onclick,
|
|
41
|
+
...restProps
|
|
42
|
+
}: Props = $props();
|
|
43
|
+
|
|
44
|
+
const baseClasses = 'w-full text-left whitespace-nowrap bg-transparent border-transparent rounded-lg font-medium leading-none focus:outline-hidden transition-all duration-150 ease-out select-none';
|
|
45
|
+
|
|
46
|
+
const variantClasses = {
|
|
47
|
+
default: 'text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600',
|
|
48
|
+
danger: 'text-red-600 hover:bg-red-50 dark:text-red-500 dark:hover:bg-gray-600',
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const activeClasses = 'bg-blue-50 dark:bg-gray-700';
|
|
52
|
+
const disabledClasses = 'text-gray-400 cursor-not-allowed dark:text-gray-500';
|
|
53
|
+
|
|
54
|
+
let sizeClass = $derived(buttonMenuItemSizes[size] || buttonMenuItemSizes.md);
|
|
55
|
+
|
|
56
|
+
let variantClass = $derived(() => {
|
|
57
|
+
if (disabled) return disabledClasses;
|
|
58
|
+
if (active) return `${variantClasses[danger ? 'danger' : 'default']} ${activeClasses}`;
|
|
59
|
+
return variantClasses[danger ? 'danger' : 'default'];
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
let hasTrailing = $derived(typeof trailing === 'function' || trailing);
|
|
63
|
+
|
|
64
|
+
let classes = $derived(twMerge(
|
|
65
|
+
baseClasses,
|
|
66
|
+
hasTrailing ? 'flex items-center justify-between' : 'flex items-center justify-start',
|
|
67
|
+
sizeClass,
|
|
68
|
+
variantClass(),
|
|
69
|
+
disabled ? 'cursor-not-allowed' : 'cursor-pointer active:scale-[0.97] active:opacity-90',
|
|
70
|
+
className
|
|
71
|
+
));
|
|
72
|
+
</script>
|
|
73
|
+
|
|
74
|
+
<button
|
|
75
|
+
type="button"
|
|
76
|
+
class={classes}
|
|
77
|
+
{disabled}
|
|
78
|
+
{onclick}
|
|
79
|
+
{...restProps}
|
|
80
|
+
>
|
|
81
|
+
<span class="inline-flex items-center gap-1.5">
|
|
82
|
+
{#if typeof children === 'function'}{@render children()}{:else if children}{children}{/if}
|
|
83
|
+
</span>
|
|
84
|
+
{#if typeof trailing === 'function'}{@render trailing()}{:else if trailing}{trailing}{/if}
|
|
85
|
+
</button>
|