@nexxtmove/ui 0.1.49 → 0.1.50

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,34 +1,36 @@
1
- import { defineNuxtModule as s, addComponent as c, addTemplate as a } from "@nuxt/kit";
2
- const i = "components/AnimatedNumber/AnimatedNumber.vue", x = "components/Avatar/Avatar.vue", m = "components/Button/Button.vue", u = "components/Calendar/Calendar.vue", p = "components/Checkbox/Checkbox.vue", l = "components/Chip/Chip.vue", d = "components/Combobox/Combobox.vue", r = "components/CustomerJourneyTile/CustomerJourneyTile.vue", v = "components/DatePicker/DatePicker.vue", N = "components/DropdownButton/DropdownButton.vue", T = "components/Header/Header.vue", b = "components/Icon/Icon.vue", C = "components/InfoBlock/InfoBlock.vue", S = "components/InputField/InputField.vue", f = "components/Modal/Modal.vue", h = "components/Pagination/Pagination.vue", M = "components/ProgressBar/ProgressBar.vue", P = "components/SocialIcons/SocialIcons.vue", k = "components/SocialMediaCustomTemplate/SocialMediaCustomTemplate.vue", B = "components/SocialMediaTemplate/SocialMediaTemplate.vue", I = "components/SocialMediaType/SocialMediaType.vue", g = "components/StepperHeader/StepperHeader.vue", y = "components/TabbedContent/TabbedContent.vue", A = "components/Table/Table.vue", D = "components/Tabs/Tabs.vue", H = "components/TimelineEvent/TimelineEvent.vue", w = "components/TimelinePhaseblock/TimelinePhaseblock.vue", E = "components/Tooltip/Tooltip.vue", F = {
1
+ import { defineNuxtModule as c, addComponent as s, addTemplate as a } from "@nuxt/kit";
2
+ const i = "components/AnimatedNumber/AnimatedNumber.vue", x = "components/Avatar/Avatar.vue", m = "components/Button/Button.vue", u = "components/Calendar/Calendar.vue", p = "components/Checkbox/Checkbox.vue", l = "components/Chip/Chip.vue", r = "components/Combobox/Combobox.vue", d = "components/CustomerJourneyTile/CustomerJourneyTile.vue", v = "components/DatePicker/DatePicker.vue", N = "components/DropdownButton/DropdownButton.vue", T = "components/Header/Header.vue", b = "components/Icon/Icon.vue", C = "components/InfoBlock/InfoBlock.vue", S = "components/InputField/InputField.vue", P = "components/Modal/Modal.vue", I = "components/Pagination/Pagination.vue", f = "components/PresenceIndicator/PresenceIndicator.vue", h = "components/ProgressBar/ProgressBar.vue", M = "components/SocialIcons/SocialIcons.vue", k = "components/SocialMediaCustomTemplate/SocialMediaCustomTemplate.vue", B = "components/SocialMediaTemplate/SocialMediaTemplate.vue", g = "components/SocialMediaType/SocialMediaType.vue", y = "components/Source/Source.vue", A = "components/StepperHeader/StepperHeader.vue", D = "components/TabbedContent/TabbedContent.vue", H = "components/Table/Table.vue", w = "components/Tabs/Tabs.vue", E = "components/TimelineEvent/TimelineEvent.vue", F = "components/TimelinePhaseblock/TimelinePhaseblock.vue", J = "components/Tooltip/Tooltip.vue", j = {
3
3
  NexxtAnimatedNumber: i,
4
4
  NexxtAvatar: x,
5
5
  NexxtButton: m,
6
6
  NexxtCalendar: u,
7
7
  NexxtCheckbox: p,
8
8
  NexxtChip: l,
9
- NexxtCombobox: d,
10
- NexxtCustomerJourneyTile: r,
9
+ NexxtCombobox: r,
10
+ NexxtCustomerJourneyTile: d,
11
11
  NexxtDatePicker: v,
12
12
  NexxtDropdownButton: N,
13
13
  NexxtHeader: T,
14
14
  NexxtIcon: b,
15
15
  NexxtInfoBlock: C,
16
16
  NexxtInputField: S,
17
- NexxtModal: f,
18
- NexxtPagination: h,
19
- NexxtProgressBar: M,
20
- NexxtSocialIcons: P,
17
+ NexxtModal: P,
18
+ NexxtPagination: I,
19
+ NexxtPresenceIndicator: f,
20
+ NexxtProgressBar: h,
21
+ NexxtSocialIcons: M,
21
22
  NexxtSocialMediaCustomTemplate: k,
22
23
  NexxtSocialMediaTemplate: B,
23
- NexxtSocialMediaType: I,
24
- NexxtStepperHeader: g,
25
- NexxtTabbedContent: y,
26
- NexxtTable: A,
27
- NexxtTabs: D,
28
- NexxtTimelineEvent: H,
29
- NexxtTimelinePhaseblock: w,
30
- NexxtTooltip: E
31
- }, j = s({
24
+ NexxtSocialMediaType: g,
25
+ NexxtSource: y,
26
+ NexxtStepperHeader: A,
27
+ NexxtTabbedContent: D,
28
+ NexxtTable: H,
29
+ NexxtTabs: w,
30
+ NexxtTimelineEvent: E,
31
+ NexxtTimelinePhaseblock: F,
32
+ NexxtTooltip: J
33
+ }, K = c({
32
34
  meta: {
33
35
  name: "@nexxtmove/ui",
34
36
  configKey: "nexxtmoveUi",
@@ -40,8 +42,8 @@ const i = "components/AnimatedNumber/AnimatedNumber.vue", x = "components/Avatar
40
42
  addCSS: !0
41
43
  },
42
44
  setup(e, o) {
43
- for (const [t, n] of Object.entries(F))
44
- c({
45
+ for (const [t, n] of Object.entries(j))
46
+ s({
45
47
  name: t,
46
48
  export: "default",
47
49
  filePath: `@nexxtmove/ui/${n}`
@@ -59,5 +61,5 @@ const i = "components/AnimatedNumber/AnimatedNumber.vue", x = "components/Avatar
59
61
  }
60
62
  });
61
63
  export {
62
- j as default
64
+ K as default
63
65
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nexxtmove/ui",
3
3
  "type": "module",
4
- "version": "0.1.49",
4
+ "version": "0.1.50",
5
5
  "exports": {
6
6
  ".": {
7
7
  "types": "./dist/index.d.ts",
@@ -113,7 +113,7 @@ const transitionClasses = computed(() => {
113
113
  <Transition v-bind="transitionClasses">
114
114
  <div
115
115
  v-if="isOpen"
116
- class="absolute top-full z-10 mt-2.5 min-w-80 rounded-md border border-gray-200 bg-white whitespace-nowrap"
116
+ class="absolute top-full z-10 mt-2.5 min-w-80 rounded-lg border border-gray-200 bg-white whitespace-nowrap"
117
117
  :class="placement === 'right' ? 'right-0' : 'left-0'"
118
118
  >
119
119
  <div class="p-2">
@@ -119,7 +119,7 @@ const componentClasses = computed(() => {
119
119
  }
120
120
 
121
121
  if (variant === 'secondary') {
122
- return 'bg-button-bg-secondary-default text-button-text-secondary-default border-button-border-secondary-default border border-solid'
122
+ return 'bg-button-bg-secondary-default text-button-text-secondary-default border-button-border-secondary-default border border-solid hover:border-button-border-secondary-hover'
123
123
  }
124
124
 
125
125
  return ''
@@ -157,7 +157,7 @@ const transitionClasses = computed(() => {
157
157
  class="relative inline-flex flex-col"
158
158
  :class="placement === 'right' ? 'items-end' : 'items-start'"
159
159
  >
160
- <div class="inline-flex items-center overflow-hidden rounded-md" :class="componentClasses">
160
+ <div class="inline-flex items-center overflow-hidden rounded-lg" :class="componentClasses">
161
161
  <template v-if="!iconOnly">
162
162
  <button
163
163
  class="flex cursor-pointer items-center gap-2 px-4 py-2 transition-colors duration-200"
@@ -194,7 +194,7 @@ const transitionClasses = computed(() => {
194
194
  <div
195
195
  v-if="isOpen"
196
196
  role="menu"
197
- class="absolute top-full z-10 mt-2.5 min-w-full rounded-md border border-gray-200 bg-white whitespace-nowrap"
197
+ class="absolute top-full z-10 mt-2.5 min-w-full rounded-lg border border-gray-200 bg-white whitespace-nowrap"
198
198
  :class="placement === 'right' ? 'right-0' : 'left-0'"
199
199
  >
200
200
  <template v-for="(group, groupIndex) in groupedOptions" :key="group.title || groupIndex">
@@ -24,13 +24,16 @@ const {
24
24
  <template>
25
25
  <div class="header flex items-center" :class="$slots.center ? 'grid grid-cols-3' : ''">
26
26
  <div class="flex max-w-full items-center justify-start gap-4">
27
- <Button
28
- v-if="backButtonText"
29
- class="shrink-0"
30
- variant="secondary"
31
- @click="backButtonAction"
32
- >{{ backButtonText }}</Button
33
- >
27
+ <slot name="back-button">
28
+ <Button
29
+ v-if="backButtonText && backButtonAction && !$slots['back-button']"
30
+ class="shrink-0"
31
+ variant="secondary"
32
+ @click="backButtonAction"
33
+ >
34
+ {{ backButtonText }}
35
+ </Button>
36
+ </slot>
34
37
  <span class="block truncate text-sapphire-500" :class="headingType">
35
38
  {{ title }}
36
39
  </span>
@@ -8,7 +8,7 @@ defineOptions({
8
8
  name: 'NexxtInputField',
9
9
  })
10
10
 
11
- interface NexxtInputFieldProps {
11
+ export interface NexxtInputFieldProps {
12
12
  placeholder?: string
13
13
  label?: string
14
14
  error?: boolean
@@ -35,8 +35,8 @@ const modelValue = defineModel<string>()
35
35
  </label>
36
36
 
37
37
  <div
38
- class="flex items-center gap-2 rounded-sm px-3 ring transition-colors ease-out focus-within:ring-cornflower-blue-500"
39
- :class="error ? 'ring-brick-400' : 'ring-gray-200'"
38
+ class="flex items-center gap-2 overflow-hidden rounded-lg ring transition-colors ease-out focus-within:ring-cornflower-blue-500"
39
+ :class="[error ? 'ring-brick-400' : 'ring-gray-200', { 'px-3': leftIcon }]"
40
40
  >
41
41
  <span v-if="leftIcon" class="flex items-center">
42
42
  <Icon :name="leftIcon" />
@@ -47,7 +47,8 @@ const modelValue = defineModel<string>()
47
47
  v-model="modelValue"
48
48
  :placeholder="placeholder"
49
49
  v-bind="$attrs"
50
- class="h-10 min-w-60 bg-transparent text-sm text-gray-900 placeholder-gray-400 focus:outline-none"
50
+ class="bg-transparant h-10 w-full min-w-60 text-sm text-gray-900 placeholder-gray-400 focus:outline-none"
51
+ :class="{ 'pl-3': !leftIcon, 'pr-3': !rightIcon }"
51
52
  />
52
53
  <slot name="right">
53
54
  <span v-if="rightIcon" class="flex items-center">
@@ -0,0 +1,32 @@
1
+ <script setup lang="ts">
2
+ export interface NexxtPresenceIndicatorProps {
3
+ online?: boolean
4
+ }
5
+
6
+ defineOptions({
7
+ name: 'NexxtPresenceIndicator',
8
+ })
9
+
10
+ const { online = false } = defineProps<NexxtPresenceIndicatorProps>()
11
+ </script>
12
+
13
+ <template>
14
+ <span
15
+ class="inline-flex h-6 items-center gap-1.5 rounded-sm px-2.5 extra-small-semibold"
16
+ :class="online ? 'bg-green-100 text-green-600' : 'bg-gray-100 text-gray-700'"
17
+ :aria-label="online ? 'Online' : 'Offline'"
18
+ role="status"
19
+ >
20
+ <span class="relative flex h-1.5 w-1.5">
21
+ <span
22
+ v-if="online"
23
+ class="absolute inline-flex h-full w-full animate-ping rounded-full bg-green-400 opacity-75"
24
+ />
25
+ <i
26
+ class="relative block h-1.5 w-1.5 rounded-full"
27
+ :class="online ? 'bg-green-500' : 'bg-gray-700'"
28
+ />
29
+ </span>
30
+ {{ online ? 'Actief' : 'Inactief' }}
31
+ </span>
32
+ </template>
@@ -0,0 +1,91 @@
1
+ <script lang="ts">
2
+ import imgBricr from '../../assets/images/source/bricr.png'
3
+ import imgKolibri from '../../assets/images/source/kolibri.png'
4
+ import imgKolibriAppExchange from '../../assets/images/source/kolibri_app_exchange.png'
5
+ import imgRealworks from '../../assets/images/source/realworks.png'
6
+ import imgRealworksAgendaApi from '../../assets/images/source/realworks_agenda_api.png'
7
+ import imgRealworksApi from '../../assets/images/source/realworks_api.png'
8
+ import imgZapier from '../../assets/images/source/zapier.png'
9
+
10
+ export const SOURCE_MAP = {
11
+ realworks: 'Realworks',
12
+ realworks_agenda_api: 'Realworks Agenda API',
13
+ realworks_api: 'Realworks API',
14
+ kolibri: 'Kolibri',
15
+ kolibri_app_exchange: 'Kolibri App Exchange',
16
+ zapier: 'Zapier',
17
+ bricr: 'Bricr',
18
+ website: 'Website',
19
+ manual: 'Handmatig ingevoerd',
20
+ tracker: 'Tracker',
21
+ read_more: 'Lees Meer',
22
+ planner: 'Planner',
23
+ forms: 'Forms',
24
+ dossier_data: 'Dossier Data',
25
+ } as const
26
+
27
+ interface SourceImage {
28
+ url: string
29
+ height: string
30
+ }
31
+
32
+ const SOURCE_IMAGES: Partial<Record<keyof typeof SOURCE_MAP, SourceImage>> = {
33
+ bricr: { url: imgBricr, height: 'h-5' },
34
+ kolibri: { url: imgKolibri, height: 'h-6' },
35
+ kolibri_app_exchange: { url: imgKolibriAppExchange, height: 'h-6' },
36
+ realworks: { url: imgRealworks, height: 'h-4' },
37
+ realworks_agenda_api: { url: imgRealworksAgendaApi, height: 'h-4' },
38
+ realworks_api: { url: imgRealworksApi, height: 'h-4' },
39
+ zapier: { url: imgZapier, height: 'h-5' },
40
+ }
41
+
42
+ interface SourceIcon {
43
+ icon: string
44
+ bg: string
45
+ }
46
+
47
+ const SOUCE_ICONS: Partial<Record<keyof typeof SOURCE_MAP, SourceIcon>> = {
48
+ website: { icon: 'earth-europe', bg: 'bg-cornflower-blue-500' },
49
+ manual: { icon: 'money-check-pen', bg: 'bg-orange-500' },
50
+ tracker: { icon: 'eye', bg: 'bg-purple-500' },
51
+ read_more: { icon: 'file-export', bg: 'bg-rose-500' },
52
+ planner: { icon: 'calendar-days', bg: 'bg-rose-500' },
53
+ forms: { icon: 'square-list', bg: 'bg-cornflower-blue-500' },
54
+ dossier_data: { icon: 'file', bg: 'bg-orange-500' },
55
+ }
56
+ </script>
57
+
58
+ <script lang="ts" setup>
59
+ import { computed } from 'vue'
60
+ import NexxtIcon from '../Icon/Icon.vue'
61
+
62
+ export interface NexxtSourceProps {
63
+ source: keyof typeof SOURCE_MAP
64
+ }
65
+
66
+ defineOptions({ name: 'NexxtSource' })
67
+
68
+ const props = defineProps<NexxtSourceProps>()
69
+
70
+ const image = computed(() => SOURCE_IMAGES[props.source])
71
+ const label = computed(() => SOURCE_MAP[props.source])
72
+ const sourceIcon = computed(() => SOUCE_ICONS[props.source])
73
+ const icon = computed(() => sourceIcon.value?.icon as InstanceType<typeof NexxtIcon>['name'])
74
+ const iconBg = computed(() => sourceIcon.value?.bg)
75
+ </script>
76
+
77
+ <template>
78
+ <div class="flex h-7 items-center gap-2.5">
79
+ <img v-if="image" :src="image.url" :alt="label" class="grow-0" :class="image.height" />
80
+ <template v-else>
81
+ <span
82
+ v-if="icon"
83
+ class="flex aspect-square grow-0 items-center justify-center rounded-full p-1 text-sm text-white"
84
+ :class="iconBg"
85
+ >
86
+ <NexxtIcon :name="icon" />
87
+ </span>
88
+ <span>{{ label }}</span>
89
+ </template>
90
+ </div>
91
+ </template>
@@ -30,9 +30,9 @@ const transitionProps = computed(() =>
30
30
  enterActiveClass: 'transition-all duration-300 ease-in-out',
31
31
  leaveActiveClass: 'transition-all duration-300 ease-in-out absolute inset-0',
32
32
  enterFromClass:
33
- direction.value === 'forward' ? 'translate-x-50 opacity-0' : '-translate-x-10 opacity-0',
33
+ direction.value === 'forward' ? '-translate-x-10 opacity-0' : 'translate-x-10 opacity-0',
34
34
  leaveToClass:
35
- direction.value === 'forward' ? '-translate-x-50 opacity-0' : 'translate-x-10 opacity-0',
35
+ direction.value === 'forward' ? 'translate-x-10 opacity-0' : '-translate-x-10 opacity-0',
36
36
  }
37
37
  : { mode: 'out-in' as const },
38
38
  )
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import { ref, watch, onMounted } from 'vue'
2
+ import { ref, watch, onMounted, nextTick } from 'vue'
3
3
 
4
4
  interface NexxtTabs {
5
5
  tabs: string[]
@@ -14,19 +14,28 @@ const props = defineProps<NexxtTabs>()
14
14
 
15
15
  const selected = defineModel({ type: String, default: '' })
16
16
 
17
+ const containerRef = ref<HTMLElement | null>(null)
17
18
  const buttonRefs = ref<HTMLButtonElement[]>([])
18
19
  const sliderStyle = ref({ width: '0px', transform: 'translateX(0px)' })
20
+ const clipPath = ref('inset(0 100% 0 0 round 9999px)')
21
+ const ready = ref(false)
19
22
 
20
- const updateSlider = () => {
23
+ const updateSlider = async () => {
24
+ await nextTick()
21
25
  const index = props.tabs.indexOf(selected.value)
22
26
  const button = buttonRefs.value[index]
27
+ if (!button || !containerRef.value) return
23
28
 
24
- if (!button) return
29
+ const left = button.offsetLeft
30
+ const width = button.offsetWidth
31
+ const right = containerRef.value.offsetWidth - left - width
25
32
 
26
33
  sliderStyle.value = {
27
- width: `${button.offsetWidth}px`,
28
- transform: `translateX(${button.offsetLeft}px)`,
34
+ width: `${width}px`,
35
+ transform: `translateX(${left}px)`,
29
36
  }
37
+
38
+ clipPath.value = `inset(0 ${right}px 0 ${left}px round 9999px)`
30
39
  }
31
40
 
32
41
  const onKeydown = (event: KeyboardEvent, index: number) => {
@@ -42,25 +51,32 @@ const onKeydown = (event: KeyboardEvent, index: number) => {
42
51
  buttonRefs.value[next]?.focus()
43
52
  }
44
53
 
45
- watch(selected, () => updateSlider())
54
+ watch(selected, async () => await updateSlider())
46
55
 
47
56
  onMounted(async () => {
48
57
  await document.fonts.ready
49
- updateSlider()
58
+ await updateSlider()
59
+ await nextTick()
60
+ ready.value = true
50
61
  })
51
62
  </script>
52
63
 
53
64
  <template>
54
65
  <div
66
+ ref="containerRef"
55
67
  role="tablist"
56
68
  :aria-label="tablistLabel"
57
- class="relative flex rounded-full border-4 border-white bg-white"
69
+ class="relative isolate flex rounded-full border-4 border-white bg-white"
58
70
  >
71
+ <!-- slider pill -->
59
72
  <div
60
73
  aria-hidden="true"
61
- class="absolute h-9 rounded-full bg-cornflower-blue-500 transition-all duration-300 ease-in-out"
74
+ class="absolute h-9 rounded-full bg-cornflower-blue-500"
75
+ :class="ready ? 'transition-all duration-500 ease-[cubic-bezier(0.34,1.2,0.64,1)]' : ''"
62
76
  :style="sliderStyle"
63
77
  />
78
+
79
+ <!-- dark text buttons -->
64
80
  <button
65
81
  v-for="(tab, index) in tabs"
66
82
  :key="tab"
@@ -68,12 +84,30 @@ onMounted(async () => {
68
84
  role="tab"
69
85
  :aria-selected="selected === tab"
70
86
  :tabindex="selected === tab ? 0 : -1"
71
- class="relative z-10 h-9 cursor-pointer rounded-full px-4 transition-colors delay-100 duration-150"
72
- :class="{ 'text-white': selected === tab }"
87
+ class="relative h-9 cursor-pointer rounded-full px-4 text-sm text-gray-950 transition-none"
88
+ :class="selected === tab ? 'z-10' : 'z-30'"
73
89
  @click="selected = tab"
74
90
  @keydown="onKeydown($event, index)"
75
91
  >
76
92
  {{ tab }}
77
93
  </button>
94
+
95
+ <!-- white text overlay, clipped to slider bounds -->
96
+ <div
97
+ aria-hidden="true"
98
+ class="pointer-events-none absolute inset-0 z-20 flex"
99
+ :class="
100
+ ready ? 'transition-[clip-path] duration-500 ease-[cubic-bezier(0.34,1.2,0.64,1)]' : ''
101
+ "
102
+ :style="{ clipPath }"
103
+ >
104
+ <span
105
+ v-for="tab in tabs"
106
+ :key="tab"
107
+ class="flex h-9 items-center rounded-full px-4 text-sm text-white"
108
+ >
109
+ {{ tab }}
110
+ </span>
111
+ </div>
78
112
  </div>
79
113
  </template>
@@ -15,11 +15,13 @@
15
15
  "NexxtInputField": "components/InputField/InputField.vue",
16
16
  "NexxtModal": "components/Modal/Modal.vue",
17
17
  "NexxtPagination": "components/Pagination/Pagination.vue",
18
+ "NexxtPresenceIndicator": "components/PresenceIndicator/PresenceIndicator.vue",
18
19
  "NexxtProgressBar": "components/ProgressBar/ProgressBar.vue",
19
20
  "NexxtSocialIcons": "components/SocialIcons/SocialIcons.vue",
20
21
  "NexxtSocialMediaCustomTemplate": "components/SocialMediaCustomTemplate/SocialMediaCustomTemplate.vue",
21
22
  "NexxtSocialMediaTemplate": "components/SocialMediaTemplate/SocialMediaTemplate.vue",
22
23
  "NexxtSocialMediaType": "components/SocialMediaType/SocialMediaType.vue",
24
+ "NexxtSource": "components/Source/Source.vue",
23
25
  "NexxtStepperHeader": "components/StepperHeader/StepperHeader.vue",
24
26
  "NexxtTabbedContent": "components/TabbedContent/TabbedContent.vue",
25
27
  "NexxtTable": "components/Table/Table.vue",
package/src/index.ts CHANGED
@@ -15,11 +15,13 @@ export { default as NexxtInfoBlock } from './components/InfoBlock/InfoBlock.vue'
15
15
  export { default as NexxtInputField } from './components/InputField/InputField.vue'
16
16
  export { default as NexxtModal } from './components/Modal/Modal.vue'
17
17
  export { default as NexxtPagination } from './components/Pagination/Pagination.vue'
18
+ export { default as NexxtPresenceIndicator } from './components/PresenceIndicator/PresenceIndicator.vue'
18
19
  export { default as NexxtProgressBar } from './components/ProgressBar/ProgressBar.vue'
19
20
  export { default as NexxtSocialIcons } from './components/SocialIcons/SocialIcons.vue'
20
21
  export { default as NexxtSocialMediaCustomTemplate } from './components/SocialMediaCustomTemplate/SocialMediaCustomTemplate.vue'
21
22
  export { default as NexxtSocialMediaTemplate } from './components/SocialMediaTemplate/SocialMediaTemplate.vue'
22
23
  export { default as NexxtSocialMediaType } from './components/SocialMediaType/SocialMediaType.vue'
24
+ export { default as NexxtSource, SOURCE_MAP } from './components/Source/Source.vue'
23
25
  export { default as NexxtStepperHeader } from './components/StepperHeader/StepperHeader.vue'
24
26
  export { default as NexxtTabbedContent } from './components/TabbedContent/TabbedContent.vue'
25
27
  export { default as NexxtTable } from './components/Table/Table.vue'