tide-design-system 2.1.12 → 2.1.13
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/.storybook/main.ts +1 -1
- package/dist/IconVerified-000f615f.js +20 -0
- package/dist/IconVerified-b71255f2.cjs +2 -0
- package/dist/css/utilities-lg.css +2 -1
- package/dist/css/utilities-md.css +2 -1
- package/dist/css/utilities-sm.css +2 -1
- package/dist/css/utilities-xl.css +2 -1
- package/dist/css/utilities.css +2 -1
- package/dist/css/variables.css +7 -15
- package/dist/style.css +1 -1
- package/dist/tide-design-system.cjs +2 -2
- package/dist/tide-design-system.esm.d.ts +112 -123
- package/dist/tide-design-system.esm.js +565 -594
- package/index.ts +2 -8
- package/package.json +1 -1
- package/src/assets/css/utilities-lg.css +2 -1
- package/src/assets/css/utilities-md.css +2 -1
- package/src/assets/css/utilities-sm.css +2 -1
- package/src/assets/css/utilities-xl.css +2 -1
- package/src/assets/css/utilities.css +2 -1
- package/src/assets/css/variables.css +7 -15
- package/src/assets/svg/icons/IconVerified.svg +1 -0
- package/src/components/TideAccordionItem.vue +2 -4
- package/src/components/TideBadge.vue +17 -6
- package/src/components/TideBadgeTrustedPartner.vue +2 -2
- package/src/components/TideBadgeVerifiedVehicle.vue +32 -0
- package/src/stories/FoundationsShadow.stories.ts +27 -8
- package/src/stories/TideBadge.stories.ts +13 -2
- package/src/stories/TideBadgeVerifiedVehicle.stories.ts +20 -0
- package/src/types/Badge.ts +0 -14
- package/src/types/Styles.ts +1 -0
- package/dist/IconVerified-04c12500.cjs +0 -2
- package/dist/IconVerified-a78449ea.js +0 -16
- package/src/components/TideBadgePremium.vue +0 -31
- package/src/stories/TideBadgePremium.stories.ts +0 -31
package/index.ts
CHANGED
|
@@ -2,7 +2,6 @@ import TideAccordionItem from '@/components/TideAccordionItem.vue';
|
|
|
2
2
|
import TideAlert from '@/components/TideAlert.vue';
|
|
3
3
|
import TideBackgroundImage from '@/components/TideBackgroundImage.vue';
|
|
4
4
|
import TideBadge from '@/components/TideBadge.vue';
|
|
5
|
-
import TideBadgePremium from '@/components/TideBadgePremium.vue';
|
|
6
5
|
import TideBadgeTrustedPartner from '@/components/TideBadgeTrustedPartner.vue';
|
|
7
6
|
import TideBreadCrumbs from '@/components/TideBreadCrumbs.vue';
|
|
8
7
|
import TideButton from '@/components/TideButton.vue';
|
|
@@ -30,7 +29,7 @@ import TidePagination from '@/components/TidePagination.vue';
|
|
|
30
29
|
import TideSeoLinks from '@/components/TideSeoLinks.vue';
|
|
31
30
|
import TideSwitch from '@/components/TideSwitch.vue';
|
|
32
31
|
import { ALERT } from '@/types/Alert';
|
|
33
|
-
import {
|
|
32
|
+
import { BADGE_TRUSTED } from '@/types/Badge';
|
|
34
33
|
import { BREAKPOINT, MEDIA } from '@/types/Breakpoint';
|
|
35
34
|
import { TYPE_CARD } from '@/types/Card';
|
|
36
35
|
import { ELEMENT, ELEMENT_TEXT_AS_ICON } from '@/types/Element';
|
|
@@ -47,7 +46,7 @@ import { TEXT_INPUT_TYPE } from '@/types/TextInput';
|
|
|
47
46
|
import { VALIDATOR } from '@/types/Validation';
|
|
48
47
|
|
|
49
48
|
import type { Alert } from '@/types/Alert';
|
|
50
|
-
import type {
|
|
49
|
+
import type { BadgeTrustedYears } from '@/types/Badge';
|
|
51
50
|
import type { BreadCrumb } from '@/types/BreadCrumb';
|
|
52
51
|
import type { Breakpoint, Media } from '@/types/Breakpoint';
|
|
53
52
|
import type { CardType } from '@/types/Card';
|
|
@@ -99,8 +98,6 @@ import '@/assets/css/main.css';
|
|
|
99
98
|
|
|
100
99
|
export type {
|
|
101
100
|
Alert,
|
|
102
|
-
Badge,
|
|
103
|
-
BadgePremium,
|
|
104
101
|
BadgeTrustedYears,
|
|
105
102
|
BooleanField,
|
|
106
103
|
BooleanInput,
|
|
@@ -160,8 +157,6 @@ export type {
|
|
|
160
157
|
|
|
161
158
|
export {
|
|
162
159
|
ALERT,
|
|
163
|
-
BADGE,
|
|
164
|
-
BADGE_PREMIUM,
|
|
165
160
|
BADGE_TRUSTED,
|
|
166
161
|
BREAKPOINT,
|
|
167
162
|
CSS,
|
|
@@ -189,7 +184,6 @@ export {
|
|
|
189
184
|
TideAlert,
|
|
190
185
|
TideBackgroundImage,
|
|
191
186
|
TideBadge,
|
|
192
|
-
TideBadgePremium,
|
|
193
187
|
TideBadgeTrustedPartner,
|
|
194
188
|
TideBreadCrumbs,
|
|
195
189
|
TideButton,
|
package/package.json
CHANGED
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
.lg-tide-margin-bottom-auto {margin-bottom: var(--tide-spacing-auto);}
|
|
112
112
|
|
|
113
113
|
.lg-tide-margin-left-0 {margin-left: 0;}
|
|
114
|
-
.lg-tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/
|
|
114
|
+
.lg-tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/4);}
|
|
115
115
|
.lg-tide-margin-left-1\/2 {margin-left: var(--tide-spacing-1\/2);}
|
|
116
116
|
.lg-tide-margin-left-1 {margin-left: var(--tide-spacing-1);}
|
|
117
117
|
.lg-tide-margin-left-2 {margin-left: var(--tide-spacing-2);}
|
|
@@ -360,6 +360,7 @@
|
|
|
360
360
|
.lg-tide-shadow-initial {box-shadow: initial;}
|
|
361
361
|
.lg-tide-shadow-bottom {box-shadow: var(--tide-shadow-bottom);}
|
|
362
362
|
.lg-tide-shadow-top {box-shadow: var(--tide-shadow-top);}
|
|
363
|
+
.lg-tide-shadow-text {text-shadow: var(--tide-shadow-text);}
|
|
363
364
|
|
|
364
365
|
.lg-tide-text-center {text-align: center;}
|
|
365
366
|
.lg-tide-text-left {text-align: left;}
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
.md-tide-margin-bottom-auto {margin-bottom: var(--tide-spacing-auto);}
|
|
114
114
|
|
|
115
115
|
.md-tide-margin-left-0 {margin-left: 0;}
|
|
116
|
-
.md-tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/
|
|
116
|
+
.md-tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/4);}
|
|
117
117
|
.md-tide-margin-left-1\/2 {margin-left: var(--tide-spacing-1\/2);}
|
|
118
118
|
.md-tide-margin-left-1 {margin-left: var(--tide-spacing-1);}
|
|
119
119
|
.md-tide-margin-left-2 {margin-left: var(--tide-spacing-2);}
|
|
@@ -362,6 +362,7 @@
|
|
|
362
362
|
.md-tide-shadow-initial {box-shadow: initial;}
|
|
363
363
|
.md-tide-shadow-bottom {box-shadow: var(--tide-shadow-bottom);}
|
|
364
364
|
.md-tide-shadow-top {box-shadow: var(--tide-shadow-top);}
|
|
365
|
+
.md-tide-shadow-text {text-shadow: var(--tide-shadow-text);}
|
|
365
366
|
|
|
366
367
|
.md-tide-text-center {text-align: center;}
|
|
367
368
|
.md-tide-text-left {text-align: left;}
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
.sm-tide-margin-bottom-auto {margin-bottom: var(--tide-spacing-auto);}
|
|
112
112
|
|
|
113
113
|
.sm-tide-margin-left-0 {margin-left: 0;}
|
|
114
|
-
.sm-tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/
|
|
114
|
+
.sm-tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/4);}
|
|
115
115
|
.sm-tide-margin-left-1\/2 {margin-left: var(--tide-spacing-1\/2);}
|
|
116
116
|
.sm-tide-margin-left-1 {margin-left: var(--tide-spacing-1);}
|
|
117
117
|
.sm-tide-margin-left-2 {margin-left: var(--tide-spacing-2);}
|
|
@@ -360,6 +360,7 @@
|
|
|
360
360
|
.sm-tide-shadow-initial {box-shadow: initial;}
|
|
361
361
|
.sm-tide-shadow-bottom {box-shadow: var(--tide-shadow-bottom);}
|
|
362
362
|
.sm-tide-shadow-top {box-shadow: var(--tide-shadow-top);}
|
|
363
|
+
.sm-tide-shadow-text {text-shadow: var(--tide-shadow-text);}
|
|
363
364
|
|
|
364
365
|
.sm-tide-text-center {text-align: center;}
|
|
365
366
|
.sm-tide-text-left {text-align: left;}
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
.lg-tide-margin-bottom-auto {margin-bottom: var(--tide-spacing-auto);}
|
|
112
112
|
|
|
113
113
|
.lg-tide-margin-left-0 {margin-left: 0;}
|
|
114
|
-
.lg-tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/
|
|
114
|
+
.lg-tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/4);}
|
|
115
115
|
.lg-tide-margin-left-1\/2 {margin-left: var(--tide-spacing-1\/2);}
|
|
116
116
|
.lg-tide-margin-left-1 {margin-left: var(--tide-spacing-1);}
|
|
117
117
|
.lg-tide-margin-left-2 {margin-left: var(--tide-spacing-2);}
|
|
@@ -360,6 +360,7 @@
|
|
|
360
360
|
.lg-tide-shadow-initial {box-shadow: initial;}
|
|
361
361
|
.lg-tide-shadow-bottom {box-shadow: var(--tide-shadow-bottom);}
|
|
362
362
|
.lg-tide-shadow-top {box-shadow: var(--tide-shadow-top);}
|
|
363
|
+
.lg-tide-shadow-text {text-shadow: var(--tide-shadow-text);}
|
|
363
364
|
|
|
364
365
|
.lg-tide-text-center {text-align: center;}
|
|
365
366
|
.lg-tide-text-left {text-align: left;}
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
.tide-margin-bottom-auto {margin-bottom: var(--tide-spacing-auto);}
|
|
111
111
|
|
|
112
112
|
.tide-margin-left-0 {margin-left: 0;}
|
|
113
|
-
.tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/
|
|
113
|
+
.tide-margin-left-1\/4 {margin-left: var(--tide-spacing-1\/4);}
|
|
114
114
|
.tide-margin-left-1\/2 {margin-left: var(--tide-spacing-1\/2);}
|
|
115
115
|
.tide-margin-left-1 {margin-left: var(--tide-spacing-1);}
|
|
116
116
|
.tide-margin-left-2 {margin-left: var(--tide-spacing-2);}
|
|
@@ -359,6 +359,7 @@
|
|
|
359
359
|
.tide-shadow-initial {box-shadow: initial;}
|
|
360
360
|
.tide-shadow-bottom {box-shadow: var(--tide-shadow-bottom);}
|
|
361
361
|
.tide-shadow-top {box-shadow: var(--tide-shadow-top);}
|
|
362
|
+
.tide-shadow-text {text-shadow: var(--tide-shadow-text);}
|
|
362
363
|
|
|
363
364
|
.tide-text-center {text-align: center;}
|
|
364
365
|
.tide-text-left {text-align: left;}
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
/* Shadow */
|
|
45
45
|
--tide-shadow-bottom: 0px 2px 8px 2px rgba(0, 0, 0, 0.07);
|
|
46
46
|
--tide-shadow-top: 0px -2px 8px 2px rgba(0, 0, 0, 0.07);
|
|
47
|
+
--tide-shadow-text: 0px 0px 5px rgba(0, 0, 0, 0.6);
|
|
47
48
|
|
|
48
49
|
/* Transparency */
|
|
49
50
|
--tide-transparent-100: color-mix(in srgb, white 90%, transparent);
|
|
@@ -52,10 +53,8 @@
|
|
|
52
53
|
--tide-transparent-400: color-mix(in srgb, black 50%, transparent);
|
|
53
54
|
|
|
54
55
|
/* Global tonal palette */
|
|
55
|
-
--tide-blue-100: #
|
|
56
|
-
--tide-blue-
|
|
57
|
-
--tide-blue-300: #76A3C4;
|
|
58
|
-
--tide-blue-400: #4984B0;
|
|
56
|
+
--tide-blue-100: #EBF1FD;
|
|
57
|
+
--tide-blue-400: #3870E9;
|
|
59
58
|
|
|
60
59
|
--tide-gray-100: #FFFFFF;
|
|
61
60
|
--tide-gray-200: #F5F5F5;
|
|
@@ -68,20 +67,13 @@
|
|
|
68
67
|
--tide-gray-900: #252526;
|
|
69
68
|
--tide-gray-1000: #000000;
|
|
70
69
|
|
|
71
|
-
--tide-green-100: #
|
|
72
|
-
--tide-green-
|
|
73
|
-
--tide-green-300: #B4D06E;
|
|
74
|
-
--tide-green-400: #9BC13D;
|
|
70
|
+
--tide-green-100: #E7F6ED;
|
|
71
|
+
--tide-green-400: #30B351;
|
|
75
72
|
|
|
76
|
-
--tide-red-100: #
|
|
77
|
-
--tide-red-
|
|
78
|
-
--tide-red-300: #D06E6E;
|
|
79
|
-
--tide-red-400: #C13D3D;
|
|
80
|
-
--tide-red-500: #912E2E;
|
|
73
|
+
--tide-red-100: #FBE9EA;
|
|
74
|
+
--tide-red-400: #D8202E;
|
|
81
75
|
|
|
82
76
|
--tide-yellow-100: #FEF2CC;
|
|
83
|
-
--tide-yellow-200: #FCE499;
|
|
84
|
-
--tide-yellow-300: #FBD766;
|
|
85
77
|
--tide-yellow-400: #FACA33;
|
|
86
78
|
|
|
87
79
|
/* Global color roles */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
2
|
+
<path d="M7 8H17V16H7V8Z" fill="white"/>
|
|
2
3
|
<path d="m8.6 22.5-1.9-3.2-3.6-.8.35-3.7L1 12l2.45-2.8-.35-3.7 3.6-.8 1.9-3.2L12 2.95l3.4-1.45 1.9 3.2 3.6.8-.35 3.7L23 12l-2.45 2.8.35 3.7-3.6.8-1.9 3.2-3.4-1.45-3.4 1.45Zm2.35-6.95L16.6 9.9l-1.4-1.45-4.25 4.25-2.15-2.1L7.4 12l3.55 3.55Z" />
|
|
3
4
|
</svg>
|
|
@@ -54,10 +54,8 @@
|
|
|
54
54
|
</div>
|
|
55
55
|
|
|
56
56
|
<div :class="['tide-accordion-body', props.isExpanded ? 'expanded' : 'collapsed', CSS.DISPLAY.GRID]">
|
|
57
|
-
<div :class="[CSS.OVERFLOW.Y.HIDDEN]">
|
|
58
|
-
<
|
|
59
|
-
<slot />
|
|
60
|
-
</div>
|
|
57
|
+
<div :class="[CSS.OVERFLOW.Y.HIDDEN, CSS.MARGIN.Y.ONE, CSS.FONT.ROLE.BODY_1, CSS.FONT.COLOR.SURFACE.DEFAULT]">
|
|
58
|
+
<slot />
|
|
61
59
|
</div>
|
|
62
60
|
</div>
|
|
63
61
|
|
|
@@ -1,30 +1,41 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
+
import TideIcon from '@/components/TideIcon.vue';
|
|
2
3
|
import { CSS } from '@/types/Styles';
|
|
3
4
|
|
|
5
|
+
import type { Icon } from '@/types/Icon';
|
|
6
|
+
|
|
4
7
|
type Props = {
|
|
8
|
+
iconLeading?: Icon;
|
|
9
|
+
isFloating?: boolean;
|
|
5
10
|
label: string;
|
|
6
11
|
};
|
|
7
12
|
|
|
8
|
-
const props = defineProps<Props>()
|
|
13
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
14
|
+
iconLeading: undefined,
|
|
15
|
+
isFloating: false,
|
|
16
|
+
});
|
|
9
17
|
</script>
|
|
10
18
|
|
|
11
19
|
<template>
|
|
12
20
|
<div
|
|
13
21
|
:class="[
|
|
14
22
|
'tide-badge',
|
|
15
|
-
|
|
16
|
-
|
|
23
|
+
props.isFloating
|
|
24
|
+
? [CSS.BG.SURFACE.FLOATING, CSS.FONT.ROLE.LABEL_3, CSS.SHADOW.BOTTOM]
|
|
25
|
+
: [CSS.BG.SURFACE.VARIANT, CSS.FONT.ROLE.LABEL_2],
|
|
17
26
|
CSS.DISPLAY.INLINE_FLEX,
|
|
18
27
|
CSS.AXIS2.CENTER,
|
|
19
28
|
CSS.GAP.QUARTER,
|
|
20
29
|
CSS.BORDER.RADIUS.QUARTER,
|
|
21
30
|
CSS.PADDING.Y.QUARTER,
|
|
22
31
|
CSS.PADDING.X.HALF,
|
|
23
|
-
CSS.FONT.ROLE.BODY_2,
|
|
24
32
|
]"
|
|
25
33
|
>
|
|
34
|
+
<TideIcon
|
|
35
|
+
:icon="props.iconLeading"
|
|
36
|
+
v-if="props.iconLeading"
|
|
37
|
+
/>
|
|
38
|
+
|
|
26
39
|
{{ props.label }}
|
|
27
40
|
</div>
|
|
28
41
|
</template>
|
|
29
|
-
|
|
30
|
-
<style scoped></style>
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
CSS.GAP.QUARTER,
|
|
26
26
|
CSS.PADDING.Y.QUARTER,
|
|
27
27
|
CSS.PADDING.X.HALF,
|
|
28
|
-
CSS.FONT.ROLE.
|
|
28
|
+
CSS.FONT.ROLE.LABEL_2,
|
|
29
29
|
]"
|
|
30
30
|
>
|
|
31
|
-
<TideIcon :icon="ICON.
|
|
31
|
+
<TideIcon :icon="ICON.AWARD_STAR" />
|
|
32
32
|
<div :class="[]">
|
|
33
33
|
<span>{{ props.years }} year trusted partner</span>
|
|
34
34
|
</div>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import TideIcon from '@/components/TideIcon.vue';
|
|
3
|
+
import { ICON } from '@/types/Icon';
|
|
4
|
+
import { CSS } from '@/types/Styles';
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<template>
|
|
8
|
+
<div
|
|
9
|
+
:class="[
|
|
10
|
+
'tide-badge-verified-vehicle',
|
|
11
|
+
CSS.BG.SECONDARY,
|
|
12
|
+
CSS.FONT.ROLE.LABEL_2,
|
|
13
|
+
CSS.FONT.COLOR.SECONDARY,
|
|
14
|
+
CSS.DISPLAY.INLINE_FLEX,
|
|
15
|
+
CSS.AXIS2.CENTER,
|
|
16
|
+
CSS.GAP.QUARTER,
|
|
17
|
+
CSS.BORDER.RADIUS.QUARTER,
|
|
18
|
+
CSS.PADDING.Y.QUARTER,
|
|
19
|
+
CSS.PADDING.X.HALF,
|
|
20
|
+
]"
|
|
21
|
+
>
|
|
22
|
+
<TideIcon :icon="ICON.VERIFIED" />
|
|
23
|
+
|
|
24
|
+
<span>Verified vehicle</span>
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|
|
27
|
+
|
|
28
|
+
<style scoped>
|
|
29
|
+
.tide-icon {
|
|
30
|
+
color: var(--tide-blue-400);
|
|
31
|
+
}
|
|
32
|
+
</style>
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import * as STYLES from '@/types/Storybook';
|
|
2
|
-
import {
|
|
2
|
+
import { CSS } from '@/types/Styles';
|
|
3
|
+
import {
|
|
4
|
+
argTypeBooleanUnrequired,
|
|
5
|
+
formatArgType,
|
|
6
|
+
getConstantsByValues,
|
|
7
|
+
prependNoneAsEmpty,
|
|
8
|
+
} from '@/utilities/storybook';
|
|
3
9
|
|
|
4
10
|
import type { StoryContext } from '@storybook/vue3';
|
|
5
11
|
|
|
@@ -14,7 +20,8 @@ const formatArgs = (args: any) => {
|
|
|
14
20
|
const formatClassNames = (args: any) => {
|
|
15
21
|
const classNames: string[] = [];
|
|
16
22
|
|
|
17
|
-
if (args.
|
|
23
|
+
if (args.box) classNames.push(args.box);
|
|
24
|
+
if (args.text) classNames.push(CSS.SHADOW.TEXT);
|
|
18
25
|
|
|
19
26
|
return classNames;
|
|
20
27
|
};
|
|
@@ -54,14 +61,20 @@ const render = (args: any) => ({
|
|
|
54
61
|
|
|
55
62
|
export default {
|
|
56
63
|
argTypes: {
|
|
57
|
-
|
|
64
|
+
box: {
|
|
58
65
|
...formatArgType({ SHADOW }),
|
|
59
|
-
description: `Applies a shadow at the element's top or bottom boundary.<br />(Top shadows are for sticky footers
|
|
60
|
-
name: 'Shadow',
|
|
66
|
+
description: `Applies a shadow at the element's top or bottom boundary or to the text.<br />(Top shadows are for sticky footers.`,
|
|
67
|
+
name: 'Box Shadow',
|
|
68
|
+
},
|
|
69
|
+
text: {
|
|
70
|
+
...argTypeBooleanUnrequired,
|
|
71
|
+
description: `Applies a shadow to the element's text.`,
|
|
72
|
+
name: 'Text Shadow',
|
|
61
73
|
},
|
|
62
74
|
},
|
|
63
75
|
args: {
|
|
64
|
-
|
|
76
|
+
box: SHADOW.None,
|
|
77
|
+
text: undefined,
|
|
65
78
|
},
|
|
66
79
|
parameters,
|
|
67
80
|
render,
|
|
@@ -73,12 +86,18 @@ export const Default = {};
|
|
|
73
86
|
|
|
74
87
|
export const ShadowBottom = {
|
|
75
88
|
args: {
|
|
76
|
-
|
|
89
|
+
box: SHADOW['Bottom'],
|
|
77
90
|
},
|
|
78
91
|
};
|
|
79
92
|
|
|
80
93
|
export const ShadowTop = {
|
|
81
94
|
args: {
|
|
82
|
-
|
|
95
|
+
box: SHADOW['Top'],
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const ShadowText = {
|
|
100
|
+
args: {
|
|
101
|
+
text: true,
|
|
83
102
|
},
|
|
84
103
|
};
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import TideBadge from '@/components/TideBadge.vue';
|
|
2
|
-
import
|
|
2
|
+
import * as STANDARD_ICON from '@/types/Icon';
|
|
3
|
+
import { argTypeBooleanUnrequired, formatArgType, parameters, prependNoneAsUndefined } from '@/utilities/storybook';
|
|
4
|
+
|
|
5
|
+
const ICON = prependNoneAsUndefined(STANDARD_ICON.ICON);
|
|
3
6
|
|
|
4
7
|
const render = (args: any) => ({
|
|
5
8
|
components: { TideBadge },
|
|
6
9
|
setup: () => ({ args }),
|
|
7
|
-
template: `<TideBadge
|
|
10
|
+
template: `<TideBadge v-bind="args" />`,
|
|
8
11
|
});
|
|
9
12
|
|
|
10
13
|
export default {
|
|
11
14
|
argTypes: {
|
|
15
|
+
iconLeading: {
|
|
16
|
+
...formatArgType({ ICON }),
|
|
17
|
+
description: 'Icon to left of label',
|
|
18
|
+
},
|
|
19
|
+
isFloating: {
|
|
20
|
+
...argTypeBooleanUnrequired,
|
|
21
|
+
description: 'Determines whether to display the "Floating" variant styles',
|
|
22
|
+
},
|
|
12
23
|
label: {
|
|
13
24
|
control: 'text',
|
|
14
25
|
description: 'Badge text',
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import TideBadgeVerifiedVehicle from '@/components/TideBadgeVerifiedVehicle.vue';
|
|
2
|
+
import { parameters } from '@/utilities/storybook';
|
|
3
|
+
|
|
4
|
+
const render = (args: any) => ({
|
|
5
|
+
components: { TideBadgeVerifiedVehicle },
|
|
6
|
+
setup: () => ({ args }),
|
|
7
|
+
template: `<TideBadgeVerifiedVehicle v-bind="args" />`,
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
argTypes: {},
|
|
12
|
+
args: {},
|
|
13
|
+
component: TideBadgeVerifiedVehicle,
|
|
14
|
+
parameters,
|
|
15
|
+
render,
|
|
16
|
+
tags: ['autodocs'],
|
|
17
|
+
title: 'Basic Components/TideBadgeVerifiedVehicle',
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const Demo = {};
|
package/src/types/Badge.ts
CHANGED
|
@@ -1,21 +1,7 @@
|
|
|
1
|
-
export const BADGE = {
|
|
2
|
-
JUST_LISTED: 'Just listed',
|
|
3
|
-
NATIONWIDE: 'Nationwide',
|
|
4
|
-
REDUCED: 'Reduced',
|
|
5
|
-
UPDATED: 'Updated',
|
|
6
|
-
} as const;
|
|
7
|
-
|
|
8
|
-
export const BADGE_PREMIUM = {
|
|
9
|
-
PREMIUM: 'Premium',
|
|
10
|
-
PREMIUM_SELECT: 'Premium SELECT',
|
|
11
|
-
} as const;
|
|
12
|
-
|
|
13
1
|
export const BADGE_TRUSTED = {
|
|
14
2
|
YEARS_10: '10',
|
|
15
3
|
YEARS_15: '15',
|
|
16
4
|
YEARS_5: '5',
|
|
17
5
|
} as const;
|
|
18
6
|
|
|
19
|
-
export type Badge = (typeof BADGE)[keyof typeof BADGE];
|
|
20
|
-
export type BadgePremium = (typeof BADGE_PREMIUM)[keyof typeof BADGE_PREMIUM];
|
|
21
7
|
export type BadgeTrustedYears = (typeof BADGE_TRUSTED)[keyof typeof BADGE_TRUSTED];
|
package/src/types/Styles.ts
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),o={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},n=e.createElementVNode("path",{d:"m8.6 22.5-1.9-3.2-3.6-.8.35-3.7L1 12l2.45-2.8-.35-3.7 3.6-.8 1.9-3.2L12 2.95l3.4-1.45 1.9 3.2 3.6.8-.35 3.7L23 12l-2.45 2.8.35 3.7-3.6.8-1.9 3.2-3.4-1.45-3.4 1.45Zm2.35-6.95L16.6 9.9l-1.4-1.45-4.25 4.25-2.15-2.1L7.4 12l3.55 3.55Z"},null,-1),r=[n];function t(l,s){return e.openBlock(),e.createElementBlock("svg",o,r)}const c={render:t};exports.default=c;exports.render=t;
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWNvblZlcmlmaWVkLTA0YzEyNTAwLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2Fzc2V0cy9zdmcvaWNvbnMvSWNvblZlcmlmaWVkLnN2ZyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50Vk5vZGUgYXMgX2NyZWF0ZUVsZW1lbnRWTm9kZSwgb3BlbkJsb2NrIGFzIF9vcGVuQmxvY2ssIGNyZWF0ZUVsZW1lbnRCbG9jayBhcyBfY3JlYXRlRWxlbWVudEJsb2NrIH0gZnJvbSBcInZ1ZVwiXG5cbmNvbnN0IF9ob2lzdGVkXzEgPSB7XG4gIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCJcbn1cbmNvbnN0IF9ob2lzdGVkXzIgPSAvKiNfX1BVUkVfXyovX2NyZWF0ZUVsZW1lbnRWTm9kZShcInBhdGhcIiwgeyBkOiBcIm04LjYgMjIuNS0xLjktMy4yLTMuNi0uOC4zNS0zLjdMMSAxMmwyLjQ1LTIuOC0uMzUtMy43IDMuNi0uOCAxLjktMy4yTDEyIDIuOTVsMy40LTEuNDUgMS45IDMuMiAzLjYuOC0uMzUgMy43TDIzIDEybC0yLjQ1IDIuOC4zNSAzLjctMy42LjgtMS45IDMuMi0zLjQtMS40NS0zLjQgMS40NVptMi4zNS02Ljk1TDE2LjYgOS45bC0xLjQtMS40NS00LjI1IDQuMjUtMi4xNS0yLjFMNy40IDEybDMuNTUgMy41NVpcIiB9LCBudWxsLCAtMSlcbmNvbnN0IF9ob2lzdGVkXzMgPSBbXG4gIF9ob2lzdGVkXzJcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcihfY3R4LCBfY2FjaGUpIHtcbiAgcmV0dXJuIChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJzdmdcIiwgX2hvaXN0ZWRfMSwgX2hvaXN0ZWRfMykpXG59XG5leHBvcnQgZGVmYXVsdCB7IHJlbmRlcjogcmVuZGVyIH0iXSwibmFtZXMiOlsiX2hvaXN0ZWRfMSIsIl9ob2lzdGVkXzIiLCJfY3JlYXRlRWxlbWVudFZOb2RlIiwiX2hvaXN0ZWRfMyIsInJlbmRlciIsIl9jdHgiLCJfY2FjaGUiLCJfb3BlbkJsb2NrIiwiX2NyZWF0ZUVsZW1lbnRCbG9jayIsIkljb25WZXJpZmllZCJdLCJtYXBwaW5ncyI6InVHQUVNQSxFQUFhLENBQ2pCLE1BQU8sNkJBQ1AsUUFBUyxXQUNYLEVBQ01DLEVBQTBCQyxFQUFBQSxtQkFBb0IsT0FBUSxDQUFFLEVBQUcseU9BQTJPLEtBQU0sRUFBRSxFQUM5U0MsRUFBYSxDQUNqQkYsQ0FDRixFQUVPLFNBQVNHLEVBQU9DLEVBQU1DLEVBQVEsQ0FDbkMsT0FBUUMsRUFBQUEsVUFBWSxFQUFFQyxFQUFtQixtQkFBQyxNQUFPUixFQUFZRyxDQUFVLENBQ3pFLENBQ0EsTUFBZU0sRUFBQSxDQUFFLE9BQVFMLENBQU0ifQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { openBlock as e, createElementBlock as t, createElementVNode as o } from "vue";
|
|
2
|
-
const n = {
|
|
3
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
4
|
-
viewBox: "0 0 24 24"
|
|
5
|
-
}, c = /* @__PURE__ */ o("path", { d: "m8.6 22.5-1.9-3.2-3.6-.8.35-3.7L1 12l2.45-2.8-.35-3.7 3.6-.8 1.9-3.2L12 2.95l3.4-1.45 1.9 3.2 3.6.8-.35 3.7L23 12l-2.45 2.8.35 3.7-3.6.8-1.9 3.2-3.4-1.45-3.4 1.45Zm2.35-6.95L16.6 9.9l-1.4-1.45-4.25 4.25-2.15-2.1L7.4 12l3.55 3.55Z" }, null, -1), l = [
|
|
6
|
-
c
|
|
7
|
-
];
|
|
8
|
-
function r(s, d) {
|
|
9
|
-
return e(), t("svg", n, l);
|
|
10
|
-
}
|
|
11
|
-
const _ = { render: r };
|
|
12
|
-
export {
|
|
13
|
-
_ as default,
|
|
14
|
-
r as render
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWNvblZlcmlmaWVkLWE3ODQ0OWVhLmpzIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXRzL3N2Zy9pY29ucy9JY29uVmVyaWZpZWQuc3ZnIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnRWTm9kZSBhcyBfY3JlYXRlRWxlbWVudFZOb2RlLCBvcGVuQmxvY2sgYXMgX29wZW5CbG9jaywgY3JlYXRlRWxlbWVudEJsb2NrIGFzIF9jcmVhdGVFbGVtZW50QmxvY2sgfSBmcm9tIFwidnVlXCJcblxuY29uc3QgX2hvaXN0ZWRfMSA9IHtcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgdmlld0JveDogXCIwIDAgMjQgMjRcIlxufVxuY29uc3QgX2hvaXN0ZWRfMiA9IC8qI19fUFVSRV9fKi9fY3JlYXRlRWxlbWVudFZOb2RlKFwicGF0aFwiLCB7IGQ6IFwibTguNiAyMi41LTEuOS0zLjItMy42LS44LjM1LTMuN0wxIDEybDIuNDUtMi44LS4zNS0zLjcgMy42LS44IDEuOS0zLjJMMTIgMi45NWwzLjQtMS40NSAxLjkgMy4yIDMuNi44LS4zNSAzLjdMMjMgMTJsLTIuNDUgMi44LjM1IDMuNy0zLjYuOC0xLjkgMy4yLTMuNC0xLjQ1LTMuNCAxLjQ1Wm0yLjM1LTYuOTVMMTYuNiA5LjlsLTEuNC0xLjQ1LTQuMjUgNC4yNS0yLjE1LTIuMUw3LjQgMTJsMy41NSAzLjU1WlwiIH0sIG51bGwsIC0xKVxuY29uc3QgX2hvaXN0ZWRfMyA9IFtcbiAgX2hvaXN0ZWRfMlxuXVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKF9jdHgsIF9jYWNoZSkge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcInN2Z1wiLCBfaG9pc3RlZF8xLCBfaG9pc3RlZF8zKSlcbn1cbmV4cG9ydCBkZWZhdWx0IHsgcmVuZGVyOiByZW5kZXIgfSJdLCJuYW1lcyI6WyJfaG9pc3RlZF8xIiwiX2hvaXN0ZWRfMiIsIl9jcmVhdGVFbGVtZW50Vk5vZGUiLCJfaG9pc3RlZF8zIiwicmVuZGVyIiwiX2N0eCIsIl9jYWNoZSIsIl9vcGVuQmxvY2siLCJfY3JlYXRlRWxlbWVudEJsb2NrIiwiSWNvblZlcmlmaWVkIl0sIm1hcHBpbmdzIjoiO0FBRUEsTUFBTUEsSUFBYTtBQUFBLEVBQ2pCLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFDWCxHQUNNQyxJQUEwQkMsZ0JBQUFBLEVBQW9CLFFBQVEsRUFBRSxHQUFHLDJPQUEyTyxNQUFNLEVBQUUsR0FDOVNDLElBQWE7QUFBQSxFQUNqQkY7QUFDRjtBQUVPLFNBQVNHLEVBQU9DLEdBQU1DLEdBQVE7QUFDbkMsU0FBUUMsRUFBWSxHQUFFQyxFQUFvQixPQUFPUixHQUFZRyxDQUFVO0FBQ3pFO0FBQ0EsTUFBZU0sSUFBQSxFQUFFLFFBQVFMLEVBQU07In0=
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { CSS } from '@/types/Styles';
|
|
3
|
-
|
|
4
|
-
import type { BadgePremium } from '@/types/Badge';
|
|
5
|
-
|
|
6
|
-
type Props = {
|
|
7
|
-
label: BadgePremium;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
const props = defineProps<Props>();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<template>
|
|
14
|
-
<div
|
|
15
|
-
:class="[
|
|
16
|
-
'tide-badge',
|
|
17
|
-
CSS.FONT.COLOR.SURFACE.DEFAULT,
|
|
18
|
-
CSS.BG.SURFACE.VARIANT,
|
|
19
|
-
CSS.DISPLAY.INLINE_FLEX,
|
|
20
|
-
CSS.GAP.QUARTER,
|
|
21
|
-
CSS.BORDER.RADIUS.QUARTER,
|
|
22
|
-
CSS.PADDING.Y.QUARTER,
|
|
23
|
-
CSS.PADDING.X.HALF,
|
|
24
|
-
CSS.FONT.ROLE.BODY_2,
|
|
25
|
-
]"
|
|
26
|
-
>
|
|
27
|
-
{{ props.label }}
|
|
28
|
-
</div>
|
|
29
|
-
</template>
|
|
30
|
-
|
|
31
|
-
<style scoped></style>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import TideBadgePremium from '@/components/TideBadgePremium.vue';
|
|
2
|
-
import { BADGE_PREMIUM } from '@/types/Badge';
|
|
3
|
-
import { formatArgType, parameters } from '@/utilities/storybook';
|
|
4
|
-
|
|
5
|
-
const render = (args: any) => ({
|
|
6
|
-
components: { TideBadgePremium },
|
|
7
|
-
setup: () => ({ args }),
|
|
8
|
-
template: `<TideBadgePremium v-bind="args" />`,
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
export default {
|
|
12
|
-
argTypes: {
|
|
13
|
-
label: {
|
|
14
|
-
...formatArgType({ BADGE_PREMIUM }),
|
|
15
|
-
description: 'Badge text',
|
|
16
|
-
table: {
|
|
17
|
-
defaultValue: { summary: 'Premium' },
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
args: {
|
|
22
|
-
label: BADGE_PREMIUM.PREMIUM,
|
|
23
|
-
},
|
|
24
|
-
component: TideBadgePremium,
|
|
25
|
-
parameters,
|
|
26
|
-
render,
|
|
27
|
-
tags: ['autodocs'],
|
|
28
|
-
title: 'Basic Components/TideBadgePremium',
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export const Demo = {};
|