@getmicdrop/svelte-components 5.3.2 → 5.3.6
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/Calendar/MiniMonthCalendar.svelte +10 -10
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts +6 -6
- package/dist/calendar/OrderSummary/OrderSummary.svelte +2 -2
- package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +2 -2
- package/dist/calendar/PublicCard/PublicCard.svelte +2 -2
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts +2 -2
- package/dist/calendar/ShowCard/ShowCard.svelte +2 -2
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts +2 -2
- package/dist/patterns/navigation/Header.svelte +38 -27
- package/dist/patterns/page/PageLayout.svelte +1 -1
- package/dist/primitives/Accordion/Accordion.stories.svelte +75 -0
- package/dist/primitives/Accordion/Accordion.stories.svelte.d.ts +28 -0
- package/dist/primitives/Accordion/Accordion.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Alert/Alert.stories.svelte +88 -0
- package/dist/primitives/Alert/Alert.stories.svelte.d.ts +28 -0
- package/dist/primitives/Alert/Alert.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Avatar/Avatar.stories.svelte +94 -0
- package/dist/primitives/Avatar/Avatar.stories.svelte.d.ts +28 -0
- package/dist/primitives/Avatar/Avatar.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +1 -1
- package/dist/primitives/Button/Button.svelte +87 -22
- package/dist/primitives/Button/Button.svelte.d.ts +4 -0
- package/dist/primitives/Button/Button.svelte.d.ts.map +1 -1
- package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -0
- package/dist/primitives/Checkbox/Checkbox.stories.svelte.d.ts +28 -0
- package/dist/primitives/Checkbox/Checkbox.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Drawer/Drawer.stories.svelte +100 -0
- package/dist/primitives/Drawer/Drawer.stories.svelte.d.ts +28 -0
- package/dist/primitives/Drawer/Drawer.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -0
- package/dist/primitives/Dropdown/Dropdown.stories.svelte.d.ts +28 -0
- package/dist/primitives/Dropdown/Dropdown.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Dropdown/Dropdown.svelte +13 -15
- package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Icon.svelte +2 -1
- package/dist/primitives/Icons/Icon.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Select.stories.svelte +112 -0
- package/dist/primitives/Input/Select.stories.svelte.d.ts +28 -0
- package/dist/primitives/Input/Select.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Input/Textarea.stories.svelte +137 -0
- package/dist/primitives/Input/Textarea.stories.svelte.d.ts +28 -0
- package/dist/primitives/Input/Textarea.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -0
- package/dist/primitives/Pagination/Pagination.stories.svelte.d.ts +28 -0
- package/dist/primitives/Pagination/Pagination.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Pagination/Pagination.svelte +3 -3
- package/dist/primitives/Pagination/Pagination.svelte.d.ts +1 -1
- package/dist/primitives/Radio/Radio.stories.svelte +80 -0
- package/dist/primitives/Radio/Radio.stories.svelte.d.ts +28 -0
- package/dist/primitives/Radio/Radio.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -0
- package/dist/primitives/Skeleton/Skeleton.stories.svelte.d.ts +28 -0
- package/dist/primitives/Skeleton/Skeleton.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -0
- package/dist/primitives/Tabs/Tabs.stories.svelte.d.ts +28 -0
- package/dist/primitives/Tabs/Tabs.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Tabs/Tabs.svelte +1 -1
- package/dist/primitives/Toggle.svelte +4 -4
- package/dist/primitives/ValidationError.spec.js +25 -1
- package/dist/primitives/ValidationError.stories.svelte +24 -0
- package/dist/primitives/ValidationError.stories.svelte.d.ts.map +1 -1
- package/dist/primitives/ValidationError.svelte +8 -4
- package/dist/primitives/ValidationError.svelte.d.ts +2 -0
- package/dist/primitives/ValidationError.svelte.d.ts.map +1 -1
- package/dist/recipes/CropImage/CropImage.svelte +3 -3
- package/dist/recipes/SuperLogin/SuperLogin.svelte +34 -23
- package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +2 -1
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/MultiSelect.svelte +2 -2
- package/dist/recipes/modals/InputModal.svelte +2 -1
- package/dist/recipes/modals/InputModal.svelte.d.ts.map +1 -1
- package/dist/stories/ComponentConsolidation.stories.svelte +276 -188
- package/dist/stories/ComponentConsolidation.stories.svelte.d.ts.map +1 -1
- package/dist/stories/PatternsGallery.stories.svelte +19 -0
- package/dist/stories/PatternsGallery.stories.svelte.d.ts +28 -0
- package/dist/stories/PatternsGallery.stories.svelte.d.ts.map +1 -0
- package/dist/stories/PatternsGallery.svelte +388 -0
- package/dist/stories/PatternsGallery.svelte.d.ts +4 -0
- package/dist/stories/PatternsGallery.svelte.d.ts.map +1 -0
- package/dist/stories/PrimitivesGallery.stories.svelte +19 -0
- package/dist/stories/PrimitivesGallery.stories.svelte.d.ts +28 -0
- package/dist/stories/PrimitivesGallery.stories.svelte.d.ts.map +1 -0
- package/dist/stories/PrimitivesGallery.svelte +752 -0
- package/dist/stories/PrimitivesGallery.svelte.d.ts +4 -0
- package/dist/stories/PrimitivesGallery.svelte.d.ts.map +1 -0
- package/dist/stories/RecipesGallery.stories.svelte +19 -0
- package/dist/stories/RecipesGallery.stories.svelte.d.ts +28 -0
- package/dist/stories/RecipesGallery.stories.svelte.d.ts.map +1 -0
- package/dist/stories/RecipesGallery.svelte +441 -0
- package/dist/stories/RecipesGallery.svelte.d.ts +4 -0
- package/dist/stories/RecipesGallery.svelte.d.ts.map +1 -0
- package/package.json +3 -2
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
readOnly = false,
|
|
14
14
|
showPartialPreview = true,
|
|
15
15
|
disablePastNavigation = false,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
onDateSelect,
|
|
17
|
+
onDayClick,
|
|
18
|
+
onMonthChange,
|
|
19
19
|
} = $props();
|
|
20
20
|
|
|
21
21
|
let currentDate = new Date();
|
|
@@ -193,15 +193,15 @@
|
|
|
193
193
|
|
|
194
194
|
if (isSelected) {
|
|
195
195
|
triggerHaptic('medium');
|
|
196
|
-
|
|
196
|
+
onDateSelect?.({ date: day.dateStr, selected: false });
|
|
197
197
|
} else {
|
|
198
198
|
triggerHaptic('light');
|
|
199
|
-
|
|
199
|
+
onDateSelect?.({ date: day.dateStr, selected: true });
|
|
200
200
|
}
|
|
201
201
|
} else if (variant === 'display' || variant === 'public') {
|
|
202
202
|
if (day.hasEvents) {
|
|
203
203
|
triggerHaptic('light');
|
|
204
|
-
|
|
204
|
+
onDayClick?.({ date: day.dateStr, events: day.events });
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
}
|
|
@@ -218,15 +218,15 @@
|
|
|
218
218
|
|
|
219
219
|
if (isSelected) {
|
|
220
220
|
triggerHaptic('medium');
|
|
221
|
-
|
|
221
|
+
onDateSelect?.({ date: day.dateStr, selected: false });
|
|
222
222
|
} else {
|
|
223
223
|
triggerHaptic('light');
|
|
224
|
-
|
|
224
|
+
onDateSelect?.({ date: day.dateStr, selected: true });
|
|
225
225
|
}
|
|
226
226
|
} else if (variant === 'display' || variant === 'public') {
|
|
227
227
|
if (day.hasEvents) {
|
|
228
228
|
triggerHaptic('light');
|
|
229
|
-
|
|
229
|
+
onDayClick?.({ date: day.dateStr, events: day.events });
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
}
|
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
triggerHaptic('medium');
|
|
282
|
-
|
|
282
|
+
onMonthChange?.({ year: currentYear, month: currentMonth });
|
|
283
283
|
return;
|
|
284
284
|
}
|
|
285
285
|
|
|
@@ -14,9 +14,9 @@ declare const MiniMonthCalendar: import("svelte").Component<{
|
|
|
14
14
|
readOnly?: boolean;
|
|
15
15
|
showPartialPreview?: boolean;
|
|
16
16
|
disablePastNavigation?: boolean;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
onDateSelect: any;
|
|
18
|
+
onDayClick: any;
|
|
19
|
+
onMonthChange: any;
|
|
20
20
|
}, {}, "selectedDates">;
|
|
21
21
|
type $$ComponentProps = {
|
|
22
22
|
variant?: string;
|
|
@@ -29,8 +29,8 @@ type $$ComponentProps = {
|
|
|
29
29
|
readOnly?: boolean;
|
|
30
30
|
showPartialPreview?: boolean;
|
|
31
31
|
disablePastNavigation?: boolean;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
onDateSelect: any;
|
|
33
|
+
onDayClick: any;
|
|
34
|
+
onMonthChange: any;
|
|
35
35
|
};
|
|
36
36
|
//# sourceMappingURL=MiniMonthCalendar.svelte.d.ts.map
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
maxServiceFeeCents: 0,
|
|
24
24
|
taxPercentage: 0,
|
|
25
25
|
},
|
|
26
|
-
|
|
26
|
+
onPriceUpdate,
|
|
27
27
|
} = $props();
|
|
28
28
|
|
|
29
29
|
let showOrderSummaryOnMobile = $state(false);
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
let total = $derived(Math.max(0, subtotal + fees + taxes - (promoApplied && !currentPromoRule?.provideDiscount ? promoDiscount : 0)));
|
|
102
102
|
|
|
103
103
|
$effect(() => {
|
|
104
|
-
|
|
104
|
+
onPriceUpdate?.({ subtotal, fees, taxes, total, promoSavings });
|
|
105
105
|
});
|
|
106
106
|
</script>
|
|
107
107
|
|
|
@@ -16,7 +16,7 @@ declare const OrderSummary: import("svelte").Component<{
|
|
|
16
16
|
executePurchase?: any;
|
|
17
17
|
elements?: any;
|
|
18
18
|
venueServiceCharge?: Record<string, any>;
|
|
19
|
-
|
|
19
|
+
onPriceUpdate: any;
|
|
20
20
|
}, {}, "">;
|
|
21
21
|
type $$ComponentProps = {
|
|
22
22
|
loading?: boolean;
|
|
@@ -31,6 +31,6 @@ type $$ComponentProps = {
|
|
|
31
31
|
executePurchase?: any;
|
|
32
32
|
elements?: any;
|
|
33
33
|
venueServiceCharge?: Record<string, any>;
|
|
34
|
-
|
|
34
|
+
onPriceUpdate: any;
|
|
35
35
|
};
|
|
36
36
|
//# sourceMappingURL=OrderSummary.svelte.d.ts.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
events = [],
|
|
4
4
|
view = "row",
|
|
5
5
|
placeholderImage = null,
|
|
6
|
-
|
|
6
|
+
onEventClick,
|
|
7
7
|
} = $props();
|
|
8
8
|
|
|
9
9
|
let isSmallScreen = $state(false);
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
function handleEventClick(event) {
|
|
36
|
-
|
|
36
|
+
onEventClick?.(event);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
function handleKeydown(e, event) {
|
|
@@ -7,12 +7,12 @@ declare const PublicCard: import("svelte").Component<{
|
|
|
7
7
|
events?: any[];
|
|
8
8
|
view?: string;
|
|
9
9
|
placeholderImage?: any;
|
|
10
|
-
|
|
10
|
+
onEventClick: any;
|
|
11
11
|
}, {}, "">;
|
|
12
12
|
type $$ComponentProps = {
|
|
13
13
|
events?: any[];
|
|
14
14
|
view?: string;
|
|
15
15
|
placeholderImage?: any;
|
|
16
|
-
|
|
16
|
+
onEventClick: any;
|
|
17
17
|
};
|
|
18
18
|
//# sourceMappingURL=PublicCard.svelte.d.ts.map
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
}
|
|
32
32
|
return timeStr;
|
|
33
33
|
},
|
|
34
|
-
|
|
34
|
+
onShowtimeSelect,
|
|
35
35
|
} = $props();
|
|
36
36
|
|
|
37
37
|
let selectedDate = $state(null);
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
function handleSelect(e) {
|
|
41
41
|
selectedDate = e.date;
|
|
42
|
-
|
|
42
|
+
onShowtimeSelect?.({ date: e.date, ...e });
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
async function handleShare() {
|
|
@@ -9,7 +9,7 @@ declare const ShowCard: import("svelte").Component<{
|
|
|
9
9
|
showTitle?: boolean;
|
|
10
10
|
formatDateTime?: Function;
|
|
11
11
|
formatTimeline?: Function;
|
|
12
|
-
|
|
12
|
+
onShowtimeSelect: any;
|
|
13
13
|
}, {}, "">;
|
|
14
14
|
type $$ComponentProps = {
|
|
15
15
|
event?: Record<string, any>;
|
|
@@ -17,6 +17,6 @@ type $$ComponentProps = {
|
|
|
17
17
|
showTitle?: boolean;
|
|
18
18
|
formatDateTime?: Function;
|
|
19
19
|
formatTimeline?: Function;
|
|
20
|
-
|
|
20
|
+
onShowtimeSelect: any;
|
|
21
21
|
};
|
|
22
22
|
//# sourceMappingURL=ShowCard.svelte.d.ts.map
|
|
@@ -73,12 +73,13 @@
|
|
|
73
73
|
<div class="flex items-center gap-3">
|
|
74
74
|
<DarkModeToggle />
|
|
75
75
|
<div class="relative ml-1">
|
|
76
|
-
<
|
|
77
|
-
|
|
76
|
+
<Button
|
|
77
|
+
variant="avatar"
|
|
78
|
+
size="md"
|
|
78
79
|
onclick={() => showDesktopDropdown = !showDesktopDropdown}
|
|
79
80
|
>
|
|
80
81
|
<Avatar src={avatar} rounded size="md" />
|
|
81
|
-
</
|
|
82
|
+
</Button>
|
|
82
83
|
|
|
83
84
|
{#if showDesktopDropdown}
|
|
84
85
|
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
@@ -90,20 +91,22 @@
|
|
|
90
91
|
<span class="block text-xs text-gray-500 dark:text-gray-400 mt-0.5">{email || ""}</span>
|
|
91
92
|
</div>
|
|
92
93
|
{#each dropdownLinks as { label, href }}
|
|
93
|
-
<
|
|
94
|
-
|
|
94
|
+
<Button
|
|
95
|
+
variant="menu-item"
|
|
96
|
+
size="md"
|
|
95
97
|
onclick={() => handleDropdownItemClick(href)}
|
|
96
98
|
>
|
|
97
99
|
{label}
|
|
98
|
-
</
|
|
100
|
+
</Button>
|
|
99
101
|
{/each}
|
|
100
102
|
<div class="h-px bg-gray-200 dark:bg-gray-700"></div>
|
|
101
|
-
<
|
|
102
|
-
|
|
103
|
+
<Button
|
|
104
|
+
variant="menu-item-danger"
|
|
105
|
+
size="md"
|
|
103
106
|
onclick={() => { showDesktopDropdown = false; signoutHandler(); }}
|
|
104
107
|
>
|
|
105
108
|
Sign out
|
|
106
|
-
</
|
|
109
|
+
</Button>
|
|
107
110
|
</div>
|
|
108
111
|
{/if}
|
|
109
112
|
</div>
|
|
@@ -131,19 +134,23 @@
|
|
|
131
134
|
<DarkModeToggle />
|
|
132
135
|
|
|
133
136
|
<div class="relative ml-1">
|
|
134
|
-
<
|
|
135
|
-
|
|
137
|
+
<Button
|
|
138
|
+
variant="avatar"
|
|
139
|
+
size="md"
|
|
140
|
+
class="block md:hidden"
|
|
136
141
|
onclick={() => showMobileSheet = true}
|
|
137
142
|
>
|
|
138
143
|
<Avatar src={avatar} rounded size="md" />
|
|
139
|
-
</
|
|
144
|
+
</Button>
|
|
140
145
|
|
|
141
|
-
<
|
|
142
|
-
|
|
146
|
+
<Button
|
|
147
|
+
variant="avatar"
|
|
148
|
+
size="md"
|
|
149
|
+
class="hidden md:block"
|
|
143
150
|
onclick={() => showDesktopDropdown = !showDesktopDropdown}
|
|
144
151
|
>
|
|
145
152
|
<Avatar src={avatar} rounded size="md" />
|
|
146
|
-
</
|
|
153
|
+
</Button>
|
|
147
154
|
|
|
148
155
|
{#if showDesktopDropdown}
|
|
149
156
|
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
@@ -155,20 +162,22 @@
|
|
|
155
162
|
<span class="block text-xs text-gray-500 dark:text-gray-400 mt-0.5">{email || ""}</span>
|
|
156
163
|
</div>
|
|
157
164
|
{#each dropdownLinks as { label, href }}
|
|
158
|
-
<
|
|
159
|
-
|
|
165
|
+
<Button
|
|
166
|
+
variant="menu-item"
|
|
167
|
+
size="md"
|
|
160
168
|
onclick={() => handleDropdownItemClick(href)}
|
|
161
169
|
>
|
|
162
170
|
{label}
|
|
163
|
-
</
|
|
171
|
+
</Button>
|
|
164
172
|
{/each}
|
|
165
173
|
<div class="h-px bg-gray-200 dark:bg-gray-700"></div>
|
|
166
|
-
<
|
|
167
|
-
|
|
174
|
+
<Button
|
|
175
|
+
variant="menu-item-danger"
|
|
176
|
+
size="md"
|
|
168
177
|
onclick={() => { showDesktopDropdown = false; signoutHandler(); }}
|
|
169
178
|
>
|
|
170
179
|
Sign out
|
|
171
|
-
</
|
|
180
|
+
</Button>
|
|
172
181
|
</div>
|
|
173
182
|
{/if}
|
|
174
183
|
</div>
|
|
@@ -202,20 +211,22 @@
|
|
|
202
211
|
|
|
203
212
|
<div class="py-2">
|
|
204
213
|
{#each dropdownLinks as { label, href }}
|
|
205
|
-
<
|
|
214
|
+
<Button
|
|
215
|
+
variant="menu-item"
|
|
216
|
+
size="lg"
|
|
206
217
|
onclick={() => handleMobileSheetItemClick(href)}
|
|
207
|
-
class="w-full text-left px-6 py-4 text-base font-medium text-gray-900 dark:text-white bg-transparent border-none cursor-pointer transition-colors duration-150 active:bg-gray-100 dark:active:bg-gray-700"
|
|
208
218
|
>
|
|
209
219
|
{label}
|
|
210
|
-
</
|
|
220
|
+
</Button>
|
|
211
221
|
{/each}
|
|
212
222
|
|
|
213
|
-
<
|
|
223
|
+
<Button
|
|
224
|
+
variant="menu-item-danger"
|
|
225
|
+
size="lg"
|
|
214
226
|
onclick={() => { showMobileSheet = false; signoutHandler(); }}
|
|
215
|
-
class="w-full text-left px-6 py-4 text-base font-medium text-red-600 dark:text-red-500 bg-transparent border-none cursor-pointer transition-colors duration-150 active:bg-gray-100 dark:active:bg-gray-700"
|
|
216
227
|
>
|
|
217
228
|
Sign Out
|
|
218
|
-
</
|
|
229
|
+
</Button>
|
|
219
230
|
</div>
|
|
220
231
|
|
|
221
232
|
<div class="border-t-8 border-gray-100 dark:border-gray-700">
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import Accordion from './Accordion.svelte';
|
|
4
|
+
import AccordionItem from './AccordionItem.svelte';
|
|
5
|
+
|
|
6
|
+
const { Story } = defineMeta({
|
|
7
|
+
title: 'Primitives/Accordion',
|
|
8
|
+
component: Accordion,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
parameters: {
|
|
11
|
+
docs: {
|
|
12
|
+
description: {
|
|
13
|
+
component: 'Collapsible content sections. Use AccordionItem children to create expandable sections.',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<Story name="Default">
|
|
21
|
+
{#snippet template()}
|
|
22
|
+
<div class="max-w-xl">
|
|
23
|
+
<Accordion>
|
|
24
|
+
<AccordionItem title="What is Micdrop?">
|
|
25
|
+
<p class="text-gray-600">Micdrop is a platform for comedians and venues to manage shows, ticket sales, and performer booking.</p>
|
|
26
|
+
</AccordionItem>
|
|
27
|
+
<AccordionItem title="How do I get started?">
|
|
28
|
+
<p class="text-gray-600">Sign up for an account, set up your venue or performer profile, and start creating shows.</p>
|
|
29
|
+
</AccordionItem>
|
|
30
|
+
<AccordionItem title="What are the fees?">
|
|
31
|
+
<p class="text-gray-600">Micdrop charges a small percentage per ticket sold. There are no monthly fees.</p>
|
|
32
|
+
</AccordionItem>
|
|
33
|
+
</Accordion>
|
|
34
|
+
</div>
|
|
35
|
+
{/snippet}
|
|
36
|
+
</Story>
|
|
37
|
+
|
|
38
|
+
<Story name="Single Item Open">
|
|
39
|
+
{#snippet template()}
|
|
40
|
+
<div class="max-w-xl">
|
|
41
|
+
<Accordion>
|
|
42
|
+
<AccordionItem title="Expanded by default" open={true}>
|
|
43
|
+
<p class="text-gray-600">This item starts expanded.</p>
|
|
44
|
+
</AccordionItem>
|
|
45
|
+
<AccordionItem title="Collapsed item">
|
|
46
|
+
<p class="text-gray-600">Click to expand this item.</p>
|
|
47
|
+
</AccordionItem>
|
|
48
|
+
</Accordion>
|
|
49
|
+
</div>
|
|
50
|
+
{/snippet}
|
|
51
|
+
</Story>
|
|
52
|
+
|
|
53
|
+
<Story name="With Rich Content">
|
|
54
|
+
{#snippet template()}
|
|
55
|
+
<div class="max-w-xl">
|
|
56
|
+
<Accordion>
|
|
57
|
+
<AccordionItem title="Features">
|
|
58
|
+
<ul class="list-disc list-inside text-gray-600 space-y-2">
|
|
59
|
+
<li>Online ticket sales</li>
|
|
60
|
+
<li>Performer management</li>
|
|
61
|
+
<li>Show scheduling</li>
|
|
62
|
+
<li>Analytics dashboard</li>
|
|
63
|
+
</ul>
|
|
64
|
+
</AccordionItem>
|
|
65
|
+
<AccordionItem title="Pricing">
|
|
66
|
+
<div class="space-y-2">
|
|
67
|
+
<p class="text-gray-600"><strong>Basic:</strong> Free</p>
|
|
68
|
+
<p class="text-gray-600"><strong>Pro:</strong> $29/month</p>
|
|
69
|
+
<p class="text-gray-600"><strong>Enterprise:</strong> Contact us</p>
|
|
70
|
+
</div>
|
|
71
|
+
</AccordionItem>
|
|
72
|
+
</Accordion>
|
|
73
|
+
</div>
|
|
74
|
+
{/snippet}
|
|
75
|
+
</Story>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export default Accordion;
|
|
2
|
+
type Accordion = SvelteComponent<{
|
|
3
|
+
[x: string]: never;
|
|
4
|
+
}, {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
}, {}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
declare const Accordion: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
+
[x: string]: never;
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}, {}, string>;
|
|
14
|
+
import Accordion from './Accordion.svelte';
|
|
15
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
16
|
+
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
17
|
+
$$bindings?: Bindings;
|
|
18
|
+
} & Exports;
|
|
19
|
+
(internal: unknown, props: {
|
|
20
|
+
$$events?: Events;
|
|
21
|
+
$$slots?: Slots;
|
|
22
|
+
}): Exports & {
|
|
23
|
+
$set?: any;
|
|
24
|
+
$on?: any;
|
|
25
|
+
};
|
|
26
|
+
z_$$bindings?: Bindings;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=Accordion.stories.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.stories.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Accordion/Accordion.stories.svelte.js"],"names":[],"mappings":";;;;;;;;AAyFA;;;;mBAAqH;sBArF7F,oBAAoB;6CA4EC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,WAAW,OAAO,SAAS;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import Alert from './Alert.svelte';
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
title: 'Primitives/Alert',
|
|
7
|
+
component: Alert,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
color: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: ['info', 'success', 'warning', 'error'],
|
|
13
|
+
},
|
|
14
|
+
dismissible: { control: 'boolean' },
|
|
15
|
+
},
|
|
16
|
+
parameters: {
|
|
17
|
+
docs: {
|
|
18
|
+
description: {
|
|
19
|
+
component: 'Contextual feedback messages for user actions or system states.',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<Story name="Info" args={{ color: 'info' }}>
|
|
27
|
+
{#snippet template(args)}
|
|
28
|
+
<Alert {...args}>
|
|
29
|
+
<span class="font-medium">Info!</span> This is an informational alert with helpful information.
|
|
30
|
+
</Alert>
|
|
31
|
+
{/snippet}
|
|
32
|
+
</Story>
|
|
33
|
+
|
|
34
|
+
<Story name="Success" args={{ color: 'success' }}>
|
|
35
|
+
{#snippet template(args)}
|
|
36
|
+
<Alert {...args}>
|
|
37
|
+
<span class="font-medium">Success!</span> Your changes have been saved successfully.
|
|
38
|
+
</Alert>
|
|
39
|
+
{/snippet}
|
|
40
|
+
</Story>
|
|
41
|
+
|
|
42
|
+
<Story name="Warning" args={{ color: 'warning' }}>
|
|
43
|
+
{#snippet template(args)}
|
|
44
|
+
<Alert {...args}>
|
|
45
|
+
<span class="font-medium">Warning!</span> Please review this information before proceeding.
|
|
46
|
+
</Alert>
|
|
47
|
+
{/snippet}
|
|
48
|
+
</Story>
|
|
49
|
+
|
|
50
|
+
<Story name="Error" args={{ color: 'error' }}>
|
|
51
|
+
{#snippet template(args)}
|
|
52
|
+
<Alert {...args}>
|
|
53
|
+
<span class="font-medium">Error!</span> Something went wrong. Please try again.
|
|
54
|
+
</Alert>
|
|
55
|
+
{/snippet}
|
|
56
|
+
</Story>
|
|
57
|
+
|
|
58
|
+
<Story name="Dismissible">
|
|
59
|
+
{#snippet template()}
|
|
60
|
+
<div class="space-y-4">
|
|
61
|
+
<Alert color="info" dismissible>
|
|
62
|
+
Click the X to dismiss this alert.
|
|
63
|
+
</Alert>
|
|
64
|
+
<Alert color="success" dismissible>
|
|
65
|
+
This success alert can also be dismissed.
|
|
66
|
+
</Alert>
|
|
67
|
+
</div>
|
|
68
|
+
{/snippet}
|
|
69
|
+
</Story>
|
|
70
|
+
|
|
71
|
+
<Story name="All Variants">
|
|
72
|
+
{#snippet template()}
|
|
73
|
+
<div class="space-y-4">
|
|
74
|
+
<Alert color="info">
|
|
75
|
+
<span class="font-medium">Info:</span> Just letting you know about something.
|
|
76
|
+
</Alert>
|
|
77
|
+
<Alert color="success">
|
|
78
|
+
<span class="font-medium">Success:</span> Great job! Everything worked.
|
|
79
|
+
</Alert>
|
|
80
|
+
<Alert color="warning">
|
|
81
|
+
<span class="font-medium">Warning:</span> Be careful about this action.
|
|
82
|
+
</Alert>
|
|
83
|
+
<Alert color="error">
|
|
84
|
+
<span class="font-medium">Error:</span> Something went wrong.
|
|
85
|
+
</Alert>
|
|
86
|
+
</div>
|
|
87
|
+
{/snippet}
|
|
88
|
+
</Story>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export default Alert;
|
|
2
|
+
type Alert = SvelteComponent<{
|
|
3
|
+
[x: string]: never;
|
|
4
|
+
}, {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
}, {}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
declare const Alert: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
+
[x: string]: never;
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}, {}, string>;
|
|
14
|
+
import Alert from './Alert.svelte';
|
|
15
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
16
|
+
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
17
|
+
$$bindings?: Bindings;
|
|
18
|
+
} & Exports;
|
|
19
|
+
(internal: unknown, props: {
|
|
20
|
+
$$events?: Events;
|
|
21
|
+
$$slots?: Slots;
|
|
22
|
+
}): Exports & {
|
|
23
|
+
$set?: any;
|
|
24
|
+
$on?: any;
|
|
25
|
+
};
|
|
26
|
+
z_$$bindings?: Bindings;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=Alert.stories.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.stories.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Alert/Alert.stories.svelte.js"],"names":[],"mappings":";;;;;;;;AAsGA;;;;mBAAiH;kBAlG7F,gBAAgB;6CAyFS,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,WAAW,OAAO,SAAS;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import Avatar from './Avatar.svelte';
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
title: 'Primitives/Avatar',
|
|
7
|
+
component: Avatar,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
size: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: ['xs', 'sm', 'md', 'lg', 'xl'],
|
|
13
|
+
},
|
|
14
|
+
src: { control: 'text' },
|
|
15
|
+
alt: { control: 'text' },
|
|
16
|
+
initials: { control: 'text' },
|
|
17
|
+
},
|
|
18
|
+
parameters: {
|
|
19
|
+
docs: {
|
|
20
|
+
description: {
|
|
21
|
+
component: 'User profile picture component with fallback to initials.',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<Story name="Default">
|
|
29
|
+
{#snippet template()}
|
|
30
|
+
<Avatar />
|
|
31
|
+
{/snippet}
|
|
32
|
+
</Story>
|
|
33
|
+
|
|
34
|
+
<Story name="With Initials" args={{ initials: 'JD' }}>
|
|
35
|
+
{#snippet template(args)}
|
|
36
|
+
<Avatar {...args} />
|
|
37
|
+
{/snippet}
|
|
38
|
+
</Story>
|
|
39
|
+
|
|
40
|
+
<Story name="With Image" args={{ src: 'https://i.pravatar.cc/150?img=3', alt: 'User avatar' }}>
|
|
41
|
+
{#snippet template(args)}
|
|
42
|
+
<Avatar {...args} />
|
|
43
|
+
{/snippet}
|
|
44
|
+
</Story>
|
|
45
|
+
|
|
46
|
+
<Story name="All Sizes">
|
|
47
|
+
{#snippet template()}
|
|
48
|
+
<div class="flex items-end gap-4">
|
|
49
|
+
<div class="text-center">
|
|
50
|
+
<Avatar size="xs" initials="XS" />
|
|
51
|
+
<p class="text-xs text-gray-500 mt-1">xs</p>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="text-center">
|
|
54
|
+
<Avatar size="sm" initials="SM" />
|
|
55
|
+
<p class="text-xs text-gray-500 mt-1">sm</p>
|
|
56
|
+
</div>
|
|
57
|
+
<div class="text-center">
|
|
58
|
+
<Avatar size="md" initials="MD" />
|
|
59
|
+
<p class="text-xs text-gray-500 mt-1">md</p>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="text-center">
|
|
62
|
+
<Avatar size="lg" initials="LG" />
|
|
63
|
+
<p class="text-xs text-gray-500 mt-1">lg</p>
|
|
64
|
+
</div>
|
|
65
|
+
<div class="text-center">
|
|
66
|
+
<Avatar size="xl" initials="XL" />
|
|
67
|
+
<p class="text-xs text-gray-500 mt-1">xl</p>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
{/snippet}
|
|
71
|
+
</Story>
|
|
72
|
+
|
|
73
|
+
<Story name="Image Sizes">
|
|
74
|
+
{#snippet template()}
|
|
75
|
+
<div class="flex items-end gap-4">
|
|
76
|
+
<Avatar size="xs" src="https://i.pravatar.cc/150?img=1" />
|
|
77
|
+
<Avatar size="sm" src="https://i.pravatar.cc/150?img=2" />
|
|
78
|
+
<Avatar size="md" src="https://i.pravatar.cc/150?img=3" />
|
|
79
|
+
<Avatar size="lg" src="https://i.pravatar.cc/150?img=4" />
|
|
80
|
+
<Avatar size="xl" src="https://i.pravatar.cc/150?img=5" />
|
|
81
|
+
</div>
|
|
82
|
+
{/snippet}
|
|
83
|
+
</Story>
|
|
84
|
+
|
|
85
|
+
<Story name="Group">
|
|
86
|
+
{#snippet template()}
|
|
87
|
+
<div class="flex -space-x-4">
|
|
88
|
+
<Avatar src="https://i.pravatar.cc/150?img=1" class="ring-2 ring-white" />
|
|
89
|
+
<Avatar src="https://i.pravatar.cc/150?img=2" class="ring-2 ring-white" />
|
|
90
|
+
<Avatar src="https://i.pravatar.cc/150?img=3" class="ring-2 ring-white" />
|
|
91
|
+
<Avatar initials="+5" class="ring-2 ring-white" />
|
|
92
|
+
</div>
|
|
93
|
+
{/snippet}
|
|
94
|
+
</Story>
|