@saasmakers/ui 0.1.79 → 0.1.81
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/app/components/bases/BaseAlert.stories.ts +42 -0
- package/app/components/bases/BaseAvatar.stories.ts +18 -0
- package/app/components/bases/BaseBordered.stories.ts +22 -0
- package/app/components/bases/BaseButton.stories.ts +81 -0
- package/app/components/bases/BaseCharacter.stories.ts +31 -0
- package/app/components/bases/BaseChart.stories.ts +20 -0
- package/app/components/bases/BaseDivider.stories.ts +25 -0
- package/app/components/bases/BaseEmoji.stories.ts +28 -0
- package/app/components/bases/BaseHeading.stories.ts +49 -0
- package/app/components/bases/BaseIcon.stories.ts +56 -0
- package/app/components/bases/BaseMessage.stories.ts +20 -0
- package/app/components/bases/BaseMetric.stories.ts +39 -0
- package/app/components/bases/BaseOverlay.stories.ts +30 -0
- package/app/components/bases/BaseParagraph.stories.ts +36 -0
- package/app/components/bases/BasePower.stories.ts +59 -0
- package/app/components/bases/BaseQuote.stories.ts +63 -0
- package/app/components/bases/BaseQuote.vue +5 -5
- package/app/components/bases/BaseSpinner.stories.ts +42 -0
- package/app/components/bases/BaseTag.stories.ts +44 -0
- package/app/components/bases/BaseTags.stories.ts +42 -0
- package/app/components/bases/BaseText.stories.ts +48 -0
- package/app/components/bases/BaseToast.stories.ts +29 -0
- package/app/components/fields/FieldCheckbox.stories.ts +36 -0
- package/app/components/fields/FieldDays.stories.ts +10 -0
- package/app/components/fields/FieldEmojis.stories.ts +10 -0
- package/app/components/fields/FieldInput.stories.ts +80 -0
- package/app/components/fields/FieldLabel.stories.ts +30 -0
- package/app/components/fields/FieldMessage.stories.ts +22 -0
- package/app/components/fields/FieldSelect.stories.ts +73 -0
- package/app/components/fields/FieldTabs.stories.ts +44 -0
- package/app/components/fields/FieldTextarea.stories.ts +44 -0
- package/app/components/fields/FieldTime.stories.ts +39 -0
- package/app/components/layout/LayoutToasts.stories.ts +8 -0
- package/app/types/bases.d.ts +1 -1
- package/app/types/global.d.ts +3 -0
- package/nuxt.config.ts +1 -0
- package/package.json +4 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import BaseAlert from './BaseAlert.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseAlert,
|
|
5
|
+
title: 'Bases/BaseAlert',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
closingId: { control: 'text' },
|
|
9
|
+
isClosable: { control: 'boolean' },
|
|
10
|
+
size: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: [
|
|
13
|
+
'2xs',
|
|
14
|
+
'xs',
|
|
15
|
+
'sm',
|
|
16
|
+
'base',
|
|
17
|
+
'lg',
|
|
18
|
+
'xl',
|
|
19
|
+
'2xl',
|
|
20
|
+
'3xl',
|
|
21
|
+
'4xl',
|
|
22
|
+
] satisfies BaseSize[],
|
|
23
|
+
},
|
|
24
|
+
status: {
|
|
25
|
+
control: 'select',
|
|
26
|
+
options: [
|
|
27
|
+
'error',
|
|
28
|
+
'info',
|
|
29
|
+
'success',
|
|
30
|
+
'warning',
|
|
31
|
+
] satisfies BaseStatus[],
|
|
32
|
+
},
|
|
33
|
+
text: { control: 'text' },
|
|
34
|
+
},
|
|
35
|
+
} satisfies Meta<typeof BaseAlert>
|
|
36
|
+
|
|
37
|
+
export const Default: StoryObj<typeof BaseAlert> = {
|
|
38
|
+
args: {
|
|
39
|
+
status: 'info',
|
|
40
|
+
text: 'This is an alert message',
|
|
41
|
+
} satisfies Partial<BaseAlert>,
|
|
42
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import BaseAvatar from './BaseAvatar.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseAvatar,
|
|
5
|
+
title: 'Bases/BaseAvatar',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
bordered: { control: 'boolean' },
|
|
9
|
+
borderWidth: { control: 'number' },
|
|
10
|
+
circular: { control: 'boolean' },
|
|
11
|
+
editable: { control: 'boolean' },
|
|
12
|
+
maxSizeMb: { control: 'number' },
|
|
13
|
+
shadow: { control: 'boolean' },
|
|
14
|
+
src: { control: 'text' },
|
|
15
|
+
},
|
|
16
|
+
} satisfies Meta<typeof BaseAvatar>
|
|
17
|
+
|
|
18
|
+
export const Default: StoryObj<typeof BaseAvatar> = { args: { src: 'https://via.placeholder.com/100' } satisfies Partial<BaseAvatar> }
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import BaseBordered from './BaseBordered.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseBordered,
|
|
5
|
+
title: 'Bases/BaseBordered',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
background: {
|
|
9
|
+
control: 'select',
|
|
10
|
+
options: ['gray', 'white'] satisfies BaseBackground[],
|
|
11
|
+
},
|
|
12
|
+
borderColor: {
|
|
13
|
+
control: 'select',
|
|
14
|
+
options: ['black', 'gray'] satisfies BaseBorderedColor[],
|
|
15
|
+
},
|
|
16
|
+
hasBorder: { control: 'boolean' },
|
|
17
|
+
shadow: { control: 'boolean' },
|
|
18
|
+
title: { control: 'text' },
|
|
19
|
+
},
|
|
20
|
+
} satisfies Meta<typeof BaseBordered>
|
|
21
|
+
|
|
22
|
+
export const Default: StoryObj<typeof BaseBordered> = { args: { title: 'Bordered Container' } satisfies Partial<BaseBordered> }
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import BaseButton from './BaseButton.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseButton,
|
|
5
|
+
title: 'Bases/BaseButton',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
background: { control: 'boolean' },
|
|
9
|
+
circular: { control: 'boolean' },
|
|
10
|
+
color: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: [
|
|
13
|
+
'black',
|
|
14
|
+
'gray',
|
|
15
|
+
'green',
|
|
16
|
+
'indigo',
|
|
17
|
+
'orange',
|
|
18
|
+
'red',
|
|
19
|
+
'white',
|
|
20
|
+
] satisfies BaseColor[],
|
|
21
|
+
},
|
|
22
|
+
confirmation: { control: 'boolean' },
|
|
23
|
+
disabled: { control: 'boolean' },
|
|
24
|
+
fullWidth: { control: 'boolean' },
|
|
25
|
+
icon: { control: 'text' },
|
|
26
|
+
iconColor: {
|
|
27
|
+
control: 'select',
|
|
28
|
+
options: [
|
|
29
|
+
'black',
|
|
30
|
+
'gray',
|
|
31
|
+
'green',
|
|
32
|
+
'indigo',
|
|
33
|
+
'orange',
|
|
34
|
+
'red',
|
|
35
|
+
'white',
|
|
36
|
+
] satisfies BaseColor[],
|
|
37
|
+
},
|
|
38
|
+
light: { control: 'boolean' },
|
|
39
|
+
loading: { control: 'boolean' },
|
|
40
|
+
reverse: { control: 'boolean' },
|
|
41
|
+
rounded: {
|
|
42
|
+
control: 'select',
|
|
43
|
+
options: [
|
|
44
|
+
'none',
|
|
45
|
+
'sm',
|
|
46
|
+
'base',
|
|
47
|
+
'md',
|
|
48
|
+
'lg',
|
|
49
|
+
'xl',
|
|
50
|
+
'full',
|
|
51
|
+
] satisfies BaseButtonRounded[],
|
|
52
|
+
},
|
|
53
|
+
size: {
|
|
54
|
+
control: 'select',
|
|
55
|
+
options: [
|
|
56
|
+
'2xs',
|
|
57
|
+
'xs',
|
|
58
|
+
'sm',
|
|
59
|
+
'base',
|
|
60
|
+
'lg',
|
|
61
|
+
'xl',
|
|
62
|
+
] satisfies BaseButtonSize[],
|
|
63
|
+
},
|
|
64
|
+
text: { control: 'text' },
|
|
65
|
+
type: {
|
|
66
|
+
control: 'select',
|
|
67
|
+
options: [
|
|
68
|
+
'button',
|
|
69
|
+
'reset',
|
|
70
|
+
'submit',
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
} satisfies Meta<typeof BaseButton>
|
|
75
|
+
|
|
76
|
+
export const Default: StoryObj<typeof BaseButton> = {
|
|
77
|
+
args: {
|
|
78
|
+
color: 'black',
|
|
79
|
+
text: 'Update profile',
|
|
80
|
+
} satisfies Partial<BaseButton>,
|
|
81
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import BaseCharacter from './BaseCharacter.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseCharacter,
|
|
5
|
+
title: 'Bases/BaseCharacter',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
character: {
|
|
9
|
+
control: 'select',
|
|
10
|
+
options: [
|
|
11
|
+
'anthony',
|
|
12
|
+
'julien',
|
|
13
|
+
'mathieu',
|
|
14
|
+
'nada',
|
|
15
|
+
'power',
|
|
16
|
+
'yoda',
|
|
17
|
+
] satisfies BaseCharacterCharacter[],
|
|
18
|
+
},
|
|
19
|
+
size: {
|
|
20
|
+
control: 'select',
|
|
21
|
+
options: [
|
|
22
|
+
'xs',
|
|
23
|
+
'sm',
|
|
24
|
+
'base',
|
|
25
|
+
'lg',
|
|
26
|
+
] satisfies BaseCharacterSize[],
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
} satisfies Meta<typeof BaseCharacter>
|
|
30
|
+
|
|
31
|
+
export const Default: StoryObj<typeof BaseCharacter> = { args: { character: 'power' } satisfies Partial<BaseCharacter> }
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import BaseChart from './BaseChart.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseChart,
|
|
5
|
+
title: 'Bases/BaseChart',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
fullWidth: { control: 'boolean' },
|
|
9
|
+
type: {
|
|
10
|
+
control: 'select',
|
|
11
|
+
options: [
|
|
12
|
+
'bar',
|
|
13
|
+
'line',
|
|
14
|
+
'pie',
|
|
15
|
+
] satisfies BaseChartType[],
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
} satisfies Meta<typeof BaseChart>
|
|
19
|
+
|
|
20
|
+
export const Default: StoryObj<typeof BaseChart> = { args: { type: 'bar' } satisfies Partial<BaseChart> }
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import BaseDivider from './BaseDivider.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseDivider,
|
|
5
|
+
title: 'Bases/BaseDivider',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
borderStyle: {
|
|
9
|
+
control: 'select',
|
|
10
|
+
options: [
|
|
11
|
+
'dashed',
|
|
12
|
+
'dotted',
|
|
13
|
+
'solid',
|
|
14
|
+
] satisfies BaseDividerBorderStyle[],
|
|
15
|
+
},
|
|
16
|
+
margin: { control: 'number' },
|
|
17
|
+
size: {
|
|
18
|
+
control: 'select',
|
|
19
|
+
options: ['sm', 'base'] satisfies BaseDividerSize[],
|
|
20
|
+
},
|
|
21
|
+
title: { control: 'text' },
|
|
22
|
+
},
|
|
23
|
+
} satisfies Meta<typeof BaseDivider>
|
|
24
|
+
|
|
25
|
+
export const Default: StoryObj<typeof BaseDivider> = { args: { title: 'Divider Title' } satisfies Partial<BaseDivider> }
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import BaseEmoji from './BaseEmoji.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseEmoji,
|
|
5
|
+
title: 'Bases/BaseEmoji',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
clickable: { control: 'boolean' },
|
|
9
|
+
emoji: { control: 'text' },
|
|
10
|
+
hasBox: { control: 'boolean' },
|
|
11
|
+
size: {
|
|
12
|
+
control: 'select',
|
|
13
|
+
options: [
|
|
14
|
+
'2xs',
|
|
15
|
+
'xs',
|
|
16
|
+
'sm',
|
|
17
|
+
'base',
|
|
18
|
+
'lg',
|
|
19
|
+
'xl',
|
|
20
|
+
'2xl',
|
|
21
|
+
'3xl',
|
|
22
|
+
'4xl',
|
|
23
|
+
] satisfies BaseSize[],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
} satisfies Meta<typeof BaseEmoji>
|
|
27
|
+
|
|
28
|
+
export const Default: StoryObj<typeof BaseEmoji> = { args: { emoji: '😀' } satisfies Partial<BaseEmoji> }
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import BaseHeading from './BaseHeading.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseHeading,
|
|
5
|
+
title: 'Bases/BaseHeading',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
alignment: {
|
|
9
|
+
control: 'select',
|
|
10
|
+
options: [
|
|
11
|
+
'center',
|
|
12
|
+
'left',
|
|
13
|
+
'right',
|
|
14
|
+
] satisfies BaseAlignment[],
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
control: 'select',
|
|
18
|
+
options: [
|
|
19
|
+
'xs',
|
|
20
|
+
'sm',
|
|
21
|
+
'base',
|
|
22
|
+
'lg',
|
|
23
|
+
'xl',
|
|
24
|
+
] satisfies BaseHeadingSize[],
|
|
25
|
+
},
|
|
26
|
+
tag: {
|
|
27
|
+
control: 'select',
|
|
28
|
+
options: [
|
|
29
|
+
'h1',
|
|
30
|
+
'h2',
|
|
31
|
+
'h3',
|
|
32
|
+
'h4',
|
|
33
|
+
'h5',
|
|
34
|
+
'h6',
|
|
35
|
+
] satisfies BaseHeadingTag[],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
} satisfies Meta<typeof BaseHeading>
|
|
39
|
+
|
|
40
|
+
export const Default: StoryObj<typeof BaseHeading> = {
|
|
41
|
+
args: { tag: 'h1' } satisfies Partial<BaseHeading>,
|
|
42
|
+
render: args => ({
|
|
43
|
+
components: { BaseHeading },
|
|
44
|
+
setup() {
|
|
45
|
+
return { args }
|
|
46
|
+
},
|
|
47
|
+
template: '<BaseHeading v-bind="args">Heading Text</BaseHeading>',
|
|
48
|
+
}),
|
|
49
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import BaseIcon from './BaseIcon.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseIcon,
|
|
5
|
+
title: 'Bases/BaseIcon',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
bold: { control: 'boolean' },
|
|
9
|
+
clickable: { control: 'boolean' },
|
|
10
|
+
color: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: [
|
|
13
|
+
'black',
|
|
14
|
+
'gray',
|
|
15
|
+
'green',
|
|
16
|
+
'indigo',
|
|
17
|
+
'orange',
|
|
18
|
+
'red',
|
|
19
|
+
'white',
|
|
20
|
+
] satisfies BaseColor[],
|
|
21
|
+
},
|
|
22
|
+
confirmation: { control: 'boolean' },
|
|
23
|
+
icon: { control: 'text' },
|
|
24
|
+
loading: { control: 'boolean' },
|
|
25
|
+
reverse: { control: 'boolean' },
|
|
26
|
+
size: {
|
|
27
|
+
control: 'select',
|
|
28
|
+
options: [
|
|
29
|
+
'2xs',
|
|
30
|
+
'xs',
|
|
31
|
+
'sm',
|
|
32
|
+
'base',
|
|
33
|
+
'lg',
|
|
34
|
+
'xl',
|
|
35
|
+
'2xl',
|
|
36
|
+
'3xl',
|
|
37
|
+
'4xl',
|
|
38
|
+
] satisfies BaseSize[],
|
|
39
|
+
},
|
|
40
|
+
status: {
|
|
41
|
+
control: 'select',
|
|
42
|
+
options: [
|
|
43
|
+
'error',
|
|
44
|
+
'info',
|
|
45
|
+
'success',
|
|
46
|
+
'warning',
|
|
47
|
+
] satisfies BaseStatus[],
|
|
48
|
+
},
|
|
49
|
+
text: { control: 'text' },
|
|
50
|
+
truncate: { control: 'boolean' },
|
|
51
|
+
underline: { control: 'boolean' },
|
|
52
|
+
uppercase: { control: 'boolean' },
|
|
53
|
+
},
|
|
54
|
+
} satisfies Meta<typeof BaseIcon>
|
|
55
|
+
|
|
56
|
+
export const Default: StoryObj<typeof BaseIcon> = { args: { text: 'Icon Text' } satisfies Partial<BaseIcon> }
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import BaseMessage from './BaseMessage.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseMessage,
|
|
5
|
+
title: 'Bases/BaseMessage',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
bordered: { control: 'boolean' },
|
|
9
|
+
description: { control: 'text' },
|
|
10
|
+
legend: { control: 'text' },
|
|
11
|
+
title: { control: 'text' },
|
|
12
|
+
},
|
|
13
|
+
} satisfies Meta<typeof BaseMessage>
|
|
14
|
+
|
|
15
|
+
export const Default: StoryObj<typeof BaseMessage> = {
|
|
16
|
+
args: {
|
|
17
|
+
description: 'This is a message description',
|
|
18
|
+
title: 'Message Title',
|
|
19
|
+
} satisfies Partial<BaseMessage>,
|
|
20
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import BaseMetric from './BaseMetric.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseMetric,
|
|
5
|
+
title: 'Bases/BaseMetric',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
alignment: {
|
|
9
|
+
control: 'select',
|
|
10
|
+
options: [
|
|
11
|
+
'center',
|
|
12
|
+
'left',
|
|
13
|
+
'right',
|
|
14
|
+
] satisfies BaseMetricAlignment[],
|
|
15
|
+
},
|
|
16
|
+
performance: {
|
|
17
|
+
control: 'select',
|
|
18
|
+
options: [
|
|
19
|
+
'down',
|
|
20
|
+
'equal',
|
|
21
|
+
'up',
|
|
22
|
+
] satisfies BaseMetricPerformance[],
|
|
23
|
+
},
|
|
24
|
+
performanceTooltip: { control: 'text' },
|
|
25
|
+
size: {
|
|
26
|
+
control: 'select',
|
|
27
|
+
options: ['sm', 'base'] satisfies BaseMetricSize[],
|
|
28
|
+
},
|
|
29
|
+
title: { control: 'text' },
|
|
30
|
+
value: { control: 'text' },
|
|
31
|
+
},
|
|
32
|
+
} satisfies Meta<typeof BaseMetric>
|
|
33
|
+
|
|
34
|
+
export const Default: StoryObj<typeof BaseMetric> = {
|
|
35
|
+
args: {
|
|
36
|
+
title: 'Metric Title',
|
|
37
|
+
value: '100',
|
|
38
|
+
} satisfies Partial<BaseMetric>,
|
|
39
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import BaseOverlay from './BaseOverlay.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseOverlay,
|
|
5
|
+
title: 'Bases/BaseOverlay',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
active: { control: 'boolean' },
|
|
9
|
+
clickable: { control: 'boolean' },
|
|
10
|
+
fixed: { control: 'boolean' },
|
|
11
|
+
hasClose: { control: 'boolean' },
|
|
12
|
+
opacity: {
|
|
13
|
+
control: 'select',
|
|
14
|
+
options: [
|
|
15
|
+
0,
|
|
16
|
+
25,
|
|
17
|
+
50,
|
|
18
|
+
75,
|
|
19
|
+
95,
|
|
20
|
+
100,
|
|
21
|
+
] satisfies BaseOverlayOpacity[],
|
|
22
|
+
},
|
|
23
|
+
position: {
|
|
24
|
+
control: 'select',
|
|
25
|
+
options: ['absolute', 'fixed'] satisfies BaseOverlayPosition[],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
} satisfies Meta<typeof BaseOverlay>
|
|
29
|
+
|
|
30
|
+
export const Default: StoryObj<typeof BaseOverlay> = { args: { active: true } satisfies Partial<BaseOverlay> }
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import BaseParagraph from './BaseParagraph.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseParagraph,
|
|
5
|
+
title: 'Bases/BaseParagraph',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
alignment: {
|
|
9
|
+
control: 'select',
|
|
10
|
+
options: [
|
|
11
|
+
'center',
|
|
12
|
+
'left',
|
|
13
|
+
'right',
|
|
14
|
+
] satisfies BaseParagraphAlignment[],
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
control: 'select',
|
|
18
|
+
options: [
|
|
19
|
+
'sm',
|
|
20
|
+
'base',
|
|
21
|
+
'lg',
|
|
22
|
+
] satisfies BaseParagraphSize[],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
} satisfies Meta<typeof BaseParagraph>
|
|
26
|
+
|
|
27
|
+
export const Default: StoryObj<typeof BaseParagraph> = {
|
|
28
|
+
args: {},
|
|
29
|
+
render: args => ({
|
|
30
|
+
components: { BaseParagraph },
|
|
31
|
+
setup() {
|
|
32
|
+
return { args }
|
|
33
|
+
},
|
|
34
|
+
template: '<BaseParagraph v-bind="args">This is a paragraph text.</BaseParagraph>',
|
|
35
|
+
}),
|
|
36
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import BasePower from './BasePower.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BasePower,
|
|
5
|
+
title: 'Bases/BasePower',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
animated: { control: 'boolean' },
|
|
9
|
+
power: {
|
|
10
|
+
control: 'select',
|
|
11
|
+
options: [
|
|
12
|
+
'401',
|
|
13
|
+
'404',
|
|
14
|
+
'500',
|
|
15
|
+
'angry',
|
|
16
|
+
'bag',
|
|
17
|
+
'bank',
|
|
18
|
+
'book',
|
|
19
|
+
'browser',
|
|
20
|
+
'chair',
|
|
21
|
+
'christmas',
|
|
22
|
+
'city',
|
|
23
|
+
'city-bis',
|
|
24
|
+
'coffee',
|
|
25
|
+
'computer-book',
|
|
26
|
+
'computer-coffee',
|
|
27
|
+
'dead',
|
|
28
|
+
'easter',
|
|
29
|
+
'hourglass',
|
|
30
|
+
'invite',
|
|
31
|
+
'ko',
|
|
32
|
+
'love',
|
|
33
|
+
'magic',
|
|
34
|
+
'popcorn',
|
|
35
|
+
'radar',
|
|
36
|
+
'rocket',
|
|
37
|
+
'smiling',
|
|
38
|
+
'social-networks',
|
|
39
|
+
'starwars',
|
|
40
|
+
'teach',
|
|
41
|
+
'typewriter',
|
|
42
|
+
'website',
|
|
43
|
+
'welcome',
|
|
44
|
+
'writer',
|
|
45
|
+
] satisfies BasePowerPower[],
|
|
46
|
+
},
|
|
47
|
+
size: {
|
|
48
|
+
control: 'select',
|
|
49
|
+
options: [
|
|
50
|
+
'xs',
|
|
51
|
+
'sm',
|
|
52
|
+
'base',
|
|
53
|
+
'lg',
|
|
54
|
+
] satisfies BasePowerSize[],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
} satisfies Meta<typeof BasePower>
|
|
58
|
+
|
|
59
|
+
export const Default: StoryObj<typeof BasePower> = { args: { power: 'rocket' } satisfies Partial<BasePower> }
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import BaseQuote from './BaseQuote.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
component: BaseQuote,
|
|
5
|
+
title: 'Bases/BaseQuote',
|
|
6
|
+
|
|
7
|
+
argTypes: {
|
|
8
|
+
background: {
|
|
9
|
+
control: 'select',
|
|
10
|
+
options: [
|
|
11
|
+
'gray',
|
|
12
|
+
'gray-light',
|
|
13
|
+
'white',
|
|
14
|
+
] satisfies BaseQuoteBackground[],
|
|
15
|
+
},
|
|
16
|
+
character: {
|
|
17
|
+
control: 'select',
|
|
18
|
+
options: [
|
|
19
|
+
'anthony',
|
|
20
|
+
'julien',
|
|
21
|
+
'mathieu',
|
|
22
|
+
'nada',
|
|
23
|
+
'power',
|
|
24
|
+
'yoda',
|
|
25
|
+
] satisfies BaseCharacterCharacter[],
|
|
26
|
+
},
|
|
27
|
+
clickable: { control: 'boolean' },
|
|
28
|
+
closingId: { control: 'text' },
|
|
29
|
+
forceSlot: { control: 'boolean' },
|
|
30
|
+
hasClose: { control: 'boolean' },
|
|
31
|
+
hideCharacterOnMobile: { control: 'boolean' },
|
|
32
|
+
noMargin: { control: 'boolean' },
|
|
33
|
+
reverse: { control: 'boolean' },
|
|
34
|
+
size: {
|
|
35
|
+
control: 'select',
|
|
36
|
+
options: [
|
|
37
|
+
'xs',
|
|
38
|
+
'sm',
|
|
39
|
+
'base',
|
|
40
|
+
] satisfies BaseQuoteSize[],
|
|
41
|
+
},
|
|
42
|
+
status: {
|
|
43
|
+
control: 'select',
|
|
44
|
+
options: [
|
|
45
|
+
'error',
|
|
46
|
+
'info',
|
|
47
|
+
'success',
|
|
48
|
+
'warning',
|
|
49
|
+
] satisfies BaseStatus[],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
} satisfies Meta<typeof BaseQuote>
|
|
53
|
+
|
|
54
|
+
export const Default: StoryObj<typeof BaseQuote> = {
|
|
55
|
+
args: {},
|
|
56
|
+
render: args => ({
|
|
57
|
+
components: { BaseQuote },
|
|
58
|
+
setup() {
|
|
59
|
+
return { args }
|
|
60
|
+
},
|
|
61
|
+
template: '<BaseQuote v-bind="args">This is a quote text.</BaseQuote>',
|
|
62
|
+
}),
|
|
63
|
+
}
|
|
@@ -90,7 +90,7 @@ function onClose(event: MouseEvent) {
|
|
|
90
90
|
:size="size"
|
|
91
91
|
/>
|
|
92
92
|
|
|
93
|
-
<div class="flex flex-1 flex-col normal-case">
|
|
93
|
+
<div class="flex flex-1 flex-col font-semibold normal-case">
|
|
94
94
|
<div
|
|
95
95
|
class="rounded-2xl text-left transition duration-300"
|
|
96
96
|
:class="{
|
|
@@ -103,10 +103,10 @@ function onClose(event: MouseEvent) {
|
|
|
103
103
|
'px-5 py-4 text-base leading-7 sm:text-lg sm:leading-8': size === 'base',
|
|
104
104
|
'border': status,
|
|
105
105
|
'text-black dark:text-white': !status,
|
|
106
|
-
'border-red-
|
|
107
|
-
'border-indigo-
|
|
108
|
-
'border-green-
|
|
109
|
-
'border-orange-
|
|
106
|
+
'border-red-600 dark:border-red-400 text-red-600 dark:text-red-400': status === 'error',
|
|
107
|
+
'border-indigo-600 dark:border-indigo-400 text-indigo-600 dark:text-indigo-400': status === 'info',
|
|
108
|
+
'border-green-600 dark:border-green-400 text-green-600 dark:text-green-400': status === 'success',
|
|
109
|
+
'border-orange-600 dark:border-orange-400 text-orange-600 dark:text-orange-400': status === 'warning',
|
|
110
110
|
}"
|
|
111
111
|
@click="onBubbleClick"
|
|
112
112
|
>
|