@nexxtmove/ui 0.1.67 → 0.1.69
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/dist/index.d.ts +120 -32
- package/dist/index.js +7387 -7088
- package/dist/nuxt.js +64 -74
- package/dist/ui.css +2 -0
- package/package.json +33 -32
- package/src/components/CountrySelect/CountrySelect.vue +160 -0
- package/src/components/CountrySelect/countries.ts +196 -0
- package/src/components/Tabs/Tabs.vue +1 -1
- package/src/components.json +1 -0
- package/src/index.ts +1 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexxtmove/ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.69",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"@number-flow/vue": "^0.5.0",
|
|
25
25
|
"date-fns": "^4.1.0",
|
|
26
26
|
"date-fns-tz": "^3.2.0",
|
|
27
|
-
"
|
|
27
|
+
"flag-icons": "^7.5.0",
|
|
28
|
+
"reka-ui": "^2.9.6"
|
|
28
29
|
},
|
|
29
30
|
"peerDependencies": {
|
|
30
31
|
"tailwindcss": "^4.0.0",
|
|
@@ -32,43 +33,43 @@
|
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
35
|
"@awesome.me/kit-37b149f3ef": "^1.0.8",
|
|
35
|
-
"@eslint/js": "^
|
|
36
|
-
"@nuxt/kit": "^4.
|
|
37
|
-
"@nuxt/schema": "^4.
|
|
38
|
-
"@storybook/addon-a11y": "^10.3.
|
|
36
|
+
"@eslint/js": "^10.0.1",
|
|
37
|
+
"@nuxt/kit": "^4.4.4",
|
|
38
|
+
"@nuxt/schema": "^4.4.4",
|
|
39
|
+
"@storybook/addon-a11y": "^10.3.6",
|
|
39
40
|
"@storybook/addon-designs": "^11.1.3",
|
|
40
|
-
"@storybook/addon-docs": "^10.3.
|
|
41
|
-
"@storybook/addon-vitest": "^10.3.
|
|
42
|
-
"@storybook/builder-vite": "^10.3.
|
|
43
|
-
"@storybook/vue3-vite": "^10.3.
|
|
44
|
-
"@tailwindcss/vite": "^4.
|
|
45
|
-
"@types/node": "^25.0
|
|
46
|
-
"@types/react": "^19.2.
|
|
41
|
+
"@storybook/addon-docs": "^10.3.6",
|
|
42
|
+
"@storybook/addon-vitest": "^10.3.6",
|
|
43
|
+
"@storybook/builder-vite": "^10.3.6",
|
|
44
|
+
"@storybook/vue3-vite": "^10.3.6",
|
|
45
|
+
"@tailwindcss/vite": "^4.2.4",
|
|
46
|
+
"@types/node": "^25.6.0",
|
|
47
|
+
"@types/react": "^19.2.14",
|
|
47
48
|
"@types/react-dom": "^19.2.3",
|
|
48
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
49
|
-
"@vitest/coverage-v8": "^4.
|
|
50
|
-
"@vue/eslint-config-typescript": "^14.
|
|
51
|
-
"@vue/test-utils": "^2.4.
|
|
52
|
-
"@vue/tsconfig": "^0.9.
|
|
49
|
+
"@vitejs/plugin-vue": "^6.0.6",
|
|
50
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
51
|
+
"@vue/eslint-config-typescript": "^14.7.0",
|
|
52
|
+
"@vue/test-utils": "^2.4.9",
|
|
53
|
+
"@vue/tsconfig": "^0.9.1",
|
|
53
54
|
"consola": "^3.4.2",
|
|
54
|
-
"eslint": "^
|
|
55
|
+
"eslint": "^10.2.1",
|
|
55
56
|
"eslint-config-prettier": "^10.1.8",
|
|
56
57
|
"eslint-plugin-prettier": "^5.5.5",
|
|
57
|
-
"eslint-plugin-storybook": "10.3.
|
|
58
|
-
"eslint-plugin-vue": "^10.
|
|
59
|
-
"globals": "^17.
|
|
60
|
-
"jsdom": "^
|
|
61
|
-
"prettier": "^3.
|
|
62
|
-
"prettier-plugin-tailwindcss": "^0.
|
|
63
|
-
"react": "^19.2.
|
|
64
|
-
"react-dom": "^19.2.
|
|
58
|
+
"eslint-plugin-storybook": "10.3.6",
|
|
59
|
+
"eslint-plugin-vue": "^10.9.0",
|
|
60
|
+
"globals": "^17.5.0",
|
|
61
|
+
"jsdom": "^29.1.0",
|
|
62
|
+
"prettier": "^3.8.3",
|
|
63
|
+
"prettier-plugin-tailwindcss": "^0.8.0",
|
|
64
|
+
"react": "^19.2.5",
|
|
65
|
+
"react-dom": "^19.2.5",
|
|
65
66
|
"remark-frontmatter": "^5.0.0",
|
|
66
|
-
"storybook": "^10.3.
|
|
67
|
-
"typescript-eslint": "^8.
|
|
68
|
-
"vite": "^
|
|
67
|
+
"storybook": "^10.3.6",
|
|
68
|
+
"typescript-eslint": "^8.59.1",
|
|
69
|
+
"vite": "^8.0.10",
|
|
69
70
|
"vite-plugin-dts": "^4.5.4",
|
|
70
|
-
"vite-svg-loader": "^5.1.
|
|
71
|
-
"vitest": "^4.
|
|
71
|
+
"vite-svg-loader": "^5.1.1",
|
|
72
|
+
"vitest": "^4.1.5"
|
|
72
73
|
},
|
|
73
74
|
"engines": {
|
|
74
75
|
"node": ">=22.18.0"
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref, computed, nextTick } from 'vue'
|
|
3
|
+
import NexxtFloatingPanel from '../FloatingPanel/FloatingPanel.vue'
|
|
4
|
+
import NexxtIcon from '../Icon/Icon.vue'
|
|
5
|
+
import NexxtInputField from '../InputField/InputField.vue'
|
|
6
|
+
import { countries } from './countries'
|
|
7
|
+
|
|
8
|
+
defineOptions({ name: 'NexxtCountrySelect' })
|
|
9
|
+
|
|
10
|
+
const generateId = () => 'country-select-' + Math.random().toString(36).slice(2, 10)
|
|
11
|
+
const selectId = generateId()
|
|
12
|
+
|
|
13
|
+
interface NexxtCountrySelectProps {
|
|
14
|
+
placeholder?: string
|
|
15
|
+
label?: string
|
|
16
|
+
error?: boolean
|
|
17
|
+
errorMessage?: string
|
|
18
|
+
required?: boolean
|
|
19
|
+
pinnedCountries?: string[]
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const props = withDefaults(defineProps<NexxtCountrySelectProps>(), {
|
|
23
|
+
placeholder: 'Selecteer een land...',
|
|
24
|
+
pinnedCountries: () => [],
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
const model = defineModel<string | null>({ default: null })
|
|
28
|
+
const search = ref('')
|
|
29
|
+
const inputRef = ref<InstanceType<typeof NexxtInputField> | null>(null)
|
|
30
|
+
|
|
31
|
+
const selectedCountry = computed(() => countries.find((c) => c.name === model.value) ?? null)
|
|
32
|
+
|
|
33
|
+
const sortedCountries = computed(() => {
|
|
34
|
+
const pinned = props.pinnedCountries
|
|
35
|
+
.map((code) => countries.find((c) => c.code === code))
|
|
36
|
+
.filter((c) => c !== undefined)
|
|
37
|
+
const pinnedCodes = new Set(props.pinnedCountries)
|
|
38
|
+
const rest = countries
|
|
39
|
+
.filter((c) => !pinnedCodes.has(c.code))
|
|
40
|
+
.sort((a, b) => a.name.localeCompare(b.name, 'nl'))
|
|
41
|
+
return [...pinned, ...rest]
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
const filteredCountries = computed(() => {
|
|
45
|
+
const q = search.value.toLowerCase()
|
|
46
|
+
return q
|
|
47
|
+
? sortedCountries.value.filter((c) => c.name.toLowerCase().includes(q))
|
|
48
|
+
: sortedCountries.value
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
const select = (name: string, close: () => void) => {
|
|
52
|
+
model.value = name
|
|
53
|
+
search.value = ''
|
|
54
|
+
close()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const onOpen = async () => {
|
|
58
|
+
await nextTick()
|
|
59
|
+
inputRef.value?.$el.querySelector('input')?.focus()
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<template>
|
|
64
|
+
<div class="inline-flex flex-col gap-1">
|
|
65
|
+
<label
|
|
66
|
+
v-if="label"
|
|
67
|
+
class="text-color-gray-700 justify-start body-normal text-sm"
|
|
68
|
+
:for="selectId"
|
|
69
|
+
>
|
|
70
|
+
{{ label }}
|
|
71
|
+
<span v-if="required" class="text-brick-500">*</span>
|
|
72
|
+
</label>
|
|
73
|
+
|
|
74
|
+
<NexxtFloatingPanel placement="bottom" match-width @open="onOpen">
|
|
75
|
+
<template #trigger="{ isOpen, toggle }">
|
|
76
|
+
<div
|
|
77
|
+
:id="selectId"
|
|
78
|
+
role="combobox"
|
|
79
|
+
:aria-expanded="isOpen"
|
|
80
|
+
aria-haspopup="listbox"
|
|
81
|
+
tabindex="0"
|
|
82
|
+
class="group flex w-full cursor-pointer items-center gap-2 rounded-lg pr-3 ring transition-colors ease-out focus:ring-cornflower-blue-500 focus:outline-none"
|
|
83
|
+
:class="error ? 'ring-brick-400' : 'ring-gray-200'"
|
|
84
|
+
@click="toggle"
|
|
85
|
+
@keydown.enter.prevent="toggle"
|
|
86
|
+
@keydown.space.prevent="toggle"
|
|
87
|
+
>
|
|
88
|
+
<span
|
|
89
|
+
class="flex h-10 w-full min-w-60 items-center gap-2 pl-3 text-sm"
|
|
90
|
+
:class="selectedCountry ? 'text-gray-900' : 'text-gray-400'"
|
|
91
|
+
>
|
|
92
|
+
<span
|
|
93
|
+
v-if="selectedCountry"
|
|
94
|
+
:class="`fi fi-${selectedCountry.code}`"
|
|
95
|
+
class="shrink-0"
|
|
96
|
+
/>
|
|
97
|
+
{{ selectedCountry?.name ?? placeholder }}
|
|
98
|
+
</span>
|
|
99
|
+
<NexxtIcon
|
|
100
|
+
name="chevron-down"
|
|
101
|
+
class="shrink-0 text-gray-400 transition-all duration-200 group-hover:text-cornflower-blue-600"
|
|
102
|
+
:class="{ 'rotate-180': isOpen }"
|
|
103
|
+
/>
|
|
104
|
+
</div>
|
|
105
|
+
</template>
|
|
106
|
+
|
|
107
|
+
<template #content="{ close }">
|
|
108
|
+
<div class="overflow-hidden rounded-lg bg-white shadow-xs ring ring-gray-100">
|
|
109
|
+
<div class="border-b border-gray-100 p-2">
|
|
110
|
+
<NexxtInputField
|
|
111
|
+
ref="inputRef"
|
|
112
|
+
v-model="search"
|
|
113
|
+
class="w-full"
|
|
114
|
+
left-icon="magnifying-glass"
|
|
115
|
+
placeholder="Zoeken..."
|
|
116
|
+
/>
|
|
117
|
+
</div>
|
|
118
|
+
<ul
|
|
119
|
+
role="listbox"
|
|
120
|
+
class="max-h-60 overflow-y-auto [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-cornflower-blue-200 [&::-webkit-scrollbar-thumb:hover]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"
|
|
121
|
+
>
|
|
122
|
+
<li
|
|
123
|
+
v-for="country in filteredCountries"
|
|
124
|
+
:key="country.code"
|
|
125
|
+
role="option"
|
|
126
|
+
:aria-selected="model === country.name"
|
|
127
|
+
class="flex cursor-pointer items-center gap-3 px-4 py-3 text-sm text-gray-900 transition-colors duration-150 hover:bg-gray-50 hover:text-purple-600"
|
|
128
|
+
:class="{ 'font-medium text-cornflower-blue-600': model === country.name }"
|
|
129
|
+
@click="select(country.name, close)"
|
|
130
|
+
>
|
|
131
|
+
<span :class="`fi fi-${country.code}`" class="shrink-0" />
|
|
132
|
+
{{ country.name }}
|
|
133
|
+
<NexxtIcon v-if="model === country.name" name="check" class="ml-auto text-xs" />
|
|
134
|
+
</li>
|
|
135
|
+
<li v-if="filteredCountries.length === 0" class="px-4 py-3 text-sm text-gray-400">
|
|
136
|
+
Geen landen gevonden
|
|
137
|
+
</li>
|
|
138
|
+
</ul>
|
|
139
|
+
</div>
|
|
140
|
+
</template>
|
|
141
|
+
</NexxtFloatingPanel>
|
|
142
|
+
|
|
143
|
+
<Transition
|
|
144
|
+
enter-active-class="transition-all duration-200 ease-out"
|
|
145
|
+
enter-from-class="opacity-0 -translate-y-1"
|
|
146
|
+
enter-to-class="opacity-100 translate-y-0"
|
|
147
|
+
leave-active-class="transition-all duration-150 ease-in"
|
|
148
|
+
leave-from-class="opacity-100 translate-y-0"
|
|
149
|
+
leave-to-class="opacity-0 -translate-y-1"
|
|
150
|
+
>
|
|
151
|
+
<p v-if="error && errorMessage" class="text-sm text-brick-400">
|
|
152
|
+
{{ errorMessage }}
|
|
153
|
+
</p>
|
|
154
|
+
</Transition>
|
|
155
|
+
</div>
|
|
156
|
+
</template>
|
|
157
|
+
|
|
158
|
+
<style>
|
|
159
|
+
@import 'flag-icons/css/flag-icons.min.css';
|
|
160
|
+
</style>
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
export type Country = { code: string; name: string }
|
|
2
|
+
|
|
3
|
+
export const countries: Country[] = [
|
|
4
|
+
{ code: 'af', name: 'Afghanistan' },
|
|
5
|
+
{ code: 'al', name: 'Albanië' },
|
|
6
|
+
{ code: 'dz', name: 'Algerije' },
|
|
7
|
+
{ code: 'ad', name: 'Andorra' },
|
|
8
|
+
{ code: 'ao', name: 'Angola' },
|
|
9
|
+
{ code: 'ag', name: 'Antigua en Barbuda' },
|
|
10
|
+
{ code: 'ar', name: 'Argentinië' },
|
|
11
|
+
{ code: 'am', name: 'Armenië' },
|
|
12
|
+
{ code: 'au', name: 'Australië' },
|
|
13
|
+
{ code: 'at', name: 'Oostenrijk' },
|
|
14
|
+
{ code: 'az', name: 'Azerbeidzjan' },
|
|
15
|
+
{ code: 'bs', name: "Bahama's" },
|
|
16
|
+
{ code: 'bh', name: 'Bahrein' },
|
|
17
|
+
{ code: 'bd', name: 'Bangladesh' },
|
|
18
|
+
{ code: 'bb', name: 'Barbados' },
|
|
19
|
+
{ code: 'by', name: 'Wit-Rusland' },
|
|
20
|
+
{ code: 'be', name: 'België' },
|
|
21
|
+
{ code: 'bz', name: 'Belize' },
|
|
22
|
+
{ code: 'bj', name: 'Benin' },
|
|
23
|
+
{ code: 'bt', name: 'Bhutan' },
|
|
24
|
+
{ code: 'bo', name: 'Bolivia' },
|
|
25
|
+
{ code: 'ba', name: 'Bosnië en Herzegovina' },
|
|
26
|
+
{ code: 'bw', name: 'Botswana' },
|
|
27
|
+
{ code: 'br', name: 'Brazilië' },
|
|
28
|
+
{ code: 'bn', name: 'Brunei' },
|
|
29
|
+
{ code: 'bg', name: 'Bulgarije' },
|
|
30
|
+
{ code: 'bf', name: 'Burkina Faso' },
|
|
31
|
+
{ code: 'bi', name: 'Burundi' },
|
|
32
|
+
{ code: 'cv', name: 'Kaapverdië' },
|
|
33
|
+
{ code: 'kh', name: 'Cambodja' },
|
|
34
|
+
{ code: 'cm', name: 'Kameroen' },
|
|
35
|
+
{ code: 'ca', name: 'Canada' },
|
|
36
|
+
{ code: 'cf', name: 'Centraal-Afrikaanse Republiek' },
|
|
37
|
+
{ code: 'td', name: 'Tsjaad' },
|
|
38
|
+
{ code: 'cl', name: 'Chili' },
|
|
39
|
+
{ code: 'cn', name: 'China' },
|
|
40
|
+
{ code: 'co', name: 'Colombia' },
|
|
41
|
+
{ code: 'km', name: 'Comoren' },
|
|
42
|
+
{ code: 'cd', name: 'Congo (DRC)' },
|
|
43
|
+
{ code: 'cg', name: 'Congo (Republiek)' },
|
|
44
|
+
{ code: 'cr', name: 'Costa Rica' },
|
|
45
|
+
{ code: 'hr', name: 'Kroatië' },
|
|
46
|
+
{ code: 'cu', name: 'Cuba' },
|
|
47
|
+
{ code: 'cy', name: 'Cyprus' },
|
|
48
|
+
{ code: 'cz', name: 'Tsjechië' },
|
|
49
|
+
{ code: 'dk', name: 'Denemarken' },
|
|
50
|
+
{ code: 'dj', name: 'Djibouti' },
|
|
51
|
+
{ code: 'dm', name: 'Dominica' },
|
|
52
|
+
{ code: 'do', name: 'Dominicaanse Republiek' },
|
|
53
|
+
{ code: 'ec', name: 'Ecuador' },
|
|
54
|
+
{ code: 'eg', name: 'Egypte' },
|
|
55
|
+
{ code: 'sv', name: 'El Salvador' },
|
|
56
|
+
{ code: 'gq', name: 'Equatoriaal-Guinea' },
|
|
57
|
+
{ code: 'er', name: 'Eritrea' },
|
|
58
|
+
{ code: 'ee', name: 'Estland' },
|
|
59
|
+
{ code: 'sz', name: 'Eswatini' },
|
|
60
|
+
{ code: 'et', name: 'Ethiopië' },
|
|
61
|
+
{ code: 'fj', name: 'Fiji' },
|
|
62
|
+
{ code: 'fi', name: 'Finland' },
|
|
63
|
+
{ code: 'fr', name: 'Frankrijk' },
|
|
64
|
+
{ code: 'ga', name: 'Gabon' },
|
|
65
|
+
{ code: 'gm', name: 'Gambia' },
|
|
66
|
+
{ code: 'ge', name: 'Georgië' },
|
|
67
|
+
{ code: 'de', name: 'Duitsland' },
|
|
68
|
+
{ code: 'gh', name: 'Ghana' },
|
|
69
|
+
{ code: 'gr', name: 'Griekenland' },
|
|
70
|
+
{ code: 'gd', name: 'Grenada' },
|
|
71
|
+
{ code: 'gt', name: 'Guatemala' },
|
|
72
|
+
{ code: 'gn', name: 'Guinee' },
|
|
73
|
+
{ code: 'gw', name: 'Guinee-Bissau' },
|
|
74
|
+
{ code: 'gy', name: 'Guyana' },
|
|
75
|
+
{ code: 'ht', name: 'Haïti' },
|
|
76
|
+
{ code: 'hn', name: 'Honduras' },
|
|
77
|
+
{ code: 'hu', name: 'Hongarije' },
|
|
78
|
+
{ code: 'is', name: 'IJsland' },
|
|
79
|
+
{ code: 'in', name: 'India' },
|
|
80
|
+
{ code: 'id', name: 'Indonesië' },
|
|
81
|
+
{ code: 'ir', name: 'Iran' },
|
|
82
|
+
{ code: 'iq', name: 'Irak' },
|
|
83
|
+
{ code: 'ie', name: 'Ierland' },
|
|
84
|
+
{ code: 'il', name: 'Israël' },
|
|
85
|
+
{ code: 'it', name: 'Italië' },
|
|
86
|
+
{ code: 'jm', name: 'Jamaica' },
|
|
87
|
+
{ code: 'jp', name: 'Japan' },
|
|
88
|
+
{ code: 'jo', name: 'Jordanië' },
|
|
89
|
+
{ code: 'kz', name: 'Kazachstan' },
|
|
90
|
+
{ code: 'ke', name: 'Kenia' },
|
|
91
|
+
{ code: 'ki', name: 'Kiribati' },
|
|
92
|
+
{ code: 'kw', name: 'Koeweit' },
|
|
93
|
+
{ code: 'kg', name: 'Kirgizië' },
|
|
94
|
+
{ code: 'la', name: 'Laos' },
|
|
95
|
+
{ code: 'lv', name: 'Letland' },
|
|
96
|
+
{ code: 'lb', name: 'Libanon' },
|
|
97
|
+
{ code: 'ls', name: 'Lesotho' },
|
|
98
|
+
{ code: 'lr', name: 'Liberia' },
|
|
99
|
+
{ code: 'ly', name: 'Libië' },
|
|
100
|
+
{ code: 'li', name: 'Liechtenstein' },
|
|
101
|
+
{ code: 'lt', name: 'Litouwen' },
|
|
102
|
+
{ code: 'lu', name: 'Luxemburg' },
|
|
103
|
+
{ code: 'mg', name: 'Madagaskar' },
|
|
104
|
+
{ code: 'mw', name: 'Malawi' },
|
|
105
|
+
{ code: 'my', name: 'Maleisië' },
|
|
106
|
+
{ code: 'mv', name: 'Malediven' },
|
|
107
|
+
{ code: 'ml', name: 'Mali' },
|
|
108
|
+
{ code: 'mt', name: 'Malta' },
|
|
109
|
+
{ code: 'mh', name: 'Marshalleilanden' },
|
|
110
|
+
{ code: 'mr', name: 'Mauritanië' },
|
|
111
|
+
{ code: 'mu', name: 'Mauritius' },
|
|
112
|
+
{ code: 'mx', name: 'Mexico' },
|
|
113
|
+
{ code: 'fm', name: 'Micronesië' },
|
|
114
|
+
{ code: 'md', name: 'Moldavië' },
|
|
115
|
+
{ code: 'mc', name: 'Monaco' },
|
|
116
|
+
{ code: 'mn', name: 'Mongolië' },
|
|
117
|
+
{ code: 'me', name: 'Montenegro' },
|
|
118
|
+
{ code: 'ma', name: 'Marokko' },
|
|
119
|
+
{ code: 'mz', name: 'Mozambique' },
|
|
120
|
+
{ code: 'mm', name: 'Myanmar' },
|
|
121
|
+
{ code: 'na', name: 'Namibië' },
|
|
122
|
+
{ code: 'nr', name: 'Nauru' },
|
|
123
|
+
{ code: 'np', name: 'Nepal' },
|
|
124
|
+
{ code: 'nl', name: 'Nederland' },
|
|
125
|
+
{ code: 'nz', name: 'Nieuw-Zeeland' },
|
|
126
|
+
{ code: 'ni', name: 'Nicaragua' },
|
|
127
|
+
{ code: 'ne', name: 'Niger' },
|
|
128
|
+
{ code: 'ng', name: 'Nigeria' },
|
|
129
|
+
{ code: 'kp', name: 'Noord-Korea' },
|
|
130
|
+
{ code: 'mk', name: 'Noord-Macedonië' },
|
|
131
|
+
{ code: 'no', name: 'Noorwegen' },
|
|
132
|
+
{ code: 'om', name: 'Oman' },
|
|
133
|
+
{ code: 'pk', name: 'Pakistan' },
|
|
134
|
+
{ code: 'pw', name: 'Palau' },
|
|
135
|
+
{ code: 'pa', name: 'Panama' },
|
|
136
|
+
{ code: 'pg', name: 'Papoea-Nieuw-Guinea' },
|
|
137
|
+
{ code: 'py', name: 'Paraguay' },
|
|
138
|
+
{ code: 'pe', name: 'Peru' },
|
|
139
|
+
{ code: 'ph', name: 'Filipijnen' },
|
|
140
|
+
{ code: 'pl', name: 'Polen' },
|
|
141
|
+
{ code: 'pt', name: 'Portugal' },
|
|
142
|
+
{ code: 'qa', name: 'Qatar' },
|
|
143
|
+
{ code: 'ro', name: 'Roemenië' },
|
|
144
|
+
{ code: 'ru', name: 'Rusland' },
|
|
145
|
+
{ code: 'rw', name: 'Rwanda' },
|
|
146
|
+
{ code: 'kn', name: 'Saint Kitts en Nevis' },
|
|
147
|
+
{ code: 'lc', name: 'Saint Lucia' },
|
|
148
|
+
{ code: 'vc', name: 'Saint Vincent en de Grenadines' },
|
|
149
|
+
{ code: 'ws', name: 'Samoa' },
|
|
150
|
+
{ code: 'sm', name: 'San Marino' },
|
|
151
|
+
{ code: 'st', name: 'Sao Tomé en Principe' },
|
|
152
|
+
{ code: 'sa', name: 'Saoedi-Arabië' },
|
|
153
|
+
{ code: 'sn', name: 'Senegal' },
|
|
154
|
+
{ code: 'rs', name: 'Servië' },
|
|
155
|
+
{ code: 'sc', name: 'Seychellen' },
|
|
156
|
+
{ code: 'sl', name: 'Sierra Leone' },
|
|
157
|
+
{ code: 'sg', name: 'Singapore' },
|
|
158
|
+
{ code: 'sk', name: 'Slowakije' },
|
|
159
|
+
{ code: 'si', name: 'Slovenië' },
|
|
160
|
+
{ code: 'sb', name: 'Salomonseilanden' },
|
|
161
|
+
{ code: 'so', name: 'Somalië' },
|
|
162
|
+
{ code: 'za', name: 'Zuid-Afrika' },
|
|
163
|
+
{ code: 'ss', name: 'Zuid-Sudan' },
|
|
164
|
+
{ code: 'es', name: 'Spanje' },
|
|
165
|
+
{ code: 'lk', name: 'Sri Lanka' },
|
|
166
|
+
{ code: 'sd', name: 'Soedan' },
|
|
167
|
+
{ code: 'sr', name: 'Suriname' },
|
|
168
|
+
{ code: 'se', name: 'Zweden' },
|
|
169
|
+
{ code: 'ch', name: 'Zwitserland' },
|
|
170
|
+
{ code: 'sy', name: 'Syrië' },
|
|
171
|
+
{ code: 'tw', name: 'Taiwan' },
|
|
172
|
+
{ code: 'tj', name: 'Tadzjikistan' },
|
|
173
|
+
{ code: 'tz', name: 'Tanzania' },
|
|
174
|
+
{ code: 'th', name: 'Thailand' },
|
|
175
|
+
{ code: 'tl', name: 'Oost-Timor' },
|
|
176
|
+
{ code: 'tg', name: 'Togo' },
|
|
177
|
+
{ code: 'to', name: 'Tonga' },
|
|
178
|
+
{ code: 'tt', name: 'Trinidad en Tobago' },
|
|
179
|
+
{ code: 'tn', name: 'Tunesië' },
|
|
180
|
+
{ code: 'tr', name: 'Turkije' },
|
|
181
|
+
{ code: 'tm', name: 'Turkmenistan' },
|
|
182
|
+
{ code: 'tv', name: 'Tuvalu' },
|
|
183
|
+
{ code: 'ug', name: 'Oeganda' },
|
|
184
|
+
{ code: 'ua', name: 'Oekraïne' },
|
|
185
|
+
{ code: 'ae', name: 'Verenigde Arabische Emiraten' },
|
|
186
|
+
{ code: 'gb', name: 'Verenigd Koninkrijk' },
|
|
187
|
+
{ code: 'us', name: 'Verenigde Staten' },
|
|
188
|
+
{ code: 'uy', name: 'Uruguay' },
|
|
189
|
+
{ code: 'uz', name: 'Oezbekistan' },
|
|
190
|
+
{ code: 'vu', name: 'Vanuatu' },
|
|
191
|
+
{ code: 've', name: 'Venezuela' },
|
|
192
|
+
{ code: 'vn', name: 'Vietnam' },
|
|
193
|
+
{ code: 'ye', name: 'Jemen' },
|
|
194
|
+
{ code: 'zm', name: 'Zambia' },
|
|
195
|
+
{ code: 'zw', name: 'Zimbabwe' },
|
|
196
|
+
]
|
|
@@ -39,7 +39,7 @@ const updateSlider = async () => {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
const onKeydown = (event: KeyboardEvent, index: number) => {
|
|
42
|
-
let next
|
|
42
|
+
let next: number
|
|
43
43
|
if (event.key === 'ArrowRight') next = (index + 1) % props.tabs.length
|
|
44
44
|
else if (event.key === 'ArrowLeft') next = (index - 1 + props.tabs.length) % props.tabs.length
|
|
45
45
|
else if (event.key === 'Home') next = 0
|
package/src/components.json
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"NexxtCombobox": "components/Combobox/Combobox.vue",
|
|
10
10
|
"NexxtComboboxPanel": "components/ComboboxPanel/ComboboxPanel.vue",
|
|
11
11
|
"NexxtContactInfoCard": "components/ContactInfoCard/ContactInfoCard.vue",
|
|
12
|
+
"NexxtCountrySelect": "components/CountrySelect/CountrySelect.vue",
|
|
12
13
|
"NexxtCustomerJourneyTile": "components/CustomerJourneyTile/CustomerJourneyTile.vue",
|
|
13
14
|
"NexxtDatePicker": "components/DatePicker/DatePicker.vue",
|
|
14
15
|
"NexxtDoughnutChart": "components/DoughnutChart/DoughnutChart.vue",
|
package/src/index.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { default as NexxtChip } from './components/Chip/Chip.vue'
|
|
|
9
9
|
export { default as NexxtCombobox } from './components/Combobox/Combobox.vue'
|
|
10
10
|
export { default as NexxtComboboxPanel } from './components/ComboboxPanel/ComboboxPanel.vue'
|
|
11
11
|
export { default as NexxtContactInfoCard } from './components/ContactInfoCard/ContactInfoCard.vue'
|
|
12
|
+
export { default as NexxtCountrySelect } from './components/CountrySelect/CountrySelect.vue'
|
|
12
13
|
export { default as NexxtCustomerJourneyTile } from './components/CustomerJourneyTile/CustomerJourneyTile.vue'
|
|
13
14
|
export { default as NexxtDatePicker } from './components/DatePicker/DatePicker.vue'
|
|
14
15
|
export { default as NexxtDoughnutChart } from './components/DoughnutChart/DoughnutChart.vue'
|