@getmicdrop/svelte-components 5.20.2 → 5.21.1
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.spec.js +10 -10
- package/dist/calendar/AboutShow/AboutShow.svelte +11 -11
- package/dist/calendar/Calendar/MiniMonthCalendar.spec.js +9 -8
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +22 -25
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
- package/dist/calendar/FAQs/FAQs.spec.js +6 -6
- package/dist/calendar/FAQs/FAQs.svelte +4 -4
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +8 -12
- package/dist/calendar/OrderSummary/OrderSummary.svelte +36 -36
- package/dist/calendar/PublicCard/PublicCard.spec.js +3 -3
- package/dist/calendar/PublicCard/PublicCard.svelte +7 -7
- package/dist/calendar/ShowCard/ShowCard.spec.js +8 -8
- package/dist/calendar/ShowCard/ShowCard.svelte +8 -8
- package/dist/calendar/ShowTimeCard/ShowTimeCard.spec.js +4 -4
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +4 -4
- package/dist/components/Heading.spec.js +1 -1
- package/dist/components/Heading.svelte +1 -1
- package/dist/components/Layout/AppShell.svelte +4 -4
- package/dist/components/Layout/ContentSection.svelte +2 -2
- package/dist/components/Layout/Heading.svelte +3 -3
- package/dist/components/Layout/PageContainer.svelte +2 -2
- package/dist/components/Layout/Section.spec.js +4 -4
- package/dist/components/Layout/Text.svelte +7 -7
- package/dist/components/Layout/__tests__/AppShell.test.js +5 -5
- package/dist/components/Layout/__tests__/ContentSection.test.js +1 -1
- package/dist/components/Layout/__tests__/Heading.test.js +3 -3
- package/dist/components/Layout/__tests__/PageContainer.test.js +4 -4
- package/dist/components/Layout/__tests__/Text.test.js +9 -9
- package/dist/components/Text.spec.js +4 -4
- package/dist/components/Text.svelte +7 -7
- package/dist/patterns/chat/ChatActivityNotice.spec.js +1 -1
- package/dist/patterns/chat/ChatActivityNotice.svelte +3 -3
- package/dist/patterns/chat/ChatBubble.spec.js +1 -1
- package/dist/patterns/chat/ChatBubble.svelte +7 -7
- package/dist/patterns/chat/ChatContainer.spec.js +1 -1
- package/dist/patterns/chat/ChatContainer.svelte +3 -3
- package/dist/patterns/chat/ChatDateDivider.svelte +1 -1
- package/dist/patterns/chat/ChatInvitationBubble.spec.js +2 -2
- package/dist/patterns/chat/ChatInvitationBubble.svelte +1 -1
- package/dist/patterns/chat/ChatInvitationNotice.spec.js +2 -2
- package/dist/patterns/chat/ChatInvitationNotice.svelte +1 -1
- package/dist/patterns/chat/ChatMessageGroup.svelte +2 -2
- package/dist/patterns/chat/ChatSlotUpdate.svelte +2 -2
- package/dist/patterns/chat/ChatStatusBadge.spec.js +10 -10
- package/dist/patterns/chat/ChatStatusBadge.svelte +8 -8
- package/dist/patterns/chat/ChatStatusTransition.spec.js +9 -9
- package/dist/patterns/chat/ChatStatusTransition.svelte +5 -5
- package/dist/patterns/chat/ChatTextBubble.spec.js +4 -4
- package/dist/patterns/chat/ChatTextBubble.svelte +2 -2
- package/dist/patterns/data/DataList.spec.js +5 -5
- package/dist/patterns/data/DataList.svelte +1 -1
- package/dist/patterns/data/DataTable.spec.js +18 -18
- package/dist/patterns/data/DataTable.svelte +3 -3
- package/dist/patterns/forms/FormActions.spec.js +6 -6
- package/dist/patterns/forms/FormActions.stories.svelte +1 -1
- package/dist/patterns/forms/FormActions.svelte +1 -1
- package/dist/patterns/forms/FormSection.spec.js +4 -4
- package/dist/patterns/forms/FormSection.svelte +2 -2
- package/dist/patterns/forms/FormValidationSummary.spec.js +2 -2
- package/dist/patterns/forms/FormValidationSummary.stories.svelte +4 -4
- package/dist/patterns/forms/FormValidationSummary.svelte +4 -4
- package/dist/patterns/navigation/BottomNav.stories.svelte +23 -23
- package/dist/patterns/navigation/BottomNav.svelte +3 -3
- package/dist/patterns/navigation/Header.spec.js +9 -9
- package/dist/patterns/navigation/Header.svelte +13 -15
- package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
- package/dist/patterns/page/PageLayout.spec.js +5 -5
- package/dist/patterns/page/PageLayout.svelte +1 -1
- package/dist/patterns/page/PageLoader.stories.svelte +5 -5
- package/dist/patterns/page/SectionHeader.spec.js +8 -8
- package/dist/patterns/page/SectionHeader.svelte +2 -2
- package/dist/presets/buttons.js +1 -1
- package/dist/presets/buttons.spec.js +4 -4
- package/dist/primitives/Accordion/Accordion.spec.js +5 -5
- package/dist/primitives/Accordion/Accordion.stories.svelte +9 -9
- package/dist/primitives/Accordion/Accordion.svelte +2 -2
- package/dist/primitives/Accordion/AccordionItem.spec.js +19 -28
- package/dist/primitives/Accordion/AccordionItem.svelte +4 -4
- package/dist/primitives/Avatar/Avatar.spec.js +11 -11
- package/dist/primitives/Avatar/Avatar.stories.svelte +6 -5
- package/dist/primitives/Avatar/Avatar.stories.svelte.d.ts.map +1 -1
- package/dist/primitives/Avatar/Avatar.svelte +3 -3
- package/dist/primitives/Badges/Badge.spec.js +10 -10
- package/dist/primitives/BottomSheet/BottomSheet.spec.js +5 -5
- package/dist/primitives/BottomSheet/BottomSheet.svelte +7 -7
- package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +4 -2
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +4 -4
- package/dist/primitives/Button/Button.spec.js +15 -15
- package/dist/primitives/Button/Button.svelte +16 -16
- package/dist/primitives/Button/ButtonVariantShowcase.spec.js +1 -1
- package/dist/primitives/Button/ButtonVariantShowcase.svelte +18 -18
- package/dist/primitives/Card.spec.js +1 -1
- package/dist/primitives/Card.stories.svelte +1 -1
- package/dist/primitives/Card.svelte +1 -1
- package/dist/primitives/CardAction/CardAction.svelte +3 -3
- package/dist/primitives/Checkbox/Checkbox.spec.js +16 -16
- package/dist/primitives/Checkbox/Checkbox.stories.svelte +3 -3
- package/dist/primitives/Checkbox/Checkbox.svelte +9 -9
- package/dist/primitives/DarkModeToggle.spec.js +11 -11
- package/dist/primitives/DarkModeToggle.stories.svelte +8 -8
- package/dist/primitives/DarkModeToggle.svelte +4 -4
- package/dist/primitives/Drawer/Drawer.spec.js +4 -4
- package/dist/primitives/Drawer/Drawer.stories.svelte +6 -6
- package/dist/primitives/Drawer/Drawer.svelte +11 -11
- package/dist/primitives/Dropdown/Dropdown.spec.js +9 -9
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +4 -4
- package/dist/primitives/Dropdown/Dropdown.svelte +2 -2
- package/dist/primitives/Dropdown/DropdownDivider.svelte +1 -1
- package/dist/primitives/Dropdown/DropdownItem.spec.js +8 -15
- package/dist/primitives/Dropdown/DropdownItem.svelte +3 -3
- package/dist/primitives/Helper/Helper.spec.js +6 -6
- package/dist/primitives/Helper/Helper.svelte +3 -3
- package/dist/primitives/Icons/Icon.stories.svelte +15 -15
- package/dist/primitives/Icons/IconGallery.stories.svelte +26 -26
- package/dist/primitives/Icons/Icons.spec.js +3 -3
- package/dist/primitives/Input/Input.spec.js +9 -9
- package/dist/primitives/Input/Input.svelte +11 -11
- package/dist/primitives/Input/Select.spec.js +7 -7
- package/dist/primitives/Input/Select.stories.svelte +1 -1
- package/dist/primitives/Input/Select.svelte +6 -6
- package/dist/primitives/Input/Textarea.spec.js +8 -8
- package/dist/primitives/Input/Textarea.stories.svelte +1 -1
- package/dist/primitives/Input/Textarea.svelte +2 -2
- package/dist/primitives/Label/Label.spec.js +20 -21
- package/dist/primitives/Label/Label.svelte +4 -4
- package/dist/primitives/LandingButton/LandingButton.svelte +3 -3
- package/dist/primitives/MenuItem/MenuItem.spec.js +5 -5
- package/dist/primitives/MenuItem/MenuItem.svelte +4 -4
- package/dist/primitives/Modal/Modal.stories.svelte +8 -8
- package/dist/primitives/Modal/Modal.svelte +4 -4
- package/dist/primitives/NavItem/NavItem.spec.js +2 -2
- package/dist/primitives/NavItem/NavItem.svelte +3 -3
- package/dist/primitives/NumberInput/NumberInput.spec.js +17 -17
- package/dist/primitives/NumberInput/NumberInput.svelte +8 -8
- package/dist/primitives/Pagination/DotIndicator.svelte +6 -6
- package/dist/primitives/Pagination/Pagination.spec.js +6 -6
- package/dist/primitives/Pagination/Pagination.stories.svelte +4 -4
- package/dist/primitives/Pagination/Pagination.svelte +3 -3
- package/dist/primitives/Radio/Radio.spec.js +19 -19
- package/dist/primitives/Radio/Radio.stories.svelte +5 -5
- package/dist/primitives/Radio/Radio.svelte +8 -8
- package/dist/primitives/SearchResultItem/SearchResultItem.svelte +5 -5
- package/dist/primitives/SidebarToggle/SidebarToggle.svelte +2 -2
- package/dist/primitives/Skeleton/CardPlaceholder.spec.js +1 -1
- package/dist/primitives/Skeleton/CardPlaceholder.svelte +11 -11
- package/dist/primitives/Skeleton/ImagePlaceholder.spec.js +2 -2
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte +7 -7
- package/dist/primitives/Skeleton/ListPlaceholder.spec.js +2 -2
- package/dist/primitives/Skeleton/ListPlaceholder.svelte +5 -5
- package/dist/primitives/Skeleton/Skeleton.spec.js +7 -7
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +4 -4
- package/dist/primitives/Skeleton/Skeleton.svelte +1 -1
- package/dist/primitives/Spinner/Spinner.spec.js +4 -5
- package/dist/primitives/Spinner/Spinner.stories.svelte +2 -2
- package/dist/primitives/Spinner/Spinner.svelte +1 -1
- package/dist/primitives/Tabs/Tabs.spec.js +14 -14
- package/dist/primitives/Tabs/Tabs.stories.svelte +6 -6
- package/dist/primitives/Tabs/Tabs.svelte +8 -8
- package/dist/primitives/Toggle.spec.js +3 -5
- package/dist/primitives/Toggle.stories.svelte +7 -7
- package/dist/primitives/Toggle.svelte +7 -7
- package/dist/primitives/Tooltip/Tooltip.svelte +5 -5
- package/dist/primitives/ValidationError.spec.js +1 -1
- package/dist/primitives/ValidationError.stories.svelte +8 -8
- package/dist/primitives/ValidationError.svelte +1 -1
- package/dist/recipes/CropImage/CropImage.stories.svelte +8 -8
- package/dist/recipes/CropImage/CropImage.svelte +7 -7
- package/dist/recipes/ImageUploader/ImageUploader.spec.js +1 -1
- package/dist/recipes/ImageUploader/ImageUploader.svelte +34 -56
- package/dist/recipes/SuperLogin/SuperLogin.svelte +25 -25
- package/dist/recipes/Toaster/Toaster.stories.svelte +10 -10
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
- package/dist/recipes/feedback/ErrorDisplay.spec.js +1 -1
- package/dist/recipes/feedback/ErrorDisplay.stories.svelte +2 -2
- package/dist/recipes/feedback/ErrorDisplay.svelte +2 -2
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +7 -7
- package/dist/recipes/fields/CheckboxField.spec.js +2 -2
- package/dist/recipes/fields/CheckboxField.svelte +2 -2
- package/dist/recipes/fields/FormField.spec.js +4 -4
- package/dist/recipes/fields/FormField.svelte +1 -1
- package/dist/recipes/fields/RadioGroup.spec.js +1 -1
- package/dist/recipes/fields/RadioGroup.svelte +2 -2
- package/dist/recipes/fields/SelectField.spec.js +2 -2
- package/dist/recipes/fields/TextareaField.spec.js +2 -2
- package/dist/recipes/fields/ToggleField.spec.js +2 -2
- package/dist/recipes/fields/ToggleField.svelte +1 -1
- package/dist/recipes/inputs/MultiSelect.stories.svelte +2 -2
- package/dist/recipes/inputs/MultiSelect.svelte +10 -10
- package/dist/recipes/inputs/OTPInput.stories.svelte +9 -9
- package/dist/recipes/inputs/OTPInput.svelte +1 -1
- package/dist/recipes/inputs/PasswordInput.spec.js +2 -2
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +14 -14
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +3 -3
- package/dist/recipes/inputs/PasswordStrengthIndicator/TestWrapper.svelte +2 -2
- package/dist/recipes/inputs/PhoneInput.svelte +5 -5
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +10 -10
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +7 -7
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +11 -14
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/Search.spec.js +3 -3
- package/dist/recipes/inputs/Search.svelte +1 -1
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +5 -5
- package/dist/recipes/modals/AlertModal.spec.js +36 -36
- package/dist/recipes/modals/AlertModal.svelte +8 -8
- package/dist/recipes/modals/ConfirmationModal.spec.js +20 -20
- package/dist/recipes/modals/ConfirmationModal.svelte +1 -1
- package/dist/recipes/modals/FeedbackModal.svelte +7 -7
- package/dist/recipes/modals/InputModal.spec.js +17 -17
- package/dist/recipes/modals/InputModal.svelte +3 -3
- package/dist/recipes/modals/ModalStateManager.spec.js +1 -1
- package/dist/recipes/modals/ModalStateManager.svelte +2 -2
- package/dist/recipes/modals/StatusModal.spec.js +7 -7
- package/dist/recipes/modals/StatusModal.svelte +10 -10
- package/dist/schemas/__tests__/order.test.js +1 -1
- package/dist/schemas/auth.d.ts +107 -17
- package/dist/schemas/auth.d.ts.map +1 -1
- package/dist/schemas/common.d.ts +41 -13
- package/dist/schemas/common.d.ts.map +1 -1
- package/dist/schemas/event.d.ts +147 -41
- package/dist/schemas/event.d.ts.map +1 -1
- package/dist/schemas/order.d.ts +208 -51
- package/dist/schemas/order.d.ts.map +1 -1
- package/dist/schemas/performer.d.ts +199 -44
- package/dist/schemas/performer.d.ts.map +1 -1
- package/dist/schemas/promo.d.ts +221 -55
- package/dist/schemas/promo.d.ts.map +1 -1
- package/dist/schemas/ticket.d.ts +187 -61
- package/dist/schemas/ticket.d.ts.map +1 -1
- package/dist/schemas/user.d.ts +114 -54
- package/dist/schemas/user.d.ts.map +1 -1
- package/dist/schemas/venue.d.ts +238 -20
- package/dist/schemas/venue.d.ts.map +1 -1
- package/dist/stories/ButtonAuditDashboard.spec.js +12 -12
- package/dist/stories/ButtonAuditDashboard.svelte +55 -55
- package/dist/stories/ButtonAuditReview.spec.js +8 -8
- package/dist/stories/ButtonAuditReview.svelte +87 -87
- package/dist/stories/ButtonGridView.spec.js +27 -27
- package/dist/stories/ButtonGridView.svelte +22 -22
- package/dist/stories/ButtonShowcase.spec.js +4 -4
- package/dist/stories/ButtonShowcase.svelte +119 -119
- package/dist/stories/ComponentConsolidation.stories.svelte +453 -453
- package/dist/stories/DesignSystemAudit.stories.svelte +127 -127
- package/dist/stories/PatternsGallery.spec.js +3 -3
- package/dist/stories/PatternsGallery.svelte +23 -23
- package/dist/stories/PrimitivesGallery.spec.js +9 -9
- package/dist/stories/PrimitivesGallery.svelte +68 -68
- package/dist/stories/RecipesGallery.svelte +26 -26
- package/dist/tokens/__tests__/typography-base.test.js +5 -5
- package/dist/tokens/__tests__/typography.test.js +32 -36
- package/dist/tokens/__tests__/variants.test.js +63 -78
- package/dist/tokens/tokens.css +15 -15
- package/dist/tokens/typography-base.css +16 -16
- package/dist/tokens/typography.d.ts +29 -29
- package/dist/tokens/typography.js +29 -29
- package/dist/tokens/utilities.css +35 -47
- package/dist/tokens/variants.d.ts +32 -32
- package/dist/tokens/variants.js +32 -32
- package/dist/utils/utils/utils.spec.js +2 -2
- package/package.json +1 -1
|
@@ -65,26 +65,26 @@
|
|
|
65
65
|
|
|
66
66
|
<Story name="Settings List">
|
|
67
67
|
<div class="max-w-md space-y-4">
|
|
68
|
-
<div class="flex items-center justify-between p-4 bg-
|
|
68
|
+
<div class="flex items-center justify-between p-4 bg-card rounded-lg border">
|
|
69
69
|
<div>
|
|
70
70
|
<div class="font-medium">Email Notifications</div>
|
|
71
|
-
<div class="text-sm text-
|
|
71
|
+
<div class="text-sm text-muted-foreground">Receive updates via email</div>
|
|
72
72
|
</div>
|
|
73
73
|
<Toggle bind:checked={toggleState} />
|
|
74
74
|
</div>
|
|
75
75
|
|
|
76
|
-
<div class="flex items-center justify-between p-4 bg-
|
|
76
|
+
<div class="flex items-center justify-between p-4 bg-card rounded-lg border">
|
|
77
77
|
<div>
|
|
78
78
|
<div class="font-medium">Dark Mode</div>
|
|
79
|
-
<div class="text-sm text-
|
|
79
|
+
<div class="text-sm text-muted-foreground">Use dark color scheme</div>
|
|
80
80
|
</div>
|
|
81
81
|
<Toggle checked={false} />
|
|
82
82
|
</div>
|
|
83
83
|
|
|
84
|
-
<div class="flex items-center justify-between p-4 bg-
|
|
84
|
+
<div class="flex items-center justify-between p-4 bg-bg-secondary rounded-lg border">
|
|
85
85
|
<div>
|
|
86
|
-
<div class="font-medium text-
|
|
87
|
-
<div class="text-sm text-
|
|
86
|
+
<div class="font-medium text-muted-foreground">Premium Feature</div>
|
|
87
|
+
<div class="text-sm text-muted-foreground">Requires subscription</div>
|
|
88
88
|
</div>
|
|
89
89
|
<Toggle disabled={true} checked={false} />
|
|
90
90
|
</div>
|
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
class="sr-only peer"
|
|
52
52
|
/>
|
|
53
53
|
<div
|
|
54
|
-
class="toggle-track toggle-{size} relative bg-
|
|
54
|
+
class="toggle-track toggle-{size} relative bg-bg-tertiary peer-focus:outline-hidden peer-focus:ring-4 peer-focus:ring-focus-ring rounded-full peer peer-checked:bg-brand-primary"
|
|
55
55
|
role="switch"
|
|
56
56
|
aria-checked={checked}
|
|
57
57
|
></div>
|
|
58
58
|
{#if children}
|
|
59
|
-
<span class="ms-3 text-sm font-medium text-
|
|
59
|
+
<span class="ms-3 text-sm font-medium text-text-primary">
|
|
60
60
|
{#if typeof children === 'function'}{@render children()}{:else}{children}{/if}
|
|
61
61
|
</span>
|
|
62
62
|
{/if}
|
|
@@ -88,8 +88,8 @@
|
|
|
88
88
|
.toggle-track::after {
|
|
89
89
|
content: '';
|
|
90
90
|
position: absolute;
|
|
91
|
-
background-color:
|
|
92
|
-
border: 1px solid
|
|
91
|
+
background-color: hsl(var(--bg-primary));
|
|
92
|
+
border: 1px solid hsl(var(--stroke-primary));
|
|
93
93
|
border-radius: 9999px;
|
|
94
94
|
transition: all 150ms;
|
|
95
95
|
}
|
|
@@ -117,15 +117,15 @@
|
|
|
117
117
|
/* Checked state - move thumb to the right */
|
|
118
118
|
:global(input.peer:checked) + .toggle-sm::after {
|
|
119
119
|
transform: translateX(1rem); /* 16px */
|
|
120
|
-
border-color:
|
|
120
|
+
border-color: hsl(var(--bg-primary));
|
|
121
121
|
}
|
|
122
122
|
:global(input.peer:checked) + .toggle-md::after {
|
|
123
123
|
transform: translateX(1.25rem); /* 20px */
|
|
124
|
-
border-color:
|
|
124
|
+
border-color: hsl(var(--bg-primary));
|
|
125
125
|
}
|
|
126
126
|
:global(input.peer:checked) + .toggle-lg::after {
|
|
127
127
|
transform: translateX(1.5rem); /* 24px */
|
|
128
|
-
border-color:
|
|
128
|
+
border-color: hsl(var(--bg-primary));
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
/* RTL support - translate in opposite direction */
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
|
|
38
38
|
// Arrow placement classes
|
|
39
39
|
const arrowClasses: Record<string, string> = {
|
|
40
|
-
top: 'top-full left-1/2 -translate-x-1/2 border-t-
|
|
41
|
-
bottom: 'bottom-full left-1/2 -translate-x-1/2 border-b-
|
|
42
|
-
left: 'left-full top-1/2 -translate-y-1/2 border-l-
|
|
43
|
-
right: 'right-full top-1/2 -translate-y-1/2 border-r-
|
|
40
|
+
top: 'top-full left-1/2 -translate-x-1/2 border-t-text-primary border-l-transparent border-r-transparent border-b-transparent',
|
|
41
|
+
bottom: 'bottom-full left-1/2 -translate-x-1/2 border-b-text-primary border-l-transparent border-r-transparent border-t-transparent',
|
|
42
|
+
left: 'left-full top-1/2 -translate-y-1/2 border-l-text-primary border-t-transparent border-b-transparent border-r-transparent',
|
|
43
|
+
right: 'right-full top-1/2 -translate-y-1/2 border-r-text-primary border-t-transparent border-b-transparent border-l-transparent'
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
function handleMouseEnter() {
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
|
|
73
73
|
{#if visible && content}
|
|
74
74
|
<div
|
|
75
|
-
class="absolute z-50 px-3 py-2 text-sm text-white bg-
|
|
75
|
+
class="absolute z-50 px-3 py-2 text-sm text-white bg-bg-primary rounded-lg shadow whitespace-nowrap pointer-events-none {placementClasses[placement]} {className}"
|
|
76
76
|
transition:fly={{ y: placement === 'top' ? 5 : placement === 'bottom' ? -5 : 0, x: placement === 'left' ? 5 : placement === 'right' ? -5 : 0, duration: 150 }}
|
|
77
77
|
>
|
|
78
78
|
{content}
|
|
@@ -39,7 +39,7 @@ describe('ValidationError Component', () => {
|
|
|
39
39
|
props: { error: 'Error message' },
|
|
40
40
|
});
|
|
41
41
|
const alert = container.querySelector('[role="alert"]');
|
|
42
|
-
expect(alert.classList.contains('text-
|
|
42
|
+
expect(alert.classList.contains('text-accent-danger')).toBe(true);
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
it('renders WarningIcon', () => {
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<input
|
|
51
51
|
id="email-field"
|
|
52
52
|
type="email"
|
|
53
|
-
class="w-full px-3 py-2 border border-
|
|
53
|
+
class="w-full px-3 py-2 border border-status-error-border rounded"
|
|
54
54
|
value="invalid-email"
|
|
55
55
|
/>
|
|
56
56
|
<ValidationError error="Please enter a valid email address" show={true} />
|
|
@@ -61,19 +61,19 @@
|
|
|
61
61
|
<div class="max-w-md space-y-4">
|
|
62
62
|
<div>
|
|
63
63
|
<label for="username-field" class="block text-sm font-medium mb-1">Username</label>
|
|
64
|
-
<input id="username-field" type="text" class="w-full px-3 py-2 border border-
|
|
64
|
+
<input id="username-field" type="text" class="w-full px-3 py-2 border border-status-error-border rounded" />
|
|
65
65
|
<ValidationError error="Username is required" show={true} />
|
|
66
66
|
</div>
|
|
67
67
|
|
|
68
68
|
<div>
|
|
69
69
|
<label for="multi-email" class="block text-sm font-medium mb-1">Email</label>
|
|
70
|
-
<input id="multi-email" type="email" class="w-full px-3 py-2 border border-
|
|
70
|
+
<input id="multi-email" type="email" class="w-full px-3 py-2 border border-status-error-border rounded" />
|
|
71
71
|
<ValidationError error="Invalid email format" show={true} />
|
|
72
72
|
</div>
|
|
73
73
|
|
|
74
74
|
<div>
|
|
75
75
|
<label for="password-field" class="block text-sm font-medium mb-1">Password</label>
|
|
76
|
-
<input id="password-field" type="password" class="w-full px-3 py-2 border border-
|
|
76
|
+
<input id="password-field" type="password" class="w-full px-3 py-2 border border-status-error-border rounded" />
|
|
77
77
|
<ValidationError error="Password must contain at least one number" show={true} />
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
@@ -82,9 +82,9 @@
|
|
|
82
82
|
<Story name="Hidden State">
|
|
83
83
|
<div class="max-w-md">
|
|
84
84
|
<label for="hidden-email" class="block text-sm font-medium mb-1">Email</label>
|
|
85
|
-
<input id="hidden-email" type="email" class="w-full px-3 py-2 border border-
|
|
85
|
+
<input id="hidden-email" type="email" class="w-full px-3 py-2 border border-stroke-primary rounded" />
|
|
86
86
|
<ValidationError error="This error is hidden" show={false} />
|
|
87
|
-
<p class="text-sm text-
|
|
87
|
+
<p class="text-sm text-muted-foreground mt-2">Validation error is hidden until field is touched</p>
|
|
88
88
|
</div>
|
|
89
89
|
</Story>
|
|
90
90
|
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
type="email"
|
|
97
97
|
aria-describedby="email-error"
|
|
98
98
|
aria-invalid="true"
|
|
99
|
-
class="w-full px-3 py-2 border border-
|
|
99
|
+
class="w-full px-3 py-2 border border-status-error-border rounded focus:ring-accent-danger focus:border-status-error-border"
|
|
100
100
|
value="invalid-email"
|
|
101
101
|
/>
|
|
102
102
|
<ValidationError
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
error="Please enter a valid email address"
|
|
105
105
|
show={true}
|
|
106
106
|
/>
|
|
107
|
-
<p class="text-sm text-
|
|
107
|
+
<p class="text-sm text-muted-foreground mt-4">
|
|
108
108
|
This example shows proper accessibility: the input references the error via aria-describedby,
|
|
109
109
|
and the error has aria-live="assertive" for screen reader announcements.
|
|
110
110
|
</p>
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
{#if error && show}
|
|
19
19
|
<div
|
|
20
20
|
transition:safeSlide={{ duration: 300, easing: cubicOut }}
|
|
21
|
-
class="flex items-start gap-1.5 text-
|
|
21
|
+
class="flex items-start gap-1.5 text-accent-danger mt-2"
|
|
22
22
|
role="alert"
|
|
23
23
|
aria-live="assertive"
|
|
24
24
|
{id}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
<div>
|
|
42
42
|
<button
|
|
43
43
|
onclick={() => (showModal = true)}
|
|
44
|
-
class="px-4 py-2 bg-
|
|
44
|
+
class="px-4 py-2 bg-brand-primary text-white rounded hover:bg-brand-primary"
|
|
45
45
|
>
|
|
46
46
|
Crop Microphone Image
|
|
47
47
|
</button>
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
/>
|
|
55
55
|
|
|
56
56
|
{#if croppedImage}
|
|
57
|
-
<div class="mt-4 p-4 bg-
|
|
57
|
+
<div class="mt-4 p-4 bg-muted rounded">
|
|
58
58
|
<p class="font-semibold mb-2">Cropped Result:</p>
|
|
59
59
|
<img src={URL.createObjectURL(croppedImage)} alt="Cropped result" class="max-w-sm border shadow" />
|
|
60
60
|
</div>
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
<Story name="Interactive Demo">
|
|
66
66
|
<div class="p-6">
|
|
67
67
|
<h3 class="text-lg font-bold mb-4">Image Cropping Demo</h3>
|
|
68
|
-
<p class="mb-2 text-
|
|
68
|
+
<p class="mb-2 text-text-secondary">
|
|
69
69
|
Click the button below to open the crop modal. You can:
|
|
70
70
|
</p>
|
|
71
|
-
<ul class="list-disc ml-6 mt-2 mb-4 text-
|
|
71
|
+
<ul class="list-disc ml-6 mt-2 mb-4 text-text-secondary">
|
|
72
72
|
<li>Drag the crop box to reposition it</li>
|
|
73
73
|
<li>Drag corner handles to resize the crop area (maintains square aspect)</li>
|
|
74
74
|
<li>Use zoom slider or +/- buttons to zoom in/out</li>
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
|
|
79
79
|
<button
|
|
80
80
|
onclick={() => (showModal = true)}
|
|
81
|
-
class="px-6 py-3 bg-
|
|
81
|
+
class="px-6 py-3 bg-brand-primary text-white rounded-lg hover:bg-brand-primary font-medium"
|
|
82
82
|
>
|
|
83
83
|
Start Cropping
|
|
84
84
|
</button>
|
|
@@ -91,12 +91,12 @@
|
|
|
91
91
|
/>
|
|
92
92
|
|
|
93
93
|
{#if croppedImage}
|
|
94
|
-
<div class="mt-6 p-4 bg-
|
|
95
|
-
<p class="font-semibold text-
|
|
94
|
+
<div class="mt-6 p-4 bg-status-success-bg border border-status-success-border rounded-lg">
|
|
95
|
+
<p class="font-semibold text-status-success-text mb-3">Successfully Cropped!</p>
|
|
96
96
|
<img
|
|
97
97
|
src={URL.createObjectURL(croppedImage)}
|
|
98
98
|
alt="Cropped result"
|
|
99
|
-
class="max-w-xs border-2 border-
|
|
99
|
+
class="max-w-xs border-2 border-status-success-border rounded shadow-lg"
|
|
100
100
|
/>
|
|
101
101
|
</div>
|
|
102
102
|
{/if}
|
|
@@ -135,12 +135,12 @@
|
|
|
135
135
|
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
136
136
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
137
137
|
<div
|
|
138
|
-
class="fixed inset-0 z-50 flex items-center justify-center overflow-y-auto overflow-x-hidden bg-
|
|
138
|
+
class="fixed inset-0 z-50 flex items-center justify-center overflow-y-auto overflow-x-hidden bg-bg-primary/50 p-4"
|
|
139
139
|
onclick={(e) => { if (e.target === e.currentTarget) closeModal(); }}
|
|
140
140
|
>
|
|
141
141
|
<div class="relative w-full max-w-lg max-h-full">
|
|
142
|
-
<div class="relative bg-
|
|
143
|
-
<div class="flex items-center justify-between p-4 border-b border-
|
|
142
|
+
<div class="relative bg-card rounded-lg shadow-xl">
|
|
143
|
+
<div class="flex items-center justify-between p-4 border-b border-border rounded-t-lg">
|
|
144
144
|
<h3 class={typography.h2}>
|
|
145
145
|
{labels.cropImageTitle}
|
|
146
146
|
</h3>
|
|
@@ -155,9 +155,9 @@
|
|
|
155
155
|
</div>
|
|
156
156
|
|
|
157
157
|
<div class="p-4 md:p-6 space-y-4">
|
|
158
|
-
<div class="relative w-full aspect-square sm:aspect-[4/3] max-h-80 sm:max-h-96 bg-
|
|
158
|
+
<div class="relative w-full aspect-square sm:aspect-[4/3] max-h-80 sm:max-h-96 bg-bg-secondary rounded-lg overflow-hidden">
|
|
159
159
|
{#if isLoading}
|
|
160
|
-
<div class="absolute inset-0 flex items-center justify-center bg-
|
|
160
|
+
<div class="absolute inset-0 flex items-center justify-center bg-bg-tertiary z-10">
|
|
161
161
|
<span class={typography.smMuted}>{labels.loading}</span>
|
|
162
162
|
</div>
|
|
163
163
|
{/if}
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
max="3"
|
|
195
195
|
step="0.1"
|
|
196
196
|
bind:value={zoom}
|
|
197
|
-
class="flex-1 w-full h-2 bg-
|
|
197
|
+
class="flex-1 w-full h-2 bg-bg-tertiary rounded-lg appearance-none cursor-pointer accent-primary"
|
|
198
198
|
aria-label={labels.zoomLevel}
|
|
199
199
|
/>
|
|
200
200
|
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
</div>
|
|
211
211
|
</div>
|
|
212
212
|
|
|
213
|
-
<div class="flex items-center justify-end gap-3 p-4 border-t border-
|
|
213
|
+
<div class="flex items-center justify-end gap-3 p-4 border-t border-border rounded-b-lg">
|
|
214
214
|
<Button
|
|
215
215
|
type="button"
|
|
216
216
|
variant="alternative"
|
|
@@ -1107,7 +1107,7 @@ describe('ImageUploader', () => {
|
|
|
1107
1107
|
});
|
|
1108
1108
|
|
|
1109
1109
|
// Click inside modal content
|
|
1110
|
-
const modalContent = screen.getByText('Upload photo').closest('.bg-
|
|
1110
|
+
const modalContent = screen.getByText('Upload photo').closest('.bg-card, .dark\\:bg-bg-secondary');
|
|
1111
1111
|
await user.click(modalContent);
|
|
1112
1112
|
|
|
1113
1113
|
// Modal should still be open
|
|
@@ -254,12 +254,12 @@
|
|
|
254
254
|
dropOnElement: true,
|
|
255
255
|
labelIdle: `
|
|
256
256
|
<div class="filepond-custom-label">
|
|
257
|
-
<svg class="w-8 h-8 mb-5 text-
|
|
257
|
+
<svg class="w-8 h-8 mb-5 text-muted-foreground" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
258
258
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4" />
|
|
259
259
|
</svg>
|
|
260
|
-
<span class="text-sm font-medium text-
|
|
261
|
-
<span class="text-[11px] text-
|
|
262
|
-
${constraintsText ? `<span class="text-[10px] text-
|
|
260
|
+
<span class="text-sm font-medium text-text-secondary">${resolvedEmptyLabel}</span>
|
|
261
|
+
<span class="text-[11px] text-muted-foreground mt-2 block">${labels.fileTypes}</span>
|
|
262
|
+
${constraintsText ? `<span class="text-[10px] text-muted-foreground/50 mt-1 block">${constraintsText}</span>` : ''}
|
|
263
263
|
</div>
|
|
264
264
|
`,
|
|
265
265
|
credits: false,
|
|
@@ -612,14 +612,14 @@
|
|
|
612
612
|
<div class="image-uploader-single {className}">
|
|
613
613
|
{#if imageArray.length > 0}
|
|
614
614
|
<!-- Show existing image with remove option -->
|
|
615
|
-
<div class="relative {shapeAspects[shape]} bg-
|
|
615
|
+
<div class="relative {shapeAspects[shape]} bg-muted rounded-xl overflow-hidden group">
|
|
616
616
|
<img
|
|
617
617
|
src={imageArray[0]}
|
|
618
618
|
alt={labels.uploadedAlt}
|
|
619
619
|
class="w-full h-full object-contain"
|
|
620
620
|
/>
|
|
621
621
|
{#if !disabled}
|
|
622
|
-
<div class="absolute inset-0 bg-
|
|
622
|
+
<div class="absolute inset-0 bg-overlay-bg opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center gap-3">
|
|
623
623
|
<Button
|
|
624
624
|
variant="default"
|
|
625
625
|
size="sm"
|
|
@@ -673,7 +673,7 @@
|
|
|
673
673
|
{/if}
|
|
674
674
|
|
|
675
675
|
{#if error}
|
|
676
|
-
<p class={`${typography.smMuted} text-
|
|
676
|
+
<p class={`${typography.smMuted} text-accent-danger mt-2`}>{error}</p>
|
|
677
677
|
{/if}
|
|
678
678
|
</div>
|
|
679
679
|
|
|
@@ -697,7 +697,7 @@
|
|
|
697
697
|
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
698
698
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
699
699
|
<div
|
|
700
|
-
class="relative w-full h-full bg-
|
|
700
|
+
class="relative w-full h-full bg-muted group"
|
|
701
701
|
class:cursor-pointer={onSetMain && index !== 0 && !disabled}
|
|
702
702
|
onclick={() => {
|
|
703
703
|
if (onSetMain && index !== 0 && !disabled) {
|
|
@@ -719,11 +719,11 @@
|
|
|
719
719
|
{#if !disabled}
|
|
720
720
|
<button
|
|
721
721
|
type="button"
|
|
722
|
-
class="remove-btn absolute top-1 right-1 {currentSizeConfig.removeSize} bg-
|
|
722
|
+
class="remove-btn absolute top-1 right-1 {currentSizeConfig.removeSize} bg-card/90 rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity hover:bg-card"
|
|
723
723
|
onclick={(e) => { e.stopPropagation(); handleRemoveImage(index); }}
|
|
724
724
|
aria-label={labels.removePhoto}
|
|
725
725
|
>
|
|
726
|
-
<CloseOutline class="w-3 h-3 text-
|
|
726
|
+
<CloseOutline class="w-3 h-3 text-text-secondary" />
|
|
727
727
|
</button>
|
|
728
728
|
{/if}
|
|
729
729
|
</div>
|
|
@@ -733,8 +733,8 @@
|
|
|
733
733
|
<div
|
|
734
734
|
class="w-full h-full border-2 border-dashed rounded-lg transition-colors flex items-center justify-center cursor-pointer
|
|
735
735
|
{isDropzoneDragOver
|
|
736
|
-
? 'border-
|
|
737
|
-
: 'border-
|
|
736
|
+
? 'border-interactive-border bg-status-info-bg'
|
|
737
|
+
: 'border-stroke-primary bg-bg-secondary hover:border-brand-primary hover:bg-status-info-bg'}"
|
|
738
738
|
role="button"
|
|
739
739
|
tabindex="0"
|
|
740
740
|
onclick={() => openUploadModal(index)}
|
|
@@ -745,7 +745,7 @@
|
|
|
745
745
|
ondrop={(e) => handleDropzoneDrop(e, index)}
|
|
746
746
|
aria-label={labels.addPhotoAria}
|
|
747
747
|
>
|
|
748
|
-
<PlusOutline class={currentSizeConfig.iconClass + ' text-
|
|
748
|
+
<PlusOutline class={currentSizeConfig.iconClass + ' text-muted-foreground'} />
|
|
749
749
|
</div>
|
|
750
750
|
{/if}
|
|
751
751
|
</div>
|
|
@@ -758,7 +758,7 @@
|
|
|
758
758
|
{/if}
|
|
759
759
|
|
|
760
760
|
{#if error}
|
|
761
|
-
<p class={`${typography.smMuted} text-
|
|
761
|
+
<p class={`${typography.smMuted} text-accent-danger mt-2`}>{error}</p>
|
|
762
762
|
{/if}
|
|
763
763
|
</div>
|
|
764
764
|
|
|
@@ -767,7 +767,7 @@
|
|
|
767
767
|
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
768
768
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
769
769
|
<div
|
|
770
|
-
class="fixed inset-0 z-50 flex items-center justify-center bg-
|
|
770
|
+
class="fixed inset-0 z-50 flex items-center justify-center bg-bg-primary/50 p-4"
|
|
771
771
|
onclick={() => (showFilePondModal = false)}
|
|
772
772
|
ondragover={(e) => e.preventDefault()}
|
|
773
773
|
ondrop={(e) => e.preventDefault()}
|
|
@@ -775,14 +775,14 @@
|
|
|
775
775
|
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
776
776
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
777
777
|
<div
|
|
778
|
-
class="bg-
|
|
778
|
+
class="bg-card rounded-xl shadow-xl w-full max-w-md overflow-hidden"
|
|
779
779
|
onclick={(e) => e.stopPropagation()}
|
|
780
780
|
>
|
|
781
|
-
<div class="flex items-center justify-between p-4 border-b border-
|
|
781
|
+
<div class="flex items-center justify-between p-4 border-b border-border">
|
|
782
782
|
<h3 class={typography.h3}>{labels.uploadPhotoTitle}</h3>
|
|
783
783
|
<button
|
|
784
784
|
type="button"
|
|
785
|
-
class="p-1.5 text-
|
|
785
|
+
class="p-1.5 text-muted-foreground hover:text-text-secondary transition-colors"
|
|
786
786
|
onclick={() => (showFilePondModal = false)}
|
|
787
787
|
aria-label={labels.closeModal}
|
|
788
788
|
>
|
|
@@ -794,8 +794,8 @@
|
|
|
794
794
|
<div
|
|
795
795
|
class="dropzone-native border-2 border-dashed rounded-lg transition-all duration-200 min-h-[200px] flex flex-col items-center justify-center cursor-pointer
|
|
796
796
|
{isModalDragOver
|
|
797
|
-
? 'border-
|
|
798
|
-
: 'border-
|
|
797
|
+
? 'border-interactive-border bg-status-info-bg'
|
|
798
|
+
: 'border-stroke-primary bg-bg-secondary hover:border-brand-primary hover:bg-status-info-bg/50'}"
|
|
799
799
|
role="button"
|
|
800
800
|
tabindex="0"
|
|
801
801
|
onclick={() => modalFileInput?.click()}
|
|
@@ -805,7 +805,7 @@
|
|
|
805
805
|
ondragleave={(e) => { e.preventDefault(); e.stopPropagation(); isModalDragOver = false; }}
|
|
806
806
|
ondrop={(e) => handleModalDrop(e)}
|
|
807
807
|
>
|
|
808
|
-
<PlusOutline class="w-8 h-8 mb-2 text-
|
|
808
|
+
<PlusOutline class="w-8 h-8 mb-2 text-muted-foreground" />
|
|
809
809
|
<span class={typography.smMuted}>{resolvedEmptyLabel}</span>
|
|
810
810
|
<span class={`${typography.xsMuted} mt-1`}>{labels.fileTypes}</span>
|
|
811
811
|
</div>
|
|
@@ -874,58 +874,40 @@
|
|
|
874
874
|
|
|
875
875
|
/* FilePond drag hover state */
|
|
876
876
|
:global(.filepond-wrapper .filepond--root[data-hopper-state="drag-over"]) {
|
|
877
|
-
border-color:
|
|
878
|
-
background-color:
|
|
879
|
-
}
|
|
880
|
-
|
|
881
|
-
:global(.dark .filepond-wrapper .filepond--root[data-hopper-state="drag-over"]) {
|
|
882
|
-
background-color: rgba(30, 58, 138, 0.3); /* blue-900/30 */
|
|
877
|
+
border-color: hsl(var(--brand-primary));
|
|
878
|
+
background-color: hsl(var(--status-info-bg));
|
|
883
879
|
}
|
|
884
880
|
|
|
885
881
|
:global(.filepond-wrapper .filepond--root[data-hopper-state="drag-over"] .filepond--panel-root) {
|
|
886
|
-
border-color:
|
|
882
|
+
border-color: hsl(var(--brand-primary));
|
|
887
883
|
}
|
|
888
884
|
|
|
889
885
|
/* Modal FilePond styling */
|
|
890
886
|
:global(.filepond-wrapper) {
|
|
891
|
-
border: 2px dashed
|
|
887
|
+
border: 2px dashed hsl(var(--stroke-primary));
|
|
892
888
|
border-radius: 0.5rem; /* rounded-lg */
|
|
893
|
-
background-color:
|
|
889
|
+
background-color: hsl(var(--bg-secondary));
|
|
894
890
|
transition-property: color, background-color, border-color;
|
|
895
891
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
896
892
|
transition-duration: 150ms;
|
|
897
893
|
}
|
|
898
894
|
|
|
899
|
-
:global(.dark .filepond-wrapper) {
|
|
900
|
-
border-color: rgb(75 85 99); /* gray-600 */
|
|
901
|
-
background-color: rgb(31 41 55); /* gray-800 */
|
|
902
|
-
}
|
|
903
|
-
|
|
904
895
|
:global(.filepond-wrapper:hover) {
|
|
905
|
-
border-color:
|
|
896
|
+
border-color: hsl(var(--brand-primary));
|
|
906
897
|
}
|
|
907
898
|
|
|
908
899
|
/* Single mode dropzone styling */
|
|
909
900
|
.filepond-wrapper-single {
|
|
910
|
-
border: 2px dashed
|
|
911
|
-
background-color:
|
|
901
|
+
border: 2px dashed hsl(var(--stroke-primary));
|
|
902
|
+
background-color: hsl(var(--bg-secondary));
|
|
912
903
|
transition-property: color, background-color, border-color;
|
|
913
904
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
914
905
|
transition-duration: 150ms;
|
|
915
906
|
}
|
|
916
907
|
|
|
917
|
-
:global(.dark) .filepond-wrapper-single {
|
|
918
|
-
border-color: rgb(75 85 99); /* gray-600 */
|
|
919
|
-
background-color: rgb(31 41 55); /* gray-800 */
|
|
920
|
-
}
|
|
921
|
-
|
|
922
908
|
.filepond-wrapper-single:hover {
|
|
923
|
-
border-color:
|
|
924
|
-
background-color:
|
|
925
|
-
}
|
|
926
|
-
|
|
927
|
-
:global(.dark) .filepond-wrapper-single:hover {
|
|
928
|
-
background-color: rgba(30, 58, 138, 0.2); /* blue-900/20 */
|
|
909
|
+
border-color: hsl(var(--brand-primary));
|
|
910
|
+
background-color: hsl(var(--status-info-bg));
|
|
929
911
|
}
|
|
930
912
|
|
|
931
913
|
.filepond-wrapper-single :global(.filepond--root) {
|
|
@@ -954,12 +936,8 @@
|
|
|
954
936
|
|
|
955
937
|
/* Direct drag-over state for dropzone */
|
|
956
938
|
.dropzone-drag-over {
|
|
957
|
-
border-color:
|
|
958
|
-
background-color:
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
:global(.dark) .dropzone-drag-over {
|
|
962
|
-
background-color: rgba(30, 58, 138, 0.4); /* blue-900/40 */
|
|
939
|
+
border-color: hsl(var(--brand-primary));
|
|
940
|
+
background-color: hsl(var(--status-info-bg));
|
|
963
941
|
}
|
|
964
942
|
|
|
965
943
|
/* Custom label styling inside FilePond */
|
|
@@ -985,7 +963,7 @@
|
|
|
985
963
|
}
|
|
986
964
|
|
|
987
965
|
:global(.sortable-chosen) {
|
|
988
|
-
box-shadow: 0 0 0 2px
|
|
966
|
+
box-shadow: 0 0 0 2px hsl(var(--focus-ring));
|
|
989
967
|
}
|
|
990
968
|
|
|
991
969
|
:global(.sortable-drag) {
|