@nexxtmove/ui 0.1.68 → 0.1.70

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/nuxt.js CHANGED
@@ -1,75 +1,65 @@
1
- import { defineNuxtModule as c, addComponent as s, addTemplate as a } from "@nuxt/kit";
2
- const x = "components/AnimatedNumber/AnimatedNumber.vue", i = "components/Avatar/Avatar.vue", r = "components/Button/Button.vue", m = "components/Calendar/Calendar.vue", u = "components/Card/Card.vue", p = "components/Checkbox/Checkbox.vue", l = "components/Chip/Chip.vue", d = "components/Combobox/Combobox.vue", v = "components/ComboboxPanel/ComboboxPanel.vue", C = "components/ContactInfoCard/ContactInfoCard.vue", N = "components/CustomerJourneyTile/CustomerJourneyTile.vue", b = "components/DatePicker/DatePicker.vue", P = "components/DoughnutChart/DoughnutChart.vue", S = "components/DropdownButton/DropdownButton.vue", T = "components/FloatingPanel/FloatingPanel.vue", h = "components/Header/Header.vue", k = "components/Icon/Icon.vue", I = "components/InfoBlock/InfoBlock.vue", f = "components/InputField/InputField.vue", g = "components/Modal/Modal.vue", y = "components/Pagination/Pagination.vue", M = "components/PresenceIndicator/PresenceIndicator.vue", B = "components/ProgressBar/ProgressBar.vue", D = "components/PropertyCard/PropertyCard.vue", A = "components/PropertyListing/PropertyListing.vue", F = "components/Select/Select.vue", H = "components/Skeleton/Skeleton.vue", w = "components/SkeletonPropertyCard/SkeletonPropertyCard.vue", E = "components/SocialIcons/SocialIcons.vue", J = "components/SocialMediaCustomTemplate/SocialMediaCustomTemplate.vue", L = "components/SocialMediaTemplate/SocialMediaTemplate.vue", j = "components/SocialMediaType/SocialMediaType.vue", $ = "components/Source/Source.vue", K = "components/StepperHeader/StepperHeader.vue", O = "components/TabbedContent/TabbedContent.vue", U = "components/Table/Table.vue", _ = "components/Tabs/Tabs.vue", q = "components/TimelineEvent/TimelineEvent.vue", z = "components/TimelinePhaseblock/TimelinePhaseblock.vue", G = "components/Tooltip/Tooltip.vue", Q = {
3
- NexxtAnimatedNumber: x,
4
- NexxtAvatar: i,
5
- NexxtButton: r,
6
- NexxtCalendar: m,
7
- NexxtCard: u,
8
- NexxtCheckbox: p,
9
- NexxtChip: l,
10
- NexxtCombobox: d,
11
- NexxtComboboxPanel: v,
12
- NexxtContactInfoCard: C,
13
- NexxtCustomerJourneyTile: N,
14
- NexxtDatePicker: b,
15
- NexxtDoughnutChart: P,
16
- NexxtDropdownButton: S,
17
- NexxtFloatingPanel: T,
18
- NexxtHeader: h,
19
- NexxtIcon: k,
20
- NexxtInfoBlock: I,
21
- NexxtInputField: f,
22
- NexxtModal: g,
23
- NexxtPagination: y,
24
- NexxtPresenceIndicator: M,
25
- NexxtProgressBar: B,
26
- NexxtPropertyCard: D,
27
- NexxtPropertyListing: A,
28
- NexxtSelect: F,
29
- NexxtSkeleton: H,
30
- NexxtSkeletonPropertyCard: w,
31
- NexxtSocialIcons: E,
32
- NexxtSocialMediaCustomTemplate: J,
33
- NexxtSocialMediaTemplate: L,
34
- NexxtSocialMediaType: j,
35
- NexxtSource: $,
36
- NexxtStepperHeader: K,
37
- NexxtTabbedContent: O,
38
- NexxtTable: U,
39
- NexxtTabs: _,
40
- NexxtTimelineEvent: q,
41
- NexxtTimelinePhaseblock: z,
42
- NexxtTooltip: G
43
- }, V = c({
44
- meta: {
45
- name: "@nexxtmove/ui",
46
- configKey: "nexxtmoveUi",
47
- compatibility: {
48
- nuxt: "^3.0.0 || ^4.0.0"
49
- }
50
- },
51
- defaults: {
52
- addCSS: !0
53
- },
54
- setup(e, o) {
55
- for (const [t, n] of Object.entries(Q))
56
- s({
57
- name: t,
58
- export: "default",
59
- filePath: `@nexxtmove/ui/${n}`
60
- });
61
- e.addCSS && (a({
62
- filename: "nexxtmove-ui.css",
63
- getContents: () => `
64
- @import "tailwindcss";
65
- @import "@nexxtmove/ui/theme";
66
-
67
- @source "../../node_modules/@nexxtmove/ui/dist/*.js";
68
- `,
69
- write: !0
70
- }), o.options.css.push("#build/nexxtmove-ui.css"));
71
- }
1
+ import { addComponent as e, addTemplate as t, defineNuxtModule as n } from "@nuxt/kit";
2
+ var r = {
3
+ NexxtAnimatedNumber: "components/AnimatedNumber/AnimatedNumber.vue",
4
+ NexxtAvatar: "components/Avatar/Avatar.vue",
5
+ NexxtButton: "components/Button/Button.vue",
6
+ NexxtCalendar: "components/Calendar/Calendar.vue",
7
+ NexxtCard: "components/Card/Card.vue",
8
+ NexxtCheckbox: "components/Checkbox/Checkbox.vue",
9
+ NexxtChip: "components/Chip/Chip.vue",
10
+ NexxtCombobox: "components/Combobox/Combobox.vue",
11
+ NexxtComboboxPanel: "components/ComboboxPanel/ComboboxPanel.vue",
12
+ NexxtContactInfoCard: "components/ContactInfoCard/ContactInfoCard.vue",
13
+ NexxtCountrySelect: "components/CountrySelect/CountrySelect.vue",
14
+ NexxtCustomerJourneyTile: "components/CustomerJourneyTile/CustomerJourneyTile.vue",
15
+ NexxtDatePicker: "components/DatePicker/DatePicker.vue",
16
+ NexxtDoughnutChart: "components/DoughnutChart/DoughnutChart.vue",
17
+ NexxtDropdownButton: "components/DropdownButton/DropdownButton.vue",
18
+ NexxtFloatingPanel: "components/FloatingPanel/FloatingPanel.vue",
19
+ NexxtHeader: "components/Header/Header.vue",
20
+ NexxtIcon: "components/Icon/Icon.vue",
21
+ NexxtInfoBlock: "components/InfoBlock/InfoBlock.vue",
22
+ NexxtInputField: "components/InputField/InputField.vue",
23
+ NexxtModal: "components/Modal/Modal.vue",
24
+ NexxtPagination: "components/Pagination/Pagination.vue",
25
+ NexxtPresenceIndicator: "components/PresenceIndicator/PresenceIndicator.vue",
26
+ NexxtProgressBar: "components/ProgressBar/ProgressBar.vue",
27
+ NexxtPropertyCard: "components/PropertyCard/PropertyCard.vue",
28
+ NexxtPropertyListing: "components/PropertyListing/PropertyListing.vue",
29
+ NexxtSelect: "components/Select/Select.vue",
30
+ NexxtSkeleton: "components/Skeleton/Skeleton.vue",
31
+ NexxtSkeletonPropertyCard: "components/SkeletonPropertyCard/SkeletonPropertyCard.vue",
32
+ NexxtSocialIcons: "components/SocialIcons/SocialIcons.vue",
33
+ NexxtSocialMediaCustomTemplate: "components/SocialMediaCustomTemplate/SocialMediaCustomTemplate.vue",
34
+ NexxtSocialMediaTemplate: "components/SocialMediaTemplate/SocialMediaTemplate.vue",
35
+ NexxtSocialMediaType: "components/SocialMediaType/SocialMediaType.vue",
36
+ NexxtSource: "components/Source/Source.vue",
37
+ NexxtStepperHeader: "components/StepperHeader/StepperHeader.vue",
38
+ NexxtTabbedContent: "components/TabbedContent/TabbedContent.vue",
39
+ NexxtTable: "components/Table/Table.vue",
40
+ NexxtTabs: "components/Tabs/Tabs.vue",
41
+ NexxtTimelineEvent: "components/TimelineEvent/TimelineEvent.vue",
42
+ NexxtTimelinePhaseblock: "components/TimelinePhaseblock/TimelinePhaseblock.vue",
43
+ NexxtTooltip: "components/Tooltip/Tooltip.vue"
44
+ }, i = n({
45
+ meta: {
46
+ name: "@nexxtmove/ui",
47
+ configKey: "nexxtmoveUi",
48
+ compatibility: { nuxt: "^3.0.0 || ^4.0.0" }
49
+ },
50
+ defaults: { addCSS: !0 },
51
+ setup(n, i) {
52
+ for (let [t, n] of Object.entries(r)) e({
53
+ name: t,
54
+ export: "default",
55
+ filePath: `@nexxtmove/ui/${n}`
56
+ });
57
+ n.addCSS && (t({
58
+ filename: "nexxtmove-ui.css",
59
+ getContents: () => "\n@import \"tailwindcss\";\n@import \"@nexxtmove/ui/theme\";\n\n@source \"../../node_modules/@nexxtmove/ui/dist/*.js\";\n",
60
+ write: !0
61
+ }), i.options.css.push("#build/nexxtmove-ui.css"));
62
+ }
72
63
  });
73
- export {
74
- V as default
75
- };
64
+ //#endregion
65
+ export { i as default };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nexxtmove/ui",
3
3
  "type": "module",
4
- "version": "0.1.68",
4
+ "version": "0.1.70",
5
5
  "exports": {
6
6
  ".": {
7
7
  "types": "./dist/index.d.ts",
@@ -24,51 +24,52 @@
24
24
  "@number-flow/vue": "^0.5.0",
25
25
  "date-fns": "^4.1.0",
26
26
  "date-fns-tz": "^3.2.0",
27
- "reka-ui": "^2.9.2"
27
+ "reka-ui": "^2.9.6"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "tailwindcss": "^4.0.0",
31
31
  "vue": "^3.0.0"
32
32
  },
33
33
  "devDependencies": {
34
+ "flag-icons": "^7.5.0",
34
35
  "@awesome.me/kit-37b149f3ef": "^1.0.8",
35
- "@eslint/js": "^9.39.2",
36
- "@nuxt/kit": "^4.3.1",
37
- "@nuxt/schema": "^4.3.1",
38
- "@storybook/addon-a11y": "^10.3.5",
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.5",
41
- "@storybook/addon-vitest": "^10.3.5",
42
- "@storybook/builder-vite": "^10.3.5",
43
- "@storybook/vue3-vite": "^10.3.5",
44
- "@tailwindcss/vite": "^4.1.18",
45
- "@types/node": "^25.0.3",
46
- "@types/react": "^19.2.8",
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.3",
49
- "@vitest/coverage-v8": "^4.0.16",
50
- "@vue/eslint-config-typescript": "^14.6.0",
51
- "@vue/test-utils": "^2.4.6",
52
- "@vue/tsconfig": "^0.9.0",
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": "^9.39.2",
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.5",
58
- "eslint-plugin-vue": "^10.6.2",
59
- "globals": "^17.0.0",
60
- "jsdom": "^28.1.0",
61
- "prettier": "^3.7.4",
62
- "prettier-plugin-tailwindcss": "^0.7.2",
63
- "react": "^19.2.3",
64
- "react-dom": "^19.2.3",
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.5",
67
- "typescript-eslint": "^8.52.0",
68
- "vite": "^7.3.1",
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.0",
71
- "vitest": "^4.0.16"
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,166 @@
1
+ <script lang="ts">
2
+ import flagIconsCss from 'flag-icons/css/flag-icons.min.css?inline'
3
+
4
+ if (typeof document !== 'undefined') {
5
+ const style = document.createElement('style')
6
+ style.textContent = flagIconsCss
7
+ document.head.appendChild(style)
8
+ }
9
+
10
+ export interface NexxtCountrySelectProps {
11
+ placeholder?: string
12
+ label?: string
13
+ error?: boolean
14
+ errorMessage?: string
15
+ required?: boolean
16
+ pinnedCountries?: string[]
17
+ }
18
+ </script>
19
+
20
+ <script lang="ts" setup>
21
+ import { ref, computed, nextTick } from 'vue'
22
+ import NexxtFloatingPanel from '../FloatingPanel/FloatingPanel.vue'
23
+ import NexxtIcon from '../Icon/Icon.vue'
24
+ import NexxtInputField from '../InputField/InputField.vue'
25
+ import { countries } from './countries'
26
+
27
+ defineOptions({ name: 'NexxtCountrySelect' })
28
+
29
+ const generateId = () => 'country-select-' + Math.random().toString(36).slice(2, 10)
30
+ const selectId = generateId()
31
+
32
+ const props = withDefaults(defineProps<NexxtCountrySelectProps>(), {
33
+ placeholder: 'Selecteer een land...',
34
+ pinnedCountries: () => [],
35
+ })
36
+
37
+ const model = defineModel<string | null>({ default: null })
38
+ const search = ref('')
39
+ const inputRef = ref<InstanceType<typeof NexxtInputField> | null>(null)
40
+
41
+ const selectedCountry = computed(() => countries.find((c) => c.name === model.value) ?? null)
42
+
43
+ const sortedCountries = computed(() => {
44
+ const pinned = props.pinnedCountries
45
+ .map((code) => countries.find((c) => c.code === code))
46
+ .filter((c) => c !== undefined)
47
+ const pinnedCodes = new Set(props.pinnedCountries)
48
+ const rest = countries
49
+ .filter((c) => !pinnedCodes.has(c.code))
50
+ .sort((a, b) => a.name.localeCompare(b.name, 'nl'))
51
+ return [...pinned, ...rest]
52
+ })
53
+
54
+ const filteredCountries = computed(() => {
55
+ const q = search.value.toLowerCase()
56
+ return q
57
+ ? sortedCountries.value.filter((c) => c.name.toLowerCase().includes(q))
58
+ : sortedCountries.value
59
+ })
60
+
61
+ const select = (name: string, close: () => void) => {
62
+ model.value = name
63
+ search.value = ''
64
+ close()
65
+ }
66
+
67
+ const onOpen = async () => {
68
+ await nextTick()
69
+ inputRef.value?.$el.querySelector('input')?.focus()
70
+ }
71
+ </script>
72
+
73
+ <template>
74
+ <div class="inline-flex flex-col gap-1">
75
+ <label
76
+ v-if="label"
77
+ class="text-color-gray-700 justify-start body-normal text-sm"
78
+ :for="selectId"
79
+ >
80
+ {{ label }}
81
+ <span v-if="required" class="text-brick-500">*</span>
82
+ </label>
83
+
84
+ <NexxtFloatingPanel placement="bottom" match-width @open="onOpen">
85
+ <template #trigger="{ isOpen, toggle }">
86
+ <div
87
+ :id="selectId"
88
+ role="combobox"
89
+ :aria-expanded="isOpen"
90
+ aria-haspopup="listbox"
91
+ tabindex="0"
92
+ 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"
93
+ :class="error ? 'ring-brick-400' : 'ring-gray-200'"
94
+ @click="toggle"
95
+ @keydown.enter.prevent="toggle"
96
+ @keydown.space.prevent="toggle"
97
+ >
98
+ <span
99
+ class="flex h-10 w-full min-w-60 items-center gap-2 pl-3 text-sm"
100
+ :class="selectedCountry ? 'text-gray-900' : 'text-gray-400'"
101
+ >
102
+ <span
103
+ v-if="selectedCountry"
104
+ :class="`fi fi-${selectedCountry.code}`"
105
+ class="shrink-0"
106
+ />
107
+ {{ selectedCountry?.name ?? placeholder }}
108
+ </span>
109
+ <NexxtIcon
110
+ name="chevron-down"
111
+ class="shrink-0 text-gray-400 transition-all duration-200 group-hover:text-cornflower-blue-600"
112
+ :class="{ 'rotate-180': isOpen }"
113
+ />
114
+ </div>
115
+ </template>
116
+
117
+ <template #content="{ close }">
118
+ <div class="overflow-hidden rounded-lg bg-white shadow-xs ring ring-gray-100">
119
+ <div class="border-b border-gray-100 p-2">
120
+ <NexxtInputField
121
+ ref="inputRef"
122
+ v-model="search"
123
+ class="w-full"
124
+ left-icon="magnifying-glass"
125
+ placeholder="Zoeken..."
126
+ />
127
+ </div>
128
+ <ul
129
+ role="listbox"
130
+ 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"
131
+ >
132
+ <li
133
+ v-for="country in filteredCountries"
134
+ :key="country.code"
135
+ role="option"
136
+ :aria-selected="model === country.name"
137
+ 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"
138
+ :class="{ 'font-medium text-cornflower-blue-600': model === country.name }"
139
+ @click="select(country.name, close)"
140
+ >
141
+ <span :class="`fi fi-${country.code}`" class="shrink-0" />
142
+ {{ country.name }}
143
+ <NexxtIcon v-if="model === country.name" name="check" class="ml-auto text-xs" />
144
+ </li>
145
+ <li v-if="filteredCountries.length === 0" class="px-4 py-3 text-sm text-gray-400">
146
+ Geen landen gevonden
147
+ </li>
148
+ </ul>
149
+ </div>
150
+ </template>
151
+ </NexxtFloatingPanel>
152
+
153
+ <Transition
154
+ enter-active-class="transition-all duration-200 ease-out"
155
+ enter-from-class="opacity-0 -translate-y-1"
156
+ enter-to-class="opacity-100 translate-y-0"
157
+ leave-active-class="transition-all duration-150 ease-in"
158
+ leave-from-class="opacity-100 translate-y-0"
159
+ leave-to-class="opacity-0 -translate-y-1"
160
+ >
161
+ <p v-if="error && errorMessage" class="text-sm text-brick-400">
162
+ {{ errorMessage }}
163
+ </p>
164
+ </Transition>
165
+ </div>
166
+ </template>
@@ -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 = index
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
@@ -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'