@getmicdrop/svelte-components 5.17.4 → 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.
Files changed (145) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +9 -5
  2. package/dist/calendar/AboutShow/AboutShow.svelte.d.ts +2 -2
  3. package/dist/calendar/AboutShow/AboutShow.svelte.d.ts.map +1 -1
  4. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +39 -18
  5. package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts +4 -0
  6. package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
  7. package/dist/calendar/FAQs/FAQs.svelte +16 -5
  8. package/dist/calendar/FAQs/FAQs.svelte.d.ts +6 -4
  9. package/dist/calendar/FAQs/FAQs.svelte.d.ts.map +1 -1
  10. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +19 -4
  11. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts +2 -0
  12. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
  13. package/dist/calendar/OrderSummary/OrderSummary.spec.js +3 -3
  14. package/dist/calendar/OrderSummary/OrderSummary.svelte +17 -13
  15. package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +4 -2
  16. package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
  17. package/dist/calendar/PublicCard/PublicCard.svelte +11 -2
  18. package/dist/calendar/PublicCard/PublicCard.svelte.d.ts +4 -0
  19. package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
  20. package/dist/calendar/ShowCard/ShowCard.svelte +25 -11
  21. package/dist/calendar/ShowCard/ShowCard.svelte.d.ts +4 -0
  22. package/dist/calendar/ShowCard/ShowCard.svelte.d.ts.map +1 -1
  23. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +12 -4
  24. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts +4 -0
  25. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -0
  29. package/dist/patterns/chat/ChatBubble.svelte +9 -1
  30. package/dist/patterns/chat/ChatBubble.svelte.d.ts +6 -4
  31. package/dist/patterns/chat/ChatBubble.svelte.d.ts.map +1 -1
  32. package/dist/patterns/chat/ChatInvitationBubble.svelte +10 -1
  33. package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts +6 -3
  34. package/dist/patterns/chat/ChatInvitationBubble.svelte.d.ts.map +1 -1
  35. package/dist/patterns/chat/ChatInvitationNotice.svelte +10 -1
  36. package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts +6 -3
  37. package/dist/patterns/chat/ChatInvitationNotice.svelte.d.ts.map +1 -1
  38. package/dist/patterns/forms/FormValidationSummary.svelte +9 -1
  39. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts +5 -3
  40. package/dist/patterns/forms/FormValidationSummary.svelte.d.ts.map +1 -1
  41. package/dist/patterns/navigation/BottomNav.svelte +9 -1
  42. package/dist/patterns/navigation/BottomNav.svelte.d.ts +10 -9
  43. package/dist/patterns/navigation/BottomNav.svelte.d.ts.map +1 -1
  44. package/dist/patterns/navigation/Header.svelte +20 -8
  45. package/dist/patterns/navigation/Header.svelte.d.ts +17 -9
  46. package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
  47. package/dist/patterns/page/PageLoader.svelte +12 -3
  48. package/dist/patterns/page/PageLoader.svelte.d.ts +6 -3
  49. package/dist/patterns/page/PageLoader.svelte.d.ts.map +1 -1
  50. package/dist/primitives/Accordion/AccordionItem.svelte +9 -1
  51. package/dist/primitives/Accordion/AccordionItem.svelte.d.ts +6 -4
  52. package/dist/primitives/Accordion/AccordionItem.svelte.d.ts.map +1 -1
  53. package/dist/primitives/Alert/Alert.svelte +10 -2
  54. package/dist/primitives/Alert/Alert.svelte.d.ts +6 -4
  55. package/dist/primitives/Alert/Alert.svelte.d.ts.map +1 -1
  56. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +9 -1
  57. package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts +13 -9
  58. package/dist/primitives/Breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  59. package/dist/primitives/DarkModeToggle.svelte +16 -5
  60. package/dist/primitives/DarkModeToggle.svelte.d.ts +9 -3
  61. package/dist/primitives/DarkModeToggle.svelte.d.ts.map +1 -1
  62. package/dist/primitives/Dropdown/Dropdown.svelte +11 -2
  63. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts +7 -4
  64. package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
  65. package/dist/primitives/Input/Input.svelte +19 -6
  66. package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
  67. package/dist/primitives/NumberInput/NumberInput.svelte +10 -2
  68. package/dist/primitives/NumberInput/NumberInput.svelte.d.ts.map +1 -1
  69. package/dist/primitives/Pagination/Pagination.svelte +21 -7
  70. package/dist/primitives/Pagination/Pagination.svelte.d.ts +14 -6
  71. package/dist/primitives/Pagination/Pagination.svelte.d.ts.map +1 -1
  72. package/dist/primitives/Skeleton/CardPlaceholder.svelte +11 -2
  73. package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts +8 -5
  74. package/dist/primitives/Skeleton/CardPlaceholder.svelte.d.ts.map +1 -1
  75. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +11 -2
  76. package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts +8 -5
  77. package/dist/primitives/Skeleton/ImagePlaceholder.svelte.d.ts.map +1 -1
  78. package/dist/primitives/Skeleton/ListPlaceholder.svelte +11 -2
  79. package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts +8 -5
  80. package/dist/primitives/Skeleton/ListPlaceholder.svelte.d.ts.map +1 -1
  81. package/dist/primitives/Skeleton/Skeleton.svelte +11 -2
  82. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts +7 -4
  83. package/dist/primitives/Skeleton/Skeleton.svelte.d.ts.map +1 -1
  84. package/dist/primitives/Spinner/Spinner.svelte +9 -1
  85. package/dist/primitives/Spinner/Spinner.svelte.d.ts +6 -4
  86. package/dist/primitives/Spinner/Spinner.svelte.d.ts.map +1 -1
  87. package/dist/recipes/ImageUploader/ImageUploader.svelte +5 -3
  88. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts +1 -0
  89. package/dist/recipes/ImageUploader/ImageUploader.svelte.d.ts.map +1 -1
  90. package/dist/recipes/SuperLogin/SuperLogin.svelte +25 -23
  91. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  92. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +12 -3
  93. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts +7 -4
  94. package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
  95. package/dist/recipes/inputs/MultiSelect.svelte +10 -2
  96. package/dist/recipes/inputs/MultiSelect.svelte.d.ts.map +1 -1
  97. package/dist/recipes/inputs/OTPInput.svelte +14 -3
  98. package/dist/recipes/inputs/OTPInput.svelte.d.ts +14 -12
  99. package/dist/recipes/inputs/OTPInput.svelte.d.ts.map +1 -1
  100. package/dist/recipes/inputs/PasswordInput.svelte +10 -1
  101. package/dist/recipes/inputs/PasswordInput.svelte.d.ts +7 -4
  102. package/dist/recipes/inputs/PasswordInput.svelte.d.ts.map +1 -1
  103. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +21 -10
  104. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts +8 -3
  105. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
  106. package/dist/recipes/inputs/PhoneInput.svelte +254 -0
  107. package/dist/recipes/inputs/PhoneInput.svelte.d.ts +40 -0
  108. package/dist/recipes/inputs/PhoneInput.svelte.d.ts.map +1 -0
  109. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +22 -9
  110. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts +21 -16
  111. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte.d.ts.map +1 -1
  112. package/dist/recipes/inputs/Search.svelte +10 -2
  113. package/dist/recipes/inputs/Search.svelte.d.ts +7 -5
  114. package/dist/recipes/inputs/Search.svelte.d.ts.map +1 -1
  115. package/dist/recipes/inputs/index.d.ts +1 -0
  116. package/dist/recipes/inputs/index.js +1 -0
  117. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte +240 -0
  118. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts +15 -0
  119. package/dist/recipes/inputs/phoneInput/CountrySelector.svelte.d.ts.map +1 -0
  120. package/dist/recipes/inputs/phoneInput/countryData.d.ts +18 -0
  121. package/dist/recipes/inputs/phoneInput/countryData.d.ts.map +1 -0
  122. package/dist/recipes/inputs/phoneInput/countryData.js +211 -0
  123. package/dist/recipes/modals/AlertModal.svelte +11 -2
  124. package/dist/recipes/modals/AlertModal.svelte.d.ts +4 -2
  125. package/dist/recipes/modals/AlertModal.svelte.d.ts.map +1 -1
  126. package/dist/recipes/modals/ConfirmationModal.svelte +8 -1
  127. package/dist/recipes/modals/ConfirmationModal.svelte.d.ts +2 -0
  128. package/dist/recipes/modals/ConfirmationModal.svelte.d.ts.map +1 -1
  129. package/dist/recipes/modals/InputModal.svelte +19 -7
  130. package/dist/recipes/modals/InputModal.svelte.d.ts +6 -4
  131. package/dist/recipes/modals/InputModal.svelte.d.ts.map +1 -1
  132. package/dist/recipes/modals/StatusModal.svelte +14 -4
  133. package/dist/recipes/modals/StatusModal.svelte.d.ts +4 -2
  134. package/dist/recipes/modals/StatusModal.svelte.d.ts.map +1 -1
  135. package/dist/tokens/__tests__/variants.test.js +12 -4
  136. package/dist/tokens/variants.d.ts +4 -4
  137. package/dist/tokens/variants.js +4 -4
  138. package/dist/utils/formatters.d.ts +6 -0
  139. package/dist/utils/formatters.d.ts.map +1 -1
  140. package/dist/utils/formatters.js +8 -0
  141. package/dist/utils/phoneUtils.d.ts +35 -0
  142. package/dist/utils/phoneUtils.d.ts.map +1 -0
  143. package/dist/utils/phoneUtils.js +104 -0
  144. package/dist/utils/utils.js +25 -16
  145. package/package.json +6 -1
