fds-vue-core 2.1.8 → 2.1.10
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/fds-vue-core.cjs.js +1 -1
- package/dist/fds-vue-core.cjs.js.map +1 -1
- package/dist/fds-vue-core.es.js +1 -1
- package/dist/fds-vue-core.es.js.map +1 -1
- package/package.json +1 -1
- package/src/App.vue +2 -2
- package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.vue +6 -17
- package/src/components/Blocks/FdsBlockContent/FdsBlockContent.vue +3 -10
- package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.stories.ts +1 -1
- package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.vue +8 -26
- package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.stories.ts +1 -1
- package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.vue +2 -2
- package/src/components/Blocks/FdsBlockLink/FdsBlockLink.stories.ts +2 -2
- package/src/components/Blocks/FdsBlockLink/FdsBlockLink.vue +7 -25
- package/src/components/Buttons/FdsButtonCopy/FdsButtonCopy.vue +4 -7
- package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.vue +5 -15
- package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.stories.ts +1 -1
- package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.vue +3 -12
- package/src/components/Buttons/FdsButtonIcon/types.ts +1 -1
- package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.stories.ts +1 -1
- package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.vue +7 -21
- package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.stories.ts +1 -1
- package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue +7 -20
- package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.stories.ts +1 -1
- package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.vue +7 -20
- package/src/components/FdsIcon/FdsIcon.stories.ts +1 -1
- package/src/components/FdsIcon/FdsIcon.vue +1 -1
- package/src/components/FdsModal/FdsModal.stories.ts +2 -2
- package/src/components/FdsModal/FdsModal.vue +8 -29
- package/src/components/FdsPagination/FdsPagination.vue +8 -27
- package/src/components/FdsSearchSelect/FdsSearchSelect.vue +6 -6
- package/src/components/FdsTreeView/FdsTreeView.vue +4 -4
- package/src/components/FdsTreeView/TreeNode.vue +3 -3
- package/src/components/FdsTreeView/useTreeState.ts +1 -1
- package/src/components/FdsTruncatedText/FdsTruncatedText.vue +2 -2
- package/src/components/Form/FdsCheckbox/FdsCheckbox.vue +1 -1
- package/src/components/Form/FdsInput/FdsInput.vue +3 -3
- package/src/components/Form/FdsRadio/FdsRadio.vue +1 -1
- package/src/components/Form/FdsSelect/FdsSelect.vue +7 -21
- package/src/components/Form/FdsTextarea/FdsTextarea.vue +8 -25
- package/src/components/Table/FdsTable/FdsTable.stories.ts +1 -1
- package/src/components/Table/FdsTableHead/FdsTableHead.vue +2 -2
- package/src/components/Tabs/FdsTabs/FdsTabs.stories.ts +2 -2
- package/src/components/Typography/FdsListHeading/FdsListHeading.vue +1 -1
package/package.json
CHANGED
package/src/App.vue
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import FdsTreeView from '@/components/FdsTreeView/FdsTreeView.vue'
|
|
3
|
-
import type { FdsTreeNode } from '@/components/FdsTreeView/types'
|
|
4
2
|
import { ref } from 'vue'
|
|
3
|
+
import FdsTreeView from './components/FdsTreeView/FdsTreeView.vue'
|
|
4
|
+
import type { FdsTreeNode } from './components/FdsTreeView/types'
|
|
5
5
|
|
|
6
6
|
// Mock tree data
|
|
7
7
|
const mockTreeData: FdsTreeNode<Record<string, unknown>>[] = [
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { useHasSlot } from '@/composables/useHasSlots'
|
|
3
2
|
import { computed, ref, watch } from 'vue'
|
|
4
|
-
import
|
|
5
|
-
import
|
|
3
|
+
import { useHasSlot } from '../../../composables/useHasSlots'
|
|
4
|
+
import FdsButtonIcon from '../../Buttons/FdsButtonIcon/FdsButtonIcon.vue'
|
|
5
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
6
6
|
import type { FdsAlertBlockProps } from './types'
|
|
7
7
|
|
|
8
8
|
const props = withDefaults(defineProps<FdsAlertBlockProps>(), {
|
|
@@ -57,11 +57,7 @@ function handleToggle() {
|
|
|
57
57
|
</script>
|
|
58
58
|
|
|
59
59
|
<template>
|
|
60
|
-
<div
|
|
61
|
-
v-if="isVisible"
|
|
62
|
-
:id="alertId"
|
|
63
|
-
:class="alertClasses"
|
|
64
|
-
>
|
|
60
|
+
<div v-if="isVisible" :id="alertId" :class="alertClasses">
|
|
65
61
|
<div>
|
|
66
62
|
<div>
|
|
67
63
|
<div
|
|
@@ -70,11 +66,7 @@ function handleToggle() {
|
|
|
70
66
|
:class="{ 'mb-4': (isExpanded || !collapsable) && hasSlot }"
|
|
71
67
|
>
|
|
72
68
|
<div class="flex items-center gap-2">
|
|
73
|
-
<FdsIcon
|
|
74
|
-
name="alert"
|
|
75
|
-
:size="24"
|
|
76
|
-
class="fill-yellow-700"
|
|
77
|
-
/>
|
|
69
|
+
<FdsIcon name="alert" :size="24" class="fill-yellow-700" />
|
|
78
70
|
<span>{{ label }}</span>
|
|
79
71
|
</div>
|
|
80
72
|
<div class="relative">
|
|
@@ -100,10 +92,7 @@ function handleToggle() {
|
|
|
100
92
|
/>
|
|
101
93
|
</div>
|
|
102
94
|
</div>
|
|
103
|
-
<div
|
|
104
|
-
v-if="isExpanded || !collapsable"
|
|
105
|
-
class="fds-block-alert-slot mb-0-last-child"
|
|
106
|
-
>
|
|
95
|
+
<div v-if="isExpanded || !collapsable" class="fds-block-alert-slot mb-0-last-child">
|
|
107
96
|
<slot />
|
|
108
97
|
</div>
|
|
109
98
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, type Slot } from 'vue'
|
|
3
|
+
import { useHasSlot } from '../../../composables/useHasSlots'
|
|
3
4
|
import type { FdsContentBlockProps } from './types'
|
|
4
|
-
import { useHasSlot } from '@/composables/useHasSlots'
|
|
5
5
|
|
|
6
6
|
const hasSlot = useHasSlot()
|
|
7
7
|
|
|
@@ -43,15 +43,8 @@ defineSlots<{
|
|
|
43
43
|
</script>
|
|
44
44
|
|
|
45
45
|
<template>
|
|
46
|
-
<div
|
|
47
|
-
|
|
48
|
-
:class="contentClasses"
|
|
49
|
-
:style="borderLeftStyle"
|
|
50
|
-
>
|
|
51
|
-
<header
|
|
52
|
-
v-if="heading"
|
|
53
|
-
class="flex items-start justify-between gap-4"
|
|
54
|
-
>
|
|
46
|
+
<div :id="contentBlockId" :class="contentClasses" :style="borderLeftStyle">
|
|
47
|
+
<header v-if="heading" class="flex items-start justify-between gap-4">
|
|
55
48
|
<div class="flex items-center gap-3">
|
|
56
49
|
<h3 :class="headerClasses">{{ heading }}</h3>
|
|
57
50
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, ref, watch } from 'vue'
|
|
3
|
-
import FdsIcon from '
|
|
3
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
4
4
|
import type { FdsExpanderBlockProps } from './types'
|
|
5
5
|
|
|
6
6
|
const props = withDefaults(defineProps<FdsExpanderBlockProps>(), {
|
|
@@ -44,29 +44,15 @@ function handleToggle() {
|
|
|
44
44
|
|
|
45
45
|
<template>
|
|
46
46
|
<div :class="expanderClasses">
|
|
47
|
-
<button
|
|
48
|
-
type="button"
|
|
49
|
-
:class="headerClasses"
|
|
50
|
-
@click="handleToggle"
|
|
51
|
-
>
|
|
47
|
+
<button type="button" :class="headerClasses" @click="handleToggle">
|
|
52
48
|
<span class="inline-flex items-center">
|
|
53
|
-
<span
|
|
54
|
-
|
|
55
|
-
class="flex items-center mr-4"
|
|
56
|
-
>
|
|
57
|
-
<FdsIcon
|
|
58
|
-
:name="preIcon"
|
|
59
|
-
:size="24"
|
|
60
|
-
class="fill-blue-500"
|
|
61
|
-
:class="{ 'fill-gray-500': disabled }"
|
|
62
|
-
/>
|
|
49
|
+
<span v-if="preIcon" class="flex items-center mr-4">
|
|
50
|
+
<FdsIcon :name="preIcon" :size="24" class="fill-blue-500" :class="{ 'fill-gray-500': disabled }" />
|
|
63
51
|
</span>
|
|
64
52
|
<span class="inline-flex items-center">
|
|
65
|
-
<span
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
>{{ label }}</span
|
|
69
|
-
>
|
|
53
|
+
<span class="font-bold font-heading text-lg leading-md" :class="{ 'text-gray-500': disabled }">
|
|
54
|
+
{{ label }}
|
|
55
|
+
</span>
|
|
70
56
|
</span>
|
|
71
57
|
</span>
|
|
72
58
|
<FdsIcon
|
|
@@ -76,11 +62,7 @@ function handleToggle() {
|
|
|
76
62
|
:class="{ 'rotate-180': isOpen, 'fill-gray-500': disabled }"
|
|
77
63
|
/>
|
|
78
64
|
</button>
|
|
79
|
-
<div
|
|
80
|
-
:aria-hidden="!isOpen"
|
|
81
|
-
class="mb-0-last-child block px-4 pb-6 rounded-b-2xl bg-white"
|
|
82
|
-
v-show="isOpen"
|
|
83
|
-
>
|
|
65
|
+
<div :aria-hidden="!isOpen" class="mb-0-last-child block px-4 pb-6 rounded-b-2xl bg-white" v-show="isOpen">
|
|
84
66
|
<slot />
|
|
85
67
|
</div>
|
|
86
68
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import FdsIcon from '@/components/FdsIcon/FdsIcon.vue'
|
|
3
|
-
import { useHasSlot } from '@/composables/useHasSlots'
|
|
4
2
|
import { computed, type Slot } from 'vue'
|
|
3
|
+
import { useHasSlot } from '../../../composables/useHasSlots'
|
|
4
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
5
5
|
import type { FdsBlockInfoProps } from './types'
|
|
6
6
|
|
|
7
7
|
const props = withDefaults(defineProps<FdsBlockInfoProps>(), {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
|
-
import icons from '
|
|
3
|
-
import FdsSticker from '
|
|
2
|
+
import icons from '../../../assets/icons'
|
|
3
|
+
import FdsSticker from '../../FdsSticker/FdsSticker.vue'
|
|
4
4
|
import FdsBlockLink from './FdsBlockLink.vue'
|
|
5
5
|
|
|
6
6
|
const meta: Meta<typeof FdsBlockLink> = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { useHasSlot } from '@/composables/useHasSlots'
|
|
3
2
|
import { computed, useAttrs } from 'vue'
|
|
4
|
-
import
|
|
3
|
+
import { useHasSlot } from '../../../composables/useHasSlots'
|
|
4
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
5
5
|
import type { FdsInteractionBlockProps } from './types'
|
|
6
6
|
|
|
7
7
|
defineOptions({
|
|
@@ -99,10 +99,7 @@ const componentType = computed(() => {
|
|
|
99
99
|
@click="handleClick"
|
|
100
100
|
@keydown="handleKeydown"
|
|
101
101
|
>
|
|
102
|
-
<div
|
|
103
|
-
class="flex w-full flex-1"
|
|
104
|
-
:class="contentClasses"
|
|
105
|
-
>
|
|
102
|
+
<div class="flex w-full flex-1" :class="contentClasses">
|
|
106
103
|
<FdsIcon
|
|
107
104
|
v-if="icon"
|
|
108
105
|
:name="icon"
|
|
@@ -114,14 +111,8 @@ const componentType = computed(() => {
|
|
|
114
111
|
class="flex flex-col text-gray-700 font-normal text-base leading-6 tracking-normal"
|
|
115
112
|
:class="containerClasses"
|
|
116
113
|
>
|
|
117
|
-
<div
|
|
118
|
-
class="flex
|
|
119
|
-
:class="headerClasses"
|
|
120
|
-
>
|
|
121
|
-
<h3
|
|
122
|
-
class="flex-1 font-heading text-lg tracking-normal m-0 leading-md"
|
|
123
|
-
:class="headerTextClasses"
|
|
124
|
-
>
|
|
114
|
+
<div class="flex items-center gap-4" :class="headerClasses">
|
|
115
|
+
<h3 class="flex-1 font-heading text-lg tracking-normal m-0 leading-md" :class="headerTextClasses">
|
|
125
116
|
{{ label }}
|
|
126
117
|
</h3>
|
|
127
118
|
</div>
|
|
@@ -129,21 +120,12 @@ const componentType = computed(() => {
|
|
|
129
120
|
<div class="mb-0-last-child">
|
|
130
121
|
<slot />
|
|
131
122
|
</div>
|
|
132
|
-
<div
|
|
133
|
-
v-if="hasStickerSlot"
|
|
134
|
-
class="flex items-end"
|
|
135
|
-
>
|
|
123
|
+
<div v-if="hasStickerSlot" class="flex items-end">
|
|
136
124
|
<slot name="sticker" />
|
|
137
125
|
</div>
|
|
138
126
|
</div>
|
|
139
127
|
</div>
|
|
140
128
|
</div>
|
|
141
|
-
<FdsIcon
|
|
142
|
-
v-if="arrow"
|
|
143
|
-
name="arrowRight"
|
|
144
|
-
:size="20"
|
|
145
|
-
class="ml-3 fill-blue-500"
|
|
146
|
-
:class="arrowClasses"
|
|
147
|
-
/>
|
|
129
|
+
<FdsIcon v-if="arrow" name="arrowRight" :size="20" class="ml-3 fill-blue-500" :class="arrowClasses" />
|
|
148
130
|
</component>
|
|
149
131
|
</template>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
2
|
+
import { onMounted, ref } from 'vue'
|
|
3
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
4
|
+
import FdsButtonMinor from '../FdsButtonMinor/FdsButtonMinor.vue'
|
|
5
5
|
import type { FdsCopyButtonProps } from './types'
|
|
6
6
|
|
|
7
7
|
const props = withDefaults(defineProps<FdsCopyButtonProps>(), {
|
|
@@ -69,10 +69,7 @@ defineEmits<{ (e: 'click'): void }>()
|
|
|
69
69
|
</script>
|
|
70
70
|
|
|
71
71
|
<template>
|
|
72
|
-
<div
|
|
73
|
-
v-if="isCopied"
|
|
74
|
-
class="flex items-center gap-2 h-7"
|
|
75
|
-
>
|
|
72
|
+
<div v-if="isCopied" class="flex items-center gap-2 h-7">
|
|
76
73
|
<FdsIcon name="bigSuccess" />
|
|
77
74
|
<span>{{ props.copiedLabel }}</span>
|
|
78
75
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, ref } from 'vue'
|
|
3
|
-
import FdsIcon from '
|
|
4
|
-
import type { FdsButtonBaseProps } from '
|
|
3
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
4
|
+
import type { FdsButtonBaseProps } from '../ButtonBaseProps'
|
|
5
5
|
|
|
6
6
|
defineOptions({
|
|
7
7
|
inheritAttrs: false,
|
|
@@ -160,10 +160,7 @@ function onClick(ev: MouseEvent) {
|
|
|
160
160
|
</script>
|
|
161
161
|
|
|
162
162
|
<template>
|
|
163
|
-
<div
|
|
164
|
-
:class="rootClasses"
|
|
165
|
-
:aria-disabled="disabled ? 'true' : undefined"
|
|
166
|
-
>
|
|
163
|
+
<div :class="rootClasses" :aria-disabled="disabled ? 'true' : undefined">
|
|
167
164
|
<button
|
|
168
165
|
v-bind="$attrs"
|
|
169
166
|
:class="buttonClasses"
|
|
@@ -171,15 +168,8 @@ function onClick(ev: MouseEvent) {
|
|
|
171
168
|
type="button"
|
|
172
169
|
@click="onClick"
|
|
173
170
|
>
|
|
174
|
-
<span
|
|
175
|
-
:class="
|
|
176
|
-
aria-hidden="true"
|
|
177
|
-
>
|
|
178
|
-
<FdsIcon
|
|
179
|
-
:class="iconFillClass"
|
|
180
|
-
name="download"
|
|
181
|
-
:size="24"
|
|
182
|
-
/>
|
|
171
|
+
<span :class="iconOrderClasses" aria-hidden="true">
|
|
172
|
+
<FdsIcon :class="iconFillClass" name="download" :size="24" />
|
|
183
173
|
</span>
|
|
184
174
|
{{ text }}
|
|
185
175
|
</button>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import FdsButtonIcon from './FdsButtonIcon.vue'
|
|
3
|
-
import icons from '
|
|
3
|
+
import icons from '../../../assets/icons'
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof FdsButtonIcon> = {
|
|
6
6
|
title: 'FDS/Buttons/FdsButtonIcon',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed } from 'vue'
|
|
3
|
-
import FdsIcon from '
|
|
3
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
4
4
|
import type { FdsIconButtonProps } from './types'
|
|
5
5
|
|
|
6
6
|
const props = withDefaults(defineProps<FdsIconButtonProps>(), {
|
|
@@ -42,16 +42,7 @@ function onClick(ev: MouseEvent) {
|
|
|
42
42
|
:class="buttonClasses"
|
|
43
43
|
@click="onClick"
|
|
44
44
|
>
|
|
45
|
-
<FdsIcon
|
|
46
|
-
|
|
47
|
-
:size="iconSize"
|
|
48
|
-
:name="icon"
|
|
49
|
-
/>
|
|
50
|
-
<FdsIcon
|
|
51
|
-
v-else
|
|
52
|
-
:size="iconSize"
|
|
53
|
-
name="spinner"
|
|
54
|
-
class="animate-spin"
|
|
55
|
-
/>
|
|
45
|
+
<FdsIcon v-if="!loading" :size="iconSize" :name="icon" />
|
|
46
|
+
<FdsIcon v-else :size="iconSize" name="spinner" class="animate-spin" />
|
|
56
47
|
</button>
|
|
57
48
|
</template>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import FdsButtonMinor from './FdsButtonMinor.vue'
|
|
3
|
-
import icons from '
|
|
3
|
+
import icons from '../../../assets/icons'
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof FdsButtonMinor> = {
|
|
6
6
|
title: 'FDS/Buttons/FdsButtonMinor',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { FdsButtonBaseProps } from '@/components/Buttons/ButtonBaseProps'
|
|
3
|
-
import FdsIcon from '@/components/FdsIcon/FdsIcon.vue'
|
|
4
|
-
import FdsSpinner from '@/components/FdsSpinner/FdsSpinner.vue'
|
|
5
2
|
import { computed, useAttrs } from 'vue'
|
|
3
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
4
|
+
import FdsSpinner from '../../FdsSpinner/FdsSpinner.vue'
|
|
5
|
+
import type { FdsButtonBaseProps } from '../ButtonBaseProps'
|
|
6
6
|
|
|
7
7
|
defineOptions({
|
|
8
8
|
inheritAttrs: false,
|
|
@@ -85,10 +85,7 @@ const componentAttrs = computed(() => ({
|
|
|
85
85
|
</script>
|
|
86
86
|
|
|
87
87
|
<template>
|
|
88
|
-
<div
|
|
89
|
-
:class="rootClasses"
|
|
90
|
-
:aria-disabled="disabled ? 'true' : undefined"
|
|
91
|
-
>
|
|
88
|
+
<div :class="rootClasses" :aria-disabled="disabled ? 'true' : undefined">
|
|
92
89
|
<component
|
|
93
90
|
:is="as"
|
|
94
91
|
v-bind="componentAttrs"
|
|
@@ -100,22 +97,11 @@ const componentAttrs = computed(() => ({
|
|
|
100
97
|
@click="onClick"
|
|
101
98
|
>
|
|
102
99
|
<template v-if="loading">
|
|
103
|
-
<FdsSpinner
|
|
104
|
-
class="mr-2"
|
|
105
|
-
size="24px"
|
|
106
|
-
color="inherit"
|
|
107
|
-
/>
|
|
100
|
+
<FdsSpinner class="mr-2" size="24px" color="inherit" />
|
|
108
101
|
</template>
|
|
109
102
|
<template v-else-if="icon">
|
|
110
|
-
<span
|
|
111
|
-
:class="
|
|
112
|
-
aria-hidden="true"
|
|
113
|
-
>
|
|
114
|
-
<FdsIcon
|
|
115
|
-
:class="iconFillClass"
|
|
116
|
-
:name="icon"
|
|
117
|
-
:size="24"
|
|
118
|
-
/>
|
|
103
|
+
<span :class="iconOrderClasses" aria-hidden="true">
|
|
104
|
+
<FdsIcon :class="iconFillClass" :name="icon" :size="24" />
|
|
119
105
|
</span>
|
|
120
106
|
</template>
|
|
121
107
|
<span class="pt-0.5">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import FdsButtonPrimary from './FdsButtonPrimary.vue'
|
|
3
|
-
import icons from '
|
|
3
|
+
import icons from '../../../assets/icons'
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof FdsButtonPrimary> = {
|
|
6
6
|
title: 'FDS/Buttons/FdsButtonPrimary',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed } from 'vue'
|
|
3
|
-
import FdsIcon from '
|
|
4
|
-
import FdsSpinner from '
|
|
5
|
-
import type { FdsButtonBaseProps } from '
|
|
3
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
4
|
+
import FdsSpinner from '../../FdsSpinner/FdsSpinner.vue'
|
|
5
|
+
import type { FdsButtonBaseProps } from '../ButtonBaseProps'
|
|
6
6
|
|
|
7
7
|
const props = withDefaults(defineProps<FdsButtonBaseProps>(), {
|
|
8
8
|
loading: false,
|
|
@@ -71,10 +71,7 @@ const linkAttrs = computed(() => {
|
|
|
71
71
|
</script>
|
|
72
72
|
|
|
73
73
|
<template>
|
|
74
|
-
<div
|
|
75
|
-
:class="rootClasses"
|
|
76
|
-
:aria-disabled="disabled ? 'true' : undefined"
|
|
77
|
-
>
|
|
74
|
+
<div :class="rootClasses" :aria-disabled="disabled ? 'true' : undefined">
|
|
78
75
|
<component
|
|
79
76
|
:is="as"
|
|
80
77
|
v-bind="linkAttrs"
|
|
@@ -84,21 +81,11 @@ const linkAttrs = computed(() => {
|
|
|
84
81
|
@click="onClick"
|
|
85
82
|
>
|
|
86
83
|
<template v-if="loading">
|
|
87
|
-
<FdsSpinner
|
|
88
|
-
size="24px"
|
|
89
|
-
color="inherit"
|
|
90
|
-
/>
|
|
84
|
+
<FdsSpinner size="24px" color="inherit" />
|
|
91
85
|
</template>
|
|
92
86
|
<template v-else-if="icon">
|
|
93
|
-
<span
|
|
94
|
-
:class="
|
|
95
|
-
aria-hidden="true"
|
|
96
|
-
>
|
|
97
|
-
<FdsIcon
|
|
98
|
-
:class="iconFillClass"
|
|
99
|
-
:name="icon"
|
|
100
|
-
:size="24"
|
|
101
|
-
/>
|
|
87
|
+
<span :class="iconOrderClasses" aria-hidden="true">
|
|
88
|
+
<FdsIcon :class="iconFillClass" :name="icon" :size="24" />
|
|
102
89
|
</span>
|
|
103
90
|
</template>
|
|
104
91
|
<span v-if="text">{{ text }}</span>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import FdsButtonSecondary from './FdsButtonSecondary.vue'
|
|
3
|
-
import icons from '
|
|
3
|
+
import icons from '../../../assets/icons'
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof FdsButtonSecondary> = {
|
|
6
6
|
title: 'FDS/Buttons/FdsButtonSecondary',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed } from 'vue'
|
|
3
|
-
import FdsIcon from '
|
|
4
|
-
import FdsSpinner from '
|
|
5
|
-
import type { FdsButtonBaseProps } from '
|
|
3
|
+
import FdsIcon from '../../FdsIcon/FdsIcon.vue'
|
|
4
|
+
import FdsSpinner from '../../FdsSpinner/FdsSpinner.vue'
|
|
5
|
+
import type { FdsButtonBaseProps } from '../ButtonBaseProps'
|
|
6
6
|
|
|
7
7
|
const props = withDefaults(defineProps<FdsButtonBaseProps>(), {
|
|
8
8
|
loading: false,
|
|
@@ -71,10 +71,7 @@ const linkAttrs = computed(() => {
|
|
|
71
71
|
</script>
|
|
72
72
|
|
|
73
73
|
<template>
|
|
74
|
-
<div
|
|
75
|
-
:class="rootClasses"
|
|
76
|
-
:aria-disabled="disabled ? 'true' : undefined"
|
|
77
|
-
>
|
|
74
|
+
<div :class="rootClasses" :aria-disabled="disabled ? 'true' : undefined">
|
|
78
75
|
<component
|
|
79
76
|
:is="as"
|
|
80
77
|
v-bind="linkAttrs"
|
|
@@ -84,21 +81,11 @@ const linkAttrs = computed(() => {
|
|
|
84
81
|
@click="onClick"
|
|
85
82
|
>
|
|
86
83
|
<template v-if="loading">
|
|
87
|
-
<FdsSpinner
|
|
88
|
-
size="24px"
|
|
89
|
-
color="inherit"
|
|
90
|
-
/>
|
|
84
|
+
<FdsSpinner size="24px" color="inherit" />
|
|
91
85
|
</template>
|
|
92
86
|
<template v-else-if="icon">
|
|
93
|
-
<span
|
|
94
|
-
:class="
|
|
95
|
-
aria-hidden="true"
|
|
96
|
-
>
|
|
97
|
-
<FdsIcon
|
|
98
|
-
:class="iconFillClass"
|
|
99
|
-
:name="icon"
|
|
100
|
-
:size="24"
|
|
101
|
-
/>
|
|
87
|
+
<span :class="iconOrderClasses" aria-hidden="true">
|
|
88
|
+
<FdsIcon :class="iconFillClass" :name="icon" :size="24" />
|
|
102
89
|
</span>
|
|
103
90
|
</template>
|
|
104
91
|
<span v-if="text">{{ text }}</span>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import { ref } from 'vue'
|
|
3
|
-
import FdsButtonPrimary from '
|
|
4
|
-
import FdsButtonSecondary from '
|
|
3
|
+
import FdsButtonPrimary from '../Buttons/FdsButtonPrimary/FdsButtonPrimary.vue'
|
|
4
|
+
import FdsButtonSecondary from '../Buttons/FdsButtonSecondary/FdsButtonSecondary.vue'
|
|
5
5
|
import FdsModal from './FdsModal.vue'
|
|
6
6
|
|
|
7
7
|
const meta: Meta<typeof FdsModal> = {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import FdsButtonIcon from '@/components/Buttons/FdsButtonIcon/FdsButtonIcon.vue'
|
|
3
|
-
import FdsIcon from '@/components/FdsIcon/FdsIcon.vue'
|
|
4
|
-
import { useHasSlot } from '@/composables/useHasSlots'
|
|
5
2
|
import { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
|
3
|
+
import { useHasSlot } from '../../composables/useHasSlots'
|
|
4
|
+
import FdsButtonIcon from '../Buttons/FdsButtonIcon/FdsButtonIcon.vue'
|
|
5
|
+
import FdsIcon from '../FdsIcon/FdsIcon.vue'
|
|
6
6
|
import type { FdsModalProps } from './types'
|
|
7
7
|
|
|
8
8
|
const props = withDefaults(defineProps<FdsModalProps>(), {
|
|
@@ -211,34 +211,16 @@ onBeforeUnmount(() => {
|
|
|
211
211
|
|
|
212
212
|
<template>
|
|
213
213
|
<Teleport to="body">
|
|
214
|
-
<div
|
|
215
|
-
v-if="isOpen"
|
|
216
|
-
@click="handleBackdropClick"
|
|
217
|
-
:class="modalOuterClasses"
|
|
218
|
-
>
|
|
214
|
+
<div v-if="isOpen" @click="handleBackdropClick" :class="modalOuterClasses">
|
|
219
215
|
<!-- Backdrop -->
|
|
220
216
|
<div class="fixed top-0 left-0 w-full h-full bg-black/34 z-99"></div>
|
|
221
217
|
|
|
222
218
|
<!-- Modal Inner -->
|
|
223
|
-
<div
|
|
224
|
-
class="fds-modal-inner"
|
|
225
|
-
:class="modalInnerClasses"
|
|
226
|
-
role="alertdialog"
|
|
227
|
-
aria-modal="true"
|
|
228
|
-
@click.stop
|
|
229
|
-
>
|
|
219
|
+
<div class="fds-modal-inner" :class="modalInnerClasses" role="alertdialog" aria-modal="true" @click.stop>
|
|
230
220
|
<!-- Header -->
|
|
231
221
|
<div class="flex justify-between mb-4">
|
|
232
|
-
<h3
|
|
233
|
-
|
|
234
|
-
:class="headerTitleClasses"
|
|
235
|
-
>
|
|
236
|
-
<FdsIcon
|
|
237
|
-
v-if="iconName"
|
|
238
|
-
:name="iconName"
|
|
239
|
-
:size="24"
|
|
240
|
-
:class="iconClasses"
|
|
241
|
-
/>
|
|
222
|
+
<h3 tabindex="-1" :class="headerTitleClasses">
|
|
223
|
+
<FdsIcon v-if="iconName" :name="iconName" :size="24" :class="iconClasses" />
|
|
242
224
|
{{ heading }}
|
|
243
225
|
</h3>
|
|
244
226
|
<FdsButtonIcon
|
|
@@ -257,10 +239,7 @@ onBeforeUnmount(() => {
|
|
|
257
239
|
</div>
|
|
258
240
|
|
|
259
241
|
<!-- Footer -->
|
|
260
|
-
<div
|
|
261
|
-
v-if="hasFooterSlot"
|
|
262
|
-
:class="footerClasses"
|
|
263
|
-
>
|
|
242
|
+
<div v-if="hasFooterSlot" :class="footerClasses">
|
|
264
243
|
<slot name="modal-footer" />
|
|
265
244
|
</div>
|
|
266
245
|
</div>
|