@hyvor/design 0.0.67 → 1.0.3

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 (184) hide show
  1. package/dist/components/ActionList/ActionList.svelte +21 -13
  2. package/dist/components/ActionList/ActionList.svelte.d.ts +8 -20
  3. package/dist/components/ActionList/ActionListGroup.svelte +40 -35
  4. package/dist/components/ActionList/ActionListGroup.svelte.d.ts +8 -20
  5. package/dist/components/ActionList/ActionListItem.svelte +129 -107
  6. package/dist/components/ActionList/ActionListItem.svelte.d.ts +27 -25
  7. package/dist/components/ActionList/Selected.svelte +27 -24
  8. package/dist/components/ActionList/Selected.svelte.d.ts +6 -17
  9. package/dist/components/Avatar/Avatar.svelte +22 -19
  10. package/dist/components/Avatar/Avatar.svelte.d.ts +7 -18
  11. package/dist/components/Avatar/AvatarStack.svelte +29 -27
  12. package/dist/components/Avatar/AvatarStack.svelte.d.ts +6 -18
  13. package/dist/components/Base/Base.svelte +16 -8
  14. package/dist/components/Base/Base.svelte.d.ts +6 -18
  15. package/dist/components/Box/Box.svelte +16 -9
  16. package/dist/components/Box/Box.svelte.d.ts +7 -19
  17. package/dist/components/Button/Button.svelte +65 -47
  18. package/dist/components/Button/Button.svelte.d.ts +16 -39
  19. package/dist/components/Button/ButtonGroup.svelte +14 -6
  20. package/dist/components/Button/ButtonGroup.svelte.d.ts +5 -27
  21. package/dist/components/Callout/Callout.svelte +110 -87
  22. package/dist/components/Callout/Callout.svelte.d.ts +11 -22
  23. package/dist/components/Checkbox/Checkbox.svelte +156 -144
  24. package/dist/components/Checkbox/Checkbox.svelte.d.ts +11 -34
  25. package/dist/components/CodeBlock/CodeBlock.svelte +45 -32
  26. package/dist/components/CodeBlock/CodeBlock.svelte.d.ts +6 -17
  27. package/dist/components/CodeBlock/getCode.js +8 -6
  28. package/dist/components/CodeBlock/hljs.scss +189 -191
  29. package/dist/components/CodeBlock/prism.scss +370 -7
  30. package/dist/components/ColorPicker/ColorPicker.svelte +75 -56
  31. package/dist/components/ColorPicker/ColorPicker.svelte.d.ts +25 -19
  32. package/dist/components/Dark/DarkProvider.svelte +16 -14
  33. package/dist/components/Dark/DarkProvider.svelte.d.ts +16 -12
  34. package/dist/components/Dark/DarkToggle.svelte +15 -16
  35. package/dist/components/Dark/DarkToggle.svelte.d.ts +16 -12
  36. package/dist/components/Divider/Divider.svelte +23 -13
  37. package/dist/components/Divider/Divider.svelte.d.ts +9 -20
  38. package/dist/components/Dropdown/Dropdown.svelte +58 -114
  39. package/dist/components/Dropdown/Dropdown.svelte.d.ts +13 -24
  40. package/dist/components/Dropdown/DropdownContent.svelte +152 -0
  41. package/dist/components/Dropdown/DropdownContent.svelte.d.ts +12 -0
  42. package/dist/components/FormControl/Caption.svelte +18 -11
  43. package/dist/components/FormControl/Caption.svelte.d.ts +7 -19
  44. package/dist/components/FormControl/FormControl.svelte +28 -19
  45. package/dist/components/FormControl/FormControl.svelte.d.ts +6 -27
  46. package/dist/components/FormControl/InputGroup.svelte +22 -15
  47. package/dist/components/FormControl/InputGroup.svelte.d.ts +7 -19
  48. package/dist/components/FormControl/Label.svelte +15 -6
  49. package/dist/components/FormControl/Label.svelte.d.ts +6 -27
  50. package/dist/components/FormControl/Validation.svelte +30 -19
  51. package/dist/components/FormControl/Validation.svelte.d.ts +9 -21
  52. package/dist/components/HyvorBar/BarProducts.svelte +71 -0
  53. package/dist/components/HyvorBar/BarProducts.svelte.d.ts +32 -0
  54. package/dist/components/HyvorBar/BarSupport.svelte +183 -0
  55. package/dist/components/HyvorBar/BarSupport.svelte.d.ts +8 -0
  56. package/dist/components/HyvorBar/BarUpdates.svelte +68 -0
  57. package/dist/components/HyvorBar/BarUpdates.svelte.d.ts +7 -0
  58. package/dist/components/HyvorBar/BarUpdatesList.svelte +159 -0
  59. package/dist/components/HyvorBar/BarUpdatesList.svelte.d.ts +7 -0
  60. package/dist/components/HyvorBar/BarUser.svelte +72 -0
  61. package/dist/components/HyvorBar/BarUser.svelte.d.ts +5 -0
  62. package/dist/components/HyvorBar/BarUserPreview.svelte +43 -0
  63. package/dist/components/HyvorBar/BarUserPreview.svelte.d.ts +18 -0
  64. package/dist/components/HyvorBar/HyvorBar.svelte +183 -0
  65. package/dist/components/HyvorBar/HyvorBar.svelte.d.ts +8 -0
  66. package/dist/components/HyvorBar/bar.d.ts +33 -0
  67. package/dist/components/HyvorBar/bar.js +74 -0
  68. package/dist/components/HyvorBar/img/G2.svelte +9 -0
  69. package/dist/components/HyvorBar/img/G2.svelte.d.ts +26 -0
  70. package/dist/components/HyvorBar/img/Trustpilot.svelte +11 -0
  71. package/dist/components/HyvorBar/img/Trustpilot.svelte.d.ts +26 -0
  72. package/dist/components/IconButton/IconButton.svelte +49 -32
  73. package/dist/components/IconButton/IconButton.svelte.d.ts +10 -33
  74. package/dist/components/IconMessage/IconMessage.svelte +157 -51
  75. package/dist/components/IconMessage/IconMessage.svelte.d.ts +19 -27
  76. package/dist/components/Internationalization/InternationalizationProvider.svelte +15 -8
  77. package/dist/components/Internationalization/InternationalizationProvider.svelte.d.ts +7 -19
  78. package/dist/components/Internationalization/LanguageToggle.svelte +80 -57
  79. package/dist/components/Internationalization/LanguageToggle.svelte.d.ts +11 -22
  80. package/dist/components/Internationalization/T.svelte +158 -114
  81. package/dist/components/Internationalization/T.svelte.d.ts +17 -15
  82. package/dist/components/Internationalization/i18n.d.ts +3 -5
  83. package/dist/components/Internationalization/i18n.js +13 -11
  84. package/dist/components/Internationalization/t.d.ts +2 -3
  85. package/dist/components/Internationalization/t.js +4 -4
  86. package/dist/components/Internationalization/types.d.ts +2 -1
  87. package/dist/components/Link/Link.svelte +68 -61
  88. package/dist/components/Link/Link.svelte.d.ts +11 -34
  89. package/dist/components/Loader/LoadButton.svelte +39 -38
  90. package/dist/components/Loader/LoadButton.svelte.d.ts +29 -42
  91. package/dist/components/Loader/Loader.svelte +121 -107
  92. package/dist/components/Loader/Loader.svelte.d.ts +15 -27
  93. package/dist/components/Modal/ConfirmModalProvider.svelte +41 -51
  94. package/dist/components/Modal/ConfirmModalProvider.svelte.d.ts +3 -14
  95. package/dist/components/Modal/Modal.svelte +202 -203
  96. package/dist/components/Modal/Modal.svelte.d.ts +31 -29
  97. package/dist/components/Modal/ModalFooter.svelte +36 -31
  98. package/dist/components/Modal/ModalFooter.svelte.d.ts +22 -18
  99. package/dist/components/Modal/confirm.d.ts +2 -2
  100. package/dist/components/Modal/confirm.js +4 -4
  101. package/dist/components/Modal/modal-types.d.ts +4 -4
  102. package/dist/components/NavLink/NavLink.svelte +94 -89
  103. package/dist/components/NavLink/NavLink.svelte.d.ts +11 -33
  104. package/dist/components/Radio/Radio.svelte +46 -35
  105. package/dist/components/Radio/Radio.svelte.d.ts +10 -33
  106. package/dist/components/Slider/Slider.svelte +129 -120
  107. package/dist/components/Slider/Slider.svelte.d.ts +24 -20
  108. package/dist/components/SplitControl/SplitControl.svelte +43 -48
  109. package/dist/components/SplitControl/SplitControl.svelte.d.ts +11 -24
  110. package/dist/components/Switch/Switch.svelte +77 -67
  111. package/dist/components/Switch/Switch.svelte.d.ts +8 -31
  112. package/dist/components/TabNav/TabNav.svelte +33 -23
  113. package/dist/components/TabNav/TabNav.svelte.d.ts +7 -19
  114. package/dist/components/TabNav/TabNavItem.svelte +65 -51
  115. package/dist/components/TabNav/TabNavItem.svelte.d.ts +10 -24
  116. package/dist/components/Table/Table.svelte +17 -7
  117. package/dist/components/Table/Table.svelte.d.ts +7 -19
  118. package/dist/components/Table/TableRow.svelte +32 -24
  119. package/dist/components/Table/TableRow.svelte.d.ts +7 -19
  120. package/dist/components/Tag/Tag.svelte +75 -49
  121. package/dist/components/Tag/Tag.svelte.d.ts +16 -39
  122. package/dist/components/Text/Text.svelte +33 -26
  123. package/dist/components/Text/Text.svelte.d.ts +10 -22
  124. package/dist/components/TextInput/TextInput.svelte +54 -33
  125. package/dist/components/TextInput/TextInput.svelte.d.ts +12 -36
  126. package/dist/components/Textarea/Textarea.svelte +68 -46
  127. package/dist/components/Textarea/Textarea.svelte.d.ts +13 -37
  128. package/dist/components/Toast/ToastIcon.svelte +55 -46
  129. package/dist/components/Toast/ToastIcon.svelte.d.ts +5 -16
  130. package/dist/components/Toast/ToastMessage.svelte +42 -41
  131. package/dist/components/Toast/ToastMessage.svelte.d.ts +5 -16
  132. package/dist/components/Toast/ToastProvider.svelte +22 -20
  133. package/dist/components/Toast/ToastProvider.svelte.d.ts +16 -12
  134. package/dist/components/Toast/cleaner.js +5 -5
  135. package/dist/components/Toast/toast.d.ts +3 -3
  136. package/dist/components/Toast/toast.js +10 -10
  137. package/dist/components/Tooltip/Tooltip.svelte +163 -148
  138. package/dist/components/Tooltip/Tooltip.svelte.d.ts +35 -23
  139. package/dist/components/directives/clickOutside.js +4 -4
  140. package/dist/components/directives/debounce.d.ts +1 -0
  141. package/dist/components/directives/debounce.js +8 -0
  142. package/dist/components/index.d.ts +1 -0
  143. package/dist/components/index.js +1 -0
  144. package/dist/index.css +31 -33
  145. package/dist/marketing/Container/Container.svelte +15 -9
  146. package/dist/marketing/Container/Container.svelte.d.ts +6 -18
  147. package/dist/marketing/Docs/Content/Content.svelte +48 -35
  148. package/dist/marketing/Docs/Content/Content.svelte.d.ts +5 -16
  149. package/dist/marketing/Docs/Content/DocsImage.svelte +67 -69
  150. package/dist/marketing/Docs/Content/DocsImage.svelte.d.ts +9 -20
  151. package/dist/marketing/Docs/Docs.svelte +28 -25
  152. package/dist/marketing/Docs/Docs.svelte.d.ts +6 -29
  153. package/dist/marketing/Docs/Nav/Nav.svelte +96 -70
  154. package/dist/marketing/Docs/Nav/Nav.svelte.d.ts +5 -16
  155. package/dist/marketing/Docs/Nav/NavCategory.svelte +39 -29
  156. package/dist/marketing/Docs/Nav/NavCategory.svelte.d.ts +8 -20
  157. package/dist/marketing/Docs/Nav/NavItem.svelte +30 -26
  158. package/dist/marketing/Docs/Nav/NavItem.svelte.d.ts +6 -18
  159. package/dist/marketing/Docs/Sidebar/Sidebar.svelte +22 -25
  160. package/dist/marketing/Docs/Sidebar/Sidebar.svelte.d.ts +22 -19
  161. package/dist/marketing/Docs/Toc.svelte +64 -56
  162. package/dist/marketing/Docs/Toc.svelte.d.ts +3 -14
  163. package/dist/marketing/Document/Document.svelte +15 -8
  164. package/dist/marketing/Document/Document.svelte.d.ts +7 -19
  165. package/dist/marketing/Document/DocumentTitle.svelte +65 -54
  166. package/dist/marketing/Document/DocumentTitle.svelte.d.ts +9 -20
  167. package/dist/marketing/Footer/Footer.svelte +154 -145
  168. package/dist/marketing/Footer/Footer.svelte.d.ts +8 -20
  169. package/dist/marketing/Footer/FooterLinkList.svelte +31 -27
  170. package/dist/marketing/Footer/FooterLinkList.svelte.d.ts +6 -18
  171. package/dist/marketing/Header/Header.svelte +47 -37
  172. package/dist/marketing/Header/Header.svelte.d.ts +10 -22
  173. package/dist/marketing/Logo/LogoBlogs.svelte +46 -0
  174. package/dist/marketing/Logo/LogoBlogs.svelte.d.ts +5 -0
  175. package/dist/marketing/Logo/LogoCore.svelte +46 -0
  176. package/dist/marketing/Logo/LogoCore.svelte.d.ts +5 -0
  177. package/dist/marketing/Logo/LogoFortguard.svelte +54 -0
  178. package/dist/marketing/Logo/LogoFortguard.svelte.d.ts +5 -0
  179. package/dist/marketing/Logo/LogoTalk.svelte +32 -0
  180. package/dist/marketing/Logo/LogoTalk.svelte.d.ts +5 -0
  181. package/dist/stores/dark.d.ts +0 -1
  182. package/dist/stores/dark.js +8 -8
  183. package/dist/variables.scss +41 -48
  184. package/package.json +59 -58
