@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,210 +1,209 @@
1
- <script>import ModalFooter from "./ModalFooter.svelte";
2
- import { clickOutside } from "../directives/clickOutside.js";
3
- import { IconX } from "@hyvor/icons";
4
- import IconButton from "./../IconButton/IconButton.svelte";
5
- import { fade, scale } from "svelte/transition";
6
- import { onMount, tick } from "svelte";
7
- import Loader from "../Loader/Loader.svelte";
8
- import { createEventDispatcher } from "svelte";
9
- export let show = false;
10
- export let title = "";
11
- export let size = "medium";
12
- export let id = "modal";
13
- export let role = "alertdialog";
14
- export let closeOnOutsideClick = true;
15
- export let closeOnEscape = true;
16
- export let loading = false;
17
- const dispatch = createEventDispatcher();
18
- const titleId = id + "-title";
19
- const descId = id + "-desc";
20
- export let footer = null;
21
- let wrapEl;
22
- let innerEl;
23
- function handleCancel() {
24
- show = false;
25
- dispatch("cancel");
26
- }
27
- async function setFlex() {
28
- await tick();
29
- if (!wrapEl || !innerEl)
30
- return;
31
- if (innerEl.offsetHeight > wrapEl.offsetHeight - 60) {
32
- wrapEl.style.alignItems = "flex-start";
33
- } else {
34
- wrapEl.style.alignItems = "center";
35
- }
36
- }
37
- onMount(setFlex);
38
- $:
39
- show, setFlex();
1
+ <!-- @migration-task Error while migrating Svelte code: This migration would change the name of a slot making the component unusable -->
2
+ <script lang="ts">
3
+ import ModalFooter from './ModalFooter.svelte';
4
+ import type { Footer } from './modal-types.js';
5
+ import { clickOutside } from '../directives/clickOutside.js';
6
+ import { IconX } from '@hyvor/icons';
7
+ import IconButton from './../IconButton/IconButton.svelte';
8
+ import { fade, scale } from 'svelte/transition';
9
+ import { onMount, tick, type Snippet } from 'svelte';
10
+ import Loader from '../Loader/Loader.svelte';
11
+ import { createEventDispatcher } from 'svelte';
12
+
13
+ interface Props {
14
+ show?: boolean;
15
+ title?: string | Snippet;
16
+ size?: 'small' | 'medium' | 'large';
17
+ id?: string;
18
+ role?: 'dialog' | 'alertdialog';
19
+ closeOnOutsideClick?: boolean;
20
+ closeOnEscape?: boolean;
21
+ loading?: boolean | string;
22
+
23
+ footer?: Footer | Snippet;
24
+ children?: Snippet;
25
+ }
26
+
27
+ let {
28
+ show = $bindable(false),
29
+ title,
30
+ size = 'medium',
31
+ id = 'modal',
32
+ role = 'alertdialog',
33
+ closeOnOutsideClick = true,
34
+ closeOnEscape = true,
35
+ loading = false,
36
+ footer,
37
+ children
38
+ }: Props = $props();
39
+
40
+ const dispatch = createEventDispatcher();
41
+
42
+ const titleId = id + '-title';
43
+ const descId = id + '-desc';
44
+
45
+ let wrapEl: HTMLDivElement | undefined = $state();
46
+ let innerEl: HTMLDivElement | undefined = $state();
47
+
48
+ function handleCancel() {
49
+ show = false;
50
+ dispatch('cancel');
51
+ }
52
+
53
+ async function setFlex() {
54
+ await tick();
55
+ if (!wrapEl || !innerEl) return;
56
+ if (innerEl.offsetHeight > wrapEl.offsetHeight - 60) {
57
+ wrapEl.style.alignItems = 'flex-start';
58
+ } else {
59
+ wrapEl.style.alignItems = 'center';
60
+ }
61
+ }
62
+
63
+ onMount(setFlex);
64
+
65
+ $effect(() => {
66
+ show;
67
+ setFlex();
68
+ });
40
69
  </script>
41
70
 
