pimelon-ui 0.1.119 → 0.1.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/melon/Billing/SignupBanner.vue +53 -0
- package/melon/Billing/TrialBanner.vue +6 -1
- package/melon/Help/HelpModal.vue +7 -2
- package/melon/Onboarding/GettingStartedBanner.vue +9 -5
- package/melon/Onboarding/IntermediateStepModal.vue +62 -0
- package/melon/Onboarding/OnboardingSteps.vue +14 -3
- package/melon/Onboarding/onboarding.js +17 -7
- package/melon/index.js +2 -0
- package/package.json +1 -1
- package/src/fonts/Inter/inter.css +43 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="!isSidebarCollapsed"
|
|
4
|
+
class="flex flex-col gap-3 shadow-sm rounded-lg py-2.5 px-3 bg-surface-white text-base"
|
|
5
|
+
>
|
|
6
|
+
<div class="flex flex-col gap-1">
|
|
7
|
+
<slot>
|
|
8
|
+
<div class="inline-flex gap-2 items-center font-medium">
|
|
9
|
+
<FeatherIcon class="h-4" name="info" />
|
|
10
|
+
{{ __('Loved the demo?') }}
|
|
11
|
+
</div>
|
|
12
|
+
<div class="text-ink-gray-7 text-p-sm">
|
|
13
|
+
{{ `Try ${appName} for free with a 14-day trial.` }}
|
|
14
|
+
</div>
|
|
15
|
+
</slot>
|
|
16
|
+
</div>
|
|
17
|
+
<Button :label="__('Sign up now')" theme="blue" @click="signupNow">
|
|
18
|
+
<template #prefix>
|
|
19
|
+
<LightningIcon class="size-4" />
|
|
20
|
+
</template>
|
|
21
|
+
</Button>
|
|
22
|
+
</div>
|
|
23
|
+
<Button v-else @click="signupNow">
|
|
24
|
+
<LightningIcon class="h-4 my-0.5 shrink-0" />
|
|
25
|
+
</Button>
|
|
26
|
+
</template>
|
|
27
|
+
<script setup>
|
|
28
|
+
import LightningIcon from '../Icons/LightningIcon.vue'
|
|
29
|
+
|
|
30
|
+
const props = defineProps({
|
|
31
|
+
isSidebarCollapsed: {
|
|
32
|
+
type: Boolean,
|
|
33
|
+
default: false,
|
|
34
|
+
},
|
|
35
|
+
appName: {
|
|
36
|
+
type: String,
|
|
37
|
+
default: 'Melon CRM',
|
|
38
|
+
},
|
|
39
|
+
redirectURL: {
|
|
40
|
+
type: String,
|
|
41
|
+
default: 'https://meloncloud.com/crm/signup',
|
|
42
|
+
},
|
|
43
|
+
afterSignup: {
|
|
44
|
+
type: Function,
|
|
45
|
+
default: () => {},
|
|
46
|
+
},
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
function signupNow() {
|
|
50
|
+
window.open(props.redirectURL, '_blank')
|
|
51
|
+
props.afterSignup?.()
|
|
52
|
+
}
|
|
53
|
+
</script>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
v-if="!isSidebarCollapsed && showBanner"
|
|
4
|
-
class="
|
|
4
|
+
class="flex flex-col gap-3 shadow-sm rounded-lg py-2.5 px-3 bg-surface-modal text-base"
|
|
5
5
|
>
|
|
6
6
|
<div class="flex flex-col gap-1">
|
|
7
7
|
<div class="inline-flex text-ink-gray-9 gap-2 items-center font-medium">
|
|
@@ -34,6 +34,10 @@ const props = defineProps({
|
|
|
34
34
|
type: Boolean,
|
|
35
35
|
default: false,
|
|
36
36
|
},
|
|
37
|
+
afterUpgrade: {
|
|
38
|
+
type: Function,
|
|
39
|
+
default: () => {},
|
|
40
|
+
},
|
|
37
41
|
})
|
|
38
42
|
|
|
39
43
|
const trialEndDays = ref(0)
|
|
@@ -77,5 +81,6 @@ function upgradePlan() {
|
|
|
77
81
|
`${baseEndpoint.value}/dashboard/sites/${siteName.value}`,
|
|
78
82
|
'_blank',
|
|
79
83
|
)
|
|
84
|
+
props.afterUpgrade?.()
|
|
80
85
|
}
|
|
81
86
|
</script>
|
package/melon/Help/HelpModal.vue
CHANGED
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
:afterSkip="afterSkip"
|
|
33
33
|
:afterSkipAll="afterSkipAll"
|
|
34
34
|
:afterReset="afterReset"
|
|
35
|
+
:afterResetAll="afterResetAll"
|
|
35
36
|
/>
|
|
36
37
|
<HelpCenter
|
|
37
38
|
v-else-if="showHelpCenter"
|
|
@@ -89,13 +90,17 @@ const props = defineProps({
|
|
|
89
90
|
type: Function,
|
|
90
91
|
default: () => {},
|
|
91
92
|
},
|
|
93
|
+
afterResetAll: {
|
|
94
|
+
type: Function,
|
|
95
|
+
default: () => {},
|
|
96
|
+
},
|
|
92
97
|
docsLink: {
|
|
93
98
|
type: String,
|
|
94
99
|
default: 'https://docs.monakerp.com/crm',
|
|
95
100
|
},
|
|
96
101
|
})
|
|
97
102
|
|
|
98
|
-
const { syncStatus,
|
|
103
|
+
const { syncStatus, resetAll, isOnboardingStepsCompleted } = useOnboarding(
|
|
99
104
|
props.appName,
|
|
100
105
|
)
|
|
101
106
|
|
|
@@ -146,7 +151,7 @@ const footerItems = computed(() => {
|
|
|
146
151
|
})
|
|
147
152
|
|
|
148
153
|
function resetOnboardingSteps() {
|
|
149
|
-
|
|
154
|
+
resetAll()
|
|
150
155
|
isOnboardingStepsCompleted.value = false
|
|
151
156
|
showHelpCenter.value = false
|
|
152
157
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
v-if="!isSidebarCollapsed"
|
|
4
|
-
class="
|
|
4
|
+
class="flex flex-col gap-3 shadow-sm rounded-lg py-2.5 px-3 bg-surface-modal text-base"
|
|
5
5
|
>
|
|
6
6
|
<div
|
|
7
7
|
v-if="stepsCompleted != totalSteps"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<div class="flex items-center gap-2 shrink-0">
|
|
23
23
|
<StepsIcon class="h-4 my-0.5" />
|
|
24
24
|
<div class="text-ink-gray-9 font-medium">
|
|
25
|
-
{{ 'You are all set
|
|
25
|
+
{{ 'You are all set' }}
|
|
26
26
|
</div>
|
|
27
27
|
</div>
|
|
28
28
|
<FeatherIcon
|
|
@@ -37,15 +37,19 @@
|
|
|
37
37
|
/>
|
|
38
38
|
</div>
|
|
39
39
|
<div class="text-p-sm text-ink-gray-7">
|
|
40
|
-
{{ 'All steps are completed successfully
|
|
40
|
+
{{ 'All steps are completed successfully' }}
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
43
43
|
<Button
|
|
44
44
|
v-if="stepsCompleted != totalSteps"
|
|
45
|
-
:label="'
|
|
45
|
+
:label="stepsCompleted == 0 ? 'Start now' : 'Continue'"
|
|
46
46
|
theme="blue"
|
|
47
47
|
@click="openOnboarding"
|
|
48
|
-
|
|
48
|
+
>
|
|
49
|
+
<template #prefix>
|
|
50
|
+
<FeatherIcon name="chevrons-right" class="size-4" />
|
|
51
|
+
</template>
|
|
52
|
+
</Button>
|
|
49
53
|
</div>
|
|
50
54
|
<Button v-else-if="stepsCompleted != totalSteps" @click="openOnboarding">
|
|
51
55
|
<StepsIcon class="h-4 my-0.5 shrink-0" />
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<Dialog v-model="show" :options="options">
|
|
3
|
+
<template #boday-header>
|
|
4
|
+
<slot name="body-header"></slot>
|
|
5
|
+
</template>
|
|
6
|
+
<template #body-content>
|
|
7
|
+
<slot>
|
|
8
|
+
<div class="flex flex-col gap-2 text-ink-gray-9 text-base">
|
|
9
|
+
<div v-if="currentStep.message">{{ currentStep.message }}</div>
|
|
10
|
+
<video v-if="currentStep.videoURL" class="w-full rounded" controls>
|
|
11
|
+
<source :src="currentStep.videoURL" type="video/mp4" />
|
|
12
|
+
Your browser does not support the video tag.
|
|
13
|
+
</video>
|
|
14
|
+
</div>
|
|
15
|
+
</slot>
|
|
16
|
+
</template>
|
|
17
|
+
<template #actions>
|
|
18
|
+
<slot name="actions"></slot>
|
|
19
|
+
</template>
|
|
20
|
+
</Dialog>
|
|
21
|
+
</template>
|
|
22
|
+
<script setup>
|
|
23
|
+
import Dialog from '../../src/components/Dialog.vue'
|
|
24
|
+
import { computed } from 'vue'
|
|
25
|
+
|
|
26
|
+
const props = defineProps({
|
|
27
|
+
currentStep: {
|
|
28
|
+
type: Object,
|
|
29
|
+
default: {
|
|
30
|
+
title: 'Title',
|
|
31
|
+
message: 'Message',
|
|
32
|
+
videoURL: '',
|
|
33
|
+
buttonLabel: 'Button Label',
|
|
34
|
+
onClick: () => {},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
dialogOptions: {
|
|
38
|
+
type: Object,
|
|
39
|
+
default: () => ({}),
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
const show = defineModel()
|
|
44
|
+
|
|
45
|
+
const options = computed(() => {
|
|
46
|
+
if (props.dialogOptions && Object.keys(props.dialogOptions).length) {
|
|
47
|
+
return props.dialogOptions
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
title: props.currentStep.title,
|
|
52
|
+
size: '2xl',
|
|
53
|
+
actions: [
|
|
54
|
+
{
|
|
55
|
+
label: props.currentStep.buttonLabel,
|
|
56
|
+
variant: 'solid',
|
|
57
|
+
onClick: props.currentStep.onClick,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
</script>
|
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
<div class="flex justify-between items-center py-0.5">
|
|
13
13
|
<Badge
|
|
14
14
|
:label="`${completedPercentage}% completed`"
|
|
15
|
-
theme="orange"
|
|
15
|
+
:theme="completedPercentage == 100 ? 'green' : 'orange'"
|
|
16
16
|
size="lg"
|
|
17
17
|
/>
|
|
18
18
|
<div class="flex">
|
|
19
19
|
<Button
|
|
20
20
|
v-if="completedPercentage != 0"
|
|
21
21
|
variant="ghost"
|
|
22
|
-
:label="'Reset'"
|
|
23
|
-
@click="() =>
|
|
22
|
+
:label="'Reset all'"
|
|
23
|
+
@click="() => resetAll(afterResetAll)"
|
|
24
24
|
/>
|
|
25
25
|
<Button
|
|
26
26
|
v-if="completedPercentage != 100"
|
|
@@ -52,6 +52,12 @@
|
|
|
52
52
|
class="!h-4 text-xs !text-ink-gray-6 hidden group-hover:flex"
|
|
53
53
|
@click="() => skip(step.name, afterSkip)"
|
|
54
54
|
/>
|
|
55
|
+
<Button
|
|
56
|
+
v-else
|
|
57
|
+
:label="'Reset'"
|
|
58
|
+
class="!h-4 text-xs !text-ink-gray-6 hidden group-hover:flex"
|
|
59
|
+
@click.stop="() => reset(step.name, afterReset)"
|
|
60
|
+
/>
|
|
55
61
|
</div>
|
|
56
62
|
</div>
|
|
57
63
|
</div>
|
|
@@ -84,6 +90,10 @@ const props = defineProps({
|
|
|
84
90
|
type: Function,
|
|
85
91
|
default: () => {},
|
|
86
92
|
},
|
|
93
|
+
afterResetAll: {
|
|
94
|
+
type: Function,
|
|
95
|
+
default: () => {},
|
|
96
|
+
},
|
|
87
97
|
})
|
|
88
98
|
|
|
89
99
|
const {
|
|
@@ -94,5 +104,6 @@ const {
|
|
|
94
104
|
skip,
|
|
95
105
|
skipAll,
|
|
96
106
|
reset,
|
|
107
|
+
resetAll,
|
|
97
108
|
} = useOnboarding(props.appName)
|
|
98
109
|
</script>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import call from '../../src/utils/call'
|
|
2
|
-
import { useStorage } from '@vueuse/core'
|
|
3
|
-
import { computed, reactive } from 'vue'
|
|
4
2
|
import { createResource } from '../../src/resources'
|
|
5
3
|
import { minimize } from '../Help/help'
|
|
4
|
+
import { useStorage } from '@vueuse/core'
|
|
5
|
+
import { computed, reactive } from 'vue'
|
|
6
6
|
|
|
7
7
|
const onboardings = reactive({})
|
|
8
8
|
const onboardingStatus = useStorage('onboardingStatus', {})
|
|
@@ -39,18 +39,27 @@ export function useOnboarding(appName) {
|
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
function skip(step, callback = null) {
|
|
42
|
-
updateOnboardingStep(step, true, callback)
|
|
42
|
+
updateOnboardingStep(step, true, true, callback)
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
function skipAll(callback = null) {
|
|
46
46
|
updateAll(true, callback)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
function reset(callback = null) {
|
|
49
|
+
function reset(step, callback = null) {
|
|
50
|
+
updateOnboardingStep(step, false, false, callback)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function resetAll(callback = null) {
|
|
50
54
|
updateAll(false, callback)
|
|
51
55
|
}
|
|
52
56
|
|
|
53
|
-
function updateOnboardingStep(
|
|
57
|
+
function updateOnboardingStep(
|
|
58
|
+
step,
|
|
59
|
+
value = true,
|
|
60
|
+
skipped = false,
|
|
61
|
+
callback = null,
|
|
62
|
+
) {
|
|
54
63
|
if (isOnboardingStepsCompleted.value) return
|
|
55
64
|
|
|
56
65
|
if (!onboardingSteps.value.length) {
|
|
@@ -63,8 +72,8 @@ export function useOnboarding(appName) {
|
|
|
63
72
|
|
|
64
73
|
let index = onboardingSteps.value.findIndex((s) => s.name === step)
|
|
65
74
|
if (index !== -1) {
|
|
66
|
-
onboardingSteps.value[index].completed =
|
|
67
|
-
onboardings[appName][index].completed =
|
|
75
|
+
onboardingSteps.value[index].completed = value
|
|
76
|
+
onboardings[appName][index].completed = value
|
|
68
77
|
}
|
|
69
78
|
|
|
70
79
|
updateUserOnboardingStatus(onboardingSteps.value)
|
|
@@ -136,6 +145,7 @@ export function useOnboarding(appName) {
|
|
|
136
145
|
skip,
|
|
137
146
|
skipAll,
|
|
138
147
|
reset,
|
|
148
|
+
resetAll,
|
|
139
149
|
setUp,
|
|
140
150
|
syncStatus,
|
|
141
151
|
}
|
package/melon/index.js
CHANGED
|
@@ -4,12 +4,14 @@ export { default as HelpModal } from './Help/HelpModal.vue'
|
|
|
4
4
|
// onboarding components
|
|
5
5
|
export { default as GettingStartedBanner } from './Onboarding/GettingStartedBanner.vue'
|
|
6
6
|
export { default as OnboardingSteps } from './Onboarding/OnboardingSteps.vue'
|
|
7
|
+
export { default as IntermediateStepModal } from './Onboarding/IntermediateStepModal.vue'
|
|
7
8
|
|
|
8
9
|
// help center components
|
|
9
10
|
export { default as HelpCenter } from './HelpCenter/HelpCenter.vue'
|
|
10
11
|
|
|
11
12
|
// billing components
|
|
12
13
|
export { default as TrialBanner } from './Billing/TrialBanner.vue'
|
|
14
|
+
export { default as SignupBanner } from './Billing/SignupBanner.vue'
|
|
13
15
|
|
|
14
16
|
// composables
|
|
15
17
|
export { useOnboarding } from './Onboarding/onboarding.js'
|
package/package.json
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
url('Inter.var.woff2?v=3.19') format('woff2-variations'),
|
|
13
13
|
url('Inter.var.woff2?v=3.19') format('woff2');
|
|
14
14
|
src: url('Inter.var.woff2?v=3.19') format('woff2') tech('variations');
|
|
15
|
+
unicode-range:
|
|
16
|
+
U+0000-05FF, /* Latin, Greek, Cyrillic, Hebrew */
|
|
17
|
+
U+0700-1FFF, /* Extended Latin, Greek, Cyrillic, Armenian, Georgian */
|
|
18
|
+
U+2C00-2FFF, /* Additional scripts */
|
|
19
|
+
U+4E00-9FFF, /* CJK (Chinese, Japanese, Korean) */
|
|
20
|
+
U+AC00-D7AF; /* Hangul (Korean) */
|
|
15
21
|
}
|
|
16
22
|
@font-face {
|
|
17
23
|
font-family: 'InterVar';
|
|
@@ -22,6 +28,7 @@
|
|
|
22
28
|
url('Inter-Italic.var.woff2?v=3.19') format('woff2-variations'),
|
|
23
29
|
url('Inter-Italic.var.woff2?v=3.19') format('woff2');
|
|
24
30
|
src: url('Inter-Italic.var.woff2?v=3.19') format('woff2') tech('variations');
|
|
31
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
25
32
|
}
|
|
26
33
|
/* static fonts "Inter" */
|
|
27
34
|
@font-face {
|
|
@@ -30,6 +37,7 @@
|
|
|
30
37
|
font-weight: 100;
|
|
31
38
|
font-display: swap;
|
|
32
39
|
src: url('Inter-Thin.woff2?v=3.19') format('woff2');
|
|
40
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
33
41
|
}
|
|
34
42
|
@font-face {
|
|
35
43
|
font-family: 'Inter';
|
|
@@ -37,6 +45,7 @@
|
|
|
37
45
|
font-weight: 100;
|
|
38
46
|
font-display: swap;
|
|
39
47
|
src: url('Inter-ThinItalic.woff2?v=3.19') format('woff2');
|
|
48
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
40
49
|
}
|
|
41
50
|
@font-face {
|
|
42
51
|
font-family: 'Inter';
|
|
@@ -44,6 +53,7 @@
|
|
|
44
53
|
font-weight: 200;
|
|
45
54
|
font-display: swap;
|
|
46
55
|
src: url('Inter-ExtraLight.woff2?v=3.19') format('woff2');
|
|
56
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
47
57
|
}
|
|
48
58
|
@font-face {
|
|
49
59
|
font-family: 'Inter';
|
|
@@ -51,6 +61,7 @@
|
|
|
51
61
|
font-weight: 200;
|
|
52
62
|
font-display: swap;
|
|
53
63
|
src: url('Inter-ExtraLightItalic.woff2?v=3.19') format('woff2');
|
|
64
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
54
65
|
}
|
|
55
66
|
@font-face {
|
|
56
67
|
font-family: 'Inter';
|
|
@@ -58,6 +69,7 @@
|
|
|
58
69
|
font-weight: 300;
|
|
59
70
|
font-display: swap;
|
|
60
71
|
src: url('Inter-Light.woff2?v=3.19') format('woff2');
|
|
72
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
61
73
|
}
|
|
62
74
|
@font-face {
|
|
63
75
|
font-family: 'Inter';
|
|
@@ -65,6 +77,7 @@
|
|
|
65
77
|
font-weight: 300;
|
|
66
78
|
font-display: swap;
|
|
67
79
|
src: url('Inter-LightItalic.woff2?v=3.19') format('woff2');
|
|
80
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
68
81
|
}
|
|
69
82
|
@font-face {
|
|
70
83
|
font-family: 'Inter';
|
|
@@ -72,6 +85,7 @@
|
|
|
72
85
|
font-weight: 400;
|
|
73
86
|
font-display: swap;
|
|
74
87
|
src: url('Inter-Regular.woff2?v=3.19') format('woff2');
|
|
88
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
75
89
|
}
|
|
76
90
|
@font-face {
|
|
77
91
|
font-family: 'Inter';
|
|
@@ -79,6 +93,7 @@
|
|
|
79
93
|
font-weight: 400;
|
|
80
94
|
font-display: swap;
|
|
81
95
|
src: url('Inter-Italic.woff2?v=3.19') format('woff2');
|
|
96
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
82
97
|
}
|
|
83
98
|
@font-face {
|
|
84
99
|
font-family: 'Inter';
|
|
@@ -86,6 +101,7 @@
|
|
|
86
101
|
font-weight: 500;
|
|
87
102
|
font-display: swap;
|
|
88
103
|
src: url('Inter-Medium.woff2?v=3.19') format('woff2');
|
|
104
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
89
105
|
}
|
|
90
106
|
@font-face {
|
|
91
107
|
font-family: 'Inter';
|
|
@@ -93,6 +109,7 @@
|
|
|
93
109
|
font-weight: 500;
|
|
94
110
|
font-display: swap;
|
|
95
111
|
src: url('Inter-MediumItalic.woff2?v=3.19') format('woff2');
|
|
112
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
96
113
|
}
|
|
97
114
|
@font-face {
|
|
98
115
|
font-family: 'Inter';
|
|
@@ -100,6 +117,7 @@
|
|
|
100
117
|
font-weight: 600;
|
|
101
118
|
font-display: swap;
|
|
102
119
|
src: url('Inter-SemiBold.woff2?v=3.19') format('woff2');
|
|
120
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
103
121
|
}
|
|
104
122
|
@font-face {
|
|
105
123
|
font-family: 'Inter';
|
|
@@ -107,6 +125,7 @@
|
|
|
107
125
|
font-weight: 600;
|
|
108
126
|
font-display: swap;
|
|
109
127
|
src: url('Inter-SemiBoldItalic.woff2?v=3.19') format('woff2');
|
|
128
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
110
129
|
}
|
|
111
130
|
@font-face {
|
|
112
131
|
font-family: 'Inter';
|
|
@@ -114,6 +133,7 @@
|
|
|
114
133
|
font-weight: 700;
|
|
115
134
|
font-display: swap;
|
|
116
135
|
src: url('Inter-Bold.woff2?v=3.19') format('woff2');
|
|
136
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
117
137
|
}
|
|
118
138
|
@font-face {
|
|
119
139
|
font-family: 'Inter';
|
|
@@ -121,6 +141,7 @@
|
|
|
121
141
|
font-weight: 700;
|
|
122
142
|
font-display: swap;
|
|
123
143
|
src: url('Inter-BoldItalic.woff2?v=3.19') format('woff2');
|
|
144
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
124
145
|
}
|
|
125
146
|
@font-face {
|
|
126
147
|
font-family: 'Inter';
|
|
@@ -128,6 +149,7 @@
|
|
|
128
149
|
font-weight: 800;
|
|
129
150
|
font-display: swap;
|
|
130
151
|
src: url('Inter-ExtraBold.woff2?v=3.19') format('woff2');
|
|
152
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
131
153
|
}
|
|
132
154
|
@font-face {
|
|
133
155
|
font-family: 'Inter';
|
|
@@ -135,6 +157,7 @@
|
|
|
135
157
|
font-weight: 800;
|
|
136
158
|
font-display: swap;
|
|
137
159
|
src: url('Inter-ExtraBoldItalic.woff2?v=3.19') format('woff2');
|
|
160
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
138
161
|
}
|
|
139
162
|
@font-face {
|
|
140
163
|
font-family: 'Inter';
|
|
@@ -142,6 +165,7 @@
|
|
|
142
165
|
font-weight: 900;
|
|
143
166
|
font-display: swap;
|
|
144
167
|
src: url('Inter-Black.woff2?v=3.19') format('woff2');
|
|
168
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
145
169
|
}
|
|
146
170
|
@font-face {
|
|
147
171
|
font-family: 'Inter';
|
|
@@ -149,6 +173,7 @@
|
|
|
149
173
|
font-weight: 900;
|
|
150
174
|
font-display: swap;
|
|
151
175
|
src: url('Inter-BlackItalic.woff2?v=3.19') format('woff2');
|
|
176
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
152
177
|
}
|
|
153
178
|
/* static fonts "InterDisplay" */
|
|
154
179
|
@font-face {
|
|
@@ -157,6 +182,7 @@
|
|
|
157
182
|
font-weight: 100;
|
|
158
183
|
font-display: swap;
|
|
159
184
|
src: url('Inter-DisplayThin.woff2?v=3.19') format('woff2');
|
|
185
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
160
186
|
}
|
|
161
187
|
@font-face {
|
|
162
188
|
font-family: 'InterDisplay';
|
|
@@ -164,6 +190,7 @@
|
|
|
164
190
|
font-weight: 100;
|
|
165
191
|
font-display: swap;
|
|
166
192
|
src: url('Inter-DisplayThinItalic.woff2?v=3.19') format('woff2');
|
|
193
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
167
194
|
}
|
|
168
195
|
@font-face {
|
|
169
196
|
font-family: 'InterDisplay';
|
|
@@ -171,6 +198,7 @@
|
|
|
171
198
|
font-weight: 200;
|
|
172
199
|
font-display: swap;
|
|
173
200
|
src: url('Inter-DisplayExtraLight.woff2?v=3.19') format('woff2');
|
|
201
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
174
202
|
}
|
|
175
203
|
@font-face {
|
|
176
204
|
font-family: 'InterDisplay';
|
|
@@ -178,6 +206,7 @@
|
|
|
178
206
|
font-weight: 200;
|
|
179
207
|
font-display: swap;
|
|
180
208
|
src: url('Inter-DisplayExtraLightItalic.woff2?v=3.19') format('woff2');
|
|
209
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
181
210
|
}
|
|
182
211
|
@font-face {
|
|
183
212
|
font-family: 'InterDisplay';
|
|
@@ -185,6 +214,7 @@
|
|
|
185
214
|
font-weight: 300;
|
|
186
215
|
font-display: swap;
|
|
187
216
|
src: url('Inter-DisplayLight.woff2?v=3.19') format('woff2');
|
|
217
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
188
218
|
}
|
|
189
219
|
@font-face {
|
|
190
220
|
font-family: 'InterDisplay';
|
|
@@ -192,6 +222,7 @@
|
|
|
192
222
|
font-weight: 300;
|
|
193
223
|
font-display: swap;
|
|
194
224
|
src: url('Inter-DisplayLightItalic.woff2?v=3.19') format('woff2');
|
|
225
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
195
226
|
}
|
|
196
227
|
@font-face {
|
|
197
228
|
font-family: 'InterDisplay';
|
|
@@ -199,6 +230,7 @@
|
|
|
199
230
|
font-weight: 400;
|
|
200
231
|
font-display: swap;
|
|
201
232
|
src: url('Inter-DisplayRegular.woff2?v=3.19') format('woff2');
|
|
233
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
202
234
|
}
|
|
203
235
|
@font-face {
|
|
204
236
|
font-family: 'InterDisplay';
|
|
@@ -206,6 +238,7 @@
|
|
|
206
238
|
font-weight: 400;
|
|
207
239
|
font-display: swap;
|
|
208
240
|
src: url('Inter-DisplayItalic.woff2?v=3.19') format('woff2');
|
|
241
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
209
242
|
}
|
|
210
243
|
@font-face {
|
|
211
244
|
font-family: 'InterDisplay';
|
|
@@ -213,6 +246,7 @@
|
|
|
213
246
|
font-weight: 500;
|
|
214
247
|
font-display: swap;
|
|
215
248
|
src: url('Inter-DisplayMedium.woff2?v=3.19') format('woff2');
|
|
249
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
216
250
|
}
|
|
217
251
|
@font-face {
|
|
218
252
|
font-family: 'InterDisplay';
|
|
@@ -220,6 +254,7 @@
|
|
|
220
254
|
font-weight: 500;
|
|
221
255
|
font-display: swap;
|
|
222
256
|
src: url('Inter-DisplayMediumItalic.woff2?v=3.19') format('woff2');
|
|
257
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
223
258
|
}
|
|
224
259
|
@font-face {
|
|
225
260
|
font-family: 'InterDisplay';
|
|
@@ -227,6 +262,7 @@
|
|
|
227
262
|
font-weight: 600;
|
|
228
263
|
font-display: swap;
|
|
229
264
|
src: url('Inter-DisplaySemiBold.woff2?v=3.19') format('woff2');
|
|
265
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
230
266
|
}
|
|
231
267
|
@font-face {
|
|
232
268
|
font-family: 'InterDisplay';
|
|
@@ -234,6 +270,7 @@
|
|
|
234
270
|
font-weight: 600;
|
|
235
271
|
font-display: swap;
|
|
236
272
|
src: url('Inter-DisplaySemiBoldItalic.woff2?v=3.19') format('woff2');
|
|
273
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
237
274
|
}
|
|
238
275
|
@font-face {
|
|
239
276
|
font-family: 'InterDisplay';
|
|
@@ -241,6 +278,7 @@
|
|
|
241
278
|
font-weight: 700;
|
|
242
279
|
font-display: swap;
|
|
243
280
|
src: url('Inter-DisplayBold.woff2?v=3.19') format('woff2');
|
|
281
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
244
282
|
}
|
|
245
283
|
@font-face {
|
|
246
284
|
font-family: 'InterDisplay';
|
|
@@ -248,6 +286,7 @@
|
|
|
248
286
|
font-weight: 700;
|
|
249
287
|
font-display: swap;
|
|
250
288
|
src: url('Inter-DisplayBoldItalic.woff2?v=3.19') format('woff2');
|
|
289
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
251
290
|
}
|
|
252
291
|
@font-face {
|
|
253
292
|
font-family: 'InterDisplay';
|
|
@@ -255,6 +294,7 @@
|
|
|
255
294
|
font-weight: 800;
|
|
256
295
|
font-display: swap;
|
|
257
296
|
src: url('Inter-DisplayExtraBold.woff2?v=3.19') format('woff2');
|
|
297
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
258
298
|
}
|
|
259
299
|
@font-face {
|
|
260
300
|
font-family: 'InterDisplay';
|
|
@@ -262,6 +302,7 @@
|
|
|
262
302
|
font-weight: 800;
|
|
263
303
|
font-display: swap;
|
|
264
304
|
src: url('Inter-DisplayExtraBoldItalic.woff2?v=3.19') format('woff2');
|
|
305
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
265
306
|
}
|
|
266
307
|
@font-face {
|
|
267
308
|
font-family: 'InterDisplay';
|
|
@@ -269,6 +310,7 @@
|
|
|
269
310
|
font-weight: 900;
|
|
270
311
|
font-display: swap;
|
|
271
312
|
src: url('Inter-DisplayBlack.woff2?v=3.19') format('woff2');
|
|
313
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
272
314
|
}
|
|
273
315
|
@font-face {
|
|
274
316
|
font-family: 'InterDisplay';
|
|
@@ -276,4 +318,5 @@
|
|
|
276
318
|
font-weight: 900;
|
|
277
319
|
font-display: swap;
|
|
278
320
|
src: url('Inter-DisplayBlackItalic.woff2?v=3.19') format('woff2');
|
|
321
|
+
unicode-range: U+0000-05FF, U+0700-1FFF, U+2C00-2FFF, U+4E00-9FFF, U+AC00-D7AF;
|
|
279
322
|
}
|