@@ -1,39 +1,56 @@
1
- <script>export let size = "medium";
2
- export let color = "accent";
3
- export let variant = "fill";
4
- export let as = "button";
5
- const sizes = {
6
- small: 26,
7
- medium: 30,
8
- large: 36
9
- };
10
- size = (typeof size === "number" ? size : sizes[size]) + "px";
11
- </script>
1
+ <script lang="ts">
2
+ import { createBubbler } from 'svelte/legacy';
12
3
 
13
- <svelte:element
14
- this={as}
15
- class="button {color} {variant}"
4
+ const bubble = createBubbler();
5
+
6
+ interface Props {
7
+ size?: 'small' | 'medium' | 'large' | number;
8
+ // export let color : 'accent' | 'soft' | 'invisible' | 'danger' = 'accent';
9
+ color?: 'accent' | 'gray' | 'input' | 'green' | 'red' | 'blue' | 'orange';
10
+ variant?: 'fill' | 'fill-light' | 'outline' | 'outline-fill' | 'invisible';
11
+ as?: 'button' | 'a';
12
+ children?: import('svelte').Snippet;
13
+ [key: string]: any;
14
+ }
16
15
 
17
- style:width={size}
18
- style:height={size}
19
-
20
- on:keyup
21
- on:keydown
22
- on:keypress
23
- on:focus
24
- on:blur
25
- on:click
26
- on:mouseover
27
- on:mouseenter
28
- on:mouseleave
29
- on:change
16
+ let {
17
+ size = $bindable('medium'),
18
+ color = 'accent',
19
+ variant = 'fill',
20
+ as = 'button',
21
+ children,
22
+ ...rest
23
+ }: Props = $props();
30
24
 