42
- <svelte:window on:keyup={e => {
43
- if (e.key === 'Escape' && closeOnEscape && !loading) {
44
- show = false;
45
- }
46
- }} />
47
-
71
+ <svelte:window
72
+ on:keyup={(e) => {
73
+ if (e.key === 'Escape' && closeOnEscape && !loading) {
74
+ show = false;
75
+ }
76
+ }}
77
+ />
48
78
 
49
79
  {#if show}
50
- <div
51
- class="wrap"
52
- bind:this={wrapEl}
53
- in:fade={{duration: 100}}
54
- out:fade={{duration: 100}}
55
- >
56
-
57
- <div
58
- class="inner {size}"
59
- use:clickOutside={{
60
- enabled: closeOnOutsideClick,
61
- callback: () => !loading ? show = false : null
62
- }}
63
- in:scale={{duration: 100, start: 0.9, opacity: 0.9}}
64
- out:scale={{duration: 100, start: 0.9, opacity: 0.9}}
65
- bind:this={innerEl}
66
-
67
- role={role}
68
- aria-modal="true"
69
- aria-labelledby={titleId}
70
- aria-describedby={descId}
71
- >
72
-
73
- <div class="header">
74
-
75
- <div
76
- class="title"
77
- id={titleId}
78
- >
79
- {#if $$slots.title}
80
- <slot name="title" />
81
- {:else}
82
- <span>{title}</span>
83
- {/if}
84
- </div>
85
-
86
- <div class="close-wrap">
87
- <IconButton
88
- variant="invisible"
89
- on:click={handleCancel}
90
- >
91
- <IconX size={25} />
92
- </IconButton>
93
- </div>
94
-
95
- </div>
96
-
97
- <div
98
- class="content"
99
- id={descId}
100
- >
101
- <slot />
102
- </div>
103
-
104
- {#if $$slots.footer || footer}
105
- <div class="footer">
106
- {#if $$slots.footer}
107
- <slot name="footer" />
108
- {:else if footer}
109
- <ModalFooter
110
- {footer}
111
- bind:show={show}
112
- on:cancel
113
- on:confirm
114
- />
115
- {/if}
116
- </div>
117
- {/if}
118
-
119
- {#if loading}
120
- <div
121
- class="loading"
122
- in:fade={{duration: 100}}
123
- >
124
- <Loader full>
125
- {#if typeof loading === "string"}
126
- {loading}
127
- {/if}
128
- </Loader>
129
- </div>
130
- {/if}
131
-
132
- </div>
133
-
134
- </div>
80
+ <div class="wrap" bind:this={wrapEl} in:fade={{ duration: 100 }} out:fade={{ duration: 100 }}>
81
+ <div
82
+ class="inner {size}"
83
+ use:clickOutside={{
84
+ enabled: closeOnOutsideClick,
85
+ callback: () => (!loading ? (show = false) : null)
86
+ }}
87
+ in:scale={{ duration: 100, start: 0.9, opacity: 0.9 }}
88
+ out:scale={{ duration: 100, start: 0.9, opacity: 0.9 }}
89
+ bind:this={innerEl}
90
+ {role}
91
+ aria-modal="true"
92
+ aria-labelledby={titleId}
93
+ aria-describedby={descId}
94
+ >
95
+ <div class="header">
96
+ <div class="title" id={titleId}>
97
+ {#if typeof title === 'string'}
98
+ <span>{title}</span>
99
+ {:else}
100
+ {@render title?.()}
101
+ {/if}
102
+ </div>
103
+
104
+ <div class="close-wrap">
105
+ <IconButton variant="invisible" on:click={handleCancel}>
106
+ <IconX size={25} />
107
+ </IconButton>
108
+ </div>
109
+ </div>
110
+
111
+ <div class="content" id={descId}>
112
+ {@render children?.()}
113
+ </div>
114
+
115
+ {#if footer}
116
+ <div class="footer">
117
+ {#if typeof footer === 'object'}
118
+ <ModalFooter {footer} bind:show on:cancel on:confirm />
119
+ {:else}
120
+ {@render footer()}
121
+ {/if}
122
+ </div>
123
+ {/if}
124
+
125
+ {#if loading}
126
+ <div class="loading" in:fade={{ duration: 100 }}>
127
+ <Loader full>
128
+ {#if typeof loading === 'string'}
129
+ {loading}
130
+ {/if}
131
+ </Loader>
132
+ </div>
133
+ {/if}
134
+ </div>
135
+ </div>
135
136
  {/if}
136
137
 
137
138
  <style>
138
-
139
- .loading {
140
- position: absolute;
141
- top: 0;
142
- left: 0;
143
- z-index: 1;
144
- width: 100%;
145
- height: 100%;
146
- background-color: var(--box-background);
147
- border-radius: var(--box-radius);
148
- box-shadow: var(--box-shadow);
149
- }
150
-
151
- .wrap {
152
- position: fixed;
153
- top: 0;
154
- left: 0;
155
- z-index: 10000000;
156
- width: 100%;
157
- height: 100%;
158
- background: rgba(0,0,0,0.5);
159
- display: flex;
160
- align-items: center;
161
- justify-content: center;
162
- padding: 30px;
163
- overflow: auto;
164
- }
165
-
166
- .inner {
167
- background: var(--box-background);
168
- border-radius: var(--box-radius);
169
- box-shadow: var(--box-shadow);
170
- width: 650px;
171
- max-width: 100%;
172
- position: relative;
173
- }
174
-
175
- .inner.small {
176
- width: 425px;
177
- }
178
- .inner.large {
179
- width: 800px;
180
- }
181
-
182
- .header {
183
- padding: 20px 25px;
184
- display: flex;
185
- align-items: center;
186
- }
187
-
188
- .title {
189
- flex: 1;
190
- }
191
- .title span {
192
- font-size: 1.2em;
193
- font-weight: 600;
194
- }
195
-
196
- .content {
197
- padding: 20px 25px;
198
- }
199
-
200
- .footer {
201
- padding: 20px 25px;
202
- display: flex;
203
- align-items: center;
204
- justify-content: flex-end;
205
- }
206
- .footer :global(button:not(:last-child)) {
207
- margin-right: 2px;
208
- }
209
-
210
- </style>
139
+ .loading {
140
+ position: absolute;
141
+ top: 0;
142
+ left: 0;
143
+ z-index: 1;
144
+ width: 100%;
145
+ height: 100%;
146
+ background-color: var(--box-background);
147
+ border-radius: var(--box-radius);
148
+ box-shadow: var(--box-shadow);
149
+ }
150
+
151
+ .wrap {
152
+ position: fixed;
153
+ top: 0;
154
+ left: 0;
155
+ z-index: 10000000;
156
+ width: 100%;
157
+ height: 100%;
158
+ background: rgba(0, 0, 0, 0.5);
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ padding: 30px;
163
+ overflow: auto;
164
+ }
165
+
166
+ .inner {
167
+ background: var(--box-background);
168
+ border-radius: var(--box-radius);
169
+ box-shadow: var(--box-shadow);
170
+ width: 650px;
171
+ max-width: 100%;
172
+ position: relative;
173
+ }
174
+
175
+ .inner.small {
176
+ width: 425px;
177
+ }
178
+ .inner.large {
179
+ width: 800px;
180
+ }
181
+
182
+ .header {
183
+ padding: 20px 25px;
184
+ display: flex;
185
+ align-items: center;
186
+ }
187
+
188
+ .title {
189
+ flex: 1;
190
+ }
191
+ .title span {
192
+ font-size: 1.2em;
193
+ font-weight: 600;
194
+ }
195
+
196
+ .content {
197
+ padding: 20px 25px;
198
+ }
199
+
200
+ .footer {
201
+ padding: 20px 25px;
202
+ display: flex;
203
+ align-items: center;
204
+ justify-content: flex-end;
205
+ }
206
+ .footer :global(button:not(:last-child)) {
207
+ margin-right: 2px;
208
+ }
209
+ </style>
@@ -1,32 +1,34 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { Footer } from './modal-types.js';
3
- declare const __propDef: {
4
- props: {
5
- show?: boolean | undefined;
6
- title?: string | undefined;
7
- size?: "small" | "medium" | "large" | undefined;
8
- id?: string | undefined;
9
- role?: "dialog" | "alertdialog" | undefined;
10
- closeOnOutsideClick?: boolean | undefined;
11
- closeOnEscape?: boolean | undefined;
12
- loading?: string | boolean | undefined;
13
- footer?: Footer | null | undefined;
2
+ import { type Snippet } from 'svelte';
3
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
+ $$bindings?: Bindings;
6
+ } & Exports;
7
+ (internal: unknown, props: Props & {
8
+ $$events?: Events;
9
+ $$slots?: Slots;
10
+ }): Exports & {
11
+ $set?: any;
12
+ $on?: any;
14
13
  };
15
- events: {
16
- cancel: CustomEvent<any>;
17
- confirm: CustomEvent<any>;
18
- } & {
19
- [evt: string]: CustomEvent<any>;
20
- };
21
- slots: {
22
- title: {};
23
- default: {};
24
- footer: {};
25
- };
26
- };
27
- export type ModalProps = typeof __propDef.props;
28
- export type ModalEvents = typeof __propDef.events;
29
- export type ModalSlots = typeof __propDef.slots;
30
- export default class Modal extends SvelteComponent<ModalProps, ModalEvents, ModalSlots> {
14
+ z_$$bindings?: Bindings;
31
15
  }
32
- export {};
16
+ declare const Modal: $$__sveltets_2_IsomorphicComponent<{
17
+ show?: boolean;
18
+ title?: string | Snippet;
19
+ size?: "small" | "medium" | "large";
20
+ id?: string;
21
+ role?: "dialog" | "alertdialog";
22
+ closeOnOutsideClick?: boolean;
23
+ closeOnEscape?: boolean;
24
+ loading?: boolean | string;
25
+ footer?: Footer | Snippet;
26
+ children?: Snippet;
27
+ }, {
28
+ cancel: CustomEvent<any>;
29
+ confirm: CustomEvent<any>;
30
+ } & {
31
+ [evt: string]: CustomEvent<any>;
32
+ }, {}, {}, "show">;
33
+ type Modal = InstanceType<typeof Modal>;
34
+ export default Modal;
@@ -1,36 +1,41 @@
1
- <script>import { createEventDispatcher } from "svelte";
2
- import Button from "../Button/Button.svelte";
3
- import ButtonGroup from "../Button/ButtonGroup.svelte";
4
- export let show;
5
- export let footer;
6
- const dispatch = createEventDispatcher();
7
- </script>
1
+ <script lang="ts">
2
+ import { createEventDispatcher } from 'svelte';
3
+ import Button from '../Button/Button.svelte';
4
+ import ButtonGroup from '../Button/ButtonGroup.svelte';
5
+ import type { Footer } from './modal-types.ts';
8
6
 
7
+ interface Props {
8
+ show: boolean;
9
+ footer: Footer;
10
+ }
9
11
 
10
- <ButtonGroup>
12
+ let { show = $bindable(), footer }: Props = $props();
11
13
 
12
- {#if footer.cancel !== false}
13
- <Button
14
- variant="invisible"
15
- on:click={() => {
16
- show = false;
17
- dispatch("cancel");
18
- }}
19
- {...footer.cancel?.props}
20
- >
21
- {footer.cancel?.text || "Cancel"}
22
- </Button>
23
- {/if}
14
+ const dispatch = createEventDispatcher();
15
+ </script>
24
16
 
25
- {#if footer.confirm !== false}
26
- <Button
27
- variant="fill"
28
- color={footer.confirm?.danger ? "red" : "accent"}
29
- on:click={() => dispatch("confirm")}
30
- {...footer.confirm?.props}
31
- >
32
- {footer.confirm?.text || "Confirm"}
33
- </Button>
34
- {/if}
17
+ <ButtonGroup>
18
+ {#if footer.cancel !== false}
19
+ <Button
20
+ variant="invisible"
21
+ on:click={() => {
22
+ show = false;
23
+ dispatch('cancel');
24
+ }}
25
+ {...footer.cancel?.props}
26
+ >
27
+ {footer.cancel?.text || 'Cancel'}
28
+ </Button>
29
+ {/if}
35
30
 
36
- </ButtonGroup>
31
+ {#if footer.confirm !== false}
32
+ <Button
33
+ variant="fill"
34
+ color={footer.confirm?.danger ? 'red' : 'accent'}
35
+ on:click={() => dispatch('confirm')}
36
+ {...footer.confirm?.props}
37
+ >
38
+ {footer.confirm?.text || 'Confirm'}
39
+ </Button>
40
+ {/if}
41
+ </ButtonGroup>
@@ -1,21 +1,25 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { Footer } from './modal-types.ts';
3
- declare const __propDef: {
4
- props: {
5
- show: boolean;
6
- footer: Footer;
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
7
12
  };
8
- events: {
9
- cancel: CustomEvent<any>;
10
- confirm: CustomEvent<any>;
11
- } & {
12
- [evt: string]: CustomEvent<any>;
13
- };
14
- slots: {};
15
- };
16
- export type ModalFooterProps = typeof __propDef.props;
17
- export type ModalFooterEvents = typeof __propDef.events;
18
- export type ModalFooterSlots = typeof __propDef.slots;
19
- export default class ModalFooter extends SvelteComponent<ModalFooterProps, ModalFooterEvents, ModalFooterSlots> {
13
+ z_$$bindings?: Bindings;
20
14
  }
21
- export {};
15
+ declare const ModalFooter: $$__sveltets_2_IsomorphicComponent<{
16
+ show: boolean;
17
+ footer: Footer;
18
+ }, {
19
+ cancel: CustomEvent<any>;
20
+ confirm: CustomEvent<any>;
21
+ } & {
22
+ [evt: string]: CustomEvent<any>;
23
+ }, {}, {}, "show">;
24
+ type ModalFooter = InstanceType<typeof ModalFooter>;
25
+ export default ModalFooter;
@@ -1,7 +1,7 @@
1
- import { type ComponentType } from "svelte";
1
+ import { type Component } from 'svelte';
2
2
  interface ConfirmConfig {
3
3
  title: string;
4
- content: string | ComponentType;
4
+ content: string | Component<any>;
5
5
  contentProps?: Record<string, any>;
6
6
  confirmText?: string;
7
7
  cancelText?: string;
@@ -1,5 +1,5 @@
1
- import {} from "svelte";
2
- import { writable } from "svelte/store";
1
+ import {} from 'svelte';
2
+ import { writable } from 'svelte/store';
3
3
  export const confirmStore = writable(null);
4
4
  export function confirm(config) {
5
5
  function getOptions() {
@@ -12,7 +12,7 @@ export function confirm(config) {
12
12
  return store;
13
13
  });
14
14
  },
15
- close: () => confirmStore.set(null),
15
+ close: () => confirmStore.set(null)
16
16
  };
17
17
  }
18
18
  return new Promise((resolve, reject) => {
@@ -27,7 +27,7 @@ export function confirm(config) {
27
27
  onCancel: () => {
28
28
  resolve(false);
29
29
  confirmStore.set(null);
30
- },
30
+ }
31
31
  });
32
32
  });
33
33
  }
@@ -1,5 +1,5 @@
1
- import type { ComponentProps } from "svelte";
2
- import type Button from "../Button/Button.svelte";
1
+ import type { ComponentProps } from 'svelte';
2
+ import type Button from '../Button/Button.svelte';
3
3
  export interface Footer {
4
4
  /**
5
5
  * undefined: default cancel button
@@ -8,11 +8,11 @@ export interface Footer {
8
8
  */
9
9
  cancel?: false | {
10
10
  text?: string;
11
- props?: ComponentProps<Button>;
11
+ props?: ComponentProps<typeof Button>;
12
12
  };
13
13
  confirm?: false | {
14
14
  danger?: boolean;
15
15
  text?: string;
16
- props?: ComponentProps<Button>;
16
+ props?: ComponentProps<typeof Button>;
17
17
  };
18
18
  }