@asantemedia-org/atlas-copco-vt-storybook 1.0.0
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/.eslintrc.json +3 -0
- package/.nvmrc +1 -0
- package/.prettierignore +2 -0
- package/.prettierrc +8 -0
- package/.storybook/AtlasCopcoTheme.ts +14 -0
- package/.storybook/global.scss +15 -0
- package/.storybook/main.ts +125 -0
- package/.storybook/manager.ts +6 -0
- package/.storybook/preview-head.html +4 -0
- package/.storybook/preview.tsx +73 -0
- package/.storybook/types.d.ts +5 -0
- package/.vscode/settings.json +4 -0
- package/README.md +59 -0
- package/next.config.js +8 -0
- package/package.json +76 -0
- package/postcss.config.js +6 -0
- package/public/.gitkeep +0 -0
- package/public/assets/.gitkeep +0 -0
- package/public/fonts/.gitkeep +0 -0
- package/src/app/globals.css +13 -0
- package/src/app/layout.tsx +18 -0
- package/src/app/page.tsx +11 -0
- package/src/components/Button/Button.module.scss +77 -0
- package/src/components/Button/Button.stories.tsx +97 -0
- package/src/components/Button/Button.tsx +47 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Image/Image.module.scss +75 -0
- package/src/components/Image/Image.tsx +114 -0
- package/src/components/Image/Image.types.ts +34 -0
- package/src/components/Image/index.ts +2 -0
- package/src/components/ProductCardDetails/ProductCardDetails.module.scss +129 -0
- package/src/components/ProductCardDetails/ProductCardDetails.stories.tsx +138 -0
- package/src/components/ProductCardDetails/ProductCardDetails.tsx +61 -0
- package/src/components/ProductCardDetails/index.ts +2 -0
- package/src/components/ProductCardHorizontal/ProductCardHorizontal.module.scss +93 -0
- package/src/components/ProductCardHorizontal/ProductCardHorizontal.stories.tsx +72 -0
- package/src/components/ProductCardHorizontal/ProductCardHorizontal.tsx +50 -0
- package/src/components/ProductCardHorizontal/index.ts +2 -0
- package/src/experience/algolia-dynamic-search/AlgoliaDynamicSearch.scss +135 -0
- package/src/experience/algolia-dynamic-search/AlgoliaDynamicSearch.stories.tsx +109 -0
- package/src/experience/algolia-dynamic-search/AlgoliaDynamicSearch.tsx +67 -0
- package/src/experience/algolia-dynamic-search/index.ts +2 -0
- package/src/experience/qr-form-journey/QrFormJourney.scss +37 -0
- package/src/experience/qr-form-journey/QrFormJourney.stories.tsx +134 -0
- package/src/experience/qr-form-journey/QrFormJourney.tsx +69 -0
- package/src/experience/qr-form-journey/index.ts +2 -0
- package/src/index.ts +19 -0
- package/src/stories/foundation/_components/StoryLayout.tsx +67 -0
- package/src/stories/introduction/Welcome.mdx +36 -0
- package/src/types/buttons.ts +4 -0
- package/src/types/cards.ts +37 -0
- package/src/utils/data/algolia-dynamic-widget-product-data.json +46 -0
- package/src/utils/styles/base.scss +100 -0
- package/src/utils/styles/global.scss +29 -0
- package/src/utils/styles/index.ts +1 -0
- package/src/utils/styles/typography.scss +60 -0
- package/tailwind.config.js +19 -0
- package/tsconfig.json +41 -0
- package/types/@asantemedia-org__edwardsvacuum-design-system.d.ts +8 -0
package/src/index.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Atlas Copco VTBA Design System – entry point
|
|
2
|
+
|
|
3
|
+
export { Button } from "./components/Button";
|
|
4
|
+
export type { ButtonProps, ButtonVariant } from "./components/Button";
|
|
5
|
+
|
|
6
|
+
export { Image } from "./components/Image";
|
|
7
|
+
export type { ImageProps } from "./components/Image";
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
ProductCardHorizontal,
|
|
11
|
+
ProductCardHorizontalParts,
|
|
12
|
+
} from "./components/ProductCardHorizontal";
|
|
13
|
+
export type { ProductCardHorizontalProps } from "./types/cards";
|
|
14
|
+
|
|
15
|
+
export { ProductCardDetails } from "./components/ProductCardDetails";
|
|
16
|
+
export type { ProductCardDetailsProps } from "./types/cards";
|
|
17
|
+
|
|
18
|
+
export { AlgoliaDynamicSearchVT } from "./experience/algolia-dynamic-search";
|
|
19
|
+
export { QrFormVT } from "./experience/qr-form-journey";
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
|
|
3
|
+
interface StoryFooterProps {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const StoryFooter = ({ children }: StoryFooterProps) => (
|
|
8
|
+
<div
|
|
9
|
+
style={{
|
|
10
|
+
backgroundColor: "color-mix(in srgb, var(--atlascopco-grey-300) 30%, transparent)",
|
|
11
|
+
width: "100vw",
|
|
12
|
+
marginLeft: "calc(50% - 50vw)",
|
|
13
|
+
paddingTop: "64px",
|
|
14
|
+
paddingBottom: "64px",
|
|
15
|
+
paddingLeft: "calc(50vw - 50%)",
|
|
16
|
+
paddingRight: "calc(50vw - 50%)",
|
|
17
|
+
}}
|
|
18
|
+
>
|
|
19
|
+
{children}
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
interface StoryHeaderProps {
|
|
24
|
+
title: string;
|
|
25
|
+
subtitle: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const StoryHeader = ({ title, subtitle }: StoryHeaderProps) => (
|
|
29
|
+
<div
|
|
30
|
+
style={{
|
|
31
|
+
backgroundColor: "color-mix(in srgb, var(--atlascopco-grey-300) 30%, transparent)",
|
|
32
|
+
width: "100vw",
|
|
33
|
+
marginLeft: "calc(50% - 50vw)",
|
|
34
|
+
marginBottom: "54px",
|
|
35
|
+
paddingTop: "85px",
|
|
36
|
+
paddingBottom: "85px",
|
|
37
|
+
paddingLeft: "calc(50vw - 50%)",
|
|
38
|
+
paddingRight: "calc(50vw - 50%)",
|
|
39
|
+
}}
|
|
40
|
+
>
|
|
41
|
+
<h1
|
|
42
|
+
style={{
|
|
43
|
+
fontFamily: "var(--font-family-base)",
|
|
44
|
+
fontWeight: 700,
|
|
45
|
+
fontSize: "var(--text-xxl-size)",
|
|
46
|
+
color: "var(--atlascopco-blue)",
|
|
47
|
+
margin: 0,
|
|
48
|
+
marginBottom: "24px",
|
|
49
|
+
lineHeight: "var(--text-xxl-line-height)",
|
|
50
|
+
}}
|
|
51
|
+
>
|
|
52
|
+
{title}
|
|
53
|
+
</h1>
|
|
54
|
+
<div
|
|
55
|
+
style={{
|
|
56
|
+
fontFamily: "var(--font-family-base)",
|
|
57
|
+
fontWeight: 400,
|
|
58
|
+
fontSize: "var(--text-xl-size)",
|
|
59
|
+
color: "var(--atlascopco-black)",
|
|
60
|
+
margin: 0,
|
|
61
|
+
lineHeight: "var(--text-xl-line-height)",
|
|
62
|
+
}}
|
|
63
|
+
>
|
|
64
|
+
{subtitle}
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Meta, Unstyled } from "@storybook/blocks";
|
|
2
|
+
import { StoryHeader, StoryFooter } from "../foundation/_components/StoryLayout";
|
|
3
|
+
|
|
4
|
+
<Meta title="Introduction/Welcome" />
|
|
5
|
+
|
|
6
|
+
<Unstyled>
|
|
7
|
+
|
|
8
|
+
<StoryHeader
|
|
9
|
+
title="Welcome to the Atlas Copco VTBA Design System"
|
|
10
|
+
subtitle="A design system for consistent, on-brand experiences across VTBA digital products."
|
|
11
|
+
/>
|
|
12
|
+
|
|
13
|
+
<div style={{ fontFamily: "var(--font-family-base)", fontSize: "24px", fontWeight: 400, color: "var(--atlascopco-grey-500)", lineHeight: "32px", marginBottom: "32px", maxWidth: "1002px", paddingLeft: "32px" }}>
|
|
14
|
+
This Storybook is your single source of truth for components, patterns, and guidelines. Use it to build accessible, consistent UIs for Atlas Copco VTBA applications.
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
<div style={{ fontFamily: "var(--font-family-base)", fontSize: "24px", fontWeight: 700, color: "var(--atlascopco-grey-500)", lineHeight: "32px", marginBottom: "32px", maxWidth: "1002px", paddingLeft: "32px" }}>
|
|
18
|
+
Built with React and Storybook 7—ready for designers and developers.
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<div style={{ fontFamily: "var(--font-family-base)", fontSize: "24px", fontWeight: 400, color: "var(--atlascopco-grey-500)", lineHeight: "32px", marginBottom: "64px", maxWidth: "1002px", paddingLeft: "32px" }}>
|
|
22
|
+
Explore the sidebar for Introduction, Foundation, and Components. Add new stories as you build.
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<StoryFooter>
|
|
26
|
+
<div style={{ paddingLeft: "32px" }}>
|
|
27
|
+
<h2 style={{ fontFamily: "var(--font-family-base)", fontWeight: 700, fontSize: "32px", color: "var(--atlascopco-grey-500)", margin: 0, marginBottom: "24px", lineHeight: "1.4" }}>
|
|
28
|
+
Questions or feedback?
|
|
29
|
+
</h2>
|
|
30
|
+
<p style={{ fontFamily: "var(--font-family-base)", fontSize: "24px", fontWeight: 400, color: "var(--atlascopco-grey-500)", lineHeight: "32px", margin: 0, maxWidth: "1002px" }}>
|
|
31
|
+
Reach out to your design or development lead to contribute or request new components.
|
|
32
|
+
</p>
|
|
33
|
+
</div>
|
|
34
|
+
</StoryFooter>
|
|
35
|
+
|
|
36
|
+
</Unstyled>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import type { ButtonProps } from "./buttons";
|
|
3
|
+
|
|
4
|
+
export interface ProductCardHorizontalProps {
|
|
5
|
+
id?: string;
|
|
6
|
+
title: string;
|
|
7
|
+
url: string;
|
|
8
|
+
imageUrl?: string;
|
|
9
|
+
productId?: string;
|
|
10
|
+
price?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
button?: ButtonProps;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type ProductCardHorizontalPartsProps = ProductCardHorizontalProps;
|
|
17
|
+
|
|
18
|
+
export interface ProductCardDetailsProps {
|
|
19
|
+
id?: string;
|
|
20
|
+
title: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
price?: string;
|
|
23
|
+
code?: string;
|
|
24
|
+
imageUrl?: string;
|
|
25
|
+
className?: string;
|
|
26
|
+
button?: ButtonProps;
|
|
27
|
+
facets?: Array<{ name: string; label: string; returnsHTML?: boolean }>;
|
|
28
|
+
hit?: Record<string, unknown>;
|
|
29
|
+
ProductCardComponent?: React.FC<ProductCardHorizontalProps>;
|
|
30
|
+
relatedProducts?: Array<{
|
|
31
|
+
code: string;
|
|
32
|
+
name: string;
|
|
33
|
+
price_range: string;
|
|
34
|
+
img_product: string;
|
|
35
|
+
url: string;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hits": [
|
|
3
|
+
{
|
|
4
|
+
"name": "GA 30+ - Oil-injected rotary screw compressor, A50873130",
|
|
5
|
+
"code": "A50873130",
|
|
6
|
+
"url": "/vt/products/compressors/ga-30/p/A50873130",
|
|
7
|
+
"img-product": "/medias/ga-30-product.png",
|
|
8
|
+
"priceValue": "5600",
|
|
9
|
+
"description": "<h2>Industrial Compressors</h2><p>Atlas Copco GA 30+ oil-injected rotary screw compressors deliver reliable performance for demanding industrial applications.</p>",
|
|
10
|
+
"related_products": [
|
|
11
|
+
{
|
|
12
|
+
"code": "A50871100",
|
|
13
|
+
"name": "Service Kit - GA 30",
|
|
14
|
+
"price_range": "200-499.99",
|
|
15
|
+
"img_product": "",
|
|
16
|
+
"url": "/vt/products/kits/A50871100"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"objectID": "11867339653121",
|
|
20
|
+
"powerTotalRated": "power_kW|30.00#power_W|30000.00",
|
|
21
|
+
"connectionVacuumInletFlange": "3/4\" BSPP Female",
|
|
22
|
+
"pumpingSpeedAirNitrogen": "volumeFlowRate_l/s|30.56",
|
|
23
|
+
"pressureUltimate": "pressure_bar|0.200#pressure_mbar|200.00"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "GX 11 - Oil-free scroll compressor, A50871954",
|
|
27
|
+
"code": "A50871954",
|
|
28
|
+
"url": "/vt/products/compressors/gx-11/p/A50871954",
|
|
29
|
+
"img-product": "/medias/gx-11-product.png",
|
|
30
|
+
"priceValue": "3250",
|
|
31
|
+
"description": "<h2>Oil-free Scroll</h2><p>Atlas Copco GX 11 oil-free scroll compressors are designed for clean air applications with minimal maintenance.</p>",
|
|
32
|
+
"related_products": [
|
|
33
|
+
{
|
|
34
|
+
"code": "A50871100",
|
|
35
|
+
"name": "Filter Kit - GX 11",
|
|
36
|
+
"price_range": "100-199.99",
|
|
37
|
+
"img_product": "",
|
|
38
|
+
"url": "/vt/products/kits/A50871100"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"objectID": "13068074123265",
|
|
42
|
+
"powerTotalRated": "power_kW|11.00#power_W|11000.00",
|
|
43
|
+
"pressureUltimate": "pressure_bar|0.150#pressure_mbar|150.00"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Base SCSS – Atlas Copco VTBA design tokens
|
|
2
|
+
// Primary palette: Atlas Copco blue
|
|
3
|
+
|
|
4
|
+
// =============================================================================
|
|
5
|
+
// ATLAS COPCO COLOR PALETTE
|
|
6
|
+
// =============================================================================
|
|
7
|
+
|
|
8
|
+
$atlascopco-blue: #0062b0;
|
|
9
|
+
$atlascopco-blue-dark: #004a85;
|
|
10
|
+
$atlascopco-black: #000000;
|
|
11
|
+
$atlascopco-white: #ffffff;
|
|
12
|
+
|
|
13
|
+
// Greyscale
|
|
14
|
+
$atlascopco-grey-100: #f5f5f5;
|
|
15
|
+
$atlascopco-grey-200: #e0e0e0;
|
|
16
|
+
$atlascopco-grey-300: #c5c7c4;
|
|
17
|
+
$atlascopco-grey-400: #99a1ab;
|
|
18
|
+
$atlascopco-grey-500: #4a4e54;
|
|
19
|
+
$atlascopco-grey-600: #383e42;
|
|
20
|
+
|
|
21
|
+
// Semantic
|
|
22
|
+
$primary-color: $atlascopco-blue;
|
|
23
|
+
$secondary-color: $atlascopco-grey-500;
|
|
24
|
+
$text-primary: $atlascopco-black;
|
|
25
|
+
$text-secondary: $atlascopco-grey-500;
|
|
26
|
+
$text-muted: $atlascopco-grey-400;
|
|
27
|
+
$bg-primary: $atlascopco-white;
|
|
28
|
+
$bg-secondary: $atlascopco-grey-100;
|
|
29
|
+
$border-color: $atlascopco-grey-300;
|
|
30
|
+
|
|
31
|
+
// =============================================================================
|
|
32
|
+
// TYPOGRAPHY & SPACING
|
|
33
|
+
// =============================================================================
|
|
34
|
+
|
|
35
|
+
$font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
|
|
36
|
+
$font-size-base: 18px;
|
|
37
|
+
$font-size-root: 18px;
|
|
38
|
+
$line-height-base: 1.5;
|
|
39
|
+
|
|
40
|
+
$spacing-xs: 0.25rem;
|
|
41
|
+
$spacing-sm: 0.5rem;
|
|
42
|
+
$spacing-md: 1rem;
|
|
43
|
+
$spacing-lg: 1.5rem;
|
|
44
|
+
$spacing-xl: 2rem;
|
|
45
|
+
|
|
46
|
+
$breakpoint-xs: 375px;
|
|
47
|
+
$breakpoint-sm: 768px;
|
|
48
|
+
$breakpoint-md: 992px;
|
|
49
|
+
$breakpoint-lg: 1024px;
|
|
50
|
+
$breakpoint-xl: 1440px;
|
|
51
|
+
|
|
52
|
+
@mixin respond-to($breakpoint) {
|
|
53
|
+
@media (min-width: $breakpoint) {
|
|
54
|
+
@content;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// =============================================================================
|
|
59
|
+
// CSS CUSTOM PROPERTIES
|
|
60
|
+
// =============================================================================
|
|
61
|
+
|
|
62
|
+
:root {
|
|
63
|
+
--atlascopco-blue: #{$atlascopco-blue};
|
|
64
|
+
--atlascopco-blue-dark: #{$atlascopco-blue-dark};
|
|
65
|
+
--atlascopco-black: #{$atlascopco-black};
|
|
66
|
+
--atlascopco-white: #{$atlascopco-white};
|
|
67
|
+
--atlascopco-grey-100: #{$atlascopco-grey-100};
|
|
68
|
+
--atlascopco-grey-200: #{$atlascopco-grey-200};
|
|
69
|
+
--atlascopco-grey-300: #{$atlascopco-grey-300};
|
|
70
|
+
--atlascopco-grey-400: #{$atlascopco-grey-400};
|
|
71
|
+
--atlascopco-grey-500: #{$atlascopco-grey-500};
|
|
72
|
+
--atlascopco-grey-600: #{$atlascopco-grey-600};
|
|
73
|
+
--color-primary: #{$primary-color};
|
|
74
|
+
--font-family-base: #{$font-family-base};
|
|
75
|
+
|
|
76
|
+
--h1-mobile-size: 32px;
|
|
77
|
+
--h1-mobile-line-height: 1.2;
|
|
78
|
+
--h2-mobile-size: 24px;
|
|
79
|
+
--h2-mobile-line-height: 1.2;
|
|
80
|
+
--h3-mobile-size: 18px;
|
|
81
|
+
--h3-mobile-line-height: 1.6;
|
|
82
|
+
--body-mobile-size: 14px;
|
|
83
|
+
--body-mobile-line-height: 1.5;
|
|
84
|
+
|
|
85
|
+
--h1-desktop-size: 55px;
|
|
86
|
+
--h1-desktop-line-height: 1.15;
|
|
87
|
+
--h2-desktop-size: 40px;
|
|
88
|
+
--h2-desktop-line-height: 1.2;
|
|
89
|
+
--h3-desktop-size: 32px;
|
|
90
|
+
--h3-desktop-line-height: 1.2;
|
|
91
|
+
--body-desktop-size: 18px;
|
|
92
|
+
--body-desktop-line-height: 1.6;
|
|
93
|
+
|
|
94
|
+
--text-lg-size: 27px;
|
|
95
|
+
--text-lg-line-height: 1.4;
|
|
96
|
+
--text-xl-size: 36px;
|
|
97
|
+
--text-xl-line-height: 1.4;
|
|
98
|
+
--text-xxl-size: 64px;
|
|
99
|
+
--text-xxl-line-height: 1;
|
|
100
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Global styles for Atlas Copco VTBA Design System
|
|
2
|
+
@use "./base.scss" as *;
|
|
3
|
+
|
|
4
|
+
* {
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
padding: 0;
|
|
7
|
+
margin: 0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
html {
|
|
11
|
+
font-size: 18px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
html,
|
|
15
|
+
body {
|
|
16
|
+
max-width: 100vw;
|
|
17
|
+
overflow-x: hidden;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
body {
|
|
21
|
+
font-family: var(--font-family-base);
|
|
22
|
+
-webkit-font-smoothing: antialiased;
|
|
23
|
+
-moz-osx-font-smoothing: grayscale;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
a {
|
|
27
|
+
color: inherit;
|
|
28
|
+
text-decoration: none;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
@use "base" as *;
|
|
2
|
+
|
|
3
|
+
h1, .h1 {
|
|
4
|
+
font-family: var(--font-family-base);
|
|
5
|
+
font-weight: 700;
|
|
6
|
+
font-size: var(--h1-mobile-size);
|
|
7
|
+
line-height: var(--h1-mobile-line-height);
|
|
8
|
+
@include respond-to($breakpoint-md) {
|
|
9
|
+
font-size: var(--h1-desktop-size);
|
|
10
|
+
line-height: var(--h1-desktop-line-height);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
h2, .h2 {
|
|
15
|
+
font-family: var(--font-family-base);
|
|
16
|
+
font-weight: 700;
|
|
17
|
+
font-size: var(--h2-mobile-size);
|
|
18
|
+
line-height: var(--h2-mobile-line-height);
|
|
19
|
+
@include respond-to($breakpoint-md) {
|
|
20
|
+
font-size: var(--h2-desktop-size);
|
|
21
|
+
line-height: var(--h2-desktop-line-height);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
h3, .h3 {
|
|
26
|
+
font-family: var(--font-family-base);
|
|
27
|
+
font-weight: 700;
|
|
28
|
+
font-size: var(--h3-mobile-size);
|
|
29
|
+
line-height: var(--h3-mobile-line-height);
|
|
30
|
+
@include respond-to($breakpoint-md) {
|
|
31
|
+
font-size: var(--h3-desktop-size);
|
|
32
|
+
line-height: var(--h3-desktop-line-height);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.body {
|
|
37
|
+
font-family: var(--font-family-base);
|
|
38
|
+
font-weight: 400;
|
|
39
|
+
font-size: var(--body-mobile-size);
|
|
40
|
+
line-height: var(--body-mobile-line-height);
|
|
41
|
+
@include respond-to($breakpoint-md) {
|
|
42
|
+
font-size: var(--body-desktop-size);
|
|
43
|
+
line-height: var(--body-desktop-line-height);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.text-lg {
|
|
48
|
+
font-size: var(--text-lg-size);
|
|
49
|
+
line-height: var(--text-lg-line-height);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.text-xl {
|
|
53
|
+
font-size: var(--text-xl-size);
|
|
54
|
+
line-height: var(--text-xl-line-height);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.text-xxl {
|
|
58
|
+
font-size: var(--text-xxl-size);
|
|
59
|
+
line-height: var(--text-xxl-line-height);
|
|
60
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** @type {import('tailwindcss').Config} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
content: [
|
|
4
|
+
"./src/pages/**/*.{js,ts,jsx,tsx}",
|
|
5
|
+
"./src/components/**/*.{js,ts,jsx,tsx}",
|
|
6
|
+
"./src/app/**/*.{js,ts,jsx,tsx}",
|
|
7
|
+
"./src/stories/**/*.{js,ts,jsx,tsx}",
|
|
8
|
+
],
|
|
9
|
+
theme: {
|
|
10
|
+
extend: {
|
|
11
|
+
backgroundImage: {
|
|
12
|
+
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
|
|
13
|
+
"gradient-conic":
|
|
14
|
+
"conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
plugins: [],
|
|
19
|
+
};
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es5",
|
|
4
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
5
|
+
"allowJs": true,
|
|
6
|
+
"skipLibCheck": true,
|
|
7
|
+
"strict": true,
|
|
8
|
+
"forceConsistentCasingInFileNames": true,
|
|
9
|
+
"noEmit": false,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"module": "esnext",
|
|
12
|
+
"moduleResolution": "node",
|
|
13
|
+
"resolveJsonModule": true,
|
|
14
|
+
"isolatedModules": true,
|
|
15
|
+
"jsx": "preserve",
|
|
16
|
+
"incremental": true,
|
|
17
|
+
"declaration": true,
|
|
18
|
+
"plugins": [{ "name": "next" }],
|
|
19
|
+
"baseUrl": "./",
|
|
20
|
+
"outDir": "dist",
|
|
21
|
+
"paths": {
|
|
22
|
+
"@stories/*": ["src/stories/*"],
|
|
23
|
+
"@components/*": ["src/components/*"],
|
|
24
|
+
"*": ["types/*"]
|
|
25
|
+
},
|
|
26
|
+
"types": ["node"],
|
|
27
|
+
"typeRoots": ["./node_modules/@types"]
|
|
28
|
+
},
|
|
29
|
+
"include": [
|
|
30
|
+
"next-env.d.ts",
|
|
31
|
+
"**/*.ts",
|
|
32
|
+
"**/*.tsx",
|
|
33
|
+
".next/types/**/*.ts",
|
|
34
|
+
"src/**/*.ts",
|
|
35
|
+
"src/**/*.tsx",
|
|
36
|
+
".storybook/**/*.ts",
|
|
37
|
+
".storybook/**/*.tsx",
|
|
38
|
+
"types/**/*.d.ts"
|
|
39
|
+
],
|
|
40
|
+
"exclude": ["node_modules", "dist"]
|
|
41
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare module "@asantemedia-org/edwardsvacuum-design-system" {
|
|
2
|
+
export const allQrFromProps: any;
|
|
3
|
+
export const QrForm: any;
|
|
4
|
+
export const AlgoliaDynamicSearchRaw: any;
|
|
5
|
+
export const ProductDetailsCard: any;
|
|
6
|
+
const _default: any;
|
|
7
|
+
export default _default;
|
|
8
|
+
}
|