Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Storybook upgrade to 6.4 final #215

Merged
merged 25 commits into from Dec 6, 2021
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "upgrade to 6.4 final",
"packageName": "@ni/nimble-components",
"email": "1458528+fredvisser@users.noreply.github.com",
"dependentChangeType": "prerelease"
}
60,306 changes: 29,707 additions & 30,599 deletions package-lock.json

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion packages/nimble-components/.storybook/main.js
Expand Up @@ -13,7 +13,8 @@ module.exports = {
}
},
'storybook-addon-xd-designs',
'@storybook/addon-a11y'
'@storybook/addon-a11y',
'@storybook/addon-interactions'
],
features: {
previewCsfV3: true
Expand Down
13 changes: 0 additions & 13 deletions packages/nimble-components/.storybook/preview-head.html
@@ -1,13 +0,0 @@
<style>
fredvisser marked this conversation as resolved.
Show resolved Hide resolved
html,
body {
margin: 0;
display: flex;
flex-direction: column;
height: 100%;
color: var(--neutral-foreground-rest);
}
#root {
padding: 20px;
}
</style>
1 change: 0 additions & 1 deletion packages/nimble-components/.storybook/preview.js
Expand Up @@ -6,7 +6,6 @@ import { backgroundStates } from '../dist/esm/utilities/tests/matrix';
const [defaultBackground] = backgroundStates;