31
- role="button"
32
- tabindex="0"
25
+ const sizes = {
26
+ small: 26,
27
+ medium: 30,
28
+ large: 36
29
+ };
33
30
 
34
- {...$$restProps}
31
+ size = (typeof size === 'number' ? size : sizes[size]) + 'px';
32
+ </script>
33
+
34
+ <svelte:element
35
+ this={as}
36
+ class="button {color} {variant}"
37
+ style:width={size}
38
+ style:height={size}
39
+ onkeyup={bubble('keyup')}
40
+ onkeydown={bubble('keydown')}
41
+ onkeypress={bubble('keypress')}
42
+ onfocus={bubble('focus')}
43
+ onblur={bubble('blur')}
44
+ onclick={bubble('click')}
45
+ onmouseover={bubble('mouseover')}
46
+ onmouseenter={bubble('mouseenter')}
47
+ onmouseleave={bubble('mouseleave')}
48
+ onchange={bubble('change')}
49
+ role="button"
50
+ tabindex="0"
51
+ {...rest}
35
52
  >
36
- <slot />
53
+ {@render children?.()}
37
54
  </svelte:element>
38
55
 
39
56
  <style>.button {
@@ -239,4 +256,4 @@ size = (typeof size === "number" ? size : sizes[size]) + "px";
239
256
  cursor: not-allowed;
240
257
  opacity: 0.2;
241
258
  box-shadow: none !important;
242
- }</style>
259
+ }</style>
@@ -1,33 +1,10 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- [x: string]: any;
5
- size?: number | "small" | "medium" | "large" | undefined;
6
- color?: "input" | "accent" | "gray" | "green" | "red" | "blue" | "orange" | undefined;
7
- variant?: "fill" | "fill-light" | "outline" | "invisible" | "outline-fill" | undefined;
8
- as?: "button" | "a" | undefined;
9
- };
10
- events: {
11
- keyup: KeyboardEvent;
12
- keydown: KeyboardEvent;
13
- keypress: KeyboardEvent;
14
- focus: FocusEvent;
15
- blur: FocusEvent;
16
- click: MouseEvent;
17
- mouseover: MouseEvent;
18
- mouseenter: MouseEvent;
19
- mouseleave: MouseEvent;
20
- change: Event;
21
- } & {
22
- [evt: string]: CustomEvent<any>;
23
- };
24
- slots: {
25
- default: {};
26
- };
27
- };
28
- export type IconButtonProps = typeof __propDef.props;
29
- export type IconButtonEvents = typeof __propDef.events;
30
- export type IconButtonSlots = typeof __propDef.slots;
31
- export default class IconButton extends SvelteComponent<IconButtonProps, IconButtonEvents, IconButtonSlots> {
32
- }
33
- export {};
1
+ declare const IconButton: import("svelte").Component<{
2
+ [key: string]: any;
3
+ size?: "small" | "medium" | "large" | number;
4
+ color?: "accent" | "gray" | "input" | "green" | "red" | "blue" | "orange";
5
+ variant?: "fill" | "fill-light" | "outline" | "outline-fill" | "invisible";
6
+ as?: "button" | "a";
7
+ children?: import("svelte").Snippet;
8
+ }, {}, "size">;
9
+ type IconButton = ReturnType<typeof IconButton>;
10
+ export default IconButton;
@@ -1,57 +1,163 @@
1
- <script>import { IconBug, IconInbox, IconPatchExclamation } from "@hyvor/icons";
2
- export let icon = null;
3
- export let message = null;
4
- export let iconSize = 100;
5
- export let padding = 0;
6
- export let empty = false;
7
- export let error = false;
8
- export let iconColor = null;
9
- if (empty) {
10
- message = message || "No results found";
11
- icon = IconInbox;
12
- }
13
- if (error) {
14
- message = message || "Something went wrong";
15
- icon = IconPatchExclamation;
16
- iconColor = iconColor || "var(--red)";
17
- }
18
- iconColor = iconColor || "var(--gray-dark)";
1
+ <script lang="ts">
2
+ import { type Component, type Snippet } from 'svelte';
3
+ import { IconBug, IconInbox } from '@hyvor/icons';
4
+ import Button from '../Button/Button.svelte';
5
+
6
+ interface Props {
7
+ size?: 'small' | 'medium' | 'large';
8
+ icon?: Component;
9
+ iconSize?: number;
10
+ padding?: number;
11
+ empty?: boolean;
12
+ error?: boolean;
13
+ iconColor?: string;
14
+ cta?:
15
+ | {
16
+ text: string;
17
+ onClick: (e: MouseEvent) => void;
18
+ props?: Record<string, any>;
19
+ }
20
+ | Snippet;
21
+
22
+ children?: Snippet;
23
+ message?: Snippet | string;
24
+ }
25
+
26
+ let {
27
+ size = 'medium',
28
+ icon,
29
+ iconSize,
30
+ padding,
31
+ empty = false,
32
+ error = false,
33
+ iconColor,
34
+ cta,
35
+
36
+ children,
37
+ message,
38
+
39
+ ...rest
40
+ }: Props = $props();
41
+
42
+ // export let size: 'small' | 'medium' | 'large' = 'medium';
43
+
44
+ // export let icon: ComponentType | null = null;
45
+ // export let message: string | null = null;
46
+
47
+ // export let iconSize: number | undefined = undefined;
48
+ const iconsSizes = {
49
+ small: 35,
50
+ medium: 50,
51
+ large: 75
52
+ };
53
+ iconSize = iconSize || iconsSizes[size];
54
+
55
+ // export let padding: number | undefined = undefined;
56
+
57
+ const paddings = {
58
+ small: 15,
59
+ medium: 40,
60
+ large: 60
61
+ };
62
+
63
+ padding = padding === undefined ? paddings[size] : padding;
64
+
65
+ //console.log(icon?.prototype);
66
+ // $inspect(icon?.prototype, icon?);
67
+
68
+ // export let empty: boolean = false;
69
+ // export let error: boolean = false;
70
+
71
+ // export let iconColor: string | null = null;
72
+
73
+ if (empty) {
74
+ message = message || 'No results found';
75
+ icon = IconInbox;
76
+ }
77
+
78
+ if (error) {
79
+ message = message || 'Something went wrong';
80
+ icon = IconBug;
81
+ iconColor = iconColor || 'var(--gray-dark)';
82
+ }
83
+
84
+ const Icon = icon;
85
+
86
+ iconColor = iconColor || 'var(--gray-dark)';
87
+
88
+ // export let cta: {
89
+ // text: string;
90
+ // onClick: (e: MouseEvent) => void;
91
+ // props?: Record<string, any>;
92
+ // } | null = null;
93
+
94
+ function onCtaClick(e: MouseEvent) {
95
+ if (cta && typeof cta === 'object') {
96
+ cta.onClick(e);
97
+ }
98
+ }
19
99
  </script>
