@hyvor/design 2.1.22-beta.2 → 2.1.22-beta.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.
@@ -1,21 +1,60 @@
1
1
  <script lang="ts">
2
- import ConfirmModalProvider from './../Modal/ConfirmModalProvider.svelte';
3
- import DarkProvider from './../Dark/DarkProvider.svelte';
4
- import ToastProvider from '../Toast/ToastProvider.svelte';
5
- import FileUploaderProvider from '../FileUploader/FileUploaderProvider.svelte';
6
2
  import fontsCss from './fonts.css?inline';
3
+ import DarkProvider from './../Dark/DarkProvider.svelte';
4
+ import { toastStore } from '../Toast/toast.js';
5
+ import { confirmStore } from '../Modal/confirm.js';
6
+ import { fileUploaderConfig } from '../FileUploader/file-uploader.js';
7
7
 
8
8
  interface Props {
9
9
  dark?: boolean;
10
10
  children?: import('svelte').Snippet;
11
+ marketing?: boolean;
11
12
  }
12
13
 
13
- let { dark = false, children }: Props = $props();
14
+ let { dark = false, children, marketing = false }: Props = $props();
15
+
16
+ let needsToast = $state(false);
17
+ let needsConfirm = $state(false);
18
+ let needsFileUploader = $state(false);
19
+
20
+ $effect(() => {
21
+ if ($toastStore.length > 0) needsToast = true;
22
+ });
23
+ $effect(() => {
24
+ if ($confirmStore !== null) needsConfirm = true;
25
+ });
26
+ $effect(() => {
27
+ if ($fileUploaderConfig !== null) needsFileUploader = true;
28
+ });
14
29
  </script>
15
30
 
16
31
  <svelte:head>
17
32
  <link rel="preconnect" href="https://media.hyvor.com" />
33
+ <link rel="preconnect" href="https://media.hyvor.com" crossorigin="" />
34
+
18
35
  {@html '<style>' + fontsCss + '</style>'}
