tide-design-system 2.2.9 → 2.2.11
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 -0
- package/dist/IconArrowUp-75edebad.js +16 -0
- package/dist/IconArrowUp-c0afd43d.cjs +2 -0
- package/dist/IconAssignment-7171d067.cjs +2 -0
- package/dist/IconAssignment-b1d2ffa2.js +16 -0
- package/dist/IconClear-4db1f7d4.cjs +2 -0
- package/dist/IconClear-5cf9e8be.js +16 -0
- package/dist/IconFacebook-a83c1949.cjs +2 -0
- package/dist/IconFacebook-fb3f93e3.js +16 -0
- package/dist/IconInstagram-9f642623.cjs +2 -0
- package/dist/IconInstagram-db345e15.js +16 -0
- package/dist/IconLayout-6963184f.js +16 -0
- package/dist/IconLayout-d0d278c5.cjs +2 -0
- package/dist/IconLinkedIn-2fa1ac20.cjs +2 -0
- package/dist/IconLinkedIn-9c4740a6.js +16 -0
- package/dist/IconStarFilled-9f4d0d62.cjs +2 -0
- package/dist/IconStarFilled-b73e12dc.js +16 -0
- package/dist/IconStarHalf-0b663cd6.js +16 -0
- package/dist/IconStarHalf-65db4ff6.cjs +2 -0
- package/dist/css/dynamic-utilities.css +31 -30
- package/dist/css/realm/aero.css +8 -20
- package/dist/css/realm/atv.css +8 -20
- package/dist/css/realm/boatmart.css +7 -19
- package/dist/css/realm/cycle.css +8 -20
- package/dist/css/realm/equipment.css +7 -19
- package/dist/css/realm/pwc.css +7 -19
- package/dist/css/realm/rv.css +7 -19
- package/dist/css/realm/snow.css +7 -19
- package/dist/css/realm/truck.css +8 -20
- package/dist/css/utilities-lg.css +46 -1
- package/dist/css/utilities-md.css +46 -1
- package/dist/css/utilities-sm.css +46 -1
- package/dist/css/utilities-xl.css +46 -1
- package/dist/css/utilities.css +46 -1
- package/dist/css/variables.css +106 -14
- package/dist/style.css +1 -1
- package/dist/tide-design-system.cjs +2 -2
- package/dist/tide-design-system.esm.d.ts +117 -5
- package/dist/tide-design-system.esm.js +1403 -1174
- package/index.ts +8 -2
- package/package.json +1 -1
- package/src/assets/css/dynamic-utilities.css +31 -30
- package/src/assets/css/realm/aero.css +8 -20
- package/src/assets/css/realm/atv.css +8 -20
- package/src/assets/css/realm/boatmart.css +7 -19
- package/src/assets/css/realm/cycle.css +8 -20
- package/src/assets/css/realm/equipment.css +7 -19
- package/src/assets/css/realm/pwc.css +7 -19
- package/src/assets/css/realm/rv.css +7 -19
- package/src/assets/css/realm/snow.css +7 -19
- package/src/assets/css/realm/truck.css +8 -20
- package/src/assets/css/utilities-lg.css +46 -1
- package/src/assets/css/utilities-md.css +46 -1
- package/src/assets/css/utilities-sm.css +46 -1
- package/src/assets/css/utilities-xl.css +46 -1
- package/src/assets/css/utilities.css +46 -1
- package/src/assets/css/variables.css +106 -14
- package/src/assets/svg/icons/IconArrowUp.svg +3 -0
- package/src/assets/svg/icons/IconAssignment.svg +1 -3
- package/src/assets/svg/icons/IconClear.svg +1 -3
- package/src/assets/svg/icons/IconFacebook.svg +1 -3
- package/src/assets/svg/icons/IconInstagram.svg +1 -3
- package/src/assets/svg/icons/IconLayout.svg +1 -3
- package/src/assets/svg/icons/IconLinkedIn.svg +1 -3
- package/src/assets/svg/icons/IconStarFilled.svg +3 -0
- package/src/assets/svg/icons/IconStarHalf.svg +3 -0
- package/src/components/TideBadge.vue +7 -2
- package/src/components/TideBadgeVerifiedVehicle.vue +1 -1
- package/src/components/TideChipAction.vue +10 -3
- package/src/components/TideImage.vue +19 -2
- package/src/components/TideImageBackground.vue +7 -11
- package/src/components/TideModal.vue +2 -2
- package/src/components/TidePopover.vue +4 -1
- package/src/components/TideSheet.vue +166 -0
- package/src/stories/FoundationsBorder.stories.ts +31 -1
- package/src/stories/FoundationsColor.stories.ts +161 -13
- package/src/stories/FoundationsTypography.stories.ts +3 -3
- package/src/stories/TideBadge.stories.ts +51 -1
- package/src/stories/TideCarousel.stories.ts +1 -0
- package/src/stories/TideChipAction.stories.ts +28 -1
- package/src/stories/TideImage.stories.ts +22 -2
- package/src/stories/TideImageBackground.stories.ts +11 -3
- package/src/stories/TideSheet.stories.ts +142 -0
- package/src/types/Badge.ts +65 -0
- package/src/types/Image.ts +7 -0
- package/src/types/Storybook.ts +5 -0
- package/src/types/Styles.ts +46 -2
- package/tests/svg-icons.spec.ts +74 -0
- package/dist/IconAssignment-1983e555.js +0 -16
- package/dist/IconAssignment-915702cc.cjs +0 -2
- package/dist/IconClear-489c5a46.cjs +0 -2
- package/dist/IconClear-9419bf17.js +0 -16
- package/dist/IconFacebook-4658b533.js +0 -16
- package/dist/IconFacebook-9c43095a.cjs +0 -2
- package/dist/IconInstagram-43bb02ea.cjs +0 -2
- package/dist/IconInstagram-57188d29.js +0 -16
- package/dist/IconLayout-2865e0eb.js +0 -16
- package/dist/IconLayout-e663120e.cjs +0 -2
- package/dist/IconLinkedIn-088a3792.cjs +0 -2
- package/dist/IconLinkedIn-f29c217d.js +0 -16
|
@@ -1,9 +1,39 @@
|
|
|
1
1
|
import TideBadge from '@/components/TideBadge.vue';
|
|
2
|
+
import { BADGE_COLOR as STANDARD_BADGE_COLOR } from '@/types/Badge';
|
|
2
3
|
import * as STANDARD_ICON from '@/types/Icon';
|
|
3
|
-
import { argTypeBooleanUnrequired, formatArgType,
|
|
4
|
+
import { argTypeBooleanUnrequired, formatArgType, prependNoneAsUndefined } from '@/utilities/storybook';
|
|
4
5
|
|
|
6
|
+
import type { StoryContext } from '@storybook/vue3';
|
|
7
|
+
|
|
8
|
+
const BADGE_COLOR = prependNoneAsUndefined(STANDARD_BADGE_COLOR);
|
|
5
9
|
const ICON = prependNoneAsUndefined(STANDARD_ICON.ICON);
|
|
6
10
|
|
|
11
|
+
const formatSnippet = (code: string, context: StoryContext) => {
|
|
12
|
+
const { argTypes, args } = context;
|
|
13
|
+
const argsWithValues: string[] = [];
|
|
14
|
+
|
|
15
|
+
if (args.color !== undefined) argsWithValues.push(`:color="${args.color}"`);
|
|
16
|
+
if (args.iconLeading !== undefined) argsWithValues.push(`:icon-leading="${args.iconLeading}"`);
|
|
17
|
+
if (args.isFloating !== undefined && args.color === undefined)
|
|
18
|
+
argsWithValues.push(`:is-floating="${args.isFloating}"`);
|
|
19
|
+
if (args.label !== undefined) argsWithValues.push(`:label="${args.label}"`);
|
|
20
|
+
|
|
21
|
+
if (argTypes.iconLeading.type) argTypes.iconLeading.type.required = args.color !== undefined;
|
|
22
|
+
if (argTypes.isFloating.table) argTypes.isFloating.table.disable = args.color !== undefined;
|
|
23
|
+
|
|
24
|
+
return `<TideBadge ${argsWithValues.join(' ')} />`;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const parameters = {
|
|
28
|
+
docs: {
|
|
29
|
+
source: {
|
|
30
|
+
format: 'vue',
|
|
31
|
+
language: 'html',
|
|
32
|
+
transform: formatSnippet,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
|
|
7
37
|
const render = (args: any) => ({
|
|
8
38
|
components: { TideBadge },
|
|
9
39
|
setup: () => ({ args }),
|
|
@@ -12,24 +42,44 @@ const render = (args: any) => ({
|
|
|
12
42
|
|
|
13
43
|
export default {
|
|
14
44
|
argTypes: {
|
|
45
|
+
color: {
|
|
46
|
+
...formatArgType({ BADGE_COLOR }),
|
|
47
|
+
description: 'Determines which color option to adopt (if any)',
|
|
48
|
+
table: {
|
|
49
|
+
category: 'Props',
|
|
50
|
+
defaultValue: { summary: 'None' },
|
|
51
|
+
},
|
|
52
|
+
},
|
|
15
53
|
iconLeading: {
|
|
16
54
|
...formatArgType({ ICON }),
|
|
17
55
|
description: 'Icon to left of label',
|
|
56
|
+
table: {
|
|
57
|
+
category: 'Props',
|
|
58
|
+
defaultValue: { summary: 'None' },
|
|
59
|
+
},
|
|
18
60
|
},
|
|
19
61
|
isFloating: {
|
|
20
62
|
...argTypeBooleanUnrequired,
|
|
21
63
|
description: 'Determines whether to display the "Floating" variant styles',
|
|
64
|
+
table: {
|
|
65
|
+
category: 'Props',
|
|
66
|
+
defaultValue: { summary: 'None' },
|
|
67
|
+
},
|
|
22
68
|
},
|
|
23
69
|
label: {
|
|
24
70
|
control: 'text',
|
|
25
71
|
description: 'Badge text',
|
|
26
72
|
table: {
|
|
73
|
+
category: 'Props',
|
|
27
74
|
defaultValue: { summary: 'None' },
|
|
28
75
|
type: { summary: 'string' },
|
|
29
76
|
},
|
|
30
77
|
},
|
|
31
78
|
},
|
|
32
79
|
args: {
|
|
80
|
+
color: BADGE_COLOR.None,
|
|
81
|
+
iconLeading: ICON.None,
|
|
82
|
+
isFloating: undefined,
|
|
33
83
|
label: 'Demo',
|
|
34
84
|
},
|
|
35
85
|
component: TideBadge,
|
|
@@ -13,6 +13,7 @@ const formatSnippet = (code: string, context: StoryContext) => {
|
|
|
13
13
|
const hasBleed = args.bleed !== '';
|
|
14
14
|
|
|
15
15
|
if (hasBleed) argsWithValues.push(`bleed="${args.bleed}"`);
|
|
16
|
+
if (args.isFloating !== undefined) argsWithValues.push(`:is-floating="${args.isFloating}"`);
|
|
16
17
|
if (args.isHideawayButtons !== undefined) argsWithValues.push(`:is-hideaway-buttons="${args.isHideawayButtons}"`);
|
|
17
18
|
if (args.isTouchscreen !== undefined) argsWithValues.push(`:is-touchscreen="${args.isTouchscreen}"`);
|
|
18
19
|
if (args.subtitle !== '') argsWithValues.push(`subtitle="${args.subtitle}"`);
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import TideChipAction from '@/components/TideChipAction.vue';
|
|
2
|
-
import
|
|
2
|
+
import * as STANDARD_ELEMENT from '@/types/Element';
|
|
3
|
+
import {
|
|
4
|
+
argTypeBooleanUnrequired,
|
|
5
|
+
click,
|
|
6
|
+
dataTrack,
|
|
7
|
+
formatArgType,
|
|
8
|
+
parameters,
|
|
9
|
+
prependNoneAsUndefined,
|
|
10
|
+
} from '@/utilities/storybook';
|
|
11
|
+
|
|
12
|
+
const ELEMENT = prependNoneAsUndefined(STANDARD_ELEMENT.ELEMENT);
|
|
3
13
|
|
|
4
14
|
const render = (args: any) => ({
|
|
5
15
|
components: { TideChipAction },
|
|
@@ -9,10 +19,23 @@ const render = (args: any) => ({
|
|
|
9
19
|
|
|
10
20
|
export default {
|
|
11
21
|
argTypes: {
|
|
22
|
+
click: {
|
|
23
|
+
...click,
|
|
24
|
+
if: { arg: 'element', eq: ELEMENT.BUTTON },
|
|
25
|
+
},
|
|
12
26
|
dataTrack,
|
|
27
|
+
element: {
|
|
28
|
+
...formatArgType({ ELEMENT }),
|
|
29
|
+
description: 'HTML tag type',
|
|
30
|
+
table: {
|
|
31
|
+
defaultValue: { summary: 'LINK' },
|
|
32
|
+
type: { summary: 'Element' },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
13
35
|
href: {
|
|
14
36
|
control: 'text',
|
|
15
37
|
description: 'URL to navigate to on click',
|
|
38
|
+
if: { arg: 'element', eq: ELEMENT.LINK },
|
|
16
39
|
table: {
|
|
17
40
|
defaultValue: { summary: 'None' },
|
|
18
41
|
type: { summary: 'string' },
|
|
@@ -21,6 +44,7 @@ export default {
|
|
|
21
44
|
isNewTab: {
|
|
22
45
|
...argTypeBooleanUnrequired,
|
|
23
46
|
description: 'Determines whether to target a new browser tab',
|
|
47
|
+
if: { arg: 'element', eq: ELEMENT.LINK },
|
|
24
48
|
},
|
|
25
49
|
label: {
|
|
26
50
|
control: 'text',
|
|
@@ -32,8 +56,11 @@ export default {
|
|
|
32
56
|
},
|
|
33
57
|
},
|
|
34
58
|
args: {
|
|
59
|
+
click: 'doSomething',
|
|
35
60
|
dataTrack: '',
|
|
61
|
+
element: undefined,
|
|
36
62
|
href: 'https://www.sample.com',
|
|
63
|
+
isNewTab: undefined,
|
|
37
64
|
label: 'Demo',
|
|
38
65
|
},
|
|
39
66
|
component: TideChipAction,
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import TideImage from '@/components/TideImage.vue';
|
|
2
2
|
import { MEDIA } from '@/types/Breakpoint';
|
|
3
|
-
import {
|
|
3
|
+
import { OBJECT_FIT } from '@/types/Image';
|
|
4
|
+
import {
|
|
5
|
+
argTypeBooleanUnrequired,
|
|
6
|
+
formatArgType,
|
|
7
|
+
formatValueAsConstant,
|
|
8
|
+
prependNoneAsUndefined,
|
|
9
|
+
} from '@/utilities/storybook';
|
|
4
10
|
|
|
5
11
|
import type { Source } from '@/types/Source';
|
|
6
12
|
import type { StoryContext } from '@storybook/vue3';
|
|
@@ -25,7 +31,8 @@ const sources: Source[] = [
|
|
|
25
31
|
];
|
|
26
32
|
|
|
27
33
|
const formatSnippet = (code: string, context: StoryContext) => {
|
|
28
|
-
const { args } = context;
|
|
34
|
+
const { args, argTypes } = context;
|
|
35
|
+
const { objectFit } = args;
|
|
29
36
|
const argsWithValues: string[] = [`alt="${args.alt}"`];
|
|
30
37
|
const hasSources = args.sources !== null;
|
|
31
38
|
const hasSourcesLength = hasSources ? (args.sources as any).length > 0 : false;
|
|
@@ -35,6 +42,8 @@ const formatSnippet = (code: string, context: StoryContext) => {
|
|
|
35
42
|
if (hasSources && hasSourcesLength) argsWithValues.push(`:sources="sources"`);
|
|
36
43
|
if (args.src) argsWithValues.push(`src="${args.src}"`);
|
|
37
44
|
if (args.width !== '') argsWithValues.push(`width="${args.width}"`);
|
|
45
|
+
if (args.objectFit !== undefined)
|
|
46
|
+
argsWithValues.push(`:object-fit="${formatValueAsConstant({ objectFit }, argTypes)}"`);
|
|
38
47
|
|
|
39
48
|
return `<TideImage ${argsWithValues.join(' ')} />`;
|
|
40
49
|
};
|
|
@@ -49,6 +58,8 @@ const parameters = {
|
|
|
49
58
|
},
|
|
50
59
|
};
|
|
51
60
|
|
|
61
|
+
const OBJECT_FIT_OPTIONS = prependNoneAsUndefined(OBJECT_FIT);
|
|
62
|
+
|
|
52
63
|
export default {
|
|
53
64
|
argTypes: {
|
|
54
65
|
alt: {
|
|
@@ -71,6 +82,14 @@ export default {
|
|
|
71
82
|
...argTypeBooleanUnrequired,
|
|
72
83
|
description: `Determines whether to delay loading until image is in viewport.`,
|
|
73
84
|
},
|
|
85
|
+
objectFit: {
|
|
86
|
+
...formatArgType({ OBJECT_FIT_OPTIONS }),
|
|
87
|
+
description:
|
|
88
|
+
'Controls how the image scales within its box, effective only when image size differs from its intrinsic dimensions.',
|
|
89
|
+
table: {
|
|
90
|
+
defaultValue: { summary: 'None' },
|
|
91
|
+
},
|
|
92
|
+
},
|
|
74
93
|
sources: {
|
|
75
94
|
control: 'object',
|
|
76
95
|
description: `Determines image sources by breakpoint.`,
|
|
@@ -101,6 +120,7 @@ export default {
|
|
|
101
120
|
alt: '',
|
|
102
121
|
height: '',
|
|
103
122
|
isLazy: undefined,
|
|
123
|
+
objectFit: undefined,
|
|
104
124
|
sources,
|
|
105
125
|
src: 'https://placedog.net/375/400',
|
|
106
126
|
width: '',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import TideImageBackground from '@/components/TideImageBackground.vue';
|
|
2
2
|
import { MEDIA } from '@/types/Breakpoint';
|
|
3
|
-
import { argTypeBooleanUnrequired
|
|
3
|
+
import { argTypeBooleanUnrequired } from '@/utilities/storybook';
|
|
4
4
|
|
|
5
5
|
import type { Source } from '@/types/Source';
|
|
6
6
|
import type { StoryContext } from '@storybook/vue3';
|
|
@@ -36,7 +36,7 @@ const render = (args: any) => ({
|
|
|
36
36
|
template: `
|
|
37
37
|
<TideImageBackground v-bind="args">
|
|
38
38
|
<div class="tide-padding-4 tide-font-700 tide-font-20">
|
|
39
|
-
|
|
39
|
+
{{ args.default }}
|
|
40
40
|
</div>
|
|
41
41
|
</TideImageBackground>
|
|
42
42
|
`,
|
|
@@ -71,7 +71,14 @@ export default {
|
|
|
71
71
|
type: { summary: 'string' },
|
|
72
72
|
},
|
|
73
73
|
},
|
|
74
|
-
default:
|
|
74
|
+
default: {
|
|
75
|
+
control: 'text',
|
|
76
|
+
description: 'Content exposed when expanded',
|
|
77
|
+
table: {
|
|
78
|
+
defaultValue: { summary: 'None' },
|
|
79
|
+
type: { summary: 'HTML' },
|
|
80
|
+
},
|
|
81
|
+
},
|
|
75
82
|
isLazy: {
|
|
76
83
|
...argTypeBooleanUnrequired,
|
|
77
84
|
description: `Determines whether to delay loading until image is in viewport.`,
|
|
@@ -95,6 +102,7 @@ export default {
|
|
|
95
102
|
},
|
|
96
103
|
args: {
|
|
97
104
|
alt: '',
|
|
105
|
+
default: 'Lorem Ipsum',
|
|
98
106
|
isLazy: undefined,
|
|
99
107
|
sources,
|
|
100
108
|
src: 'https://placedog.net/375/400',
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { action } from '@storybook/addon-actions';
|
|
2
|
+
|
|
3
|
+
import TideButton from '@/components/TideButton.vue';
|
|
4
|
+
import TideSheet from '@/components/TideSheet.vue';
|
|
5
|
+
import {
|
|
6
|
+
argTypeBooleanUnrequired,
|
|
7
|
+
disabledArgType,
|
|
8
|
+
doSomething,
|
|
9
|
+
doSomethingElse,
|
|
10
|
+
lineBreak,
|
|
11
|
+
tab,
|
|
12
|
+
} from '@/utilities/storybook';
|
|
13
|
+
|
|
14
|
+
import type { StoryContext } from '@storybook/vue3';
|
|
15
|
+
|
|
16
|
+
const formatSnippet = (code: string, context: StoryContext) => {
|
|
17
|
+
const { args } = context;
|
|
18
|
+
|
|
19
|
+
const argsWithValues: string[] = [`:is-open="${args.isOpen}"`];
|
|
20
|
+
|
|
21
|
+
if (args.isBackButton !== undefined) argsWithValues.push(`:is-back-button="${args.isBackButton}"`);
|
|
22
|
+
if (args.handleBack !== undefined) argsWithValues.push(`@back="${args.handleBack}"`);
|
|
23
|
+
if (args.handleClose !== undefined) argsWithValues.push(`@close="${args.handleClose}"`);
|
|
24
|
+
|
|
25
|
+
return `<TideSheet ${argsWithValues.join(' ')}>${lineBreak}` + `${tab}${args.default}${lineBreak}` + `</TideSheet>`;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const parameters = {
|
|
29
|
+
docs: {
|
|
30
|
+
source: {
|
|
31
|
+
format: 'vue',
|
|
32
|
+
language: 'html',
|
|
33
|
+
transform: formatSnippet,
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const render = (args: any, { updateArgs }: any) => ({
|
|
39
|
+
components: { TideButton, TideSheet },
|
|
40
|
+
methods: {
|
|
41
|
+
doSomething,
|
|
42
|
+
doSomethingElse,
|
|
43
|
+
handleBack: () => {
|
|
44
|
+
action('Back button pressed')({});
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const callback = eval(args.handleBack);
|
|
48
|
+
|
|
49
|
+
if (callback) {
|
|
50
|
+
callback();
|
|
51
|
+
}
|
|
52
|
+
} catch {
|
|
53
|
+
alert('Please specify a valid handler in the "back" control.');
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
handleClose: () => {
|
|
57
|
+
action('Sheet closed')({});
|
|
58
|
+
updateArgs({ ...args, isOpen: false });
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
const callback = eval(args.handleClose);
|
|
62
|
+
|
|
63
|
+
if (callback) {
|
|
64
|
+
callback();
|
|
65
|
+
}
|
|
66
|
+
} catch {
|
|
67
|
+
alert('Please specify a valid handler in the "close" control.');
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
handleOpenSheetClick: () => {
|
|
71
|
+
updateArgs({ ...args, isOpen: true });
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
setup: () => ({ args }),
|
|
75
|
+
template: `
|
|
76
|
+
<TideButton label="Open sheet" @click="handleOpenSheetClick" />
|
|
77
|
+
<TideSheet v-bind="args" @close="handleClose" @back="handleBack">
|
|
78
|
+
${args.default}
|
|
79
|
+
</TideSheet>`,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
export default {
|
|
83
|
+
argTypes: {
|
|
84
|
+
back: disabledArgType,
|
|
85
|
+
close: disabledArgType,
|
|
86
|
+
default: {
|
|
87
|
+
control: 'text',
|
|
88
|
+
description: 'Sheet content',
|
|
89
|
+
table: {
|
|
90
|
+
defaultValue: { summary: 'None' },
|
|
91
|
+
type: { summary: 'HTML' },
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
handleBack: {
|
|
95
|
+
control: 'text',
|
|
96
|
+
description: "JS function to execute when sheet's back button is pressed",
|
|
97
|
+
name: 'back',
|
|
98
|
+
table: {
|
|
99
|
+
category: 'Events',
|
|
100
|
+
defaultValue: { summary: 'None' },
|
|
101
|
+
type: { summary: '() => void' },
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
handleClose: {
|
|
105
|
+
control: 'text',
|
|
106
|
+
description: 'JS function to execute when sheet is closed',
|
|
107
|
+
name: 'close',
|
|
108
|
+
table: {
|
|
109
|
+
category: 'Events',
|
|
110
|
+
defaultValue: { summary: 'None' },
|
|
111
|
+
type: { summary: '() => void' },
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
isBackButton: {
|
|
115
|
+
...argTypeBooleanUnrequired,
|
|
116
|
+
description: 'Determines whether the back button is displayed',
|
|
117
|
+
table: {
|
|
118
|
+
defaultValue: { summary: 'False' },
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
isOpen: {
|
|
122
|
+
description: 'Determines whether the Sheet is displayed',
|
|
123
|
+
table: {
|
|
124
|
+
defaultValue: { summary: 'False' },
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
args: {
|
|
129
|
+
default: `<div>${lineBreak}${tab}Default Slot Demo${lineBreak}</div>`,
|
|
130
|
+
handleBack: 'doSomething',
|
|
131
|
+
handleClose: 'doSomethingElse',
|
|
132
|
+
isBackButton: undefined,
|
|
133
|
+
isOpen: false,
|
|
134
|
+
},
|
|
135
|
+
component: TideSheet,
|
|
136
|
+
parameters,
|
|
137
|
+
render,
|
|
138
|
+
tags: ['autodocs'],
|
|
139
|
+
title: 'Components/TideSheet',
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export const Demo = {};
|
package/src/types/Badge.ts
CHANGED
|
@@ -1,7 +1,72 @@
|
|
|
1
|
+
import { CSS } from '@/types/Styles';
|
|
2
|
+
|
|
3
|
+
export const BADGE_COLOR = {
|
|
4
|
+
BLACK: 'black',
|
|
5
|
+
BLUE: 'blue',
|
|
6
|
+
GREEN: 'green',
|
|
7
|
+
LIME: 'lime',
|
|
8
|
+
ORANGE: 'orange',
|
|
9
|
+
PURPLE: 'purple',
|
|
10
|
+
RED: 'red',
|
|
11
|
+
SALMON: 'salmon',
|
|
12
|
+
TEAL: 'teal',
|
|
13
|
+
YELLOW: 'yellow',
|
|
14
|
+
} as const;
|
|
15
|
+
|
|
16
|
+
export const BADGE_COLOR_DETAILS: Record<
|
|
17
|
+
BadgeColor,
|
|
18
|
+
{
|
|
19
|
+
borderColor: string;
|
|
20
|
+
iconColor: string;
|
|
21
|
+
}
|
|
22
|
+
> = {
|
|
23
|
+
[BADGE_COLOR.BLACK]: {
|
|
24
|
+
borderColor: CSS.BORDER.COLOR.HIGH,
|
|
25
|
+
iconColor: CSS.FONT.COLOR.SURFACE.DEFAULT,
|
|
26
|
+
},
|
|
27
|
+
[BADGE_COLOR.BLUE]: {
|
|
28
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.BLUE,
|
|
29
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.BLUE,
|
|
30
|
+
},
|
|
31
|
+
[BADGE_COLOR.GREEN]: {
|
|
32
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.GREEN,
|
|
33
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.GREEN,
|
|
34
|
+
},
|
|
35
|
+
[BADGE_COLOR.LIME]: {
|
|
36
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.LIME,
|
|
37
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.LIME,
|
|
38
|
+
},
|
|
39
|
+
[BADGE_COLOR.ORANGE]: {
|
|
40
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.ORANGE,
|
|
41
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.ORANGE,
|
|
42
|
+
},
|
|
43
|
+
[BADGE_COLOR.PURPLE]: {
|
|
44
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.PURPLE,
|
|
45
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.PURPLE,
|
|
46
|
+
},
|
|
47
|
+
[BADGE_COLOR.RED]: {
|
|
48
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.RED,
|
|
49
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.RED,
|
|
50
|
+
},
|
|
51
|
+
[BADGE_COLOR.SALMON]: {
|
|
52
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.SALMON,
|
|
53
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.SALMON,
|
|
54
|
+
},
|
|
55
|
+
[BADGE_COLOR.TEAL]: {
|
|
56
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.TEAL,
|
|
57
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.TEAL,
|
|
58
|
+
},
|
|
59
|
+
[BADGE_COLOR.YELLOW]: {
|
|
60
|
+
borderColor: CSS.BORDER.COLOR.GLOBAL.YELLOW,
|
|
61
|
+
iconColor: CSS.FONT.COLOR.GLOBAL.PRIMARY.YELLOW,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
|
|
1
65
|
export const BADGE_TRUSTED = {
|
|
2
66
|
YEARS_10: '10',
|
|
3
67
|
YEARS_15: '15',
|
|
4
68
|
YEARS_5: '5',
|
|
5
69
|
} as const;
|
|
6
70
|
|
|
71
|
+
export type BadgeColor = (typeof BADGE_COLOR)[keyof typeof BADGE_COLOR];
|
|
7
72
|
export type BadgeTrustedYears = (typeof BADGE_TRUSTED)[keyof typeof BADGE_TRUSTED];
|
package/src/types/Storybook.ts
CHANGED
package/src/types/Styles.ts
CHANGED
|
@@ -44,6 +44,16 @@ export const CSS = {
|
|
|
44
44
|
INFO: 'tide-bg-surface-info',
|
|
45
45
|
SUCCESS: 'tide-bg-surface-success',
|
|
46
46
|
WARNING: 'tide-bg-surface-warning',
|
|
47
|
+
|
|
48
|
+
BLUE: 'tide-bg-surface-blue',
|
|
49
|
+
GREEN: 'tide-bg-surface-green',
|
|
50
|
+
LIME: 'tide-bg-surface-lime',
|
|
51
|
+
ORANGE: 'tide-bg-surface-orange',
|
|
52
|
+
PURPLE: 'tide-bg-surface-purple',
|
|
53
|
+
RED: 'tide-bg-surface-red',
|
|
54
|
+
SALMON: 'tide-bg-surface-salmon',
|
|
55
|
+
TEAL: 'tide-bg-surface-teal',
|
|
56
|
+
YELLOW: 'tide-bg-surface-yellow',
|
|
47
57
|
},
|
|
48
58
|
},
|
|
49
59
|
INITIAL: 'tide-bg-initial',
|
|
@@ -72,6 +82,16 @@ export const CSS = {
|
|
|
72
82
|
INFO: 'tide-border-info',
|
|
73
83
|
SUCCESS: 'tide-border-success',
|
|
74
84
|
WARNING: 'tide-border-warning',
|
|
85
|
+
|
|
86
|
+
BLUE: 'tide-border-blue',
|
|
87
|
+
GREEN: 'tide-border-green',
|
|
88
|
+
LIME: 'tide-border-lime',
|
|
89
|
+
ORANGE: 'tide-border-orange',
|
|
90
|
+
PURPLE: 'tide-border-purple',
|
|
91
|
+
RED: 'tide-border-red',
|
|
92
|
+
SALMON: 'tide-border-salmon',
|
|
93
|
+
TEAL: 'tide-border-teal',
|
|
94
|
+
YELLOW: 'tide-border-yellow',
|
|
75
95
|
},
|
|
76
96
|
INITIAL: 'tide-border-color-initial',
|
|
77
97
|
DEFAULT: 'tide-border',
|
|
@@ -87,6 +107,10 @@ export const CSS = {
|
|
|
87
107
|
ONE: 'tide-radius-1',
|
|
88
108
|
FULL: 'tide-radius-full',
|
|
89
109
|
},
|
|
110
|
+
STYLE: {
|
|
111
|
+
DASHED: 'tide-border-dashed',
|
|
112
|
+
SOLID: 'tide-border-solid',
|
|
113
|
+
},
|
|
90
114
|
BOTTOM: {
|
|
91
115
|
ZERO: 'tide-border-bottom-0',
|
|
92
116
|
ONE: 'tide-border-bottom-1',
|
|
@@ -176,6 +200,28 @@ export const CSS = {
|
|
|
176
200
|
INFO: 'tide-font-info',
|
|
177
201
|
SUCCESS: 'tide-font-success',
|
|
178
202
|
WARNING: 'tide-font-warning',
|
|
203
|
+
|
|
204
|
+
BLUE: 'tide-font-blue',
|
|
205
|
+
GREEN: 'tide-font-green',
|
|
206
|
+
LIME: 'tide-font-lime',
|
|
207
|
+
ORANGE: 'tide-font-orange',
|
|
208
|
+
PURPLE: 'tide-font-purple',
|
|
209
|
+
RED: 'tide-font-red',
|
|
210
|
+
SALMON: 'tide-font-salmon',
|
|
211
|
+
TEAL: 'tide-font-teal',
|
|
212
|
+
YELLOW: 'tide-font-yellow',
|
|
213
|
+
|
|
214
|
+
PRIMARY: {
|
|
215
|
+
BLUE: 'tide-font-primary-blue',
|
|
216
|
+
GREEN: 'tide-font-primary-green',
|
|
217
|
+
LIME: 'tide-font-primary-lime',
|
|
218
|
+
ORANGE: 'tide-font-primary-orange',
|
|
219
|
+
PURPLE: 'tide-font-primary-purple',
|
|
220
|
+
RED: 'tide-font-primary-red',
|
|
221
|
+
SALMON: 'tide-font-primary-salmon',
|
|
222
|
+
TEAL: 'tide-font-primary-teal',
|
|
223
|
+
YELLOW: 'tide-font-primary-yellow',
|
|
224
|
+
},
|
|
179
225
|
},
|
|
180
226
|
PRIMARY: 'tide-font-on-primary',
|
|
181
227
|
SECONDARY: 'tide-font-on-secondary',
|
|
@@ -466,5 +512,3 @@ export const CSS = {
|
|
|
466
512
|
ONE: 'tide-z-index-1',
|
|
467
513
|
},
|
|
468
514
|
} as const;
|
|
469
|
-
|
|
470
|
-
export type CssUtility = (typeof CSS)[keyof typeof CSS];
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { describe, expect, it } from 'vitest';
|
|
4
|
+
|
|
5
|
+
const SVG_DIR: string = path.resolve(__dirname, '../src/assets/svg/icons');
|
|
6
|
+
|
|
7
|
+
const numberRegex = /-?\d*\.\d+|-?\d+/g;
|
|
8
|
+
|
|
9
|
+
function findExcessivePrecision(content: string, maxDecimals: number): string[] {
|
|
10
|
+
const matches = content.match(numberRegex);
|
|
11
|
+
if (!matches) return [];
|
|
12
|
+
|
|
13
|
+
return matches.filter((numStr) => {
|
|
14
|
+
if (numStr.includes('.')) {
|
|
15
|
+
const decimals = numStr.split('.')[1].length;
|
|
16
|
+
return decimals > maxDecimals;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
describe('SVG validation tests', () => {
|
|
23
|
+
const svgFiles: string[] = fs.readdirSync(SVG_DIR).filter((file: string) => file.endsWith('.svg'));
|
|
24
|
+
|
|
25
|
+
it('should have at least one svg file to check', () => {
|
|
26
|
+
expect(svgFiles.length).toBeGreaterThan(0);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
svgFiles.forEach((file: string) => {
|
|
30
|
+
describe(`"${file}"`, () => {
|
|
31
|
+
const filePath: string = path.join(SVG_DIR, file);
|
|
32
|
+
const content: string = fs.readFileSync(filePath, 'utf8');
|
|
33
|
+
const match: RegExpMatchArray | null = content.match(/<svg[^>]*>/i);
|
|
34
|
+
|
|
35
|
+
it('should contain an <svg> root element', () => {
|
|
36
|
+
expect(match).not.toBeNull();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
if (match) {
|
|
40
|
+
const svgTag: string = match[0];
|
|
41
|
+
|
|
42
|
+
it("should have viewBox='0 0 24 24'", () => {
|
|
43
|
+
const viewBoxMatch: RegExpMatchArray | null = svgTag.match(/viewBox\s*=\s*["']([^"']+)["']/i);
|
|
44
|
+
expect(viewBoxMatch).not.toBeNull();
|
|
45
|
+
expect(viewBoxMatch![1]).toBe('0 0 24 24');
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('should not have a fill attribute', () => {
|
|
49
|
+
const hasFill: boolean = /\sfill\s*=\s*["'][^"']*["']/i.test(svgTag);
|
|
50
|
+
expect(hasFill).toBe(false);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('should not have width or height attributes', () => {
|
|
54
|
+
const hasWidth: boolean = /\swidth\s*=\s*["'][^"']*["']/i.test(svgTag);
|
|
55
|
+
const hasHeight: boolean = /\sheight\s*=\s*["'][^"']*["']/i.test(svgTag);
|
|
56
|
+
expect(hasWidth).toBe(false);
|
|
57
|
+
expect(hasHeight).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const MAX_PRECISION = 3;
|
|
62
|
+
|
|
63
|
+
it(`should not contain numbers with more than ${MAX_PRECISION} decimal places`, () => {
|
|
64
|
+
const badNumbers = findExcessivePrecision(content, MAX_PRECISION);
|
|
65
|
+
expect(
|
|
66
|
+
badNumbers,
|
|
67
|
+
`Found overly precise numbers: ${badNumbers.join(
|
|
68
|
+
', '
|
|
69
|
+
)}. Use www.svgomg.net to optimize the vector asset before committing it.`
|
|
70
|
+
).toEqual([]);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { openBlock as e, createElementBlock as t, createElementVNode as C } from "vue";
|
|
2
|
-
const o = {
|
|
3
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
4
|
-
viewBox: "0 0 24 24"
|
|
5
|
-
}, n = /* @__PURE__ */ C("path", { d: "M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H9.2C9.41667 2.4 9.77917 1.91667 10.2875 1.55C10.7958 1.18333 11.3667 1 12 1C12.6333 1 13.2042 1.18333 13.7125 1.55C14.2208 1.91667 14.5833 2.4 14.8 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM5 19H19V5H5V19ZM7 17H14V15H7V17ZM7 13H17V11H7V13ZM7 9H17V7H7V9ZM12 4.25C12.2167 4.25 12.3958 4.17917 12.5375 4.0375C12.6792 3.89583 12.75 3.71667 12.75 3.5C12.75 3.28333 12.6792 3.10417 12.5375 2.9625C12.3958 2.82083 12.2167 2.75 12 2.75C11.7833 2.75 11.6042 2.82083 11.4625 2.9625C11.3208 3.10417 11.25 3.28333 11.25 3.5C11.25 3.71667 11.3208 3.89583 11.4625 4.0375C11.6042 4.17917 11.7833 4.25 12 4.25Z" }, null, -1), c = [
|
|
6
|
-
n
|
|
7
|
-
];
|
|
8
|
-
function s(r, H) {
|
|
9
|
-
return e(), t("svg", o, c);
|
|
10
|
-
}
|
|
11
|
-
const d = { render: s };
|
|
12
|
-
export {
|
|
13
|
-
d as default,
|
|
14
|
-
s as render
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWNvbkFzc2lnbm1lbnQtMTk4M2U1NTUuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9hc3NldHMvc3ZnL2ljb25zL0ljb25Bc3NpZ25tZW50LnN2ZyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50Vk5vZGUgYXMgX2NyZWF0ZUVsZW1lbnRWTm9kZSwgb3BlbkJsb2NrIGFzIF9vcGVuQmxvY2ssIGNyZWF0ZUVsZW1lbnRCbG9jayBhcyBfY3JlYXRlRWxlbWVudEJsb2NrIH0gZnJvbSBcInZ1ZVwiXG5cbmNvbnN0IF9ob2lzdGVkXzEgPSB7XG4gIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCJcbn1cbmNvbnN0IF9ob2lzdGVkXzIgPSAvKiNfX1BVUkVfXyovX2NyZWF0ZUVsZW1lbnRWTm9kZShcInBhdGhcIiwgeyBkOiBcIk01IDIxQzQuNDUgMjEgMy45NzkxNyAyMC44MDQyIDMuNTg3NSAyMC40MTI1QzMuMTk1ODMgMjAuMDIwOCAzIDE5LjU1IDMgMTlWNUMzIDQuNDUgMy4xOTU4MyAzLjk3OTE3IDMuNTg3NSAzLjU4NzVDMy45NzkxNyAzLjE5NTgzIDQuNDUgMyA1IDNIOS4yQzkuNDE2NjcgMi40IDkuNzc5MTcgMS45MTY2NyAxMC4yODc1IDEuNTVDMTAuNzk1OCAxLjE4MzMzIDExLjM2NjcgMSAxMiAxQzEyLjYzMzMgMSAxMy4yMDQyIDEuMTgzMzMgMTMuNzEyNSAxLjU1QzE0LjIyMDggMS45MTY2NyAxNC41ODMzIDIuNCAxNC44IDNIMTlDMTkuNTUgMyAyMC4wMjA4IDMuMTk1ODMgMjAuNDEyNSAzLjU4NzVDMjAuODA0MiAzLjk3OTE3IDIxIDQuNDUgMjEgNVYxOUMyMSAxOS41NSAyMC44MDQyIDIwLjAyMDggMjAuNDEyNSAyMC40MTI1QzIwLjAyMDggMjAuODA0MiAxOS41NSAyMSAxOSAyMUg1Wk01IDE5SDE5VjVINVYxOVpNNyAxN0gxNFYxNUg3VjE3Wk03IDEzSDE3VjExSDdWMTNaTTcgOUgxN1Y3SDdWOVpNMTIgNC4yNUMxMi4yMTY3IDQuMjUgMTIuMzk1OCA0LjE3OTE3IDEyLjUzNzUgNC4wMzc1QzEyLjY3OTIgMy44OTU4MyAxMi43NSAzLjcxNjY3IDEyLjc1IDMuNUMxMi43NSAzLjI4MzMzIDEyLjY3OTIgMy4xMDQxNyAxMi41Mzc1IDIuOTYyNUMxMi4zOTU4IDIuODIwODMgMTIuMjE2NyAyLjc1IDEyIDIuNzVDMTEuNzgzMyAyLjc1IDExLjYwNDIgMi44MjA4MyAxMS40NjI1IDIuOTYyNUMxMS4zMjA4IDMuMTA0MTcgMTEuMjUgMy4yODMzMyAxMS4yNSAzLjVDMTEuMjUgMy43MTY2NyAxMS4zMjA4IDMuODk1ODMgMTEuNDYyNSA0LjAzNzVDMTEuNjA0MiA0LjE3OTE3IDExLjc4MzMgNC4yNSAxMiA0LjI1WlwiIH0sIG51bGwsIC0xKVxuY29uc3QgX2hvaXN0ZWRfMyA9IFtcbiAgX2hvaXN0ZWRfMlxuXVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKF9jdHgsIF9jYWNoZSkge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcInN2Z1wiLCBfaG9pc3RlZF8xLCBfaG9pc3RlZF8zKSlcbn1cbmV4cG9ydCBkZWZhdWx0IHsgcmVuZGVyOiByZW5kZXIgfSJdLCJuYW1lcyI6WyJfaG9pc3RlZF8xIiwiX2hvaXN0ZWRfMiIsIl9jcmVhdGVFbGVtZW50Vk5vZGUiLCJfaG9pc3RlZF8zIiwicmVuZGVyIiwiX2N0eCIsIl9jYWNoZSIsIl9vcGVuQmxvY2siLCJfY3JlYXRlRWxlbWVudEJsb2NrIiwiSWNvbkFzc2lnbm1lbnQiXSwibWFwcGluZ3MiOiI7QUFFQSxNQUFNQSxJQUFhO0FBQUEsRUFDakIsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUNYLEdBQ01DLElBQTBCQyxnQkFBQUEsRUFBb0IsUUFBUSxFQUFFLEdBQUcsaTFCQUFpMUIsTUFBTSxFQUFFLEdBQ3A1QkMsSUFBYTtBQUFBLEVBQ2pCRjtBQUNGO0FBRU8sU0FBU0csRUFBT0MsR0FBTUMsR0FBUTtBQUNuQyxTQUFRQyxFQUFZLEdBQUVDLEVBQW9CLE9BQU9SLEdBQVlHLENBQVU7QUFDekU7QUFDQSxNQUFlTSxJQUFBLEVBQUUsUUFBUUwsRUFBTTsifQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),n={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o=e.createElementVNode("path",{d:"M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H9.2C9.41667 2.4 9.77917 1.91667 10.2875 1.55C10.7958 1.18333 11.3667 1 12 1C12.6333 1 13.2042 1.18333 13.7125 1.55C14.2208 1.91667 14.5833 2.4 14.8 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM5 19H19V5H5V19ZM7 17H14V15H7V17ZM7 13H17V11H7V13ZM7 9H17V7H7V9ZM12 4.25C12.2167 4.25 12.3958 4.17917 12.5375 4.0375C12.6792 3.89583 12.75 3.71667 12.75 3.5C12.75 3.28333 12.6792 3.10417 12.5375 2.9625C12.3958 2.82083 12.2167 2.75 12 2.75C11.7833 2.75 11.6042 2.82083 11.4625 2.9625C11.3208 3.10417 11.25 3.28333 11.25 3.5C11.25 3.71667 11.3208 3.89583 11.4625 4.0375C11.6042 4.17917 11.7833 4.25 12 4.25Z"},null,-1),C=[o];function t(c,s){return e.openBlock(),e.createElementBlock("svg",n,C)}const r={render:t};exports.default=r;exports.render=t;
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWNvbkFzc2lnbm1lbnQtOTE1NzAyY2MuY2pzIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXRzL3N2Zy9pY29ucy9JY29uQXNzaWdubWVudC5zdmciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudFZOb2RlIGFzIF9jcmVhdGVFbGVtZW50Vk5vZGUsIG9wZW5CbG9jayBhcyBfb3BlbkJsb2NrLCBjcmVhdGVFbGVtZW50QmxvY2sgYXMgX2NyZWF0ZUVsZW1lbnRCbG9jayB9IGZyb20gXCJ2dWVcIlxuXG5jb25zdCBfaG9pc3RlZF8xID0ge1xuICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiXG59XG5jb25zdCBfaG9pc3RlZF8yID0gLyojX19QVVJFX18qL19jcmVhdGVFbGVtZW50Vk5vZGUoXCJwYXRoXCIsIHsgZDogXCJNNSAyMUM0LjQ1IDIxIDMuOTc5MTcgMjAuODA0MiAzLjU4NzUgMjAuNDEyNUMzLjE5NTgzIDIwLjAyMDggMyAxOS41NSAzIDE5VjVDMyA0LjQ1IDMuMTk1ODMgMy45NzkxNyAzLjU4NzUgMy41ODc1QzMuOTc5MTcgMy4xOTU4MyA0LjQ1IDMgNSAzSDkuMkM5LjQxNjY3IDIuNCA5Ljc3OTE3IDEuOTE2NjcgMTAuMjg3NSAxLjU1QzEwLjc5NTggMS4xODMzMyAxMS4zNjY3IDEgMTIgMUMxMi42MzMzIDEgMTMuMjA0MiAxLjE4MzMzIDEzLjcxMjUgMS41NUMxNC4yMjA4IDEuOTE2NjcgMTQuNTgzMyAyLjQgMTQuOCAzSDE5QzE5LjU1IDMgMjAuMDIwOCAzLjE5NTgzIDIwLjQxMjUgMy41ODc1QzIwLjgwNDIgMy45NzkxNyAyMSA0LjQ1IDIxIDVWMTlDMjEgMTkuNTUgMjAuODA0MiAyMC4wMjA4IDIwLjQxMjUgMjAuNDEyNUMyMC4wMjA4IDIwLjgwNDIgMTkuNTUgMjEgMTkgMjFINVpNNSAxOUgxOVY1SDVWMTlaTTcgMTdIMTRWMTVIN1YxN1pNNyAxM0gxN1YxMUg3VjEzWk03IDlIMTdWN0g3VjlaTTEyIDQuMjVDMTIuMjE2NyA0LjI1IDEyLjM5NTggNC4xNzkxNyAxMi41Mzc1IDQuMDM3NUMxMi42NzkyIDMuODk1ODMgMTIuNzUgMy43MTY2NyAxMi43NSAzLjVDMTIuNzUgMy4yODMzMyAxMi42NzkyIDMuMTA0MTcgMTIuNTM3NSAyLjk2MjVDMTIuMzk1OCAyLjgyMDgzIDEyLjIxNjcgMi43NSAxMiAyLjc1QzExLjc4MzMgMi43NSAxMS42MDQyIDIuODIwODMgMTEuNDYyNSAyLjk2MjVDMTEuMzIwOCAzLjEwNDE3IDExLjI1IDMuMjgzMzMgMTEuMjUgMy41QzExLjI1IDMuNzE2NjcgMTEuMzIwOCAzLjg5NTgzIDExLjQ2MjUgNC4wMzc1QzExLjYwNDIgNC4xNzkxNyAxMS43ODMzIDQuMjUgMTIgNC4yNVpcIiB9LCBudWxsLCAtMSlcbmNvbnN0IF9ob2lzdGVkXzMgPSBbXG4gIF9ob2lzdGVkXzJcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcihfY3R4LCBfY2FjaGUpIHtcbiAgcmV0dXJuIChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJzdmdcIiwgX2hvaXN0ZWRfMSwgX2hvaXN0ZWRfMykpXG59XG5leHBvcnQgZGVmYXVsdCB7IHJlbmRlcjogcmVuZGVyIH0iXSwibmFtZXMiOlsiX2hvaXN0ZWRfMSIsIl9ob2lzdGVkXzIiLCJfY3JlYXRlRWxlbWVudFZOb2RlIiwiX2hvaXN0ZWRfMyIsInJlbmRlciIsIl9jdHgiLCJfY2FjaGUiLCJfb3BlbkJsb2NrIiwiX2NyZWF0ZUVsZW1lbnRCbG9jayIsIkljb25Bc3NpZ25tZW50Il0sIm1hcHBpbmdzIjoidUdBRU1BLEVBQWEsQ0FDakIsTUFBTyw2QkFDUCxRQUFTLFdBQ1gsRUFDTUMsRUFBMEJDLEVBQUFBLG1CQUFvQixPQUFRLENBQUUsRUFBRywrMEJBQWkxQixLQUFNLEVBQUUsRUFDcDVCQyxFQUFhLENBQ2pCRixDQUNGLEVBRU8sU0FBU0csRUFBT0MsRUFBTUMsRUFBUSxDQUNuQyxPQUFRQyxFQUFBQSxVQUFZLEVBQUVDLEVBQW1CLG1CQUFDLE1BQU9SLEVBQVlHLENBQVUsQ0FDekUsQ0FDQSxNQUFlTSxFQUFBLENBQUUsT0FBUUwsQ0FBTSJ9
|