@@ -1,17 +1,25 @@
1
- interface NavLink {
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?: NavLink[];
11
- dropdownLinks?: NavLink[];
6
+ navLinks?: {
7
+ label: string;
8
+ href: string;
9
+ }[];
10
+ dropdownLinks?: {
11
+ label: string;
12
+ href: string;
13
+ }[];
12
14
  showBackButton?: boolean;
13
- }
14
- declare const Header: import("svelte").Component<Props, {}, "">;
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":"AAoBE,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,KAAK;IACb,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAmMH,QAAA,MAAM,MAAM,2CAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
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 = "Error",
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
- Try again
55
+ {labels.tryAgain}
47
56
  </Button>
48
57
  </div>
49
58
  {/if}
@@ -1,5 +1,5 @@
1
1
  import type { Snippet } from 'svelte';
2
- interface Props {
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
- declare const PageLoader: import("svelte").Component<Props, {}, "">;
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;AAOpC,UAAU,KAAK;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+CH,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,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}Accordion Item{/if}
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
- interface Props {
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
- [key: string]: unknown;
18
- }
19
- declare const AccordionItem: import("svelte").Component<Props, {}, "">;
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;AAQpC,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA8EH,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,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="Close"
65
+ aria-label={labels.close}
58
66
  onclick={handleClose}