20
100
 
21
- <div class="icon-message" style:padding={padding + "px"}>
22
- <div class="icon" style:color={iconColor} {...$$restProps}>
23
- {#if $$slots.icon}
24
- <slot name="icon" />
25
- {:else if icon}
26
- <svelte:component this={icon} size={iconSize + "px"} />
27
- {/if}
28
- </div>
29
-
30
- <div class="message">
31
- {#if $$slots.message}
32
- <slot name="message" />
33
- {:else if message}
34
- {message}
35
- {/if}
36
- </div>
101
+ <div class="icon-message {size}" style:padding={padding + 'px'}>
102
+ <div class="icon" style:color={iconColor} {...rest}>
103
+ <Icon size={iconSize + 'px'} />
104
+ </div>
105
+
106
+ <div class="message">
107
+ {#if children}
108
+ {@render children()}
109
+ {:else if typeof message === 'string'}
110
+ {message}
111
+ {:else if message}
112
+ {@render message()}
113
+ {/if}
114
+ </div>
115
+
116
+ {#if cta}
117
+ <div class="cta">
118
+ {#if typeof cta === 'object'}
119
+ <Button on:click={onCtaClick} {size} {...cta.props}>
120
+ {cta.text}
121
+ </Button>
122
+ {:else}
123
+ {@render cta()}
124
+ {/if}
125
+ </div>
126
+ {/if}
37
127
  </div>
38
128
 
39
129
  <style>
40
- .icon-message {
41
- width: 100%;
42
- height: 100%;
43
- flex: 1;
44
- display: flex;
45
- align-items: center;
46
- justify-content: center;
47
- position: relative;
48
- flex-direction: column; /* Change to column direction */
49
- text-align: center;
50
- }
51
-
52
- .message {
53
- /* Add message styles here */
54
- color: var(--text-light);
55
- margin-top: 15px;
56
- }
130
+ .icon-message {
131
+ width: 100%;
132
+ height: 100%;
133
+ flex: 1;
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ position: relative;
138
+ flex-direction: column; /* Change to column direction */
139
+ text-align: center;
140
+ }
141
+
142
+ .icon {
143
+ display: inline-flex;
144
+ align-items: flex-end;
145
+ }
146
+
147
+ .message {
148
+ /* Add message styles here */
149
+ color: var(--text-light);
150
+ margin-top: 10px;
151
+ }
152
+
153
+ .icon-message.small .message {
154
+ margin-top: 8px;
155
+ }
156
+ .icon-message.large .message {
157
+ margin-top: 13px;
158
+ }
159
+
160
+ .cta {
161
+ margin-top: 15px;
162
+ }
57
163
  </style>
@@ -1,27 +1,19 @@
1
- import { SvelteComponent } from "svelte";
2
- import type { ComponentType } from "svelte";
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- icon?: ComponentType | null | undefined;
7
- message?: string | null | undefined;
8
- iconSize?: number | undefined;
9
- padding?: number | undefined;
10
- empty?: boolean | undefined;
11
- error?: boolean | undefined;
12
- iconColor?: string | null | undefined;
13
- };
14
- events: {
15
- [evt: string]: CustomEvent<any>;
16
- };
17
- slots: {
18
- icon: {};
19
- message: {};
20
- };
21
- };
22
- export type IconMessageProps = typeof __propDef.props;
23
- export type IconMessageEvents = typeof __propDef.events;
24
- export type IconMessageSlots = typeof __propDef.slots;
25
- export default class IconMessage extends SvelteComponent<IconMessageProps, IconMessageEvents, IconMessageSlots> {
26
- }
27
- export {};
1
+ import { type Component, type Snippet } from 'svelte';
2
+ declare const IconMessage: Component<{
3
+ size?: "small" | "medium" | "large";
4
+ icon?: Component;
5
+ iconSize?: number;
6
+ padding?: number;
7
+ empty?: boolean;
8
+ error?: boolean;
9
+ iconColor?: string;
10
+ cta?: {
11
+ text: string;
12
+ onClick: (e: MouseEvent) => void;
13
+ props?: Record<string, any>;
14
+ } | Snippet;
15
+ children?: Snippet;
16
+ message?: Snippet | string;
17
+ }, {}, "">;
18
+ type IconMessage = ReturnType<typeof IconMessage>;
19
+ export default IconMessage;
@@ -1,11 +1,18 @@
1
- <script>import { setContext } from "svelte";
2
- import { InternationalizationService } from "./i18n.js";
3
- export let languages;
4
- const i18n = new InternationalizationService(languages);
5
- const locale = i18n.locale;
6
- setContext("i18n", i18n);
1
+ <script lang="ts">
2
+ import { setContext } from 'svelte';
3
+ import { InternationalizationService, type Language } from './i18n.js';
4
+
5
+ interface Props {
6
+ languages: Language[];
7
+ children?: import('svelte').Snippet;
8
+ }
9
+
10
+ let { languages, children }: Props = $props();
11
+ const i18n = new InternationalizationService(languages);
12
+ const locale = i18n.locale;
13
+ setContext('i18n', i18n);
7
14
  </script>
8
15
 
9
16
  {#key $locale}
10
- <slot />
11
- {/key}
17
+ {@render children?.()}
18
+ {/key}
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
- import { type Language } from "./i18n.js";
3
- declare const __propDef: {
4
- props: {
5
- languages: Language[];
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {
11
- default: {};
12
- };
13
- };
14
- export type InternationalizationProviderProps = typeof __propDef.props;
15
- export type InternationalizationProviderEvents = typeof __propDef.events;
16
- export type InternationalizationProviderSlots = typeof __propDef.slots;
17
- export default class InternationalizationProvider extends SvelteComponent<InternationalizationProviderProps, InternationalizationProviderEvents, InternationalizationProviderSlots> {
18
- }
19
- export {};
1
+ import { type Language } from './i18n.js';
2
+ declare const InternationalizationProvider: import("svelte").Component<{
3
+ languages: Language[];
4
+ children?: import("svelte").Snippet;
5
+ }, {}, "">;
6
+ type InternationalizationProvider = ReturnType<typeof InternationalizationProvider>;
7
+ export default InternationalizationProvider;
@@ -1,63 +1,86 @@
1
- <script>import { getContext } from "svelte";
2
- import Dropdown from "../Dropdown/Dropdown.svelte";
3
- import Button from "../Button/Button.svelte";
4
- import {} from "./i18n.js";
5
- import ActionList from "../ActionList/ActionList.svelte";
6
- import ActionListItem from "../ActionList/ActionListItem.svelte";
7
- import Text from "../Text/Text.svelte";
8
- import { IconCaretDown } from "@hyvor/icons";
9
- import IconButton from "../IconButton/IconButton.svelte";
10
- export let position = "bottom";
11
- export let align = "start";
12
- export let caret = IconCaretDown;
13
- export let icon = false;
14
- export let size = "medium";
15
- const i18n = getContext("i18n");
16
- const currentLanguage = i18n ? i18n.localeLanguage : void 0;
17
- let show = false;
18
- function handleClick(language) {
19
- i18n.setLocale(language.code);
20
- show = false;
21
- }
22
- </script>
1
+ <script lang="ts">
2
+ import { getContext, type Component, type ComponentProps } from 'svelte';
3
+ import Dropdown from '../Dropdown/Dropdown.svelte';
4
+ import Button from '../Button/Button.svelte';
5
+ import { type Language, type InternationalizationService } from './i18n.js';
6
+ import ActionList from '../ActionList/ActionList.svelte';
7
+ import ActionListItem from '../ActionList/ActionListItem.svelte';
8
+ import Text from '../Text/Text.svelte';
9
+ import { IconCaretDown } from '@hyvor/icons';
10
+ import IconButton from '../IconButton/IconButton.svelte';
23
11
 
12
+ interface Props {
13
+ position?: ComponentProps<typeof Dropdown>['position'];
14
+ align?: ComponentProps<typeof Dropdown>['align'];
15
+ caret?: Component;
16
+ icon?: boolean;
17
+ size?: 'medium' | 'small';
18
+ }
24
19
 
25
- {#if i18n && $currentLanguage}
20
+ let {
21
+ position = 'bottom',
22
+ align = 'start',
23
+ caret = IconCaretDown,
24
+ icon = false,
25
+ size = 'medium'
26
+ }: Props = $props();
27
+
28
+ const i18n = getContext<InternationalizationService>('i18n');
29
+ const currentLanguage = i18n ? i18n.localeLanguage : undefined;
30
+
31
+ let show = $state(false);
26
32
 
27
- <Dropdown bind:show={show} {position} {align}>
28
- <span slot="trigger">
29
- {#if icon}
30
- <IconButton color="input" {size}>
31
- {$currentLanguage.flag}
32
- </IconButton>
33
- {:else}
34
- <Button color="input" {size}>
35
- <span slot="start">{$currentLanguage.flag}</span>
36
- {$currentLanguage.name}
37
- <svelte:component slot="end" this={caret} size={12} />
38
- </Button>
39
- {/if}
40
- </span>
41
- <ActionList slot="content">
42
- {#each i18n.languages as language (language.code)}
43
- <ActionListItem on:click={() => handleClick(language)}>
44
- <span class="flag" slot="start">{language.flag}</span>
45
- <span class="name">
46
- {language.name}
47
- </span>
48
- <Text small light>
49
- {language.region}
50
- </Text>
51
- </ActionListItem>
52
- {/each}
53
- </ActionList>
54
- </Dropdown>
55
-
33
+ function handleClick(language: Language) {
34
+ i18n.setLocale(language.code);
35
+ show = false;
36
+ }
37
+ </script>
38
+
39
+ {#if i18n && $currentLanguage}
40
+ <Dropdown bind:show {position} {align}>
41
+ {#snippet trigger()}
42
+ <span>
43
+ {#if icon}
44
+ <IconButton color="input" {size}>
45
+ {$currentLanguage.flag}
46
+ </IconButton>
47
+ {:else}
48
+ <Button color="input" {size}>
49
+ {#snippet start()}
50
+ <span>{$currentLanguage.flag}</span>
51
+ {/snippet}
52
+ {$currentLanguage.name}
53
+ {#snippet end()}
54
+ {@const SvelteComponent = caret}
55
+ <SvelteComponent size={12} />
56
+ {/snippet}
57
+ </Button>
58
+ {/if}
59
+ </span>
60
+ {/snippet}
61
+ {#snippet content()}
62
+ <ActionList>
63
+ {#each i18n.languages as language (language.code)}
64
+ <ActionListItem on:click={() => handleClick(language)}>
65
+ {#snippet start()}
66
+ <span class="flag">{language.flag}</span>
67
+ {/snippet}
68
+ <span class="name">
69
+ {language.name}
70
+ </span>
71
+ <Text small light>
72
+ {language.region}
73
+ </Text>
74
+ </ActionListItem>
75
+ {/each}
76
+ </ActionList>
77
+ {/snippet}
78
+ </Dropdown>
56
79
  {/if}
57
80
 
58
81
  <style>
59
- .flag {
60
- margin-right: 6px;
61
- font-size: 20px;
62
- }
63
- </style>
82
+ .flag {
83
+ margin-right: 6px;
84
+ font-size: 20px;
85
+ }
86
+ </style>
@@ -1,22 +1,11 @@
1
- import { SvelteComponent } from "svelte";
2
- import { type ComponentProps, type ComponentType } from "svelte";
3
- import Dropdown from "../Dropdown/Dropdown.svelte";
4
- declare const __propDef: {
5
- props: {
6
- position?: ComponentProps<Dropdown>['position'];
7
- align?: ComponentProps<Dropdown>['align'];
8
- caret?: ComponentType | undefined;
9
- icon?: boolean | undefined;
10
- size?: "small" | "medium" | undefined;
11
- };
12
- events: {
13
- [evt: string]: CustomEvent<any>;
14
- };
15
- slots: {};
16
- };
17
- export type LanguageToggleProps = typeof __propDef.props;
18
- export type LanguageToggleEvents = typeof __propDef.events;
19
- export type LanguageToggleSlots = typeof __propDef.slots;
20
- export default class LanguageToggle extends SvelteComponent<LanguageToggleProps, LanguageToggleEvents, LanguageToggleSlots> {
21
- }
22
- export {};
1
+ import { type Component, type ComponentProps } from 'svelte';
2
+ import Dropdown from '../Dropdown/Dropdown.svelte';
3
+ declare const LanguageToggle: Component<{
4
+ position?: ComponentProps<typeof Dropdown>["position"];
5
+ align?: ComponentProps<typeof Dropdown>["align"];
6
+ caret?: Component;
7
+ icon?: boolean;
8
+ size?: "medium" | "small";
9
+ }, {}, "">;
10
+ type LanguageToggle = ReturnType<typeof LanguageToggle>;
11
+ export default LanguageToggle;