@getmicdrop/svelte-components 5.18.0 β 5.18.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.svelte +9 -5
- package/dist/calendar/AboutShow/AboutShow.svelte.d.ts +2 -2
- package/dist/calendar/AboutShow/AboutShow.svelte.d.ts.map +1 -1
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +39 -18
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts +4 -0
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
- package/dist/calendar/FAQs/FAQs.svelte +16 -5
- package/dist/calendar/FAQs/FAQs.svelte.d.ts +6 -4
- package/dist/calendar/FAQs/FAQs.svelte.d.ts.map +1 -1
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +19 -4
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts +2 -0
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
- package/dist/calendar/OrderSummary/OrderSummary.spec.js +3 -3
- package/dist/calendar/OrderSummary/OrderSummary.svelte +17 -13
- package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +4 -2
- package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
- package/dist/calendar/PublicCard/PublicCard.svelte +11 -2
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts +4 -0
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowCard/ShowCard.svelte +25 -11
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts +4 -0
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +12 -4
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts +4 -0
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/patterns/chat/ChatBubble.svelte +9 -1
- package/dist/patterns/chat/ChatBubble.svelte.d.ts +6 -4
- package/dist/patterns/chat/ChatBubble.svelte.d.ts.map +1 -1
- package/dist/patterns/chat/ChatInvitationBubble.svelte +10 -1
- package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts +6 -3
- package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts.map +1 -1
- package/dist/patterns/chat/ChatInvitationNotice.svelte +10 -1
- package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts +6 -3
- package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts.map +1 -1
- package/dist/patterns/forms/FormValidationSummary.svelte +9 -1
- package/dist/patterns/forms/FormValidationSummary.svelte.d.ts +5 -3
- package/dist/patterns/forms/FormValidationSummary.svelte.d.ts.map +1 -1
- package/dist/patterns/navigation/BottomNav.svelte +9 -1
- package/dist/patterns/navigation/BottomNav.svelte.d.ts +10 -9
- package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
- package/dist/patterns/navigation/Header.svelte +20 -8
- package/dist/patterns/navigation/Header.svelte.d.ts +17 -9
- package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
- package/dist/patterns/page/PageLoader.svelte +12 -3
- package/dist/patterns/page/PageLoader.svelte.d.ts +6 -3
- package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
- package/dist/primitives/Accordion/AccordionItem.svelte +9 -1
- package/dist/primitives/Accordion/AccordionItem.svelte.d.ts +6 -4
- package/dist/primitives/Accordion/AccordionItem.svelte.d.ts.map +1 -1
- package/dist/primitives/Alert/Alert.svelte +10 -2
- package/dist/primitives/Alert/Alert.svelte.d.ts +6 -4
- package/dist/primitives/Alert/Alert.svelte.d.ts.map +1 -1
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +9 -1
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts +13 -9
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
- package/dist/primitives/DarkModeToggle.svelte +16 -5
- package/dist/primitives/DarkModeToggle.svelte.d.ts +9 -3
- package/dist/primitives/DarkModeToggle.svelte.d.ts.map +1 -1
- package/dist/primitives/Dropdown/Dropdown.svelte +11 -2
- package/dist/primitives/Dropdown/Dropdown.svelte.d.ts +7 -4
- package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Input.svelte +19 -6
- package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
- package/dist/primitives/NumberInput/NumberInput.svelte +10 -2
- package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -1
- package/dist/primitives/Pagination/Pagination.svelte +21 -7
- package/dist/primitives/Pagination/Pagination.svelte.d.ts +14 -6
- package/dist/primitives/Pagination/Pagination.svelte.d.ts.map +1 -1
- package/dist/primitives/Skeleton/CardPlaceholder.svelte +11 -2
- package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts +8 -5
- package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts.map +1 -1
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte +11 -2
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts +8 -5
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts.map +1 -1
- package/dist/primitives/Skeleton/ListPlaceholder.svelte +11 -2
- package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts +8 -5
- package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts.map +1 -1
- package/dist/primitives/Skeleton/Skeleton.svelte +11 -2
- package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +7 -4
- package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
- package/dist/primitives/Spinner/Spinner.svelte +9 -1
- package/dist/primitives/Spinner/Spinner.svelte.d.ts +6 -4
- package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
- package/dist/recipes/ImageUploader/ImageUploader.svelte +5 -3
- package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts +1 -0
- package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
- package/dist/recipes/SuperLogin/SuperLogin.svelte +25 -23
- package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +12 -3
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -4
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/MultiSelect.svelte +10 -2
- package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/OTPInput.svelte +14 -3
- package/dist/recipes/inputs/OTPInput.svelte.d.ts +14 -12
- package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PasswordInput.svelte +10 -1
- package/dist/recipes/inputs/PasswordInput.svelte.d.ts +7 -4
- package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +21 -10
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -3
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PhoneInput.svelte +1 -5
- package/dist/recipes/inputs/PhoneInput.svelte.d.ts +0 -2
- package/dist/recipes/inputs/PhoneInput.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +22 -9
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +21 -16
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/Search.svelte +10 -2
- package/dist/recipes/inputs/Search.svelte.d.ts +7 -5
- package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +9 -66
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts +0 -2
- package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/phoneInput/countryData.d.ts +0 -2
- package/dist/recipes/inputs/phoneInput/countryData.d.ts.map +1 -1
- package/dist/recipes/inputs/phoneInput/countryData.js +3 -3
- package/dist/recipes/modals/AlertModal.svelte +11 -2
- package/dist/recipes/modals/AlertModal.svelte.d.ts +4 -2
- package/dist/recipes/modals/AlertModal.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/ConfirmationModal.svelte +8 -1
- package/dist/recipes/modals/ConfirmationModal.svelte.d.ts +2 -0
- package/dist/recipes/modals/ConfirmationModal.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/InputModal.svelte +19 -7
- package/dist/recipes/modals/InputModal.svelte.d.ts +6 -4
- package/dist/recipes/modals/InputModal.svelte.d.ts.map +1 -1
- package/dist/recipes/modals/StatusModal.svelte +14 -4
- package/dist/recipes/modals/StatusModal.svelte.d.ts +4 -2
- package/dist/recipes/modals/StatusModal.svelte.d.ts.map +1 -1
- package/dist/tokens/__tests__/variants.test.js +12 -4
- package/dist/tokens/variants.d.ts +4 -4
- package/dist/tokens/variants.js +4 -4
- package/dist/utils/formatters.d.ts +6 -0
- package/dist/utils/formatters.d.ts.map +1 -1
- package/dist/utils/formatters.js +8 -0
- package/dist/utils/utils.js +25 -16
- package/package.json +1 -1
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
import { PUBLIC_GOOGLE_MAPS_API_KEY } from '../../../config.js';
|
|
5
5
|
import { typography } from '../../../tokens/typography';
|
|
6
6
|
import { bloom } from '../../../utils/transitions.js';
|
|
7
|
+
|
|
8
|
+
const defaultLabels = {
|
|
9
|
+
anErrorOccurred: 'An error occurred',
|
|
10
|
+
seeConsoleForDetails: 'see console for details.',
|
|
11
|
+
errorFetchingPlaceDetails: 'error fetching place details',
|
|
12
|
+
errorFetchToken: 'error fetch token',
|
|
13
|
+
errorLoadingGoogleMapsApi: 'Error loading Google Maps API',
|
|
14
|
+
googleMapsApiKeyRequired: 'Google Maps API key is required',
|
|
15
|
+
};
|
|
7
16
|
/** Google Places API address component */ interface AddressComponent { longText: string; shortText: string; types: string[]; } /** Google Places API response data */ interface PlaceData { formattedAddress?: string; addressComponents?: AddressComponent[]; text?: string; [key: string]: unknown; } /** Google Places autocomplete suggestion */ interface AutocompleteSuggestion { placePrediction: { types: string[]; text: { toString(): string }; toPlace(): PlaceObject; }; } /** Google Places place object */ interface PlaceObject { fetchFields(options: { fields: string[] }): Promise<void>; toJSON(): PlaceData; } /** Google Places API interface */ interface PlacesApiInterface { AutocompleteSessionToken: new () => AutocompleteSessionToken; AutocompleteSuggestion: { fetchAutocompleteSuggestions(request: AutocompleteRequest): Promise<{ suggestions: AutocompleteSuggestion[] }>; }; } /** Google Places autocomplete session token */ interface AutocompleteSessionToken {} /** Autocomplete request parameters */ interface AutocompleteRequest { input: string; language: string; region: string; sessionToken: AutocompleteSessionToken | string; } /** Search result item */ interface SearchResult { to_place: PlaceObject; text: string; originalText?: string; }
|
|
8
17
|
|
|
9
18
|
interface Props {
|
|
@@ -18,6 +27,7 @@
|
|
|
18
27
|
mode?: 'full' | 'cityState';
|
|
19
28
|
animateFocus?: boolean;
|
|
20
29
|
disabled?: boolean;
|
|
30
|
+
labels?: Partial<typeof defaultLabels>;
|
|
21
31
|
}
|
|
22
32
|
|
|
23
33
|
let {
|
|
@@ -32,8 +42,11 @@
|
|
|
32
42
|
mode = 'full',
|
|
33
43
|
animateFocus = true,
|
|
34
44
|
disabled = false,
|
|
45
|
+
labels: userLabels = {},
|
|
35
46
|
}: Props = $props();
|
|
36
47
|
|
|
48
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
49
|
+
|
|
37
50
|
let shouldAnimate = $derived(animateFocus && !disabled);
|
|
38
51
|
|
|
39
52
|
let inputRef: HTMLInputElement;
|
|
@@ -131,9 +144,9 @@
|
|
|
131
144
|
} catch (e: unknown) {
|
|
132
145
|
const error = e as { name?: string; message?: string };
|
|
133
146
|
onError(
|
|
134
|
-
(error.name ||
|
|
147
|
+
(error.name || labels.anErrorOccurred) +
|
|
135
148
|
' - ' +
|
|
136
|
-
(error.message ||
|
|
149
|
+
(error.message || labels.seeConsoleForDetails)
|
|
137
150
|
);
|
|
138
151
|
}
|
|
139
152
|
};
|
|
@@ -156,9 +169,9 @@
|
|
|
156
169
|
} catch (e: unknown) {
|
|
157
170
|
const error = e as { name?: string; message?: string };
|
|
158
171
|
onError(
|
|
159
|
-
(error.name ||
|
|
172
|
+
(error.name || labels.anErrorOccurred) +
|
|
160
173
|
' - ' +
|
|
161
|
-
(error.message ||
|
|
174
|
+
(error.message || labels.errorFetchingPlaceDetails)
|
|
162
175
|
);
|
|
163
176
|
}
|
|
164
177
|
|
|
@@ -175,9 +188,9 @@
|
|
|
175
188
|
} catch (e: unknown) {
|
|
176
189
|
const error = e as { name?: string; message?: string };
|
|
177
190
|
onError(
|
|
178
|
-
(error.name ||
|
|
191
|
+
(error.name || labels.anErrorOccurred) +
|
|
179
192
|
' - ' +
|
|
180
|
-
(error.message ||
|
|
193
|
+
(error.message || labels.errorFetchToken)
|
|
181
194
|
);
|
|
182
195
|
return req;
|
|
183
196
|
}
|
|
@@ -236,7 +249,7 @@
|
|
|
236
249
|
// Initialize Google Maps API
|
|
237
250
|
const initGoogleMaps = async () => {
|
|
238
251
|
if (!PUBLIC_GOOGLE_MAPS_API_KEY) {
|
|
239
|
-
onError(
|
|
252
|
+
onError(labels.googleMapsApiKeyRequired);
|
|
240
253
|
return;
|
|
241
254
|
}
|
|
242
255
|
|
|
@@ -255,9 +268,9 @@
|
|
|
255
268
|
} catch (e: unknown) {
|
|
256
269
|
const error = e as { name?: string; message?: string };
|
|
257
270
|
onError(
|
|
258
|
-
(error.name ||
|
|
271
|
+
(error.name || labels.anErrorOccurred) +
|
|
259
272
|
' - ' +
|
|
260
|
-
(error.message ||
|
|
273
|
+
(error.message || labels.errorLoadingGoogleMapsApi)
|
|
261
274
|
);
|
|
262
275
|
}
|
|
263
276
|
};
|
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
longText: string;
|
|
3
|
-
shortText: string;
|
|
4
|
-
types: string[];
|
|
5
|
-
}
|
|
6
|
-
/** Google Places API response data */ interface PlaceData {
|
|
7
|
-
formattedAddress?: string;
|
|
8
|
-
addressComponents?: AddressComponent[];
|
|
9
|
-
text?: string;
|
|
10
|
-
[key: string]: unknown;
|
|
11
|
-
}
|
|
12
|
-
interface Props {
|
|
1
|
+
declare const PlaceAutocomplete: import("svelte").Component<{
|
|
13
2
|
fetchFields?: string[];
|
|
14
3
|
placeholder?: string;
|
|
15
4
|
language?: string;
|
|
16
5
|
region?: string;
|
|
17
6
|
autocomplete?: string;
|
|
18
7
|
initialValue?: string;
|
|
19
|
-
onResponse?: (data:
|
|
8
|
+
onResponse?: (data: {
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
formattedAddress?: string;
|
|
11
|
+
addressComponents?: {
|
|
12
|
+
longText: string;
|
|
13
|
+
shortText: string;
|
|
14
|
+
types: string[];
|
|
15
|
+
}[];
|
|
16
|
+
text?: string;
|
|
17
|
+
}) => void;
|
|
20
18
|
onError?: (error: string) => void;
|
|
21
|
-
mode?:
|
|
19
|
+
mode?: "full" | "cityState";
|
|
22
20
|
animateFocus?: boolean;
|
|
23
21
|
disabled?: boolean;
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
labels?: Partial<{
|
|
23
|
+
anErrorOccurred: string;
|
|
24
|
+
seeConsoleForDetails: string;
|
|
25
|
+
errorFetchingPlaceDetails: string;
|
|
26
|
+
errorFetchToken: string;
|
|
27
|
+
errorLoadingGoogleMapsApi: string;
|
|
28
|
+
googleMapsApiKeyRequired: string;
|
|
29
|
+
}>;
|
|
30
|
+
}, {}, "placeholder">;
|
|
26
31
|
type PlaceAutocomplete = ReturnType<typeof PlaceAutocomplete>;
|
|
27
32
|
export default PlaceAutocomplete;
|
|
28
33
|
//# sourceMappingURL=PlaceAutocomplete.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceAutocomplete.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlaceAutocomplete.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.ts"],"names":[],"mappings":"AA8UA,QAAA,MAAM,iBAAiB;kBAnTL,MAAM,EAAE;kBACR,MAAM;eACT,MAAM;aACR,MAAM;mBACA,MAAM;mBACN,MAAM;iBACR,CAAC,IAAI;;2BATkM,MAAM;4BAAyB;sBAArK,MAAM;uBAAgB,MAAM;mBAAY,MAAM,EAAE;WAAuI;eAAY,MAAM;KAS1P,KAAK,IAAI;cAC5B,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;WAC1B,MAAM,GAAG,WAAW;mBACZ,OAAO;eACX,OAAO;aACT,OAAO;;;;;;;MAAsB;qBAwSqB,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
import { SearchOutline } from "../../primitives/Icons";
|
|
4
4
|
import { typography } from '../../tokens/typography';
|
|
5
5
|
|
|
6
|
+
const defaultLabels = {
|
|
7
|
+
placeholder: 'Search',
|
|
8
|
+
};
|
|
9
|
+
|
|
6
10
|
interface Props {
|
|
7
11
|
value?: unknown;
|
|
8
12
|
placeholder?: string;
|
|
@@ -18,13 +22,14 @@
|
|
|
18
22
|
onfocus?: (event: FocusEvent) => void;
|
|
19
23
|
onblur?: (event: FocusEvent) => void;
|
|
20
24
|
children?: Snippet;
|
|
25
|
+
labels?: Partial<typeof defaultLabels>;
|
|
21
26
|
[key: string]: unknown;
|
|
22
27
|
}
|
|
23
28
|
|
|
24
29
|
// API compatible with flowbite-svelte Search
|
|
25
30
|
let {
|
|
26
31
|
value = $bindable(""),
|
|
27
|
-
placeholder =
|
|
32
|
+
placeholder = undefined,
|
|
28
33
|
size = "lg",
|
|
29
34
|
disabled = false,
|
|
30
35
|
id = "",
|
|
@@ -37,9 +42,12 @@
|
|
|
37
42
|
onfocus,
|
|
38
43
|
onblur,
|
|
39
44
|
children,
|
|
45
|
+
labels: userLabels = {},
|
|
40
46
|
...restProps
|
|
41
47
|
}: Props = $props();
|
|
42
48
|
|
|
49
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
50
|
+
|
|
43
51
|
const sizes = {
|
|
44
52
|
sm: { icon: "w-3.5 h-3.5", input: `h-8 ${typography.xs} pl-8`, wrapper: "h-8" },
|
|
45
53
|
md: { icon: "w-4 h-4", input: `h-10 ${typography.sm} pl-9`, wrapper: "h-10" },
|
|
@@ -82,7 +90,7 @@
|
|
|
82
90
|
type="search"
|
|
83
91
|
{id}
|
|
84
92
|
{name}
|
|
85
|
-
{placeholder}
|
|
93
|
+
placeholder={placeholder ?? labels.placeholder}
|
|
86
94
|
{disabled}
|
|
87
95
|
class="w-full pr-3 bg-gray-50 dark:bg-gray-700 font-medium border border-gray-300 dark:border-gray-600 rounded-lg transition-colors focus:outline-hidden focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800 focus:border-blue-500 hover:border-blue-500 placeholder-gray-500 dark:placeholder-gray-400 [&::-webkit-search-cancel-button]:appearance-none {sizeConfig.input} {disabled ? 'opacity-50 cursor-not-allowed' : ''}"
|
|
88
96
|
bind:value
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
-
|
|
2
|
+
declare const Search: import("svelte").Component<{
|
|
3
|
+
[key: string]: unknown;
|
|
3
4
|
value?: unknown;
|
|
4
5
|
placeholder?: string;
|
|
5
|
-
size?:
|
|
6
|
+
size?: "sm" | "md" | "lg";
|
|
6
7
|
disabled?: boolean;
|
|
7
8
|
id?: string;
|
|
8
9
|
name?: string;
|
|
@@ -14,9 +15,10 @@ interface Props {
|
|
|
14
15
|
onfocus?: (event: FocusEvent) => void;
|
|
15
16
|
onblur?: (event: FocusEvent) => void;
|
|
16
17
|
children?: Snippet;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
labels?: Partial<{
|
|
19
|
+
placeholder: string;
|
|
20
|
+
}>;
|
|
21
|
+
}, {}, "value">;
|
|
20
22
|
type Search = ReturnType<typeof Search>;
|
|
21
23
|
export default Search;
|
|
22
24
|
//# sourceMappingURL=Search.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/recipes/inputs/Search.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Search.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/recipes/inputs/Search.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAsGtC,QAAA,MAAM,MAAM;;YAxFA,OAAO;kBACD,MAAM;WACb,IAAI,GAAG,IAAI,GAAG,IAAI;eACd,OAAO;SACb,MAAM;WACJ,MAAM;YACL,MAAM;cACJ,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;eACrB,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;gBACrB,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;cAChC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;cAC9B,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI;aAC5B,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI;eACzB,OAAO;aACT,OAAO;;MAAsB;eA0EU,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { onMount, tick } from "svelte";
|
|
3
3
|
import { ChevronDownOutline } from "../../../primitives/Icons";
|
|
4
|
-
import { portal as portalAction } from "../../../utils/portal.js";
|
|
5
4
|
import { typography } from "../../../tokens/typography";
|
|
6
5
|
import { bloom } from "../../../utils/transitions.js";
|
|
7
|
-
import { COUNTRIES,
|
|
6
|
+
import { COUNTRIES, type Country } from "./countryData";
|
|
8
7
|
|
|
9
8
|
interface Props {
|
|
10
9
|
country?: Country;
|
|
@@ -14,17 +13,13 @@
|
|
|
14
13
|
searchPlaceholder?: string;
|
|
15
14
|
noResults?: string;
|
|
16
15
|
countrySelector?: string;
|
|
17
|
-
suggested?: string;
|
|
18
|
-
allCountries?: string;
|
|
19
16
|
};
|
|
20
17
|
}
|
|
21
18
|
|
|
22
19
|
const defaultLabels = {
|
|
23
|
-
searchPlaceholder: 'Search
|
|
20
|
+
searchPlaceholder: 'Search...',
|
|
24
21
|
noResults: 'No countries found',
|
|
25
22
|
countrySelector: 'Select country',
|
|
26
|
-
suggested: 'Suggested',
|
|
27
|
-
allCountries: 'All countries',
|
|
28
23
|
};
|
|
29
24
|
|
|
30
25
|
let {
|
|
@@ -45,7 +40,6 @@
|
|
|
45
40
|
let dropdownPosition = $state({ top: 0, left: 0, width: 0 });
|
|
46
41
|
|
|
47
42
|
const instanceId = Math.random().toString(36).substring(2, 9);
|
|
48
|
-
const suggestedCountries = getSuggestedCountries();
|
|
49
43
|
|
|
50
44
|
let filteredCountries = $derived.by(() => {
|
|
51
45
|
if (!searchQuery) return COUNTRIES;
|
|
@@ -58,18 +52,6 @@
|
|
|
58
52
|
);
|
|
59
53
|
});
|
|
60
54
|
|
|
61
|
-
let showSuggested = $derived(!searchQuery);
|
|
62
|
-
|
|
63
|
-
// Build flat list of visible items for keyboard nav
|
|
64
|
-
let flatItems = $derived.by(() => {
|
|
65
|
-
const items: Country[] = [];
|
|
66
|
-
if (showSuggested) {
|
|
67
|
-
items.push(...suggestedCountries);
|
|
68
|
-
}
|
|
69
|
-
items.push(...filteredCountries);
|
|
70
|
-
return items;
|
|
71
|
-
});
|
|
72
|
-
|
|
73
55
|
const sizeMap = {
|
|
74
56
|
sm: 'h-9 px-2 text-sm gap-1',
|
|
75
57
|
md: 'h-10 px-2.5 text-sm gap-1.5',
|
|
@@ -126,8 +108,8 @@
|
|
|
126
108
|
switch (event.key) {
|
|
127
109
|
case "Enter":
|
|
128
110
|
event.preventDefault();
|
|
129
|
-
if (isOpen && focusedIndex >= 0 && focusedIndex <
|
|
130
|
-
selectCountry(
|
|
111
|
+
if (isOpen && focusedIndex >= 0 && focusedIndex < filteredCountries.length) {
|
|
112
|
+
selectCountry(filteredCountries[focusedIndex]);
|
|
131
113
|
} else if (!isOpen) {
|
|
132
114
|
toggle();
|
|
133
115
|
}
|
|
@@ -137,7 +119,7 @@
|
|
|
137
119
|
if (!isOpen) {
|
|
138
120
|
toggle();
|
|
139
121
|
} else {
|
|
140
|
-
focusedIndex = Math.min(focusedIndex + 1,
|
|
122
|
+
focusedIndex = Math.min(focusedIndex + 1, filteredCountries.length - 1);
|
|
141
123
|
scrollToFocused();
|
|
142
124
|
}
|
|
143
125
|
break;
|
|
@@ -189,14 +171,6 @@
|
|
|
189
171
|
window.removeEventListener("resize", updateDropdownPosition);
|
|
190
172
|
};
|
|
191
173
|
});
|
|
192
|
-
|
|
193
|
-
let itemIndex = 0;
|
|
194
|
-
function resetIndex() {
|
|
195
|
-
itemIndex = 0;
|
|
196
|
-
}
|
|
197
|
-
function nextIndex() {
|
|
198
|
-
return itemIndex++;
|
|
199
|
-
}
|
|
200
174
|
</script>
|
|
201
175
|
|
|
202
176
|
<div class="relative shrink-0">
|
|
@@ -220,7 +194,6 @@
|
|
|
220
194
|
<!-- svelte-ignore a11y_no_noninteractive_tabindex -->
|
|
221
195
|
<div
|
|
222
196
|
bind:this={dropdownElement}
|
|
223
|
-
use:portalAction
|
|
224
197
|
class="fixed z-[9999] bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg shadow-lg overflow-hidden"
|
|
225
198
|
style="top: {dropdownPosition.top}px; left: {dropdownPosition.left}px; width: {dropdownPosition.width}px;"
|
|
226
199
|
role="listbox"
|
|
@@ -233,7 +206,7 @@
|
|
|
233
206
|
<input
|
|
234
207
|
bind:this={searchInputElement}
|
|
235
208
|
type="text"
|
|
236
|
-
class="w-full px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-hidden focus:ring-2 focus:ring-blue-300 dark:focus:ring-blue-800
|
|
209
|
+
class="w-full px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg text-gray-900 dark:text-white focus:outline-hidden focus:ring-2 focus:ring-blue-300 dark:focus:ring-blue-800 placeholder-gray-400 dark:placeholder-gray-500"
|
|
237
210
|
placeholder={labels.searchPlaceholder}
|
|
238
211
|
bind:value={searchQuery}
|
|
239
212
|
onkeydown={handleKeydown}
|
|
@@ -242,40 +215,10 @@
|
|
|
242
215
|
|
|
243
216
|
<!-- List -->
|
|
244
217
|
<div class="max-h-60 overflow-y-auto py-1">
|
|
245
|
-
{
|
|
246
|
-
|
|
247
|
-
{#if showSuggested}
|
|
248
|
-
<div class="px-3 py-1.5">
|
|
249
|
-
<span class="text-xs font-semibold uppercase tracking-wider {typography.textMuted}">{labels.suggested}</span>
|
|
250
|
-
</div>
|
|
251
|
-
{#each suggestedCountries as c}
|
|
252
|
-
{@const idx = nextIndex()}
|
|
253
|
-
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
254
|
-
<li
|
|
255
|
-
class="flex items-center gap-3 px-3 py-2 cursor-pointer {typography.sm} transition-colors {c.code === country.code ? 'bg-blue-50 dark:bg-blue-900/30' : ''} {idx === focusedIndex ? 'bg-gray-100 dark:bg-gray-600' : 'hover:bg-gray-100 dark:hover:bg-gray-600'}"
|
|
256
|
-
role="option"
|
|
257
|
-
aria-selected={c.code === country.code}
|
|
258
|
-
data-index={idx}
|
|
259
|
-
onclick={() => selectCountry(c)}
|
|
260
|
-
onmouseenter={() => (focusedIndex = idx)}
|
|
261
|
-
>
|
|
262
|
-
<span class="text-lg leading-none">{c.flag}</span>
|
|
263
|
-
<span class="flex-1">{c.name}</span>
|
|
264
|
-
<span class={typography.textMuted}>{c.dialCode}</span>
|
|
265
|
-
</li>
|
|
266
|
-
{/each}
|
|
267
|
-
|
|
268
|
-
<div class="border-t border-gray-200 dark:border-gray-600 mx-3 my-1"></div>
|
|
269
|
-
<div class="px-3 py-1.5">
|
|
270
|
-
<span class="text-xs font-semibold uppercase tracking-wider {typography.textMuted}">{labels.allCountries}</span>
|
|
271
|
-
</div>
|
|
272
|
-
{/if}
|
|
273
|
-
|
|
274
|
-
{#each filteredCountries as c}
|
|
275
|
-
{@const idx = nextIndex()}
|
|
218
|
+
{#each filteredCountries as c, idx}
|
|
276
219
|
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
277
220
|
<li
|
|
278
|
-
class=
|
|
221
|
+
class={`flex items-center gap-3 px-3 py-2 cursor-pointer ${typography.sm} transition-colors ${c.code === country.code ? '' : typography.textMuted} ${idx === focusedIndex ? 'bg-gray-100 dark:bg-gray-600' : 'hover:bg-gray-100 dark:hover:bg-gray-600'}`}
|
|
279
222
|
role="option"
|
|
280
223
|
aria-selected={c.code === country.code}
|
|
281
224
|
data-index={idx}
|
|
@@ -287,7 +230,7 @@
|
|
|
287
230
|
<span class={typography.textMuted}>{c.dialCode}</span>
|
|
288
231
|
</li>
|
|
289
232
|
{:else}
|
|
290
|
-
<div class=
|
|
233
|
+
<div class={`px-3 py-4 text-center ${typography.textMuted}`}>
|
|
291
234
|
{labels.noResults}
|
|
292
235
|
</div>
|
|
293
236
|
{/each}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountrySelector.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/recipes/inputs/phoneInput/CountrySelector.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CountrySelector.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/recipes/inputs/phoneInput/CountrySelector.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAGtD,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE;QACP,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AA0MH,QAAA,MAAM,eAAe,kDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
|
|
@@ -10,8 +10,6 @@ export interface Country {
|
|
|
10
10
|
/** Priority for shared dial codes (lower = higher priority) */
|
|
11
11
|
priority?: number;
|
|
12
12
|
}
|
|
13
|
-
/** Countries pinned to the top of the selector */
|
|
14
|
-
export declare const SUGGESTED_CODES: string[];
|
|
15
13
|
export declare const COUNTRIES: Country[];
|
|
16
14
|
/** Get a country by ISO code */
|
|
17
15
|
export declare function getCountry(code: string): Country | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countryData.d.ts","sourceRoot":"","sources":["../../../../src/lib/recipes/inputs/phoneInput/countryData.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,
|
|
1
|
+
{"version":3,"file":"countryData.d.ts","sourceRoot":"","sources":["../../../../src/lib/recipes/inputs/phoneInput/countryData.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,SAAS,EAAE,OAAO,EAwM9B,CAAC;AAEF,gCAAgC;AAChC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAKD,8DAA8D;AAC9D,wBAAgB,qBAAqB,IAAI,OAAO,EAAE,CAEjD"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/** Countries pinned to the top of the selector */
|
|
2
|
-
export const SUGGESTED_CODES = ['US', 'CA', 'GB', 'MX', 'AU'];
|
|
3
1
|
export const COUNTRIES = [
|
|
2
|
+
{ code: 'US', name: 'United States', dialCode: '+1', flag: 'πΊπΈ', priority: 0 },
|
|
4
3
|
{ code: 'AF', name: 'Afghanistan', dialCode: '+93', flag: 'π¦π«' },
|
|
5
4
|
{ code: 'AL', name: 'Albania', dialCode: '+355', flag: 'π¦π±' },
|
|
6
5
|
{ code: 'DZ', name: 'Algeria', dialCode: '+213', flag: 'π©πΏ' },
|
|
@@ -190,7 +189,6 @@ export const COUNTRIES = [
|
|
|
190
189
|
{ code: 'UA', name: 'Ukraine', dialCode: '+380', flag: 'πΊπ¦' },
|
|
191
190
|
{ code: 'AE', name: 'United Arab Emirates', dialCode: '+971', flag: 'π¦πͺ' },
|
|
192
191
|
{ code: 'GB', name: 'United Kingdom', dialCode: '+44', flag: 'π¬π§' },
|
|
193
|
-
{ code: 'US', name: 'United States', dialCode: '+1', flag: 'πΊπΈ', priority: 0 },
|
|
194
192
|
{ code: 'UY', name: 'Uruguay', dialCode: '+598', flag: 'πΊπΎ' },
|
|
195
193
|
{ code: 'UZ', name: 'Uzbekistan', dialCode: '+998', flag: 'πΊπΏ' },
|
|
196
194
|
{ code: 'VU', name: 'Vanuatu', dialCode: '+678', flag: 'π»πΊ' },
|
|
@@ -205,6 +203,8 @@ export const COUNTRIES = [
|
|
|
205
203
|
export function getCountry(code) {
|
|
206
204
|
return COUNTRIES.find((c) => c.code === code);
|
|
207
205
|
}
|
|
206
|
+
/** Country codes pinned to top of the country selector */
|
|
207
|
+
const SUGGESTED_CODES = ['US', 'CA', 'GB', 'AU'];
|
|
208
208
|
/** Get the suggested countries (pinned to top of selector) */
|
|
209
209
|
export function getSuggestedCountries() {
|
|
210
210
|
return SUGGESTED_CODES.map((code) => COUNTRIES.find((c) => c.code === code)).filter(Boolean);
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
import { CheckOutline, CloseOutline, ExclamationTriangleOutline, InfoCircleOutline } from '../../primitives/Icons';
|
|
20
20
|
import { typography } from '../../tokens/typography';
|
|
21
21
|
|
|
22
|
+
const defaultLabels = {
|
|
23
|
+
ok: 'OK',
|
|
24
|
+
};
|
|
25
|
+
|
|
22
26
|
let {
|
|
23
27
|
/** Whether the modal is visible */
|
|
24
28
|
open = $bindable(false),
|
|
@@ -29,7 +33,7 @@
|
|
|
29
33
|
/** Alert message */
|
|
30
34
|
message = '',
|
|
31
35
|
/** Button text */
|
|
32
|
-
buttonText =
|
|
36
|
+
buttonText = undefined,
|
|
33
37
|
/** Auto-close delay in milliseconds (0 to disable) */
|
|
34
38
|
autoClose = 0,
|
|
35
39
|
/** Modal size */
|
|
@@ -37,8 +41,13 @@
|
|
|
37
41
|
/** Callbacks */
|
|
38
42
|
onclose,
|
|
39
43
|
onconfirm,
|
|
44
|
+
/** Override user-visible strings */
|
|
45
|
+
labels: userLabels = {},
|
|
40
46
|
} = $props();
|
|
41
47
|
|
|
48
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
49
|
+
let effectiveButtonText = $derived(buttonText ?? labels.ok);
|
|
50
|
+
|
|
42
51
|
// Variant styles
|
|
43
52
|
const variantStyles = {
|
|
44
53
|
success: {
|
|
@@ -123,7 +132,7 @@
|
|
|
123
132
|
variant={styles.button}
|
|
124
133
|
onclick={handleConfirm}
|
|
125
134
|
>
|
|
126
|
-
{
|
|
135
|
+
{effectiveButtonText}
|
|
127
136
|
</Button>
|
|
128
137
|
</div>
|
|
129
138
|
{/snippet}
|
|
@@ -8,21 +8,23 @@ declare const AlertModal: import("svelte").Component<{
|
|
|
8
8
|
variant?: string;
|
|
9
9
|
title?: string;
|
|
10
10
|
message?: string;
|
|
11
|
-
buttonText?:
|
|
11
|
+
buttonText?: any;
|
|
12
12
|
autoClose?: number;
|
|
13
13
|
size?: string;
|
|
14
14
|
onclose: any;
|
|
15
15
|
onconfirm: any;
|
|
16
|
+
labels?: Record<string, any>;
|
|
16
17
|
}, {}, "open">;
|
|
17
18
|
type $$ComponentProps = {
|
|
18
19
|
open?: boolean;
|
|
19
20
|
variant?: string;
|
|
20
21
|
title?: string;
|
|
21
22
|
message?: string;
|
|
22
|
-
buttonText?:
|
|
23
|
+
buttonText?: any;
|
|
23
24
|
autoClose?: number;
|
|
24
25
|
size?: string;
|
|
25
26
|
onclose: any;
|
|
26
27
|
onconfirm: any;
|
|
28
|
+
labels?: Record<string, any>;
|
|
27
29
|
};
|
|
28
30
|
//# sourceMappingURL=AlertModal.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertModal.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/recipes/modals/AlertModal.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"AlertModal.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/recipes/modals/AlertModal.svelte.js"],"names":[],"mappings":";;;;;AAmJA;WAjH4B,OAAO;cAAY,MAAM;YAAU,MAAM;cAAY,MAAM;iBAAe,GAAG;gBAAc,MAAM;WAAS,MAAM;aAAW,GAAG;eAAa,GAAG;aAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;eAiH/I;wBAjHtC;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
import { typography } from '../../tokens/typography';
|
|
6
6
|
import { triggerHaptic } from '../../utils/haptic.js';
|
|
7
7
|
|
|
8
|
+
const defaultLabels = {
|
|
9
|
+
close: 'Close',
|
|
10
|
+
};
|
|
11
|
+
|
|
8
12
|
let {
|
|
9
13
|
open = $bindable(false),
|
|
10
14
|
size = "md",
|
|
@@ -25,9 +29,12 @@
|
|
|
25
29
|
onconfirm,
|
|
26
30
|
oncancel,
|
|
27
31
|
onclose,
|
|
32
|
+
labels: userLabels = {},
|
|
28
33
|
...restProps
|
|
29
34
|
} = $props();
|
|
30
35
|
|
|
36
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
37
|
+
|
|
31
38
|
let resolvedIcon = $derived(customIcon || icon);
|
|
32
39
|
|
|
33
40
|
let resolvedActions = $derived(actions.length > 0 ? actions : buildActionsFromProps());
|
|
@@ -113,7 +120,7 @@
|
|
|
113
120
|
{#if closeBtn}
|
|
114
121
|
<div class="flex justify-end -mt-2 -mr-2 mb-2">
|
|
115
122
|
<Button variant="icon" size="xs" onclick={handleClose} {disabled}>
|
|
116
|
-
<img src={Cancel} alt=
|
|
123
|
+
<img src={Cancel} alt={labels.close} class="w-5 h-5" />
|
|
117
124
|
</Button>
|
|
118
125
|
</div>
|
|
119
126
|
{/if}
|
|
@@ -22,6 +22,7 @@ declare const ConfirmationModal: import("svelte").Component<{
|
|
|
22
22
|
onconfirm: any;
|
|
23
23
|
oncancel: any;
|
|
24
24
|
onclose: any;
|
|
25
|
+
labels?: Record<string, any>;
|
|
25
26
|
} & Record<string, any>, {}, "open">;
|
|
26
27
|
type $$ComponentProps = {
|
|
27
28
|
open?: boolean;
|
|
@@ -42,5 +43,6 @@ type $$ComponentProps = {
|
|
|
42
43
|
onconfirm: any;
|
|
43
44
|
oncancel: any;
|
|
44
45
|
onclose: any;
|
|
46
|
+
labels?: Record<string, any>;
|
|
45
47
|
} & Record<string, any>;
|
|
46
48
|
//# sourceMappingURL=ConfirmationModal.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmationModal.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/recipes/modals/ConfirmationModal.svelte.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ConfirmationModal.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/recipes/modals/ConfirmationModal.svelte.js"],"names":[],"mappings":";;;;;AA8KA;WA1J4B,OAAO;WAAS,MAAM;YAAU,MAAM;kBAAgB,MAAM;kBAAgB,MAAM;cAAY,GAAG,EAAE;WAAS,GAAG;iBAAe,GAAG;eAAa,OAAO;wBAAsB,MAAM;0BAAwB,MAAM;cAAY,MAAM;cAAY,OAAO;eAAa,OAAO;aAAW,OAAO;eAAa,GAAG;cAAY,GAAG;aAAW,GAAG;aAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;qCA0JjU;wBA1J7C;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC"}
|