59
67
  >
60
- <span class="sr-only">Close</span>
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
- interface Props {
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
- [key: string]: unknown;
11
- }
12
- declare const Alert: import("svelte").Component<Props, {}, "">;
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;AAGlC,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAkDH,QAAA,MAAM,KAAK,2CAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,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="Breadcrumb">
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
- interface BreadcrumbItem {
2
- name: string;
3
- href: string;
4
- }
5
- interface Props {
1
+ declare const Breadcrumb: import("svelte").Component<{
6
2
  /** Breadcrumb items array */
7
- data?: BreadcrumbItem[];
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: BreadcrumbItem) => void;
18
- }
19
- declare const Breadcrumb: import("svelte").Component<Props, {}, "">;
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":"AAOE,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,KAAK;IACb,6BAA6B;IAC7B,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;IACxB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AA2EH,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
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"}
@@ -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
- ? "Auto theme (following device) - click for light mode"
97
+ ? labels.autoThemeClickForLight
87
98
  : themeMode === "light"
88
- ? "Light mode - click for dark mode"
89
- : "Dark mode - click for auto"
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="Toggle theme"
108
+ aria-label={labels.toggleTheme}
98
109
  title={titleText}
99
110
  >
100
111
  <span
@@ -1,8 +1,14 @@
1
- interface Props {
1
+ declare const DarkModeToggle: import("svelte").Component<{
2
2
  /** Container selector for applying dark class */
3
3
  containerSelector?: string;
4
- }
5
- declare const DarkModeToggle: import("svelte").Component<Props, {}, "">;
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":"AASE,UAAU,KAAK;IACb,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAwHH,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
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 = "Menu",
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
- interface Props {
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
- [key: string]: unknown;
11
- }
12
- declare const Dropdown: import("svelte").Component<Props, {}, "open">;
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;AAIpC,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA6JH,QAAA,MAAM,QAAQ,+CAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,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}>(optional)</span>
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 ? "Hide password" : "Show password"}
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="Clear input"
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="Button Icon" class="w-5 h-5" />
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="Input icon" class="absolute inset-y-0 right-0 w-5 h-5 mr-3 top-1/2 transform -translate-y-1/2" />
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="Helper icon" class="w-4 h-4 mr-2" />
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>
@@ -1 +1 @@
1
- {"version":3,"file":"Input.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Input/Input.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmZA;eA7Ce,OAAO;eACP,OAAO;eACP,OAAO;WACX,MAAM,GAAG,IAAI;iBACP,MAAM,GAAG,IAAI;iBACb,MAAM,GAAG,IAAI;gBACd,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;WAClB,MAAM;kBACC,MAAM;YACZ,MAAM;SACT,MAAM;WACJ,MAAM;gBACD,MAAM;WACX,IAAI,GAAG,IAAI,GAAG,IAAI;mBACV,MAAM;gBACT,MAAM;YACV,MAAM,GAAG,KAAK;iBACT,MAAM;iBACN,MAAM;eACR,MAAM;eACN,MAAM;mBACF,MAAM;eACV,OAAO;iBACL,OAAO;oBACJ,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI;YACxC,MAAM,GAAG,MAAM,GAAG,IAAI;mBACf,MAAM,GAAG,IAAI;gBAChB,OAAO;yBACE,OAAO;mBACb,OAAO;iBACT,MAAM;iBACN,MAAM;qBACF,OAAO;gBACZ,MAAM,GAAG,IAAI;oBACT,OAAO;iBACV,MAAM;qBACF,MAAM;sBACL,OAAO;eACd,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI;cACpC,MAAM,IAAI;aACX,MAAM,IAAI;oBACH,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;eAC5B,OAAO,QAAQ,EAAE,OAAO;gBAEa"}
1
+ {"version":3,"file":"Input.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/Input/Input.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgaA;eA7Ce,OAAO;eACP,OAAO;eACP,OAAO;WACX,MAAM,GAAG,IAAI;iBACP,MAAM,GAAG,IAAI;iBACb,MAAM,GAAG,IAAI;gBACd,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;WAClB,MAAM;kBACC,MAAM;YACZ,MAAM;SACT,MAAM;WACJ,MAAM;gBACD,MAAM;WACX,IAAI,GAAG,IAAI,GAAG,IAAI;mBACV,MAAM;gBACT,MAAM;YACV,MAAM,GAAG,KAAK;iBACT,MAAM;iBACN,MAAM;eACR,MAAM;eACN,MAAM;mBACF,MAAM;eACV,OAAO;iBACL,OAAO;oBACJ,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI;YACxC,MAAM,GAAG,MAAM,GAAG,IAAI;mBACf,MAAM,GAAG,IAAI;gBAChB,OAAO;yBACE,OAAO;mBACb,OAAO;iBACT,MAAM;iBACN,MAAM;qBACF,OAAO;gBACZ,MAAM,GAAG,IAAI;oBACT,OAAO;iBACV,MAAM;qBACF,MAAM;sBACL,OAAO;eACd,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI;cACpC,MAAM,IAAI;aACX,MAAM,IAAI;oBACH,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;eAC5B,OAAO,QAAQ,EAAE,OAAO;gBAEa"}
@@ -11,6 +11,11 @@
11
11
  */