36
+
37
+ {#if marketing}
38
+ <link
39
+ rel="preload"
40
+ href="https://media.hyvor.com/fonts/source-serif-4-latin-600-normal.DouSKlru.woff2"
41
+ as="font"
42
+ type="font/woff2"
43
+ crossorigin=""
44
+ />
45
+ <link
46
+ rel="preload"
47
+ href="https://media.hyvor.com/fonts/source-serif-4-latin-400-normal.DJ5YJwmz.woff2"
48
+ as="font"
49
+ type="font/woff2"
50
+ crossorigin=""
51
+ />
52
+ <style>
53
+ :root {
54
+ font-family: var(--font-serif) !important;
55
+ }
56
+ </style>
57
+ {/if}
19
58
  </svelte:head>
20
59
 
21
60
  <div id="hds-base">
@@ -26,9 +65,23 @@
26
65
  <DarkProvider />
27
66
  {/if}
28
67
 
29
- <ToastProvider />
30
- <ConfirmModalProvider />
31
- <FileUploaderProvider />
68
+ {#if needsToast}
69
+ {#await import('../Toast/ToastProvider.svelte') then m}
70
+ <m.default />
71
+ {/await}
72
+ {/if}
73
+
74
+ {#if needsConfirm}
75
+ {#await import('../Modal/ConfirmModalProvider.svelte') then m}
76
+ <m.default />
77
+ {/await}
78
+ {/if}
79
+
80
+ {#if needsFileUploader}
81
+ {#await import('../FileUploader/FileUploaderProvider.svelte') then m}
82
+ <m.default />
83
+ {/await}
84
+ {/if}
32
85
 
33
86
  <style>
34
87
  :global(:root) {
@@ -1,6 +1,7 @@
1
1
  interface Props {
2
2
  dark?: boolean;
3
3
  children?: import('svelte').Snippet;
4
+ marketing?: boolean;
4
5
  }
5
6
  declare const Base: import("svelte").Component<Props, {}, "">;
6
7
  type Base = ReturnType<typeof Base>;
@@ -1,222 +1,262 @@
1
1
  @font-face {
2
- font-family: Readex Pro;
3
- font-style: normal;
4
- font-display: swap;
5
- font-weight: 400;
6
- src:
7
- url(https://media.hyvor.com/fonts/readex-pro-arabic-400-normal.BzB5iZVu.woff2) format("woff2"),
8
- url(https://media.hyvor.com/fonts/readex-pro-arabic-400-normal.CRluTl2A.woff) format("woff");
9
- unicode-range: U+6??, U+750-77F, U+870-88E, U+890-891, U+897-8E1, U+8E3-8FF, U+200C-200E, U+2010-2011, U+204F,
10
- U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF,
11
- U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B,
12
- U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D,
13
- U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E,
14
- U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
15
- }
16
- @font-face {
17
- font-family: Readex Pro;
18
- font-style: normal;
19
- font-display: swap;
20
- font-weight: 400;
21
- src:
22
- url(https://media.hyvor.com/fonts/readex-pro-vietnamese-400-normal.DAQS1QRE.woff2) format("woff2"),
23
- url(https://media.hyvor.com/fonts/readex-pro-vietnamese-400-normal.DRTbt2AX.woff) format("woff");
24
- unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309,
25
- U+323, U+329, U+1EA0-1EF9, U+20AB;
26
- }
27
- @font-face {
28
- font-family: Readex Pro;
29
- font-style: normal;
30
- font-display: swap;
31
- font-weight: 400;
32
- src:
33
- url(https://media.hyvor.com/fonts/readex-pro-latin-ext-400-normal.CDeDBhe3.woff2) format("woff2"),
34
- url(https://media.hyvor.com/fonts/readex-pro-latin-ext-400-normal.DzeKRH4q.woff) format("woff");
35
- unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F,
36
- U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
37
- }
38
- @font-face {
39
- font-family: Readex Pro;
40
- font-style: normal;
41
- font-display: swap;
42
- font-weight: 400;
43
- src:
44
- url(https://media.hyvor.com/fonts/readex-pro-latin-400-normal.BZtYQVaG.woff2) format("woff2"),
45
- url(https://media.hyvor.com/fonts/readex-pro-latin-400-normal.SP_jEUAw.woff) format("woff");
46
- unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC,
47
- U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
48
- }
49
- @font-face {
50
- font-family: Readex Pro;
51
- font-style: normal;
52
- font-display: swap;
53
- font-weight: 600;
54
- src:
55
- url(https://media.hyvor.com/fonts/readex-pro-arabic-600-normal.BHxn1TEo.woff2) format("woff2"),
56
- url(https://media.hyvor.com/fonts/readex-pro-arabic-600-normal.9mhVJBMn.woff) format("woff");
57
- unicode-range: U+6??, U+750-77F, U+870-88E, U+890-891, U+897-8E1, U+8E3-8FF, U+200C-200E, U+2010-2011, U+204F,
58
- U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF,
59
- U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B,
60
- U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D,
61
- U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E,
62
- U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
63
- }
64
- @font-face {
65
- font-family: Readex Pro;
66
- font-style: normal;
67
- font-display: swap;
68
- font-weight: 600;
69
- src:
70
- url(https://media.hyvor.com/fonts/readex-pro-vietnamese-600-normal.CvqEbH36.woff2) format("woff2"),
71
- url(https://media.hyvor.com/fonts/readex-pro-vietnamese-600-normal.BT-w1HBH.woff) format("woff");
72
- unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309,
73
- U+323, U+329, U+1EA0-1EF9, U+20AB;
74
- }
75
- @font-face {
76
- font-family: Readex Pro;
77
- font-style: normal;
78
- font-display: swap;
79
- font-weight: 600;
80
- src:
81
- url(https://media.hyvor.com/fonts/readex-pro-latin-ext-600-normal.DvstIQFU.woff2) format("woff2"),
82
- url(https://media.hyvor.com/fonts/readex-pro-latin-ext-600-normal.DRKkFP2q.woff) format("woff");
83
- unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F,
84
- U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
85
- }
86
- @font-face {
87
- font-family: Readex Pro;
88
- font-style: normal;
89
- font-display: swap;
90
- font-weight: 600;
91
- src:
92
- url(https://media.hyvor.com/fonts/readex-pro-latin-600-normal.C3IhmgOg.woff2) format("woff2"),
93
- url(https://media.hyvor.com/fonts/readex-pro-latin-600-normal.CeYg1m9V.woff) format("woff");
94
- unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC,
95
- U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
96
- }
97
- @font-face {
98
- font-family: "Source Serif 4";
99
- font-style: normal;
100
- font-display: swap;
101
- font-weight: 400;
102
- src:
103
- url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-ext-400-normal.CWV284fw.woff2) format("woff2"),
104
- url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-ext-400-normal.DLkyKLvH.woff) format("woff");
105
- unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
106
- }
107
- @font-face {
108
- font-family: "Source Serif 4";
109
- font-style: normal;
110
- font-display: swap;
111
- font-weight: 400;
112
- src:
113
- url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-400-normal.C44pakCn.woff2) format("woff2"),
114
- url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-400-normal.B8Z6Jvzv.woff) format("woff");
115
- unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
116
- }
117
- @font-face {
118
- font-family: "Source Serif 4";
119
- font-style: normal;
120
- font-display: swap;
121
- font-weight: 400;
122
- src:
123
- url(https://media.hyvor.com/fonts/source-serif-4-greek-400-normal.Cw5-AHNN.woff2) format("woff2"),
124
- url(https://media.hyvor.com/fonts/source-serif-4-greek-400-normal.BccYJ-vZ.woff) format("woff");
125
- unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
126
- }
127
- @font-face {
128
- font-family: "Source Serif 4";
129
- font-style: normal;
130
- font-display: swap;
131
- font-weight: 400;
132
- src:
133
- url(https://media.hyvor.com/fonts/source-serif-4-vietnamese-400-normal.BbG3LG1A.woff2) format("woff2"),
134
- url(https://media.hyvor.com/fonts/source-serif-4-vietnamese-400-normal.DR1UuFon.woff) format("woff");
135
- unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309,
136
- U+323, U+329, U+1EA0-1EF9, U+20AB;
137
- }
138
- @font-face {
139
- font-family: "Source Serif 4";
140
- font-style: normal;
141
- font-display: swap;
142
- font-weight: 400;
143
- src:
144
- url(https://media.hyvor.com/fonts/source-serif-4-latin-ext-400-normal.Cp7z-ARB.woff2) format("woff2"),
145
- url(https://media.hyvor.com/fonts/source-serif-4-latin-ext-400-normal.CEpydyUl.woff) format("woff");
146
- unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F,
147
- U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
148
- }
149
- @font-face {
150
- font-family: "Source Serif 4";
151
- font-style: normal;
152
- font-display: swap;
153
- font-weight: 400;
154
- src:
155
- url(https://media.hyvor.com/fonts/source-serif-4-latin-400-normal.DJ5YJwmz.woff2) format("woff2"),
156
- url(https://media.hyvor.com/fonts/source-serif-4-latin-400-normal.Dn3IlU-Z.woff) format("woff");
157
- unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC,
158
- U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
159
- }
160
- @font-face {
161
- font-family: "Source Serif 4";
162
- font-style: normal;
163
- font-display: swap;
164
- font-weight: 600;
165
- src:
166
- url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-ext-600-normal.D_E8FDgP.woff2) format("woff2"),
167
- url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-ext-600-normal.DiT2IGQm.woff) format("woff");
168
- unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
169
- }
170
- @font-face {
171
- font-family: "Source Serif 4";
172
- font-style: normal;
173
- font-display: swap;
174
- font-weight: 600;
175
- src:
176
- url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-600-normal.BDP5YDHD.woff2) format("woff2"),
177
- url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-600-normal.DFnC3vAY.woff) format("woff");
178
- unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
179
- }
180
- @font-face {
181
- font-family: "Source Serif 4";
182
- font-style: normal;
183
- font-display: swap;
184
- font-weight: 600;
185
- src:
186
- url(https://media.hyvor.com/fonts/source-serif-4-greek-600-normal.DdRkKr-1.woff2) format("woff2"),
187
- url(https://media.hyvor.com/fonts/source-serif-4-greek-600-normal.DhXQw1Kl.woff) format("woff");
188
- unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
189
- }
190
- @font-face {
191
- font-family: "Source Serif 4";
192
- font-style: normal;
193
- font-display: swap;
194
- font-weight: 600;
195
- src:
196
- url(https://media.hyvor.com/fonts/source-serif-4-vietnamese-600-normal.CznyfUKR.woff2) format("woff2"),
197
- url(https://media.hyvor.com/fonts/source-serif-4-vietnamese-600-normal.B0WJbuqT.woff) format("woff");
198
- unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309,
199
- U+323, U+329, U+1EA0-1EF9, U+20AB;
200
- }
201
- @font-face {
202
- font-family: "Source Serif 4";
203
- font-style: normal;
204
- font-display: swap;
205
- font-weight: 600;
206
- src:
207
- url(https://media.hyvor.com/fonts/source-serif-4-latin-ext-600-normal.0sIUyHMO.woff2) format("woff2"),
208
- url(https://media.hyvor.com/fonts/source-serif-4-latin-ext-600-normal.C6NNqpJh.woff) format("woff");
209
- unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F,
210
- U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
211
- }
212
- @font-face {
213
- font-family: "Source Serif 4";
214
- font-style: normal;
215
- font-display: swap;
216
- font-weight: 600;
217
- src:
218
- url(https://media.hyvor.com/fonts/source-serif-4-latin-600-normal.DouSKlru.woff2) format("woff2"),
219
- url(https://media.hyvor.com/fonts/source-serif-4-latin-600-normal.DMD1h6_f.woff) format("woff");
220
- unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC,
221
- U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
222
- }
2
+ font-family: Readex Pro;
3
+ font-style: normal;
4
+ font-display: swap;
5
+ font-weight: 400;
6
+ src:
7
+ url(https://media.hyvor.com/fonts/readex-pro-arabic-400-normal.BzB5iZVu.woff2) format('woff2'),
8
+ url(https://media.hyvor.com/fonts/readex-pro-arabic-400-normal.CRluTl2A.woff) format('woff');
9
+ unicode-range:
10
+ U+6??, U+750-77F, U+870-88E, U+890-891, U+897-8E1, U+8E3-8FF, U+200C-200E, U+2010-2011, U+204F,
11
+ U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4,
12
+ U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32,
13
+ U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F,
14
+ U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64,
15
+ U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89,
16
+ U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
17
+ }
18
+ @font-face {
19
+ font-family: Readex Pro;
20
+ font-style: normal;
21
+ font-display: swap;
22
+ font-weight: 400;
23
+ src:
24
+ url(https://media.hyvor.com/fonts/readex-pro-vietnamese-400-normal.DAQS1QRE.woff2)
25
+ format('woff2'),
26
+ url(https://media.hyvor.com/fonts/readex-pro-vietnamese-400-normal.DRTbt2AX.woff) format('woff');
27
+ unicode-range:
28
+ U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304,
29
+ U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
30
+ }
31
+ @font-face {
32
+ font-family: Readex Pro;
33
+ font-style: normal;
34
+ font-display: swap;
35
+ font-weight: 400;
36
+ src:
37
+ url(https://media.hyvor.com/fonts/readex-pro-latin-ext-400-normal.CDeDBhe3.woff2)
38
+ format('woff2'),
39
+ url(https://media.hyvor.com/fonts/readex-pro-latin-ext-400-normal.DzeKRH4q.woff) format('woff');
40
+ unicode-range:
41
+ U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF,
42
+ U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
43
+ }
44
+ @font-face {
45
+ font-family: Readex Pro;
46
+ font-style: normal;
47
+ font-display: swap;
48
+ font-weight: 400;
49
+ src:
50
+ url(https://media.hyvor.com/fonts/readex-pro-latin-400-normal.BZtYQVaG.woff2) format('woff2'),
51
+ url(https://media.hyvor.com/fonts/readex-pro-latin-400-normal.SP_jEUAw.woff) format('woff');
52
+ unicode-range:
53
+ U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F,
54
+ U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
55
+ }
56
+ @font-face {
57
+ font-family: Readex Pro;
58
+ font-style: normal;
59
+ font-display: swap;
60
+ font-weight: 600;
61
+ src:
62
+ url(https://media.hyvor.com/fonts/readex-pro-arabic-600-normal.BHxn1TEo.woff2) format('woff2'),
63
+ url(https://media.hyvor.com/fonts/readex-pro-arabic-600-normal.9mhVJBMn.woff) format('woff');
64
+ unicode-range:
65
+ U+6??, U+750-77F, U+870-88E, U+890-891, U+897-8E1, U+8E3-8FF, U+200C-200E, U+2010-2011, U+204F,
66
+ U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4,
67
+ U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32,
68
+ U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F,
69
+ U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64,
70
+ U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89,
71
+ U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
72
+ }
73
+ @font-face {
74
+ font-family: Readex Pro;
75
+ font-style: normal;
76
+ font-display: swap;
77
+ font-weight: 600;
78
+ src:
79
+ url(https://media.hyvor.com/fonts/readex-pro-vietnamese-600-normal.CvqEbH36.woff2)
80
+ format('woff2'),
81
+ url(https://media.hyvor.com/fonts/readex-pro-vietnamese-600-normal.BT-w1HBH.woff) format('woff');
82
+ unicode-range:
83
+ U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304,
84
+ U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
85
+ }
86
+ @font-face {
87
+ font-family: Readex Pro;
88
+ font-style: normal;
89
+ font-display: swap;
90
+ font-weight: 600;
91
+ src:
92
+ url(https://media.hyvor.com/fonts/readex-pro-latin-ext-600-normal.DvstIQFU.woff2)
93
+ format('woff2'),
94
+ url(https://media.hyvor.com/fonts/readex-pro-latin-ext-600-normal.DRKkFP2q.woff) format('woff');
95
+ unicode-range:
96
+ U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF,
97
+ U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
98
+ }
99
+ @font-face {
100
+ font-family: Readex Pro;
101
+ font-style: normal;
102
+ font-display: swap;
103
+ font-weight: 600;
104
+ src:
105
+ url(https://media.hyvor.com/fonts/readex-pro-latin-600-normal.C3IhmgOg.woff2) format('woff2'),
106
+ url(https://media.hyvor.com/fonts/readex-pro-latin-600-normal.CeYg1m9V.woff) format('woff');
107
+ unicode-range:
108
+ U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F,
109
+ U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
110
+ }
111
+ @font-face {
112
+ font-family: 'Source Serif 4';
113
+ font-style: normal;
114
+ font-display: swap;
115
+ font-weight: 400;
116
+ src:
117
+ url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-ext-400-normal.CWV284fw.woff2)
118
+ format('woff2'),
119
+ url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-ext-400-normal.DLkyKLvH.woff)
120
+ format('woff');
121
+ unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
122
+ }
123
+ @font-face {
124
+ font-family: 'Source Serif 4';
125
+ font-style: normal;
126
+ font-display: swap;
127
+ font-weight: 400;
128
+ src:
129
+ url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-400-normal.C44pakCn.woff2)
130
+ format('woff2'),
131
+ url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-400-normal.B8Z6Jvzv.woff)
132
+ format('woff');
133
+ unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
134
+ }
135
+ @font-face {
136
+ font-family: 'Source Serif 4';
137
+ font-style: normal;
138
+ font-display: swap;
139
+ font-weight: 400;
140
+ src:
141
+ url(https://media.hyvor.com/fonts/source-serif-4-greek-400-normal.Cw5-AHNN.woff2)
142
+ format('woff2'),
143
+ url(https://media.hyvor.com/fonts/source-serif-4-greek-400-normal.BccYJ-vZ.woff) format('woff');
144
+ unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
145
+ }
146
+ @font-face {
147
+ font-family: 'Source Serif 4';
148
+ font-style: normal;
149
+ font-display: swap;
150
+ font-weight: 400;
151
+ src:
152
+ url(https://media.hyvor.com/fonts/source-serif-4-vietnamese-400-normal.BbG3LG1A.woff2)
153
+ format('woff2'),
154
+ url(https://media.hyvor.com/fonts/source-serif-4-vietnamese-400-normal.DR1UuFon.woff)
155
+ format('woff');
156
+ unicode-range:
157
+ U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304,
158
+ U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
159
+ }
160
+ @font-face {
161
+ font-family: 'Source Serif 4';
162
+ font-style: normal;
163
+ font-display: swap;
164
+ font-weight: 400;
165
+ src:
166
+ url(https://media.hyvor.com/fonts/source-serif-4-latin-ext-400-normal.Cp7z-ARB.woff2)
167
+ format('woff2'),
168
+ url(https://media.hyvor.com/fonts/source-serif-4-latin-ext-400-normal.CEpydyUl.woff)
169
+ format('woff');
170
+ unicode-range:
171
+ U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF,
172
+ U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
173
+ }
174
+ @font-face {
175
+ font-family: 'Source Serif 4';
176
+ font-style: normal;
177
+ font-display: swap;
178
+ font-weight: 400;
179
+ src:
180
+ url(https://media.hyvor.com/fonts/source-serif-4-latin-400-normal.DJ5YJwmz.woff2)
181
+ format('woff2'),
182
+ url(https://media.hyvor.com/fonts/source-serif-4-latin-400-normal.Dn3IlU-Z.woff) format('woff');
183
+ unicode-range:
184
+ U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F,
185
+ U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
186
+ }
187
+ @font-face {
188
+ font-family: 'Source Serif 4';
189
+ font-style: normal;
190
+ font-display: swap;
191
+ font-weight: 600;
192
+ src:
193
+ url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-ext-600-normal.D_E8FDgP.woff2)
194
+ format('woff2'),
195
+ url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-ext-600-normal.DiT2IGQm.woff)
196
+ format('woff');
197
+ unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
198
+ }
199
+ @font-face {
200
+ font-family: 'Source Serif 4';
201
+ font-style: normal;
202
+ font-display: swap;
203
+ font-weight: 600;
204
+ src:
205
+ url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-600-normal.BDP5YDHD.woff2)
206
+ format('woff2'),
207
+ url(https://media.hyvor.com/fonts/source-serif-4-cyrillic-600-normal.DFnC3vAY.woff)
208
+ format('woff');
209
+ unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
210
+ }
211
+ @font-face {
212
+ font-family: 'Source Serif 4';
213
+ font-style: normal;
214
+ font-display: swap;
215
+ font-weight: 600;
216
+ src:
217
+ url(https://media.hyvor.com/fonts/source-serif-4-greek-600-normal.DdRkKr-1.woff2)
218
+ format('woff2'),
219
+ url(https://media.hyvor.com/fonts/source-serif-4-greek-600-normal.DhXQw1Kl.woff) format('woff');
220
+ unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
221
+ }
222
+ @font-face {
223
+ font-family: 'Source Serif 4';
224
+ font-style: normal;
225
+ font-display: swap;
226
+ font-weight: 600;
227
+ src:
228
+ url(https://media.hyvor.com/fonts/source-serif-4-vietnamese-600-normal.CznyfUKR.woff2)
229
+ format('woff2'),
230
+ url(https://media.hyvor.com/fonts/source-serif-4-vietnamese-600-normal.B0WJbuqT.woff)
231
+ format('woff');
232
+ unicode-range:
233
+ U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304,
234
+ U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
235
+ }
236
+ @font-face {
237
+ font-family: 'Source Serif 4';
238
+ font-style: normal;
239
+ font-display: swap;
240
+ font-weight: 600;
241
+ src:
242
+ url(https://media.hyvor.com/fonts/source-serif-4-latin-ext-600-normal.0sIUyHMO.woff2)
243
+ format('woff2'),
244
+ url(https://media.hyvor.com/fonts/source-serif-4-latin-ext-600-normal.C6NNqpJh.woff)
245
+ format('woff');
246
+ unicode-range:
247
+ U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF,
248
+ U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
249
+ }
250
+ @font-face {
251
+ font-family: 'Source Serif 4';
252
+ font-style: normal;
253
+ font-display: swap;
254
+ font-weight: 600;
255
+ src:
256
+ url(https://media.hyvor.com/fonts/source-serif-4-latin-600-normal.DouSKlru.woff2)
257
+ format('woff2'),
258
+ url(https://media.hyvor.com/fonts/source-serif-4-latin-600-normal.DMD1h6_f.woff) format('woff');
259
+ unicode-range:
260
+ U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F,
261
+ U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
262
+ }
@@ -1,11 +1,12 @@
1
1
  <script lang="ts">
2
2
  import Link from '../../components/Link/Link.svelte';
3
- import Modal from '../../components/Modal/Modal.svelte';
4
3
  import { replaceState } from '$app/navigation';
5
4
  import { onMount } from 'svelte';
6
5
 
7
6
  let partner: string | null = $state(null);
8
7
  let showModal = $state(false);
8
+ // Modal (and its Loader dependency) is only loaded once we actually need to show it
9
+ let modalNeeded = $state(false);
9
10
 
10
11
  onMount(() => {
11
12
  const params = new URLSearchParams(window.location.search);
@@ -13,6 +14,7 @@
13
14
 
14
15
  if (partner) {
15
16
  showModal = true;
17
+ modalNeeded = true;
16
18
  }
17
19
  });
18
20
 
@@ -44,31 +46,35 @@
44
46
  }
45
47
  </script>
46
48
 
47
- <Modal
48
- title="Referred by {partner}"
49
- bind:show={showModal}
50
- closeOnOutsideClick={false}
51
- footer={{
52
- cancel: {
53
- text: 'Do not track'
54
- },
55
- confirm: {
56
- text: 'Ok, Visit Site'
57
- }
58
- }}
59
- on:confirm={handleConsent}
60
- >
61
- <div class="notice">
62
- You visited our site through our affiliate partner <strong>{partner}</strong>. To track this
63
- referral, we will place a small cookie in your browser. This cookie helps us identify which
64
- affiliate partner referred you if you sign up. It does not collect any personal data.
65
- </div>
66
- <p>
67
- You can read more in our <Link href="https://hyvor.com/privacy" target="_blank"
68
- >Privacy Policy</Link
69
- >.
70
- </p>
71
- </Modal>
49
+ {#if modalNeeded}
50
+ {#await import('../../components/Modal/Modal.svelte') then m}
51
+ <m.default
52
+ title="Referred by {partner}"
53
+ bind:show={showModal}
54
+ closeOnOutsideClick={false}
55
+ footer={{
56
+ cancel: {
57
+ text: 'Do not track'
58
+ },
59
+ confirm: {
60
+ text: 'Ok, Visit Site'
61
+ }
62
+ }}
63
+ on:confirm={handleConsent}
64
+ >
65
+ <div class="notice">
66
+ You visited our site through our affiliate partner <strong>{partner}</strong>. To track
67
+ this referral, we will place a small cookie in your browser. This cookie helps us identify
68
+ which affiliate partner referred you if you sign up. It does not collect any personal data.
69
+ </div>
70
+ <p>
71
+ You can read more in our <Link href="https://hyvor.com/privacy" target="_blank"
72
+ >Privacy Policy</Link
73
+ >.
74
+ </p>
75
+ </m.default>
76
+ {/await}
77
+ {/if}
72
78
 
73
79
  <style>
74
80
  .notice {
@@ -11,11 +11,11 @@
11
11
  import IconBluesky from '@hyvor/icons/IconBluesky';
12
12
  import IconLockFill from '@hyvor/icons/IconLockFill';
13
13
  import IconButton from '../../components/IconButton/IconButton.svelte';
14
- import Tooltip from '../../components/Tooltip/Tooltip.svelte';
15
14
  import LanguageToggle from '../../components/Internationalization/LanguageToggle.svelte';
16
15
  import { SOCIAL_LINKS, type Socials } from '../social.js';
17
16
  import Affiliate from '../Affiliate/Affiliate.svelte';
18
17
  import RecordVisit from './RecordVisit.svelte';
18
+ import { onMount } from 'svelte';
19
19
 
20
20
  const year = new Date().getFullYear();
21
21
 
@@ -66,6 +66,14 @@
66
66
  gdprText = 'GDPR Compliant',
67
67
  fromFranceText = 'From France'
68
68
  }: Props = $props();
69
+
70
+ // Tooltip is loaded lazily so its code isn't part of the initial bundle;
71
+ // the plain icon button still renders on the server / before hydration
72
+ let tooltipReady = $state(false);
73
+ onMount(() => {
74
+ tooltipReady = true;
75
+ });
76
+
69
77
  const mascotLogo = $derived(
70
78
  logo || (product ? `${instance}/api/public/logo/${product}.svg` : undefined)
71
79
  );
@@ -159,7 +167,21 @@
159
167
  <IconEnvelope size={14} />
160
168
  {email}
161
169
  </a>
162
- <Tooltip text={emailCopied ? copiedLabel : copyEmailLabel} position="top">
170
+ {#if tooltipReady}
171
+ {#await import('../../components/Tooltip/Tooltip.svelte') then m}
172
+ <m.default text={emailCopied ? copiedLabel : copyEmailLabel} position="top">
173
+ <IconButton
174
+ size="small"
175
+ variant="invisible"
176
+ color="input"
177
+ onclick={handleCopyEmail}
178
+ onmouseleave={() => (emailCopied = false)}
179
+ >
180
+ <IconCopy size={12} />
181
+ </IconButton>
182
+ </m.default>
183
+ {/await}
184
+ {:else}
163
185
  <IconButton
164
186
  size="small"
165
187
  variant="invisible"
@@ -170,7 +192,7 @@
170
192
  >
171
193
  <IconCopy size={12} />
172
194
  </IconButton>
173
- </Tooltip>
195
+ {/if}
174
196
  </div>
175
197
  {/if}
176
198
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyvor/design",
3
- "version": "2.1.22-beta.2",
3
+ "version": "2.1.22-beta.3",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "sideEffects": [