Skip to content

Commit 12c81d4

Browse files
committed
Merge branch 'main' into s2
2 parents 52104c0 + 976604a commit 12c81d4

File tree

5,085 files changed

+509552
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

5,085 files changed

+509552
-0
lines changed

.browserslistrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
chrome >= 79
2+
firefox >= 85
3+
safari >= 13
4+
edge >= 88

.chromatic-fc/.parcelrc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"extends": "@parcel/config-default",
3+
"resolvers": ["@parcel/resolver-glob", "parcel-resolver-storybook", "..."],
4+
"transformers": {
5+
"packages/*/*/intl/*.json": ["parcel-transformer-intl"],
6+
"*.{js,mjs,jsm,jsx,es6,cjs,ts,tsx}": [
7+
"@parcel/transformer-js",
8+
"@parcel/transformer-react-refresh-wrap"
9+
]
10+
}
11+
}

.chromatic-fc/constants.js

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
import themeGlobal from '@adobe/spectrum-css-temp/vars/spectrum-global.css';
2+
import themeLight from '@adobe/spectrum-css-temp/vars/spectrum-light.css';
3+
import themeLightest from '@adobe/spectrum-css-temp/vars/spectrum-lightest.css';
4+
import themeDark from '@adobe/spectrum-css-temp/vars/spectrum-dark.css';
5+
import themeDarkest from '@adobe/spectrum-css-temp/vars/spectrum-darkest.css';
6+
import scaleMedium from '@adobe/spectrum-css-temp/vars/spectrum-medium.css';
7+
import scaleLarge from '@adobe/spectrum-css-temp/vars/spectrum-large.css';
8+
import express from '@adobe/spectrum-css-temp/vars/express.css';
9+
10+
const THEME = {
11+
global: themeGlobal,
12+
light: themeLight,
13+
lightest: themeLightest,
14+
dark: themeDark,
15+
darkest: themeDarkest
16+
};
17+
18+
export const scales = {
19+
medium: scaleMedium,
20+
large: scaleLarge
21+
};
22+
23+
export let defaultTheme = {
24+
global: THEME.global,
25+
light: THEME.light,
26+
dark: THEME.darkest,
27+
medium: scales.medium,
28+
large: scales.large
29+
};
30+
31+
export let altTheme = {
32+
global: THEME.global,
33+
light: THEME.lightest,
34+
dark: THEME.dark,
35+
medium: scales.medium,
36+
large: scales.large
37+
};
38+
39+
export let themes = {
40+
light: defaultTheme,
41+
dark: altTheme,
42+
lightest: altTheme,
43+
darkest: defaultTheme
44+
};
45+
46+
export let expressThemes = {};
47+
for (let key in themes) {
48+
expressThemes[key] = {
49+
...themes[key],
50+
global: {
51+
...themes[key].global,
52+
express: express.express
53+
},
54+
medium: {
55+
...themes[key].medium,
56+
express: express.medium
57+
},
58+
large: {
59+
...themes[key].large,
60+
express: express.large
61+
}
62+
};
63+
}
64+
65+
// Based on https://adobe.sharepoint.com/sites/global/SitePages/Languages%20Supported.aspx
66+
export let locales = [
67+
{label: 'Auto', value: ''},
68+
// Tier 1
69+
{label: 'French (France)', value: 'fr-FR'},
70+
{label: 'French (Canada)', value: 'fr-CA'},
71+
{label: 'German (Germany)', value: 'de-DE'},
72+
{label: 'English (Great Britain)', value: 'en-GB'},
73+
{label: 'English (United States)', value: 'en-US'},
74+
{label: 'Japanese (Japan)', value: 'ja-JP'},
75+
// // Tier 2
76+
{label: 'Danish (Denmark)', value: 'da-DK'},
77+
{label: 'Dutch (Netherlands)', value: 'nl-NL'},
78+
{label: 'Finnish (Finland)', value: 'fi-FI'},
79+
{label: 'Italian (Italy)', value: 'it-IT'},
80+
{label: 'Norwegian (Norway)', value: 'nb-NO'},
81+
{label: 'Spanish (Spain)', value: 'es-ES'},
82+
{label: 'Swedish (Sweden)', value: 'sv-SE'},
83+
{label: 'Portuguese (Brazil)', value: 'pt-BR'},
84+
// // Tier 3
85+
{label: 'Chinese (Simplified)', value: 'zh-CN'},
86+
{label: 'Chinese (Traditional)', value: 'zh-TW'},
87+
{label: 'Korean (Korea)', value: 'ko-KR'},
88+
// // Tier 4
89+
{label: 'Bulgarian (Bulgaria)', value: 'bg-BG'},
90+
{label: 'Croatian (Croatia)', value: 'hr-HR'},
91+
{label: 'Czech (Czech Republic)', value: 'cs-CZ'},
92+
{label: 'Estonian (Estonia)', value: 'et-EE'},
93+
{label: 'Hungarian (Hungary)', value: 'hu-HU'},
94+
{label: 'Latvian (Latvia)', value: 'lv-LV'},
95+
{label: 'Lithuanian (Lithuania)', value: 'lt-LT'},
96+
{label: 'Polish (Poland)', value: 'pl-PL'},
97+
{label: 'Romanian (Romania)', value: 'ro-RO'},
98+
{label: 'Russian (Russia)', value: 'ru-RU'},
99+
{label: 'Serbian (Serbia)', value: 'sr-SP'},
100+
{label: 'Slovakian (Slovakia)', value: 'sk-SK'},
101+
{label: 'Slovenian (Slovenia)', value: 'sl-SI'},
102+
{label: 'Turkish (Turkey)', value: 'tr-TR'},
103+
{label: 'Ukrainian (Ukraine)', value: 'uk-UA'},
104+
// // Tier 5
105+
{label: 'Arabic (United Arab Emirates)', value: 'ar-AE'}, // ar-SA??
106+
{label: 'Greek (Greece)', value: 'el-GR'},
107+
{label: 'Hebrew (Israel)', value: 'he-IL'}
108+
];
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.disableAnimations * {
2+
transition: none !important;
3+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import {expressThemes, locales, scales, themes} from '../../constants';
2+
import {makeDecorator} from '@storybook/preview-api';
3+
import {Provider, View} from '@adobe/react-spectrum';
4+
import React, {useEffect} from 'react';
5+
import './disableAnimations.css';
6+
7+
export const withChromaticProvider = makeDecorator({
8+
name: 'withChromaticProvider',
9+
parameterName: 'chromaticProvider',
10+
wrapper: (getStory, context, {options, parameters}) => {
11+
options = {express: false, ...options, ...parameters};
12+
let selectedLocales
13+
if (options.locales && options.locales.length) {
14+
selectedLocales = options.locales;
15+
} else {
16+
selectedLocales = options.locales ? locales.map(l => l.value).slice(1) : ['en-US'];
17+
}
18+
let colorSchemes = options.express ? [] : (options.colorSchemes || ['light']);
19+
let scalesToRender = options.scales || ['medium'];
20+
let height;
21+
let minHeight;
22+
if(isNaN(options.height)) {
23+
minHeight = 1000;
24+
} else {
25+
height = options.height;
26+
}
27+
28+
let expressTheme = colorSchemes.length === 1 ? expressThemes[colorSchemes[0]] : expressThemes.light;
29+
let expressColorScheme = colorSchemes.length === 1 ? colorSchemes[0].replace(/est$/, '') : 'light';
30+
let expressScale = scalesToRender.length === 1 ? scalesToRender[0] : 'medium';
31+
let expressLocale = selectedLocales.length === 1 ? selectedLocales[0] : 'en-US';
32+
33+
// do not add a top level provider, each provider variant needs to be independent so that we don't have RTL/LTR styles that interfere with each other
34+
return (
35+
<DisableAnimations disableAnimations={options.disableAnimations}>
36+
<div style={{display: 'flex', flexDirection: 'column', height, minHeight}}>
37+
{colorSchemes.map(colorScheme =>
38+
scalesToRender.map(scale =>
39+
(colorScheme === 'light' ? selectedLocales : ['en-US']).map(locale =>
40+
<Provider key={`${colorScheme}_${scale}_${locale}`} theme={themes[colorScheme]} colorScheme={colorScheme.replace(/est$/, '')} scale={scale} locale={locale} typekitId="pbi5ojv">
41+
<View margin="size-100">
42+
<h1 style={{margin: 0, padding: 0}}>{`${colorScheme}, ${scale}, ${locale}`}</h1>
43+
{getStory(context)}
44+
</View>
45+
</Provider>
46+
)
47+
)
48+
)}
49+
{options.express !== false &&
50+
<Provider key="express" theme={expressTheme} colorScheme={expressColorScheme} scale={expressScale} locale={expressLocale} typekitId="pbi5ojv">
51+
<View margin="size-100">
52+
<h1 style={{margin: 0, padding: 0}}>express, {expressColorScheme}, {expressScale}, {expressLocale}</h1>
53+
{getStory(context)}
54+
</View>
55+
</Provider>
56+
}
57+
</div>
58+
</DisableAnimations>
59+
)
60+
}
61+
});
62+
63+
function DisableAnimations({children, disableAnimations}) {
64+
useEffect(() => {
65+
if (disableAnimations) {
66+
document.body.classList.add('disableAnimations');
67+
} else {
68+
document.body.classList.remove('disableAnimations');
69+
}
70+
}, [disableAnimations]);
71+
return children;
72+
}

.chromatic-fc/layout.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import clsx from 'clsx';
2+
import React from 'react';
3+
4+
export function VerticalCenter({children, className, style}) {
5+
return (
6+
<div
7+
className={ clsx('react-spectrum-story', className) }
8+
style={style}
9+
>
10+
{ children }
11+
</div>
12+
);
13+
}

.chromatic-fc/main.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
module.exports = {
3+
framework: {
4+
name: "storybook-react-parcel",
5+
options: {},
6+
},
7+
stories: ['../packages/**/chromatic-fc/**/*.stories.{js,jsx,ts,tsx}'],
8+
addons: process.env.NODE_ENV === 'production' ? [] : [
9+
'@storybook/addon-actions',
10+
'@storybook/addon-a11y'
11+
],
12+
typescript: {
13+
check: false,
14+
reactDocgen: false
15+
}
16+
};

.chromatic-fc/manager.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import {addons} from '@storybook/manager-api';
2+
3+
addons.setConfig({
4+
enableShortcuts: false,
5+
sidebar: {
6+
showRoots: false,
7+
}
8+
});

0 commit comments

Comments
 (0)