12
12
  import { twMerge } from 'tailwind-merge';
13
13
 
14
+ const defaultLabels = {
15
+ decreaseQuantity: 'Decrease quantity',
16
+ increaseQuantity: 'Increase quantity',
17
+ };
18
+
14
19
  /** @type {{
15
20
  value?: number,
16
21
  min?: number,
@@ -26,9 +31,12 @@
26
31
  disabled = false,
27
32
  onchange,
28
33
  class: className = "",
34
+ labels: userLabels = {},
29
35
  ...restProps
30
36
  } = $props();
31
37
 
38
+ let labels = $derived({ ...defaultLabels, ...userLabels });
39
+
32
40
  function increment() {
33
41
  if (value < max && !disabled) {
34
42
  const newValue = value + 1;
@@ -80,7 +88,7 @@
80
88
  class={decrementClasses}
81
89
  onclick={decrement}
82
90
  disabled={isMinDisabled}
83
- aria-label="Decrease quantity"
91
+ aria-label={labels.decreaseQuantity}
84
92
  >
85
93
  <svg class="w-3 h-3 text-gray-800 dark:text-white" fill="none" viewBox="0 0 18 2">
86
94
  <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h16"/>
@@ -96,7 +104,7 @@
96
104
  class={incrementClasses}
97
105
  onclick={increment}
98
106
  disabled={isMaxDisabled}
99
- aria-label="Increase quantity"
107
+ aria-label={labels.increaseQuantity}
100
108
  >
101
109
  <svg class="w-3 h-3 text-gray-800 dark:text-white" fill="none" viewBox="0 0 18 18">
102
110
  <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 1v16M1 9h16"/>
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/NumberInput/NumberInput.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;AA6GA;YAPY,MAAM;UACR,MAAM;UACN,MAAM;eACD,OAAO;eACP,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;YAC1B,MAAM;WAEwC"}
1
+ {"version":3,"file":"NumberInput.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/primitives/NumberInput/NumberInput.svelte.js"],"names":[],"mappings":";;;;;;;;;;;;AAqHA;YAPY,MAAM;UACR,MAAM;UACN,MAAM;eACD,OAAO;eACP,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;YAC1B,MAAM;WAEwC"}