export const parameters = {
layout: 'fullscreen',
fredvisser marked this conversation as resolved.
Show resolved Hide resolved
backgrounds: {
default: defaultBackground.name,
values: backgroundStates.map(({ name, value }) => ({ name, value }))
Expand Down
26 changes: 16 additions & 10 deletions packages/nimble-components/package.json
Expand Up @@ -52,16 +52,19 @@
"@babel/core": "^7.14.6",
"@babel/preset-env": "^7.13.15",
"@ni/eslint-config-typescript": "^3.0.0",
"@storybook/addon-a11y": "^6.4.0-alpha.28",
"@storybook/addon-actions": "^6.4.0-alpha.28",
"@storybook/addon-docs": "^6.4.0-alpha.28",
"@storybook/addon-essentials": "^6.4.0-alpha.28",
"@storybook/addon-links": "^6.4.0-alpha.28",
"@storybook/addons": "^6.4.0-alpha.28",
"@storybook/builder-webpack5": "^6.4.0-alpha.28",
"@storybook/html": "^6.4.0-alpha.28",
"@storybook/manager-webpack5": "^6.4.0-alpha.28",
"@storybook/theming": "^6.4.0-alpha.28",
"@storybook/addon-a11y": "^6.4.0",
fredvisser marked this conversation as resolved.
Show resolved Hide resolved
"@storybook/addon-actions": "^6.4.0",
"@storybook/addon-docs": "^6.4.0",
"@storybook/addon-essentials": "^6.4.0",
"@storybook/addon-interactions": "^6.4.0",
fredvisser marked this conversation as resolved.
Show resolved Hide resolved
"@storybook/addon-links": "^6.4.0",
"@storybook/addons": "^6.4.0",
"@storybook/builder-webpack5": "^6.4.0",
"@storybook/html": "^6.4.0",
"@storybook/jest": "^0.0.5",
"@storybook/manager-webpack5": "^6.4.0",
"@storybook/testing-library": "^0.0.7",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these new packages @storybook/jest and @storybook/testing-library intentional? Their comments talk about testing for React components which doesn't seem necessary for us

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I included both to use with the new Interactions add-on. We may choose not to use the jest component, but I'll give a demo next week to show the capabilities.

"@storybook/theming": "^6.4.0",
"@types/jasmine": "^3.6.0",
"@types/webpack-env": "^1.15.2",
"babel-loader": "^8.2.2",
Expand All @@ -70,7 +73,9 @@
"css-loader": "^6.2.0",
"dotenv-webpack": "^7.0.2",
"eslint-plugin-jsdoc": "^36.1.0",
"eslint-plugin-storybook": "^0.5.1",
"html-webpack-plugin": "^5.3.1",
"i": "^0.3.7",
fredvisser marked this conversation as resolved.
Show resolved Hide resolved
"jasmine-core": "^3.7.0",
"karma": "^6.3.0",
"karma-chrome-launcher": "^3.1.0",
Expand All @@ -81,6 +86,7 @@
"karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "^0.0.32",
"karma-webpack": "^5.0.0",
"npm": "^8.1.4",
"prettier": "^2.0.0",
"prettier-eslint": "^13.0.0",
"prettier-eslint-cli": "^5.0.1",
Expand Down
18 changes: 15 additions & 3 deletions packages/nimble-components/src/.eslintrc.js
Expand Up @@ -3,7 +3,8 @@ module.exports = {
plugins: ['jsdoc'],
extends: [
'@ni/eslint-config-typescript',
'@ni/eslint-config-typescript/requiring-type-checking'
'@ni/eslint-config-typescript/requiring-type-checking',
'plugin:storybook/recommended'
fredvisser marked this conversation as resolved.
Show resolved Hide resolved
],
parserOptions: {
project: '../tsconfig.json',
Expand Down Expand Up @@ -35,7 +36,10 @@ module.exports = {
'@typescript-eslint/no-non-null-assertion': 'off',

// Improves readability of templates to avoid return types in template expressions
'@typescript-eslint/explicit-function-return-type': ['error', {allowExpressions: true}],
'@typescript-eslint/explicit-function-return-type': [
fredvisser marked this conversation as resolved.
Show resolved Hide resolved
'error',
{ allowExpressions: true }
],

'no-restricted-imports': [
'error',
Expand All @@ -61,7 +65,15 @@ module.exports = {
'error',
{ devDependencies: true }
],
'import/no-default-export': 'off'
'import/no-default-export': 'off',
'@typescript-eslint/naming-convention': [
fredvisser marked this conversation as resolved.
Show resolved Hide resolved
'error',
{
selector: 'variable',
modifiers: ['exported'],
format: null
}
]
}
},
{
Expand Down
Expand Up @@ -29,7 +29,7 @@ const metadata: Meta = {

export default metadata;

export const defaultButton = createRenderer(
export const DefaultButton: Story = createRenderer(
html`<nimble-button>Default Button</nimble-button>`
);
const noContent = 'NO_CONTENT';
Expand All @@ -48,7 +48,7 @@ const component = (
</nimble-button>
`;

export const buttonThemeMatrix: Story = createRenderer(
export const ButtonThemeMatrix: Story = createRenderer(
themeWrapper(
createMatrix(component, [
disabledStates,
Expand All @@ -58,6 +58,6 @@ export const buttonThemeMatrix: Story = createRenderer(
)
);

export const hiddenButton = createRenderer(
export const HiddenButton: Story = createRenderer(
hiddenWrapper(html`<nimble-button hidden>Hidden Button</nimble-button>`)
);
@@ -1,4 +1,4 @@
import type { Story, Meta } from '@storybook/html';
import type { Meta } from '@storybook/html';
import { withXD } from 'storybook-addon-xd-designs';
import { html, when } from '@microsoft/fast-element';
import { ButtonAppearance } from '../types';
Expand Down Expand Up @@ -58,12 +58,13 @@ const metadata: Meta<ButtonArgs> = {

export default metadata;

export const outlineButton: Story<ButtonArgs> = {
export const OutlineButton = {
args: { label: 'Outline Button', appearance: ButtonAppearance.Outline }
};
export const ghostButton: Story<ButtonArgs> = {

export const GhostButton = {
args: { label: 'Ghost Button', appearance: ButtonAppearance.Ghost }
};
export const blockButton: Story<ButtonArgs> = {
export const BlockButton = {
args: { label: 'Block Button', appearance: ButtonAppearance.Block }
};
Expand Up @@ -41,11 +41,11 @@ const component = (
${checkedName} ${disabledName}
</nimble-checkbox>`;

export const checkboxThemeMatrix: Story = createRenderer(
export const CheckboxThemeMatrix: Story = createRenderer(
themeWrapper(createMatrix(component, [disabledStates, checkedStates]))
);

export const hiddenCheckbox = createRenderer(
export const HiddenCheckbox: Story = createRenderer(
hiddenWrapper(
html`<nimble-checkbox hidden>Hidden Checkbox</nimble-checkbox>`
)
Expand Down
@@ -1,5 +1,5 @@
import { html } from '@microsoft/fast-element';
import type { Story, Meta } from '@storybook/html';
import type { Meta } from '@storybook/html';
import { withXD } from 'storybook-addon-xd-designs';
import { createRenderer } from '../../utilities/tests/storybook';
import '../index';
Expand Down Expand Up @@ -45,4 +45,4 @@ const metadata: Meta<CheckboxArgs> = {

export default metadata;

export const checkbox: Story<CheckboxArgs> = {};
export const Checkbox = {};
Expand Up @@ -62,22 +62,22 @@ if (remaining.length > 0) {
throw new Error('New backgrounds need to be supported');
}

export const drawerLightThemeWhiteBackground: Story = createRenderer(
export const DrawerLightThemeWhiteBackground: Story = createRenderer(
singleThemeWrapper(component, lightThemeWhiteBackground)
);

export const drawerColorThemeGreenBackground: Story = createRenderer(
export const DrawerColorThemeGreenBackground: Story = createRenderer(
singleThemeWrapper(component, colorThemeGreenBackground)
);

export const drawerColorThemeDarkGreenBackground: Story = createRenderer(
export const DrawerColorThemeDarkGreenBackground: Story = createRenderer(
singleThemeWrapper(component, colorThemeDarkGreenBackground)
);

export const drawerDarkThemeBlackBackground: Story = createRenderer(
export const DrawerDarkThemeBlackBackground: Story = createRenderer(
singleThemeWrapper(component, darkThemeBlackBackground)
);

export const drawerLegacyBlueThemeWhiteBackground: Story = createRenderer(
export const DrawerLegacyBlueThemeWhiteBackground: Story = createRenderer(
singleThemeWrapper(component, legacyBlueThemeWhiteBackground)
);
@@ -1,5 +1,5 @@
import { html, ViewTemplate } from '@microsoft/fast-element';
import type { Meta, Story } from '@storybook/html';
import type { Meta } from '@storybook/html';
import { withXD } from 'storybook-addon-xd-designs';
import { createRenderer } from '../../utilities/tests/storybook';
import '../../button/index';
Expand Down Expand Up @@ -129,4 +129,4 @@ const metadata: Meta<DrawerArgs> = {

export default metadata;

export const drawer: Story<DrawerArgs> = {};
export const Drawer = {};
Expand Up @@ -32,11 +32,11 @@ const component = ([stateName, state]: IconStatusState): ViewTemplate => html`
<nimble-check-icon class="${state}"></nimble-check-icon>
`;

export const iconThemeMatrix: Story = createRenderer(
export const IconThemeMatrix: Story = createRenderer(
themeWrapper(createMatrix(component, [iconStatusStates]))
);

export const hiddenIcon = createRenderer(
export const HiddenIcon: Story = createRenderer(
hiddenWrapper(
html`<nimble-check-icon class="pass" hidden></nimble-check-icon>`
)
Expand Down
@@ -1,4 +1,4 @@
import type { Story, Meta } from '@storybook/html';
import type { Meta } from '@storybook/html';
import * as nimbleIconsMap from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';
import { withXD } from 'storybook-addon-xd-designs';
import type { NimbleIcon } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';
Expand Down Expand Up @@ -50,7 +50,7 @@ const metadata: Meta<IconArgs> = {
export default metadata;

// prettier-ignore
export const rawIcons: Story<IconArgs> = {
export const RawIcons = {
parameters: {
controls: { hideNoControlsWarning: true }
},
Expand Down Expand Up @@ -86,7 +86,7 @@ const iconTemplate = html<IconClass, IconArgs>`
`;

// prettier-ignore
export const componentIcons: Story<IconArgs> = {
export const ComponentIcons = {
args: { status: IconStatus.Regular },
argTypes: {
status: {
Expand Down
Expand Up @@ -42,11 +42,11 @@ const component = (
</span>
`;

export const menuThemeMatrix: Story = createRenderer(
export const MenuThemeMatrix: Story = createRenderer(
themeWrapper(createMatrix(component, [iconVisibleStates]))
);

export const hiddenMenu = createRenderer(
export const HiddenMenu: Story = createRenderer(
hiddenWrapper(
html`<nimble-menu hidden>
<nimble-menu-item>Item 1</nimble-menu-item>
Expand Down
6 changes: 3 additions & 3 deletions packages/nimble-components/src/menu/tests/menu.stories.ts
@@ -1,4 +1,4 @@
import type { Story, Meta } from '@storybook/html';
import type { Meta } from '@storybook/html';
import { withXD } from 'storybook-addon-xd-designs';
import { html, repeat, when } from '@microsoft/fast-element';
import { createRenderer } from '../../utilities/tests/storybook';
Expand Down Expand Up @@ -45,7 +45,7 @@ const metadata: Meta<MenuArgs> = {

export default metadata;

export const menu: Story<MenuArgs> = {
export const Menu = {
parameters: {
docs: {
description: {
Expand Down Expand Up @@ -134,7 +134,7 @@ export const menu: Story<MenuArgs> = {
}
};

export const customMenu: Story = {
export const CustomMenu = {
parameters: {
docs: {
description: {
Expand Down
Expand Up @@ -43,11 +43,11 @@ const component = (
</nimble-number-field>
`;

export const numberFieldThemeMatrix: Story = createRenderer(
export const NumberFieldThemeMatrix: Story = createRenderer(
themeWrapper(createMatrix(component, [disabledStates, valueStates]))
);

export const hiddenNumberField = createRenderer(
export const HiddenNumberField: Story = createRenderer(
hiddenWrapper(
html`<nimble-number-field hidden
>Hidden number field</nimble-number-field
Expand Down
@@ -1,5 +1,5 @@
import { html } from '@microsoft/fast-element';
import type { Story, Meta } from '@storybook/html';
import type { Meta } from '@storybook/html';
import { withXD } from 'storybook-addon-xd-designs';
import { createRenderer } from '../../utilities/tests/storybook';
import '../index';
Expand Down Expand Up @@ -46,6 +46,6 @@ const metadata: Meta<NumberFieldArgs> = {

export default metadata;

export const numberField: Story<NumberFieldArgs> = {
export const NumberField = {
args: { label: 'Number Field' }
};
Expand Up @@ -35,11 +35,11 @@ const component = ([_, disabled]: DisabledState): ViewTemplate => html`
</nimble-select>
`;

export const selectThemeMatrix: Story = createRenderer(
export const SelectThemeMatrix: Story = createRenderer(
themeWrapper(createMatrix(component, [disabledStates]))
);

export const hiddenSelect = createRenderer(
export const HiddenSelect: Story = createRenderer(
hiddenWrapper(
html`<nimble-select hidden>
<nimble-listbox-option value="1">Option 1</nimble-listbox-option>
Expand Down
Expand Up @@ -38,6 +38,6 @@ const component = ([
</nimble-select>
`;

export const selectOpenedThemeMatrix: Story = createRenderer(
export const SelectOpenedThemeMatrix: Story = createRenderer(
themeWrapper(createMatrix(component, [positionStates]))
);
@@ -1,4 +1,4 @@
import type { Story, Meta } from '@storybook/html';
import type { Meta } from '@storybook/html';
import { withXD } from 'storybook-addon-xd-designs';
import '../index';
import '../../listbox-option/index';
Expand Down Expand Up @@ -64,4 +64,4 @@ const metadata: Meta<SelectArgs> = {

export default metadata;

export const select: Story<SelectArgs> = {};
export const Select = {};
Expand Up @@ -54,11 +54,11 @@ const component = (
</nimble-tabs>
`;

export const tabsThemeMatrix: Story = createRenderer(
export const TabsThemeMatrix: Story = createRenderer(
themeWrapper(createMatrix(component, [tabsToolbarState, disabledStates]))
);

export const hiddenTabs = createRenderer(
export const HiddenTabs: Story = createRenderer(
hiddenWrapper(
html`<nimble-tabs hidden>
<nimble-tab>Tab One</nimble-tab>
Expand Down