@nexxtmove/ui 1.8.0 → 1.8.1

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.
Files changed (147) hide show
  1. package/dist/components/{Announcement → molecules/Announcement}/Announcement.vue.d.ts +1 -1
  2. package/dist/components/{InfoBlock → molecules/InfoBlock}/InfoBlock.vue.d.ts +1 -1
  3. package/dist/components/{InputField → molecules/InputField}/InputField.vue.d.ts +1 -1
  4. package/dist/components/{InputSelect → molecules/InputSelect}/InputSelect.vue.d.ts +1 -1
  5. package/dist/components/{ModalFooter → molecules/ModalFooter}/ModalFooter.vue.d.ts +1 -1
  6. package/dist/components/{Select → molecules/Select}/Select.vue.d.ts +1 -1
  7. package/dist/components/{SidebarMenuItem → molecules/SidebarMenuItem}/SidebarMenuItem.vue.d.ts +1 -1
  8. package/dist/components/{Tabs → molecules/Tabs}/Tabs.vue.d.ts +1 -1
  9. package/dist/components/{DropdownButton → organisms/DropdownButton}/DropdownButton.vue.d.ts +1 -1
  10. package/dist/components/{TimelinePhaseblock → organisms/TimelinePhaseblock}/TimelinePhaseblock.vue.d.ts +1 -1
  11. package/dist/components/{TimelineTrack → organisms/TimelineTrack}/TimelineTrack.vue.d.ts +1 -1
  12. package/dist/components/{Toaster → organisms/Toaster}/Toaster.vue.d.ts +1 -1
  13. package/dist/index.d.ts +64 -64
  14. package/dist/index.js +57 -51
  15. package/dist/nuxt.js +59 -59
  16. package/dist/ui.css +1 -1
  17. package/package.json +1 -1
  18. package/src/components/{Announcement → molecules/Announcement}/Announcement.vue +1 -1
  19. package/src/components/{CustomerJourneyTile → molecules/CustomerJourneyTile}/CustomerJourneyTile.vue +2 -2
  20. package/src/components/{InfoBlock → molecules/InfoBlock}/InfoBlock.vue +1 -1
  21. package/src/components/{InputField → molecules/InputField}/InputField.vue +11 -2
  22. package/src/components/{InputSelect → molecules/InputSelect}/InputSelect.vue +13 -4
  23. package/src/components/{ModalFooter → molecules/ModalFooter}/ModalFooter.vue +1 -1
  24. package/src/components/{Pagination → molecules/Pagination}/Pagination.vue +1 -1
  25. package/src/components/{PropertyCard → molecules/PropertyCard}/PropertyCard.vue +4 -4
  26. package/src/components/{Select → molecules/Select}/Select.vue +3 -3
  27. package/src/components/{SidebarMenuItem → molecules/SidebarMenuItem}/SidebarMenuItem.vue +1 -1
  28. package/src/components/{SkeletonPropertyCard → molecules/SkeletonPropertyCard}/SkeletonPropertyCard.vue +1 -1
  29. package/src/components/{SocialIcons → molecules/SocialIcons}/SocialIcons.vue +1 -1
  30. package/src/components/{SocialMediaCustomTemplate → molecules/SocialMediaCustomTemplate}/SocialMediaCustomTemplate.vue +2 -2
  31. package/src/components/{SocialMediaType → molecules/SocialMediaType}/SocialMediaType.vue +2 -2
  32. package/src/components/{Source → molecules/Source}/Source.vue +8 -8
  33. package/src/components/{TabbedContent → molecules/TabbedContent}/TabbedContent.vue +14 -5
  34. package/src/components/{Tabs → molecules/Tabs}/Tabs.vue +1 -1
  35. package/src/components/{TemplateCard → molecules/TemplateCard}/TemplateCard.vue +2 -2
  36. package/src/components/{Textarea → molecules/Textarea}/Textarea.vue +8 -1
  37. package/src/components/{TimelineEvent → molecules/TimelineEvent}/TimelineEvent.vue +1 -1
  38. package/src/components/{TimelineLanes → molecules/TimelineLanes}/TimelineLanes.vue +2 -2
  39. package/src/components/{Toast → molecules/Toast}/Toast.vue +1 -1
  40. package/src/components/{ToggleGroup → molecules/ToggleGroup}/ToggleGroup.vue +2 -2
  41. package/src/components/{Calendar → organisms/Calendar}/_CalendarHeader.vue +1 -1
  42. package/src/components/{Calendar → organisms/Calendar}/_CalendarTimePicker.vue +1 -1
  43. package/src/components/{ColorPicker → organisms/ColorPicker}/ColorPicker.vue +2 -2
  44. package/src/components/{Combobox → organisms/Combobox}/Combobox.vue +3 -3
  45. package/src/components/{ComboboxPanel → organisms/ComboboxPanel}/ComboboxPanel.vue +3 -3
  46. package/src/components/{CountrySelect → organisms/CountrySelect}/CountrySelect.vue +3 -3
  47. package/src/components/{DatePicker → organisms/DatePicker}/DatePicker.vue +2 -2
  48. package/src/components/{DropdownButton → organisms/DropdownButton}/DropdownButton.vue +3 -3
  49. package/src/components/{Header → organisms/Header}/Header.vue +1 -1
  50. package/src/components/{Modal → organisms/Modal}/Modal.vue +1 -1
  51. package/src/components/{ProgressBar → organisms/ProgressBar}/ProgressBar.vue +3 -3
  52. package/src/components/{ReferenceCard → organisms/ReferenceCard}/ReferenceCard.vue +4 -4
  53. package/src/components/{SocialMediaTemplate → organisms/SocialMediaTemplate}/SocialMediaTemplate.vue +1 -1
  54. package/src/components/{Table → organisms/Table}/Table.vue +2 -2
  55. package/src/components/{TimelinePhaseblock → organisms/TimelinePhaseblock}/TimelinePhaseblock.vue +4 -4
  56. package/src/components/{TimelineTrack → organisms/TimelineTrack}/TimelineTrack.vue +3 -3
  57. package/src/components/{Toaster → organisms/Toaster}/Toaster.vue +2 -2
  58. package/src/components/{VideoPlayer → organisms/VideoPlayer}/VideoPlayer.vue +1 -1
  59. package/src/components.json +59 -59
  60. package/src/index.ts +64 -64
  61. /package/dist/components/{AnimatedNumber → atoms/AnimatedNumber}/AnimatedNumber.vue.d.ts +0 -0
  62. /package/dist/components/{Avatar → atoms/Avatar}/Avatar.vue.d.ts +0 -0
  63. /package/dist/components/{Button → atoms/Button}/Button.vue.d.ts +0 -0
  64. /package/dist/components/{Card → atoms/Card}/Card.vue.d.ts +0 -0
  65. /package/dist/components/{Checkbox → atoms/Checkbox}/Checkbox.vue.d.ts +0 -0
  66. /package/dist/components/{Chip → atoms/Chip}/Chip.vue.d.ts +0 -0
  67. /package/dist/components/{EnergyLabel → atoms/EnergyLabel}/EnergyLabel.vue.d.ts +0 -0
  68. /package/dist/components/{FloatingPanel → atoms/FloatingPanel}/FloatingPanel.vue.d.ts +0 -0
  69. /package/dist/components/{Icon → atoms/Icon}/Icon.vue.d.ts +0 -0
  70. /package/dist/components/{Icon → atoms/Icon}/brandIconNames.d.ts +0 -0
  71. /package/dist/components/{Icon → atoms/Icon}/customIcons.d.ts +0 -0
  72. /package/dist/components/{PresenceIndicator → atoms/PresenceIndicator}/PresenceIndicator.vue.d.ts +0 -0
  73. /package/dist/components/{PropertyListing → atoms/PropertyListing}/PropertyListing.vue.d.ts +0 -0
  74. /package/dist/components/{Skeleton → atoms/Skeleton}/Skeleton.vue.d.ts +0 -0
  75. /package/dist/components/{Slider → atoms/Slider}/Slider.vue.d.ts +0 -0
  76. /package/dist/components/{Squircle → atoms/Squircle}/Squircle.vue.d.ts +0 -0
  77. /package/dist/components/{Switch → atoms/Switch}/Switch.vue.d.ts +0 -0
  78. /package/dist/components/{Tooltip → atoms/Tooltip}/Tooltip.vue.d.ts +0 -0
  79. /package/dist/components/{ContactInfoCard → molecules/ContactInfoCard}/ContactInfoCard.vue.d.ts +0 -0
  80. /package/dist/components/{CustomerJourneyTile → molecules/CustomerJourneyTile}/CustomerJourneyTile.vue.d.ts +0 -0
  81. /package/dist/components/{DoughnutChart → molecules/DoughnutChart}/DoughnutChart.vue.d.ts +0 -0
  82. /package/dist/components/{Pagination → molecules/Pagination}/Pagination.vue.d.ts +0 -0
  83. /package/dist/components/{PropertyCard → molecules/PropertyCard}/PropertyCard.vue.d.ts +0 -0
  84. /package/dist/components/{SkeletonPropertyCard → molecules/SkeletonPropertyCard}/SkeletonPropertyCard.vue.d.ts +0 -0
  85. /package/dist/components/{SocialIcons → molecules/SocialIcons}/SocialIcons.vue.d.ts +0 -0
  86. /package/dist/components/{SocialMediaCustomTemplate → molecules/SocialMediaCustomTemplate}/SocialMediaCustomTemplate.vue.d.ts +0 -0
  87. /package/dist/components/{SocialMediaType → molecules/SocialMediaType}/SocialMediaType.vue.d.ts +0 -0
  88. /package/dist/components/{Source → molecules/Source}/Source.vue.d.ts +0 -0
  89. /package/dist/components/{TabbedContent → molecules/TabbedContent}/TabbedContent.vue.d.ts +0 -0
  90. /package/dist/components/{TemplateCard → molecules/TemplateCard}/TemplateCard.vue.d.ts +0 -0
  91. /package/dist/components/{Textarea → molecules/Textarea}/Textarea.vue.d.ts +0 -0
  92. /package/dist/components/{TimelineEvent → molecules/TimelineEvent}/TimelineEvent.vue.d.ts +0 -0
  93. /package/dist/components/{TimelineEvent → molecules/TimelineEvent}/TimelineTypes.d.ts +0 -0
  94. /package/dist/components/{TimelineLanes → molecules/TimelineLanes}/TimelineLanes.vue.d.ts +0 -0
  95. /package/dist/components/{Toast → molecules/Toast}/Toast.vue.d.ts +0 -0
  96. /package/dist/components/{ToggleGroup → molecules/ToggleGroup}/ToggleGroup.vue.d.ts +0 -0
  97. /package/dist/components/{Calendar → organisms/Calendar}/Calendar.vue.d.ts +0 -0
  98. /package/dist/components/{Calendar → organisms/Calendar}/_CalendarDayView.vue.d.ts +0 -0
  99. /package/dist/components/{Calendar → organisms/Calendar}/_CalendarHeader.vue.d.ts +0 -0
  100. /package/dist/components/{Calendar → organisms/Calendar}/_CalendarMonthView.vue.d.ts +0 -0
  101. /package/dist/components/{Calendar → organisms/Calendar}/_CalendarTimePicker.vue.d.ts +0 -0
  102. /package/dist/components/{Calendar → organisms/Calendar}/_CalendarYearView.vue.d.ts +0 -0
  103. /package/dist/components/{Calendar → organisms/Calendar}/calendar.types.d.ts +0 -0
  104. /package/dist/components/{ColorPicker → organisms/ColorPicker}/ColorPicker.vue.d.ts +0 -0
  105. /package/dist/components/{Combobox → organisms/Combobox}/Combobox.vue.d.ts +0 -0
  106. /package/dist/components/{ComboboxPanel → organisms/ComboboxPanel}/ComboboxPanel.vue.d.ts +0 -0
  107. /package/dist/components/{ComboboxPanel → organisms/ComboboxPanel}/combobox-types.d.ts +0 -0
  108. /package/dist/components/{CountrySelect → organisms/CountrySelect}/CountrySelect.vue.d.ts +0 -0
  109. /package/dist/components/{CountrySelect → organisms/CountrySelect}/countries.d.ts +0 -0
  110. /package/dist/components/{DatePicker → organisms/DatePicker}/DatePicker.vue.d.ts +0 -0
  111. /package/dist/components/{Header → organisms/Header}/Header.vue.d.ts +0 -0
  112. /package/dist/components/{Modal → organisms/Modal}/Modal.vue.d.ts +0 -0
  113. /package/dist/components/{ProgressBar → organisms/ProgressBar}/ProgressBar.vue.d.ts +0 -0
  114. /package/dist/components/{ReferenceCard → organisms/ReferenceCard}/ReferenceCard.vue.d.ts +0 -0
  115. /package/dist/components/{SocialMediaTemplate → organisms/SocialMediaTemplate}/SocialMediaTemplate.vue.d.ts +0 -0
  116. /package/dist/components/{StepperHeader → organisms/StepperHeader}/StepperHeader.vue.d.ts +0 -0
  117. /package/dist/components/{Table → organisms/Table}/Table.vue.d.ts +0 -0
  118. /package/dist/components/{VideoPlayer → organisms/VideoPlayer}/VideoPlayer.vue.d.ts +0 -0
  119. /package/src/components/{AnimatedNumber → atoms/AnimatedNumber}/AnimatedNumber.vue +0 -0
  120. /package/src/components/{Avatar → atoms/Avatar}/Avatar.vue +0 -0
  121. /package/src/components/{Button → atoms/Button}/Button.vue +0 -0
  122. /package/src/components/{Card → atoms/Card}/Card.vue +0 -0
  123. /package/src/components/{Checkbox → atoms/Checkbox}/Checkbox.vue +0 -0
  124. /package/src/components/{Chip → atoms/Chip}/Chip.vue +0 -0
  125. /package/src/components/{EnergyLabel → atoms/EnergyLabel}/EnergyLabel.vue +0 -0
  126. /package/src/components/{FloatingPanel → atoms/FloatingPanel}/FloatingPanel.vue +0 -0
  127. /package/src/components/{Icon → atoms/Icon}/Icon.vue +0 -0
  128. /package/src/components/{Icon → atoms/Icon}/brandIconNames.ts +0 -0
  129. /package/src/components/{Icon → atoms/Icon}/customIcons.ts +0 -0
  130. /package/src/components/{PresenceIndicator → atoms/PresenceIndicator}/PresenceIndicator.vue +0 -0
  131. /package/src/components/{PropertyListing → atoms/PropertyListing}/PropertyListing.vue +0 -0
  132. /package/src/components/{Skeleton → atoms/Skeleton}/Skeleton.vue +0 -0
  133. /package/src/components/{Slider → atoms/Slider}/Slider.vue +0 -0
  134. /package/src/components/{Squircle → atoms/Squircle}/Squircle.vue +0 -0
  135. /package/src/components/{Switch → atoms/Switch}/Switch.vue +0 -0
  136. /package/src/components/{Tooltip → atoms/Tooltip}/Tooltip.vue +0 -0
  137. /package/src/components/{ContactInfoCard → molecules/ContactInfoCard}/ContactInfoCard.vue +0 -0
  138. /package/src/components/{DoughnutChart → molecules/DoughnutChart}/DoughnutChart.vue +0 -0
  139. /package/src/components/{TimelineEvent → molecules/TimelineEvent}/TimelineTypes.ts +0 -0
  140. /package/src/components/{Calendar → organisms/Calendar}/Calendar.vue +0 -0
  141. /package/src/components/{Calendar → organisms/Calendar}/_CalendarDayView.vue +0 -0
  142. /package/src/components/{Calendar → organisms/Calendar}/_CalendarMonthView.vue +0 -0
  143. /package/src/components/{Calendar → organisms/Calendar}/_CalendarYearView.vue +0 -0
  144. /package/src/components/{Calendar → organisms/Calendar}/calendar.types.ts +0 -0
  145. /package/src/components/{ComboboxPanel → organisms/ComboboxPanel}/combobox-types.ts +0 -0
  146. /package/src/components/{CountrySelect → organisms/CountrySelect}/countries.ts +0 -0
  147. /package/src/components/{StepperHeader → organisms/StepperHeader}/StepperHeader.vue +0 -0
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed } from 'vue'
3
- import NexxtIcon from '../Icon/Icon.vue'
3
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
4
4
 
