@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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nexxtmove/ui",
3
3
  "type": "module",
4
- "version": "0.1.67",
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
- "reka-ui": "^2.9.2"
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": "^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,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 = 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'