@getmicdrop/svelte-components 5.18.0 → 5.18.2
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/Checkbox/Checkbox.spec.js +4 -15
- package/dist/primitives/Checkbox/Checkbox.svelte +4 -4
- 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
|
@@ -1,17 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
label: string;
|
|
3
|
-
href: string;
|
|
4
|
-
}
|
|
5
|
-
interface Props {
|
|
1
|
+
declare const Header: import("svelte").Component<{
|
|
6
2
|
signoutHandler?: () => void;
|
|
7
3
|
name?: string;
|
|
8
4
|
avatar?: string;
|
|
9
5
|
email?: string;
|
|
10
|
-
navLinks?:
|
|
11
|
-
|
|
6
|
+
navLinks?: {
|
|
7
|
+
label: string;
|
|
8
|
+
href: string;
|
|
9
|
+
}[];
|
|
10
|
+
dropdownLinks?: {
|
|
11
|
+
label: string;
|
|
12
|
+
href: string;
|
|
13
|
+
}[];
|
|
12
14
|
showBackButton?: boolean;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
labels?: Partial<{
|
|
16
|
+
back: string;
|
|
17
|
+
signOut: string;
|
|
18
|
+
signOutMobile: string;
|
|
19
|
+
cancel: string;
|
|
20
|
+
defaultName: string;
|
|
21
|
+
}>;
|
|
22
|
+
}, {}, "">;
|
|
15
23
|
type Header = ReturnType<typeof Header>;
|
|
16
24
|
export default Header;
|
|
17
25
|
//# sourceMappingURL=Header.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/navigation/Header.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Header.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/navigation/Header.svelte.ts"],"names":[],"mappings":"AA8OA,QAAA,MAAM,MAAM;qBA5LS,MAAM,IAAI;WACpB,MAAM;aACJ,MAAM;YACP,MAAM;eACH;eAjBJ,MAAM;cACP,MAAM;OAgBQ;oBACJ;eAlBT,MAAM;cACP,MAAM;OAiBa;qBACR,OAAO;aACf,OAAO;;;;;;MAAsB;UAqLU,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
import Button from "../../primitives/Button/Button.svelte";
|
|
6
6
|
import { typography } from '../../tokens/typography';
|
|
7
7
|
|
|
8
|
+
const defaultLabels = {
|
|
9
|
+
error: 'Error',
|
|
10
|
+
tryAgain: 'Try again',
|
|
11
|
+
};
|
|
12
|
+
|
|
8
13
|
interface Props {
|
|
9
14
|
isLoading?: boolean;
|
|
10
15
|
error?: string | null;
|
|
@@ -14,18 +19,22 @@
|
|
|
14
19
|
onRetry?: () => void;
|
|
15
20
|
minHeight?: string;
|
|
16
21
|
children?: Snippet;
|
|
22
|
+
labels?: Partial<typeof defaultLabels>;
|
|
17
23
|
}
|
|
18
24
|
|
|
19
25
|
let {
|
|
20
26
|
isLoading = true,
|
|
21
27
|
error = null,
|
|
22
28
|
loadingMessage = "",
|
|
23
|
-
errorTitle =
|
|
29
|
+
errorTitle = undefined,
|
|
24
30
|
showRetry = false,
|
|
25
31
|
onRetry = () => {},
|
|
26
32
|
minHeight = "h-64",
|
|
27
33
|
children,
|
|
34
|
+
labels: userLabels = {},
|
|
28
35
|
}: Props = $props();
|
|
36
|
+
|
|
37
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
29
38
|
</script>
|
|
30
39
|
|
|
31
40
|
{#if isLoading}
|
|
@@ -39,11 +48,11 @@
|
|
|
39
48
|
</div>
|
|
40
49
|
{:else if error}
|
|
41
50
|
<div class="p-4">
|
|
42
|
-
<Alert type="danger" title={errorTitle} message={error} />
|
|
51
|
+
<Alert type="danger" title={errorTitle ?? labels.error} message={error} />
|
|
43
52
|
{#if showRetry}
|
|
44
53
|
<div class="mt-4 text-center">
|
|
45
54
|
<Button variant="link" onclick={onRetry}>
|
|
46
|
-
|
|
55
|
+
{labels.tryAgain}
|
|
47
56
|
</Button>
|
|
48
57
|
</div>
|
|
49
58
|
{/if}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
-
|
|
2
|
+
declare const PageLoader: import("svelte").Component<{
|
|
3
3
|
isLoading?: boolean;
|
|
4
4
|
error?: string | null;
|
|
5
5
|
loadingMessage?: string;
|
|
@@ -8,8 +8,11 @@ interface Props {
|
|
|
8
8
|
onRetry?: () => void;
|
|
9
9
|
minHeight?: string;
|
|
10
10
|
children?: Snippet;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
labels?: Partial<{
|
|
12
|
+
error: string;
|
|
13
|
+
tryAgain: string;
|
|
14
|
+
}>;
|
|
15
|
+
}, {}, "">;
|
|
13
16
|
type PageLoader = ReturnType<typeof PageLoader>;
|
|
14
17
|
export default PageLoader;
|
|
15
18
|
//# sourceMappingURL=PageLoader.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLoader.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/page/PageLoader.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"PageLoader.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/patterns/page/PageLoader.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAuEtC,QAAA,MAAM,UAAU;gBApDA,OAAO;YACX,MAAM,GAAG,IAAI;qBACJ,MAAM;iBACV,MAAM;gBACP,OAAO;cACT,MAAM,IAAI;gBACR,MAAM;eACP,OAAO;aACT,OAAO;;;MAAsB;UA4Cc,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
import { ChevronUpOutline } from "../Icons";
|
|
15
15
|
import { typography } from "../../tokens/typography";
|
|
16
16
|
|
|
17
|
+
const defaultLabels = {
|
|
18
|
+
accordionItem: 'Accordion Item',
|
|
19
|
+
};
|
|
20
|
+
|
|
17
21
|
interface Props {
|
|
18
22
|
open?: boolean;
|
|
19
23
|
class?: string;
|
|
@@ -21,6 +25,7 @@
|
|
|
21
25
|
borderOpenClass?: string;
|
|
22
26
|
header?: Snippet;
|
|
23
27
|
children?: Snippet;
|
|
28
|
+
labels?: Partial<typeof defaultLabels>;
|
|
24
29
|
[key: string]: unknown;
|
|
25
30
|
}
|
|
26
31
|
|
|
@@ -31,9 +36,12 @@
|
|
|
31
36
|
borderOpenClass = "",
|
|
32
37
|
header,
|
|
33
38
|
children,
|
|
39
|
+
labels: userLabels = {},
|
|
34
40
|
...restProps
|
|
35
41
|
}: Props = $props();
|
|
36
42
|
|
|
43
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
44
|
+
|
|
37
45
|
const { openItems, toggle, flush } = getContext<{
|
|
38
46
|
openItems: Writable<Set<string>>;
|
|
39
47
|
toggle: (id: string) => void;
|
|
@@ -76,7 +84,7 @@
|
|
|
76
84
|
onclick={handleClick}
|
|
77
85
|
>
|
|
78
86
|
<span class={typography.body}>
|
|
79
|
-
{#if header}{@render header()}{:else}
|
|
87
|
+
{#if header}{@render header()}{:else}{labels.accordionItem}{/if}
|
|
80
88
|
</span>
|
|
81
89
|
<!-- Flowbite arrow icon -->
|
|
82
90
|
<ChevronUpOutline class="w-3 h-3 shrink-0 transition-transform duration-200 {isOpen ? 'rotate-180' : ''}" />
|
|
@@ -7,16 +7,18 @@
|
|
|
7
7
|
* borderOpenClass: string - Additional classes when open
|
|
8
8
|
*/
|
|
9
9
|
import type { Snippet } from 'svelte';
|
|
10
|
-
|
|
10
|
+
declare const AccordionItem: import("svelte").Component<{
|
|
11
|
+
[key: string]: unknown;
|
|
11
12
|
open?: boolean;
|
|
12
13
|
class?: string;
|
|
13
14
|
border?: boolean;
|
|
14
15
|
borderOpenClass?: string;
|
|
15
16
|
header?: Snippet;
|
|
16
17
|
children?: Snippet;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
labels?: Partial<{
|
|
19
|
+
accordionItem: string;
|
|
20
|
+
}>;
|
|
21
|
+
}, {}, "">;
|
|
20
22
|
type AccordionItem = ReturnType<typeof AccordionItem>;
|
|
21
23
|
export default AccordionItem;
|
|
22
24
|
//# sourceMappingURL=AccordionItem.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionItem.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Accordion/AccordionItem.svelte.ts"],"names":[],"mappings":"AAGA;;;;;;;KAOK;AACL,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"AccordionItem.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Accordion/AccordionItem.svelte.ts"],"names":[],"mappings":"AAGA;;;;;;;KAOK;AACL,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAqGtC,QAAA,MAAM,aAAa;;WAhFR,OAAO;YACN,MAAM;aACL,OAAO;sBACE,MAAM;aACf,OAAO;eACL,OAAO;aACT,OAAO;;MAAsB;UA0EiB,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
type AlertColorVariant,
|
|
8
8
|
} from '../../tokens/variants.js';
|
|
9
9
|
|
|
10
|
+
const defaultLabels = {
|
|
11
|
+
close: 'Close',
|
|
12
|
+
};
|
|
13
|
+
|
|
10
14
|
interface Props {
|
|
11
15
|
title?: string;
|
|
12
16
|
message?: string;
|
|
@@ -14,6 +18,7 @@
|
|
|
14
18
|
onClose?: () => void;
|
|
15
19
|
onclose?: () => void;
|
|
16
20
|
children?: Snippet;
|
|
21
|
+
labels?: Partial<typeof defaultLabels>;
|
|
17
22
|
[key: string]: unknown;
|
|
18
23
|
}
|
|
19
24
|
|
|
@@ -24,9 +29,12 @@
|
|
|
24
29
|
onClose,
|
|
25
30
|
onclose,
|
|
26
31
|
children,
|
|
32
|
+
labels: userLabels = {},
|
|
27
33
|
...restProps
|
|
28
34
|
}: Props = $props();
|
|
29
35
|
|
|
36
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
37
|
+
|
|
30
38
|
let alertClasses = $derived(alertColorVariants[type] || alertColorVariants.info);
|
|
31
39
|
let closeButtonClasses = $derived(alertCloseButtonVariants[type] || alertCloseButtonVariants.info);
|
|
32
40
|
|
|
@@ -54,10 +62,10 @@
|
|
|
54
62
|
<button
|
|
55
63
|
type="button"
|
|
56
64
|
class="ms-auto -mx-1.5 -my-1.5 rounded-lg focus:ring-2 p-1.5 inline-flex items-center justify-center h-8 w-8 {closeButtonClasses}"
|
|
57
|
-
aria-label=
|
|
65
|
+
aria-label={labels.close}
|
|
58
66
|
onclick={handleClose}
|
|
59
67
|
>
|
|
60
|
-
<span class="sr-only">
|
|
68
|
+
<span class="sr-only">{labels.close}</span>
|
|
61
69
|
<CloseOutline class="w-3 h-3" />
|
|
62
70
|
</button>
|
|
63
71
|
{/if}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
2
|
import { type AlertColorVariant } from '../../tokens/variants.js';
|
|
3
|
-
|
|
3
|
+
declare const Alert: import("svelte").Component<{
|
|
4
|
+
[key: string]: unknown;
|
|
4
5
|
title?: string;
|
|
5
6
|
message?: string;
|
|
6
7
|
type?: AlertColorVariant;
|
|
7
8
|
onClose?: () => void;
|
|
8
9
|
onclose?: () => void;
|
|
9
10
|
children?: Snippet;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
labels?: Partial<{
|
|
12
|
+
close: string;
|
|
13
|
+
}>;
|
|
14
|
+
}, {}, "">;
|
|
13
15
|
type Alert = ReturnType<typeof Alert>;
|
|
14
16
|
export default Alert;
|
|
15
17
|
//# sourceMappingURL=Alert.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Alert/Alert.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAGH,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Alert.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Alert/Alert.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAGH,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAoEpC,QAAA,MAAM,KAAK;;YAxDC,MAAM;cACJ,MAAM;WACT,iBAAiB;cACd,MAAM,IAAI;cACV,MAAM,IAAI;eACT,OAAO;aACT,OAAO;;MAAsB;UAkDS,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
import { ChevronRightOutline, HomeSolid } from "../Icons";
|
|
3
3
|
import { typography } from "../../tokens/typography";
|
|
4
4
|
|
|
5
|
+
const defaultLabels = {
|
|
6
|
+
breadcrumb: 'Breadcrumb',
|
|
7
|
+
};
|
|
8
|
+
|
|
5
9
|
interface BreadcrumbItem {
|
|
6
10
|
name: string;
|
|
7
11
|
href: string;
|
|
@@ -20,6 +24,7 @@
|
|
|
20
24
|
subtitle?: string;
|
|
21
25
|
/** Click handler callback */
|
|
22
26
|
onclick?: (crumb: BreadcrumbItem) => void;
|
|
27
|
+
labels?: Partial<typeof defaultLabels>;
|
|
23
28
|
}
|
|
24
29
|
|
|
25
30
|
let {
|
|
@@ -29,8 +34,11 @@
|
|
|
29
34
|
title = '',
|
|
30
35
|
subtitle = '',
|
|
31
36
|
onclick,
|
|
37
|
+
labels: userLabels = {},
|
|
32
38
|
}: Props = $props();
|
|
33
39
|
|
|
40
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
41
|
+
|
|
34
42
|
function handleClick(crumb: BreadcrumbItem) {
|
|
35
43
|
onclick?.(crumb);
|
|
36
44
|
}
|
|
@@ -38,7 +46,7 @@
|
|
|
38
46
|
|
|
39
47
|
<div class="flex flex-col items-start gap-2 min-w-0">
|
|
40
48
|
{#if data.length > 0}
|
|
41
|
-
<nav class={`flex items-center ${typography.smMuted} font-medium ${className}`} aria-label=
|
|
49
|
+
<nav class={`flex items-center ${typography.smMuted} font-medium ${className}`} aria-label={labels.breadcrumb}>
|
|
42
50
|
<ol class="inline-flex items-center rtl:space-x-reverse flex-wrap">
|
|
43
51
|
{#each data as crumb, index}
|
|
44
52
|
<li class="inline-flex items-center">
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
name: string;
|
|
3
|
-
href: string;
|
|
4
|
-
}
|
|
5
|
-
interface Props {
|
|
1
|
+
declare const Breadcrumb: import("svelte").Component<{
|
|
6
2
|
/** Breadcrumb items array */
|
|
7
|
-
data?:
|
|
3
|
+
data?: {
|
|
4
|
+
name: string;
|
|
5
|
+
href: string;
|
|
6
|
+
}[];
|
|
8
7
|
/** Additional CSS classes */
|
|
9
8
|
className?: string;
|
|
10
9
|
/** Show built-in home icon for first item */
|
|
@@ -14,9 +13,14 @@ interface Props {
|
|
|
14
13
|
/** Subtitle displayed below title */
|
|
15
14
|
subtitle?: string;
|
|
16
15
|
/** Click handler callback */
|
|
17
|
-
onclick?: (crumb:
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
onclick?: (crumb: {
|
|
17
|
+
name: string;
|
|
18
|
+
href: string;
|
|
19
|
+
}) => void;
|
|
20
|
+
labels?: Partial<{
|
|
21
|
+
breadcrumb: string;
|
|
22
|
+
}>;
|
|
23
|
+
}, {}, "">;
|
|
20
24
|
type Breadcrumb = ReturnType<typeof Breadcrumb>;
|
|
21
25
|
export default Breadcrumb;
|
|
22
26
|
//# sourceMappingURL=Breadcrumb.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Breadcrumb/Breadcrumb.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Breadcrumb.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Breadcrumb/Breadcrumb.svelte.ts"],"names":[],"mappings":"AA0GA,QAAA,MAAM,UAAU;IAtFZ,6BAA6B;WACtB;cAND,MAAM;cACN,MAAM;OAKW;IACvB,6BAA6B;gBACjB,MAAM;IAClB,6CAA6C;mBAC9B,OAAO;IACtB,4CAA4C;YACpC,MAAM;IACd,qCAAqC;eAC1B,MAAM;IACjB,6BAA6B;cACnB,CAAC,KAAK;cAhBV,MAAM;cACN,MAAM;KAeoB,KAAK,IAAI;aAChC,OAAO;;MAAsB;UA0Ec,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -104,11 +104,12 @@ describe('Checkbox Colors', () => {
|
|
|
104
104
|
});
|
|
105
105
|
|
|
106
106
|
describe('Checkbox Input Styling', () => {
|
|
107
|
-
test('has w-4 and h-4 size', () => {
|
|
107
|
+
test('has w-4 and h-4 size with shrink-0', () => {
|
|
108
108
|
const { container } = render(Checkbox);
|
|
109
109
|
const input = container.querySelector('input');
|
|
110
110
|
expect(input).toHaveClass('w-4');
|
|
111
111
|
expect(input).toHaveClass('h-4');
|
|
112
|
+
expect(input).toHaveClass('shrink-0');
|
|
112
113
|
});
|
|
113
114
|
|
|
114
115
|
test('has rounded corners', () => {
|
|
@@ -117,24 +118,12 @@ describe('Checkbox Input Styling', () => {
|
|
|
117
118
|
expect(input).toHaveClass('rounded');
|
|
118
119
|
});
|
|
119
120
|
|
|
120
|
-
test('has bg-gray-100 background', () => {
|
|
121
|
-
const { container } = render(Checkbox);
|
|
122
|
-
const input = container.querySelector('input');
|
|
123
|
-
expect(input).toHaveClass('bg-gray-100');
|
|
124
|
-
});
|
|
125
|
-
|
|
126
121
|
test('has border-gray-300 border', () => {
|
|
127
122
|
const { container } = render(Checkbox);
|
|
128
123
|
const input = container.querySelector('input');
|
|
129
124
|
expect(input).toHaveClass('border-gray-300');
|
|
130
125
|
});
|
|
131
126
|
|
|
132
|
-
test('has dark mode background', () => {
|
|
133
|
-
const { container } = render(Checkbox);
|
|
134
|
-
const input = container.querySelector('input');
|
|
135
|
-
expect(input).toHaveClass('dark:bg-gray-700');
|
|
136
|
-
});
|
|
137
|
-
|
|
138
127
|
test('has dark mode border', () => {
|
|
139
128
|
const { container } = render(Checkbox);
|
|
140
129
|
const input = container.querySelector('input');
|
|
@@ -173,10 +162,10 @@ describe('Checkbox Label Styling', () => {
|
|
|
173
162
|
expect(label).toHaveClass('inline-flex');
|
|
174
163
|
});
|
|
175
164
|
|
|
176
|
-
test('label has items-
|
|
165
|
+
test('label has items-start alignment', () => {
|
|
177
166
|
const { container } = render(Checkbox);
|
|
178
167
|
const label = container.querySelector('label');
|
|
179
|
-
expect(label).toHaveClass('items-
|
|
168
|
+
expect(label).toHaveClass('items-start');
|
|
180
169
|
});
|
|
181
170
|
|
|
182
171
|
test('label has gap-2 spacing', () => {
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
let colorClass = $derived(colorClasses[color] || colorClasses.blue);
|
|
54
54
|
|
|
55
55
|
let inputClasses = $derived([
|
|
56
|
-
"w-4 h-4 rounded",
|
|
57
|
-
"
|
|
58
|
-
"dark:
|
|
56
|
+
"w-4 h-4 shrink-0 rounded",
|
|
57
|
+
"border-gray-300",
|
|
58
|
+
"dark:border-gray-600",
|
|
59
59
|
"focus:outline-hidden",
|
|
60
60
|
colorClass,
|
|
61
61
|
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
</script>
|
|
64
64
|
|
|
65
65
|
<label
|
|
66
|
-
class="inline-flex items-
|
|
66
|
+
class="inline-flex items-start gap-2 {disabled ? 'cursor-not-allowed' : 'cursor-pointer'} select-none {className}"
|
|
67
67
|
{...restProps}
|
|
68
68
|
>
|
|
69
69
|
<input
|
|
@@ -4,12 +4,23 @@
|
|
|
4
4
|
import MoonIcon from "./Icons/MoonIcon.svelte";
|
|
5
5
|
import Button from "./Button/Button.svelte";
|
|
6
6
|
|
|
7
|
+
const defaultLabels = {
|
|
8
|
+
toggleTheme: 'Toggle theme',
|
|
9
|
+
autoThemeClickForLight: 'Auto theme (following device) - click for light mode',
|
|
10
|
+
lightModeClickForDark: 'Light mode - click for dark mode',
|
|
11
|
+
darkModeClickForAuto: 'Dark mode - click for auto',
|
|
12
|
+
};
|
|
13
|
+
|
|
7
14
|
interface Props {
|
|
8
15
|
/** Container selector for applying dark class */
|
|
9
16
|
containerSelector?: string;
|
|
17
|
+
/** Override user-visible strings */
|
|
18
|
+
labels?: Partial<typeof defaultLabels>;
|
|
10
19
|
}
|
|
11
20
|
|
|
12
|
-
let { containerSelector = ".performer-portal" }: Props = $props();
|
|
21
|
+
let { containerSelector = ".performer-portal", labels: userLabels = {} }: Props = $props();
|
|
22
|
+
|
|
23
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
13
24
|
|
|
14
25
|
let themeMode = $state<"auto" | "light" | "dark">("auto");
|
|
15
26
|
let isDark = $state(false);
|
|
@@ -83,10 +94,10 @@
|
|
|
83
94
|
|
|
84
95
|
let titleText = $derived(
|
|
85
96
|
themeMode === "auto"
|
|
86
|
-
?
|
|
97
|
+
? labels.autoThemeClickForLight
|
|
87
98
|
: themeMode === "light"
|
|
88
|
-
?
|
|
89
|
-
:
|
|
99
|
+
? labels.lightModeClickForDark
|
|
100
|
+
: labels.darkModeClickForAuto
|
|
90
101
|
);
|
|
91
102
|
</script>
|
|
92
103
|
|
|
@@ -94,7 +105,7 @@
|
|
|
94
105
|
variant="alternative"
|
|
95
106
|
onclick={toggleTheme}
|
|
96
107
|
class="relative h-10 w-10 overflow-hidden p-0"
|
|
97
|
-
aria-label=
|
|
108
|
+
aria-label={labels.toggleTheme}
|
|
98
109
|
title={titleText}
|
|
99
110
|
>
|
|
100
111
|
<span
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
declare const DarkModeToggle: import("svelte").Component<{
|
|
2
2
|
/** Container selector for applying dark class */
|
|
3
3
|
containerSelector?: string;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/** Override user-visible strings */
|
|
5
|
+
labels?: Partial<{
|
|
6
|
+
toggleTheme: string;
|
|
7
|
+
autoThemeClickForLight: string;
|
|
8
|
+
lightModeClickForDark: string;
|
|
9
|
+
darkModeClickForAuto: string;
|
|
10
|
+
}>;
|
|
11
|
+
}, {}, "">;
|
|
6
12
|
type DarkModeToggle = ReturnType<typeof DarkModeToggle>;
|
|
7
13
|
export default DarkModeToggle;
|
|
8
14
|
//# sourceMappingURL=DarkModeToggle.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DarkModeToggle.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/primitives/DarkModeToggle.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DarkModeToggle.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/primitives/DarkModeToggle.svelte.ts"],"names":[],"mappings":"AA8IA,QAAA,MAAM,cAAc;IAxHhB,iDAAiD;wBAC7B,MAAM;IAC1B,oCAAoC;aAC3B,OAAO;;;;;MAAsB;UAqHkB,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
|
|
@@ -3,14 +3,20 @@
|
|
|
3
3
|
import type { Snippet } from "svelte";
|
|
4
4
|
import { bloom } from "../../utils/transitions.js";
|
|
5
5
|
|
|
6
|
+
const defaultLabels = {
|
|
7
|
+
menu: 'Menu',
|
|
8
|
+
};
|
|
9
|
+
|
|
6
10
|
interface Props {
|
|
7
11
|
open?: boolean;
|
|
8
12
|
activeUrl?: string;
|
|
9
13
|
placement?: string;
|
|
10
14
|
class?: string;
|
|
15
|
+
/** @deprecated Use `labels.menu` instead */
|
|
11
16
|
ariaLabel?: string;
|
|
12
17
|
onclose?: () => void;
|
|
13
18
|
children?: Snippet;
|
|
19
|
+
labels?: Partial<typeof defaultLabels>;
|
|
14
20
|
[key: string]: unknown;
|
|
15
21
|
}
|
|
16
22
|
|
|
@@ -19,12 +25,15 @@
|
|
|
19
25
|
activeUrl = "",
|
|
20
26
|
placement = "bottom",
|
|
21
27
|
class: className = "",
|
|
22
|
-
ariaLabel =
|
|
28
|
+
ariaLabel = undefined,
|
|
23
29
|
onclose,
|
|
24
30
|
children,
|
|
31
|
+
labels: userLabels = {},
|
|
25
32
|
...restProps
|
|
26
33
|
}: Props = $props();
|
|
27
34
|
|
|
35
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
36
|
+
|
|
28
37
|
let dropdownRef: HTMLUListElement | null = $state(null);
|
|
29
38
|
let containerRef: HTMLDivElement | null = $state(null);
|
|
30
39
|
let focusedIndex = $state(-1);
|
|
@@ -159,7 +168,7 @@
|
|
|
159
168
|
bind:this={containerRef}
|
|
160
169
|
class="absolute z-10 bg-white divide-y divide-gray-100 rounded-lg shadow-lg w-44 dark:bg-gray-700 dark:divide-gray-600 {className}"
|
|
161
170
|
role="menu"
|
|
162
|
-
aria-label={ariaLabel}
|
|
171
|
+
aria-label={ariaLabel ?? labels.menu}
|
|
163
172
|
transition:bloom={{ origin: placementOrigins[placement] || "top left" }}
|
|
164
173
|
{...restProps}
|
|
165
174
|
>
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import type { Snippet } from "svelte";
|
|
2
|
-
|
|
2
|
+
declare const Dropdown: import("svelte").Component<{
|
|
3
|
+
[key: string]: unknown;
|
|
3
4
|
open?: boolean;
|
|
4
5
|
activeUrl?: string;
|
|
5
6
|
placement?: string;
|
|
6
7
|
class?: string;
|
|
8
|
+
/** @deprecated Use `labels.menu` instead */
|
|
7
9
|
ariaLabel?: string;
|
|
8
10
|
onclose?: () => void;
|
|
9
11
|
children?: Snippet;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
labels?: Partial<{
|
|
13
|
+
menu: string;
|
|
14
|
+
}>;
|
|
15
|
+
}, {}, "open">;
|
|
13
16
|
type Dropdown = ReturnType<typeof Dropdown>;
|
|
14
17
|
export default Dropdown;
|
|
15
18
|
//# sourceMappingURL=Dropdown.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Dropdown/Dropdown.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Dropdown/Dropdown.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAkLtC,QAAA,MAAM,QAAQ;;WArKH,OAAO;gBACF,MAAM;gBACN,MAAM;YACV,MAAM;IACd,4CAA4C;gBAChC,MAAM;cACR,MAAM,IAAI;eACT,OAAO;aACT,OAAO;;MAAsB;cA6JY,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -16,6 +16,16 @@
|
|
|
16
16
|
import { formInputSizes } from "../../tokens/sizing";
|
|
17
17
|
import { formatCreditCardNumber, formatPhoneNumber } from "../../utils/formatters";
|
|
18
18
|
|
|
19
|
+
const defaultLabels = {
|
|
20
|
+
hidePassword: 'Hide password',
|
|
21
|
+
showPassword: 'Show password',
|
|
22
|
+
clearInput: 'Clear input',
|
|
23
|
+
buttonIconAlt: 'Button Icon',
|
|
24
|
+
inputIconAlt: 'Input icon',
|
|
25
|
+
helperIconAlt: 'Helper icon',
|
|
26
|
+
optional: '(optional)',
|
|
27
|
+
};
|
|
28
|
+
|
|
19
29
|
/** @type {{
|
|
20
30
|
required?: boolean,
|
|
21
31
|
disabled?: boolean,
|
|
@@ -107,9 +117,12 @@
|
|
|
107
117
|
onblur,
|
|
108
118
|
oninputchange,
|
|
109
119
|
leftIcon,
|
|
120
|
+
labels: userLabels = {},
|
|
110
121
|
...restProps
|
|
111
122
|
} = $props();
|
|
112
123
|
|
|
124
|
+
let labels = $derived({ ...defaultLabels, ...userLabels });
|
|
125
|
+
|
|
113
126
|
let inputValue = $state(value);
|
|
114
127
|
let inputElement = $state(null);
|
|
115
128
|
let debounceTimer;
|
|
@@ -275,7 +288,7 @@
|
|
|
275
288
|
<span class="text-sm font-medium {statusType === 'success' ? 'text-green-600' : statusType === 'error' ? 'text-red-500' : ''}">({statusText})</span>
|
|
276
289
|
{/if}
|
|
277
290
|
{#if optional}
|
|
278
|
-
<span class={typography.smMuted}>
|
|
291
|
+
<span class={typography.smMuted}>{labels.optional}</span>
|
|
279
292
|
{/if}
|
|
280
293
|
</div>
|
|
281
294
|
{/if}
|
|
@@ -328,7 +341,7 @@
|
|
|
328
341
|
onclick={togglePasswordVisibility}
|
|
329
342
|
class="flex items-center justify-center px-3 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 focus:outline-none"
|
|
330
343
|
tabindex="-1"
|
|
331
|
-
aria-label={isPasswordVisible ?
|
|
344
|
+
aria-label={isPasswordVisible ? labels.hidePassword : labels.showPassword}
|
|
332
345
|
>
|
|
333
346
|
{#if isPasswordVisible}
|
|
334
347
|
<EyeSlashOutline class="w-5 h-5" />
|
|
@@ -373,7 +386,7 @@
|
|
|
373
386
|
type="button"
|
|
374
387
|
onclick={clearInput}
|
|
375
388
|
class="absolute right-2 top-1/2 -translate-y-1/2 flex items-center justify-center p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200"
|
|
376
|
-
aria-label=
|
|
389
|
+
aria-label={labels.clearInput}
|
|
377
390
|
tabindex="-1"
|
|
378
391
|
>
|
|
379
392
|
<CloseCircleOutline class="w-4 h-4" />
|
|
@@ -386,7 +399,7 @@
|
|
|
386
399
|
class="absolute inset-y-0 right-0 gap-1 flex items-center justify-center px-4 text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 disabled:opacity-50 disabled:cursor-not-allowed {helperText || hintText || errorText ? 'mb-7' : ''}"
|
|
387
400
|
>
|
|
388
401
|
{#if buttonIcon}
|
|
389
|
-
<img src={buttonIcon} alt=
|
|
402
|
+
<img src={buttonIcon} alt={labels.buttonIconAlt} class="w-5 h-5" />
|
|
390
403
|
{/if}
|
|
391
404
|
{#if buttonText}
|
|
392
405
|
<span class="text-sm font-medium">{buttonText}</span>
|
|
@@ -394,7 +407,7 @@
|
|
|
394
407
|
</button>
|
|
395
408
|
{/if}
|
|
396
409
|
{#if icon && type !== "textarea" && !(showClearButton && inputValue)}
|
|
397
|
-
<img src={icon} alt=
|
|
410
|
+
<img src={icon} alt={labels.inputIconAlt} class="absolute inset-y-0 right-0 w-5 h-5 mr-3 top-1/2 transform -translate-y-1/2" />
|
|
398
411
|
{/if}
|
|
399
412
|
</div>
|
|
400
413
|
{/if}
|
|
@@ -407,7 +420,7 @@
|
|
|
407
420
|
{:else if helperText || hintText}
|
|
408
421
|
<div class={`mt-2 flex items-center ${typography.xsMuted} opacity-65`}>
|
|
409
422
|
{#if helperIcon || hintIcon}
|
|
410
|
-
<img src={helperIcon || hintIcon} alt=
|
|
423
|
+
<img src={helperIcon || hintIcon} alt={labels.helperIconAlt} class="w-4 h-4 mr-2" />
|
|
411
424
|
{/if}
|
|
412
425
|
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
|
413
426
|
<span>{@html helperText || hintText}</span>
|