5
5
  type AnnouncementVariant = 'info' | 'success' | 'warning' | 'danger' | 'neutral'
6
6
 
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
- import NexxtIcon from '../Icon/Icon.vue'
3
- import NexxtAnimatedNumber from '../AnimatedNumber/AnimatedNumber.vue'
2
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
3
+ import NexxtAnimatedNumber from '../../atoms/AnimatedNumber/AnimatedNumber.vue'
4
4
  import { computed, onMounted, ref } from 'vue'
5
5
  import { PHASE_MAP } from '../TimelineEvent/TimelineTypes'
6
6
 
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed } from 'vue'
3
- import Icon from '../Icon/Icon.vue'
3
+ import Icon from '../../atoms/Icon/Icon.vue'
4
4
 
5
5
  interface NexxtInfoBlockProps {
6
6
  icon: InstanceType<typeof Icon>['name']
@@ -1,11 +1,20 @@
1
1
  <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
2
3
  import { computed, getCurrentInstance, useAttrs, useTemplateRef } from 'vue'
3
- import Icon from '../Icon/Icon.vue'
4
+ import Icon from '../../atoms/Icon/Icon.vue'
4
5
 
5
6
  const INPUT_ID = 'input-field-' + Math.random().toString(36).slice(2, 10)
6
7
 
7
8
  const attrs = useAttrs()
8
9
 
10
+ // `useAttrs()` is getypeerd als Record<string, unknown>, dus class en style
11
+ // komen er als `unknown` uit en de dts-stap wijst ze af op het wrapper-element.
12
+ // Hier één keer terugbrengen naar wat Vue er werkelijk voor accepteert.
13
+ const wrapperAttrs = computed(() => ({
14
+ class: attrs.class as HTMLAttributes['class'],
15
+ style: attrs.style as HTMLAttributes['style'],
16
+ }))
17
+
9
18
  // `class` and `style` describe where the field sits in the consumer's layout,
10
19
  // so they belong on the outer wrapper. Everything else -- id, name, type,
11
20
  // placeholder, data-* , aria-* -- describes the control, so it goes to the
@@ -68,7 +77,7 @@ const decrement = () => {
68
77
  </script>
69
78
 
70
79
  <template>
71
- <div class="inline-flex flex-col gap-1" :class="attrs.class" :style="attrs.style">
80
+ <div class="inline-flex flex-col gap-1" :class="wrapperAttrs.class" :style="wrapperAttrs.style">
72
81
  <label v-if="label" class="justify-start small-normal text-gray-700" :for="INPUT_ID">
73
82
  {{ label }}
74
83
  <span v-if="required" class="text-brick-500">*</span>
@@ -1,8 +1,9 @@
1
1
  <script lang="ts" setup>
2
+ import type { HTMLAttributes } from 'vue'
2
3
  import { computed, useAttrs } from 'vue'
3
- import NexxtIcon from '../Icon/Icon.vue'
4
- import NexxtFloatingPanel from '../FloatingPanel/FloatingPanel.vue'
5
- import type Icon from '../Icon/Icon.vue'
4
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
5
+ import NexxtFloatingPanel from '../../atoms/FloatingPanel/FloatingPanel.vue'
6
+ import type Icon from '../../atoms/Icon/Icon.vue'
6
7
  import type { SelectOption } from '../Select/Select.vue'
7
8
 
8
9
  export type { SelectOption }
@@ -13,6 +14,14 @@ const selectId = generateId()
13
14
 
14
15
  const attrs = useAttrs()
15
16
 
17
+ // `useAttrs()` is getypeerd als Record<string, unknown>, dus class en style
18
+ // komen er als `unknown` uit en de dts-stap wijst ze af op het wrapper-element.
19
+ // Hier één keer terugbrengen naar wat Vue er werkelijk voor accepteert.
20
+ const wrapperAttrs = computed(() => ({
21
+ class: attrs.class as HTMLAttributes['class'],
22
+ style: attrs.style as HTMLAttributes['style'],
23
+ }))
24
+
16
25
  // `class` and `style` position the field in the consumer's layout and belong on
17
26
  // the wrapper; everything else describes the control and goes to the input.
18
27
  const inputAttrs = computed(() => {
@@ -66,7 +75,7 @@ const select = (opt: SelectOption, close: () => void) => {
66
75
  </script>
67
76
 
68
77
  <template>
69
- <div class="inline-flex flex-col gap-1" :class="attrs.class" :style="attrs.style">
78
+ <div class="inline-flex flex-col gap-1" :class="wrapperAttrs.class" :style="wrapperAttrs.style">
70
79
  <label v-if="label" class="justify-start small-normal text-gray-700" :for="fieldId">
71
80
  {{ label }}
72
81
  <span v-if="required" class="text-brick-500">*</span>
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import NexxtButton from '../Button/Button.vue'
2
+ import NexxtButton from '../../atoms/Button/Button.vue'
3
3
 
4
4
  // Kept in step with NexxtButton's own `variant` prop, widened with `string` so a
5
5
  // call site may bind a computed value (`options.variant ?? 'primary'`) without a
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import NexxtIcon from '../Icon/Icon.vue'
2
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
3
3
  import {
4
4
  PaginationEllipsis,
5
5
  PaginationFirst,
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" setup>
2
- import NexxtCard from '../Card/Card.vue'
3
- import NexxtPropertyListing from '../PropertyListing/PropertyListing.vue'
4
- import NexxtIcon from '../Icon/Icon.vue'
5
- import PropertyPlaceholder from '../../assets/images/property_placeholder.jpg'
2
+ import NexxtCard from '../../atoms/Card/Card.vue'
3
+ import NexxtPropertyListing from '../../atoms/PropertyListing/PropertyListing.vue'
4
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
5
+ import PropertyPlaceholder from '../../../assets/images/property_placeholder.jpg'
6
6
 
7
7
  export interface NexxtPropertyCardProps {
8
8
  image?: string
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed, ref, useTemplateRef, watch } from 'vue'
3
- import NexxtIcon from '../Icon/Icon.vue'
4
- import NexxtFloatingPanel from '../FloatingPanel/FloatingPanel.vue'
5
- import type Icon from '../Icon/Icon.vue'
3
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
4
+ import NexxtFloatingPanel from '../../atoms/FloatingPanel/FloatingPanel.vue'
5
+ import type Icon from '../../atoms/Icon/Icon.vue'
6
6
 
7
7
  export type SelectOption = { label: string; value: string | number } | string
8
8
 
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed } from 'vue'
3
- import NexxtIcon from '../Icon/Icon.vue'
3
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
4
4
 
5
5
  interface SidebarMenuItemProps {
6
6
  icon: InstanceType<typeof NexxtIcon>['name']
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import NexxtSkeleton from '../Skeleton/Skeleton.vue'
2
+ import NexxtSkeleton from '../../atoms/Skeleton/Skeleton.vue'
3
3
 
4
4
  export interface NexxtSkeletonPropertyCardProps {
5
5
  ariaLabel?: string
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed } from 'vue'
3
- import Icon from '../Icon/Icon.vue'
3
+ import Icon from '../../atoms/Icon/Icon.vue'
4
4
 
5
5
  export interface NexxtSocialIconsProps {
6
6
  facebook?: boolean
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import missingVideo from '../../assets/video/Template_aanvragen.mp4'
2
+ import missingVideo from '../../../assets/video/Template_aanvragen.mp4'
3
3
  import { ref, useTemplateRef, onMounted } from 'vue'
4
4
 
5
5
  defineOptions({
@@ -48,7 +48,7 @@ onMounted(() => {
48
48
  playsinline
49
49
  :loop="hasPlayedOnce"
50
50
  class="h-full w-full object-cover"
51
- poster="../../assets/images/Template_aanvragen.jpg"
51
+ poster="../../../assets/images/Template_aanvragen.jpg"
52
52
  @ended.once="handleEnded"
53
53
  />
54
54
  </button>
@@ -3,9 +3,9 @@ import { computed } from 'vue'
3
3
  import TiktokSvg from '@ui-assets/svg/type_tiktok.svg'
4
4
  import PostSvg from '@ui-assets/svg/type_post.svg'
5
5
  import StorySvg from '@ui-assets/svg/type_story.svg'
6
- import Chip from '../Chip/Chip.vue'
6
+ import Chip from '../../atoms/Chip/Chip.vue'
7
7
  import SocialIcons from '../SocialIcons/SocialIcons.vue'
8
- import Icon from '../Icon/Icon.vue'
8
+ import Icon from '../../atoms/Icon/Icon.vue'
9
9
 
10
10
  type SocialPlatform = 'tiktok' | 'facebook' | 'instagram' | 'linkedin' | 'x' | 'twitter' | 'google'
11
11
 
@@ -1,11 +1,11 @@
1
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'
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
9
 
10
10
  export const SOURCE_MAP = {
11
11
  realworks: 'Realworks',
@@ -59,7 +59,7 @@ const SOUCE_ICONS: Partial<Record<keyof typeof SOURCE_MAP, SourceIcon>> = {
59
59
 
60
60
  <script lang="ts" setup>
61
61
  import { computed } from 'vue'
62
- import NexxtIcon from '../Icon/Icon.vue'
62
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
63
63
 
64
64
  export interface NexxtSourceProps {
65
65
  source: keyof typeof SOURCE_MAP
@@ -17,18 +17,27 @@ const props = defineProps<NexxtTabbedContent>()
17
17
  const selected = defineModel<string>({ default: '' })
18
18
  const direction = ref<'forward' | 'backward'>('forward')
19
19
 
20
+ // `tabs` accepteert zowel losse strings als { label, icon }-objecten. NexxtTabs
21
+ // normaliseert intern naar de objectvorm maar houdt in zijn model het label
22
+ // vast, dus hier is het label overal de sleutel: het vult het model, het bepaalt
23
+ // de slotnaam en het is waarop de volgorde wordt vergeleken.
24
+ const labels = computed(() => props.tabs.map((tab) => (typeof tab === 'string' ? tab : tab.label)))
25
+
20
26
  watch(
21
- () => props.tabs,
22
- (newTabs) => {
23
- if (!selected.value && newTabs?.length > 0) {
24
- selected.value = newTabs[0]
27
+ labels,
28
+ (next) => {
29
+ if (!selected.value && next.length > 0) {
30
+ selected.value = next[0]
25
31
  }
26
32
  },
27
33
  { immediate: true },
28
34
  )
29
35
 
30
36
  watch(selected, (next, prev) => {
31
- direction.value = props.tabs.indexOf(next) > props.tabs.indexOf(prev) ? 'forward' : 'backward'
37
+ // Op de labels vergelijken, niet op `props.tabs`: met objecttabs vindt
38
+ // indexOf een label nooit en levert het twee keer -1 op, waarmee de richting
39
+ // altijd op backward blijft staan.
40
+ direction.value = labels.value.indexOf(next) > labels.value.indexOf(prev) ? 'forward' : 'backward'
32
41
  })
33
42
 
34
43
  const toSlotName = (tab: string) => tab.toLowerCase().replace(/\s+/g, '-')
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed, ref, useTemplateRef, watch, onMounted, nextTick } from 'vue'
3
- import Icon, { type NexxtIconName } from '../Icon/Icon.vue'
3
+ import Icon, { type NexxtIconName } from '../../atoms/Icon/Icon.vue'
4
4
 
5
5
  export interface NexxtTabItem {
6
6
  label: string
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" setup>
2
2
  import type { IconName } from '@awesome.me/kit-37b149f3ef/icons'
3
3
  import { computed } from 'vue'
4
- import NexxtIcon from '../Icon/Icon.vue'
5
- import NexxtTooltip from '../Tooltip/Tooltip.vue'
4
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
5
+ import NexxtTooltip from '../../atoms/Tooltip/Tooltip.vue'
6
6
 
7
7
  export type NexxtTemplateCardContentFeature = 'references' | 'valuation' | 'reviews' | 'packages'
8
8
 
@@ -1,4 +1,5 @@
1
1
  <script lang="ts" setup>
2
+ import type { HTMLAttributes } from 'vue'
2
3
  import { computed, nextTick, useAttrs, useTemplateRef, watch } from 'vue'
3
4
 
4
5
  const TEXTAREA_ID = 'textarea-' + Math.random().toString(36).slice(2, 10)
@@ -65,7 +66,13 @@ const model = defineModel<string | null>({ default: '' })
65
66
 
66
67
  const attrs = useAttrs()
67
68
 
68
- const wrapperAttrs = computed(() => ({ class: attrs.class, style: attrs.style }))
69
+ // `useAttrs()` is getypeerd als Record<string, unknown>, dus class en style
70
+ // komen er als `unknown` uit en de dts-stap wijst ze af op het wrapper-element.
71
+ // Hier één keer terugbrengen naar wat Vue er werkelijk voor accepteert.
72
+ const wrapperAttrs = computed(() => ({
73
+ class: attrs.class as HTMLAttributes['class'],
74
+ style: attrs.style as HTMLAttributes['style'],
75
+ }))
69
76
 
70
77
  const controlAttrs = computed(() => {
71
78
  const rest: Record<string, unknown> = { ...attrs }
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import NexxtIcon from '../Icon/Icon.vue'
2
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
3
3
  import { computed } from 'vue'
4
4
 
5
5
  defineOptions({
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
- import NexxtIcon from '../Icon/Icon.vue'
3
- import NexxtTooltip from '../Tooltip/Tooltip.vue'
2
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
3
+ import NexxtTooltip from '../../atoms/Tooltip/Tooltip.vue'
4
4
 
5
5
  defineOptions({
6
6
  name: 'NexxtTimelineLanes',
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { onMounted, onUnmounted, computed, ref } from 'vue'
3
- import NexxtIcon from '../Icon/Icon.vue'
3
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
4
4
 
5
5
  export type ToastVariant = 'info' | 'success' | 'warning' | 'error'
6
6
 
@@ -2,8 +2,8 @@
2
2
  import { ref, useTemplateRef, watch, onMounted, nextTick } from 'vue'
3
3
  import { useResizeObserver } from '@vueuse/core'
4
4
  import type { IconName } from '@awesome.me/kit-37b149f3ef/icons'
5
- import NexxtIcon from '../Icon/Icon.vue'
6
- import NexxtTooltip from '../Tooltip/Tooltip.vue'
5
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
6
+ import NexxtTooltip from '../../atoms/Tooltip/Tooltip.vue'
7
7
 
8
8
  export interface NexxtToggleGroupOption {
9
9
  value: string
@@ -2,7 +2,7 @@
2
2
  import { computed } from 'vue'
3
3
  import { format } from 'date-fns'
4
4
  import type { Locale } from 'date-fns'
5
- import NexxtIcon from '../Icon/Icon.vue'
5
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
6
6
 
7
7
  interface CalendarHeaderProps {
8
8
  viewDate: Date
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed } from 'vue'
3
3
  import { setHours, setMinutes, getHours, getMinutes } from 'date-fns'
4
- import NexxtIcon from '../Icon/Icon.vue'
4
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
5
5
 
6
6
  const props = defineProps<{
7
7
  modelValue: Date | null
@@ -15,8 +15,8 @@ import {
15
15
  normalizeColor,
16
16
  setChannelValue,
17
17
  } from 'reka-ui'
18
- import NexxtFloatingPanel from '../FloatingPanel/FloatingPanel.vue'
19
- import NexxtIcon from '../Icon/Icon.vue'
18
+ import NexxtFloatingPanel from '../../atoms/FloatingPanel/FloatingPanel.vue'
19
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
20
20
 
21
21
  export type ColorFormat = 'hex' | 'hsl' | 'rgb'
22
22
 
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" setup>
2
2
  import { ref, computed, nextTick } from 'vue'
3
3
  import type { Placement } from '@floating-ui/vue'
4
- import NexxtButton from '../Button/Button.vue'
5
- import NexxtIcon from '../Icon/Icon.vue'
6
- import NexxtFloatingPanel from '../FloatingPanel/FloatingPanel.vue'
4
+ import NexxtButton from '../../atoms/Button/Button.vue'
5
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
6
+ import NexxtFloatingPanel from '../../atoms/FloatingPanel/FloatingPanel.vue'
7
7
  import ComboboxPanel from '../ComboboxPanel/ComboboxPanel.vue'
8
8
  import type { ComboboxOptions } from '../ComboboxPanel/combobox-types'
9
9
 
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" setup>
2
2
  import { ref, useTemplateRef, computed, onMounted, onUnmounted } from 'vue'
3
- import NexxtChip from '../Chip/Chip.vue'
4
- import NexxtIcon from '../Icon/Icon.vue'
5
- import NexxtInputField from '../InputField/InputField.vue'
3
+ import NexxtChip from '../../atoms/Chip/Chip.vue'
4
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
5
+ import NexxtInputField from '../../molecules/InputField/InputField.vue'
6
6
  import type { ComboboxOptions } from './combobox-types'
7
7
 
8
8
  type ComboboxPanelProps = {
@@ -19,9 +19,9 @@ export interface NexxtCountrySelectProps {
19
19
 
20
20
  <script lang="ts" setup>
21
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'
22
+ import NexxtFloatingPanel from '../../atoms/FloatingPanel/FloatingPanel.vue'
23
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
24
+ import NexxtInputField from '../../molecules/InputField/InputField.vue'
25
25
  import { countries } from './countries'
26
26
 
27
27
  defineOptions({ name: 'NexxtCountrySelect' })
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" setup>
2
2
  import { useTemplateRef, computed, nextTick } from 'vue'
3
3
  import type { Placement } from '@floating-ui/vue'
4
- import NexxtButton from '../Button/Button.vue'
4
+ import NexxtButton from '../../atoms/Button/Button.vue'
5
5
  import NexxtCalendar from '../Calendar/Calendar.vue'
6
- import NexxtFloatingPanel from '../FloatingPanel/FloatingPanel.vue'
6
+ import NexxtFloatingPanel from '../../atoms/FloatingPanel/FloatingPanel.vue'
7
7
  import type { NexxtCalendarProps } from '../Calendar/calendar.types'
8
8
 
9
9
  export type CalendarAnchor = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" setup>
2
2
  import { ref, computed, watch } from 'vue'
3
3
  import type { Placement } from '@floating-ui/vue'
4
- import NexxtIcon from '../Icon/Icon.vue'
5
- import NexxtCheckbox from '../Checkbox/Checkbox.vue'
6
- import NexxtFloatingPanel from '../FloatingPanel/FloatingPanel.vue'
4
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
5
+ import NexxtCheckbox from '../../atoms/Checkbox/Checkbox.vue'
6
+ import NexxtFloatingPanel from '../../atoms/FloatingPanel/FloatingPanel.vue'
7
7
 
8
8
  interface NexxtDropdownButton {
9
9
  label: string
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import Button from '../Button/Button.vue'
2
+ import Button from '../../atoms/Button/Button.vue'
3
3
 
4
4
  interface NexxtHeaderProps {
5
5
  /** Optional when the title slot is used. */
@@ -9,7 +9,7 @@ import {
9
9
  DialogTitle,
10
10
  } from 'reka-ui'
11
11
  import { computed } from 'vue'
12
- import NexxtIcon from '../Icon/Icon.vue'
12
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
13
13
 
14
14
  defineOptions({
15
15
  name: 'NexxtModal',
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, watchEffect } from 'vue'
3
- import AnimatedNumber from '../AnimatedNumber/AnimatedNumber.vue'
4
- import Icon from '../Icon/Icon.vue'
5
- import FloatingPanel from '../FloatingPanel/FloatingPanel.vue'
3
+ import AnimatedNumber from '../../atoms/AnimatedNumber/AnimatedNumber.vue'
4
+ import Icon from '../../atoms/Icon/Icon.vue'
5
+ import FloatingPanel from '../../atoms/FloatingPanel/FloatingPanel.vue'
6
6
 
7
7
  interface NexxtProgressBarProps {
8
8
  variant?: 'stepper' | 'percentage'
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed } from 'vue'
3
- import NexxtButton from '../Button/Button.vue'
4
- import NexxtCheckbox from '../Checkbox/Checkbox.vue'
5
- import NexxtEnergyLabel, { type EnergyLabelLetter } from '../EnergyLabel/EnergyLabel.vue'
6
- import NexxtIcon from '../Icon/Icon.vue'
3
+ import NexxtButton from '../../atoms/Button/Button.vue'
4
+ import NexxtCheckbox from '../../atoms/Checkbox/Checkbox.vue'
5
+ import NexxtEnergyLabel, { type EnergyLabelLetter } from '../../atoms/EnergyLabel/EnergyLabel.vue'
6
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
7
7
 
8
8
  export interface ProposalReference {
9
9
  index: number
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed, useTemplateRef } from 'vue'
3
- import Icon from '../Icon/Icon.vue'
3
+ import Icon from '../../atoms/Icon/Icon.vue'
4
4
 
5
5
  interface NexxtSocialMediaTemplateProps {
6
6
  variant: 'post' | 'video' | 'slideshow'
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" setup generic="TKey extends string, TRow extends Record<TKey, unknown>">
2
2
  import { computed, useTemplateRef } from 'vue'
3
- import Icon from '../Icon/Icon.vue'
4
- import Checkbox from '../Checkbox/Checkbox.vue'
3
+ import Icon from '../../atoms/Icon/Icon.vue'
4
+ import Checkbox from '../../atoms/Checkbox/Checkbox.vue'
5
5
 
6
6
  export interface TableColumn<K extends string = string> {
7
7
  key: K
@@ -1,13 +1,13 @@
1
1
  <script setup lang="ts">
2
- import NexxtIcon from '../Icon/Icon.vue'
2
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
3
3
  import { computed } from 'vue'
4
4
 
5
5
  defineOptions({
6
6
  name: 'NexxtTimelinePhaseblock',
7
7
  })
8
- import NexxtTimelineEvent from '../TimelineEvent/TimelineEvent.vue'
9
- import NexxtTimelineLanes from '../TimelineLanes/TimelineLanes.vue'
10
- import { PHASE_MAP, type TimelinePhase } from '../TimelineEvent/TimelineTypes'
8
+ import NexxtTimelineEvent from '../../molecules/TimelineEvent/TimelineEvent.vue'
9
+ import NexxtTimelineLanes from '../../molecules/TimelineLanes/TimelineLanes.vue'
10
+ import { PHASE_MAP, type TimelinePhase } from '../../molecules/TimelineEvent/TimelineTypes'
11
11
 
12
12
  const props = defineProps<{
13
13
  phase: TimelinePhase
@@ -4,9 +4,9 @@ import { computed } from 'vue'
4
4
  defineOptions({
5
5
  name: 'NexxtTimelineTrack',
6
6
  })
7
- import NexxtTimelineEvent from '../TimelineEvent/TimelineEvent.vue'
8
- import NexxtTimelineLanes from '../TimelineLanes/TimelineLanes.vue'
9
- import type { TimelineEvent as Event } from '../TimelineEvent/TimelineTypes'
7
+ import NexxtTimelineEvent from '../../molecules/TimelineEvent/TimelineEvent.vue'
8
+ import NexxtTimelineLanes from '../../molecules/TimelineLanes/TimelineLanes.vue'
9
+ import type { TimelineEvent as Event } from '../../molecules/TimelineEvent/TimelineTypes'
10
10
 
11
11
  const props = withDefaults(
12
12
  defineProps<{
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
- import NexxtToast from '../Toast/Toast.vue'
3
- import type { ToastItem } from '../Toast/Toast.vue'
2
+ import NexxtToast from '../../molecules/Toast/Toast.vue'
3
+ import type { ToastItem } from '../../molecules/Toast/Toast.vue'
4
4
 
5
5
  export type ToasterPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'
6
6
 
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" setup>
2
2
  import { useEventListener, useFullscreen, useMediaControls } from '@vueuse/core'
3
3
  import { computed, onMounted, ref, useTemplateRef, watch } from 'vue'
4
- import NexxtIcon from '../Icon/Icon.vue'
4
+ import NexxtIcon from '../../atoms/Icon/Icon.vue'
5
5
 
6
6
  const props = defineProps<{
7
7
  src: string